:root{--bg: #0b0f19;--panel: rgba(255,255,255,.06);--panel2: rgba(255,255,255,.08);--text: rgba(255,255,255,.92);--muted: rgba(255,255,255,.62);--faint: rgba(255,255,255,.42);--stroke: rgba(255,255,255,.1);--brand: #7c5cff;--brand2:#34d399;--warn:#fbbf24;--danger:#fb7185;--radius-xl: 20px;--radius-lg: 16px;--radius-md: 12px;--shadow: 0 10px 30px rgba(0,0,0,.35);--shadow2: 0 18px 60px rgba(0,0,0,.45);--ease: cubic-bezier(.2,.8,.2,1);--speed: .18s;--speed2: .32s;--mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji"}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--sans);color:var(--text);background:var(--bg);position:relative}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(1200px 800px at 20% 10%,rgba(124,92,255,.22),transparent 60%),radial-gradient(900px 600px at 80% 30%,rgba(52,211,153,.16),transparent 55%),radial-gradient(900px 700px at 50% 90%,rgba(251,191,36,.1),transparent 60%),var(--bg)}.hidden{display:none!important}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--stroke);background:#0b0f198c;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.topbar-left{display:flex;align-items:center;gap:14px;min-width:0}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;cursor:pointer;transition:opacity var(--speed) var(--ease)}.brand:hover{opacity:.85}.brand-mark{width:40px;height:40px;border-radius:14px;background:linear-gradient(135deg,#7c5cfff2,#34d399bf);display:grid;place-items:center;font-weight:700;letter-spacing:.5px;box-shadow:var(--shadow)}.brand-text{display:flex;flex-direction:column;line-height:1.1}.brand-name{font-weight:700}.brand-sub{font-size:12px;color:var(--muted)}.nav-btn{padding:8px 16px;font-size:13px;font-weight:600}.topbar-right{display:flex;align-items:center;gap:12px}.search-wrap{position:relative;display:flex;align-items:center;min-width:180px;max-width:280px;width:20vw}.search-input{width:100%;padding:10px 54px 10px 12px;border-radius:14px;border:1px solid var(--stroke);background:#ffffff0f;color:var(--text);outline:none;transition:border var(--speed) var(--ease),transform var(--speed) var(--ease)}.search-input:focus{border-color:#7c5cff8c;transform:translateY(-1px)}.kbd-hint{position:absolute;right:10px;font-family:var(--mono);font-size:12px;color:var(--faint);border:1px solid var(--stroke);padding:4px 8px;border-radius:10px;background:#0000002e}.search-dropdown{position:absolute;top:calc(100% + 8px);left:0;right:0;min-width:320px;background:#121620fa;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--stroke);border-radius:12px;box-shadow:0 8px 32px #00000080,0 0 0 1px #ffffff0d inset;max-height:400px;overflow-y:auto;z-index:1000}.search-dropdown.hidden{display:none}.search-dropdown-empty{padding:16px;text-align:center;color:var(--muted);font-size:13px}.search-result{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;cursor:pointer;transition:background var(--speed) var(--ease);border-bottom:1px solid var(--stroke)}.search-result:last-child{border-bottom:none}.search-result:hover,.search-result.active{background:#ffffff14}.search-result-thumb{width:40px;height:40px;border-radius:8px;background:#ffffff0f;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;font-size:18px;color:var(--muted)}.search-result-thumb img{width:100%;height:100%;object-fit:cover}.search-result-info{flex:1;min-width:0}.search-result-title{font-weight:600;font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.search-result-sub{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-result-match{margin-top:6px;padding:6px 8px;background:#ffffff0a;border-radius:6px;font-size:12px;color:var(--muted);line-height:1.4}.search-result-match-label{font-size:10px;font-weight:600;color:var(--faint);text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}.search-result-match mark{background:#7c5cff59;color:var(--text);padding:1px 3px;border-radius:3px}.search-result-badge{font-size:10px;font-weight:600;padding:3px 6px;border-radius:4px;background:var(--brand);color:#fff;text-transform:uppercase;letter-spacing:.3px;flex-shrink:0;margin-top:2px}.queue-wrap{position:relative}.queue-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:700;background:var(--brand);color:#fff;border-radius:9px;display:flex;align-items:center;justify-content:center}.queue-badge.hidden{display:none}.queue-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:340px;background:#0b0f19;border:1px solid var(--stroke);border-radius:var(--radius-xl);box-shadow:0 16px 48px #00000080,0 0 0 1px #ffffff0d inset;z-index:1000;overflow:hidden}.queue-dropdown.hidden{display:none}.queue-header{padding:14px 16px;border-bottom:1px solid var(--stroke);background:#ffffff05}.queue-title{font-weight:600;font-size:14px}.queue-list{max-height:320px;overflow-y:auto}.queue-empty{padding:24px 16px;text-align:center;color:var(--muted);font-size:13px}.queue-empty-centered{min-height:200px;display:flex;align-items:center;justify-content:center}.queue-thumb-icon{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--muted)}.queue-thumb-icon.generating{background:#7c5cff26}.queue-thumb-icon.queued{background:#ffffff0f;color:var(--muted)}.queue-thumb-icon.failed{background:#ff636326;color:#ff6b6b}.queue-thumb-icon .spinner{width:20px;height:20px}.queue-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--stroke);cursor:pointer;transition:background var(--speed) var(--ease)}.queue-item:last-child{border-bottom:none}.queue-item:hover{background:#ffffff0a}.queue-item-thumb{width:44px;height:44px;border-radius:10px;overflow:hidden;background:#ffffff0f;flex-shrink:0}.queue-item-thumb img{width:100%;height:100%;object-fit:cover}.queue-item-info{flex:1;min-width:0}.queue-item-title{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.queue-item-meta{font-size:11px;color:var(--muted);margin-top:2px}.queue-item-status{font-size:11px;padding:3px 8px;border-radius:6px;font-weight:600;flex-shrink:0}.queue-item-status.generating{background:#7c5cff33;color:var(--brand)}.queue-item-status.complete{background:#5eead426;color:var(--brand2)}.queue-item-status.queued{background:#ffffff14;color:var(--muted)}.queue-item-status.failed{background:#ff636326;color:#ff6b6b}.queue-footer{padding:12px 16px;border-top:1px solid var(--stroke);background:#ffffff05}.btn-sm{padding:8px 12px;font-size:12px}.modal-dialog-history{width:min(700px,calc(100vw - 48px));max-height:calc(100vh - 100px)}.modal-body-history{display:flex;flex-direction:column;padding:0;max-height:500px;min-height:250px;overflow-y:auto}.history-list{flex:1;display:flex;flex-direction:column}.history-list .queue-empty{flex:1;display:flex;align-items:center;justify-content:center;min-height:230px;width:100%;text-align:center}.history-list:has(.history-item){padding:8px 0}.history-item{display:flex;align-items:center;gap:14px;padding:14px 20px;border-bottom:1px solid var(--stroke);cursor:pointer;transition:background var(--speed) var(--ease)}.history-item:last-child{border-bottom:none}.history-item:hover{background:#ffffff0a}.history-item-thumb{width:56px;height:56px;border-radius:12px;overflow:hidden;background:#ffffff0f;flex-shrink:0}.history-item-thumb img{width:100%;height:100%;object-fit:cover}.history-item-info{flex:1;min-width:0}.history-item-title{font-size:14px;font-weight:600;margin-bottom:4px}.history-item-meta{font-size:12px;color:var(--muted)}.history-item-date{font-size:12px;color:var(--muted);flex-shrink:0}.icon-btn{border:1px solid var(--stroke);background:#ffffff0f;color:var(--text);border-radius:14px;padding:10px 12px;cursor:pointer;transition:transform var(--speed) var(--ease),background var(--speed) var(--ease);display:flex;align-items:center;justify-content:center}.icon-btn:hover{transform:translateY(-1px);background:#ffffff17}.icon-btn:active{transform:translateY(0) scale(.98)}.icon-svg,.btn-icon{width:18px;height:18px;flex-shrink:0}.empty-icon svg{width:48px;height:48px;stroke:var(--brand)}.search-result-thumb svg{width:24px;height:24px;stroke:var(--muted)}.account{position:relative}.account-btn{display:flex;align-items:center;gap:10px;border:1px solid var(--stroke);background:#ffffff0f;border-radius:16px;padding:8px 10px;cursor:pointer;transition:background var(--speed) var(--ease),transform var(--speed) var(--ease)}.account-btn:hover{background:#ffffff17;transform:translateY(-1px)}.avatar{width:34px;height:34px;border-radius:14px;display:grid;place-items:center;background:#7c5cff40;border:1px solid rgba(124,92,255,.35);font-weight:700}.account-meta{display:flex;flex-direction:column;line-height:1.1;text-align:left}.account-name{font-weight:700;font-size:13px}.account-sub{font-size:12px;color:var(--muted)}.chev{color:var(--muted);margin-left:6px}.account-menu{position:absolute;right:0;top:52px;width:220px;border-radius:var(--radius-xl);border:1px solid var(--stroke);background:#0b0f19!important;box-shadow:0 16px 48px #00000080,0 0 0 1px #ffffff0d inset;overflow:hidden;animation:popIn var(--speed2) var(--ease)}.menu-item{width:100%;text-align:left;padding:14px 16px;border:none;background:transparent;color:var(--text);cursor:pointer;font-size:14px;transition:background var(--speed) var(--ease)}.menu-item:hover{background:#ffffff12}.menu-sep{height:1px;background:var(--stroke);margin:4px 0}.main{display:grid;grid-template-columns:360px 1fr;gap:18px;padding:18px;flex:1;min-height:0}.main.dashboard-mode{grid-template-columns:1fr}.main.dashboard-mode .panel{display:none}.panel{display:flex;flex-direction:column;gap:14px}.panel-card{border:1px solid var(--stroke);background:var(--panel);border-radius:var(--radius-xl);padding:16px;box-shadow:var(--shadow)}.panel-card.subtle{background:#ffffff0a}.panel-title{font-weight:700;margin-bottom:12px}.form{display:flex;flex-direction:column;gap:10px}.label{font-size:12px;color:var(--muted);margin-top:2px}.input{width:100%;padding:12px;border-radius:14px;border:1px solid var(--stroke);background:#ffffff0f;color:var(--text);outline:none;transition:border var(--speed) var(--ease)}.input:focus{border-color:#7c5cff8c}.panel-actions{margin-top:12px;display:flex;gap:10px}.btn{border-radius:14px;padding:12px;border:1px solid var(--stroke);background:#ffffff0f;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;transition:transform var(--speed) var(--ease),background var(--speed) var(--ease)}.btn:hover{transform:translateY(-1px);background:#ffffff17}.btn:active{transform:translateY(0) scale(.99)}.btn-primary{border-color:#7c5cff59;background:linear-gradient(135deg,#7c5cff59,#7c5cff2e)}.btn-secondary{border-color:#34d39947;background:linear-gradient(135deg,#34d3992e,#ffffff0d)}.btn-ghost{background:transparent}.btn-suffix{color:var(--muted);font-family:var(--mono);font-size:12px}.pill{font-size:12px;color:var(--muted);border:1px solid var(--stroke);border-radius:999px;padding:3px 8px;background:#0000002e}.tips{margin:0;padding-left:18px;color:var(--muted);font-size:13px}.tips li{margin:6px 0}.workspace{min-width:0;border:1px solid var(--stroke);background:#ffffff08;border-radius:var(--radius-xl);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}.workspace-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;padding:16px;border-bottom:1px solid var(--stroke);background:#ffffff05;flex-shrink:0}.workspace-body{display:flex;min-height:0;flex:1;width:100%}#results{flex:1 1 auto;min-width:0;width:100%;overflow:auto;padding:16px;min-height:calc(100vh - 160px)}.character-panel{display:none;width:340px;min-width:340px;flex-shrink:0;border-right:1px solid var(--stroke);background:#ffffff08;padding:16px;overflow-y:auto}body[data-phase=storyboard] .main{grid-template-columns:1fr;padding:18px}body[data-phase=storyboard] .panel{display:none}body[data-phase=storyboard] .workspace-body{display:grid;grid-template-columns:340px 1fr;grid-template-rows:1fr;min-height:0;gap:0}body[data-phase=storyboard] .character-panel{display:block;grid-column:1;grid-row:1;padding:20px}body[data-phase=storyboard] #results{grid-column:2;grid-row:1;width:100%;min-width:0;overflow:auto;padding:20px 24px}.storyboard-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px;align-items:center}.workspace-title h2{margin:0}.workspace-title p{margin:6px 0 0;color:var(--muted)}.workspace-controls{display:flex;gap:10px;align-items:center}.segmented{display:flex;border:1px solid var(--stroke);background:#ffffff0a;border-radius:14px;overflow:hidden}.seg-btn{border:none;background:transparent;color:var(--muted);padding:10px 12px;cursor:pointer}.seg-btn.active{color:var(--text);background:#7c5cff2e}.select{border:1px solid var(--stroke);background:#ffffff0f;color:var(--text);padding:10px 12px;border-radius:14px;outline:none}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}body[data-phase=storyboard] .grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}.new-story-card{border:2px dashed var(--stroke);background:#ffffff05;border-radius:18px;overflow:hidden;cursor:pointer;transition:transform var(--speed2) var(--ease),background var(--speed2) var(--ease),border-color var(--speed2) var(--ease);display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:280px;gap:12px}.new-story-card:hover{transform:translateY(-3px);background:#7c5cff14;border-color:#7c5cff66}.new-story-card-icon{width:56px;height:56px;border-radius:16px;background:#7c5cff26;display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--brand)}.new-story-card-text{font-weight:600;font-size:15px;color:var(--text)}.story-card{border:1px solid var(--stroke);background:#ffffff0d;border-radius:18px;overflow:hidden;cursor:pointer;transition:transform var(--speed2) var(--ease),background var(--speed2) var(--ease);animation:fadeUp var(--speed2) var(--ease)}.story-card:hover{transform:translateY(-3px);background:#ffffff14}.story-card:active{transform:translateY(-1px) scale(.99)}.thumb{width:100%;aspect-ratio:1 / 1;background:#ffffff08;border-bottom:1px solid var(--stroke);display:grid;place-items:center;position:relative}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb .badge{position:absolute;top:10px;left:10px;padding:4px 8px;border-radius:999px;font-size:12px;border:1px solid var(--stroke);background:#00000040;color:var(--text);z-index:6}.card-body{padding:12px}.card-title{font-weight:700;margin:0 0 6px}.card-sub{margin:0;font-size:13px;color:var(--muted)}.card-meta{display:flex;justify-content:space-between;margin-top:10px;font-size:12px;color:var(--faint);font-family:var(--mono)}.loader{display:flex;align-items:center;gap:12px;color:var(--muted);padding:14px;border:1px dashed var(--stroke);border-radius:16px;background:#ffffff08}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.18);border-top-color:#7c5cffe6;animation:spin .9s linear infinite}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:fadeIn var(--speed2) var(--ease)}.modal-dialog{position:relative;width:min(1100px,calc(100vw - 48px));max-height:calc(100vh - 48px);overflow:hidden;border-radius:var(--radius-xl);border:1px solid var(--stroke);background:#0b0f19!important;box-shadow:0 24px 80px #0009,0 0 0 1px #ffffff0d inset;animation:popIn var(--speed2) var(--ease)}.modal-dialog-sm{width:min(520px,calc(100vw - 48px))}.modal-dialog-regen{width:min(700px,calc(100vw - 48px))}.modal-dialog-preview{width:min(900px,calc(100vw - 48px))}.modal-close-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:#ffffff0f;border:1px solid var(--stroke);color:var(--muted);font-size:14px;cursor:pointer;transition:all var(--speed) var(--ease)}.modal-close-btn:hover{background:#ffffff1a;color:var(--text)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--stroke);background:#ffffff05}.modal-title{font-weight:700;font-size:15px}.modal-subtitle{margin-top:4px;font-size:12px;color:var(--muted)}.modal-body{display:grid;grid-template-columns:1.4fr .9fr;gap:20px;padding:20px}.modal-body-regen{grid-template-columns:1.2fr 1fr;gap:24px;padding:24px}.modal-body-preview{grid-template-columns:1fr 320px;gap:24px;padding:24px;max-height:calc(100vh - 150px);overflow:hidden}.modal-body-col{display:block;padding:24px}.preview-main{display:flex;flex-direction:column;min-height:0}.preview-main .modal-image-wrap{flex:1;min-height:300px;max-height:500px;border-radius:16px;overflow:hidden;border:1px solid var(--stroke);background:#0000004d;display:flex;align-items:center;justify-content:center}.preview-main .modal-image-wrap img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.preview-controls{display:flex;flex-direction:column;gap:16px;overflow-y:auto;max-height:100%}.preview-section{padding-bottom:16px;border-bottom:1px solid var(--stroke)}.preview-section:last-child{border-bottom:none;padding-bottom:0}.preview-section-label{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.preview-regen-section{margin-top:auto;padding-top:16px;border-top:1px solid var(--stroke);border-bottom:none;display:flex;flex-direction:column;gap:12px}.preview-regen-section .form-group{margin-bottom:0}.textarea-sm{min-height:80px}.regen-controls{display:flex;flex-direction:column;gap:12px}.regen-controls.hidden{display:none}.regen-limit-msg{display:flex;flex-direction:column;gap:12px}.regen-limit-msg.hidden{display:none}.limit-notice{display:flex;align-items:center;gap:8px;padding:12px 14px;background:#ffb4001a;border:1px solid rgba(255,180,0,.3);border-radius:12px;font-size:13px;color:#ffc107}.limit-icon{font-size:16px}.human-request-info{padding:14px;background:#7c5cff1a;border:1px solid rgba(124,92,255,.2);border-radius:12px;font-size:13px;line-height:1.5;color:var(--text)}.human-request-info p{margin:0}.modal-image-wrap{border-radius:16px;overflow:hidden;border:1px solid var(--stroke);background:#ffffff08}.modal-image-wrap img{width:100%;height:100%;object-fit:cover;display:block}.modal-side{display:flex;flex-direction:column;gap:16px}.modal-side .form-group{display:flex;flex-direction:column;gap:8px}.modal-side .form-group .label{font-size:13px;color:var(--muted)}.textarea{min-height:140px;resize:vertical;padding:14px;border-radius:14px;border:1px solid var(--stroke);background:#ffffff0f;color:var(--text);outline:none;font-size:14px;line-height:1.5;transition:border var(--speed) var(--ease)}.textarea:focus{border-color:#7c5cff8c}.textarea::placeholder{color:var(--muted)}.modal-tip{font-size:13px;color:var(--muted);line-height:1.5;padding:12px 14px;background:#ffffff08;border-radius:12px;border:1px solid var(--stroke)}.modal-tip strong{color:var(--text)}.modal-help{font-size:12px;color:var(--muted);line-height:1.4}.dropzone{border-radius:18px;border:1px dashed rgba(255,255,255,.22);background:#ffffff0a;padding:18px;cursor:pointer;transition:transform var(--speed) var(--ease),background var(--speed) var(--ease),border var(--speed) var(--ease)}.dropzone:hover{transform:translateY(-1px);background:#ffffff0f}.dropzone.dragover{border-color:#34d3998c;background:#34d3991a}.dropzone-inner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;color:var(--muted)}.drop-icon{width:42px;height:42px;border-radius:16px;display:grid;place-items:center;background:#7c5cff2e;border:1px solid rgba(124,92,255,.28);color:var(--text);margin-bottom:4px}.drop-title{color:var(--text);font-weight:700}.drop-sub{color:var(--muted)}.drop-hint{font-size:12px;color:var(--faint);font-family:var(--mono)}.upload-preview-row{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.upload-preview{width:120px;height:120px;border-radius:18px;border:1px solid var(--stroke);background:#ffffff08;overflow:hidden}.upload-preview img{width:100%;height:100%;object-fit:cover;display:block}.upload-actions{display:flex;gap:10px;flex-wrap:wrap}.status-line{color:var(--muted);font-size:13px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.95)}}@media (max-width: 980px){.main{grid-template-columns:1fr}.workspace-head{align-items:flex-start;flex-direction:column}.modal-body{grid-template-columns:1fr}body[data-phase=storyboard] .workspace-body{grid-template-columns:1fr;grid-template-rows:auto 1fr}body[data-phase=storyboard] .character-panel{width:100%;min-width:0;grid-column:1;grid-row:1;border-right:none;border-bottom:1px solid var(--stroke)}body[data-phase=storyboard] #results{grid-column:1;grid-row:2}}@media (max-width: 768px){.search-wrap{display:none}.nav-btn{padding:6px 12px;font-size:12px}.account-meta{display:none}.account-btn{padding:6px}.chev{display:none}}.toast-container{position:fixed;right:18px;bottom:18px;z-index:200;display:flex;flex-direction:column;gap:10px}.toast{min-width:280px;max-width:380px;padding:14px 16px;border-radius:14px;background:#0b0f19!important;border:1px solid var(--stroke);border-left:4px solid var(--brand);box-shadow:0 16px 48px #00000080,0 0 0 1px #ffffff0d inset;animation:popIn var(--speed2) var(--ease)}.toast.success{border-color:var(--brand2)}.toast.warn{border-color:var(--warn)}.toast.error{border-color:var(--danger)}.toast-title{font-weight:700;font-size:13px}.toast-msg{font-size:13px;color:var(--muted);margin-top:4px}.list{display:flex;flex-direction:column;gap:12px}.list .story-card{display:grid;grid-template-columns:1fr 120px;gap:0;border-radius:16px;overflow:hidden;min-height:100px;max-height:140px}.list .story-card .card-body{padding:14px 16px;display:flex;flex-direction:column;justify-content:center;gap:6px;order:1}.list .story-card .card-title{font-size:14px;margin:0}.list .story-card .card-sub{font-size:13px;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4}.list .story-card .card-meta{margin-top:4px;font-size:11px}.list .story-card .thumb{width:120px;min-width:120px;height:100%;aspect-ratio:unset;order:2;border-bottom:none;border-left:1px solid var(--stroke);position:relative}.list .story-card .thumb .badge{top:6px;left:6px;font-size:10px;padding:3px 6px;max-width:calc(100% - 12px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list .story-card .thumb img{width:100%;height:100%;object-fit:cover}.list .story-card .thumb-placeholder{font-size:11px;height:100%}.list .story-card .generating-overlay{font-size:12px;gap:6px}.list .story-card .generating-overlay .spinner{width:24px;height:24px}.list .story-card.queued .queued-overlay{font-size:12px;gap:4px}.list .story-card.queued .queue-icon{font-size:20px}@media (max-width: 480px){.list .story-card{grid-template-columns:1fr;max-height:none}.list .story-card .thumb{width:100%;height:80px;order:1;border-left:none;border-bottom:1px solid var(--stroke)}.list .story-card .card-body{order:2}}.character-preview{display:flex;gap:12px;align-items:center;margin-bottom:10px}.character-preview img{width:72px;height:72px;object-fit:contain;border-radius:16px;border:1px solid var(--stroke);background:#ffffff0a}.thumb-placeholder{display:flex;align-items:center;justify-content:center;height:100%;font-size:13px;color:var(--muted);border:1px dashed var(--stroke);border-radius:12px}.story-card.generating{pointer-events:none;opacity:.9}.generating-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#0b0f19bf;color:var(--text);z-index:5;border-radius:inherit}.generating-overlay .spinner{width:32px;height:32px;border-width:3px}.story-card.queued{opacity:.85}.queued-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#0b0f19b3;color:var(--text);z-index:5;border-radius:inherit}.queue-icon{font-size:28px;animation:pulse 1.5s ease-in-out infinite}.revision-thumbs{display:flex;gap:10px;flex-wrap:wrap}.revision-thumb{width:72px;height:72px;border-radius:12px;overflow:hidden;border:2px solid var(--stroke);cursor:pointer;position:relative;transition:border-color var(--speed) var(--ease),transform var(--speed) var(--ease),box-shadow var(--speed) var(--ease);background:#0000004d}.revision-thumb:hover{border-color:var(--muted);transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.revision-thumb.active{border-color:var(--brand);box-shadow:0 0 0 2px #7c5cff4d}.revision-thumb.current{border-color:var(--brand2)}.revision-thumb.current.active{border-color:var(--brand2);box-shadow:0 0 0 2px #5eead44d}.revision-thumb img{width:100%;height:100%;object-fit:cover}.revision-label{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#000000d9);color:var(--text);font-size:10px;padding:12px 6px 4px;text-align:center;font-family:var(--mono)}#current-version-indicator{margin-bottom:0}#current-version-indicator .revision-thumb{width:88px;height:88px}#revision-history{padding-bottom:16px;border-bottom:1px solid var(--stroke)}.revision-thumbs-container{max-height:180px;overflow-y:auto}#use-version-btn{width:100%;margin-top:12px;margin-bottom:8px;background:var(--brand2);border-color:var(--brand2);color:#fff}#use-version-btn:hover{background:var(--brand2-hover, #2d8a6e);border-color:var(--brand2-hover, #2d8a6e)}#use-version-btn:disabled{opacity:.6;cursor:not-allowed}.editor-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;flex-wrap:wrap}.editor-info{flex:1;min-width:280px}.editor-info p{margin:0;color:var(--muted);font-size:14px;line-height:1.5}.editor-actions{display:flex;gap:10px;flex-wrap:wrap}.editor-grid{display:flex;flex-direction:column;gap:12px}.editor-card{display:flex;align-items:stretch;gap:12px;background:var(--surface);border:1px solid var(--stroke);border-radius:12px;padding:12px;transition:border-color var(--speed) var(--ease),box-shadow var(--speed) var(--ease)}.editor-card:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px #6366f11a}.editor-card-main{flex:1;display:flex;flex-direction:column;gap:8px}.editor-page-num{font-weight:600;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.editor-textarea{flex:1;min-height:80px;padding:12px;border:1px solid var(--stroke);border-radius:8px;background:var(--bg);color:var(--text);font-family:inherit;font-size:14px;line-height:1.6;resize:vertical;transition:border-color var(--speed) var(--ease)}.editor-textarea:focus{outline:none;border-color:var(--brand)}.editor-textarea::placeholder{color:var(--muted)}.editor-card-actions{display:flex;flex-direction:column;justify-content:center;gap:8px;padding:4px}.editor-card-actions .icon-btn{width:32px;height:32px;font-size:14px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--bg);border:1px solid var(--stroke);color:var(--muted);cursor:pointer;transition:all var(--speed) var(--ease)}.editor-card-actions .icon-btn:hover{background:var(--surface);border-color:var(--muted);color:var(--text)}.editor-card-actions .icon-btn.delete-page:hover{border-color:#ef4444;color:#ef4444;background:#ef44441a}#editor-status{margin-bottom:16px;font-size:13px;color:var(--muted)}body[data-phase=edit-story] .main{grid-template-columns:1fr}body[data-phase=edit-story] .panel{display:none}body[data-phase=edit-story] .workspace-body{display:block}body[data-phase=edit-story] .character-panel{display:none}body[data-phase=edit-story] #results{padding:20px}.badge.badge-draft{background:var(--brand);color:#fff}.story-card.draft .card-meta span:last-child{color:var(--brand);font-weight:600}.character-panel-inner{display:flex;flex-direction:column;gap:16px}.panel-section{display:flex;flex-direction:column;gap:10px}.panel-section-header{display:flex;justify-content:space-between;align-items:center}.panel-section-title{font-weight:700;font-size:14px}.panel-section-count{background:var(--brand);color:#fff;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px}.panel-section-desc{color:var(--muted);font-size:13px;margin:0;line-height:1.4}.panel-section-muted{padding-top:12px;border-top:1px solid var(--stroke);margin-top:8px}.panel-tip{font-size:12px;color:var(--muted);line-height:1.5}.panel-tip strong{color:var(--text)}.panel-tip-warning{color:var(--warn);background:#fbbf241a;padding:10px 12px;border-radius:8px;border:1px solid rgba(251,191,36,.3)}.panel-tip-warning strong{color:var(--warn)}.character-card{display:flex;align-items:center;gap:12px;padding:10px;background:#ffffff0a;border:1px solid var(--stroke);border-radius:12px;transition:background var(--speed) var(--ease)}.character-card:hover{background:#ffffff12}.character-card.protagonist{border-color:#7c5cff59;background:#7c5cff14}.character-card.detected{border-style:dashed;background:#ffffff05}.character-card-image.clickable-upload{cursor:pointer;transition:all var(--speed) var(--ease)}.character-card-image.clickable-upload:hover{background:#7c5cff26;border-color:var(--brand)}.character-card-image.clickable-upload:hover .upload-icon{color:var(--brand)}.character-placeholder.upload-icon{color:var(--muted);transition:color var(--speed) var(--ease)}.character-placeholder.upload-icon svg{width:24px;height:24px}.character-card-image{width:48px;height:48px;border-radius:10px;overflow:hidden;flex-shrink:0;background:#ffffff0f;border:1px solid var(--stroke)}.character-card-image img{width:100%;height:100%;object-fit:cover}.character-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:18px}.character-card-info{flex:1;min-width:0}.character-card-name{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.character-card-role{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.character-card-actions{display:flex;gap:6px;flex-shrink:0}.other-characters-list,.detected-characters-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}.no-protagonist-notice{padding:16px;background:#ffffff0a;border:1px dashed var(--stroke);border-radius:12px;text-align:center}.no-protagonist-notice p{margin:0 0 12px;color:var(--muted);font-size:13px}.icon-btn-sm{width:28px;height:28px;padding:0;font-size:14px;border-radius:8px}.icon-btn-danger:hover{border-color:var(--danger);color:var(--danger);background:#fb71851a}.btn-sm{padding:8px 14px;font-size:12px}.btn-full{width:100%}.btn-icon{margin-right:6px}.form-group{display:flex;flex-direction:column;gap:6px}.select-full{width:100%}.protagonist-required-notice{background:#fbbf241a;border:1px solid rgba(251,191,36,.3);border-radius:12px;padding:16px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.protagonist-required-notice p{margin:0;color:var(--text);font-size:14px;flex:1;min-width:200px}.warning-text{color:var(--warn);font-size:13px;font-weight:500}.story-card[data-can-generate=false] .thumb-placeholder{color:var(--muted);font-size:12px}#add-character-modal .modal-body{display:flex;flex-direction:column;gap:14px}#add-character-modal .dropzone{margin:0}#add-character-modal .upload-preview{width:100%;height:150px}#add-character-modal .upload-preview img{width:100%;height:100%;object-fit:contain;border-radius:12px}body[data-phase=compositor] .app-shell{height:100vh;max-height:100vh;min-height:100vh;overflow:hidden}body[data-phase=compositor] .main{grid-template-columns:1fr!important;padding:18px;height:100%;min-height:0}body[data-phase=compositor] .panel{display:none!important}body[data-phase=compositor] .workspace{height:100%;min-height:0;overflow:hidden}body[data-phase=compositor] .workspace-body{display:block;height:100%;min-height:0;position:relative;overflow:hidden}body[data-phase=compositor] .character-panel,body[data-phase=compositor] #character-panel{display:none!important;width:0!important;visibility:hidden!important}body[data-phase=compositor] .sidebar,body[data-phase=compositor] #sidebar-panel,body[data-phase=compositor] aside:not(.compositor-sidebar){display:none!important}body[data-phase=compositor] #results{padding:0;height:100%;min-height:0;position:relative;overflow:hidden}body[data-phase=compositor] .compositor-wrap{height:100%}.cart-wrap,.cart-btn{position:relative}.cart-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;border-radius:9px;display:flex;align-items:center;justify-content:center}.cart-badge.hidden{display:none}.cart-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:380px;max-height:70vh;background:#0b0f19;border:1px solid var(--stroke);border-radius:var(--radius-xl);box-shadow:0 16px 48px #00000080,0 0 0 1px #ffffff0d inset;z-index:1000;display:flex;flex-direction:column;overflow:hidden}.cart-dropdown.hidden{display:none}.cart-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--stroke);background:#ffffff05}.cart-title{font-size:14px;font-weight:600}.cart-close{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--muted);font-size:18px;cursor:pointer;border-radius:4px}.cart-close:hover{background:var(--panel);color:var(--text)}.cart-items{flex:1;overflow-y:auto;padding:8px;max-height:350px}.cart-empty{padding:40px 20px;text-align:center;color:var(--muted);font-size:13px}.cart-item{display:grid;grid-template-columns:50px 1fr auto auto auto;gap:10px;align-items:center;padding:10px;background:var(--panel);border-radius:var(--radius-md);margin-bottom:6px}.cart-item:last-child{margin-bottom:0}.cart-item-thumb{width:50px;height:50px;border-radius:6px;overflow:hidden;background:var(--panel2)}.cart-item-thumb img{width:100%;height:100%;object-fit:cover}.cart-item-thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:20px}.cart-item-details{min-width:0}.cart-item-title{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.cart-item-type{font-size:10px;color:var(--muted);margin-bottom:2px}.cart-item-price{font-size:10px;color:var(--brand)}.cart-item-quantity{display:flex;align-items:center;gap:4px}.qty-btn{width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--panel2);border:1px solid var(--stroke);border-radius:4px;color:var(--text);font-size:14px;cursor:pointer;transition:all .15s}.qty-btn:hover{background:var(--brand);border-color:var(--brand)}.qty-value{min-width:20px;text-align:center;font-size:12px;font-weight:600}.cart-item-line-total{font-size:12px;font-weight:600;color:var(--brand);min-width:50px;text-align:right}.cart-item-remove{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--muted);font-size:16px;cursor:pointer;border-radius:4px;opacity:.6}.cart-item-remove:hover{background:var(--danger);color:#fff;opacity:1}.cart-footer{padding:12px 16px;border-top:1px solid var(--stroke)}.cart-footer.hidden{display:none}.cart-total{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:14px;font-weight:600}#cart-total-price{font-size:18px;color:var(--brand)}.cart-checkout-btn{width:100%;padding:12px;background:linear-gradient(135deg,var(--brand),#9f7aea);border:none;border-radius:var(--radius-md);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s}.cart-checkout-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px #7c5cff66}.cart-checkout-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}@media (max-width: 480px){.cart-dropdown{width:calc(100vw - 20px);right:-10px}.cart-item{grid-template-columns:40px 1fr auto auto}.cart-item-line-total{display:none}}.order-modal-dialog{max-width:420px;width:90%;background:#0b0f19;border:1px solid var(--stroke);border-radius:var(--radius-xl);box-shadow:0 24px 64px #0009,0 0 0 1px #ffffff0d inset;overflow:hidden}.order-modal-content{padding:32px;text-align:center}.order-success-icon{width:200px;height:130px;margin:0 auto 24px;position:relative;display:flex;align-items:center;justify-content:center}.order-truck-wrapper{width:200px;height:100px;display:flex;flex-direction:column;position:relative;align-items:center;justify-content:flex-end;overflow-x:hidden}.order-truck-body{width:130px;height:fit-content;margin-bottom:6px;animation:orderTruckMotion 1s linear infinite}.order-truck-body svg{width:100%;height:auto}@keyframes orderTruckMotion{0%{transform:translateY(0)}50%{transform:translateY(3px)}to{transform:translateY(0)}}.order-truck-tires{width:130px;height:fit-content;display:flex;align-items:center;justify-content:space-between;padding:0 10px 0 15px;position:absolute;bottom:0}.order-truck-tires svg{width:24px}.order-road{width:100%;height:1.5px;background-color:#282828;position:relative;bottom:0;align-self:flex-end;border-radius:3px}.order-road:before{content:"";position:absolute;width:20px;height:100%;background-color:#282828;right:-50%;border-radius:3px;animation:orderRoadAnimation 1.4s linear infinite;border-left:10px solid #0b0f19}.order-road:after{content:"";position:absolute;width:10px;height:100%;background-color:#282828;right:-65%;border-radius:3px;animation:orderRoadAnimation 1.4s linear infinite;border-left:4px solid #0b0f19}.order-lamp-post{position:absolute;bottom:0;right:-90%;height:90px;animation:orderRoadAnimation 1.4s linear infinite;fill:#4b5563}@keyframes orderRoadAnimation{0%{transform:translate(0)}to{transform:translate(-350px)}}.order-success-checkmark{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);width:80px;height:80px;opacity:0;pointer-events:none}.order-success-checkmark.show{animation:orderCheckmarkAppear .5s ease-out forwards}.order-checkmark-svg{width:100%;height:100%}.order-checkmark-circle{stroke:#22c55e;stroke-width:2;stroke-dasharray:166;stroke-dashoffset:166}.order-success-checkmark.show .order-checkmark-circle{animation:orderCheckmarkCircle .6s ease-out .2s forwards}.order-checkmark-check{stroke:#22c55e;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:48;stroke-dashoffset:48}.order-success-checkmark.show .order-checkmark-check{animation:orderCheckmarkStroke .3s ease-out .6s forwards}@keyframes orderCheckmarkAppear{0%{opacity:0;transform:translate(-50%,-50%) scale(0)}50%{transform:translate(-50%,-50%) scale(1.1)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes orderCheckmarkCircle{to{stroke-dashoffset:0}}@keyframes orderCheckmarkStroke{to{stroke-dashoffset:0}}.order-modal-title{font-size:24px;font-weight:700;margin:0 0 8px;color:var(--text)}.order-modal-subtitle{font-size:14px;color:var(--muted);margin:0 0 24px}.order-details{background:#ffffff08;border:1px solid var(--stroke);border-radius:var(--radius-lg);padding:16px;margin-bottom:20px}.order-detail-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.order-detail-row:not(:last-child){border-bottom:1px solid var(--stroke)}.order-detail-label{font-size:13px;color:var(--muted)}.order-detail-value{font-size:14px;font-weight:600;color:var(--text)}.order-status-badge{background:linear-gradient(135deg,#8b5cf633,#6d28d933);color:#a78bfa;padding:4px 10px;border-radius:12px;font-size:12px}.order-modal-info{font-size:13px;color:var(--muted);line-height:1.5;margin:0 0 24px}.order-success-icon.complete .order-truck-wrapper{opacity:0;transition:opacity .3s ease-out}.orders-page{max-width:900px;margin:0 auto;padding:20px}.orders-list{display:flex;flex-direction:column;gap:16px}.order-card{background:#ffffff08;border:1px solid var(--stroke);border-radius:var(--radius-lg);overflow:hidden;transition:border-color .2s}.order-card:hover{border-color:#8b5cf64d}.order-card-header{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#ffffff05;border-bottom:1px solid var(--stroke)}.order-card-info{display:flex;flex-direction:column;gap:4px}.order-number{font-weight:600;font-size:14px;color:var(--text)}.order-date{font-size:12px;color:var(--muted)}.order-status{display:flex;align-items:center;gap:6px;padding:6px 12px;background:color-mix(in srgb,var(--status-color) 15%,transparent);border-radius:20px;font-size:13px;font-weight:500}.status-icon{font-size:14px}.status-label{color:var(--status-color)}.order-card-body{padding:16px;display:flex;flex-direction:column;gap:12px}.order-product{display:flex;gap:12px;align-items:center}.order-product-thumb{width:64px;height:64px;border-radius:var(--radius-md);overflow:hidden;background:var(--panel);flex-shrink:0}.order-product-thumb img{width:100%;height:100%;object-fit:cover}.order-thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:24px;background:#8b5cf61a}.order-product-details{flex:1;min-width:0}.order-product-title{font-weight:600;font-size:14px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.order-product-type{font-size:12px;color:var(--muted);margin-top:2px}.order-product-price{font-size:14px;font-weight:600;color:var(--accent);margin-top:4px}.order-tracking{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:#10b9811a;border-radius:var(--radius-md);border:1px solid rgba(16,185,129,.2)}.tracking-label{display:flex;flex-direction:column;gap:2px}.tracking-carrier{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.tracking-number{font-size:13px;font-weight:600;color:var(--text);font-family:monospace}.order-eta{display:flex;align-items:center;gap:8px;font-size:13px}.eta-label{color:var(--muted)}.eta-date{font-weight:500;color:var(--text)}.order-cancellation-notice{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#f59e0b1a;border-radius:var(--radius-md);border:1px solid rgba(245,158,11,.2);font-size:13px;color:#f59e0b}.order-card-actions{display:flex;gap:8px;padding:12px 16px;background:#ffffff05;border-top:1px solid var(--stroke)}.btn-danger-ghost{background:transparent;border:1px solid rgba(239,68,68,.3);color:#ef4444}.btn-danger-ghost:hover{background:#ef44441a;border-color:#ef444480}.btn-danger{background:#ef4444;border:1px solid #ef4444;color:#fff}.btn-danger:hover{background:#dc2626;border-color:#dc2626}.btn-ghost{background:transparent;border:1px solid var(--stroke);color:var(--muted)}.btn-ghost:hover{background:var(--panel);color:var(--text)}.btn-sm{padding:6px 12px;font-size:12px}.order-details-dialog{max-width:500px;width:90%}.order-details-content{display:flex;flex-direction:column;gap:24px}.order-details-section h4{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:0 0 12px}.order-product-large{display:flex;gap:16px;align-items:flex-start}.order-product-thumb-lg{width:80px;height:80px;border-radius:var(--radius-md);overflow:hidden;background:var(--panel);flex-shrink:0}.order-product-thumb-lg img{width:100%;height:100%;object-fit:cover}.order-product-info{flex:1}.order-product-info .order-product-title{font-size:16px;margin-bottom:4px}.order-product-info .order-product-type{font-size:13px}.order-product-info .order-product-price{font-size:16px;margin-top:8px}.order-timeline h4{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:0 0 16px}.status-timeline{display:flex;justify-content:space-between;position:relative}.status-timeline:before{content:"";position:absolute;top:16px;left:20px;right:20px;height:2px;background:var(--stroke)}.timeline-step{display:flex;flex-direction:column;align-items:center;gap:8px;position:relative;z-index:1}.timeline-icon{width:32px;height:32px;border-radius:50%;background:var(--panel);border:2px solid var(--stroke);display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .2s}.timeline-step.complete .timeline-icon{background:#22c55e33;border-color:#22c55e}.timeline-step.current .timeline-icon{background:#8b5cf633;border-color:#8b5cf6;box-shadow:0 0 0 4px #8b5cf61a}.timeline-label{font-size:11px;color:var(--muted);text-align:center}.timeline-step.complete .timeline-label,.timeline-step.current .timeline-label{color:var(--text);font-weight:500}.tracking-details,.order-dates{display:flex;flex-direction:column;gap:8px}.tracking-row,.date-row{display:flex;justify-content:space-between;align-items:center;font-size:13px}.tracking-row .tracking-label,.date-row .date-label{color:var(--muted)}.tracking-row .tracking-value,.date-row .date-value{color:var(--text);font-weight:500}.cancel-warning{padding:16px;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-md);margin-bottom:20px}.cancel-warning p{margin:0;font-size:14px;color:var(--text)}.cancel-warning .cancel-note{margin-top:8px;font-size:12px;color:var(--muted)}.form-actions{display:flex;gap:12px;margin-top:8px}.form-actions .btn{flex:1}@media (max-width: 600px){.order-card-header{flex-direction:column;align-items:flex-start;gap:12px}.order-card-actions{flex-wrap:wrap}.order-card-actions .btn{flex:1;min-width:100px}.status-timeline{flex-wrap:wrap;gap:16px}.status-timeline:before{display:none}.timeline-step{flex-direction:row;width:100%;justify-content:flex-start;gap:12px}}.order-card-cancelled{opacity:.7}.order-card-cancelled .order-product-thumb img{filter:grayscale(50%)}.cart-modal-dialog{max-width:420px;width:90%}.cart-modal-body{display:flex!important;flex-direction:column!important;grid-template-columns:unset!important;padding:0!important;gap:0!important}.cart-modal-subtitle{padding:0 24px;margin:0 0 16px;font-size:13px;color:var(--muted)}.cart-section{border-bottom:1px solid var(--stroke);padding:20px 24px}.cart-section-header{display:flex;align-items:center;gap:12px}.cart-section-icon{font-size:24px;line-height:1;flex-shrink:0}.cart-section-title{font-size:15px;font-weight:600;color:var(--text)}.cart-section-desc{font-size:12px;color:var(--muted);margin-top:2px}.cart-section-price{font-size:16px;font-weight:600;color:var(--accent);flex-shrink:0}.cart-section-controls{display:flex;justify-content:flex-end;margin-top:12px}.cart-section-hardcover .cart-section-header{margin-bottom:0}#hardcover-sizes-container{margin-top:16px}.cart-qty-control{display:flex;align-items:center;gap:0;background:var(--panel);border:1px solid var(--stroke);border-radius:var(--radius-md);overflow:hidden}.qty-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text);font-size:18px;cursor:pointer;transition:background .15s}.qty-btn:hover{background:#ffffff1a}.qty-value{min-width:40px;text-align:center;font-size:15px;font-weight:600;color:var(--text)}#hardcover-sizes-container{display:flex;flex-direction:column;gap:12px}.hardcover-size-row{display:flex;align-items:center;gap:12px;padding:12px;background:#ffffff05;border:1px solid var(--stroke);border-radius:var(--radius-md)}.hardcover-size-select-wrap{flex:1;display:flex;flex-direction:column;gap:4px}.hardcover-size-select{width:100%;padding:10px 36px 10px 12px;background:var(--panel);border:1px solid var(--stroke);border-radius:var(--radius-md);color:var(--text);font-size:13px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.hardcover-row-price{font-size:14px;font-weight:600;color:var(--accent)}.hardcover-size-controls{display:flex;align-items:center;gap:8px}.hardcover-remove-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--stroke);border-radius:var(--radius-sm);color:var(--muted);font-size:16px;cursor:pointer;transition:all .15s}.add-another-size-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;margin-top:12px;background:transparent;border:1px dashed var(--stroke);border-radius:var(--radius-md);color:var(--muted);font-size:13px;cursor:pointer;transition:all .15s}.cart-modal-footer{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#ffffff05;border-top:1px solid var(--stroke)}.cart-modal-total span:first-child{font-size:12px;color:var(--muted)}.cart-modal-total span:last-child{font-size:20px;font-weight:700;color:var(--text)}.add-to-cart-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;background:linear-gradient(135deg,#8b5cf6,#6d28d9);border:none;border-radius:var(--radius-md);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s}.add-to-cart-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf666}.add-to-cart-btn:disabled{opacity:.5;cursor:not-allowed}.compositor-btn-wrap{display:flex;align-items:center;gap:10px}.compositor-status-text{font-size:12px;color:var(--muted);opacity:.8}.btn-badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;margin-left:6px;background:#ffffff26;border-radius:10px;font-size:11px;font-weight:500}.cart-modal-dialog{max-width:480px;width:94%;border-radius:var(--radius-lg);overflow:visible}.cart-modal-body{display:flex!important;flex-direction:column!important;padding:0!important;gap:0!important;overflow:visible!important}.cart-modal-subtitle{padding:20px 24px 0;margin:0 0 8px;font-size:14px;color:var(--muted);line-height:1.5}.cart-section{padding:24px;border-bottom:1px solid var(--stroke);transition:background .15s}.cart-section:hover{background:#ffffff05}.cart-section:last-of-type{border-bottom:none}.cart-section-header{display:flex;align-items:flex-start;gap:16px}.cart-section-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#8b5cf626,#8b5cf60d);border-radius:12px;font-size:24px;flex-shrink:0}.cart-section-info{flex:1;min-width:0}.cart-section-title{font-size:16px;font-weight:600;color:var(--text);margin-bottom:4px}.cart-section-desc{font-size:13px;color:var(--muted);line-height:1.4}.cart-section-price{font-size:18px;font-weight:700;color:var(--accent);flex-shrink:0;padding-top:2px}.cart-section-controls{display:flex;justify-content:flex-end;margin-top:16px}.cart-qty-control{display:inline-flex;align-items:center;gap:0;background:var(--panel);border:1px solid var(--stroke);border-radius:10px;overflow:hidden}.qty-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text);font-size:20px;font-weight:300;cursor:pointer;transition:all .15s;-webkit-user-select:none;user-select:none}.qty-btn:hover{background:#8b5cf61a;color:var(--accent)}.qty-btn:active{background:#8b5cf633;transform:scale(.95)}.qty-value{min-width:48px;text-align:center;font-size:16px;font-weight:600;color:var(--text);padding:0 4px}#hardcover-sizes-container{margin-top:20px;display:flex;flex-direction:column;gap:12px}.hardcover-size-row{display:flex;align-items:center;gap:16px;padding:16px;background:#ffffff08;border:1px solid var(--stroke);border-radius:12px;transition:all .15s}.hardcover-size-row:hover{border-color:#8b5cf64d;background:#8b5cf608}.hardcover-size-select-wrap{flex:1;display:flex;flex-direction:column;gap:6px}.hardcover-size-select{width:100%;padding:12px 40px 12px 14px;background:var(--panel);border:1px solid var(--stroke);border-radius:8px;color:var(--text);font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;transition:all .15s}.hardcover-size-select:hover{border-color:#8b5cf680}.hardcover-size-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #8b5cf626}.hardcover-row-price{font-size:15px;font-weight:600;color:var(--accent)}.hardcover-size-controls{display:flex;align-items:center;gap:10px}.hardcover-remove-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--muted);font-size:18px;cursor:pointer;transition:all .15s}.hardcover-remove-btn:hover{background:#ef44441a;border-color:#ef44444d;color:#ef4444}.add-another-size-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;margin-top:12px;background:transparent;border:2px dashed var(--stroke);border-radius:12px;color:var(--muted);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.add-another-size-btn:hover{border-color:var(--accent);color:var(--accent);background:#8b5cf60d}.add-another-size-btn.hidden{display:none}.cart-modal-footer{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;background:#0003;border-top:1px solid var(--stroke);gap:16px;margin-top:auto}.cart-modal-total{display:flex;flex-direction:column;gap:2px}.cart-modal-total span:first-child{font-size:13px;color:var(--muted);font-weight:500}.cart-modal-total span:last-child{font-size:24px;font-weight:700;color:var(--text);letter-spacing:-.5px}.add-to-cart-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 28px;background:linear-gradient(135deg,#8b5cf6,#7c3aed,#6d28d9);border:none;border-radius:12px;color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #8b5cf64d}.add-to-cart-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #8b5cf666}.add-to-cart-btn:active:not(:disabled){transform:translateY(0)}.add-to-cart-btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.add-to-cart-btn svg{width:18px;height:18px}#cart-modal-error{margin:0 24px 16px;padding:12px 16px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#f87171;font-size:13px}#cart-modal-error.hidden{display:none}#add-to-cart-modal .modal-dialog{animation:modalSlideIn .25s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.qty-value{transition:transform .15s,color .15s}.qty-value.bump{transform:scale(1.2);color:var(--accent)}.hardcover-size-row{animation:rowSlideIn .2s ease-out}@keyframes rowSlideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.add-to-cart-btn.loading{pointer-events:none}#cart-modal-subtotal{transition:color .15s}#cart-modal-subtotal.updated{color:var(--accent)}#close-cart-modal{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:8px;color:var(--muted);cursor:pointer;transition:all .15s}#close-cart-modal:hover{background:#ffffff1a;color:var(--text)}.cart-section:first-of-type .cart-section-icon{background:linear-gradient(135deg,#3b82f633,#3b82f60d);color:#3b82f6}.cart-section-hardcover .cart-section-icon{background:linear-gradient(135deg,#8b5cf633,#8b5cf60d);color:#8b5cf6}.cart-success-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(100px);display:flex;align-items:center;gap:10px;padding:14px 20px;background:linear-gradient(135deg,#10b981,#059669);border-radius:12px;color:#fff;font-size:14px;font-weight:500;box-shadow:0 8px 30px #10b98166;z-index:10001;opacity:0;transition:transform .3s ease-out,opacity .3s ease-out}.cart-success-toast.show{transform:translate(-50%) translateY(0);opacity:1}.cart-success-toast svg{flex-shrink:0}.spinner-icon{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.qty-spinner.spinner{width:14px;height:14px;border-width:2px;margin:0 auto}.cart-item.removing{opacity:.5;pointer-events:none}.cart-section-ebook{cursor:pointer;transition:background .2s,border-color .2s}.cart-section-toggle{display:flex;align-items:center;gap:16px;cursor:pointer;width:100%}.cart-checkbox-input{position:absolute;opacity:0;pointer-events:none}.cart-checkbox-box{width:24px;height:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--panel);border:2px solid var(--stroke);border-radius:6px;transition:all .2s}.cart-checkbox-box svg{opacity:0;transform:scale(.5);transition:all .15s;color:#fff}.cart-checkbox-input:checked+.cart-checkbox-box{background:linear-gradient(135deg,#8b5cf6,#6d28d9);border-color:#8b5cf6}.cart-checkbox-input:checked+.cart-checkbox-box svg{opacity:1;transform:scale(1)}.cart-section-ebook:hover .cart-checkbox-box{border-color:#8b5cf680}.cart-section-ebook.selected{background:#8b5cf614}.cart-section-toggle .cart-section-icon{width:44px;height:44px}.cart-section-toggle .cart-section-info{flex:1}.cart-section-toggle .cart-section-price{font-size:17px}.custom-select{position:relative;width:100%}.custom-select-trigger{width:100%;display:flex;align-items:center;gap:8px;padding:12px 14px;background:var(--panel);border:1px solid var(--stroke);border-radius:10px;color:var(--text);font-size:14px;text-align:left;cursor:pointer;transition:all .15s}.custom-select-trigger:hover{border-color:#8b5cf680;background:#ffffff08}.custom-select.open .custom-select-trigger{border-color:var(--accent);box-shadow:0 0 0 3px #8b5cf626}.custom-select-value{font-weight:500}.custom-select-dims{color:var(--muted);font-size:13px}.custom-select-arrow{margin-left:auto;color:var(--muted);transition:transform .2s;flex-shrink:0}.custom-select.open .custom-select-arrow{transform:rotate(180deg)}.custom-select-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#1e1e2e;border:1px solid var(--stroke);border-radius:12px;box-shadow:0 12px 40px #00000080;z-index:10002;opacity:0;visibility:hidden;transform:translateY(-8px);transition:all .2s ease-out;max-height:280px;overflow-y:auto}.custom-select.open .custom-select-dropdown{opacity:1;visibility:visible;transform:translateY(0)}.custom-select-option{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;transition:background .1s;border-bottom:1px solid rgba(255,255,255,.08);background:transparent}.custom-select-option:last-child{border-bottom:none}.custom-select-option:hover{background:#8b5cf626}.custom-select-option.selected{background:#8b5cf633}.custom-select-option .option-name{font-weight:500;color:var(--text)}.custom-select-option .option-dims{color:var(--muted);font-size:13px}.custom-select-option .option-price{margin-left:auto;font-weight:600;color:var(--accent);font-size:14px}.custom-select-option .option-check{width:18px;height:18px;color:var(--accent);opacity:0;flex-shrink:0}.custom-select-option.selected .option-check{opacity:1}.hardcover-size-select{display:none}.compositor-canva{--comp-bg: #1a1a2e;--comp-sidebar-bg: #16213e;--comp-surface: #1f2937;--comp-surface-hover: #374151;--comp-border: #374151;--comp-text: #f3f4f6;--comp-text-muted: #9ca3af;--comp-primary: #8b5cf6;--comp-primary-hover: #7c3aed;--comp-canvas-bg: #0f172a;--comp-taskbar-bg: #1e293b;--comp-radius: 6px;--comp-radius-lg: 10px}.compositor-canva{display:grid;grid-template-rows:48px 1fr;height:100%;width:100%;background:var(--comp-bg);color:var(--comp-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow:hidden;position:relative}.compositor-canva *,.compositor-canva *:before,.compositor-canva *:after{box-sizing:border-box}.compositor-topbar{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 12px;background:var(--comp-surface);border-bottom:1px solid var(--comp-border)}.topbar-left,.topbar-center,.topbar-right{display:flex;align-items:center;gap:8px}.topbar-btn{display:flex;align-items:center;justify-content:center;gap:5px;padding:5px 8px;background:transparent;border:none;border-radius:var(--comp-radius);color:var(--comp-text);font-size:12px;cursor:pointer;transition:background .15s}.topbar-btn:hover{background:var(--comp-surface-hover)}.topbar-btn-primary{background:var(--comp-primary);font-weight:500}.topbar-btn-primary:hover{background:var(--comp-primary-hover)}.topbar-divider{width:1px;height:18px;background:var(--comp-border)}.topbar-title{font-weight:500;font-size:13px;color:var(--comp-text);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-select{padding:4px 6px;background:var(--comp-surface-hover);border:1px solid var(--comp-border);border-radius:var(--comp-radius);color:var(--comp-text);font-size:11px;cursor:pointer}.topbar-checkbox{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--comp-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.topbar-checkbox input[type=checkbox]{width:14px;height:14px;accent-color:var(--comp-primary);cursor:pointer}.topbar-checkbox:hover{color:var(--comp-text)}.page-indicator{font-size:12px;color:var(--comp-text-muted);min-width:80px;text-align:center}.zoom-controls{display:flex;align-items:center;gap:4px;background:var(--comp-surface-hover);border-radius:var(--comp-radius);padding:2px}.zoom-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:4px;color:var(--comp-text);font-size:14px;cursor:pointer;transition:background .1s}.zoom-btn:hover{background:var(--comp-surface)}.zoom-btn:active{background:var(--comp-primary)}.zoom-level{font-size:11px;font-weight:500;color:var(--comp-text);min-width:40px;text-align:center;cursor:pointer;padding:2px 4px;border-radius:3px}.zoom-level:hover{background:var(--comp-surface)}.zoom-slider{width:80px;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--comp-border);border-radius:2px;cursor:pointer}.zoom-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;background:var(--comp-primary);border-radius:50%;cursor:pointer}.zoom-slider::-moz-range-thumb{width:12px;height:12px;background:var(--comp-primary);border-radius:50%;cursor:pointer;border:none}.compositor-main{display:flex;flex:1;min-height:0;overflow:hidden;position:relative}.compositor-sidebar{width:220px;min-width:220px;background:var(--comp-sidebar-bg);border-right:1px solid var(--comp-border);display:flex;flex-direction:column;overflow:hidden}.sidebar-header{padding:10px 14px;border-bottom:1px solid var(--comp-border);flex-shrink:0}.sidebar-header h3{margin:0;font-size:13px;font-weight:600}.sidebar-content{flex:1;overflow-y:auto}.sidebar-section{border-bottom:1px solid var(--comp-border)}.sidebar-section-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;color:var(--comp-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.sidebar-section-header:hover{color:var(--comp-text)}.section-chevron{transition:transform .2s}.section-chevron.rotated{transform:rotate(-90deg)}.color-themes-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:8px 10px 12px;max-height:140px;overflow-y:auto;transition:max-height .2s}.color-themes-grid.collapsed{max-height:0;padding-top:0;padding-bottom:0;overflow:hidden}.color-theme-btn{display:flex;align-items:center;justify-content:center;padding:0;background:transparent;border:2px solid transparent;border-radius:6px;cursor:pointer;transition:all .15s}.color-theme-btn:hover{border-color:var(--comp-surface-hover);transform:scale(1.08)}.color-theme-btn.active{border-color:var(--comp-primary);box-shadow:0 0 0 1px var(--comp-primary)}.color-theme-swatch{width:36px;height:36px;border-radius:4px;border:1px solid;position:relative;overflow:hidden}.color-theme-accent{position:absolute;bottom:0;left:0;right:0;height:8px}.template-gallery{overflow-y:auto;padding:10px}.template-category-section{margin-bottom:12px}.template-category-header{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--comp-text-muted);padding:2px 4px 6px;position:sticky;top:0;background:var(--comp-sidebar-bg);z-index:1}.template-category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.template-card{background:var(--comp-surface);border-radius:var(--comp-radius);overflow:hidden;cursor:pointer;transition:all .15s;border:2px solid transparent}.template-card:hover{border-color:var(--comp-surface-hover)}.template-card.selected{border-color:var(--comp-primary);box-shadow:0 0 0 1px var(--comp-primary)}.template-preview-visual{aspect-ratio:1;padding:4px;display:flex;align-items:center;justify-content:center}.template-preview-visual svg{width:100%;height:100%}.template-name{font-size:9px;font-weight:500;color:var(--comp-text);padding:4px;text-align:center;background:var(--comp-surface);border-top:1px solid var(--comp-border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compositor-canvas-area{flex:1;display:flex;flex-direction:column;background:var(--comp-canvas-bg);min-width:0;min-height:0;overflow:hidden;position:relative}.canvas-container{position:absolute;top:0;left:0;right:0;bottom:76px;display:flex;align-items:center;justify-content:center;padding:20px;overflow:hidden}.preview-wrapper{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;transform-origin:center center;transition:transform .1s ease-out}.page-preview{background:#fff;border-radius:var(--comp-radius);box-shadow:0 8px 24px #0006;overflow:visible;max-width:100%;max-height:100%;display:flex;align-items:center;justify-content:center}.page-preview svg{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;pointer-events:all}.page-preview svg image,.page-preview svg g,.page-preview svg text{pointer-events:all;cursor:pointer}.preview-loading,.preview-error{display:flex;align-items:center;justify-content:center;width:280px;height:280px;color:var(--comp-text-muted)}.spinner{width:24px;height:24px;border:2px solid var(--comp-border);border-top-color:var(--comp-primary);border-radius:50%;animation:spin .6s linear infinite}.selection-overlay{position:absolute;border:2px solid var(--comp-primary);border-radius:3px;pointer-events:none;background:#8b5cf60d}.selection-overlay:not(.hidden){pointer-events:auto;cursor:move}.selection-overlay.hidden{display:none}.resize-handle{position:absolute;width:10px;height:10px;background:#fff;border:2px solid var(--comp-primary);border-radius:2px}.resize-handle.nw{top:-5px;left:-5px;cursor:nwse-resize}.resize-handle.ne{top:-5px;right:-5px;cursor:nesw-resize}.resize-handle.sw{bottom:-5px;left:-5px;cursor:nesw-resize}.resize-handle.se{bottom:-5px;right:-5px;cursor:nwse-resize}.thumbnails-strip{position:absolute;bottom:0;left:0;right:0;background:var(--comp-surface);border-top:1px solid var(--comp-border);padding:8px 16px;height:60px;z-index:50;display:flex;align-items:center}.preview-thumbnails{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;height:100%;align-items:center;scrollbar-width:thin}.preview-thumbnails::-webkit-scrollbar{height:4px}.preview-thumbnails::-webkit-scrollbar-track{background:transparent}.preview-thumbnails::-webkit-scrollbar-thumb{background:var(--comp-border);border-radius:2px}.thumbnail{flex-shrink:0;cursor:pointer;transition:transform .1s;display:flex;flex-direction:column;align-items:center;gap:2px}.thumbnail:hover{transform:scale(1.05)}.thumbnail.active .thumbnail-inner{box-shadow:0 0 0 2px var(--comp-primary)}.thumbnail-inner{width:32px;height:32px;border-radius:3px;overflow:hidden;background:var(--comp-surface-hover)}.thumbnail-inner img{width:100%;height:100%;object-fit:cover}.thumbnail-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:8px;color:var(--comp-text-muted);background:#fff}.thumbnail-number{display:block;text-align:center;font-size:8px;color:var(--comp-text-muted);line-height:1}.floating-taskbar{position:absolute;bottom:72px;left:50%;transform:translate(-50%);background:var(--comp-taskbar-bg);border:1px solid var(--comp-border);border-radius:var(--comp-radius-lg);padding:8px 14px;box-shadow:0 8px 24px #0006;z-index:100;transition:opacity .15s,transform .15s}.floating-taskbar.hidden{opacity:0;transform:translate(-50%) translateY(10px);pointer-events:none}.taskbar-content{display:flex;align-items:center;gap:10px}.taskbar-section{display:flex;align-items:center;gap:6px}.taskbar-label{font-size:10px;font-weight:500;color:var(--comp-text-muted);text-transform:uppercase;letter-spacing:.3px}.taskbar-value{font-size:11px;font-weight:500;color:var(--comp-text);min-width:36px;text-align:center}.taskbar-divider{width:1px;height:24px;background:var(--comp-border)}.taskbar-frames{display:flex;gap:2px}.taskbar-frame-btn{width:28px;height:28px;padding:2px;background:transparent;border:2px solid transparent;border-radius:4px;color:var(--comp-text-muted);cursor:pointer;transition:all .1s}.taskbar-frame-btn:hover{background:var(--comp-surface-hover);color:var(--comp-text)}.taskbar-frame-btn.active{border-color:var(--comp-primary);color:var(--comp-primary);background:#8b5cf626}.taskbar-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:var(--comp-surface-hover);border:1px solid var(--comp-border);border-radius:4px;color:var(--comp-text);font-size:13px;cursor:pointer;transition:all .1s}.taskbar-btn:hover{background:var(--comp-primary);border-color:var(--comp-primary)}.taskbar-btn.active{background:var(--comp-primary);border-color:var(--comp-primary);color:#fff}.taskbar-btn:disabled{opacity:.4;cursor:not-allowed}.taskbar-align-btns,.taskbar-snap-btns{display:flex;gap:2px}.taskbar-align-btns .taskbar-btn,.taskbar-snap-btns .taskbar-btn{width:24px;height:24px}.taskbar-btn-icon{width:26px;height:26px;padding:0;background:transparent;border:none;color:var(--comp-text-muted);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center}.taskbar-btn-icon:hover{color:var(--comp-text)}.taskbar-btn-apply{display:flex;align-items:center;gap:5px;padding:6px 10px;background:transparent;border:1px solid var(--comp-border);border-radius:4px;color:var(--comp-text-muted);font-size:10px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.taskbar-btn-apply:hover{background:var(--comp-primary);border-color:var(--comp-primary);color:#fff}.taskbar-btn-apply.applied{background:#10b981;border-color:#10b981;color:#fff}.taskbar-select{padding:4px 6px;background:var(--comp-surface-hover);border:1px solid var(--comp-border);border-radius:4px;color:var(--comp-text);font-size:11px;cursor:pointer;min-width:110px}.taskbar-fontsize,.taskbar-crop,.taskbar-pan{display:flex;align-items:center;gap:3px}.taskbar-colors{display:flex;gap:4px}.taskbar-color-btn{width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .1s}.taskbar-color-btn:hover{transform:scale(1.15)}.taskbar-color-btn.active{box-shadow:0 0 0 2px var(--comp-taskbar-bg),0 0 0 4px var(--comp-primary)}.taskbar-btn-mode{display:flex;align-items:center;gap:5px;padding:6px 10px;background:var(--comp-surface-hover);border:1px solid var(--comp-border);border-radius:4px;color:var(--comp-text);font-size:11px;font-weight:500;cursor:pointer;transition:all .15s}.taskbar-btn-mode:hover{background:var(--comp-primary);border-color:var(--comp-primary)}.taskbar-btn-mode.active{background:var(--comp-primary);border-color:var(--comp-primary);color:#fff}.page-preview.crop-mode{box-shadow:0 0 0 3px var(--comp-primary),0 8px 24px #0006}.crop-overlay-image,.crop-frame-border{pointer-events:none}.compositor-wrap .modal{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:200}.compositor-wrap .modal.hidden{display:none}.compositor-wrap .modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.compositor-wrap .modal-dialog{position:relative;background:var(--comp-surface);border-radius:var(--comp-radius-lg);width:90%;max-width:520px;box-shadow:0 16px 48px #00000080}.compositor-wrap .modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--comp-border)}.compositor-wrap .modal-header h3{margin:0;font-size:15px;font-weight:600}.compositor-wrap .modal-close{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:4px;color:var(--comp-text-muted);font-size:18px;cursor:pointer}.compositor-wrap .modal-close:hover{background:var(--comp-surface-hover);color:var(--comp-text)}.compositor-wrap .modal-body{padding:16px}.export-options-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:14px}.export-option{padding:14px;background:var(--comp-surface-hover);border:2px solid transparent;border-radius:var(--comp-radius);text-align:center;cursor:pointer;transition:all .15s}.export-option:hover{border-color:var(--comp-primary)}.export-option-icon{font-size:24px;margin-bottom:4px}.export-option-label{font-weight:600;font-size:12px;margin-bottom:2px}.export-option-desc{font-size:10px;color:var(--comp-text-muted)}.export-quality{margin-bottom:10px}.export-quality label{display:block;font-size:11px;font-weight:500;color:var(--comp-text-muted);margin-bottom:4px}.export-quality select{width:100%;padding:6px 8px;background:var(--comp-surface-hover);border:1px solid var(--comp-border);border-radius:var(--comp-radius);color:var(--comp-text);font-size:12px}.export-progress.hidden{display:none}.progress-bar{height:5px;background:var(--comp-surface-hover);border-radius:3px;overflow:hidden;margin-bottom:4px}.progress-fill{height:100%;background:linear-gradient(90deg,var(--comp-primary),#06b6d4);border-radius:3px;transition:width .2s}.progress-text{font-size:11px;color:var(--comp-text-muted);text-align:center}.template-gallery::-webkit-scrollbar,.preview-thumbnails::-webkit-scrollbar{width:5px;height:5px}.template-gallery::-webkit-scrollbar-track,.preview-thumbnails::-webkit-scrollbar-track{background:transparent}.template-gallery::-webkit-scrollbar-thumb,.preview-thumbnails::-webkit-scrollbar-thumb{background:var(--comp-border);border-radius:3px}.topbar-dropdown-wrap{position:relative}.topbar-dropdown-btn{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--comp-surface-hover);border:1px solid var(--comp-border);border-radius:var(--comp-radius);color:var(--comp-text);font-size:11px;cursor:pointer;transition:all .15s}.topbar-dropdown-btn:hover{background:var(--comp-surface);border-color:var(--comp-primary)}.topbar-dropdown-btn svg{flex-shrink:0}.dropdown-label{white-space:nowrap}.dropdown-caret{opacity:.6;margin-left:2px}.topbar-dropdown{position:absolute;top:100%;right:0;margin-top:4px;background:var(--comp-surface);border:1px solid var(--comp-border);border-radius:var(--comp-radius);box-shadow:0 8px 24px #0006;z-index:150;min-width:140px;overflow:hidden}.topbar-dropdown.hidden{display:none}.dropdown-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:transparent;border:none;color:var(--comp-text);font-size:12px;cursor:pointer;transition:background .1s;text-align:left}.dropdown-item:hover{background:var(--comp-surface-hover)}.dropdown-item.active{background:#8b5cf626;color:var(--comp-primary)}.dropdown-item svg{flex-shrink:0;opacity:.8}#ab-pattern-btn.active{background:var(--comp-primary);border-color:var(--comp-primary);color:#fff}.side-by-side-container{display:flex;gap:4px;align-items:center;justify-content:center}.spread-page{position:relative;background:#fff;border-radius:var(--comp-radius);box-shadow:0 4px 16px #0000004d;transition:box-shadow .2s;overflow:hidden}.spread-page.selected{box-shadow:0 0 0 3px var(--comp-primary),0 4px 16px #0000004d}.spread-page svg{display:block;max-height:100%;width:auto;pointer-events:all}.spread-selection-overlay{position:absolute;border:2px solid var(--comp-primary);border-radius:3px;background:#8b5cf60d;pointer-events:auto;cursor:move;z-index:10}.spread-selection-overlay.hidden{display:none}.spread-selection-overlay .resize-handle{position:absolute;width:10px;height:10px;background:#fff;border:2px solid var(--comp-primary);border-radius:2px}.spread-selection-overlay .resize-handle.nw{top:-5px;left:-5px;cursor:nwse-resize}.spread-selection-overlay .resize-handle.ne{top:-5px;right:-5px;cursor:nesw-resize}.spread-selection-overlay .resize-handle.sw{bottom:-5px;left:-5px;cursor:nesw-resize}.spread-selection-overlay .resize-handle.se{bottom:-5px;right:-5px;cursor:nwse-resize}.compositor-canva[data-view-mode=grid] .compositor-main,.compositor-canva[data-view-mode=list] .compositor-main{display:flex}.compositor-canva[data-view-mode=grid] .compositor-canvas-area,.compositor-canva[data-view-mode=list] .compositor-canvas-area{flex:1}.compositor-canva[data-view-mode=grid] .canvas-container,.compositor-canva[data-view-mode=list] .canvas-container{padding:0}.compositor-canva[data-view-mode=grid] .preview-wrapper,.compositor-canva[data-view-mode=list] .preview-wrapper{width:100%;height:100%}.compositor-canva[data-view-mode=grid] .page-preview,.compositor-canva[data-view-mode=list] .page-preview{width:100%;height:100%;background:transparent;box-shadow:none;border-radius:0}.view-grid .canvas-container{padding:0}.grid-view-container{width:100%;height:100%;overflow:hidden;position:relative;cursor:grab;background:var(--comp-canvas-bg)}.grid-view-inner{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;padding:24px;transform-origin:top left;transition:transform .1s ease-out}.grid-page{background:#fff;border-radius:var(--comp-radius-lg);box-shadow:0 4px 16px #00000040;cursor:pointer;transition:transform .15s,box-shadow .15s;overflow:hidden}.grid-page:hover{transform:translateY(-4px);box-shadow:0 12px 32px #00000059}.grid-page svg{display:block;width:100%;height:auto}.grid-page-label{display:block;text-align:center;padding:10px;font-size:12px;font-weight:600;color:var(--comp-text);background:var(--comp-surface);border-top:1px solid var(--comp-border)}.grid-zoom-controls{position:absolute;bottom:20px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;background:var(--comp-taskbar-bg);border:1px solid var(--comp-border);border-radius:var(--comp-radius-lg);padding:8px 16px;box-shadow:0 4px 16px #0000004d}.grid-zoom-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--comp-surface-hover);border:1px solid var(--comp-border);border-radius:6px;color:var(--comp-text);font-size:16px;cursor:pointer;transition:all .1s}.grid-zoom-btn:hover{background:var(--comp-primary);border-color:var(--comp-primary)}#grid-zoom-level{font-size:12px;font-weight:600;color:var(--comp-text);min-width:50px;text-align:center}.list-view-container{display:flex;flex-direction:column;gap:16px;padding:24px;max-height:100%;overflow-y:auto;background:var(--comp-canvas-bg)}.list-page{display:flex;gap:20px;background:var(--comp-surface);border:1px solid var(--comp-border);border-radius:var(--comp-radius-lg);padding:16px;cursor:pointer;transition:all .15s}.list-page:hover{background:var(--comp-surface-hover);border-color:var(--comp-primary);transform:translate(4px)}.list-page-preview{flex-shrink:0;width:140px;background:#fff;border-radius:var(--comp-radius);overflow:hidden;box-shadow:0 2px 8px #0003}.list-page-preview svg{display:block;width:100%;height:auto}.list-page-info{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0;padding:8px 0}.list-page-number{font-size:14px;font-weight:700;color:var(--comp-text)}.list-page-text{font-size:13px;color:var(--comp-text-muted);line-height:1.5;overflow:hidden;text-overflow:ellipsis}.thumbnail-spread{display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;transition:transform .1s}.thumbnail-spread:hover{transform:scale(1.05)}.thumbnail-spread.active .thumbnail-spread-inner{box-shadow:0 0 0 2px var(--comp-primary)}.thumbnail-spread-inner{display:flex;gap:1px;background:var(--comp-surface);border-radius:3px;padding:2px;box-shadow:0 2px 6px #0003}.thumbnail-spread-page{width:24px;height:30px;background:#fff;border-radius:2px;overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:7px;color:var(--comp-text-muted)}.thumbnail-spread-page svg{width:100%;height:100%}.thumbnail-spread-label{font-size:8px;color:var(--comp-text-muted);font-weight:500;line-height:1}.thumbnail-inner svg{width:100%;height:100%}.compositor-wrap .modal-dialog-sm{max-width:480px}.compositor-wrap .modal-text{font-size:13px;color:var(--comp-text);margin:0 0 12px;line-height:1.5}.compositor-wrap .modal-text-muted{color:var(--comp-text-muted);font-size:11px}.compositor-wrap .modal-list{margin:0 0 16px;padding-left:20px;font-size:12px;color:var(--comp-text);line-height:1.6}.compositor-wrap .modal-list li{margin-bottom:4px}.compositor-wrap .modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.compositor-wrap .modal-btn{padding:8px 16px;border-radius:var(--comp-radius);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.compositor-wrap .modal-btn-secondary{background:var(--comp-surface-hover);border:1px solid var(--comp-border);color:var(--comp-text)}.compositor-wrap .modal-btn-secondary:hover{background:var(--comp-surface)}.compositor-wrap .modal-btn-primary{background:var(--comp-primary);border:1px solid var(--comp-primary);color:#fff}.compositor-wrap .modal-btn-primary:hover{background:var(--comp-primary-hover)}.cart-modal-subtitle{color:var(--comp-text-muted);font-size:13px;margin:0 0 16px}.cart-product-row{display:grid;grid-template-columns:40px 1fr auto auto;gap:12px;align-items:center;padding:14px;background:var(--comp-surface-hover);border-radius:var(--comp-radius);margin-bottom:10px}.cart-product-icon{font-size:28px}.cart-product-info{min-width:0}.cart-product-name{font-size:14px;font-weight:600;margin-bottom:2px}.cart-product-desc{font-size:11px;color:var(--comp-text-muted)}.cart-product-size{margin-top:8px;display:flex;align-items:center;gap:8px}.cart-product-size label{font-size:11px;color:var(--comp-text-muted)}.cart-product-size select{flex:1;padding:4px 8px;background:var(--comp-surface);border:1px solid var(--comp-border);border-radius:var(--comp-radius);color:var(--comp-text);font-size:11px}.cart-product-price{font-size:16px;font-weight:700;color:var(--comp-primary);min-width:60px;text-align:right}.cart-product-qty{display:flex;align-items:center;gap:6px}.cart-product-qty .qty-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--comp-surface);border:1px solid var(--comp-border);border-radius:var(--comp-radius);color:var(--comp-text);font-size:16px;cursor:pointer;transition:all .15s}.cart-product-qty .qty-btn:hover{background:var(--comp-primary);border-color:var(--comp-primary)}.cart-product-qty .qty-value{min-width:28px;text-align:center;font-size:14px;font-weight:600}.cart-modal-footer{margin-top:20px;padding-top:16px;border-top:1px solid var(--comp-border)}.cart-modal-total{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:14px}#cart-modal-subtotal{font-size:20px;font-weight:700;color:var(--comp-primary)}.add-to-cart-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;background:linear-gradient(135deg,var(--comp-primary),#7c3aed);border:none;border-radius:var(--comp-radius);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s}.add-to-cart-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #8b5cf666}.add-to-cart-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.compositor-wrap .modal-dialog-lg{max-width:600px}.checkout-subtitle{color:var(--comp-text-muted);font-size:13px;margin:0 0 16px;text-align:center}.product-options-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px}.product-option{position:relative;padding:20px 16px;background:var(--comp-surface-hover);border:2px solid transparent;border-radius:var(--comp-radius-lg);text-align:center;cursor:pointer;transition:all .2s}.product-option:hover{border-color:var(--comp-primary);transform:translateY(-2px)}.product-option.unlocked{border-color:#10b981;background:#10b9811a}.product-option.unlocked:hover{border-color:#10b981}.product-option-badge{position:absolute;top:8px;right:8px;padding:2px 8px;background:var(--comp-primary);color:#fff;font-size:10px;font-weight:600;border-radius:10px;text-transform:uppercase}.product-option.unlocked .product-option-badge{background:#10b981}.product-option-icon{font-size:36px;margin-bottom:8px}.product-option-name{font-size:16px;font-weight:600;margin-bottom:4px}.product-option-desc{font-size:12px;color:var(--comp-text-muted);margin-bottom:12px}.product-option-price{font-size:20px;font-weight:700;color:var(--comp-primary)}.product-option.unlocked .product-option-price{color:#10b981;text-decoration:line-through;opacity:.5}.product-option-status{margin-top:8px;font-size:12px;font-weight:600}.product-option-status.purchased{color:#10b981}.checkout-step.hidden{display:none}.checkout-back-btn{display:flex;align-items:center;gap:6px;padding:8px 12px;background:transparent;border:1px solid var(--comp-border);border-radius:var(--comp-radius);color:var(--comp-text-muted);font-size:12px;cursor:pointer;margin-bottom:16px;transition:all .15s}.checkout-back-btn:hover{background:var(--comp-surface-hover);color:var(--comp-text)}.checkout-payment-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--comp-surface-hover);border-radius:var(--comp-radius);margin-bottom:16px}#checkout-product-name{font-weight:600}#checkout-product-price{font-size:18px;font-weight:700;color:var(--comp-primary)}.checkout-embed-container{min-height:400px;background:#fff;border-radius:var(--comp-radius);overflow:hidden}.checkout-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;gap:12px;color:var(--comp-text-muted)}.checkout-error{padding:12px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--comp-radius);color:#ef4444;font-size:13px;text-align:center}.checkout-error.hidden{display:none}.checkout-error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;gap:8px;color:var(--comp-text-muted)}.checkout-error-state .error-detail{font-size:12px;color:#ef4444}.checkout-error-state button{margin-top:12px;padding:8px 16px;background:var(--comp-surface-hover);border:1px solid var(--comp-border);border-radius:var(--comp-radius);color:var(--comp-text);cursor:pointer}.checkout-success{display:flex;flex-direction:column;align-items:center;padding:40px 20px;text-align:center}.checkout-success-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#10b981,#059669);border-radius:50%;color:#fff;font-size:32px;margin-bottom:16px}.checkout-success h4{margin:0 0 8px;font-size:20px}.checkout-success p{margin:0 0 24px;color:var(--comp-text-muted)}.checkout-download-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;background:linear-gradient(135deg,var(--comp-primary),var(--comp-primary-hover));border:none;border-radius:var(--comp-radius);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s}.checkout-download-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf666}@media (max-width: 800px){.compositor-sidebar{width:170px;min-width:170px}.template-category-grid{grid-template-columns:1fr}.page-preview svg{max-width:100%;max-height:100%}.floating-taskbar{padding:6px 10px}.taskbar-content{gap:6px}.dropdown-label{display:none}.grid-view-inner{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.product-options-grid{grid-template-columns:1fr}}@media (max-width: 600px){.compositor-sidebar,.topbar-title{display:none}.page-preview svg{max-width:100%;max-height:100%}.taskbar-content{flex-wrap:wrap;justify-content:center}.taskbar-btn-apply span,.topbar-dropdown-btn span{display:none}.grid-view-inner{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px;padding:12px}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem 2rem;max-width:400px;margin:2rem auto}.empty-icon{font-size:4rem;margin-bottom:1rem}.empty-state h3{font-size:1.5rem;font-weight:600;color:var(--text);margin-bottom:.5rem}.empty-state p{color:var(--muted);margin-bottom:1.5rem;line-height:1.5}.auth-modal-dialog{width:min(480px,calc(100vw - 48px));max-width:480px;border-radius:var(--radius-xl, 20px);background:#0b0f19!important;box-shadow:0 24px 80px #0009,0 0 0 1px #ffffff0d inset}.auth-modal-dialog .modal-header{padding:20px 24px;background:#ffffff05}.auth-modal-dialog .modal-body{display:block;padding:24px}.auth-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:13px;color:var(--muted, #888)}.form-group input{padding:14px;border-radius:14px;border:1px solid var(--stroke, rgba(255,255,255,.1));background:#ffffff0f;color:var(--text, #fff);font-size:14px;outline:none;transition:border .2s ease}.form-group input:focus{border-color:#7c5cff8c}.form-group input::placeholder{color:var(--muted, #888)}.auth-error{background:#dc26261a;border:1px solid rgba(220,38,38,.3);color:#f87171;padding:12px 14px;border-radius:12px;font-size:13px}.auth-success{background:#16a34a1a;border:1px solid rgba(22,163,74,.3);color:#4ade80;padding:12px 14px;border-radius:12px;font-size:13px}.auth-footer{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--stroke, rgba(255,255,255,.1));font-size:14px;color:var(--muted)}.auth-divider{color:var(--border)}.btn-link{background:none;border:none;color:var(--primary);cursor:pointer;font-size:inherit;padding:0;text-decoration:underline;text-underline-offset:2px}.btn-link:hover{color:var(--primary-hover)}.btn-full{width:100%;justify-content:center;padding:14px;border-radius:14px;font-size:14px;font-weight:600}.password-strength{font-size:12px;min-height:1rem;margin-top:.25rem}.strength-good{color:#4ade80}.strength-weak{color:#f87171}.spinner{display:inline-block;width:1rem;height:1rem;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .6s linear infinite;margin-right:.5rem}@keyframes spin{to{transform:rotate(360deg)}}.toast-container{position:fixed;bottom:1.5rem;right:1.5rem;z-index:10000;display:flex;flex-direction:column;gap:.5rem}.toast{padding:.75rem 1rem;border-radius:.5rem;font-size:.875rem;color:#fff;box-shadow:0 4px 12px #00000026;animation:slideIn .3s ease-out;max-width:320px}.toast-info{background:#3b82f6}.toast-success{background:#16a34a}.toast-error{background:#dc2626}.toast-warning{background:#f59e0b}.toast-fade-out{animation:fadeOut .3s ease-out forwards}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes fadeOut{to{opacity:0;transform:translateY(10px)}}.account-btn{display:flex;align-items:center;gap:.5rem;background:var(--surface);border:1px solid var(--border);border-radius:.5rem;padding:.375rem .75rem;cursor:pointer;transition:all .15s ease}.account-btn:hover{background:var(--surface-hover);border-color:var(--border-hover)}.avatar{width:2rem;height:2rem;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem}.account-meta{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}.account-name{font-weight:500;font-size:.875rem;color:var(--text)}.account-sub{font-size:.75rem;color:var(--muted)}.chev{color:var(--muted);font-size:.625rem;margin-left:.25rem}.account-menu{position:absolute;top:100%;right:0;margin-top:.5rem;background:var(--surface);border:1px solid var(--border);border-radius:.5rem;box-shadow:0 4px 12px #0000001a;min-width:160px;padding:.25rem;z-index:100}.account-menu.hidden{display:none}.menu-item{display:block;width:100%;padding:.5rem .75rem;text-align:left;background:none;border:none;border-radius:.375rem;cursor:pointer;font-size:.875rem;color:var(--text);transition:background .15s ease}.menu-item:hover{background:var(--surface-hover)}.menu-item.hidden{display:none}.menu-sep{height:1px;background:var(--border);margin:.25rem 0}.modal-dialog-sm{max-width:400px}@media (max-width: 480px){.auth-modal-dialog{margin:1rem;max-width:calc(100% - 2rem)}.account-meta,.chev{display:none}.toast-container{left:1rem;right:1rem}.toast{max-width:100%}}
