:root{--bg:#f4f7fb;--surface:#fff;--surface-soft:#eef8f7;--border:#dfe8ea;--text:#0e1b2e;--muted:#607185;--teal:#0f8176;--teal-dark:#087064;--lime:#d9f28f;--blue:#dff2ff;--amber:#fff2d4;--red:#ffe5e7;--violet:#f0e9ff;--shadow:0 18px 60px #1c354b14;color:var(--text);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html[data-theme=dark]{--bg:#0e1520;--surface:#151f2c;--surface-soft:#172f31;--border:#26364a;--text:#e9f0f8;--muted:#9caabe;--teal:#21a79a;--teal-dark:#6ee1d4;--lime:#31472e;--blue:#162c43;--amber:#40341d;--red:#3d2026;--violet:#2d2545;--shadow:0 18px 60px #00000052}*{box-sizing:border-box}body{background:var(--bg);min-width:320px;min-height:100vh;margin:0}body,.shell,.workspace{color:var(--text)}a{color:var(--teal);font-weight:700;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.boot-screen,.login-screen{background:radial-gradient(circle at 70% 20%,#d9f28f52,#0000 34%),linear-gradient(#f8faf8,#f3f8fb);place-items:center;min-height:100vh;display:grid}.loader{border:3px solid #d7e8e8;border-top-color:var(--teal);border-radius:50%;width:34px;height:34px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-panel{border:1px solid var(--border);width:min(1080px,100vw - 32px);min-height:620px;box-shadow:var(--shadow);background:#ffffffe0;border-radius:28px;grid-template-columns:1.1fr .9fr;gap:48px;padding:56px;display:grid}.login-brand{align-self:start}.login-copy{align-self:center;max-width:520px}.login-copy h1{letter-spacing:0;margin:18px 0;font-size:clamp(42px,6vw,76px);line-height:.96}.login-copy p{color:var(--muted);font-size:18px;line-height:1.6}.login-form{border:1px solid var(--border);background:#fff;border-radius:18px;align-self:center;gap:18px;padding:28px;display:grid}.shell{grid-template-columns:292px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--border);background:#fbfcfe;flex-direction:column;height:100vh;padding:28px 18px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;margin-bottom:34px;display:flex}.brand-mark{background:var(--surface-soft);width:40px;height:40px;color:var(--teal);border:1px solid #c8e5e3;border-radius:12px;place-items:center;font-weight:900;display:grid}.brand strong{font-size:18px;display:block}.brand span,.role-card span,.user-row span{color:var(--muted);font-size:13px;display:block}.sidebar nav{gap:4px;display:grid}.nav-section{color:#718196;letter-spacing:2px;text-transform:uppercase;margin:18px 10px 8px;font-size:11px;font-weight:900}.sidebar a{color:#1a2a42;border-radius:12px;align-items:center;gap:12px;min-height:44px;padding:0 12px;font-weight:700;display:flex}.sidebar a.active{color:var(--teal-dark);background:#e4f5f3}.sidebar-footer{gap:12px;margin-top:auto;display:grid}.role-card,.date-chip{border:1px solid var(--border);background:#fff;border-radius:14px;align-items:center;gap:10px;padding:12px;display:flex}.workspace{min-width:0}.topbar{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:3;background:#ffffffb8;justify-content:space-between;align-items:center;height:94px;padding:0 36px;display:flex;position:sticky;top:0}.topbar h1{letter-spacing:0;margin:4px 0 0;font-size:24px}.topbar-actions{align-items:center;gap:12px;display:flex}.avatar{width:42px;height:42px;color:var(--teal-dark);background:#e1f2ef;border:1px solid #b8dbd7;border-radius:14px;place-items:center;font-weight:900;display:grid}.avatar.large{width:84px;height:84px;font-size:32px}.page-stack{gap:24px;width:min(1480px,100% - 64px);margin:32px auto 72px;display:grid}.hero-panel,.surface{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:20px}.hero-panel{background:radial-gradient(circle at 18% 12%,#0f81761f,#0000 28%),radial-gradient(circle at 82% 30%,#d9f28f47,#0000 32%),#fff;justify-content:space-between;align-items:center;gap:24px;min-height:230px;padding:38px;display:flex}.hero-panel.compact{min-height:170px}.hero-panel h2{letter-spacing:0;max-width:820px;margin:14px 0 12px;font-size:clamp(30px,4vw,54px);line-height:1}.hero-panel p{max-width:780px;color:var(--muted);margin:0;font-size:17px;line-height:1.55}.eyebrow,.overline{color:var(--teal-dark);letter-spacing:2px;text-transform:uppercase;align-items:center;gap:8px;font-size:12px;font-weight:900;display:inline-flex}.overline{color:#66788e}.primary-button,.ghost-button{border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:9px;min-height:44px;padding:0 18px;font-weight:900;display:inline-flex}.primary-button{background:var(--teal);color:#fff}.primary-button:hover{background:var(--teal-dark)}.primary-button:disabled,.ghost-button:disabled,input:disabled,select:disabled,textarea:disabled{opacity:.6;cursor:not-allowed}.ghost-button{color:var(--text);border-color:var(--border);background:#fff}.icon-button{border:1px solid var(--border);background:var(--surface);width:44px;height:44px;color:var(--text);border-radius:12px;place-items:center;display:grid}.ghost-button.wide{width:100%}.metrics-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;display:grid}.metric-card{border:1px solid var(--border);background:#fff;border-radius:18px;justify-content:space-between;gap:14px;min-height:146px;padding:22px;display:flex}.metric-card.green{border-top:4px solid var(--teal)}.metric-card.blue{background:var(--blue)}.metric-card.amber{background:var(--amber)}.metric-card.red{background:var(--red)}.metric-card.violet{background:var(--violet)}.metric-card strong{letter-spacing:0;margin:12px 0 8px;font-size:34px;display:block}.metric-card p{color:var(--muted);margin:0}.metric-icon{width:44px;height:44px;color:var(--teal);background:#e4f4f2;border-radius:14px;flex:0 0 44px;place-items:center;display:grid}.surface{padding:24px}.section-heading{justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;display:flex}.section-heading h3{margin:4px 0 0;font-size:22px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:15px 14px}th{color:#66788e;text-transform:uppercase;letter-spacing:1.3px;font-size:12px}.status-pill{min-height:28px;color:var(--teal-dark);background:#ddf3ee;border:1px solid #bfe6dd;border-radius:999px;align-items:center;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.status-pill.blocked,.status-pill.failed{color:#a1353d;background:#ffe8ea;border-color:#fac8cd}.status-pill.generated{color:#0f6b24;background:#e4f8df;border-color:#c4eeb9}.status-pill.processing,.status-pill.generating{color:#7b5200;background:#fff2d4;border-color:#f1d28e}.upload-surface{gap:18px;display:grid}.dropzone{min-height:220px;color:var(--muted);text-align:center;cursor:pointer;background:#f8fcfc;border:1px dashed #a9cac8;border-radius:18px;place-items:center;gap:8px;display:grid}.dropzone strong{color:var(--text);font-size:18px}.dropzone input{display:none}.mini-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px;display:grid}.mini-metrics div{border:1px solid var(--border);background:#fbfcfd;border-radius:14px;min-height:94px;padding:18px}.mini-metrics span{color:var(--muted);margin-bottom:8px;display:block}.mini-metrics strong{overflow-wrap:anywhere;font-size:28px;line-height:1.15}.progress-panel{gap:14px;display:grid}.progress-head{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.progress-head h3{margin:4px 0 0;font-size:20px;line-height:1.35}.progress-head strong{text-align:right;min-width:62px;color:var(--teal-dark);font-size:24px}.progress-track{background:#e7eef0;border:1px solid #d7e5e7;border-radius:999px;height:12px;overflow:hidden}.progress-fill{border-radius:inherit;background:linear-gradient(90deg, var(--teal), #7aa83e);height:100%;transition:width .25s}.progress-current{border:1px solid var(--border);color:#30435c;overflow-wrap:anywhere;background:#f8fcfc;border-radius:12px;padding:12px 14px}.live-log{gap:8px;max-height:220px;padding-right:4px;display:grid;overflow:auto}.live-log div{border:1px solid var(--border);color:#30435c;overflow-wrap:anywhere;background:#fbfcfd;border-radius:10px;padding:10px 12px;font-size:13px}.issue-grid,.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.issue-panel{border:1px solid var(--border);background:#fbfcfd;border-radius:16px;padding:18px}.issue-panel h4{align-items:center;gap:8px;margin:0 0 12px;display:flex}.issue-panel p,.issue-panel ul{color:var(--muted);margin:0}.issue-panel li{margin-bottom:8px}.issue-list-wide{gap:10px;display:grid}.issue-row{border:1px solid var(--border);border-radius:12px;grid-template-columns:150px 1fr 120px;gap:12px;padding:14px;display:grid}.issue-row.error{background:#fff5f6}.issue-row.warning{background:#fffaf0}.issue-row em{color:var(--muted);text-align:right;font-style:normal}.action-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.info-counts{gap:12px;display:grid}.info-counts.inline{grid-template-columns:repeat(2,minmax(0,1fr));margin:18px 0}.info-counts div,.log-list div{border:1px solid var(--border);background:#fbfcfd;border-radius:12px;padding:14px}.info-counts span{color:var(--muted);margin-bottom:6px;display:block}.info-counts strong{font-size:22px}.log-list{scrollbar-gutter:stable;color:#30435c;gap:10px;max-height:420px;padding-right:4px;display:grid;overflow-y:auto}.admin-list{gap:14px;max-height:640px;padding-right:4px;display:grid;overflow-y:auto}.admin-row,.store-row{border:1px solid var(--border);background:#fbfcfd;border-radius:14px;gap:14px;padding:14px;display:grid}.admin-row{grid-template-columns:48px 1fr 180px;align-items:start}.admin-row-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.admin-row-actions{align-content:start;gap:10px;display:grid}.admin-row-actions span{color:var(--muted);overflow-wrap:anywhere;font-size:13px}.store-row{grid-template-columns:minmax(120px,.8fr) minmax(180px,1.2fr) auto auto;align-items:end}.inline-check{align-items:center;gap:9px;min-height:46px;display:flex}.inline-check input{width:auto;min-height:auto}html[data-theme=dark] .login-screen,html[data-theme=dark] .boot-screen{background:radial-gradient(circle at 72% 18%,#21a79a2e,#0000 34%),linear-gradient(#0e1520,#111927)}html[data-theme=dark] .sidebar,html[data-theme=dark] .topbar,html[data-theme=dark] .login-panel,html[data-theme=dark] .login-form,html[data-theme=dark] .surface,html[data-theme=dark] .ghost-button,html[data-theme=dark] .role-card,html[data-theme=dark] .date-chip,html[data-theme=dark] .metric-card,html[data-theme=dark] .mini-metrics div,html[data-theme=dark] .issue-panel,html[data-theme=dark] .issue-row,html[data-theme=dark] .info-counts div,html[data-theme=dark] .log-list div,html[data-theme=dark] .live-log div,html[data-theme=dark] .progress-current,html[data-theme=dark] .admin-row,html[data-theme=dark] .store-row,html[data-theme=dark] .dropzone,html[data-theme=dark] input,html[data-theme=dark] select,html[data-theme=dark] textarea{background:var(--surface);color:var(--text)}html[data-theme=dark] .hero-panel{background:radial-gradient(circle at 18% 12%, #21a79a2e, transparent 28%), radial-gradient(circle at 82% 30%, #d9f28f1f, transparent 32%), var(--surface)}html[data-theme=dark] .sidebar a,html[data-theme=dark] label,html[data-theme=dark] .log-list,html[data-theme=dark] .live-log div{color:var(--text)}html[data-theme=dark] .sidebar a.active,html[data-theme=dark] .brand-mark,html[data-theme=dark] .avatar{color:var(--teal-dark);background:#173a3c;border-color:#24575a}html[data-theme=dark] .metric-card.blue,html[data-theme=dark] .metric-card.amber,html[data-theme=dark] .metric-card.red,html[data-theme=dark] .metric-card.violet{background:var(--surface)}.field-help{color:var(--muted);margin:-6px 0 2px;font-size:13px;font-weight:600;line-height:1.5}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.form-grid.one{grid-template-columns:1fr}label{color:#23364f;gap:8px;font-weight:800;display:grid}input,select,textarea{border:1px solid var(--border);width:100%;min-height:46px;color:var(--text);background:#fff;border-radius:12px;outline:none;padding:10px 13px}textarea{resize:vertical;min-height:112px}input:focus,select:focus,textarea:focus{border-color:#88bbb6;box-shadow:0 0 0 3px #0f81761f}.span-2{grid-column:span 2}.form-error,.success-box,.notice{border-radius:14px;padding:14px 16px;font-weight:800}.form-error{color:#9f2330;background:#ffe8eb;border:1px solid #ffc4cc}.success-box{color:#0f6b24;background:#e9f9e6;border:1px solid #caefbf}.notice{color:#73520a;background:#fff5d9;border:1px solid #f1d692}.user-list{gap:12px;display:grid}.user-row{border:1px solid var(--border);border-radius:14px;grid-template-columns:48px 1fr auto;align-items:center;gap:14px;min-height:74px;padding:12px;display:grid}.profile-card{align-items:center;gap:22px;display:flex}.profile-card h3{margin:6px 0 8px;font-size:28px}.profile-card p{color:var(--muted);align-items:center;gap:8px;margin:6px 0;display:flex}@media (width<=1100px){.shell{grid-template-columns:1fr}.sidebar{gap:18px;height:auto;position:static}.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}.nav-section{grid-column:1/-1}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-panel,.login-panel,.settings-grid,.issue-grid{grid-template-columns:1fr}.login-panel,.hero-panel{display:grid}.admin-row{grid-template-columns:48px 1fr}.admin-row-actions{grid-column:1/-1}.store-row{grid-template-columns:1fr 1fr}}@media (width<=720px){.shell{display:block}.page-stack{gap:16px;width:calc(100% - 24px);margin-top:16px}.sidebar{padding:16px}.sidebar nav,.sidebar-footer{grid-template-columns:1fr}.topbar{flex-direction:column;align-items:flex-start;gap:12px;height:auto;padding:18px;position:static}.topbar-actions{justify-content:space-between;width:100%}.hero-panel,.surface,.login-panel{border-radius:16px;padding:20px}.metrics-grid,.mini-metrics,.form-grid,.info-counts.inline,.admin-row-grid,.store-row{grid-template-columns:1fr}.hero-panel{min-height:auto}.hero-panel h2{font-size:32px}.hero-panel .primary-button,.section-heading,.action-row{width:100%}.section-heading{flex-direction:column;align-items:flex-start}.action-row>*{width:100%}.issue-row,.admin-row{grid-template-columns:1fr}.admin-row .avatar{display:none}.admin-list,.log-list{max-height:360px}.progress-head{flex-direction:column;align-items:flex-start}.progress-head strong{text-align:left}.span-2{grid-column:span 1}}
