:root{--accent: #5a61f0;--accent-strong: #4a50e0;--accent-soft: rgba(90, 97, 240, .14);--text: #16283e;--text-secondary: rgba(22, 40, 62, .6);--text-faint: rgba(22, 40, 62, .38);--glass: rgba(255, 255, 255, .52);--glass-strong: rgba(255, 255, 255, .72);--glass-soft: rgba(255, 255, 255, .32);--glass-border: rgba(255, 255, 255, .55);--glass-blur: 28px;--danger: #e5484d;--success: #2f9e6e;--radius-panel: 28px;--radius-card: 20px;--radius-control: 14px;--shadow-panel: 0 24px 64px rgba(10, 20, 40, .18), 0 2px 8px rgba(10, 20, 40, .08);--shadow-card: 0 10px 30px rgba(10, 20, 40, .1);--sidebar-w: 240px;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background:radial-gradient(1200px 600px at 78% -8%,rgba(255,196,150,.55),transparent 60%),radial-gradient(900px 500px at 12% 4%,rgba(255,170,130,.34),transparent 60%),radial-gradient(1400px 900px at 50% 118%,rgba(16,34,62,.85),transparent 68%),radial-gradient(1000px 520px at 88% 82%,rgba(30,52,88,.5),transparent 65%),linear-gradient(178deg,#f4c9a2,#d8a98f 16%,#94a0b4,#4c6284 68%,#22344e);background-attachment:fixed}button,input,textarea,select{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}::selection{background:var(--accent-soft)}.shell{display:flex;min-height:100%;gap:20px}.sidebar{width:var(--sidebar-w);flex-shrink:0;align-self:stretch;position:sticky;top:0;height:100vh;background:var(--glass);backdrop-filter:blur(var(--glass-blur)) saturate(1.5);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.5);border:1px solid var(--glass-border);border-left:none;border-top:none;border-bottom:none;border-radius:0 var(--radius-panel) var(--radius-panel) 0;box-shadow:var(--shadow-panel);padding:22px 14px;display:flex;flex-direction:column;gap:6px}.sidebar .brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;letter-spacing:-.02em;padding:4px 12px 18px}.sidebar .brand .logo{width:30px;height:30px;border-radius:10px;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:16px;font-weight:800;box-shadow:0 6px 16px #5a61f066}.nav-item{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:999px;color:var(--text-secondary);font-weight:500;border:1px solid transparent;background:transparent;cursor:pointer;text-align:left;width:100%;transition:background .15s ease,color .15s ease}.nav-item:hover{background:var(--glass-soft);color:var(--text)}.nav-item.active{background:var(--glass-strong);border-color:var(--glass-border);color:var(--accent);font-weight:600;box-shadow:var(--shadow-card)}.sidebar .spacer{flex:1}.main{flex:1;min-width:0;width:100%;margin:16px 20px 16px 0;background:var(--glass);backdrop-filter:blur(var(--glass-blur)) saturate(1.5);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.5);border:1px solid var(--glass-border);border-radius:var(--radius-panel);box-shadow:var(--shadow-panel);padding:26px clamp(18px,3.5vw,34px) 40px;height:fit-content}.page-title{font-size:clamp(30px,4.5vw,42px);font-weight:700;letter-spacing:-.03em;line-height:1.08;margin:14px 0 26px}.card{background:var(--glass-soft);border:1px solid var(--glass-border);border-radius:var(--radius-card);box-shadow:0 4px 16px #0a14280f;padding:20px;margin-bottom:16px}.section-title{font-size:13px;font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--text-secondary);margin:0 0 12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--glass-border);border-radius:999px;padding:12px 22px;font-weight:600;cursor:pointer;transition:filter .12s ease,transform .05s ease,background .15s ease;background:var(--glass-strong);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text)}.btn:hover{filter:brightness(1.04)}.btn:active{transform:scale(.985)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--accent);border-color:transparent;color:#fff;width:100%;padding:15px 22px;font-size:16px;box-shadow:0 12px 28px #5a61f066}.btn.primary:hover{background:var(--accent-strong)}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn.danger{background:#e5484d24;border-color:#e5484d40;color:var(--danger)}.chip-row{display:flex;gap:10px;flex-wrap:wrap}.chip{border:1px solid var(--glass-border);border-radius:var(--radius-control);padding:12px 16px;font-weight:600;cursor:pointer;background:var(--glass-soft);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--text);flex:1;min-width:76px;transition:background .15s ease,box-shadow .15s ease}.chip:hover{background:var(--glass)}.chip.selected{background:var(--accent);border-color:transparent;color:#fff;box-shadow:0 8px 20px #5a61f059}.chip .sub{display:block;font-size:11px;font-weight:500;opacity:.85;margin-top:3px}.prompt-field,.input{width:100%;border:1px solid var(--glass-border);border-radius:var(--radius-control);background:var(--glass-soft);padding:13px 15px;outline:none;color:var(--text);transition:border-color .15s ease,background .15s ease}.prompt-field{min-height:100px;resize:vertical}.prompt-field::placeholder,.input::placeholder{color:var(--text-faint)}.prompt-field:focus,.input:focus{border-color:var(--accent);background:var(--glass)}select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none}.spinner{width:18px;height:18px;border:2.5px solid rgba(255,255,255,.35);border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.balance-pill{display:inline-flex;align-items:center;gap:6px;background:var(--glass-strong);border:1px solid var(--glass-border);color:var(--accent);font-weight:700;border-radius:999px;padding:7px 15px;box-shadow:var(--shadow-card)}.error-banner{background:#e5484d24;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(229,72,77,.28);color:var(--danger);border-radius:var(--radius-control);padding:11px 15px;font-size:14px;margin-bottom:14px}.result-media{width:100%;border-radius:var(--radius-card);display:block;box-shadow:var(--shadow-card)}.dropzone{border:1.5px dashed var(--glass-border);border-radius:var(--radius-card);padding:30px;text-align:center;color:var(--text-secondary);cursor:pointer;background:var(--glass-soft);transition:background .15s ease}.dropzone:hover{background:var(--glass)}.dropzone.filled{padding:0;border-style:solid;overflow:hidden}.dropzone img{width:100%;max-height:280px;object-fit:contain;display:block}.hub-tile{margin:0;text-align:center;color:var(--text);transition:transform .16s ease,box-shadow .16s ease}.hub-tile:hover{transform:translateY(-3px);box-shadow:var(--shadow-panel)}.stat-row{display:flex;align-items:stretch}.stat-cell{flex:1;text-align:center;padding:6px 8px}.stat-cell+.stat-cell{border-left:1px solid var(--glass-border)}.stat-cell .stat-label{font-size:12px;color:var(--text-secondary);margin-bottom:4px}.stat-cell .stat-value{font-size:22px;font-weight:700;letter-spacing:-.02em}input[type=range]{accent-color:var(--accent)}@media (max-width: 760px){.shell{flex-direction:column;padding:14px 14px 0;gap:14px}.sidebar{width:auto;height:auto;position:fixed;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));top:auto;flex-direction:row;padding:8px;z-index:50;border:1px solid var(--glass-border);border-radius:999px;gap:4px}.sidebar .brand,.sidebar .spacer,.sidebar .sidebar-footer{display:none}.nav-item{flex-direction:column;gap:2px;font-size:10.5px;padding:8px 4px;border-radius:999px}.main{margin:14px 14px 110px;padding:20px 16px 28px}.page-title{margin-top:4px}}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px}.page-header .page-title{margin:6px 0 0}.page-header-actions{display:flex;align-items:center;gap:10px;padding-bottom:6px}.back-link{display:inline-block;font-size:14px;font-weight:600;color:var(--text-secondary);padding:4px 0}.back-link:hover{color:var(--accent)}.mobile-only{display:none}.profile-card{display:flex;align-items:center;gap:12px;width:100%;padding:14px;border:1px solid var(--glass-border);border-radius:var(--radius-card);background:var(--glass-strong);box-shadow:var(--shadow-card);cursor:pointer;text-align:left;transition:transform .15s ease}.profile-card:hover{transform:translateY(-2px)}.profile-avatar{width:40px;height:40px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:700;font-size:17px;flex-shrink:0;box-shadow:0 6px 16px #5a61f059}.profile-info{min-width:0;display:flex;flex-direction:column;gap:2px}.profile-name{font-weight:600;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-balance{font-size:12.5px;color:var(--text-secondary);font-weight:600}@media (max-width: 760px){.mobile-only{display:inline-flex}.page-header{align-items:center}}.content-grid{display:block}@media (min-width: 1100px){.content-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 18px;align-items:start}.content-grid>.btn.primary,.content-grid>.error-banner,.content-grid>section,.content-grid>.grid-span{grid-column:1 / -1}}.proj-empty{position:relative;overflow:hidden;text-align:center;padding:48px 28px;cursor:pointer}.proj-empty h2{font-size:24px;margin:0 0 8px;letter-spacing:-.02em}.proj-empty p{color:var(--text-secondary);max-width:520px;margin:0 auto 22px}.proj-empty .btn.primary{margin:0 auto}.proj-empty-glow{position:absolute;inset:-40% 30% auto -10%;height:240px;background:radial-gradient(closest-side,rgba(90,97,240,.35),transparent);filter:blur(20px);pointer-events:none}.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}.proj-card{position:relative;border:1px solid var(--glass-border);border-radius:var(--radius-card);background:var(--glass-soft);box-shadow:0 4px 16px #0a14280f;cursor:pointer;overflow:hidden;transition:transform .16s ease,box-shadow .16s ease}.proj-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-panel)}.proj-card-mono{height:96px;display:grid;place-items:center;font-size:40px;font-weight:800;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.25)}.proj-card-body{padding:12px 14px 14px}.proj-card-name{font-weight:700;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.proj-card-age{font-size:12px;color:var(--text-secondary);margin:2px 0 10px}.proj-dots{display:flex;gap:6px}.proj-dot{width:8px;height:8px;border-radius:50%}.proj-card-del{position:absolute;top:8px;right:8px;width:26px;height:26px;border-radius:50%;border:none;background:#0a142866;color:#fff;cursor:pointer;opacity:0;transition:opacity .15s ease;z-index:2}.proj-card:hover .proj-card-del{opacity:1}.proj-card-del:hover{background:var(--danger)}.proj-header{display:flex;align-items:center;gap:16px}.proj-header-mono{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;font-size:28px;font-weight:800;color:#fff;flex-shrink:0;text-shadow:0 2px 8px rgba(0,0,0,.25)}.proj-header-info{min-width:0}.proj-header-name{font-size:22px;font-weight:700;letter-spacing:-.02em}.proj-header-age{font-size:13px;color:var(--text-secondary);margin:2px 0 8px}.proj-header-chips{display:flex;gap:14px;font-size:14px;color:var(--text-secondary);font-weight:600}.proj-progress{display:flex;align-items:flex-start;justify-content:space-between}.proj-progress-step{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;gap:8px}.proj-step-dot{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:17px;background:var(--glass-soft);border:1px solid var(--glass-border);color:var(--text-secondary);z-index:1}.proj-step-dot.filled{background:var(--accent);border-color:transparent;color:#fff;box-shadow:0 8px 18px #5a61f059}.proj-step-label{font-size:12px;font-weight:600;color:var(--text-secondary)}.proj-step-conn{position:absolute;top:20px;left:50%;width:100%;height:3px;background:var(--glass-border);z-index:0}.proj-step-conn.filled{background:var(--accent)}.proj-cta{display:flex;align-items:center;gap:14px;width:100%;text-align:left;border:1px solid var(--glass-border);border-radius:var(--radius-card);background:var(--glass-strong);box-shadow:var(--shadow-card);padding:16px 18px;margin-bottom:16px;cursor:pointer;transition:transform .14s ease}.proj-cta:hover{transform:translateY(-2px)}.proj-cta-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:20px;color:#fff;flex-shrink:0}.proj-cta-text{display:flex;flex-direction:column}.proj-cta-text strong{font-size:15px}.proj-cta-text span{font-size:13px;color:var(--text-secondary)}.proj-cta-arrow{margin-left:auto;font-size:20px;color:var(--accent)}.proj-section{margin-bottom:22px}.proj-section-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.proj-section-icon{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;font-size:15px;color:#fff}.proj-section-head h3{margin:0;font-size:16px;font-weight:700}.proj-section-count{font-size:12px;font-weight:700;color:var(--text-secondary);background:var(--glass-soft);border:1px solid var(--glass-border);border-radius:999px;padding:2px 9px}.proj-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.proj-tile{position:relative;border:1px solid var(--glass-border);border-radius:var(--radius-card);background:var(--glass-soft);padding:14px;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease;text-align:left}.proj-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-card)}.proj-tile-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:20px;color:#fff;margin-bottom:10px}.proj-tile-media{position:relative;height:90px;border-radius:12px;overflow:hidden;margin-bottom:10px;background:var(--glass)}.proj-tile-media img{width:100%;height:100%;object-fit:cover;display:block}.proj-tile-mediaicon{width:100%;height:100%;display:grid;place-items:center;font-size:30px}.proj-tile-play{position:absolute;bottom:6px;right:6px;background:#0a14288c;color:#fff;font-size:11px;border-radius:999px;padding:3px 8px}.proj-tile-label{font-size:13px;font-weight:600;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.proj-tile-del{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;border:none;background:#0a142866;color:#fff;cursor:pointer;opacity:0;z-index:2;font-size:11px;transition:opacity .15s ease}.proj-tile:hover .proj-tile-del{opacity:1}.proj-tile-del:hover{background:var(--danger)}.proj-tile-new{border-style:dashed;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--text-secondary);min-height:120px}.proj-tile-plus{font-size:26px;color:var(--accent)}.proj-finalbar{display:flex;margin-bottom:16px}.proj-final-badge{display:inline-flex;gap:6px;font-size:13px;font-weight:700;color:var(--accent);margin-bottom:12px}.proj-genbar{height:8px;border-radius:999px;background:var(--glass-border);overflow:hidden;margin:6px 0}.proj-genbar-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .4s ease}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0a122280;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:20px}.modal-panel{width:100%;max-width:480px;max-height:90vh;overflow-y:auto;background:var(--glass-strong);backdrop-filter:blur(var(--glass-blur)) saturate(1.5);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.5);border:1px solid var(--glass-border);border-radius:var(--radius-panel);box-shadow:var(--shadow-panel);padding:22px 24px}.modal-panel.wide{max-width:680px}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.modal-title{font-size:20px;font-weight:700;letter-spacing:-.02em;margin:0}.modal-close{border:none;background:var(--glass-soft);width:32px;height:32px;border-radius:50%;cursor:pointer;color:var(--text-secondary);font-size:14px}.modal-close:hover{background:var(--glass);color:var(--text)}.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;flex-wrap:wrap}@media (max-width: 760px){.proj-progress{overflow-x:auto}.proj-step-label{white-space:nowrap}}
