/* LobeHub Lite Admin v4.4 — UI system aligned to LobeHub's current OSS design language */
:root{
  color-scheme:light;
  --sidebar:244px;
  --sidebar-collapsed:68px;
  --header-mobile:52px;
  --content-max:1280px;
  --content-wide:1680px;
  --font-sans:"Geist",-apple-system,BlinkMacSystemFont,"Segoe UI Variable Display","Segoe UI",Roboto,"Helvetica Neue",Arial,"HarmonyOS Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei UI","Microsoft YaHei","Source Han Sans SC","Noto Sans CJK SC",ui-sans-serif,system-ui,sans-serif;
  --font-mono:"Geist Mono",ui-monospace,"SFMono-Regular","SF Mono",Menlo,"Cascadia Code",Consolas,"Liberation Mono",monospace;
  --bg-layout:#f7f7f8;
  --bg-container:#ffffff;
  --bg-elevated:#ffffff;
  --bg-mask:rgba(0,0,0,.36);
  --fill:#f4f4f5;
  --fill-hover:#eeeeef;
  --fill-active:#e9e9eb;
  --fill-soft:#fafafa;
  --text:#1f1f1f;
  --text-secondary:#6f6f73;
  --text-tertiary:#9b9ba1;
  --text-quaternary:#b9b9be;
  --border:#e7e7e9;
  --border-strong:#d8d8dc;
  --primary:#1677ff;
  --primary-hover:#4096ff;
  --primary-soft:rgba(22,119,255,.09);
  --success:#16a34a;
  --success-soft:rgba(22,163,74,.1);
  --warning:#d97706;
  --warning-soft:rgba(217,119,6,.1);
  --danger:#dc2626;
  --danger-soft:rgba(220,38,38,.09);
  --purple:#7c3aed;
  --purple-soft:rgba(124,58,237,.09);
  --radius-sm:8px;
  --radius:12px;
  --radius-lg:16px;
  --shadow-pop:0 8px 28px rgba(0,0,0,.08);
  --focus:0 0 0 3px rgba(22,119,255,.14);
}
html[data-theme="dark"]{
  color-scheme:dark;
  --bg-layout:#0e0e0f;
  --bg-container:#141415;
  --bg-elevated:#1a1a1c;
  --bg-mask:rgba(0,0,0,.62);
  --fill:#1d1d1f;
  --fill-hover:#242426;
  --fill-active:#2b2b2e;
  --fill-soft:#171719;
  --text:#f2f2f3;
  --text-secondary:#a3a3a8;
  --text-tertiary:#7f7f85;
  --text-quaternary:#66666c;
  --border:#2a2a2d;
  --border-strong:#3b3b40;
  --primary:#3b82f6;
  --primary-hover:#60a5fa;
  --primary-soft:rgba(59,130,246,.13);
  --success:#22c55e;
  --success-soft:rgba(34,197,94,.12);
  --warning:#f59e0b;
  --warning-soft:rgba(245,158,11,.12);
  --danger:#f87171;
  --danger-soft:rgba(248,113,113,.12);
  --purple:#a78bfa;
  --purple-soft:rgba(167,139,250,.12);
  --shadow-pop:0 12px 36px rgba(0,0,0,.32);
  --focus:0 0 0 3px rgba(59,130,246,.18);
}
@media(prefers-color-scheme:dark){html:not([data-theme]){color-scheme:dark;--bg-layout:#0e0e0f;--bg-container:#141415;--bg-elevated:#1a1a1c;--bg-mask:rgba(0,0,0,.62);--fill:#1d1d1f;--fill-hover:#242426;--fill-active:#2b2b2e;--fill-soft:#171719;--text:#f2f2f3;--text-secondary:#a3a3a8;--text-tertiary:#7f7f85;--text-quaternary:#66666c;--border:#2a2a2d;--border-strong:#3b3b40;--primary:#3b82f6;--primary-hover:#60a5fa;--primary-soft:rgba(59,130,246,.13);--success:#22c55e;--success-soft:rgba(34,197,94,.12);--warning:#f59e0b;--warning-soft:rgba(245,158,11,.12);--danger:#f87171;--danger-soft:rgba(248,113,113,.12);--purple:#a78bfa;--purple-soft:rgba(167,139,250,.12);--shadow-pop:0 12px 36px rgba(0,0,0,.32)}}

*{box-sizing:border-box}
html{scroll-behavior:smooth;text-size-adjust:100%}
body{margin:0;min-height:100vh;background:var(--bg-container);color:var(--text);font-family:var(--font-sans);font-size:14px;line-height:1.5;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{font-weight:400}
svg{display:block}
b,strong{font-weight:500}
::selection{background:rgba(22,119,255,.2)}
:focus-visible{outline:none;box-shadow:var(--focus)}

/* Shell */
.app-shell{min-height:100vh;background:var(--bg-container)}
.sidebar{position:fixed;inset:0 auto 0 0;z-index:40;width:var(--sidebar);display:flex;flex-direction:column;padding:8px;background:var(--bg-layout);border-right:1px solid var(--border);transition:width .18s ease,transform .2s ease}
.sidebar-brand-row{height:52px;display:flex;align-items:center;gap:4px;padding:0 2px 6px}
.brand{min-width:0;flex:1;height:40px;display:flex;align-items:center;gap:10px;padding:0 8px;border-radius:10px}
.brand:hover{background:var(--fill-hover)}
.brand-mark{position:relative;flex:0 0 auto;width:28px;height:28px;border-radius:9px;background:var(--text);display:grid;place-items:center}
.brand-core{width:11px;height:11px;border:2px solid var(--bg-container);border-radius:50% 50% 50% 2px;transform:rotate(-35deg)}
.brand-copy{display:flex;align-items:baseline;gap:7px;min-width:0;white-space:nowrap}
.brand-copy b{font-size:15px;line-height:1;font-weight:600;letter-spacing:-.2px}
.brand-copy small{font-size:11px;line-height:1;color:var(--text-tertiary)}
.sidebar-collapse-btn{flex:0 0 auto}
.sidebar-collapse-btn svg{transition:transform .18s ease}
.sidebar-nav{min-height:0;flex:1;overflow:auto;padding:4px 0 12px;scrollbar-width:thin;scrollbar-color:transparent transparent}
.sidebar-nav:hover{scrollbar-color:var(--border-strong) transparent}
.nav-section{height:31px;display:flex;align-items:flex-end;padding:0 10px 6px;color:var(--text-tertiary);font-size:12px;line-height:1.2;font-weight:500;white-space:nowrap;overflow:hidden}
.nav-item{position:relative;display:flex;align-items:center;gap:8px;height:36px;padding:0 8px;margin:1px 0;border:0;border-radius:8px;background:transparent;color:var(--text-secondary);font-size:14px;line-height:20px;font-weight:400;cursor:pointer;user-select:none;transition:background .14s ease,color .14s ease}
.nav-item svg{flex:0 0 auto;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;color:var(--text-tertiary)}
.nav-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-item:hover{background:var(--fill-hover);color:var(--text)}
.nav-item:hover svg{color:var(--text-secondary)}
.nav-item.active{background:var(--fill-active);color:var(--text)}
.nav-item.active svg{color:var(--text)}
.nav-button{width:100%;text-align:left}
.side-bottom{display:grid;gap:2px;padding-top:8px;border-top:1px solid var(--border)}
.db-chip{height:32px;display:flex;align-items:center;gap:9px;padding:0 10px;color:var(--text-tertiary);font-size:12px;white-space:nowrap;overflow:hidden}
.db-chip i,.status-dot i{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 0 3px var(--success-soft)}
.icon-btn{width:32px;height:32px;display:inline-grid;place-items:center;padding:0;border:0;border-radius:8px;background:transparent;color:var(--text-secondary);cursor:pointer}
.icon-btn:hover{background:var(--fill-hover);color:var(--text)}
.icon-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

body.sidebar-collapsed{--sidebar:var(--sidebar-collapsed)}
body.sidebar-collapsed .brand-copy,body.sidebar-collapsed .nav-item span,body.sidebar-collapsed .nav-section span,body.sidebar-collapsed .db-chip span{display:none}
body.sidebar-collapsed .brand{justify-content:center;padding:0}
body.sidebar-collapsed .sidebar-brand-row{justify-content:center}
body.sidebar-collapsed .sidebar-collapse-btn{position:absolute;left:52px;top:13px;width:24px;height:24px;background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--shadow-pop)}
body.sidebar-collapsed .sidebar-collapse-btn svg{transform:rotate(180deg)}
body.sidebar-collapsed .nav-item{justify-content:center;padding:0}
body.sidebar-collapsed .nav-section{height:12px;margin-top:8px;padding:0;border-top:1px solid var(--border)}
body.sidebar-collapsed .db-chip{justify-content:center;padding:0}

.main{margin-left:var(--sidebar);min-height:100vh;background:var(--bg-container);transition:margin-left .18s ease}
.main-content{width:min(calc(100% - 48px),var(--content-max));margin:0 auto;padding:24px 0 96px}
.main.main-wide .main-content{width:min(calc(100% - 48px),var(--content-wide));max-width:none}
.mobile-head,.mobile-mask{display:none}
footer{margin-top:48px;padding-top:16px;border-top:1px solid var(--border);color:var(--text-tertiary);font-size:12px;line-height:1.5}

/* Page hierarchy */
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:0 0 24px}
.page-head>div:first-child{min-width:0}
.page-head h1{margin:0;font-size:20px;line-height:1.35;font-weight:500;letter-spacing:-.25px}
.page-head p{max-width:780px;margin:6px 0 0;color:var(--text-secondary);font-size:13px;line-height:1.55}
.eyebrow{display:none}
.head-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}
.status-dot{display:inline-flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:12px;white-space:nowrap}
.pill,.privacy-badge{display:inline-flex;align-items:center;min-height:26px;padding:3px 9px;border-radius:999px;border:1px solid var(--border);background:var(--fill-soft);color:var(--text-secondary);font-size:12px;line-height:18px}
.privacy-badge{color:var(--warning);background:var(--warning-soft);border-color:transparent}

