:root{--bg: #f5f6f8;--panel: #ffffff;--panel-2: #f8fafc;--border: #e6e8ec;--border-strong: #cfd4dc;--text: #101828;--muted: #667085;--accent: #4f46e5;--accent-hover: #4338ca;--accent-weak: #eef2ff;--danger: #b42318;--danger-weak: #fef3f2;--danger-border: #fecdca;--warn: #b54708;--warn-weak: #fffaeb;--ok: #067647;--ok-weak: #ecfdf3;--neutral: #475467;--neutral-weak: #f2f4f7;--row-hover: #f8f9fc;--radius: 10px;--radius-sm: 7px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .04), 0 1px 3px rgba(16, 24, 40, .05);--shadow-md: 0 4px 16px rgba(16, 24, 40, .08);--ring: 0 0 0 3px rgba(79, 70, 229, .16);--fs: 14px;--fs-sm: 12.5px;--fs-xs: 11px;--font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--topbar-h: 54px;--control-h: 32px}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:var(--font);font-size:var(--fs);color:var(--text);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}::selection{background:var(--accent-weak);color:var(--accent-hover)}.topbar{display:flex;align-items:center;gap:18px;height:var(--topbar-h);padding:0 18px;background:#ffffffd9;-webkit-backdrop-filter:saturate(180%) blur(8px);backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.topbar .brand{display:flex;align-items:center;gap:8px;font-weight:650;font-size:15px;letter-spacing:-.01em}.topbar .brand img{display:block;width:28px;height:28px;margin-top:-2px}.topbar nav{display:flex;gap:2px}.topbar nav a{padding:6px 12px;border-radius:var(--radius-sm);color:var(--muted);font-weight:500;transition:background-color .12s ease,color .12s ease}.topbar nav a:hover{background:var(--neutral-weak);color:var(--text);text-decoration:none}.topbar nav a.router-link-active{background:var(--accent-weak);color:var(--accent);text-decoration:none}.topbar .spacer,.spacer{flex:1}.content{padding:22px 18px 48px;max-width:1320px;margin:0 auto}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:18px;overflow:clip}.panel>.panel-head{padding:12px 16px;border-bottom:1px solid var(--border);font-weight:600;font-size:var(--fs);display:flex;align-items:center;gap:10px}.panel>.panel-body{padding:16px}.panel>.panel-body:has(>table.grid){padding:0}.panel>.panel-body:has(>table.grid) .pager{padding:12px 16px;margin-top:0;border-top:1px solid var(--border)}.panel>.panel-body:has(>table.grid)>.error{margin:16px}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:16px}input,select,textarea,button{font-family:inherit;font-size:var(--fs);color:var(--text)}input[type=text],input[type=search],input[type=password],select,textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:0 10px;height:var(--control-h);background:var(--panel);transition:border-color .12s ease,box-shadow .12s ease}select{cursor:pointer}input::placeholder{color:#98a2b3}input:hover,select:hover,textarea:hover{border-color:var(--muted)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}textarea{width:100%;resize:vertical;min-height:76px;height:auto;padding:8px 10px;line-height:1.5}label.field{display:flex;flex-direction:column;gap:5px;font-size:var(--fs-sm);font-weight:500;color:var(--muted)}button{cursor:pointer;border:1px solid var(--border-strong);background:var(--panel);border-radius:var(--radius-sm);height:var(--control-h);padding:0 13px;font-weight:500;white-space:nowrap;transition:background-color .12s ease,border-color .12s ease,box-shadow .12s ease,transform .06s ease}button:hover{background:var(--panel-2);border-color:var(--muted)}button:active{transform:translateY(1px)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button.link{border:none;background:none;color:var(--accent);height:auto;padding:3px 6px;box-shadow:none}button.link:hover{background:var(--accent-weak);text-decoration:none}button:disabled{opacity:.45;cursor:not-allowed;transform:none}button:disabled:hover{background:var(--panel);border-color:var(--border-strong)}.segmented{display:inline-flex;gap:2px;padding:2px;background:var(--neutral-weak);border:1px solid var(--border);border-radius:var(--radius-sm)}.segmented button{border:none;background:none;box-shadow:none;height:26px;padding:0 12px;border-radius:5px;color:var(--muted)}.segmented button:hover{background:#ffffffb3;color:var(--text)}.segmented button.active{background:var(--panel);color:var(--text);box-shadow:var(--shadow-sm)}table.grid{width:100%;border-collapse:collapse}table.grid th,table.grid td{text-align:left;padding:11px 16px;border-bottom:1px solid var(--border);vertical-align:top}table.grid th{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--panel-2);position:sticky;top:var(--topbar-h);z-index:1;white-space:nowrap}table.grid tbody tr:last-child td{border-bottom:none}table.grid tbody tr{transition:background-color .1s ease}table.grid tbody tr:hover{background:var(--row-hover)}table.grid td.num{text-align:right;font-variant-numeric:tabular-nums}.clickable{cursor:pointer}.badge{display:inline-block;padding:2px 9px;border-radius:var(--radius-pill);font-size:var(--fs-xs);font-weight:600;line-height:1.6;white-space:nowrap;border:1px solid transparent}.badge+.badge{margin-left:4px}.badge.escalate{background:var(--danger-weak);color:var(--danger);border-color:var(--danger-border)}.badge.negative{background:var(--warn-weak);color:var(--warn);border-color:#fedf89}.badge.lowsim{background:var(--neutral-weak);color:var(--neutral);border-color:#e4e7ec}.badge.ok{background:var(--ok-weak);color:var(--ok);border-color:#abefc6}.muted{color:var(--muted)}.mono{font-family:var(--mono);font-size:var(--fs-sm)}.small{font-size:var(--fs-sm)}.right{text-align:right}.nowrap{white-space:nowrap}.error{background:var(--danger-weak);color:var(--danger);border:1px solid var(--danger-border);padding:10px 14px;border-radius:var(--radius-sm);margin-bottom:14px;font-weight:500}.empty{color:var(--muted);padding:40px 20px;text-align:center}.pager{display:flex;align-items:center;gap:10px;margin-top:14px}.accordion{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;margin-top:8px}.accordion .acc-item+.acc-item{border-top:1px solid var(--border)}.accordion .acc-head{display:flex;align-items:center;gap:8px;padding:9px 12px;cursor:pointer;background:var(--panel-2);transition:background-color .1s ease}.accordion .acc-head:hover{background:var(--accent-weak)}.accordion .acc-body{padding:12px;border-top:1px solid var(--border)}.exchange{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:14px;background:var(--panel);overflow:clip}.exchange .ex-head{padding:9px 16px;border-bottom:1px solid var(--border);background:var(--panel-2);display:flex;gap:8px;align-items:center;font-size:var(--fs-sm);color:var(--muted)}.exchange .bubble{padding:14px 16px}.exchange .bubble .role{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:5px}.exchange .bubble.user{border-bottom:1px solid var(--border);border-left:3px solid var(--border-strong)}.exchange .bubble.bot{border-left:3px solid var(--accent)}.exchange .bubble p{margin:0;white-space:pre-wrap}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.kpi{border:1px solid var(--border);border-radius:var(--radius);padding:16px;background:var(--panel);box-shadow:var(--shadow-sm)}.kpi .k-label{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.kpi .k-value{font-size:30px;font-weight:680;line-height:1.2;letter-spacing:-.02em;margin-top:6px;font-variant-numeric:tabular-nums}.k-var{font-size:var(--fs-sm);font-weight:500;margin-top:4px}.k-var.up{color:var(--ok)}.k-var.down{color:var(--danger)}.k-var.flat{color:var(--muted)}.k-var .muted{font-weight:400;margin-left:4px}.md{overflow-wrap:anywhere}.md>*:first-child{margin-top:0}.md>*:last-child{margin-bottom:0}.md p{margin:0 0 8px}.md h1,.md h2,.md h3,.md h4{margin:14px 0 6px;line-height:1.3;font-weight:650;letter-spacing:-.01em}.md h1{font-size:18px}.md h2{font-size:16px}.md h3{font-size:15px}.md h4{font-size:var(--fs)}.md ul,.md ol{margin:0 0 8px;padding-left:20px}.md li{margin:3px 0}.md li>p{margin:0}.md code{font-family:var(--mono);font-size:var(--fs-sm);background:var(--neutral-weak);border:1px solid var(--border);border-radius:4px;padding:1px 5px}.md pre{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;overflow-x:auto;margin:0 0 8px}.md pre code{background:none;border:none;padding:0}.md blockquote{margin:0 0 8px;padding:2px 12px;border-left:3px solid var(--border-strong);color:var(--muted)}.md a{color:var(--accent)}.md table{border-collapse:collapse;margin:0 0 8px}.md table th,.md table td{border:1px solid var(--border);padding:5px 10px;text-align:left}.md hr{border:none;border-top:1px solid var(--border);margin:12px 0}.md img{max-width:100%}.md-preview{border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--panel-2);padding:10px 12px;min-height:44px}.login-wrap{display:flex;align-items:center;justify-content:center;height:100%;padding:20px;background:radial-gradient(70% 55% at 50% 0%,#ffffff 0%,var(--bg) 60%)}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-md);padding:28px;width:340px}.login-card h1{font-size:20px;font-weight:650;letter-spacing:-.02em;margin:0 0 2px}@media(max-width:720px){.topbar{height:auto;flex-wrap:wrap;gap:10px;padding:10px 14px}.topbar nav{order:3;width:100%;overflow-x:auto}.content{padding:16px 14px 40px}table.grid th{position:static}.panel>.panel-body:has(>table.grid){overflow-x:auto}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
