*{box-sizing:border-box}
:root{
 --bg:#090d14;--panel:#0c111a;--panel2:#111925;--panel3:#101824;--line:#1d2737;--line2:#29364a;
 --text:#e8eef8;--muted:#7e8da4;--faint:#58677d;--accent:#4c7dff;--good:#42d392;--danger:#ff9dac;
 --user:#264f9f;--avatar:#172235;--code:#0a111b;--rail:#64748c;--railActive:#8fb0ff;--topbar:#0b1018;
 --composer:#111925;--surface:#111824;--active:#17233d;--track:#0d141f;--thumb:#334156;--shadow:rgba(0,0,0,.45);
}
html[data-theme="graphite"]{--bg:#111214;--panel:#181a1d;--panel2:#202327;--panel3:#1d2024;--line:#2f3338;--line2:#3b4148;--text:#f0f0f0;--muted:#9ca2aa;--faint:#707780;--accent:#8a92a0;--good:#69c98d;--danger:#ff9dac;--user:#3f464f;--avatar:#292d32;--code:#17191c;--rail:#777f89;--railActive:#c2c8d0;--topbar:#16181b;--composer:#202327;--surface:#1b1e22;--active:#292e35;--track:#17191d;--thumb:#444b54}
html[data-theme="silver"]{--bg:#20242a;--panel:#2b3037;--panel2:#343a43;--panel3:#303640;--line:#4a535f;--line2:#5b6673;--text:#f3f6f9;--muted:#bcc5cf;--faint:#8e99a5;--accent:#9cb7d9;--good:#7ad0a2;--danger:#ff9dac;--user:#526d8c;--avatar:#424b56;--code:#272c32;--rail:#8995a2;--railActive:#d2e3f7;--topbar:#282d34;--composer:#343a43;--surface:#303640;--active:#3b4655;--track:#252b32;--thumb:#596574}
html[data-theme="solarlight"]{--bg:#f6f0df;--panel:#eee8d5;--panel2:#fffaf0;--panel3:#f2ead7;--line:#d4c8ae;--line2:#bdb093;--text:#3c4346;--muted:#6c756f;--faint:#8a8d80;--accent:#268bd2;--good:#2aa198;--danger:#dc322f;--user:#d5e8f4;--avatar:#e4dbc5;--code:#eee8d5;--rail:#948c78;--railActive:#268bd2;--topbar:#eee8d5;--composer:#fffaf0;--surface:#f7f0df;--active:#dde9ec;--track:#e6deca;--thumb:#b8ad94;--shadow:rgba(94,77,43,.18)}
html[data-theme="ocean"]{--bg:#e7f6ff;--panel:#d8eefb;--panel2:#f5fbff;--panel3:#e5f5fd;--line:#b3d8eb;--line2:#8fc8e4;--text:#16364c;--muted:#4d7189;--faint:#6c8ba0;--accent:#1588c9;--good:#168b78;--danger:#d45a6a;--user:#cbeaff;--avatar:#c0e1f3;--code:#e5f4fb;--rail:#63a8cc;--railActive:#0f76b0;--topbar:#d8eefb;--composer:#f7fcff;--surface:#e8f6fc;--active:#c4e7f8;--track:#d5ebf6;--thumb:#8fc5df;--shadow:rgba(49,111,145,.18)}
html[data-theme="folder"]{--bg:#f4eedf;--panel:#d9c9a5;--panel2:#fffdf6;--panel3:#eadfca;--line:#baa780;--line2:#9e895f;--text:#3a3124;--muted:#77684f;--faint:#91816a;--accent:#9c6a2c;--good:#4f8b57;--danger:#b74f4f;--user:#ead7ad;--avatar:#d8c49d;--code:#eee4cf;--rail:#9b845d;--railActive:#8c5d22;--topbar:#e2d4b8;--composer:#fffdf6;--surface:#eadfca;--active:#e1d2b3;--track:#e7ddc7;--thumb:#ae9b77;--shadow:rgba(94,73,38,.18)}
html[data-theme="jade"]{--bg:#071713;--panel:#0b211b;--panel2:#102a23;--panel3:#0d261f;--line:#1c4337;--line2:#2a5a4b;--text:#e6fff6;--muted:#8eb5a8;--faint:#6e9589;--accent:#37c99a;--good:#65e0b7;--danger:#ff9ba6;--user:#1a6852;--avatar:#154236;--code:#081c17;--rail:#4f8a78;--railActive:#68e0b8;--topbar:#0a1e19;--composer:#102a23;--surface:#0d261f;--active:#16382f;--track:#0b201a;--thumb:#2b5b4c}
html[data-theme="win95"]{--bg:#c0c0c0;--panel:#c0c0c0;--panel2:#d4d0c8;--panel3:#c0c0c0;--line:#808080;--line2:#404040;--text:#000;--muted:#222;--faint:#555;--accent:#000080;--good:#008000;--danger:#800000;--user:#e4e4e4;--avatar:#c0c0c0;--code:#fff;--rail:#808080;--railActive:#000080;--topbar:#000080;--composer:#fff;--surface:#c0c0c0;--active:#000080;--track:#dfdfdf;--thumb:#808080;--shadow:rgba(0,0,0,.25)}

html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body{font-size:16px}
button,input,textarea,select{font:inherit;color:inherit}

.app-shell{width:100vw;height:100vh;overflow:hidden;display:flex;background:var(--bg)}
.sidebar{flex:0 0 280px;width:280px;height:100vh;min-height:0;overflow:hidden;background:var(--panel);border-right:1px solid var(--line);padding:18px;display:flex;flex-direction:column;gap:18px;position:relative;z-index:20}
.brand{display:flex;align-items:center;gap:11px;padding:3px 4px}.brand b{display:block}.brand span{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.brand-mark{width:48px;height:48px;border-radius:14px;background:linear-gradient(145deg,#58a6ff,#675cff);display:grid;place-items:center;font-weight:800;font-size:24px;color:#fff;box-shadow:0 10px 25px rgba(76,125,255,.28);margin:auto}
.brand-mark.small{width:34px;height:34px;border-radius:10px;font-size:17px;margin:0}.brand-mark.hero{width:60px;height:60px;border-radius:18px;font-size:29px}
.new-chat,.secondary{border:1px solid var(--line2);background:var(--panel2);color:var(--text);border-radius:10px;padding:10px 12px;cursor:pointer}.new-chat{text-align:left}
.sidebar nav{display:grid;gap:5px}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:9px;color:var(--muted)}.nav-item.active{background:var(--active);color:var(--text)}.nav-item em{margin-left:auto;font-size:9px;font-style:normal;color:var(--muted)}.nav-item.active em{color:var(--good)}.nav-item.disabled{opacity:.55}
.status-card{margin-top:0;background:var(--panel3);border:1px solid var(--line);border-radius:13px;padding:13px}
.status-line{display:flex;gap:8px;align-items:center;margin-bottom:12px;font-size:13px}.dot{width:8px;height:8px;border-radius:50%;background:#657083}.dot.ok{background:var(--good)}.dot.warn{background:#ffb84c}
.status-row{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted);padding:4px 0}.status-row strong{color:var(--text);text-align:right;font-weight:600}
.model-controls{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}.secondary{padding:7px;font-size:11px}.secondary.danger{color:var(--danger)}
.account-card{border-top:1px solid var(--line);padding:10px 4px 0;display:grid;gap:2px;font-size:11px;color:var(--muted)}.account-card strong{color:var(--text);font-size:12px}.account-card small{color:var(--good)}
.sidebar-bottom-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.logout{flex:0 0 auto;color:var(--muted);text-decoration:none;font-size:12px;padding:6px 4px}
.theme-inline{display:flex;align-items:center;justify-content:flex-end;gap:5px;min-width:0}.theme-inline label{font-size:10px;color:var(--faint)}
.theme-select{width:112px;height:28px;min-width:0;border:1px solid var(--line2);border-radius:7px;background:var(--panel2);padding:0 5px;outline:none;font-size:10px}

.main{flex:1 1 auto;min-width:0;height:100vh;min-height:0;overflow:hidden;display:flex;flex-direction:column;background:var(--bg)}
.topbar{flex:0 0 76px;height:76px;min-height:76px;border-bottom:1px solid var(--line);padding:15px 26px;display:flex;align-items:center;justify-content:space-between;background:var(--topbar);position:relative;z-index:15}
.topbar h1{font-size:18px;line-height:1.2;margin:0;font-weight:750}.topbar p{font-size:12px;line-height:1.3;color:var(--muted);margin:4px 0 0}.header-badge{font-size:11px;color:var(--muted);border:1px solid var(--line2);padding:5px 8px;border-radius:8px}

.conversation-frame{flex:1 1 auto;min-height:0;position:relative;overflow:hidden;background:var(--bg)}
.messages{position:absolute;left:0;right:0;top:0;bottom:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:30px max(72px,calc((100% - 900px)/2 + 52px)) 42px max(20px,calc((100% - 900px)/2));scroll-behavior:smooth}
.messages::-webkit-scrollbar{width:12px}.messages::-webkit-scrollbar-track{background:var(--track)}.messages::-webkit-scrollbar-thumb{background:var(--thumb);border-radius:10px;border:3px solid var(--track)}
.welcome{text-align:center;max-width:620px;margin:10vh auto;color:var(--muted)}.welcome h2{color:var(--text);font-size:28px;margin:18px 0 8px}.welcome p{line-height:1.6}
.turn{scroll-margin-top:18px;padding:1px 0 8px;border-bottom:1px solid var(--line)}.turn:last-child{border-bottom:0}
.msg{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;margin:20px 0}.avatar{width:32px;height:32px;border-radius:9px;background:var(--avatar);display:grid;place-items:center;font-size:12px;font-weight:800}.msg.user .avatar{background:var(--user)}
.bubble{line-height:1.65;color:var(--text);padding-top:4px;overflow-wrap:anywhere}.bubble p{margin:.4em 0 .8em}.bubble h1,.bubble h2,.bubble h3,.bubble h4{margin:1.05em 0 .45em;line-height:1.25}.bubble h3{font-size:1.05em}.bubble ul{margin:.5em 0 .9em;padding-left:1.5em}.bubble li{margin:.25em 0}.bubble strong{font-weight:750}.bubble code{background:var(--code);border:1px solid var(--line);border-radius:5px;padding:.12em .35em;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.bubble pre{background:var(--code);border:1px solid var(--line);border-radius:10px;padding:12px;overflow:auto}.bubble pre code{border:0;padding:0;background:none}.meta{color:var(--muted);font-size:11px;margin-top:8px}

.chat-rail{position:absolute;z-index:7;right:18px;top:14px;bottom:14px;width:28px;display:flex;flex-direction:column;align-items:center;pointer-events:none}
.chat-rail-bars{width:100%;display:flex;flex-direction:column;gap:8px;align-items:flex-end;overflow:hidden;padding:5px 0;pointer-events:auto}
.rail-bar{height:4px;width:13px;border:0;border-radius:99px;background:var(--rail);opacity:.5;padding:0;cursor:pointer;transition:width .15s,opacity .15s}.rail-bar:hover{width:23px;opacity:1}.rail-bar.active{width:23px;background:var(--railActive);opacity:1}

.composer-wrap{flex:0 0 auto;position:relative;z-index:12;padding:10px max(20px,calc((100% - 900px)/2)) 18px;background:var(--bg);border-top:1px solid var(--line)}
.notice{font-size:11px;color:var(--muted);min-height:18px;padding-left:8px}.composer{display:grid;grid-template-columns:1fr 42px;gap:8px;align-items:end;background:var(--composer);border:1px solid var(--line2);border-radius:16px;padding:10px 10px 10px 15px;box-shadow:0 15px 45px var(--shadow)}
.composer textarea{resize:none;max-height:180px;overflow:auto;background:none;border:0;outline:0;color:var(--text);line-height:1.5;padding:6px 0}.send{width:42px;height:42px;border:0;border-radius:12px;background:var(--accent);color:#fff;font-size:21px;cursor:pointer}.send:disabled{opacity:.4}
.composer-foot{display:flex;justify-content:space-between;color:var(--faint);font-size:10px;padding:7px 7px 0}

.access-shell{height:100vh;display:grid;place-items:center;background:var(--bg);padding:20px}.access-card{width:min(520px,100%);background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:34px;text-align:center;box-shadow:0 25px 70px var(--shadow)}.access-card h1{margin:16px 0 0}.access-card h2{margin:8px 0 12px}.access-card p{color:var(--muted);line-height:1.6}.access-user{margin:18px 0;color:var(--muted)}.access-button{display:inline-block;text-decoration:none;background:var(--accent);color:#fff;padding:10px 15px;border-radius:9px}

html[data-theme="win95"] body{font-family:"MS Sans Serif",Tahoma,Arial,sans-serif}
html[data-theme="win95"] .topbar{color:#fff}
html[data-theme="win95"] .topbar p{color:#ddd}
html[data-theme="win95"] .brand-mark{border-radius:0;box-shadow:none;background:#000080}
html[data-theme="win95"] .new-chat,html[data-theme="win95"] .secondary,html[data-theme="win95"] .theme-select,html[data-theme="win95"] .composer,html[data-theme="win95"] .status-card{border-radius:0;border-top:2px solid #fff;border-left:2px solid #fff;border-right:2px solid #404040;border-bottom:2px solid #404040;box-shadow:inset -1px -1px #808080,inset 1px 1px #dfdfdf}
html[data-theme="win95"] .send{border-radius:0;border-top:2px solid #fff;border-left:2px solid #fff;border-right:2px solid #000;border-bottom:2px solid #000;background:#c0c0c0;color:#000}
html[data-theme="win95"] .header-badge{color:#fff;border-color:#fff}
html[data-theme="win95"] .nav-item.active{color:#fff}

/* v0.05.12 mobile drawer + instant restored-history positioning */
.mobile-menu-button{display:none;border:1px solid var(--line2);background:var(--panel2);width:42px;height:42px;border-radius:11px;padding:10px;cursor:pointer;flex:0 0 auto}
.mobile-menu-button span{display:block;height:2px;background:var(--text);border-radius:2px;margin:4px 0}
.mobile-sidebar-backdrop{display:none}
.messages.history-loading{visibility:hidden;scroll-behavior:auto!important}
.messages.instant-jump{scroll-behavior:auto!important}
@media(max-width:760px){
 body.mobile-menu-open{overflow:hidden}
 .app-shell{display:block}.main{width:100%;height:100dvh;min-height:100dvh}
 .mobile-menu-button{display:block}
 .topbar{flex-basis:66px;height:66px;min-height:66px;padding:10px 12px;gap:10px}
 .topbar-title{min-width:0;flex:1}.topbar-title h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar p{display:none}.header-badge{flex:0 0 auto}
 .sidebar{display:flex;position:fixed;z-index:1001;left:0;top:0;bottom:0;width:min(86vw,340px);height:100dvh;max-width:340px;padding:16px;gap:14px;box-shadow:18px 0 48px rgba(0,0,0,.42);transform:translateX(-105%);transition:transform .2s ease;visibility:hidden}
 body.mobile-menu-open .sidebar{transform:translateX(0);visibility:visible}
 .mobile-sidebar-backdrop{display:block;position:fixed;z-index:1000;inset:0;background:rgba(0,0,0,.55);opacity:0;pointer-events:none;transition:opacity .2s ease}
 body.mobile-menu-open .mobile-sidebar-backdrop{opacity:1;pointer-events:auto}
 .history-panel{min-height:120px}.history-open span{font-size:13px}.history-heading{font-size:11px}.nav-item{font-size:14px;padding:11px}.new-chat{font-size:14px;padding:11px 12px}
 .messages{padding:20px 50px 30px 14px}.chat-rail{right:14px}.composer-wrap{padding-left:14px;padding-right:14px;padding-bottom:max(14px,env(safe-area-inset-bottom))}.composer-foot span:last-child{display:none}.welcome{margin-top:8vh}
}


/* v0.03.03 server-side recent conversations */
.main-nav{flex:0 0 auto}
.history-panel{flex:1 1 auto;min-height:100px;overflow:hidden;display:flex;flex-direction:column;border-top:1px solid var(--line);padding-top:10px}
.history-heading{display:flex;justify-content:space-between;align-items:center;padding:0 5px 7px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}
.history-heading em{font-style:normal;color:var(--faint);font-size:9px}
.history-list{min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:3px;padding-right:2px}
.history-list::-webkit-scrollbar{width:6px}.history-list::-webkit-scrollbar-thumb{background:var(--thumb);border-radius:8px}
.history-item{display:grid;grid-template-columns:minmax(0,1fr) 25px;align-items:center;border-radius:7px}
.history-item.current{background:var(--active)}
.history-open,.history-delete{border:0;background:transparent;color:var(--muted);cursor:pointer}
.history-open{min-width:0;text-align:left;padding:7px 5px 7px 8px;display:flex;align-items:center;gap:5px}
.history-open span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;color:var(--text);font-size:11px}
.history-open small{font-size:9px;color:var(--faint)}
.history-delete{opacity:.55;font-size:17px;line-height:1;padding:1px}.history-item:hover .history-delete,.history-item.current .history-delete{opacity:.8}.history-delete:hover{opacity:1;color:var(--danger)}
.history-empty{font-size:11px;color:var(--faint);padding:8px 5px}

/* ChengAI native login */
.login-shell{height:100vh;overflow:auto;display:grid;place-items:center;background:var(--bg);padding:24px}
.login-card{width:min(430px,100%);background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:30px 32px;box-shadow:0 28px 80px var(--shadow)}
.login-logo{margin:0 auto 12px}
.login-heading{text-align:center;margin-bottom:22px}.login-heading h1{margin:0;font-size:25px}.login-heading p{margin:5px 0 0;color:var(--muted);font-size:12px}
.login-label{display:block;color:var(--muted);font-size:11px;margin:12px 0 5px}
.login-input{width:100%;height:42px;border:1px solid var(--line2);border-radius:10px;background:var(--composer);outline:none;padding:0 12px;color:var(--text)}
.login-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(76,125,255,.13)}
.login-input.invalid{border-color:var(--danger)}
.login-error{color:var(--danger);font-size:10px;margin-top:4px}
.login-alert{border:1px solid var(--danger);background:var(--panel3);color:var(--danger);padding:10px 12px;border-radius:9px;font-size:11px;margin-bottom:13px;line-height:1.5}
.captcha-box{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel3)}
.captcha-image-row{display:flex;align-items:center;gap:8px}.captcha-image-row img{max-width:230px;height:auto;border-radius:6px;border:1px solid var(--line2);background:#fff}
.captcha-refresh{width:38px;height:38px;border:1px solid var(--line2);border-radius:9px;background:var(--panel2);cursor:pointer;font-size:20px}
.captcha-input{max-width:170px}
.login-submit{width:100%;height:44px;border:0;border-radius:11px;background:var(--accent);color:#fff;font-weight:700;cursor:pointer;margin-top:18px}
.login-links{display:flex;justify-content:center;gap:6px;margin-top:18px;color:var(--muted);font-size:11px}.login-links a{color:var(--accent);text-decoration:none}
.login-foot{text-align:center;color:var(--faint);font-size:9px;margin-top:14px;line-height:1.5}
html[data-theme="win95"] .login-card,html[data-theme="win95"] .login-input,html[data-theme="win95"] .captcha-box,html[data-theme="win95"] .captcha-refresh,html[data-theme="win95"] .login-submit{border-radius:0}

.history-heading em.full{color:var(--danger);font-weight:700}

/* v0.03.05 administrator settings */
.sidebar-bottom-row{justify-content:flex-start}
.theme-inline{margin-left:auto}
.admin-gear{flex:0 0 30px;width:30px;height:30px;margin-left:2px;display:grid;place-items:center;border:1px solid var(--line2);border-radius:7px;background:var(--panel2);color:var(--muted);cursor:pointer;font-size:15px;line-height:1}
.admin-gear:hover{color:var(--text);border-color:var(--accent)}
.modal-open{overflow:hidden}
.admin-modal[hidden]{display:none!important}
.admin-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px}
.admin-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.62);backdrop-filter:blur(3px)}
.admin-dialog{position:relative;z-index:1;width:min(620px,calc(100vw - 36px));max-height:calc(100vh - 48px);overflow:auto;background:var(--surface);border:1px solid var(--line2);border-radius:17px;box-shadow:0 30px 90px var(--shadow)}
.admin-dialog-head{display:flex;align-items:center;justify-content:space-between;padding:19px 20px 15px;border-bottom:1px solid var(--line)}
.admin-dialog-head h2{margin:0;font-size:17px}.admin-dialog-head p{margin:4px 0 0;color:var(--muted);font-size:11px}
.admin-close{width:32px;height:32px;border:1px solid var(--line2);border-radius:8px;background:var(--panel2);color:var(--muted);cursor:pointer;font-size:20px}
.admin-section{padding:18px 20px;border-bottom:1px solid var(--line)}
.admin-setting-row{display:grid;grid-template-columns:minmax(0,1fr) 180px;align-items:center;gap:18px}
.admin-setting-row strong,.admin-section>strong{font-size:12px}.admin-setting-row p,.admin-section p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.55}
.admin-select{height:36px;border:1px solid var(--line2);border-radius:8px;background:var(--panel2);padding:0 9px;outline:none}
.admin-info small{display:block;margin-top:5px;color:var(--faint);font-size:10px}
.admin-future{opacity:.75}
.admin-dialog-foot{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:14px 20px}
.admin-dialog-foot span{margin-right:auto;color:var(--muted);font-size:10px}
.admin-save{border:0;border-radius:9px;background:var(--accent);color:#fff;padding:9px 14px;cursor:pointer;font-weight:650}
.admin-save:disabled{opacity:.5}
html[data-theme="win95"] .admin-gear,html[data-theme="win95"] .admin-dialog,html[data-theme="win95"] .admin-close,html[data-theme="win95"] .admin-select,html[data-theme="win95"] .admin-save{border-radius:0}
@media(max-width:560px){.admin-setting-row{grid-template-columns:1fr}.admin-select{width:100%}}

/* v0.03.06 daily usage + quota admin */
.usage-card{border:1px solid var(--line);background:var(--panel3);border-radius:10px;padding:9px 10px}
.usage-title{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.usage-title em{font-style:normal;color:var(--faint)}
.usage-row{display:flex;justify-content:space-between;gap:10px;font-size:10px;padding:2px 0;color:var(--muted)}
.usage-row strong{color:var(--text);font-weight:650}
.usage-unlimited{color:var(--good);font-size:11px;font-weight:700;padding:2px 0}
.admin-section-title{margin-bottom:12px}.admin-section-title strong{font-size:12px}.admin-section-title p{margin:4px 0 0;color:var(--muted);font-size:10px;line-height:1.45}
.quota-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px 14px}
.quota-grid label{display:grid;grid-template-columns:minmax(0,1fr) 86px;align-items:center;gap:8px;color:var(--muted);font-size:10px}
.quota-grid label span{overflow:hidden;text-overflow:ellipsis}
.quota-grid .quota-wide{grid-column:1/-1;grid-template-columns:minmax(0,1fr) 120px}
.admin-number{width:100%;height:32px;border:1px solid var(--line2);border-radius:7px;background:var(--panel2);color:var(--text);padding:0 7px;outline:none;text-align:right}
.quota-fixed strong{color:var(--good);text-align:right;font-size:10px}
.quota-note{margin-top:10px;color:var(--faint);font-size:9px;line-height:1.45}
.admin-whitelist{width:100%;resize:vertical;min-height:92px;max-height:220px;border:1px solid var(--line2);border-radius:8px;background:var(--panel2);color:var(--text);padding:9px;outline:none;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;line-height:1.45}
.admin-hint{display:block;margin-top:7px;color:var(--faint);font-size:9px;line-height:1.45}
html[data-theme="win95"] .usage-card,html[data-theme="win95"] .admin-number,html[data-theme="win95"] .admin-whitelist{border-radius:0}
@media(max-width:560px){.quota-grid{grid-template-columns:1fr}.quota-grid .quota-wide{grid-column:auto}}

/* v0.04.00 Work / Artifacts */
.nav-clickable{cursor:pointer}
.nav-clickable:hover{background:var(--panel2)}
.composer-mode-row{display:flex;align-items:center;gap:8px;padding:0 4px 7px;color:var(--faint);font-size:10px}
.mode-chip{border:1px solid var(--line2);background:var(--panel2);color:var(--muted);border-radius:999px;padding:4px 9px;cursor:pointer;font-size:10px}
.mode-chip.work{background:var(--active);color:var(--text);border-color:var(--accent)}
.artifact-card{margin-top:12px;border:1px solid var(--line2);border-radius:12px;background:var(--panel3);padding:12px 13px}
.artifact-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.artifact-title{min-width:0}.artifact-title strong{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.artifact-title span{display:block;margin-top:3px;color:var(--muted);font-size:10px}
.artifact-download{flex:0 0 auto;text-decoration:none;background:var(--accent);color:#fff;padding:7px 11px;border-radius:8px;font-size:10px;font-weight:700}
.artifact-summary{margin-top:9px;color:var(--muted);font-size:10px;line-height:1.5}
.artifact-command{margin-top:9px;background:var(--code);border:1px solid var(--line);border-radius:8px;padding:8px 9px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px;overflow:auto;white-space:pre-wrap;word-break:break-all}
.artifact-checks{margin-top:7px;color:var(--faint);font-size:9px}
html[data-theme="win95"] .mode-chip,html[data-theme="win95"] .artifact-card,html[data-theme="win95"] .artifact-download,html[data-theme="win95"] .artifact-command{border-radius:0}


/* v0.05.00 live GPU telemetry */
.gpu-live{margin-top:9px;border-top:1px solid var(--line);padding-top:8px}
.gpu-live-row{display:grid;grid-template-columns:34px minmax(0,1fr) 52px;align-items:center;gap:5px;font-size:9px;padding:2px 0}
.gpu-name{font-weight:750;color:var(--text)}
.gpu-live-row strong{font-size:9px;text-align:right;color:var(--text);font-weight:600}
.gpu-live-row em{font-size:9px;font-style:normal;text-align:right;color:var(--muted)}
.gpu-meter{height:3px;background:var(--line);overflow:hidden;border-radius:3px;margin:1px 0 4px}
.gpu-meter span{display:block;height:100%;width:0;background:var(--accent);transition:width .35s ease}
.model-control-label{font-size:8px;color:var(--faint);margin-top:8px;line-height:1.35}
.model-controls .secondary{white-space:normal;line-height:1.15}

/* v0.05.00 Poker AI */
.poker-workspace{min-height:0;overflow:auto;padding:22px 26px 30px}
.poker-console-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}
.poker-console-head h2{margin:0;font-size:19px}
.poker-console-head p{margin:5px 0 0;color:var(--muted);font-size:11px}
.poker-unlimited-badge{border:1px solid var(--good);color:var(--good);border-radius:999px;padding:5px 9px;font-size:9px;font-weight:800}
.poker-controls{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.poker-controls label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.04em}
.poker-controls select{height:34px;min-width:130px;border:1px solid var(--line2);border-radius:8px;background:var(--panel2);color:var(--text);padding:0 8px}
.poker-secondary{height:34px;border:1px solid var(--line2);border-radius:8px;background:var(--panel2);color:var(--muted);padding:0 11px;cursor:pointer}
.poker-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(330px,.92fr);gap:15px}
.poker-state-card,.poker-result-card{min-height:460px;border:1px solid var(--line);border-radius:13px;background:var(--panel3);padding:13px;display:flex;flex-direction:column}
.poker-card-title{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}
.poker-card-title strong{font-size:12px}.poker-card-title span{font-size:9px;color:var(--faint)}
#pokerStateInput{flex:1;min-height:365px;resize:vertical;border:1px solid var(--line2);border-radius:9px;background:var(--code);color:var(--text);padding:11px;font:10px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;outline:none}
.poker-state-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;color:var(--faint);font-size:9px}
.poker-decide{height:36px;border:0;border-radius:9px;background:var(--accent);color:#fff;font-weight:750;padding:0 15px;cursor:pointer}
.poker-decide:disabled{opacity:.55}
.poker-result-empty,.poker-result-loading{flex:1;display:grid;place-items:center;text-align:center;color:var(--faint);font-size:11px;padding:24px}
.poker-result-error{border:1px solid var(--danger);color:var(--danger);padding:12px;border-radius:8px;font-size:10px}
.poker-action-line{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:5px 0 14px}
.poker-action{font-size:28px;letter-spacing:.02em}.poker-action-fold{color:var(--danger)}.poker-action-check,.poker-action-call{color:var(--good)}.poker-action-raise,.poker-action-all_in{color:var(--accent)}
.poker-action-line>span{text-align:right}.poker-action-line>span b{display:block;font-size:16px}.poker-action-line>span small{display:block;color:var(--faint);font-size:8px}
.poker-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:13px}
.poker-metrics span{border:1px solid var(--line);background:var(--panel2);padding:8px;border-radius:8px;text-align:center}
.poker-metrics b{display:block;font-size:13px}.poker-metrics small{display:block;color:var(--faint);font-size:8px;margin-top:3px}
.poker-summary{font-size:11px;line-height:1.55;margin:4px 0 8px}
.poker-result ul{margin:5px 0 9px;padding-left:18px;color:var(--muted);font-size:10px;line-height:1.5}
.poker-privacy{border-top:1px solid var(--line);padding-top:8px;color:var(--good);font-size:9px}
.poker-warning{margin-top:8px;color:var(--muted);font-size:9px;border:1px solid var(--line);padding:7px;border-radius:7px}
.poker-api-note{margin-top:auto;padding-top:10px;border-top:1px solid var(--line);color:var(--faint);font-size:9px;line-height:1.55}
.poker-api-note code{color:var(--text)}
html[data-theme="win95"] .poker-state-card,html[data-theme="win95"] .poker-result-card,html[data-theme="win95"] #pokerStateInput,html[data-theme="win95"] .poker-controls select,html[data-theme="win95"] .poker-secondary,html[data-theme="win95"] .poker-decide,html[data-theme="win95"] .poker-metrics span{border-radius:0}
@media(max-width:900px){.poker-grid{grid-template-columns:1fr}.poker-state-card,.poker-result-card{min-height:360px}}


/* v0.05.01 PokerBrain Training Lab */
.pb-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:14px}
.pb-kicker{font-size:8px;font-weight:800;letter-spacing:.13em;color:var(--accent);margin-bottom:5px}
.pb-head h2{margin:0;font-size:21px}.pb-head p{margin:6px 0 0;color:var(--muted);font-size:10px;max-width:760px;line-height:1.5}
.pb-head-status{text-align:right}.pb-head-status small{display:block;color:var(--faint);font-size:8px;margin-top:5px}
.pb-state-badge{display:inline-block;padding:5px 9px;border:1px solid var(--line2);border-radius:999px;font-size:8px;font-weight:800;letter-spacing:.06em;color:var(--muted)}
.pb-state-badge[data-state="running"]{border-color:var(--good);color:var(--good)}.pb-state-badge[data-state="failed"]{border-color:var(--danger);color:var(--danger)}
.pb-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:14px}.pb-tab{border:0;background:transparent;color:var(--muted);font-size:10px;font-weight:700;padding:9px 12px;cursor:pointer;border-bottom:2px solid transparent}.pb-tab.active{color:var(--text);border-bottom-color:var(--accent)}
.pb-principles{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:12px}.pb-principle{border:1px solid var(--line);background:var(--panel3);border-radius:11px;padding:11px}.pb-principle>span{font-size:8px;color:var(--accent);font-weight:800}.pb-principle strong{display:block;font-size:11px;margin:4px 0}.pb-principle p{margin:0;color:var(--muted);font-size:9px;line-height:1.45}
.pb-design-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.pb-card{border:1px solid var(--line);background:var(--panel3);border-radius:11px;padding:12px}.pb-wide{grid-column:1/-1}.pb-card-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.pb-card-title strong{font-size:11px}.pb-card-title span{font-size:7px;color:var(--faint);letter-spacing:.06em}
.pb-spec{margin:0}.pb-spec>div{display:grid;grid-template-columns:145px 1fr;border-top:1px solid var(--line);padding:6px 0;gap:9px}.pb-spec>div:first-child{border-top:0}.pb-spec dt{color:var(--faint);font-size:8px;text-transform:capitalize}.pb-spec dd{margin:0;font-size:9px;color:var(--text);line-height:1.4}
.pb-pipeline{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}.pb-pipeline>div{min-height:65px;border:1px solid var(--line);background:var(--panel2);padding:8px;border-radius:8px}.pb-pipeline span{display:block;color:var(--accent);font-size:8px;font-weight:800;margin-bottom:7px}.pb-pipeline b{font-size:9px;line-height:1.3}
.pb-phases{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.pb-phases>div{border:1px solid var(--line);border-radius:8px;padding:8px}.pb-phases span{font-size:8px;color:var(--accent);font-weight:800}.pb-phases strong{display:block;font-size:9px;margin:3px 0}.pb-phases p{margin:0;color:var(--muted);font-size:8px;line-height:1.35}
.pb-live-grid,.pb-result-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:11px}.pb-result-grid{grid-template-columns:repeat(4,1fr)}.pb-stat{border:1px solid var(--line);background:var(--panel3);border-radius:10px;padding:10px;min-height:72px}.pb-stat span{display:block;font-size:8px;color:var(--faint)}.pb-stat strong{display:block;font-size:15px;margin:6px 0 3px}.pb-stat small{display:block;font-size:7px;color:var(--muted)}
.pb-runline{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:8px 0;font-size:9px}.pb-runline span{color:var(--muted)}.pb-run-message{margin-top:8px;padding:10px;border:1px solid var(--line);background:var(--panel2);border-radius:8px;font-size:9px}.pb-readonly-note{font-size:8px;color:var(--faint);margin-top:8px}
.pb-results-layout{display:grid;grid-template-columns:1.3fr .7fr;gap:11px;margin-bottom:11px}.pb-curve{width:100%;height:220px;display:block;border:1px solid var(--line);background:var(--panel2);border-radius:8px}.pb-line{fill:none;stroke:var(--accent);stroke-width:2;vector-effect:non-scaling-stroke}.pb-zero{stroke:var(--line2);stroke-width:1;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.pb-chart-empty{height:220px;margin-top:-220px;display:grid;place-items:center;color:var(--faint);font-size:9px;pointer-events:none}
.pb-style-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.pb-style-grid>div,.pb-diagnostics>div{border:1px solid var(--line);background:var(--panel2);border-radius:8px;padding:9px}.pb-style-grid span,.pb-diagnostics span{display:block;color:var(--faint);font-size:8px}.pb-style-grid b,.pb-diagnostics b{display:block;font-size:13px;margin-top:5px}.pb-diagnostics{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.pb-muted{color:var(--faint);font-size:8px;margin:8px 0 0}
@media(max-width:980px){.pb-principles{grid-template-columns:1fr}.pb-design-grid{grid-template-columns:1fr}.pb-wide{grid-column:auto}.pb-pipeline{grid-template-columns:repeat(3,1fr)}.pb-phases{grid-template-columns:repeat(2,1fr)}.pb-live-grid{grid-template-columns:repeat(3,1fr)}.pb-results-layout{grid-template-columns:1fr}}
@media(max-width:620px){.pb-head{flex-direction:column}.pb-head-status{text-align:left}.pb-live-grid,.pb-result-grid{grid-template-columns:repeat(2,1fr)}.pb-pipeline{grid-template-columns:repeat(2,1fr)}.pb-phases{grid-template-columns:1fr}.pb-spec>div{grid-template-columns:110px 1fr}.pb-diagnostics{grid-template-columns:1fr}}


/* v0.05.03 neuron_poker reference audit */
.pb-research-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:8px}
.pb-research-grid>div{border:1px solid var(--line);background:var(--panel2);border-radius:8px;padding:8px}
.pb-research-grid span{display:block;color:var(--faint);font-size:8px}
.pb-research-grid b{display:block;font-size:10px;margin-top:5px;overflow-wrap:anywhere}
.pb-research-findings{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:8px}
.pb-research-findings>div{border:1px solid var(--line);border-radius:8px;padding:8px;background:var(--panel2)}
.pb-research-findings strong{display:block;font-size:9px;margin-bottom:4px}
.pb-research-findings p{margin:0;color:var(--muted);font-size:8px;line-height:1.4}
.pb-research-findings>[data-severity="BLOCKER_FOR_PURE_INPUT"]{border-color:var(--danger)}
.pb-research-findings>[data-severity="LICENSE_REVIEW"]{border-style:dashed}
.pb-research-findings>[data-severity="POSITIVE"] strong{color:var(--good)}
@media(max-width:760px){.pb-research-grid{grid-template-columns:repeat(2,1fr)}.pb-research-findings{grid-template-columns:1fr}}

/* v0.05.03 PokerBrainEnv validation */
.pb-env-validation{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:9px;padding-top:9px;border-top:1px solid var(--line)}
.pb-env-validation>div{border:1px solid var(--line);background:var(--panel2);border-radius:7px;padding:7px}
.pb-env-validation span{display:block;color:var(--faint);font-size:7px}.pb-env-validation b{display:block;font-size:9px;margin-top:4px}

/* v0.05.04 training resource monitor + evaluation schedule */
.pb-resource-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:11px}.pb-eval-plan{margin-bottom:11px}.pb-eval-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.pb-eval-grid>div{border:1px solid var(--line);background:var(--panel2);border-radius:8px;padding:9px}.pb-eval-grid span{display:block;color:var(--faint);font-size:8px}.pb-eval-grid b{display:block;font-size:11px;margin-top:5px}.pb-milestone-strip{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.pb-milestone-strip span{border:1px solid var(--line);background:var(--panel2);border-radius:999px;padding:4px 7px;font-size:7px;color:var(--muted)}#pbDiskGuard[data-level="ok"]{color:var(--good)}#pbDiskGuard[data-level="warn"]{color:var(--accent)}#pbDiskGuard[data-level="stop"],#pbDiskGuard[data-level="emergency"]{color:var(--danger)}.pb-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px}.pb-eval-table{width:100%;border-collapse:collapse;font-size:8px;min-width:680px}.pb-eval-table th,.pb-eval-table td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}.pb-eval-table th:first-child,.pb-eval-table td:first-child,.pb-eval-table th:nth-child(2),.pb-eval-table td:nth-child(2),.pb-eval-table th:nth-child(3),.pb-eval-table td:nth-child(3),.pb-eval-table th:last-child,.pb-eval-table td:last-child{text-align:left}.pb-eval-table thead th{color:var(--faint);font-weight:700;background:var(--panel2)}@media(max-width:980px){.pb-resource-grid{grid-template-columns:repeat(3,1fr)}.pb-eval-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:620px){.pb-resource-grid{grid-template-columns:repeat(2,1fr)}.pb-eval-grid{grid-template-columns:repeat(2,1fr)}}

/* v0.05.05 first neural learner + research/report archive */
.pb-learner-card{margin-bottom:11px}.pb-learner-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:7px}.pb-learner-grid>div{border:1px solid var(--line);background:var(--panel2);border-radius:8px;padding:9px}.pb-learner-grid span{display:block;color:var(--faint);font-size:8px}.pb-learner-grid b{display:block;font-size:10px;margin-top:5px;overflow-wrap:anywhere}
.pb-reports-intro{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-bottom:11px}.pb-reports-intro p{font-size:9px;line-height:1.55;color:var(--muted)}.pb-report-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.pb-report-stat-grid>div{border:1px solid var(--line);background:var(--panel2);border-radius:8px;padding:8px}.pb-report-stat-grid span{display:block;font-size:8px;color:var(--faint)}.pb-report-stat-grid b{display:block;font-size:9px;margin-top:5px}
.pb-reference-list{display:grid;grid-template-columns:1fr 1fr;gap:7px}.pb-reference-list>div{display:flex;gap:8px;border:1px solid var(--line);background:var(--panel2);border-radius:8px;padding:8px}.pb-reference-list>div>span{color:var(--accent);font-size:8px;font-weight:800}.pb-reference-list strong{display:block;font-size:9px}.pb-reference-list p{margin:3px 0;color:var(--muted);font-size:8px}.pb-reference-list small{display:block;color:var(--faint);font-size:8px;line-height:1.35}
.pb-decision-matrix{display:grid;gap:6px}.pb-decision-matrix>div{border:1px solid var(--line);background:var(--panel2);border-radius:8px;padding:8px}.pb-decision-matrix strong{display:block;font-size:9px;margin-bottom:4px}.pb-decision-matrix span{display:inline-block;margin-right:8px;color:var(--muted);font-size:8px}.pb-decision-matrix p{margin:5px 0 0;color:var(--faint);font-size:8px;line-height:1.35}
.pb-report-list{display:grid;gap:7px}.pb-report-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);background:var(--panel2);border-radius:8px;padding:9px}.pb-report-row strong{display:block;font-size:9px}.pb-report-row span{display:block;color:var(--faint);font-size:8px;margin-top:3px}.pb-report-actions{display:flex;gap:6px;flex-wrap:wrap}.pb-report-actions a{display:inline-block;border:1px solid var(--line2);border-radius:7px;padding:5px 7px;color:var(--text);font-size:8px;text-decoration:none}.pb-report-actions a:hover{border-color:var(--accent)}
@media(max-width:980px){.pb-learner-grid{grid-template-columns:repeat(3,1fr)}.pb-reports-intro{grid-template-columns:1fr}.pb-reference-list{grid-template-columns:1fr}}
@media(max-width:620px){.pb-learner-grid{grid-template-columns:repeat(2,1fr)}.pb-report-stat-grid{grid-template-columns:1fr}.pb-report-row{align-items:flex-start;flex-direction:column}}


/* v0.05.07 Poker AI readability pass
   Previous Training Lab text used many 7-10px sizes and was too small on
   desktop. Keep density, but establish a readable ~11-14px baseline. */
.poker-workspace .pb-kicker{font-size:11px;line-height:1.35}
.poker-workspace .pb-head h2{font-size:25px;line-height:1.2}
.poker-workspace .pb-head p{font-size:13px;line-height:1.55;max-width:850px}
.poker-workspace .pb-head-status small{font-size:11px}
.poker-workspace .pb-state-badge{font-size:11px;padding:6px 10px}
.poker-workspace .pb-tab{font-size:13px;padding:10px 14px}

.poker-workspace .pb-principle{padding:13px}
.poker-workspace .pb-principle>span{font-size:11px}
.poker-workspace .pb-principle strong{font-size:14px;margin:5px 0}
.poker-workspace .pb-principle p{font-size:12px;line-height:1.5}

.poker-workspace .pb-card{padding:14px}
.poker-workspace .pb-card-title strong{font-size:14px}
.poker-workspace .pb-card-title span{font-size:10px}
.poker-workspace .pb-spec dt{font-size:11px}
.poker-workspace .pb-spec dd{font-size:12px;line-height:1.5}
.poker-workspace .pb-spec>div{padding:8px 0}

.poker-workspace .pb-pipeline span{font-size:11px}
.poker-workspace .pb-pipeline b{font-size:12px;line-height:1.4}
.poker-workspace .pb-pipeline>div{min-height:76px;padding:10px}

.poker-workspace .pb-phases span{font-size:11px}
.poker-workspace .pb-phases strong{font-size:12px;margin:4px 0}
.poker-workspace .pb-phases p{font-size:11px;line-height:1.45}
.poker-workspace .pb-phases>div{padding:10px}

.poker-workspace .pb-stat{padding:12px;min-height:82px}
.poker-workspace .pb-stat span{font-size:11px}
.poker-workspace .pb-stat strong{font-size:18px;margin:7px 0 4px}
.poker-workspace .pb-stat small{font-size:10px;line-height:1.35}

.poker-workspace .pb-runline{font-size:12px;padding:9px 0}
.poker-workspace .pb-run-message{font-size:12px;line-height:1.5}
.poker-workspace .pb-readonly-note{font-size:11px;line-height:1.45}
.poker-workspace .pb-chart-empty{font-size:12px}

.poker-workspace .pb-style-grid span,
.poker-workspace .pb-diagnostics span{font-size:11px}
.poker-workspace .pb-style-grid b,
.poker-workspace .pb-diagnostics b{font-size:16px}
.poker-workspace .pb-muted{font-size:11px;line-height:1.5}

.poker-workspace .pb-research-grid span{font-size:11px}
.poker-workspace .pb-research-grid b{font-size:13px}
.poker-workspace .pb-research-findings strong{font-size:12px}
.poker-workspace .pb-research-findings p{font-size:11px;line-height:1.5}

.poker-workspace .pb-eval-grid span{font-size:11px}
.poker-workspace .pb-eval-grid b{font-size:14px}
.poker-workspace .pb-milestone-strip span{font-size:10px;padding:5px 8px}
.poker-workspace .pb-eval-table{font-size:11px}
.poker-workspace .pb-eval-table th,
.poker-workspace .pb-eval-table td{padding:9px 10px}

@media(max-width:620px){
  .poker-workspace .pb-head h2{font-size:22px}
  .poker-workspace .pb-tab{font-size:12px;padding:9px 10px}
  .poker-workspace .pb-head p{font-size:12px}
}


/* v0.05.08 readability carry-forward marker:
   v0.05.07 Web deployment could be blocked by report-backup verification,
   so v0.05.08 explicitly preserves the enlarged Poker AI Training Lab typography. */

/* v0.05.10 first meaningful 1M training run */
.pb-pilot-plan-card{margin-bottom:12px}.pb-pilot-plan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.pb-pilot-plan-grid>div{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:10px}.pb-pilot-plan-grid span{display:block;font-size:11px;color:var(--faint)}.pb-pilot-plan-grid b{display:block;font-size:13px;margin-top:5px}
.pb-training-progress{height:10px;border:1px solid var(--line);background:var(--panel2);border-radius:999px;overflow:hidden;margin:10px 0}.pb-training-progress span{display:block;height:100%;width:0;background:var(--accent);transition:width .35s ease}
.pb-training-controls{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:10px}.pb-training-controls button{font-size:12px;padding:7px 10px;border-radius:7px}.pb-training-controls span{font-size:11px;color:var(--muted)}
@media(max-width:760px){.pb-pilot-plan-grid{grid-template-columns:repeat(2,1fr)}}


/* v0.05.14 iOS mobile drawer viewport/scroll fix
   Root cause: desktop .sidebar uses overflow:hidden. v0.05.12 turned that same
   element into a fixed mobile drawer but never changed overflow, so content
   below the visible Safari viewport (Sign out / Theme / Admin settings) was clipped. */
.mobile-sidebar-close{display:none}

@media(max-width:760px){
  .sidebar{
    /* VisualViewport JS supplies an exact px height on iOS Safari. */
    height:var(--chengai-mobile-vh,100dvh);
    max-height:var(--chengai-mobile-vh,100dvh);
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior-y:contain;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y;
    padding-bottom:calc(26px + env(safe-area-inset-bottom));
    scroll-padding-bottom:calc(76px + env(safe-area-inset-bottom));
  }

  .sidebar .brand{position:relative;padding-right:46px;flex:0 0 auto}
  .mobile-sidebar-close{
    display:grid;
    place-items:center;
    position:absolute;
    right:0;
    top:0;
    width:38px;
    height:38px;
    padding:0;
    border:1px solid var(--line2);
    border-radius:10px;
    background:var(--panel2);
    color:var(--muted);
    font-size:25px;
    line-height:1;
    cursor:pointer;
  }

  /* Let the whole drawer scroll. Keep Recent chats bounded so it does not
     monopolize the mobile drawer and create an awkward nested full-height flex. */
  .history-panel{
    flex:0 0 auto;
    min-height:0;
    overflow:visible;
  }
  .history-list{
    max-height:180px;
    min-height:0;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }

  .status-card,
  .account-card,
  .usage-card,
  .sidebar-bottom-row{flex:0 0 auto}

  /* When the footer reaches the visible viewport, keep the three important
     controls visible while the user finishes scrolling the drawer. */
  .sidebar-bottom-row{
    position:sticky;
    bottom:0;
    z-index:4;
    background:var(--panel);
    border-top:1px solid var(--line);
    margin:0 -4px;
    padding:10px 4px calc(6px + env(safe-area-inset-bottom));
    box-shadow:0 -12px 22px rgba(0,0,0,.18);
  }

  .logout{font-size:13px}
  .theme-inline label{font-size:11px}
  .theme-select{height:32px;font-size:11px}
  .admin-gear{min-width:34px;min-height:34px}
}

/* Extremely short visual viewports (landscape / browser chrome expanded). */
@media(max-width:760px) and (max-height:620px){
  .sidebar{gap:10px;padding-top:12px}
  .main-nav{gap:2px}
  .nav-item{padding-top:8px;padding-bottom:8px}
  .history-list{max-height:110px}
}


/* v0.05.15 PB-EVAL-1M-01 */
.pb-post1m-card{border-color:color-mix(in srgb,var(--accent) 38%,var(--line))}
.pb-posteval-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:9px 0 11px}
.pb-posteval-grid>div{border:1px solid var(--line);background:var(--panel2);border-radius:8px;padding:9px}
.pb-posteval-grid span{display:block;color:var(--faint);font-size:11px}.pb-posteval-grid b{display:block;font-size:14px;margin-top:5px;overflow-wrap:anywhere}
@media(max-width:980px){.pb-posteval-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.pb-posteval-grid{grid-template-columns:repeat(2,1fr)}}


/* v0.05.16 PokerAI control button contrast / iOS Safari fix
   Never allow native disabled-button appearance to override ChengAI themes. */
.poker-workspace .pb-training-controls button{
  -webkit-appearance:none;
  appearance:none;
  border:1px solid var(--accent);
  background:var(--accent);
  color:#fff;
  font-weight:700;
  line-height:1.2;
  min-height:38px;
  padding:9px 13px;
  border-radius:8px;
  cursor:pointer;
  opacity:1;
  -webkit-text-fill-color:currentColor;
  box-shadow:none;
}
.poker-workspace .pb-training-controls button.secondary{
  border-color:var(--line2);
  background:var(--panel2);
  color:var(--text);
  -webkit-text-fill-color:var(--text);
}
.poker-workspace .pb-training-controls button.secondary.danger{
  border-color:color-mix(in srgb,var(--danger) 55%,var(--line2));
  background:var(--panel2);
  color:var(--danger);
  -webkit-text-fill-color:var(--danger);
}
.poker-workspace .pb-training-controls button:not(:disabled):active{
  transform:translateY(1px);
}
.poker-workspace .pb-training-controls button:disabled{
  -webkit-appearance:none;
  appearance:none;
  border-color:var(--line2);
  background:var(--panel3);
  color:var(--muted);
  -webkit-text-fill-color:var(--muted);
  opacity:.72;
  cursor:not-allowed;
}
@media(hover:hover){
  .poker-workspace .pb-training-controls button:not(:disabled):hover{
    filter:brightness(1.08);
  }
}
@media(max-width:760px){
  .poker-workspace .pb-training-controls button{
    min-height:44px;
    font-size:14px;
    padding:10px 14px;
  }
}

/* v0.05.17 full-compute resource panel */
.pb-compute-live{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}.pb-compute-live>div{border:1px solid var(--line);background:var(--panel2);border-radius:8px;padding:10px}.pb-compute-live span{display:block;font-size:10px;color:var(--faint)}.pb-compute-live b{display:block;margin-top:5px;font-size:13px}.pb-resource-form{display:flex;align-items:center;flex-wrap:wrap;gap:9px;border-top:1px solid var(--line);padding-top:10px}.pb-resource-form label{display:flex;align-items:center;gap:5px;font-size:11px}.pb-resource-form input[type=number]{width:58px;background:var(--panel2);color:var(--text);border:1px solid var(--line2);border-radius:6px;padding:6px}.pb-resource-form button{-webkit-appearance:none;appearance:none;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:7px;padding:7px 10px;font-weight:700}.pb-resource-form button.secondary{background:var(--panel2);color:var(--text);border-color:var(--line2)}.pb-resource-readonly{font-size:10px;color:var(--faint);font-weight:700}@media(max-width:760px){.pb-compute-live{grid-template-columns:repeat(2,1fr)}.pb-resource-form button{min-height:44px}}

/* v0.05.18 PokerAI QOL */
.pb-tab{position:relative}.pb-tab-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-left:5px;background:transparent;vertical-align:middle}@keyframes pbActivityPulse{0%,100%{box-shadow:0 0 0 0 rgba(59,130,246,0);border-color:var(--line2)}50%{box-shadow:0 0 0 3px rgba(59,130,246,.22);border-color:var(--accent)}}.pb-tab.activity-pulse{animation:pbActivityPulse 1.4s ease-in-out infinite}.pb-tab.activity-pulse .pb-tab-dot{background:var(--accent);box-shadow:0 0 8px var(--accent)}.pb-control-explainer{margin:10px 0 8px;padding:9px 11px;border:1px solid var(--line2);border-radius:7px;background:var(--panel2);font-size:11px;line-height:1.45;color:var(--muted)}.pb-control-explainer strong{color:var(--text)}.pb-training-controls button.pause-requested{border-color:#F59E0B!important;color:#92400E!important;background:#FEF3C7!important;-webkit-text-fill-color:#92400E!important}.pb-resource-form select{background:var(--panel2);color:var(--text);border:1px solid var(--line2);border-radius:6px;padding:6px}@media(prefers-reduced-motion:reduce){.pb-tab.activity-pulse{animation:none;border-color:var(--accent)}}


/* v0.05.19 Training v2 READY / Live Progress resource controls */
.pb-v2-resource-strip{
  display:grid;
  grid-template-columns:repeat(3,minmax(110px,1fr)) minmax(190px,1.25fr);
  gap:8px;
  margin:10px 0;
}
.pb-v2-resource-strip>div,
.pb-v2-resource-strip>label{
  border:1px solid var(--line);
  background:var(--panel2);
  border-radius:8px;
  padding:9px 10px;
  min-width:0;
}
.pb-v2-resource-strip span,
.pb-v2-resource-strip label{
  font-size:10px;
  color:var(--faint);
}
.pb-v2-resource-strip b{
  display:block;
  margin-top:4px;
  color:var(--text);
  font-size:12px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.pb-v2-resource-strip select{
  display:block;
  width:100%;
  margin-top:5px;
  background:var(--panel);
  color:var(--text);
  border:1px solid var(--line2);
  border-radius:6px;
  min-height:34px;
  padding:5px 7px;
  font-weight:700;
}
.pb-training-controls button.v2-ready{
  box-shadow:0 0 0 2px rgba(59,130,246,.16);
}
@media(max-width:760px){
  .pb-v2-resource-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pb-v2-resource-strip>label{grid-column:1/-1}
}

/* v0.05.21 true multiprocessing Training v2 resource controls */
.pb-v2-resource-strip{grid-template-columns:repeat(3,minmax(100px,1fr)) repeat(3,minmax(135px,1fr))}
.pb-v2-resource-strip input[type=number]{display:block;width:100%;box-sizing:border-box;margin-top:5px;background:var(--panel);color:var(--text);border:1px solid var(--line2);border-radius:6px;min-height:34px;padding:5px 7px;font-weight:700}
.pb-v2-runtime-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:8px 0 12px}.pb-v2-runtime-strip>div{border:1px solid var(--line);background:var(--panel2);border-radius:7px;padding:8px}.pb-v2-runtime-strip span{display:block;font-size:10px;color:var(--faint)}.pb-v2-runtime-strip b{display:block;margin-top:4px;font-size:12px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:760px){.pb-v2-resource-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.pb-v2-runtime-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.05.23 htop-style CPU monitor + parallel Training-v2 eval */
.pb-cpu-monitor{margin:10px 0;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel2)}
.pb-cpu-monitor-head{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.pb-cpu-monitor-head strong{font-size:12px}.pb-cpu-monitor-head span{font-size:11px;color:var(--muted)}
.pb-cpu-core-grid{display:grid;grid-template-columns:repeat(8,minmax(72px,1fr));gap:4px 7px}
.pb-cpu-core{display:grid;grid-template-columns:24px 1fr 36px;align-items:center;gap:4px;font-size:9px}
.pb-cpu-core>span:first-child{color:var(--faint);text-align:right}.pb-cpu-core>span:last-child{text-align:right;color:var(--muted)}
.pb-cpu-core-track{height:7px;border:1px solid var(--line2);border-radius:4px;overflow:hidden;background:var(--panel)}
.pb-cpu-core-fill{height:100%;background:var(--accent);min-width:0}
.pb-training-eval-progress{margin:10px 0;padding:10px;border:1px solid var(--accent);border-radius:8px;background:var(--panel2)}
.pb-training-eval-matchups{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:7px;margin-top:8px}
.pb-training-eval-matchups>div{border:1px solid var(--line);border-radius:6px;padding:7px}
.pb-training-eval-matchups span{display:block;color:var(--faint);font-size:9px}.pb-training-eval-matchups b{font-size:11px}
@media(max-width:900px){.pb-cpu-core-grid{grid-template-columns:repeat(4,minmax(72px,1fr))}.pb-training-eval-matchups{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.pb-cpu-core-grid{grid-template-columns:repeat(2,minmax(72px,1fr))}}

/* v0.06.00 external agent registry + admin Arena */
.pb-table-size-row{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 12px}
.pb-table-size{min-width:130px;padding:10px 12px;border:1px solid var(--line2);border-radius:8px;background:var(--panel);color:var(--text);text-align:left}
.pb-table-size small{display:block;margin-top:3px;color:var(--faint);font-size:9px}
.pb-table-size.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.pb-table-size:disabled{opacity:.38;cursor:not-allowed}
.pb-agent-registry{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:9px;margin-top:10px}
.pb-agent-card{border:1px solid var(--line);border-radius:8px;padding:10px;background:var(--panel2)}
.pb-agent-card[data-ready="true"]{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.pb-agent-card h4{margin:0 0 5px;font-size:13px}.pb-agent-card p{margin:5px 0;color:var(--muted);font-size:10px}
.pb-agent-tags{display:flex;gap:5px;flex-wrap:wrap}.pb-agent-tags span{border:1px solid var(--line);border-radius:999px;padding:2px 6px;font-size:9px;color:var(--faint)}
.pb-agent-ready{font-weight:700;font-size:10px}.pb-agent-ready.ready{color:#16a34a}.pb-agent-ready.missing{color:#dc2626}
.pb-interface-grid,.pb-arena-summary{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:8px}
.pb-interface-grid>div,.pb-arena-summary>div{border:1px solid var(--line);border-radius:7px;padding:8px}
.pb-interface-grid span,.pb-arena-summary span{display:block;color:var(--faint);font-size:9px}.pb-interface-grid b,.pb-interface-grid code,.pb-arena-summary b{display:block;margin-top:3px;font-size:11px;overflow-wrap:anywhere}
.pb-arena-admin{margin:12px 0;border-top:1px solid var(--line);padding-top:10px}
.pb-arena-seats{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:8px}
.pb-arena-seats label,.pb-arena-options label{font-size:10px;color:var(--faint)}
.pb-arena-seats select,.pb-arena-options select,.pb-arena-options input{display:block;width:100%;margin-top:4px;background:var(--panel);color:var(--text);border:1px solid var(--line2);border-radius:6px;padding:7px}
.pb-arena-options{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin-top:9px}.pb-arena-options label{min-width:140px}.pb-arena-options button{min-height:34px}
@media(max-width:900px){.pb-agent-registry{grid-template-columns:1fr 1fr}.pb-interface-grid,.pb-arena-summary{grid-template-columns:1fr 1fr}.pb-arena-seats{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.pb-agent-registry,.pb-interface-grid,.pb-arena-summary,.pb-arena-seats{grid-template-columns:1fr}.pb-table-size{flex:1 1 100%}}

.pb-research-frozen{border-style:dashed}.pb-research-frozen .pb-card-title span{font-weight:700}

/* v0.06.01 Arena randomized test designer */
.pb-arena-randomizer{margin:8px 0 12px;padding:10px;border:1px dashed var(--line2);border-radius:8px;background:var(--panel2)}
.pb-arena-random-options{display:flex;align-items:end;gap:8px;flex-wrap:wrap}
.pb-arena-random-options label{min-width:170px;font-size:10px;color:var(--faint)}
.pb-arena-random-options select{display:block;width:100%;margin-top:4px;background:var(--panel);color:var(--text);border:1px solid var(--line2);border-radius:6px;padding:7px}
#pbArenaRandomStatus{font-size:10px;color:var(--muted);max-width:420px}

/* v0.06.03 full-system randomized Arena suite */
.pb-arena-suite-admin{margin-top:14px;padding:12px;border:1px solid var(--line2);border-radius:8px;background:var(--panel2)}
.pb-arena-suite-admin .pb-arena-options{margin-top:10px}
.pb-arena-suite-admin input:disabled{opacity:.78;cursor:not-allowed}
.pb-suite-warning{margin-top:9px!important}
.pb-suite-public{margin:14px 0 12px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel2)}
.pb-suite-gpus{margin:8px 0 10px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;font-size:10px;color:var(--faint);overflow-wrap:anywhere}
@media(max-width:700px){.pb-arena-suite-admin .pb-arena-options label{min-width:100%;flex:1 1 100%}.pb-arena-suite-admin .pb-arena-options button{flex:1 1 45%}}

/* v0.06.04 clearly separated Single Arena vs Full-System test zones */
.pb-single-test-card,.pb-full-suite-card{position:relative;overflow:hidden}
.pb-single-test-card{border-width:2px;border-top-width:4px}
.pb-full-suite-card{border-width:2px;border-top-width:4px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 13%,transparent)}
.pb-test-mode-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:-2px -2px 14px;padding:13px 15px;border-bottom:1px solid var(--line2);background:color-mix(in srgb,var(--panel2) 82%,var(--accent) 18%)}
.pb-test-mode-banner>div{min-width:0}.pb-test-kicker{display:block;font-size:9px;font-weight:800;letter-spacing:.09em;color:var(--accent);margin-bottom:3px}.pb-test-mode-banner strong{display:block;font-size:16px;line-height:1.2;color:var(--text)}.pb-test-mode-banner small{display:block;margin-top:4px;font-size:10px;line-height:1.35;color:var(--muted)}
.pb-test-mode-full{background:color-mix(in srgb,var(--panel2) 68%,var(--accent) 32%)}
.pb-test-mode-badge{flex:0 0 auto;border:1px solid var(--accent);border-radius:999px;padding:5px 9px;font-size:9px;font-weight:800;letter-spacing:.04em;color:var(--text);background:var(--panel)}
.pb-test-separator{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin:20px 2px 18px;color:var(--faint)}.pb-test-separator span{height:0;border-top:2px dashed var(--line2)}.pb-test-separator strong{font-size:9px;letter-spacing:.08em;text-align:center;color:var(--muted)}
.pb-subsection-label{margin:0 0 7px;font-size:9px;font-weight:800;letter-spacing:.08em;color:var(--accent)}
.pb-single-result-table{margin-top:14px;padding-top:12px;border-top:2px solid var(--line)}
.pb-full-suite-card .pb-suite-public{margin:14px 0 0;border-width:2px;background:color-mix(in srgb,var(--panel2) 90%,var(--accent) 10%)}
.pb-full-suite-card .pb-arena-suite-admin{margin-top:12px;border-width:2px}
@media(max-width:700px){.pb-test-mode-banner{align-items:flex-start;flex-direction:column}.pb-test-mode-badge{align-self:flex-start}.pb-test-separator{grid-template-columns:1fr}.pb-test-separator span{display:none}.pb-test-separator strong{text-align:left}}

/* v0.06.05 PokerBench GRPO + exhaustive mixed-agent matrix + snapshots */
.pb-mixed-suite-card{position:relative;overflow:hidden;border-width:2px;border-top-width:4px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent)}
.pb-test-mode-mixed{background:color-mix(in srgb,var(--panel2) 54%,var(--accent) 46%)}
.pb-test-separator-mixed{margin-top:24px}
.pb-mixed-suite-card .pb-arena-suite-admin{border-width:2px}
.pb-snapshot-tools{display:grid;grid-template-columns:minmax(240px,1fr) minmax(220px,1fr) auto auto;gap:8px;align-items:end;margin-top:12px;padding:10px;border:1px solid var(--line2);border-radius:8px;background:var(--panel2)}
.pb-snapshot-tools strong{display:block;font-size:11px}.pb-snapshot-tools small{display:block;margin-top:3px;color:var(--muted);font-size:9px;line-height:1.35}
.pb-snapshot-tools input{width:100%;box-sizing:border-box;background:var(--panel);color:var(--text);border:1px solid var(--line2);border-radius:6px;padding:7px}
.pb-snapshot-list{margin:8px 0;padding:8px 10px;border:1px dashed var(--line2);border-radius:7px;background:var(--panel2);font-size:10px;color:var(--muted);overflow-wrap:anywhere}
.pb-snapshot-item{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:3px 0}.pb-snapshot-item strong{color:var(--text)}.pb-snapshot-item span{color:var(--faint)}
.pb-mixed-suite-card .pb-table-wrap{margin-top:13px}
@media(max-width:900px){.pb-snapshot-tools{grid-template-columns:1fr 1fr}.pb-snapshot-tools>div:first-child{grid-column:1/-1}}
@media(max-width:600px){.pb-snapshot-tools{grid-template-columns:1fr}.pb-snapshot-tools>div:first-child{grid-column:auto}.pb-snapshot-tools button{width:100%}}
.pb-mixed-advisory{border-width:2px;font-weight:600}.pb-mixed-advisory.warn{border-color:#a46b00}.pb-mixed-advisory.bad{border-color:#a32626}.pb-mixed-advisory.ok{border-color:#2f7d42}
.pb-agent-warning{margin:.45rem 0 0;padding:.4rem .5rem;border:1px solid currentColor;font-size:.82rem;line-height:1.35}

/* ChengAI Account / email verification v0.06.15 */
.email-verify-alert{display:flex;flex-direction:column;gap:5px}.email-verify-alert strong{font-size:13px}.email-verify-alert span{font-size:12px}.login-resend{display:inline-block;margin-top:4px;font-weight:700;text-decoration:none}.login-resend:hover{text-decoration:underline}

/* v0.06.15 local Image + Video AI */
.media-workspace{flex:1 1 auto;min-height:0;overflow:auto;padding:24px 28px 40px;background:var(--bg)}
.media-workspace::-webkit-scrollbar{width:12px}.media-workspace::-webkit-scrollbar-track{background:var(--track)}.media-workspace::-webkit-scrollbar-thumb{background:var(--thumb);border-radius:10px;border:3px solid var(--track)}
.media-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;max-width:1180px;margin:0 auto 16px;padding:20px 22px;border:1px solid var(--line2);border-radius:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--panel2) 88%,var(--accent) 12%),var(--panel2));box-shadow:0 12px 35px var(--shadow)}
.media-hero h2{margin:3px 0 7px;font-size:25px}.media-hero p{max-width:760px;margin:0;color:var(--muted);line-height:1.5;font-size:12px}.media-kicker{font-size:9px;font-weight:800;letter-spacing:.12em;color:var(--accent)}
.media-engine-badge{flex:0 0 auto;min-width:180px;border:1px solid var(--line2);border-radius:12px;padding:11px 13px;background:var(--panel);text-align:right}.media-engine-badge strong{display:block;font-size:13px}.media-engine-badge span{display:block;margin-top:3px;color:var(--muted);font-size:10px}
.media-grid{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(420px,1.1fr);gap:16px;max-width:1180px;margin:0 auto}.media-card{border:1px solid var(--line2);border-radius:14px;background:var(--panel2);padding:16px;box-shadow:0 10px 30px var(--shadow)}
.media-field{display:block;margin-bottom:12px}.media-field>span,.media-options label>span{display:block;margin-bottom:5px;color:var(--muted);font-size:10px;font-weight:700}.media-field small{font-weight:500;color:var(--faint)}
.media-field textarea,.media-options select,.media-options input{width:100%;border:1px solid var(--line2);border-radius:9px;background:var(--panel);color:var(--text);outline:none;padding:9px 10px}.media-field textarea{resize:vertical;line-height:1.45}.media-field textarea:focus,.media-options select:focus,.media-options input:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}
.media-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.media-options label{min-width:0}.media-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px}.media-actions button{min-height:38px;border:1px solid var(--accent);border-radius:9px;background:var(--accent);color:white;padding:8px 14px;cursor:pointer;font-weight:700}.media-actions button.secondary{background:var(--panel);border-color:var(--line2);color:var(--danger)}.media-actions button:disabled{opacity:.45;cursor:not-allowed}.media-actions span{color:var(--muted);font-size:10px;overflow-wrap:anywhere}
.media-first-run{margin-top:11px;padding:8px 10px;border:1px dashed var(--line2);border-radius:8px;color:var(--muted);font-size:10px;line-height:1.4}.media-first-run strong{color:var(--text)}
.media-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px}.media-card-head>strong{font-size:13px}.media-card-head>span{color:var(--muted);font-size:9px;letter-spacing:.05em}.media-card-head>span.ok{color:var(--good)}.media-card-head>span.error{color:var(--danger)}
.media-progress{height:6px;border-radius:99px;background:var(--track);overflow:hidden;margin-bottom:9px}.media-progress span{display:block;height:100%;width:0;background:var(--accent);transition:width .25s ease}.media-message{min-height:18px;color:var(--muted);font-size:10px;margin-bottom:9px;overflow-wrap:anywhere}
.media-preview{min-height:420px;border:1px solid var(--line);border-radius:12px;background:var(--panel);display:grid;place-items:center;overflow:hidden}.media-preview img,.media-preview video{display:block;max-width:100%;max-height:64vh;object-fit:contain}.media-video-preview{min-height:300px}.media-video-preview video{width:100%;background:#000}.media-placeholder{padding:28px;text-align:center;color:var(--faint);font-size:12px}.media-placeholder small{display:block;margin-top:8px}.media-working{color:var(--muted)}.media-error{color:var(--danger)}
.media-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:9px;color:var(--muted);font-size:9px}.media-meta b{color:var(--text)}
.media-recent-card{max-width:1180px;margin:16px auto 0}.media-recent{display:grid;gap:6px}.media-recent-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.media-recent-item strong{display:block;font-size:10px}.media-recent-item span{display:block;margin-top:2px;color:var(--faint);font-size:9px}.media-recent-item a{color:var(--accent);font-size:10px;text-decoration:none;font-weight:700}.media-recent-item em{color:var(--muted);font-size:9px;font-style:normal}
@media(max-width:980px){.media-grid{grid-template-columns:1fr}.media-preview{min-height:320px}.media-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.media-workspace{padding:12px 10px 24px}.media-hero{padding:13px 14px;border-radius:12px}.media-hero h2{font-size:20px}.media-hero p{font-size:11px}.media-engine-badge{min-width:0}.media-card{padding:12px;border-radius:11px}.media-options{grid-template-columns:1fr 1fr}.media-preview{min-height:260px}.media-video-preview{min-height:220px}}
@media(max-width:480px){.media-hero{display:block}.media-engine-badge{margin-top:10px;text-align:left}.media-options{grid-template-columns:1fr}.media-actions button{flex:1 1 45%}.media-preview{min-height:220px}}
.media-result-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.media-download{margin-top:9px;border:1px solid var(--line2);border-radius:8px;padding:6px 10px;color:var(--accent);font-size:10px;font-weight:700;text-decoration:none;background:var(--panel)}

/* Image model selector v0.06.15 */
.media-image-models{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 11px}.media-model-option{position:relative;display:block;cursor:pointer}.media-model-option input{position:absolute;opacity:0;pointer-events:none}.media-model-option>span{display:block;min-height:58px;border:1px solid var(--line2);background:var(--panel2);border-radius:10px;padding:9px 10px;transition:border-color .15s,box-shadow .15s,background .15s}.media-model-option b{display:block;font-size:10px}.media-model-option em{display:inline-block;margin-top:5px;border:1px solid var(--line2);border-radius:999px;padding:2px 6px;color:var(--accent);font-size:8px;font-style:normal;font-weight:800}.media-model-option small{display:block;margin-top:5px;color:var(--faint);font-size:8px;line-height:1.25}.media-model-option input:checked+span{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent);background:var(--panel)}.media-model-option.recommended input:checked+span:after{content:"DEFAULT";position:absolute;right:8px;top:8px;color:var(--good);font-size:7px;font-weight:900;letter-spacing:.05em}@media(max-width:760px){.media-image-models{grid-template-columns:1fr}.media-model-option>span{min-height:0}}

/* v0.06.22 admin statistics + local media delivery */
.admin-tabs{display:flex;gap:8px;padding:10px 20px;border-bottom:1px solid var(--line)}
.admin-tab{border:1px solid var(--line2);background:var(--panel2);color:var(--muted);padding:7px 12px;border-radius:8px;cursor:pointer;font-weight:650}
.admin-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.admin-stats-pane{padding:16px 20px 20px}.admin-stats-pane[hidden]{display:none!important}
.admin-stats-toolbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.admin-stats-toolbar label{display:grid;gap:4px;font-size:10px;color:var(--muted)}
.admin-stats-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0}.admin-stats-summary>div{border:1px solid var(--line);background:var(--panel2);padding:10px;border-radius:9px;min-width:0}.admin-stats-summary span{display:block;font-size:9px;color:var(--muted)}.admin-stats-summary strong{display:block;margin-top:4px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-stats-note{font-size:9px;color:var(--faint);line-height:1.45;margin-bottom:10px}.admin-stats-table-wrap{overflow:auto;max-height:55vh;border:1px solid var(--line);border-radius:9px}.admin-stats-table{width:100%;border-collapse:collapse;font-size:10px;min-width:850px}.admin-stats-table th,.admin-stats-table td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.admin-stats-table th{position:sticky;top:0;background:var(--surface);z-index:1}.admin-stats-table td:nth-child(5){max-width:360px}.stats-open{margin-left:6px;font-weight:700}.admin-stats-status{margin-top:8px;color:var(--muted);font-size:9px}
@media(min-width:760px){.admin-dialog:has(.admin-stats-pane:not([hidden])){width:min(1080px,calc(100vw - 36px))}}
@media(max-width:620px){.admin-stats-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-stats-pane{padding:12px}.admin-tabs{padding:9px 12px}}