/* Surfaces */
.panel,.metric-card,.profile-strip,.filter-bar,.question-card,.workspace-card,.session-card,.alert-card,.policy-summary-card{background:var(--bg-container);border:1px solid var(--border);box-shadow:none}
.panel{min-width:0;border-radius:var(--radius);padding:16px}
.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.panel-head h2{margin:0;font-size:16px;line-height:1.4;font-weight:500;letter-spacing:-.1px}
.panel-head p{margin:4px 0 0;color:var(--text-secondary);font-size:12px;line-height:1.5}
.panel-head a{color:var(--text-secondary);font-size:12px}
.panel-head a:hover{color:var(--primary)}

.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(176px,1fr));gap:12px;margin-bottom:16px}
.metric-grid.five,.metric-grid.four{grid-template-columns:repeat(auto-fit,minmax(176px,1fr))}
.metric-card{min-width:0;min-height:104px;padding:16px;border-radius:var(--radius);background:var(--fill-soft);transition:background .14s ease,border-color .14s ease}
.metric-card:hover{background:var(--fill)}
.metric-label{display:block;color:var(--text-secondary);font-size:12px;line-height:1.4}
.metric-card strong{display:block;margin:10px 0 4px;font-size:25px;line-height:1.2;font-weight:500;letter-spacing:-.45px;font-variant-numeric:tabular-nums}
.metric-card small{display:block;color:var(--text-tertiary);font-size:12px;line-height:1.5}
.metric-text{font-size:20px!important}

