:root{--bg:#0a0c11;--bg-elevated:#11141b;--bg-card:#161a23;--bg-inset:#0d0f15;--border:#262c3b;--border-soft:#1c202c;--text:#e9ebf2;--text-muted:#8b93a7;--text-faint:#5b6376;--accent:#6d8cff;--accent-soft:#6d8cff24;--accent-strong:#4f6fe0;--success:#3fb950;--success-soft:#3fb95024;--warning:#f0b429;--warning-soft:#f0b4291a;--danger:#ff6b6b;--radius-sm:7px;--radius:10px;--radius-lg:16px}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.login-page{background:radial-gradient(circle at 50% 20%, #151a26 0%, var(--bg) 60%);justify-content:center;align-items:center;height:100vh;display:flex}.login-form{background:var(--bg-elevated);border:1px solid var(--border-soft);border-radius:var(--radius-lg);flex-direction:column;gap:14px;width:340px;padding:36px 32px;display:flex;box-shadow:0 20px 60px #00000059}.login-form label{color:var(--text-muted);flex-direction:column;gap:5px;font-size:13px;display:flex}.login-form input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-inset);color:var(--text);padding:10px 12px;font-size:14px}.login-form input:focus{border-color:var(--accent);outline:none}.login-form button{border-radius:var(--radius-sm);background:var(--accent-strong);color:#fff;cursor:pointer;border:none;margin-top:8px;padding:11px;font-weight:600;transition:background .12s}.login-form button:hover{background:var(--accent)}.error{color:var(--danger);font-size:13px}.app-shell{background:var(--bg);height:100vh;display:flex}.nav-rail{background:var(--bg-elevated);border-right:1px solid var(--border-soft);flex-direction:column;flex-shrink:0;width:216px;padding:22px 14px 16px;display:flex}.nav-brand{letter-spacing:.01em;color:var(--text);padding:0 10px 26px;font-size:16px;font-weight:700}.nav-brand span{color:var(--accent)}.nav-links{flex-direction:column;flex:1;gap:2px;display:flex}.nav-link{border-radius:var(--radius-sm);color:var(--text-muted);align-items:center;gap:10px;padding:9px 10px;font-size:13.5px;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex}.nav-link:hover{background:var(--bg-card);color:var(--text)}.nav-link.active{background:var(--accent-soft);color:var(--accent)}.nav-footer{border-top:1px solid var(--border-soft);flex-direction:column;gap:10px;margin-top:14px;padding-top:14px;display:flex}.nav-user{align-items:center;gap:10px;min-width:0;padding:0 10px;display:flex}.nav-avatar{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.nav-user-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.nav-logout{border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;align-items:center;gap:8px;margin:0 10px;padding:8px 10px;font-size:12.5px;display:flex}.nav-logout:hover{color:var(--text);border-color:var(--text-faint)}.app-content{flex:1;min-width:0;display:flex;overflow:hidden}.chat-page{flex:1;min-width:0;display:flex}.session-panel{background:var(--bg-elevated);border-right:1px solid var(--border-soft);flex-direction:column;flex-shrink:0;gap:12px;width:260px;padding:18px 14px;display:flex}.session-panel-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:13px;font-weight:600}.client-select{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-inset);color:var(--text);padding:8px 10px;font-size:13px}.new-session{border-radius:var(--radius-sm);border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;padding:8px;font-weight:600;transition:background .12s}.new-session:hover{background:var(--accent-soft)}.session-list{margin:0;padding:0;font-size:13px;list-style:none;overflow-y:auto}.session-list li{border-radius:var(--radius-sm);cursor:pointer;color:var(--text-muted);padding:8px 10px}.session-list li.active,.session-list li:hover{background:var(--bg-card);color:var(--text)}.chat-main{flex-direction:column;flex:1;min-width:0;display:flex}.messages{flex-direction:column;flex:1;gap:14px;padding:28px 32px;display:flex;overflow-y:auto}.message{display:flex}.message.user{justify-content:flex-end}.bubble{border-radius:var(--radius);white-space:pre-wrap;max-width:70%;padding:11px 15px;font-size:14px;line-height:1.5}.message.user .bubble{background:var(--accent-strong);color:#fff;border-bottom-right-radius:4px}.message.assistant .bubble{background:var(--bg-card);border:1px solid var(--border-soft);border-bottom-left-radius:4px}.composer{border-top:1px solid var(--border-soft);gap:10px;padding:18px 32px;display:flex}.composer input{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);flex:1;padding:12px 14px;font-size:14px}.composer input:focus{border-color:var(--accent);outline:none}.composer button{border-radius:var(--radius);background:var(--accent-strong);color:#fff;cursor:pointer;border:none;padding:0 22px;font-weight:600;transition:background .12s}.composer button:hover:not(:disabled){background:var(--accent)}.composer button:disabled,.composer input:disabled{opacity:.5;cursor:not-allowed}.page{flex:1;min-width:0;padding:32px 40px 48px;overflow-y:auto}.page-header{margin-bottom:24px}.page-header-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.page-header h1{color:var(--text);margin:0 0 4px;font-size:21px;font-weight:700}.page-header p{color:var(--text-muted);margin:0;font-size:13.5px}.card{background:var(--bg-elevated);border:1px solid var(--border-soft);border-radius:var(--radius-lg);margin-bottom:20px;padding:20px 22px}.card-title{color:var(--text);margin:0 0 16px;font-size:14px;font-weight:600}.admin-form{background:var(--bg-elevated);border:1px solid var(--border-soft);border-radius:var(--radius-lg);flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:24px;padding:20px 22px;display:flex}.admin-form h2{width:100%;color:var(--text);margin:0 0 4px;font-size:14px;font-weight:600}.admin-form label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.admin-form input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-inset);color:var(--text);padding:8px 10px;font-size:14px}.admin-form input:focus{border-color:var(--accent);outline:none}.admin-form .checkbox-label{flex-direction:row;align-items:center;gap:6px}.admin-form button{border-radius:var(--radius-sm);background:var(--accent-strong);color:#fff;cursor:pointer;border:none;height:36px;padding:9px 18px;font-weight:600;transition:background .12s}.admin-form button:hover:not(:disabled){background:var(--accent)}.table-scroll{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:13.5px}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border-soft);white-space:nowrap;padding:10px 12px}.admin-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:11.5px;font-weight:600}.admin-table tbody tr:hover{background:var(--bg-card)}.admin-actions{flex-wrap:wrap;gap:8px;display:flex}.admin-actions button{border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;padding:5px 10px;font-size:12px;transition:border-color .12s}.admin-actions button:hover{border-color:var(--text-faint)}.access-panel{background:var(--bg-inset);border-radius:var(--radius);margin:4px 0;padding:14px 16px;font-size:13px}.access-list{flex-direction:column;gap:6px;margin:10px 0 0;padding:0;list-style:none;display:flex}.access-list label{cursor:pointer;align-items:center;gap:8px;display:flex}.server-list{color:var(--text);flex-direction:column;gap:4px;margin:10px 0 16px;padding:0;font-size:13px;list-style:none;display:flex}.hint{color:var(--text-muted);background:var(--bg-elevated);border:1px solid var(--border-soft);border-radius:var(--radius);margin-bottom:20px;padding:12px 16px;font-size:13px}.hint code{background:var(--bg-inset);border-radius:4px;padding:1px 5px;font-size:12px}.approval-card{background:var(--warning-soft);border-radius:var(--radius);border:1px solid #6b4d1a;max-width:480px;margin-top:8px;padding:12px 14px;font-size:13px}.approval-title{color:var(--warning);margin-bottom:8px;font-weight:600}.approval-field{color:var(--text);margin-bottom:6px}.approval-field code{background:var(--bg-inset);border-radius:4px;padding:2px 6px;font-size:12px}.approval-actions{gap:8px;margin-top:10px;display:flex}.approval-actions button{border-radius:var(--radius-sm);cursor:pointer;border:none;padding:7px 14px;font-size:13px;font-weight:600}.approve-btn{background:var(--success);color:#05230b}.reject-btn{color:var(--text);background:#383b42}.approval-decided{color:var(--text-muted);margin-top:8px;font-style:italic}.summary-cards{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:20px;display:grid}.summary-card{background:var(--bg-elevated);border:1px solid var(--border-soft);border-radius:var(--radius-lg);padding:18px 20px}.summary-value{color:var(--text);font-size:26px;font-weight:700}.summary-label{color:var(--text-muted);margin-top:4px;font-size:12.5px}.period-selector{background:var(--bg-elevated);border:1px solid var(--border-soft);border-radius:var(--radius-sm);gap:4px;padding:3px;display:flex}.period-selector button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 12px;font-size:12.5px}.period-selector button.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.report-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;display:grid}.chart-empty{color:var(--text-faint);padding:20px 0;font-size:13px}.hbar-chart{flex-direction:column;gap:10px;display:flex}.hbar-row{grid-template-columns:120px 1fr 56px;align-items:center;gap:10px;font-size:12.5px;display:grid}.hbar-label{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hbar-track{background:var(--bg-inset);border-radius:4px;height:8px;overflow:hidden}.hbar-fill{background:linear-gradient(90deg, var(--accent-strong), var(--accent));border-radius:4px;height:100%}.hbar-value{text-align:right;color:var(--text);font-variant-numeric:tabular-nums}.line-chart{width:100%;height:160px;display:block}.line-chart-area{fill:var(--accent);opacity:.12}.line-chart-line{fill:none;stroke:var(--accent);stroke-width:2px}.chart-axis{stroke:var(--border-soft);stroke-width:1px}
