@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&family=Syne:wght@600;700&display=swap";:root{--bg0:#0b0e13;--bg1:#131820;--bg2:#1a2130;--surface:#151b26;--surface-2:#1a2130;--canvas:#0b0e13;--line:#a8bee61c;--line-strong:#a8bee633;--side-line:#a8bee624;--text:#e4eaf4;--text-2:#9aa4b8;--muted:#6f7a8f;--faint:#555f72;--side-text:#c0cbe0;--side-muted:#7d8aa0;--accent:#2fb9a8;--accent-dim:#1a7d72;--accent-soft:#2fb9a81f;--accent-line:#2fb9a861;--accent-fg:#b8ebe3;--accent-fg-side:#b8ebe3;--warn:#e0a06a;--danger:#d87878;--ok:#62c48a;--ok-bg:#62c48a24;--ink:#061016;--field:#080c148c;--panel-shadow:0 1px 2px #0003;--fs-2xs:.6875rem;--fs-xs:.75rem;--fs-sm:.8125rem;--fs-md:.875rem;--fs-lg:.9375rem;--fs-xl:1.25rem;--fs-2xl:1.5rem;--lh:1.45;--lh-tight:1.3;--radius-sm:8px;--radius-md:12px;--radius-lg:14px;--font:"IBM Plex Sans", "Segoe UI", "PingFang SC", "Noto Sans SC", system-ui, sans-serif;--display:"Syne", "IBM Plex Sans", "PingFang SC", sans-serif;--ease:.16s ease}*{box-sizing:border-box}html,body,#root{min-height:100%}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{font-family:var(--font);font-size:var(--fs-md);font-weight:400;line-height:var(--lh);color:var(--text);background:radial-gradient(ellipse 70% 45% at 10% -8%, #2fb9a80d, transparent 55%), radial-gradient(ellipse 50% 35% at 92% 0%, #506eaa0a, transparent 50%), linear-gradient(180deg, #090b10 0%, var(--bg0) 40%, #0c1018 100%);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-attachment:fixed;margin:0}button,input,textarea,select{font:inherit;color:inherit}button,.filebutton{cursor:pointer;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--fs-md);color:var(--text);transition:background var(--ease), border-color var(--ease), color var(--ease);padding:10px 15px}button:hover,.filebutton:hover{background:var(--accent-soft);border-color:var(--accent-line)}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.primary{background:linear-gradient(135deg, var(--accent), var(--accent-dim));color:var(--ink);border-color:#0000;font-weight:600}.primary:hover{background:linear-gradient(135deg, #3ac7b5, var(--accent));color:var(--ink);border-color:#0000}button:disabled,.filebutton:disabled,.primary:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.app-shell{min-height:100vh}aside{background:radial-gradient(ellipse 80% 40% at 20% -10%, #2fb9a814, transparent 55%), linear-gradient(180deg, #090b10 0%, var(--bg0) 40%, #0c1018 100%);width:230px;color:var(--side-text);border-right:1px solid var(--side-line);z-index:20;flex-direction:column;padding:28px 18px;display:flex;position:fixed;inset:0 auto 0 0}.brand{color:#e4eaf4;align-items:center;gap:12px;text-decoration:none;display:flex}.brand-mark{background:var(--brand-mark-url,url(/favicon.svg)) center / cover no-repeat;width:36px;height:36px;box-shadow:0 0 0 1px var(--accent-line);border-radius:10px;flex-shrink:0}.brand-text{flex-direction:column;gap:2px;min-width:0;display:flex}.brand-text strong{font-family:var(--display);font-size:var(--fs-xl);letter-spacing:.01em;font-weight:700;line-height:1.15}.brand-text span{font-size:var(--fs-2xs);color:var(--side-muted);font-weight:400}.workspace{font-size:var(--fs-sm);color:var(--side-muted);margin:28px 4px 18px}.workspace span{font-size:var(--fs-2xs);color:var(--accent-fg-side);border:1px solid #2fb9a847;border-radius:4px;margin-left:8px;padding:2px 6px}nav{gap:6px;display:grid}nav button{color:var(--side-muted);text-align:left;border-radius:var(--radius-sm);transition:background var(--ease), color var(--ease), box-shadow var(--ease);background:0 0;border:0;align-items:center;gap:10px;padding:11px 12px;display:flex}nav button .nav-step{width:1.7rem;font-family:var(--display);font-size:var(--fs-xs);letter-spacing:.04em;color:var(--side-muted);opacity:.85;flex-shrink:0;font-weight:700}nav button .nav-label{min-width:0;font-size:var(--fs-md);flex:1;font-weight:500}nav button.active{background:var(--accent-soft);color:var(--accent-fg-side);box-shadow:inset 0 0 0 1px var(--accent-line)}nav button.active .nav-step{color:var(--accent-fg-side);opacity:1}nav button:hover{color:var(--side-text);background:#a8bee60f;border-color:#0000}nav button:hover .nav-step{color:var(--side-text)}.nav-count{font-variant-numeric:tabular-nums;font-size:var(--fs-xs);color:var(--accent-fg-side);background:#2fb9a829;border:1px solid #2fb9a847;border-radius:999px;margin-left:auto;padding:1px 7px}.sidebottom{font-size:var(--fs-xs);color:var(--side-muted);margin-top:auto;line-height:1.8}.side-note{color:var(--side-muted);margin-bottom:4px}.side-hint{font-size:var(--fs-2xs);color:var(--side-muted);opacity:.9;margin:14px 2px 0;line-height:1.65}.sidebottom button,.sidebottom .filebutton{text-align:center;width:100%;color:var(--side-text);background:0 0;border-color:#a8bee638;margin-top:10px;display:block}.sidebottom button:hover,.sidebottom .filebutton:hover{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-fg-side)}.sidebottom button.primary,.sidebottom .side-save.primary{background:linear-gradient(135deg, var(--accent), var(--accent-dim));color:var(--ink);border-color:#0000;font-weight:600}.sidebottom button.primary:hover,.sidebottom .side-save.primary:hover{background:linear-gradient(135deg, #3ac7b5, var(--accent));color:var(--ink);border-color:#0000}.side-save{width:100%;margin-top:10px}.project-dialog{width:min(520px,94vw)}.project-list{gap:10px;max-height:min(50vh,420px);margin:0;padding:0;list-style:none;display:grid;overflow:auto}.project-list li{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--field);justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.project-list strong{display:block}.project-list small{color:var(--muted);font-size:var(--fs-xs);margin-top:4px;display:block}.project-list-actions{flex-shrink:0;gap:8px;display:flex}.side-logout{color:var(--side-muted)!important;border-color:#a8bee62e!important;margin-top:14px!important}.side-logout:hover{color:#f0c4c4!important;background:#d878781a!important;border-color:#d8787866!important}.filebutton input{display:none}main{max-width:1800px;margin-left:230px;padding:30px 38px 60px}.tab-panel{animation:.28s cubic-bezier(.22,1,.36,1) both tab-rise}@keyframes tab-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.tab-panel,.login-page,.login-hero .brand-mark,.login-banner,.login-shell--boot .login-boot,.login-glow{animation:none}}header.page-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:28px;padding-bottom:18px;display:flex}.eyebrow{font-size:var(--fs-2xs);letter-spacing:.06em;color:var(--accent-fg);text-transform:none;font-weight:500}h1{font-family:var(--display);font-size:var(--fs-2xl);letter-spacing:-.02em;margin:6px 0 0;font-weight:700}h2{margin:0 0 10px;font-size:1.25rem}h3{font-size:var(--fs-lg);margin:0 0 14px;font-weight:600}p{color:var(--muted);line-height:1.7;font-size:var(--fs-md);margin:8px 0}.headerActions{gap:10px;display:flex}.intro{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.intro h2{font-family:var(--display);letter-spacing:-.01em;color:var(--text);margin:0 0 6px;font-size:1.05rem;font-weight:700}.intro p{max-width:42rem;color:var(--text-2);margin:0}.pill{font-size:var(--fs-2xs);color:var(--accent-fg);background:var(--accent-soft);border:1px solid var(--accent-line);white-space:nowrap;letter-spacing:.02em;border-radius:6px;align-self:center;padding:6px 10px}.twocol{grid-template-columns:1fr 1.12fr;gap:22px;display:grid}.twocol--brief{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:start}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--panel-shadow);margin-bottom:22px;padding:24px}.card--panel{background:linear-gradient(180deg, #2fb9a808, transparent 48%), var(--surface)}.card--template{flex-direction:column;min-height:min(72vh,820px);display:flex;position:sticky;top:18px}.cardhead{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;padding-bottom:12px;display:flex}.cardhead h3{font-family:var(--display);letter-spacing:-.01em;margin:0}.cardhead span{font-size:var(--fs-2xs);letter-spacing:.08em;color:var(--faint);font-variant-numeric:tabular-nums}.field-group{border-bottom:1px solid #a8bee614;margin-bottom:22px;padding-bottom:6px}.field-group--last{border-bottom:0;margin-bottom:0;padding-bottom:0}.field-group-label{font-size:var(--fs-2xs);letter-spacing:.08em;color:var(--muted);margin-bottom:12px;font-weight:500}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field-row--3{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.field-row--params{grid-template-columns:repeat(3,minmax(0,9.5rem));gap:14px;max-width:32rem;display:grid}.field-row--gap{grid-template-columns:minmax(0,9.5rem) minmax(0,1fr);align-items:start;gap:12px;display:grid}.field-narrow{max-width:14rem}.section-lead{color:var(--text-2);font-size:var(--fs-sm);margin:-4px 0 16px;line-height:1.6}label{font-size:var(--fs-sm);color:var(--text-2);margin-bottom:14px;font-weight:500;display:block}input,textarea,select{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--field);width:100%;color:var(--text);font-size:var(--fs-md);transition:border-color var(--ease), box-shadow var(--ease), background var(--ease);margin-top:7px;padding:10px 12px;display:block}textarea{resize:vertical;min-height:5.5rem;line-height:1.7}.template-field{flex-direction:column;flex:1;min-height:0;margin-bottom:12px;display:flex}.template-field textarea{min-height:28rem;font-family:ui-monospace,Cascadia Code,SF Mono,Menlo,Consolas,monospace;font-size:var(--fs-sm);background:#060a10b8;flex:1;line-height:1.65}.template-hint{margin:0}input:focus,textarea:focus,select:focus{background:#080c14b8;border-color:#2fb9a873;outline:none;box-shadow:0 0 0 1px #2fb9a82e}input::placeholder,textarea::placeholder{color:var(--faint)}.upload{border-radius:var(--radius-sm);text-align:center;color:var(--text-2);cursor:pointer;transition:border-color var(--ease), background var(--ease), color var(--ease);background:#a8bee60a;border:1px dashed #a8bee647;padding:18px 16px}.upload:hover{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent-fg)}.upload-title{font-size:var(--fs-md);color:inherit;font-weight:500;display:block}.upload input{display:none}.upload small{color:var(--muted);font-size:var(--fs-xs);margin-top:8px;font-weight:400;display:block}.hint{font-size:var(--fs-xs);color:var(--muted);line-height:1.7}.step-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;margin-top:8px;padding-top:18px;display:flex}.step-foot .hint{margin:0}.step-foot .primary{flex-shrink:0;min-width:10rem}.three{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.photo-preview{flex-wrap:wrap;gap:10px;margin:-4px 0 14px;display:flex}.photo-preview img{object-fit:contain;border:1px solid var(--line);background:var(--field);border-radius:5px;width:74px;height:74px}.photo{margin-bottom:0;position:relative}.photo button{width:22px;height:22px;font-size:var(--fs-md);background:var(--bg2);border-color:var(--line-strong);color:var(--text-2);border-radius:999px;place-items:center;padding:0;line-height:1;display:grid;position:absolute;top:-7px;right:-6px}.quotaGrid{grid-template-columns:repeat(3,1fr);gap:14px;margin-top:14px;display:grid}.quota-card{border:1px solid var(--line);border-radius:var(--radius-sm);background:#080c1459;padding:14px}.quota-card .cardhead{margin-bottom:12px;padding-bottom:8px}.quota-card h3{font-size:var(--fs-md)}.quotaRow{gap:6px;margin-bottom:7px;display:flex}.quotaRow input{min-width:0;margin:0}.quotaRow input[type=number]{width:72px}.quotaRow button{padding:5px 9px}.quotaFoot{font-size:var(--fs-sm);color:var(--ok);justify-content:space-between;align-items:center;margin-top:12px;display:flex}.quotaFoot.bad{color:var(--danger)}.quotaFoot button{color:var(--accent-fg);background:0 0;border:0;padding:5px}.stats{grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:25px;display:grid}.stats article{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--panel-shadow);padding:20px}.stats span{font-size:var(--fs-sm);color:var(--muted);display:block}.stats strong{font-family:var(--font);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:8px;font-size:2rem;font-weight:600;display:block}.stats article:first-child{border-color:var(--accent-line);background:linear-gradient(145deg,#2fb9a824,#2fb9a80d)}.stats article:first-child strong{color:var(--accent-fg)}.toolbar,.filterbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.toolbar>div{flex-wrap:wrap;gap:7px;display:flex}.filterbar{font-size:var(--fs-sm);justify-content:flex-start}.filterbar label{align-items:center;gap:10px;margin:0;display:flex}.filterbar select{width:140px;margin:0}.tablewrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);overflow:auto}table{border-collapse:collapse;text-align:left;width:100%;min-width:900px}th{font-size:var(--fs-xs);color:var(--muted);border-bottom:1px solid var(--line);background:#080c1473;padding:15px 12px;font-weight:500}td{font-size:var(--fs-md);border-bottom:1px solid var(--line);padding:17px 12px}td small{color:var(--faint);font-size:var(--fs-xs);margin-top:6px;display:block}input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);margin:0}.status{font-size:var(--fs-xs);color:var(--text-2);white-space:nowrap;background:#a8bee61a;border-radius:5px;padding:5px 7px}.status-done,.status.done{background:var(--ok-bg);color:var(--ok)}.status-review{background:var(--accent-soft);color:var(--accent-fg)}.status-ready{color:#9ec0dc;background:#7eb0d424}.status-warn{color:var(--warn);background:#e0a06a29}.status-idle{color:var(--muted);background:#a8bee61a}.linkbtn{color:var(--accent-fg);background:0 0;border:0;padding:4px}.linkbtn:hover{color:var(--accent-dim);background:0 0;border-color:#0000}.empty{text-align:center;padding:65px}.empty span{letter-spacing:.2em;color:var(--accent);font-size:var(--fs-lg);font-family:var(--display);margin-bottom:22px;display:block}.empty h3{font-size:var(--fs-lg)}.bridgeSteps{grid-template-columns:repeat(3,1fr);gap:30px;display:grid}.bridgeSteps a{font-size:var(--fs-md);color:var(--accent-fg);margin-right:10px}.apiNote{border-left:3px solid var(--accent)}.notice{z-index:10;border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:var(--radius-sm);color:var(--accent-fg);font-size:var(--fs-md);margin-bottom:18px;padding:13px 18px;position:sticky;top:10px}dialog{border-radius:var(--radius-lg);background:var(--bg1);width:min(850px,94vw);max-height:90vh;color:var(--text);border:0;border:1px solid var(--line);padding:28px;box-shadow:0 25px 100px #0000008c}dialog::backdrop{background:#05080eb8}.dialoghead{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.close{border:0;padding:3px 8px;font-size:23px}.dialogfoot{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.check{align-items:center;gap:10px;display:flex}pre.diff{white-space:pre-wrap;font-size:var(--fs-sm);border:1px solid var(--line);background:#080c148c;border-radius:5px;max-height:210px;padding:12px;overflow:auto}.checks{white-space:pre-line;font-size:var(--fs-xs);color:var(--muted);margin:10px 0}.styleGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0 18px;display:grid}.styleCard{border:1px solid var(--line-strong);border-radius:var(--radius-md);transition:border-color var(--ease), background var(--ease), box-shadow var(--ease);background:#080c1447;margin:0;padding:16px}.styleCard:hover{border-color:var(--accent-line);background:#2fb9a80d}.styleCard.chosen{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent-line)}.styleCard .check{margin-bottom:8px}.styleCard .check b{color:var(--text);font-size:var(--fs-md)}.styleCard p{font-size:var(--fs-sm);color:var(--text-2);margin:6px 0}.styleCard .fit{color:var(--accent-fg);font-size:var(--fs-xs);margin-top:0}.two{border-top:1px solid #a8bee61a;grid-template-columns:minmax(0,7rem) minmax(0,1fr);gap:12px;margin-top:12px;padding-top:12px;display:grid}.styleSummary{background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--radius-sm);color:var(--accent-fg);font-size:var(--fs-sm);margin:4px 0 10px;padding:12px 14px;line-height:1.55}.custom-style-field{border-top:1px solid #a8bee614;margin-top:4px;margin-bottom:0;padding-top:16px}@media (width<=1150px){aside{width:200px;padding:24px 14px}main{margin-left:200px;padding:28px 22px}.quotaGrid{grid-template-columns:repeat(2,1fr)}.toolbar{flex-direction:column;align-items:flex-start}.twocol,.twocol--brief{grid-template-columns:1fr}.card--template{min-height:0;position:static}.template-field textarea{min-height:16rem}.field-row,.field-row--3,.field-row--params,.field-row--gap{grid-template-columns:1fr}.field-narrow{max-width:none}.intro{align-items:flex-start}.intro--inline{flex-direction:column;align-items:stretch}.pill{white-space:normal}.step-foot,.batch-actions{flex-direction:column;align-items:stretch}.step-foot .primary,.batch-actions-btns .primary,.batch-actions-btns button,.batch-actions-btns{width:100%}.gen-model{flex-direction:column;align-items:stretch}.seg{width:100%}.seg-btn{flex:1;min-width:0}.gen-stats{grid-template-columns:1fr}.toolbar--split{flex-direction:column;align-items:stretch}.toolbar-group--export{justify-content:flex-start}.intro--compact{align-items:flex-start}.two{grid-template-columns:1fr}}@media (width<=800px){.styleGrid{grid-template-columns:1fr}}@media (width<=700px){aside{width:auto;padding:18px;position:static}.brand-text span,.workspace,.sidebottom{display:none}nav{gap:4px;margin-top:18px;display:flex;overflow:auto}nav button{white-space:nowrap;flex:none;padding:10px}nav button .nav-step{width:auto}main{margin:0;padding:22px 16px}header.page-head{align-items:flex-start;gap:12px}.headerActions,.intro{flex-direction:column}.quotaGrid,.bridgeSteps{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr);gap:10px}.three{grid-template-columns:1fr}}.login-shell{background:radial-gradient(ellipse 65% 45% at 12% -6%, #2fb9a81a, transparent 58%), radial-gradient(ellipse 50% 38% at 88% 8%, #506eaa14, transparent 52%), linear-gradient(165deg, #090b10 0%, var(--bg0) 48%, #0c1018 100%);place-items:center;min-height:100vh;padding:28px 20px;display:grid;position:relative;overflow:hidden}.login-glow{pointer-events:none;filter:blur(8px);background:radial-gradient(#2fb9a824,#0000 70%);width:min(520px,90vw);height:180px;animation:5.5s ease-in-out infinite login-glow-breathe;position:absolute;inset:auto auto 12% 50%;transform:translate(-50%)}.login-page{z-index:1;flex-direction:column;gap:18px;width:min(480px,100%);animation:.42s cubic-bezier(.22,1,.36,1) both login-rise;display:flex;position:relative}.login-hero{align-items:center;gap:14px;display:flex}.login-hero .brand-mark{width:44px;height:44px;box-shadow:0 0 0 1px var(--accent-line), 0 10px 28px #2fb9a82e;border-radius:12px;animation:.52s cubic-bezier(.22,1,.36,1) both login-mark-in}.login-hero h1{font-family:var(--display);letter-spacing:-.02em;color:var(--text);margin:0;font-size:1.5rem;font-weight:700;line-height:1.15}.login-hero .sub,.login-boot .sub{color:var(--text-2);font-size:var(--fs-sm);line-height:var(--lh-tight);margin:5px 0 0;font-weight:400}.login-card{border:1px solid var(--line);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#131820eb;margin:0;padding:14px 14px 14px 16px;box-shadow:0 1px 2px #00000040,0 22px 56px #00000059}.login-row{align-items:stretch;gap:10px;display:flex}.login-field{border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--field);min-width:0;transition:border-color var(--ease), box-shadow var(--ease), background var(--ease);flex:1;align-items:center;gap:10px;margin:0;padding:0 4px 0 2px;display:flex}.login-label{font-size:var(--fs-sm);color:var(--text-2);white-space:nowrap;flex-shrink:0;padding-left:10px;font-weight:500}.login-field input{width:auto;min-width:0;box-shadow:none;color:var(--text);background:0 0;border:0;outline:none;flex:1;margin:0;padding:12px 12px 12px 0}.login-field input:focus{box-shadow:none;border:0}.login-field:focus-within{background:#080c14b8;border-color:#2fb9a873;box-shadow:0 0 0 1px #2fb9a82e}.login-submit{border-radius:var(--radius-md);flex-shrink:0;align-self:stretch;min-width:5.5rem;padding-inline:18px}.login-submit:disabled{opacity:.55;cursor:not-allowed}.login-banner{color:#f0b4b4;border-radius:var(--radius-sm);font-size:var(--fs-md);background:#d878781f;border:1px solid #d8787859;justify-content:space-between;align-items:center;gap:12px;padding:11px 14px;animation:.28s both login-rise;display:flex}.login-banner-x{color:inherit;background:0 0;border:0;padding:2px 6px;font-size:1.1rem;line-height:1}.login-banner-x:hover{background:#d878781f;border-color:#0000}.login-shell--boot .login-boot{z-index:1;flex-direction:column;align-items:center;gap:14px;animation:.36s both login-rise;display:flex;position:relative}.login-boot .brand-mark{border-radius:12px;width:44px;height:44px}@keyframes login-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes login-mark-in{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}@keyframes login-glow-breathe{0%,to{opacity:.7;transform:translate(-50%)scale(1)}50%{opacity:1;transform:translate(-50%)scale(1.06)}}@media (width<=520px){.login-row{flex-direction:column}.login-submit{width:100%;min-height:44px}.login-hero h1{font-size:1.35rem}}.batch-page{max-width:1100px}.batch-page>.card{margin-bottom:18px}.batch-page>.intro{margin-bottom:20px}.intro--inline{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px;display:flex}.intro--inline .section-lead{max-width:40rem;margin:0}.intro--inline .primary{flex-shrink:0}.batch-creative .field-row--3{margin-bottom:4px}.batch-details{border-top:1px solid #a8bee614;margin:0;padding-top:4px}.batch-details>summary{cursor:pointer;font-size:var(--fs-sm);color:var(--text-2);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 2px;font-weight:500;list-style:none;display:flex}.batch-details>summary::-webkit-details-marker{display:none}.batch-details>summary:before{content:"";border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);width:.4rem;height:.4rem;transition:transform var(--ease);flex-shrink:0;margin-right:8px;transform:rotate(-45deg)}.batch-details[open]>summary:before{transform:rotate(45deg)}.batch-details>summary>span:first-of-type{flex:1;min-width:0}.batch-details-meta{font-size:var(--fs-2xs);color:var(--faint);letter-spacing:.04em;font-weight:400}.batch-details-body{padding:4px 0 8px}.batch-actions{border:1px solid var(--accent-line);border-radius:var(--radius-md);background:linear-gradient(135deg, #2fb9a81a, #2fb9a808), var(--surface);box-shadow:var(--panel-shadow);justify-content:space-between;align-items:center;gap:18px;margin-top:6px;padding:18px 20px;display:flex}.batch-actions-copy{min-width:0}.batch-actions-copy strong{font-family:var(--display);font-size:var(--fs-lg);color:var(--text);letter-spacing:-.01em;font-weight:700;display:block}.batch-actions-copy .hint{margin:6px 0 0}.batch-actions-btns{flex-wrap:wrap;flex-shrink:0;gap:10px;display:flex}.batch-actions-btns .primary{min-width:9.5rem}.radio-card{border:1px solid var(--line);border-radius:var(--radius-md,10px);background:var(--surface);cursor:pointer;transition:border-color var(--ease), background var(--ease), box-shadow var(--ease);align-items:flex-start;gap:10px;margin-bottom:0;padding:14px 12px;display:flex}.radio-card:hover{border-color:var(--accent-line);background:#2fb9a80f}.radio-card.chosen{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent-line)}.radio-card input{margin-top:4px}.radio-card strong{color:var(--text);display:block}.radio-card .hint{margin-top:4px;display:block}.generate-page,.review-page{max-width:1100px}.intro--compact{align-items:center;margin-bottom:16px}.intro--compact h2{margin-bottom:4px}.intro--compact .section-lead{max-width:40rem;color:var(--text-2);font-size:var(--fs-md);margin:0}.pill--warn{color:var(--warn);background:#e0a06a24;border-color:#e0a06a59}.gen-work{margin-bottom:16px;padding:20px 22px 18px}.gen-model{border-bottom:1px solid #a8bee61a;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding-bottom:16px;display:flex}.gen-model-label{flex-direction:column;gap:4px;min-width:0;display:flex}.gen-model-label .field-group-label{margin:0}.gen-model-label .hint.mono,.hint.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:var(--fs-2xs);letter-spacing:.02em;word-break:break-all}.seg{border:1px solid var(--line-strong);background:#080c148c;border-radius:10px;flex-shrink:0;gap:2px;padding:3px;display:inline-flex}.seg-btn{color:var(--text-2);font-size:var(--fs-md);min-width:6.5rem;transition:background var(--ease), color var(--ease), box-shadow var(--ease);background:0 0;border:0;border-radius:8px;padding:9px 18px;font-weight:600}.seg-btn:hover:not(:disabled){color:var(--text);background:#2fb9a814;border-color:#0000}.seg-btn.chosen{background:linear-gradient(135deg, var(--accent), var(--accent-dim));color:var(--ink);box-shadow:0 1px 2px #00000040}.seg-btn.chosen:hover:not(:disabled){background:linear-gradient(135deg, #3ac7b5, var(--accent));color:var(--ink)}.gen-stats{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px;display:grid}.gen-stats article{border-radius:var(--radius-sm);border:1px solid var(--line);background:#080c1459;padding:12px 14px}.gen-stats article.is-accent{border-color:var(--accent-line);background:var(--accent-soft)}.gen-stats span{font-size:var(--fs-2xs);letter-spacing:.06em;color:var(--muted);margin-bottom:4px;display:block}.gen-stats strong{font-family:var(--display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--text);font-size:1.35rem;font-weight:700}.gen-stats article.is-accent strong{color:var(--accent-fg)}.gen-ready{margin:0}.empty--panel{border-radius:var(--radius-md);background:#080c1447;border:1px dashed #a8bee62e;padding:36px 20px 28px}.empty--panel span{font-size:var(--fs-md);letter-spacing:.14em;margin-bottom:12px}.empty--panel h3{font-family:var(--display);font-size:var(--fs-xl);color:var(--text);margin:0 0 8px}.empty--panel p{max-width:28rem;color:var(--text-2);margin:0 auto 18px}.stats--compact{gap:10px;margin-bottom:14px}.stats--compact article{padding:12px 14px}.stats--compact span{font-size:var(--fs-2xs);letter-spacing:.05em}.stats--compact strong{margin-top:4px;font-size:1.35rem}.toolbar--split{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--panel-shadow);margin-bottom:12px;padding:12px 14px}.toolbar-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar-group--export{justify-content:flex-end}.btn-quiet{color:var(--text-2);background:0 0;border-color:#0000;padding:8px 12px}.btn-quiet:hover{border-color:var(--accent-line);color:var(--text);background:#2fb9a814}.review-page .filterbar{gap:14px;margin-bottom:12px;padding:0 2px}.filterbar-meta{color:var(--text-2);font-variant-numeric:tabular-nums}.tablewrap--dense th{padding:11px 12px}.tablewrap--dense td{padding:12px}.tablewrap--dense td small{margin-top:4px}.review-foot{margin-top:12px}