.grid{display:grid;min-width:0}
.grid.two-one{grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr)}
.grid.equal{grid-template-columns:repeat(2,minmax(0,1fr))}
.gap-lg{gap:16px;margin-bottom:16px}

/* Charts */
.bar-chart{height:230px;display:flex;align-items:flex-end;gap:5px;padding-top:8px;overflow:hidden}
.bar-chart.compact{height:200px}
.bar-col{min-width:0;flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}
.bar-track{width:100%;height:calc(100% - 24px);display:flex;align-items:flex-end;background:linear-gradient(to top,var(--fill-soft),transparent);border-radius:5px;overflow:hidden}
.bar{width:100%;height:0;border-radius:4px 4px 2px 2px;background:var(--primary);opacity:.78;transition:height .5s cubic-bezier(.2,.8,.2,1),opacity .14s ease}
.bar:hover{opacity:1}
.bar-col span{max-width:66px;color:var(--text-tertiary);font-size:11px;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ring-wrap{display:grid;place-items:center;padding:8px 0 18px}
.ring{--p:0;position:relative;width:132px;height:132px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--primary) calc(var(--p)*1%),var(--fill) 0)}
.ring:after{content:"";position:absolute;inset:10px;border-radius:50%;background:var(--bg-container)}
.ring div{position:relative;z-index:1;text-align:center}
.ring strong{display:block;font-size:23px;line-height:1.2;font-weight:500}
.ring span{color:var(--text-secondary);font-size:12px}
.mini-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.mini-stats span{padding:10px 12px;border-radius:8px;background:var(--fill-soft);color:var(--text-secondary);font-size:12px}
.mini-stats b{display:block;margin-bottom:2px;color:var(--text);font-size:17px;line-height:1.3;font-weight:500}

