:root{--ink:#0a0e1a;--ink-2:#1e293b;--ink-3:#334155;--ink-4:#64748b;--ink-5:#94a3b8;--ink-6:#cbd5e1;--line:#e2e8f0;--line-2:#eef2f7;--line-3:#f1f5f9;--bg:#f6f8fb;--bg-soft:#fafbfd;--white:#fff;--primary:#0ea5e9;--primary-dark:#0369a1;--primary-soft:#e0f2fe;--primary-softer:#f0f9ff;--teal:#14b8a6;--teal-soft:#ccfbf1;--warm:#f59e0b;--warm-soft:#fef3c7;--warm-softer:#fffbeb;--rose:#f43f5e;--rose-soft:#ffe4e6;--green:#10b981;--green-soft:#d1fae5;--purple:#8b5cf6;--purple-soft:#ede9fe;--indigo:#6366f1;--indigo-soft:#e0e7ff;--admin-bg:#0f172a;--admin-sb:#1e293b;--admin-sb-hover:#334155;--admin-sb-active:#0ea5e9}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{color:#0a0e1a;background:var(--bg);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Inter,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.55}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,textarea,select{color:inherit;outline:none;font-family:inherit}ul,ol{list-style:none}textarea{resize:vertical}.icn{vertical-align:middle;stroke-width:1.8px;flex-shrink:0;width:16px;height:16px;display:inline-block}.icn-sm{width:13px;height:13px}.icn-md{width:18px;height:18px}.icn-lg{width:22px;height:22px}.btn{border:1px solid var(--line);color:var(--ink-2);cursor:pointer;background:#fff;border-radius:7px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;transition:all .12s;display:inline-flex}.btn:hover{border-color:var(--ink-5);color:var(--ink)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--ink);color:#fff;border-color:var(--ink)}.btn-primary:hover{background:var(--ink-2);border-color:var(--ink-2);color:#fff}.btn-accent{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;border-color:#0000;box-shadow:0 2px 6px #0ea5e940}.btn-accent:hover{color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #0ea5e959}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--line-3)}.btn-danger{color:var(--rose);background:0 0;border-color:#0000}.btn-danger:hover{background:var(--rose-soft);color:var(--rose)}.btn-sm{padding:5px 11px;font-size:12px}.btn-block{justify-content:center;width:100%}.card{border:1px solid var(--line);background:#fff;border-radius:12px;margin-bottom:14px;padding:18px 20px}.card-hd{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:14px;display:flex}.card-hd .t{color:var(--ink);align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.card-hd .t svg{color:var(--primary)}.card-hd .actions{gap:8px;display:flex}.fbox{margin-bottom:16px}.fbox label{color:var(--ink-2);margin-bottom:6px;font-size:12.5px;font-weight:600;display:block}.fbox label .req{color:var(--rose);margin-left:2px}.fbox label .hint{color:var(--ink-5);margin-left:6px;font-size:11.5px;font-weight:400}.fbox input,.fbox textarea,.fbox select{border:1px solid var(--line);background:#fff;border-radius:7px;width:100%;padding:8px 11px;font-family:inherit;font-size:13px}.fbox input:focus,.fbox textarea:focus,.fbox select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-softer)}.fgrid-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.fgrid-3{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.fgrid-4{grid-template-columns:1fr 1fr 1fr 1fr;gap:12px;display:grid}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{cursor:pointer;border:1px solid var(--line);color:var(--ink-3);background:#fff;border-radius:16px;align-items:center;gap:5px;padding:5px 11px;font-size:12px;transition:all .12s;display:inline-flex}.chip:hover{border-color:var(--ink-5);color:var(--ink)}.chip.on{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-dark);font-weight:500}.chip .icn{width:12px;height:12px}.seg{background:var(--line-3);border-radius:7px;padding:3px;display:inline-flex}.seg button{color:var(--ink-3);border-radius:5px;padding:5px 11px;font-size:12px}.seg button.on{color:var(--ink);background:#fff;font-weight:600;box-shadow:0 1px 3px #0000000f}.toggle{background:var(--ink-6);cursor:pointer;border-radius:10px;flex-shrink:0;width:32px;height:18px;transition:background .12s;display:inline-block;position:relative}.toggle:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:left .12s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000002e}.toggle.on{background:var(--green)}.toggle.on:after{left:16px}.toggle-row{color:var(--ink-2);justify-content:space-between;align-items:center;padding:8px 0;font-size:13px;display:flex}.tag{background:var(--line-2);color:var(--ink-3);border-radius:10px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}.tag.green{background:var(--green-soft);color:#047857}.tag.warm{background:var(--warm-soft);color:#b45309}.tag.rose{background:var(--rose-soft);color:#be123c}.tag.blue{background:var(--primary-soft);color:var(--primary-dark)}.tag.purple{background:var(--purple-soft);color:#6d28d9}.tag.teal{background:var(--teal-soft);color:#0f766e}.tag.gray{background:var(--line-2);color:var(--ink-4)}.tag .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.page-hd{margin-bottom:18px}.page-hd h1{color:var(--ink);margin-bottom:6px;font-size:20px;font-weight:700}.page-hd p{color:var(--ink-4);max-width:760px;font-size:13px;line-height:1.6}.empty{text-align:center;color:var(--ink-5);padding:60px 20px;font-size:13px}.empty .ico{background:var(--line-3);width:56px;height:56px;color:var(--ink-5);border-radius:14px;place-items:center;margin:0 auto 12px;display:grid}.muted{color:var(--ink-4)}.mono{font-family:ui-monospace,SF Mono,monospace}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast{background:var(--ink);color:#fff;opacity:0;pointer-events:none;z-index:999;border-radius:7px;padding:10px 18px;font-size:13px;transition:opacity .15s,transform .15s;position:fixed;bottom:24px;left:50%;transform:translate(-50%)translateY(20px);box-shadow:0 10px 30px #0003}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.drawer-mask{z-index:120;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a73;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:#fff;flex-direction:column;width:460px;max-width:92vw;height:100%;animation:.18s drawerIn;display:flex;box-shadow:-20px 0 60px #0f172a33}.drawer.wide{width:780px}@keyframes drawerIn{0%{opacity:.5;transform:translate(30px)}to{opacity:1;transform:none}}.drawer-hd{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.drawer-hd h2{color:var(--ink);font-size:15px;font-weight:700}.drawer-hd .x{width:28px;height:28px;color:var(--ink-4);cursor:pointer;border-radius:6px;place-items:center;display:grid}.drawer-hd .x:hover{background:var(--line-3);color:var(--ink)}.drawer-bd{flex:1;padding:20px;overflow-y:auto}.drawer-ft{border-top:1px solid var(--line-2);justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}.kv{grid-template-columns:96px 1fr;gap:8px 12px;font-size:13px;display:grid}.kv .k{color:var(--ink-5)}.kv .v{color:var(--ink-2)}.pager{justify-content:flex-end;gap:4px;margin-top:14px;display:flex}.pager .btn.on{background:var(--primary);color:#fff;border-color:var(--primary)}.pop-wrap{position:relative}.menu-pop{border:1px solid var(--line);z-index:60;background:#fff;border-radius:10px;width:224px;padding:6px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 36px #0f172a24}.menu-pop .mhd{border-bottom:1px solid var(--line-2);margin-bottom:4px;padding:10px 10px 8px}.menu-pop .mhd strong{color:var(--ink);font-size:13px;display:block}.menu-pop .mhd small{color:var(--ink-5);font-size:11px}.menu-pop .mi{color:var(--ink-2);cursor:pointer;border-radius:6px;align-items:center;gap:10px;padding:9px 10px;font-size:13px;display:flex}.menu-pop .mi:hover{background:var(--line-3)}.menu-pop .mi.danger{color:var(--rose)}.menu-pop .mi.danger:hover{background:var(--rose-soft)}.menu-divider{background:var(--line-2);height:1px;margin:4px 0}.notif-pop{width:320px}.notif-item{cursor:default;border-radius:8px;padding:10px}.notif-item+.notif-item{margin-top:2px}.notif-item.unread{background:var(--primary-softer)}.notif-item .nt{color:var(--ink-2);font-size:12.5px;line-height:1.5}.notif-item .ntm{color:var(--ink-5);margin-top:2px;font-size:11px}.sb-toggle{width:40px;height:40px;color:var(--ink-4);cursor:pointer;border-radius:50%;flex-shrink:0;place-items:center;margin:0 0 6px 2px;transition:background .12s;display:grid}.sb-toggle:hover{background:var(--line-3);color:var(--ink)}.admin .sb-toggle{color:#cbd5e1}.admin .sb-toggle:hover{background:var(--admin-sb-hover);color:#fff}.shell.collapsed:not(.mobile) .sb-toggle{margin-left:auto;margin-right:auto}.sb-collapse{color:var(--ink-4);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:8px;font-size:12px;display:flex}.sb-collapse:hover{background:var(--line-3);color:var(--ink)}.sb-ver{text-align:center;color:var(--ink-5);padding-top:8px;font-size:10.5px}.shell.collapsed:not(.mobile){grid-template-columns:64px 1fr}.shell.collapsed:not(.mobile) .brand{justify-content:center;width:64px;padding:0}.shell.collapsed:not(.mobile) .brand-text,.shell.collapsed:not(.mobile) .sb-label{display:none}.shell.collapsed:not(.mobile) .sb-item{justify-content:center}.shell.collapsed:not(.mobile) .sb-item span,.shell.collapsed:not(.mobile) .sb-item .p-tag,.shell.collapsed:not(.mobile) .sb-item .num,.shell.collapsed:not(.mobile) .sb-item .star,.shell.collapsed:not(.mobile) .sb-collapse span,.shell.collapsed:not(.mobile) .sb-ver,.shell.collapsed:not(.mobile) .crumbs,.shell.collapsed:not(.mobile) .sb-bottom .helper{display:none}.nav-toggle{margin:0 4px 0 8px}.shell.mobile{grid-template-columns:1fr}.shell.mobile .sidebar{z-index:90;width:240px;transition:transform .2s;position:fixed;top:52px;bottom:0;left:0;transform:translate(-100%);box-shadow:6px 0 24px #00000024}.shell.mobile.nav-open .sidebar{transform:none}.nav-scrim{z-index:80;background:#0f172a66;position:fixed;inset:52px 0 0}.shell.mobile .crumbs{display:none}@media (width<=1200px){.blueprint{grid-template-columns:1fr 1fr}}@media (width<=900px){.split2,.two-col,.fgrid-2,.fgrid-3,.fgrid-4{grid-template-columns:1fr}.blueprint,.kpi-grid{grid-template-columns:1fr 1fr}.ppt-grid{grid-template-columns:1fr}.modal,.modal.wide,.modal.xwide{width:94vw}.drawer{width:100vw}.workspace .page,.admin .page{padding:16px 14px 48px}.topbar-right .model-pick .meta{display:none}}.table-wrap{overflow-x:auto}.table-wrap .table{min-width:640px}.activate-bg{z-index:200;background:linear-gradient(135deg,#f0f9ff 0%,#ecfeff 50%,#f0fdfa 100%);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.activate-bg:before{content:"";pointer-events:none;background:radial-gradient(circle at 20% 30%,#0ea5e91f,#0000 50%),radial-gradient(circle at 80% 70%,#14b8a61a,#0000 50%);position:absolute;inset:0}.activate-card{z-index:1;background:#fff;border-radius:18px;grid-template-columns:440px 1fr;width:920px;max-width:100%;display:grid;position:relative;overflow:hidden;box-shadow:0 30px 80px #0f172a1f}.activate-card.login{grid-template-columns:420px 1fr;width:820px}.activate-hero{color:#fff;background:linear-gradient(#0c4a6e,#134e4a);flex-direction:column;padding:48px 44px;display:flex;position:relative;overflow:hidden}.activate-hero:before{content:"";background:radial-gradient(circle,#14b8a64d,#0000 70%);border-radius:50%;width:400px;height:400px;position:absolute;top:-50%;right:-30%}.activate-hero .brand-logo{background:linear-gradient(135deg, var(--primary), var(--teal));color:#fff;border-radius:11px;place-items:center;width:44px;height:44px;margin-bottom:28px;display:grid;position:relative;box-shadow:0 6px 20px #0ea5e94d}.activate-hero h1{margin-bottom:14px;font-size:26px;font-weight:700;line-height:1.3;position:relative}.activate-hero p{opacity:.85;margin-bottom:24px;font-size:14px;line-height:1.65;position:relative}.activate-hero .quote{border-left:3px solid var(--teal);opacity:.95;background:#ffffff14;border-radius:10px;margin-bottom:18px;padding:14px 16px;font-size:13px;line-height:1.6;position:relative}.activate-hero .feat{grid-template-columns:1fr 1fr;gap:12px;margin-top:auto;display:grid;position:relative}.activate-hero .feat .f{opacity:.85;gap:8px;font-size:12.5px;display:flex}.activate-hero .feat .f svg{color:var(--teal);flex-shrink:0;margin-top:2px}.activate-form{flex-direction:column;padding:48px 44px;display:flex}.activate-form h2{color:var(--ink);margin-bottom:8px;font-size:20px;font-weight:700}.activate-form .sub{color:var(--ink-4);margin-bottom:28px;font-size:13px}.fld{margin-bottom:14px}.fld label{color:var(--ink-2);margin-bottom:5px;font-size:12px;font-weight:600;display:block}.fld label .req{color:var(--rose);margin-left:2px}.fld input,.fld select{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;padding:10px 12px;font-size:13.5px;transition:all .12s}.fld input:focus,.fld select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-softer)}.fld-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.fld .err{color:var(--rose);margin-top:4px;font-size:11.5px}.activate-foot{text-align:center;color:var(--ink-5);margin-top:18px;font-size:12px}.activate-foot a{color:var(--primary-dark)}.workspace{background:var(--bg);grid-template-rows:52px 1fr;grid-template-columns:232px 1fr;height:100vh;display:grid}.workspace .topbar{border-bottom:1px solid var(--line);z-index:30;background:#fff;grid-column:1/-1;justify-content:space-between;align-items:center;padding:0 16px 0 0;display:flex;position:relative}.workspace .topbar-left{align-items:center;gap:0;height:100%;display:flex}.workspace .brand{border-right:1px solid var(--line);align-items:center;gap:10px;width:232px;height:100%;padding:0 18px;display:flex}.workspace .brand-logo{background:linear-gradient(135deg, var(--primary), var(--teal));color:#fff;border-radius:8px;place-items:center;width:28px;height:28px;display:grid;box-shadow:0 4px 10px #0ea5e940}.workspace .brand-text{line-height:1.1}.workspace .brand-text strong{color:var(--ink);font-size:13px;font-weight:700;display:block}.workspace .brand-text small{color:var(--ink-5);font-size:10.5px}.workspace .crumbs{color:var(--ink-4);align-items:center;gap:8px;padding:0 18px;font-size:12.5px;display:flex}.workspace .crumbs strong{color:var(--ink);font-weight:600}.workspace .topbar-right{align-items:center;gap:10px;display:flex;position:relative}.model-pick{background:var(--bg);border:1px solid var(--line);cursor:pointer;border-radius:22px;align-items:center;gap:8px;padding:5px 6px 5px 12px;transition:all .12s;display:flex;position:relative}.model-pick:hover{border-color:var(--ink-5)}.model-pick .ico{color:#fff;border-radius:50%;place-items:center;width:22px;height:22px;font-size:10px;font-weight:700;display:grid}.model-pick .meta{font-size:12px;line-height:1.2}.model-pick .meta strong{color:var(--ink);font-size:12.5px;font-weight:600;display:block}.model-pick .meta small{color:var(--ink-5);font-size:10.5px}.model-pick>svg{color:var(--ink-5)}.ico.deepseek,.ico.deep{background:linear-gradient(135deg,#0ea5e9,#0369a1)}.ico.qwen{background:linear-gradient(135deg,#7c3aed,#5b21b6)}.ico.claude{background:linear-gradient(135deg,#f97316,#c2410c)}.ico.doubao{background:linear-gradient(135deg,#ef4444,#b91c1c)}.ico.glm{background:linear-gradient(135deg,#10b981,#047857)}.ico.kimi{background:linear-gradient(135deg,#06b6d4,#0e7490)}.ico.gemini{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}.ico.opus{background:linear-gradient(135deg,#c2410c,#7c2d12)}.ico.router{background:linear-gradient(135deg,#0ea5e9,#14b8a6)}.dropdown{border:1px solid var(--line);z-index:50;background:#fff;border-radius:10px;width:360px;padding:8px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 36px #0f172a1f}.dd-section{padding:6px 8px}.dd-label{color:var(--ink-5);text-transform:uppercase;letter-spacing:.5px;padding:0 6px 6px;font-size:10.5px;font-weight:600}.dd-item{cursor:pointer;border-radius:6px;align-items:center;gap:10px;padding:7px 8px;display:flex}.dd-item:hover{background:var(--line-3)}.dd-item.current{background:var(--primary-softer)}.dd-item .ico{color:#fff;border-radius:8px;flex-shrink:0;place-items:center;width:28px;height:28px;font-size:11px;font-weight:700;display:grid}.dd-item .nm{flex:1;line-height:1.2}.dd-item .nm strong{color:var(--ink);font-size:12.5px;font-weight:600;display:block}.dd-item .nm small{color:var(--ink-5);font-size:10.5px}.dd-item .tag-mini{background:var(--line-2);color:var(--ink-4);border-radius:9px;padding:1px 6px;font-size:10px}.dd-item .tag-mini.rec{background:var(--green-soft);color:#047857}.dd-divider{background:var(--line-2);height:1px;margin:6px 0}.dd-foot{color:var(--ink-4);background:var(--bg-soft);border-radius:6px;align-items:center;gap:6px;margin:4px 4px 0;padding:8px 10px;font-size:11.5px;display:flex}.tb-icon-btn{width:32px;height:32px;color:var(--ink-4);border-radius:6px;place-items:center;display:grid;position:relative}.tb-icon-btn:hover{background:var(--line-3);color:var(--ink)}.tb-icon-btn .badge{background:var(--rose);border-radius:50%;width:6px;height:6px;position:absolute;top:6px;right:6px}.user-chip{cursor:pointer;border-radius:22px;align-items:center;gap:8px;padding:4px 12px 4px 4px;display:flex}.user-chip:hover{background:var(--line-3)}.avatar{background:linear-gradient(135deg, var(--primary), var(--teal));color:#fff;border-radius:50%;place-items:center;width:28px;height:28px;font-size:12px;font-weight:600;display:grid}.user-chip .meta{line-height:1.15}.user-chip .meta strong{color:var(--ink);font-size:12px;font-weight:600;display:block}.user-chip .meta small{color:var(--ink-5);font-size:10.5px}.workspace .sidebar{border-right:1px solid var(--line);background:#fff;flex-direction:column;padding:12px 10px;display:flex;overflow-y:auto}.workspace .sidebar::-webkit-scrollbar{width:4px}.workspace .sidebar::-webkit-scrollbar-thumb{background:var(--ink-6);border-radius:2px}.sb-section{margin-bottom:14px}.sb-label{color:var(--ink-5);text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px;padding:6px 10px;font-size:10.5px;font-weight:600}.sb-item{cursor:pointer;color:var(--ink-2);border-radius:9999px;align-items:center;gap:11px;margin-bottom:2px;padding:9px 14px;font-size:13px;transition:background .12s;display:flex;position:relative}.sb-item:hover{background:var(--line-3);color:var(--ink)}.sb-item.active{background:var(--primary-soft);color:var(--primary-dark);font-weight:600}.sb-item.active:before{display:none}.sb-item.dim{color:var(--ink-5)}.sb-item.dim:hover{color:var(--ink-4)}.sb-item .num{color:var(--ink-4);background:var(--line-2);border-radius:9px;margin-left:auto;padding:1px 7px;font-size:10.5px}.sb-item.active .num{background:var(--primary-soft);color:var(--primary-dark)}.sb-item .p-tag{background:var(--line-3);color:var(--ink-5);border-radius:3px;margin-left:auto;padding:1px 5px;font-size:9.5px;font-weight:500}.sb-item.dim .p-tag{background:var(--line-2)}.sb-bottom{border-top:1px solid var(--line-2);margin-top:auto;padding-top:12px}.sb-account{background:linear-gradient(135deg, var(--primary-softer), var(--teal-soft));border-radius:10px;align-items:center;gap:10px;margin:0 4px;padding:10px;display:flex}.sb-account .avatar{width:32px;height:32px;font-size:13px}.sb-account .info{flex:1;line-height:1.2}.sb-account .info strong{color:var(--ink);font-size:12.5px;font-weight:600;display:block}.sb-account .info small{color:var(--ink-3);font-size:10.5px}.sb-account .gear{width:26px;height:26px;color:var(--ink-4);cursor:pointer;border-radius:6px;place-items:center;display:grid}.sb-account .gear:hover{color:var(--ink);background:#fff9}.workspace .main{height:100%;padding:0;overflow-y:auto}.workspace .main::-webkit-scrollbar{width:6px}.workspace .main::-webkit-scrollbar-thumb{background:var(--ink-6);border-radius:3px}.workspace .page{max-width:1280px;padding:24px 28px 60px}.compliance{background:var(--primary-softer);border:1px solid var(--primary-soft);color:var(--primary-dark);border-radius:10px;align-items:flex-start;gap:10px;margin-bottom:14px;padding:11px 14px;font-size:12.5px;line-height:1.55;display:flex}.compliance svg{color:var(--primary);flex-shrink:0;margin-top:1px}.helper-strip{background:linear-gradient(135deg, var(--warm-softer), #fff);border:1px solid var(--warm-soft);border-radius:10px;align-items:center;gap:12px;margin-bottom:14px;padding:12px 16px;display:flex}.helper-strip .icn-circle{background:var(--warm-soft);color:#b45309;border-radius:8px;flex-shrink:0;place-items:center;width:32px;height:32px;display:grid}.helper-strip .info{flex:1;line-height:1.4}.helper-strip .info strong{color:#92400e;font-size:13px;font-weight:700;display:block}.helper-strip .info small{color:#b45309;font-size:11.5px}.helper-strip .btn{padding:5px 12px;font-size:12px}.chat-layout{grid-template-columns:264px 1fr;height:100%;min-height:0;display:grid;overflow:hidden}.conv-panel{border-right:1px solid var(--line);background:var(--bg-soft);flex-direction:column;min-height:0;padding:12px 10px;display:flex;overflow:hidden}.conv-new{background:var(--ink);color:#fff;border-radius:20px;justify-content:center;align-items:center;gap:6px;margin-bottom:10px;padding:9px;font-size:13px;font-weight:600;display:flex}.conv-new:hover{background:var(--ink-2)}.conv-search{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;gap:6px;margin-bottom:10px;padding:6px 10px;display:flex}.conv-search svg{color:var(--ink-5)}.conv-search input{border:none;flex:1;font-size:12.5px}.conv-list{flex:1;min-height:0;overflow-y:auto}.conv-list::-webkit-scrollbar{width:4px}.conv-list::-webkit-scrollbar-thumb{background:var(--ink-6);border-radius:2px}.conv-item{cursor:pointer;color:var(--ink-2);border-radius:10px;align-items:center;gap:8px;margin-bottom:1px;padding:8px 10px;font-size:13px;display:flex}.conv-item:hover{background:var(--line-3)}.conv-item.active{background:var(--primary-soft);color:var(--primary-dark);font-weight:600}.conv-item>svg{color:var(--ink-5);flex-shrink:0}.conv-item.active>svg{color:var(--primary-dark)}.conv-title{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.conv-rename{border:1px solid var(--primary);border-radius:6px;flex:1;min-width:0;padding:2px 6px;font-size:13px}.conv-acts{gap:2px;display:none}.conv-item:hover .conv-acts{display:flex}.conv-acts button{width:24px;height:24px;color:var(--ink-4);border-radius:6px;place-items:center;display:grid}.conv-acts button:hover{color:var(--ink);background:#0000000f}.chat-wrap{flex-direction:column;width:100%;max-width:880px;height:100%;min-height:0;margin:0 auto;display:flex}.msg-acts{align-items:center;gap:8px;margin-top:5px;display:flex}.msg-acts button{width:26px;height:26px;color:var(--ink-5);border-radius:6px;place-items:center;display:grid}.msg-acts button:hover{background:var(--line-3);color:var(--ink)}.msg-acts .meta{color:var(--ink-5);font-size:10.5px}.caret{background:var(--primary);vertical-align:text-bottom;width:7px;height:14px;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.chat-input-foot .send.stop{color:var(--ink-2);border:1px solid var(--line);background:#fff}.chat-input-foot .send.stop:hover{border-color:var(--rose);color:var(--rose)}@media (width<=900px){.chat-layout{grid-template-columns:1fr}.conv-panel{display:none}}.chat-welcome{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:0;padding:24px;display:flex;overflow-y:auto}.chat-welcome .cw-logo{background:linear-gradient(135deg, var(--primary), var(--teal));color:#fff;border-radius:16px;place-items:center;width:56px;height:56px;margin-bottom:18px;display:grid;box-shadow:0 10px 30px #0ea5e94d}.chat-welcome h2{color:var(--ink);margin-bottom:8px;font-size:22px;font-weight:700}.chat-welcome p{color:var(--ink-4);max-width:520px;margin-bottom:24px;font-size:13px;line-height:1.6}.cw-grid{grid-template-columns:1fr 1fr;gap:12px;width:100%;max-width:600px;display:grid}.cw-card{text-align:left;border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;align-items:center;gap:12px;padding:14px 16px;transition:all .12s;display:flex}.cw-card:hover{border-color:var(--primary);transform:translateY(-1px);box-shadow:0 4px 14px #0ea5e91a}.cw-card .cw-ic{background:var(--primary-soft);width:34px;height:34px;color:var(--primary-dark);border-radius:9px;flex-shrink:0;place-items:center;display:grid}.cw-card strong{color:var(--ink);font-size:13.5px;font-weight:600;display:block}.cw-card small{color:var(--ink-5);font-size:11.5px}.turn{gap:12px;max-width:820px;margin-bottom:24px;margin-left:auto;margin-right:auto;display:flex}.turn.user{justify-content:flex-end}.turn-avatar{color:#fff;border-radius:8px;flex-shrink:0;place-items:center;width:30px;height:30px;display:grid}.turn-avatar.ai{background:linear-gradient(135deg, var(--primary), var(--teal))}.turn-body{flex:1;min-width:0}.turn-body.user{flex:0 auto;max-width:80%}.turn-role{color:var(--ink-5);margin-bottom:4px;font-size:11.5px;font-weight:600}.user-bubble{background:var(--primary);color:#fff;white-space:pre-wrap;border-radius:14px 14px 4px;padding:10px 14px;font-size:14px;line-height:1.6}.turn-acts{opacity:0;align-items:center;gap:4px;margin-top:8px;transition:opacity .12s;display:flex}.turn:hover .turn-acts{opacity:1}.turn-acts button{width:28px;height:28px;color:var(--ink-5);border-radius:7px;place-items:center;display:grid}.turn-acts button:hover{background:var(--line-3);color:var(--ink)}.turn-acts .turn-meta{color:var(--ink-5);margin-left:4px;font-size:10.5px}.thinking{gap:5px;padding:6px 0;display:flex}.thinking span{background:var(--ink-5);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite bounce}.thinking span:nth-child(2){animation-delay:.2s}.thinking span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-5px)}}.composer{flex-shrink:0;width:100%;max-width:820px;margin:0 auto;padding:8px 24px 16px}.composer-box{border:1px solid var(--line);background:#fff;border-radius:16px;padding:12px 14px;transition:border-color .12s,box-shadow .12s;box-shadow:0 4px 24px #0f172a0d}.composer-box:focus-within{border-color:var(--primary);box-shadow:0 4px 24px #0ea5e91f}.composer-box textarea{resize:none;border:none;outline:none;width:100%;min-height:24px;max-height:200px;font-family:inherit;font-size:14px;line-height:1.6}.composer-foot{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.composer-tools{align-items:center;gap:8px;display:flex}.ctool{width:30px;height:30px;color:var(--ink-4);border-radius:8px;place-items:center;display:grid}.ctool:hover{background:var(--line-3);color:var(--ink)}.composer-model{color:var(--ink-5);background:var(--bg);border:1px solid var(--line);border-radius:20px;align-items:center;gap:5px;padding:3px 10px;font-size:11.5px;display:flex}.composer-send{background:var(--ink);color:#fff;border-radius:10px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;display:flex}.composer-send:hover:not(:disabled){background:var(--ink-2)}.composer-send:disabled{opacity:.4;cursor:not-allowed}.composer-send.stop{color:var(--ink-2);border:1px solid var(--line);background:#fff}.composer-send.stop:hover{border-color:var(--rose);color:var(--rose)}.composer-hint{text-align:center;color:var(--ink-5);margin-top:8px;font-size:11px}@media (width<=900px){.cw-grid{grid-template-columns:1fr}}.chat-history{flex:1;min-height:0;padding:24px 24px 8px;overflow-y:auto}.chat-history::-webkit-scrollbar{width:6px}.chat-history::-webkit-scrollbar-thumb{background:var(--ink-6)}.msg{margin-bottom:22px}.msg.user{text-align:right}.msg .role{color:var(--ink-5);margin-bottom:4px;font-size:11px}.msg .bubble{text-align:left;white-space:pre-wrap;border-radius:14px;max-width:80%;padding:12px 16px;font-size:13.5px;line-height:1.65;display:inline-block}.msg.user .bubble{background:var(--primary);color:#fff;border-bottom-right-radius:4px}.msg.ai .bubble{border:1px solid var(--line);color:var(--ink);background:#fff;border-bottom-left-radius:4px}.msg .meta{color:var(--ink-5);margin-top:4px;font-size:10.5px}.chat-input-box{border:1px solid var(--line);background:#fff;border-radius:14px;margin:0 24px 16px;padding:12px 14px;box-shadow:0 4px 20px #0f172a0a}.chat-input-box textarea{resize:none;border:none;outline:none;width:100%;min-height:42px;max-height:200px;padding:0;font-size:13.5px}.chat-input-foot{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.chat-input-foot .l{gap:6px;display:flex}.chat-input-foot .icn-btn{width:30px;height:30px;color:var(--ink-4);cursor:pointer;border-radius:6px;place-items:center;display:grid}.chat-input-foot .icn-btn:hover{background:var(--line-3);color:var(--ink)}.chat-input-foot .send{background:var(--ink);color:#fff;border-radius:8px;align-items:center;gap:5px;padding:7px 14px;font-size:13px;font-weight:600;display:flex}.chat-input-foot .send:hover{background:var(--ink-2)}.quick-actions{flex-wrap:wrap;gap:8px;padding:14px 24px 0;display:flex}.quick-act{border:1px solid var(--line);color:var(--ink-3);cursor:pointer;background:#fff;border-radius:16px;align-items:center;gap:5px;padding:7px 14px;font-size:12.5px;display:flex}.quick-act:hover{border-color:var(--primary);color:var(--primary-dark);background:var(--primary-softer)}.quick-act svg{color:var(--primary)}.split2{grid-template-columns:400px 1fr;align-items:start;gap:14px;margin-top:4px;display:grid}.outline-prev{color:var(--ink-2);font-size:13px;line-height:1.7}.outline-prev h3{color:var(--ink);margin:12px 0 6px;font-size:14px;font-weight:700}.outline-prev h4{color:var(--ink-2);margin:10px 0 4px;font-size:13px;font-weight:600}.outline-prev ul{margin-bottom:8px;padding-left:20px;list-style:outside}.outline-prev ol{margin-bottom:8px;padding-left:22px;list-style:decimal}.outline-prev li{margin-bottom:3px}.outline-prev p{margin-bottom:6px}.outline-prev .lesson{background:var(--bg-soft);border-left:3px solid var(--primary);border-radius:0 8px 8px 0;margin-bottom:10px;padding:10px 14px}.outline-prev .lesson .ln{color:var(--primary-dark);font-size:11px;font-weight:600}.outline-prev .lesson .ln-t{color:var(--ink);margin-bottom:2px;font-size:13.5px;font-weight:600}.outline-prev .badge{background:var(--primary-soft);color:var(--primary-dark);border-radius:9px;margin-left:4px;padding:1px 7px;font-size:10.5px;font-weight:500}.qcard{border:1px solid var(--line);background:#fff;border-radius:10px;margin-bottom:12px;padding:16px 18px}.qcard .qhd{align-items:center;gap:8px;margin-bottom:8px;display:flex}.qcard .qhd .qn{background:var(--ink);color:#fff;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.qcard .qbody .stem{color:var(--ink);white-space:pre-wrap;margin-bottom:10px;font-size:13.5px;font-weight:500;line-height:1.7}.qcard .opts{flex-direction:column;gap:5px;display:flex}.qcard .opt{border:1px solid #0000;border-radius:6px;align-items:flex-start;gap:8px;padding:6px 11px;font-size:13px;display:flex}.qcard .opt.right{background:var(--green-soft);color:#065f46;border-color:#86efac}.qcard .opt .letter{color:var(--ink-4);flex-shrink:0;width:16px;font-weight:700}.qcard .opt.right .letter{color:#047857}.qcard .expl{background:var(--bg-soft);border-left:3px solid var(--primary);color:var(--ink-3);border-radius:7px;margin-top:10px;padding:10px 12px;font-size:12.5px;line-height:1.65}.qcard .expl strong{color:var(--ink)}.qcard .qfoot{border-top:1px dashed var(--line-2);color:var(--ink-5);justify-content:space-between;align-items:center;margin-top:10px;padding-top:10px;font-size:11.5px;display:flex}.qcard .qfoot .info{flex-wrap:wrap;gap:10px;display:flex}.qcard .qfoot .actions{gap:4px;display:flex}.qcard .qfoot .actions button{padding:3px 9px;font-size:11.5px}.blueprint{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.blueprint .b{background:var(--bg-soft);border:1px solid var(--line-2);border-radius:8px;padding:10px 12px}.blueprint .b .k{color:var(--ink-5);margin-bottom:4px;font-size:11px}.blueprint .b .v{color:var(--ink);font-size:13px;font-weight:600}.ppt-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.ppt-page{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;padding:14px 16px;transition:all .12s}.ppt-page:hover{border-color:var(--primary);box-shadow:0 4px 12px #0ea5e91a}.ppt-page .pn{color:var(--ink-5);margin-bottom:4px;font-size:10.5px}.ppt-page .pt{color:var(--ink);margin-bottom:8px;font-size:13px;font-weight:700}.ppt-page ul{color:var(--ink-3);padding-left:14px;font-size:11.5px;line-height:1.6;list-style:outside}.ppt-page .img-hint{background:var(--warm-softer);color:#b45309;border-radius:5px;align-items:center;gap:5px;margin-top:8px;padding:6px 9px;font-size:10.5px;display:flex}.ppt-page .img-hint svg{color:var(--warm)}.slide-note{color:var(--ink-3);border-top:1px dashed var(--line-2);margin-top:6px;padding-top:6px;font-size:12px;line-height:1.6}.lit-tabs{border-bottom:1px solid var(--line);gap:0;margin-bottom:14px;display:flex}.lit-tab{color:var(--ink-4);cursor:pointer;border-bottom:2px solid #0000;padding:9px 16px;font-size:13px}.lit-tab.on{color:var(--ink);border-bottom-color:var(--primary);font-weight:600}.lit-item{border:1px solid var(--line);background:#fff;border-radius:8px;margin-bottom:8px;padding:12px 16px}.lit-item .lt{color:var(--ink);margin-bottom:4px;font-size:13px;font-weight:600;line-height:1.5}.lit-item .la{color:var(--ink-4);margin-bottom:6px;font-size:11.5px}.lit-item .la em{color:var(--primary-dark);font-style:normal}.lit-item .lc{color:var(--ink-3);font-size:12px;line-height:1.6}.lit-item .lf{color:var(--ink-5);flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;font-size:11px;display:flex}.lit-item .lf .badge{background:var(--line-2);color:var(--ink-4);border-radius:9px;padding:1px 7px;font-size:10.5px}.codeblock{color:#7dd3fc;white-space:pre-wrap;word-break:break-all;background:#0f172a;border-radius:8px;padding:12px 14px;font-family:ui-monospace,SF Mono,monospace;font-size:12px;line-height:1.6}.task-row{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:14px;margin-bottom:8px;padding:14px 16px;transition:all .12s;display:flex}.task-row:hover{border-color:var(--primary)}.task-row .ico{background:var(--primary-soft);width:36px;height:36px;color:var(--primary-dark);border-radius:8px;flex-shrink:0;place-items:center;display:grid}.task-row .ico.green{background:var(--green-soft);color:#047857}.task-row .ico.warm{background:var(--warm-soft);color:#b45309}.task-row .ico.purple{background:var(--purple-soft);color:#6d28d9}.task-row .ico.teal{background:var(--teal-soft);color:#0f766e}.task-row .info{flex:1;min-width:0;line-height:1.3}.task-row .info strong{color:var(--ink);margin-bottom:2px;font-size:13.5px;font-weight:600;display:block}.task-row .info small{color:var(--ink-5);font-size:11.5px}.task-row .actions{flex-shrink:0;gap:4px;display:flex}.task-row .actions button{padding:4px 10px;font-size:11.5px}.upload-zone{border:2px dashed var(--line);text-align:center;color:var(--ink-4);cursor:pointer;background:var(--bg-soft);border-radius:12px;padding:36px 20px;transition:all .12s}.upload-zone:hover{border-color:var(--primary);background:var(--primary-softer)}.upload-zone .ico{background:var(--primary-soft);width:48px;height:48px;color:var(--primary-dark);border-radius:12px;place-items:center;margin:0 auto 12px;display:grid}.file-row{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;gap:12px;margin-bottom:8px;padding:12px 14px;display:flex}.file-row .ico{background:var(--line-2);width:34px;height:34px;color:var(--ink-3);border-radius:8px;place-items:center;display:grid}.file-row .info{flex:1;line-height:1.3}.file-row .info strong{color:var(--ink);font-size:13px;display:block}.file-row .info small{color:var(--ink-5);font-size:11px}.mask{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a73;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;flex-direction:column;width:600px;max-height:86vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #0f172a40}.modal.wide{width:880px}.modal.xwide{width:1080px}.modal-hd{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-hd h2{color:var(--ink);font-size:15px;font-weight:700}.modal-hd .x{width:28px;height:28px;color:var(--ink-4);cursor:pointer;border-radius:6px;place-items:center;display:grid}.modal-hd .x:hover{background:var(--line-3);color:var(--ink)}.modal-bd{padding:20px;overflow-y:auto}.modal-ft{border-top:1px solid var(--line-2);justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}.slides-frame{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;height:70vh}.gen-error{text-align:center;padding:40px 20px}.gen-error .ic{background:var(--rose-soft);width:56px;height:56px;color:var(--rose);border-radius:14px;place-items:center;margin:0 auto 12px;display:grid}.gen-error strong{color:var(--ink);margin-bottom:4px;font-size:15px;display:block}.gen-error p{color:var(--ink-4);margin-bottom:14px;font-size:12.5px}.gen-error .acts{justify-content:center;gap:8px;margin-bottom:8px;display:flex}.demo-fail{color:var(--ink-5);cursor:pointer;align-items:center;gap:6px;margin-top:8px;font-size:11.5px;display:flex}.admin{background:var(--bg);grid-template-rows:52px 1fr;grid-template-columns:232px 1fr;height:100vh;display:grid}.admin .topbar{background:var(--admin-bg);color:#e2e8f0;z-index:30;border-bottom:1px solid #0b1224;grid-column:1/-1;justify-content:space-between;align-items:center;padding:0 16px 0 0;display:flex;position:relative}.admin .topbar-left{align-items:center;gap:0;height:100%;display:flex}.admin .brand{border-right:1px solid #0b1224;align-items:center;gap:10px;width:232px;height:100%;padding:0 18px;display:flex}.admin .brand-logo{background:linear-gradient(135deg, var(--primary), var(--teal));color:#fff;border-radius:8px;place-items:center;width:28px;height:28px;display:grid;box-shadow:0 4px 10px #0ea5e940}.admin .brand-text{line-height:1.1}.admin .brand-text strong{color:#fff;font-size:13px;font-weight:700;display:block}.admin .brand-text small{color:#94a3b8;font-size:10.5px}.admin .env-tag{color:#fda4af;background:#f43f5e26;border:1px solid #f43f5e4d;border-radius:4px;margin-left:10px;padding:3px 7px;font-size:10.5px}.admin .crumbs{color:#94a3b8;align-items:center;gap:8px;padding:0 18px;font-size:12.5px;display:flex}.admin .crumbs strong{color:#fff;font-weight:600}.admin .crumbs svg{color:#475569;width:12px;height:12px}.admin .topbar-right{align-items:center;gap:10px;display:flex}.admin .tb-link{color:#cbd5e1;cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:flex}.admin .tb-link:hover{color:#fff;background:#1e293b}.admin .tb-icon-btn{color:#cbd5e1;border-radius:6px;place-items:center;width:32px;height:32px;display:grid;position:relative}.admin .tb-icon-btn:hover{color:#fff;background:#1e293b}.admin .tb-icon-btn .badge{background:var(--rose);border-radius:50%;width:6px;height:6px;position:absolute;top:6px;right:6px}.admin .user-chip{cursor:pointer;background:#ffffff0f;border-radius:22px;align-items:center;gap:8px;padding:4px 10px 4px 4px;display:flex}.admin .user-chip:hover{background:#ffffff1a}.admin .user-chip .avatar{background:linear-gradient(135deg, var(--purple), var(--indigo))}.admin .user-chip .meta{line-height:1.15}.admin .user-chip .meta strong{color:#fff;font-size:11.5px;font-weight:600;display:block}.admin .user-chip .meta small{color:#94a3b8;font-size:10.5px}.admin .sidebar{background:var(--admin-sb);color:#cbd5e1;border-right:1px solid #0b1224;flex-direction:column;padding:12px 10px;display:flex;overflow-y:auto}.admin .sidebar::-webkit-scrollbar{width:4px}.admin .sidebar::-webkit-scrollbar-thumb{background:#475569;border-radius:2px}.admin .sb-section{margin-bottom:14px}.admin .sb-label{color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px;padding:6px 10px;font-size:10.5px;font-weight:600}.admin .sb-item{cursor:pointer;color:#cbd5e1;border-radius:9999px;align-items:center;gap:11px;margin-bottom:2px;padding:9px 14px;font-size:13px;transition:background .12s;display:flex;position:relative}.admin .sb-item:hover{background:var(--admin-sb-hover);color:#fff}.admin .sb-item.active{color:#fff;background:#0ea5e938}.admin .sb-item.active:before{display:none}.admin .sb-item .num{color:#94a3b8;background:#ffffff0d;border-radius:9px;margin-left:auto;padding:1px 7px;font-size:10.5px}.admin .sb-item.active .num{color:#7dd3fc;background:#0ea5e933}.admin .sb-item .star{color:var(--warm);margin-left:4px;font-size:11px}.admin .sb-item .icn{color:inherit}.admin .sb-bottom{border-top:1px solid #0b1224;margin-top:auto;padding-top:12px}.admin .sb-bottom .helper{color:#64748b;padding:6px 10px;font-size:11px;line-height:1.5}.admin .sb-collapse{color:#94a3b8}.admin .sb-collapse:hover{background:var(--admin-sb-hover);color:#fff}.admin .sb-ver{color:#64748b}.admin .main{height:100%;padding:0;overflow-y:auto}.admin .main::-webkit-scrollbar{width:6px}.admin .main::-webkit-scrollbar-thumb{background:var(--ink-6);border-radius:3px}.admin .page{padding:20px 24px 60px}.admin .page-hd{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.admin .page-hd .ti h1{color:var(--ink);margin-bottom:4px;font-size:18px;font-weight:700}.admin .page-hd .ti p{color:var(--ink-4);max-width:720px;font-size:12.5px;line-height:1.6}.admin .page-hd .ti .pill{background:var(--primary-soft);color:var(--primary-dark);vertical-align:middle;border-radius:4px;margin-left:8px;padding:2px 7px;font-size:10.5px;font-weight:600;display:inline-block}.admin .page-hd .actions{flex-shrink:0;gap:8px;display:flex}.kpi-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px;display:grid}.kpi{border:1px solid var(--line);background:#fff;border-radius:10px;padding:14px 16px}.kpi .lbl{color:var(--ink-4);align-items:center;gap:6px;margin-bottom:6px;font-size:11.5px;display:flex}.kpi .lbl .icn{color:var(--ink-5)}.kpi .val{color:var(--ink);margin-bottom:6px;font-size:22px;font-weight:700;line-height:1.1}.kpi .delta{color:var(--ink-4);font-size:11px}.kpi .delta.up{color:var(--green)}.kpi .delta.down{color:var(--rose)}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.toolbar .filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.search-box{border:1px solid var(--line);background:#fff;border-radius:6px;align-items:center;gap:6px;width:240px;padding:6px 10px;font-size:12.5px;display:flex}.search-box svg{color:var(--ink-5)}.search-box input{border:none;flex:1;font-size:12.5px}.select{border:1px solid var(--line);color:var(--ink-2);appearance:none;cursor:pointer;background:#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") right 8px center no-repeat;border-radius:6px;padding:6px 26px 6px 10px;font-size:12.5px}.table{border-collapse:collapse;border:1px solid var(--line);background:#fff;border-radius:10px;width:100%;overflow:hidden}.table thead{background:var(--bg-soft)}.table th{color:var(--ink-4);text-align:left;border-bottom:1px solid var(--line-2);white-space:nowrap;padding:10px 14px;font-size:11.5px;font-weight:600}.table td{color:var(--ink-2);border-bottom:1px solid var(--line-2);vertical-align:middle;padding:12px 14px;font-size:12.5px}.table tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--primary-softer)}.tlink{color:var(--primary-dark);cursor:pointer}.tlink:hover{text-decoration:underline}.row-actions{gap:2px;display:flex}.row-actions .btn{border-color:#0000;padding:4px 8px;font-size:11.5px}.row-actions .btn:hover{background:var(--line-3);border-color:#0000}.chart-box{width:100%;height:280px}.two-col{grid-template-columns:1.4fr 1fr;align-items:start;gap:14px;display:grid}.metric-list{flex-direction:column;gap:10px;display:flex}.metric-row{justify-content:space-between;align-items:center;font-size:12.5px;display:flex}.metric-row .bar{background:var(--line-2);border-radius:3px;flex:1;height:6px;margin:0 12px;overflow:hidden}.metric-row .bar>i{background:var(--primary);border-radius:3px;height:100%;display:block}.md{color:var(--ink-2);word-break:break-word;font-size:14px;line-height:1.7}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md h1,.md h2,.md h3,.md h4{color:var(--ink);margin:18px 0 8px;font-weight:700;line-height:1.35}.md h1{font-size:20px}.md h2{font-size:17px}.md h3{font-size:15px}.md h4{font-size:14px}.md p{margin:8px 0}.md ul,.md ol{margin:8px 0;padding-left:22px}.md ul{list-style:outside}.md ol{list-style:decimal}.md li,.md li>ul,.md li>ol{margin:4px 0}.md strong{color:var(--ink);font-weight:700}.md em{font-style:italic}.md a{color:var(--primary-dark);border-bottom:1px solid var(--primary-soft);text-decoration:none}.md a:hover{border-bottom-color:var(--primary)}.md blockquote{border-left:3px solid var(--primary);background:var(--bg-soft);color:var(--ink-3);border-radius:0 8px 8px 0;margin:10px 0;padding:8px 14px}.md blockquote p{margin:4px 0}.md code{background:var(--line-2);color:#be123c;border-radius:4px;padding:1px 5px;font-family:ui-monospace,SF Mono,monospace;font-size:.88em}.md pre{background:#0f172a;border-radius:10px;margin:10px 0;padding:14px 16px;overflow-x:auto}.md pre code{color:#e2e8f0;background:0 0;padding:0;font-size:12.5px;line-height:1.6}.md .codeblock{border:1px solid #1e293b;border-radius:10px;margin:10px 0;overflow:hidden}.md .codeblock .cb-bar{background:#0b1222;border-bottom:1px solid #1e293b;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px 6px 12px;display:flex}.md .codeblock .cb-lang{letter-spacing:.04em;text-transform:uppercase;color:#94a3b8;font-family:ui-monospace,SF Mono,monospace;font-size:11px}.md .codeblock .cb-acts{align-items:center;gap:6px;display:flex}.md .codeblock .cb-btn{color:#cbd5e1;cursor:pointer;background:#1e293b;border:1px solid #334155;border-radius:6px;padding:4px 9px;font-size:11.5px;line-height:1;transition:background .15s,color .15s,border-color .15s}.md .codeblock .cb-btn:hover{color:#fff;background:#334155;border-color:#475569}.md .codeblock[data-html="1"] .cb-acts .cb-btn[data-act=preview]{color:#7dd3fc;border-color:#0ea5e9}.md .codeblock[data-html="1"] .cb-acts .cb-btn[data-act=preview]:hover{color:#fff;background:#0ea5e9}.md .codeblock .cb-pre{border-radius:0;margin:0}.md .codeblock .cb-preview{background:#fff}.md .codeblock .cb-preview .cb-frame{background:#fff;border:0;width:100%;height:380px;display:block}.md table{border-collapse:collapse;width:100%;margin:12px 0;font-size:13px;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--line);text-align:left;padding:7px 11px}.md thead th{background:var(--bg-soft);color:var(--ink);font-weight:600}.md tbody tr:nth-child(2n){background:var(--bg-soft)}.md hr{border:none;border-top:1px solid var(--line-2);margin:16px 0}.md img{border-radius:8px;max-width:100%}.md sup{vertical-align:super;color:var(--primary-dark);padding:0 1px;font-size:.72em;font-weight:600;line-height:0}.ev-block{border-top:1px dashed var(--line);margin-top:18px;padding-top:14px}.ev-hd{align-items:baseline;gap:10px;margin-bottom:10px;display:flex}.ev-hd-t{color:var(--ink);font-size:15px;font-weight:700}.ev-hd-n{color:var(--ink-3);font-size:12px}.ev-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ev-card{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:flex-start;gap:11px;padding:11px 13px;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.ev-card:hover{border-color:var(--primary-soft);background:var(--bg-soft);box-shadow:0 2px 10px #0f172a0d}.ev-num{background:var(--primary-soft);width:22px;height:22px;color:var(--primary-dark);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;font-size:12px;font-weight:700;display:flex}.ev-main{flex:1;min-width:0}.ev-title{color:var(--ink);border:none;font-size:13.5px;font-weight:600;line-height:1.5;text-decoration:none;display:block}a.ev-title:hover{color:var(--primary-dark);text-decoration:underline}.ev-meta{color:var(--ink-3);word-break:break-word;margin-top:3px;font-size:12px;line-height:1.5}.ev-badge{white-space:nowrap;border:1px solid #0000;border-radius:999px;flex-shrink:0;margin-top:1px;padding:2px 8px;font-size:11px;font-weight:600}.ev-badge.tone-green{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.ev-badge.tone-teal{color:#0e7490;background:#ecfeff;border-color:#a5f3fc}.ev-badge.tone-purple{color:#6d28d9;background:#f5f3ff;border-color:#ddd6fe}.ev-badge.tone-amber{color:#b45309;background:#fffbeb;border-color:#fde68a}.ev-badge.tone-gray{background:var(--bg-soft);color:var(--ink-3);border-color:var(--line)}