/* Lists */
.rank-list,.model-list{display:grid;gap:2px}
.rank-row,.model-row{min-width:0;display:flex;align-items:center;gap:10px;padding:8px;border-radius:8px;transition:background .12s ease}
.rank-row:hover,.model-row:hover{background:var(--fill-soft)}
.avatar{width:32px;height:32px;flex:0 0 auto;display:grid;place-items:center;border-radius:10px;background:var(--fill-active);color:var(--text);font-size:12px;line-height:1;font-weight:500;border:1px solid var(--border)}
.avatar.sm{width:28px;height:28px;border-radius:8px}
.avatar.xl{width:52px;height:52px;border-radius:14px;font-size:18px}
.rank-main,.user-cell span:last-child{min-width:0;flex:1}
.rank-main b,.user-cell b,.model-row b{display:block;font-size:13px;line-height:1.4;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rank-main small,.user-cell small,.model-row small{display:block;margin-top:2px;color:var(--text-tertiary);font-size:12px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rank-value,.model-value{flex:0 0 auto;text-align:right}
.rank-value b,.model-value b{font-size:13px;font-weight:500;font-variant-numeric:tabular-nums}
.rank-value small,.model-value small{display:block;margin-top:2px;color:var(--text-tertiary);font-size:11px}
.model-row>div:first-child{width:clamp(120px,28%,260px);min-width:0}
.model-meter{flex:1;height:5px;border-radius:999px;background:var(--fill);overflow:hidden}
.model-meter i{display:block;height:100%;width:var(--w);border-radius:inherit;background:var(--primary);transform-origin:left}
.model-value{width:94px}

/* Forms, filters, buttons */
.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px;border-radius:var(--radius);margin-bottom:12px;background:var(--fill-soft)}
.searchbox,.field{height:36px;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg-container);transition:border-color .14s ease,box-shadow .14s ease}
.searchbox{min-width:220px;flex:1}
.searchbox:focus-within,.field:focus-within{border-color:var(--primary);box-shadow:var(--focus)}
.searchbox svg{width:16px;height:16px;fill:none;stroke:var(--text-tertiary);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.searchbox input,.field input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font-size:13px}
input::placeholder,textarea::placeholder{color:var(--text-quaternary)}
.filter-bar select,.policy-form select,.form-grid select{height:36px;padding:0 30px 0 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg-container);font-size:13px;outline:none}
.filter-bar select:focus,.policy-form select:focus,.form-grid select:focus{border-color:var(--primary);box-shadow:var(--focus)}
.btn{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 12px;border:1px solid transparent;border-radius:8px;background:transparent;font-size:13px;line-height:20px;font-weight:400;cursor:pointer;white-space:nowrap;transition:background .12s ease,border-color .12s ease,color .12s ease}
.btn.primary{background:var(--primary);color:white}
.btn.primary:hover{background:var(--primary-hover)}
.btn.ghost{background:var(--bg-container);border-color:var(--border);color:var(--text)}
.btn.ghost:hover{background:var(--fill-soft);border-color:var(--border-strong)}
.btn.success{background:var(--success);color:white}
.btn.danger{background:var(--danger);color:white}
.btn.small{min-height:30px;padding:0 9px;font-size:12px}
.btn.wide{width:100%}
.link-btn{color:var(--primary);font-size:12px}
.icon-action{width:30px;height:30px;display:inline-grid;place-items:center;border:0;border-radius:7px;background:transparent;color:var(--text-secondary);cursor:pointer}
.icon-action:hover{background:var(--fill-hover);color:var(--text)}
.segmented{display:inline-flex;gap:2px;padding:3px;border-radius:9px;background:var(--fill)}
.segmented a{min-width:48px;height:29px;display:grid;place-items:center;padding:0 10px;border-radius:7px;color:var(--text-secondary);font-size:12px;transition:background .12s ease,color .12s ease}
.segmented a:hover{color:var(--text)}
.segmented a.active{background:var(--bg-container);color:var(--text);box-shadow:0 1px 2px rgba(0,0,0,.06)}

/* Tables */
.table-panel{padding:0;overflow:hidden}
.table-scroll{width:100%;overflow:auto;scrollbar-width:thin}
table{width:100%;border-collapse:collapse;min-width:880px;font-variant-numeric:tabular-nums}
th,td{padding:11px 14px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;font-size:13px;line-height:1.45;font-weight:400}
th{position:sticky;top:0;z-index:2;background:var(--bg-container);color:var(--text-secondary);font-size:12px;font-weight:500;white-space:nowrap}
tbody tr{transition:background .12s ease}
tbody tr:hover{background:var(--fill-soft)}
tbody tr:last-child td{border-bottom:0}
.user-cell{display:flex;align-items:center;gap:9px;max-width:280px}
.check-col{width:38px;text-align:center}
.row-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-top:1px solid var(--border);color:var(--text-secondary);font-size:12px}

/* Badges / notices */
.badges{display:flex;gap:5px;flex-wrap:wrap}
.badge{display:inline-flex;align-items:center;min-height:22px;padding:2px 7px;border-radius:999px;background:var(--fill);color:var(--text-secondary);font-size:11px;line-height:16px;font-weight:400;white-space:nowrap}
.badge.green{background:var(--success-soft);color:var(--success)}
.badge.red{background:var(--danger-soft);color:var(--danger)}
.badge.blue{background:var(--primary-soft);color:var(--primary)}
.badge.purple{background:var(--purple-soft);color:var(--purple)}
.notice{margin-bottom:14px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--fill-soft);color:var(--text-secondary);font-size:13px;line-height:1.55}
.notice.warning{border-color:transparent;background:var(--warning-soft);color:var(--warning)}
.notice.ok{border-color:transparent;background:var(--success-soft);color:var(--success)}
.toast{position:relative;z-index:60;margin:0 0 12px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--bg-elevated);box-shadow:var(--shadow-pop);font-size:13px;transition:opacity .2s ease,transform .2s ease}
.toast.error{color:var(--danger);background:var(--danger-soft);border-color:transparent}

/* Utility */
.muted,.block-muted,.inline-muted{color:var(--text-tertiary)!important;font-size:12px!important;font-weight:400!important}
.block-muted{display:block;margin-top:2px}
.mono{font-family:var(--font-mono);font-size:.96em;font-weight:400}
.text-green{color:var(--success)!important}.text-red{color:var(--danger)!important}
.empty{padding:24px 12px;text-align:center;color:var(--text-tertiary);font-size:13px;line-height:1.6}
.empty-orb{width:44px;height:44px;margin:0 auto 12px;border-radius:14px;background:var(--fill);border:1px solid var(--border)}
.block-muted b,.inline-muted b,.muted b{font-weight:500}
code{font-family:var(--font-mono)}

/* Profiles / details */
.profile-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;margin-bottom:16px;border-radius:var(--radius)}
.user-hero{display:flex;align-items:center;gap:12px}
.user-hero h1{margin:0}
.asset-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-bottom:16px}
.asset-strip>div{padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--fill-soft)}
.asset-strip strong{display:block;margin-top:5px;font-size:18px;font-weight:500}
.action-grid{display:grid;gap:8px}
.danger-zone{border-color:rgba(220,38,38,.25)}

/* Questions / conversation audit */
.conversation-layout-v41{display:grid;grid-template-columns:minmax(290px,340px) minmax(0,1fr);gap:12px;min-height:620px;height:min(760px,calc(100vh - 160px))}
.qv41-page-head{margin-bottom:16px}
.qv41-head-user{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:9px;background:var(--fill-soft)}
.qv41-head-user b,.qv41-user-identity h2{display:block;margin:0;font-size:13px;line-height:1.35;font-weight:500}
.qv41-head-user small,.qv41-user-identity p{display:block;margin:2px 0 0;color:var(--text-tertiary);font-size:12px;line-height:1.35}
.qv41-side{min-height:0;display:flex;flex-direction:column;padding:8px;overflow:hidden}
.qv41-side-head{display:flex;align-items:center;gap:8px;padding:6px 6px 10px}
.qv41-side-head>div:first-child{min-width:0;flex:1}
.qv41-side-head h2{margin:0;font-size:15px;line-height:1.4;font-weight:500}
.qv41-side-head p{margin:2px 0 0;color:var(--text-tertiary);font-size:12px}
.qv41-count{margin-left:auto;display:grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:var(--fill);color:var(--text-secondary);font-size:11px}
.qv41-search{margin:0 4px 8px;height:36px;display:flex;align-items:center;padding:0 8px;border:1px solid var(--border);border-radius:8px;background:var(--bg-container)}
.qv41-search:focus-within{border-color:var(--primary);box-shadow:var(--focus)}
.qv41-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;font-size:13px}
.qv41-list{min-height:0;overflow:auto;padding:0 2px 6px;scrollbar-width:thin}
.qv41-user-item,.qv41-topic-item{display:flex;align-items:center;gap:9px;padding:8px;border-radius:8px;transition:background .12s ease}
.qv41-user-item:hover,.qv41-topic-item:hover{background:var(--fill-soft)}
.qv41-topic-item.active{background:var(--fill-active)}
.qv41-item-main{min-width:0;flex:1}
.qv41-item-main b,.qv41-topic-title{display:block;color:var(--text);font-size:13px;line-height:1.4;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qv41-item-main small,.qv41-item-main em,.qv41-topic-foot{display:block;margin-top:2px;color:var(--text-tertiary);font-size:11px;line-height:1.4;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qv41-chevron{color:var(--text-quaternary);font-size:18px}
.qv41-back{width:30px;height:30px;display:grid;place-items:center;border-radius:7px;color:var(--text-secondary);font-size:18px}
.qv41-back:hover{background:var(--fill-hover);color:var(--text)}
.qv41-user-identity{min-width:0;flex:1;display:flex;align-items:center;gap:8px}
.qv41-user-identity>span:last-child{min-width:0}
.qv41-subtitle{padding:4px 8px 6px;color:var(--text-tertiary);font-size:12px;font-weight:500}
.qv41-conversation,.conversation-main{min-width:0;min-height:0;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-container);overflow:hidden}
.qv41-conversation-head,.conversation-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border);background:var(--bg-container)}
.qv41-title-block h2,.conversation-head h2{margin:0;font-size:16px;line-height:1.4;font-weight:500}
.qv41-title-block p,.conversation-head p{margin:4px 0 0;color:var(--text-tertiary);font-size:12px}
.qv41-stream,.conversation-stream{min-height:0;flex:1;overflow:auto;padding:18px clamp(14px,2.2vw,28px);scrollbar-width:thin}
.qv41-message,.chat-message{display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;margin:0 auto 22px;max-width:980px}
.chat-avatar{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:var(--fill);border:1px solid var(--border);color:var(--text-secondary);font-size:11px}
.chat-body{min-width:0}
.chat-meta{min-height:26px;display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-bottom:5px;color:var(--text-tertiary);font-size:11px}
.chat-meta b{color:var(--text);font-size:12px;font-weight:500}
.model-chip{display:inline-flex;align-items:center;min-height:22px;padding:2px 7px;border-radius:6px;background:var(--fill);color:var(--text-secondary);font-family:var(--font-mono);font-size:10.5px}
.chat-content,.markdown-body{color:var(--text);font-size:14px;line-height:1.72;overflow-wrap:anywhere}
.chat-content>*:first-child,.markdown-body>*:first-child{margin-top:0}.chat-content>*:last-child,.markdown-body>*:last-child{margin-bottom:0}
.markdown-body p,.chat-content p{margin:0 0 12px}
.markdown-body h1,.chat-content h1{font-size:22px;line-height:1.4;font-weight:600;margin:24px 0 12px}.markdown-body h2,.chat-content h2{font-size:18px;line-height:1.45;font-weight:600;margin:22px 0 10px}.markdown-body h3,.chat-content h3{font-size:16px;line-height:1.5;font-weight:600;margin:18px 0 8px}
.markdown-body ul,.markdown-body ol,.chat-content ul,.chat-content ol{margin:8px 0 12px;padding-left:22px}.markdown-body li,.chat-content li{margin:4px 0}
.markdown-body blockquote,.chat-content blockquote{margin:12px 0;padding:4px 0 4px 12px;border-left:3px solid var(--border-strong);color:var(--text-secondary)}
.markdown-body pre,.chat-content pre{overflow:auto;margin:12px 0;padding:12px 14px;border:1px solid var(--border);border-radius:9px;background:var(--fill-soft);font-family:var(--font-mono);font-size:12.5px;line-height:1.6}
.markdown-body code,.chat-content code{padding:2px 5px;border-radius:5px;background:var(--fill);font-family:var(--font-mono);font-size:.9em}.markdown-body pre code,.chat-content pre code{padding:0;background:transparent}
.markdown-body table,.chat-content table{min-width:0;margin:12px 0;font-size:12.5px}.markdown-body th,.markdown-body td,.chat-content th,.chat-content td{padding:7px 9px}
.markdown-body a,.chat-content a{color:var(--primary);text-decoration:underline;text-underline-offset:2px}
.chat-usage{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;color:var(--text-tertiary);font-size:11px}
.qv41-empty{height:100%;display:grid;place-items:center;padding:40px;color:var(--text-tertiary);text-align:center;font-size:13px;line-height:1.7}

/* Analytics */
.analytics-page{width:100%;min-width:0}
.analytics-page .metric-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.analytics-split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);gap:16px;margin:16px 0}
.analytics-page .panel{min-width:0;width:100%}
.analytics-page .bar-chart.wide{width:100%;display:grid;grid-template-columns:repeat(var(--analytics-days,30),minmax(3px,1fr));gap:clamp(2px,.28vw,6px);overflow:visible}
.analytics-page .bar-chart.wide .bar-col{width:100%;min-width:0}
.analytics-page .analytics-table table{min-width:640px}

/* Workspaces / storage / sessions */
.workspace-grid,.storage-grid,.session-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.workspace-card,.session-card{min-width:0;padding:14px;border-radius:var(--radius);transition:background .12s ease,border-color .12s ease}
.workspace-card:hover,.session-card:hover{background:var(--fill-soft);border-color:var(--border-strong)}
.workspace-card-head,.session-main{display:flex;align-items:flex-start;gap:10px}
.workspace-icon,.session-icon{width:36px;height:36px;flex:0 0 auto;display:grid;place-items:center;border-radius:10px;background:var(--fill);border:1px solid var(--border);color:var(--text-secondary)}
.workspace-icon svg,.session-icon svg{width:18px;height:18px}
.workspace-card h3,.session-card h3{margin:0;font-size:14px;line-height:1.4;font-weight:500}
.workspace-desc{margin:5px 0;color:var(--text-secondary);font-size:12px;line-height:1.5}
.workspace-owner,.workspace-stats,.session-side{color:var(--text-tertiary);font-size:12px}
.workspace-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:12px}
.workspace-stats span{padding:8px;border-radius:8px;background:var(--fill-soft)}
.workspace-stats b{display:block;color:var(--text);font-size:14px;font-weight:500}
.session-card{display:flex;justify-content:space-between;gap:12px}
.session-main{min-width:0;flex:1}.session-side{flex:0 0 auto;text-align:right}

/* Policy / alerts */
.policy-form{display:grid;gap:16px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.form-grid label,.form-stack{display:grid;gap:6px;color:var(--text-secondary);font-size:12px}
.form-grid input,.policy-form textarea,.form-stack textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg-container);outline:none;font-size:13px;line-height:1.5;resize:vertical}
.form-grid input{height:36px}
.form-grid input:focus,.policy-form textarea:focus,.form-stack textarea:focus{border-color:var(--primary);box-shadow:var(--focus)}
.form-grid small,.form-stack small,.switch-row small{color:var(--text-tertiary);font-size:11px;line-height:1.45}
.switch-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px;border-radius:9px;background:var(--fill-soft);color:var(--text-secondary)}
.switch-row b{display:block;color:var(--text);font-size:13px;font-weight:500}.switch-row input{width:18px;height:18px;accent-color:var(--primary)}
.form-actions{display:flex;gap:8px;flex-wrap:wrap}
.policy-meter{height:4px;margin-top:6px;border-radius:999px;background:var(--fill);overflow:hidden}.policy-meter i{display:block;height:100%;width:var(--w);border-radius:inherit;background:var(--primary)}.policy-meter i.warn{background:var(--warning)}.policy-meter i.danger{background:var(--danger)}
.policy-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.policy-summary-card{padding:12px;border-radius:10px;background:var(--fill-soft)}
.alert-list{display:grid;gap:8px}.alert-card{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:start;padding:12px;border-radius:10px}.alert-card.critical{border-color:rgba(220,38,38,.25);background:var(--danger-soft)}.alert-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:var(--fill);color:var(--text-secondary)}.alert-card b,.alert-title{font-size:13px;font-weight:500}.alert-card p{margin:3px 0;color:var(--text-secondary);font-size:12px}.alert-card small{color:var(--text-tertiary);font-size:11px}

/* Login */
.login-body{min-height:100vh;background:var(--bg-layout)}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}
.login-card{width:min(100%,380px);padding:28px;border:1px solid var(--border);border-radius:16px;background:var(--bg-container);box-shadow:0 16px 48px rgba(0,0,0,.08)}
.login-logo{display:flex;justify-content:center;margin-bottom:14px}.login-mark{width:34px;height:34px;border-radius:10px}
.login-card h1{margin:0;text-align:center;font-size:21px;line-height:1.4;font-weight:600;letter-spacing:-.2px}.login-card>p{margin:5px 0 22px;text-align:center;color:var(--text-secondary);font-size:12px}
.login-form{display:grid;gap:8px}.login-form label{margin-top:4px;color:var(--text-secondary);font-size:12px}.login-form .field{height:40px}.login-form .btn{height:40px;margin-top:8px}
.login-note{margin-top:18px;text-align:center;color:var(--text-tertiary);font-size:11px;line-height:1.5}.login-theme{position:fixed;right:16px;top:16px}

/* Motion */
.reveal,.reveal-stagger>*{animation:fadeIn .22s ease both}.reveal-stagger>*:nth-child(2){animation-delay:.025s}.reveal-stagger>*:nth-child(3){animation-delay:.05s}.reveal-stagger>*:nth-child(4){animation-delay:.075s}.reveal-stagger>*:nth-child(5){animation-delay:.1s}
@keyframes fadeIn{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Responsive */
@media(min-width:1800px){.main-content{width:min(calc(100% - 64px),1480px)}.main.main-wide .main-content{width:min(calc(100% - 64px),1840px)}.bar-chart{height:260px}}
@media(max-width:1180px){.grid.two-one{grid-template-columns:1fr}.analytics-split{grid-template-columns:1fr}.main-content,.main.main-wide .main-content{width:calc(100% - 36px)}}
@media(max-width:980px){.grid.equal{grid-template-columns:1fr}.conversation-layout-v41{grid-template-columns:minmax(260px,310px) minmax(0,1fr)}.model-row>div:first-child{width:34%}}
@media(max-width:860px){
  body{font-size:14px}
  .sidebar{width:min(86vw,292px);transform:translateX(-102%);box-shadow:var(--shadow-pop)}
  .sidebar.open{transform:translateX(0)}
  body.sidebar-collapsed .sidebar{width:min(86vw,292px)}
  body.sidebar-collapsed .brand-copy,body.sidebar-collapsed .nav-item span,body.sidebar-collapsed .nav-section span,body.sidebar-collapsed .db-chip span{display:initial}
  body.sidebar-collapsed .brand{justify-content:flex-start;padding:0 8px}
  body.sidebar-collapsed .sidebar-brand-row{justify-content:initial}
  body.sidebar-collapsed .sidebar-collapse-btn{position:static;width:32px;height:32px;background:transparent;border:0;box-shadow:none}
  body.sidebar-collapsed .sidebar-collapse-btn svg{transform:none}
  body.sidebar-collapsed .nav-item{justify-content:flex-start;padding:0 8px}
  body.sidebar-collapsed .nav-section{height:31px;margin-top:0;padding:0 10px 6px;border-top:0}
  body.sidebar-collapsed .db-chip{justify-content:flex-start;padding:0 10px}
  .main{margin-left:0;padding-top:var(--header-mobile)}
  .mobile-head{position:fixed;inset:0 0 auto 0;z-index:35;height:var(--header-mobile);display:grid;grid-template-columns:40px 1fr 40px;align-items:center;padding:0 8px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg-container) 92%,transparent);backdrop-filter:blur(14px)}
  .mobile-brand{display:flex;align-items:center;justify-content:center;gap:8px}.mobile-brand b{font-size:14px;font-weight:500}.small-mark{width:24px;height:24px;border-radius:7px}.small-mark .brand-core{width:9px;height:9px}
  .mobile-mask{position:fixed;inset:0;z-index:38;display:block;background:var(--bg-mask);opacity:0;pointer-events:none;transition:opacity .2s ease}.mobile-mask.open{opacity:1;pointer-events:auto}
  .sidebar-collapse-btn{display:none}
  .main-content,.main.main-wide .main-content{width:100%;padding:18px 16px 72px}
  .page-head{margin-bottom:18px}.page-head h1{font-size:19px}.page-head{align-items:flex-start}
  .metric-grid,.metric-grid.five,.metric-grid.four,.analytics-page .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .conversation-layout-v41{height:auto;min-height:0;grid-template-columns:1fr}.qv41-side{max-height:360px}.qv41-conversation{min-height:560px}
  .form-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .page-head{flex-direction:column}.head-actions,.segmented{width:100%;justify-content:flex-start}.segmented a{flex:1}
  .metric-grid,.metric-grid.five,.metric-grid.four,.analytics-page .metric-grid{grid-template-columns:1fr}
  .metric-card{min-height:94px}.metric-card strong{font-size:23px}
  .filter-bar{align-items:stretch}.searchbox{min-width:100%}.filter-bar select,.filter-bar .btn{flex:1}
  .workspace-grid,.storage-grid,.session-cards{grid-template-columns:1fr}
  .workspace-stats{grid-template-columns:1fr 1fr}.session-card{flex-direction:column}.session-side{text-align:left}
  .model-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px}.model-row>div:first-child{width:auto}.model-meter{grid-column:1/-1;grid-row:2}.model-value{grid-column:2;grid-row:1;width:auto}
  .analytics-page .bar-chart.wide{overflow-x:auto;grid-template-columns:repeat(var(--analytics-days,30),minmax(8px,1fr));padding-bottom:8px}.analytics-page .bar-chart.wide[data-days="90"]{min-width:900px}.analytics-page .bar-chart.wide[data-days="30"]{min-width:600px}
  .qv41-conversation-head,.conversation-head{padding:12px}.qv41-stream,.conversation-stream{padding:14px 10px}.qv41-message,.chat-message{grid-template-columns:28px minmax(0,1fr);gap:8px;margin-bottom:18px}.chat-avatar{width:28px;height:28px}
  .alert-card{grid-template-columns:28px minmax(0,1fr)}.alert-card>.badge{grid-column:2}
  footer{margin-top:36px}
}
