:root{--bg:#f3f5f8;--surface:#fff;--surface-2:#f7f9fb;--line:#e3e7ed;--line-2:#eef1f5;--line-strong:#cbd3dc;--ink:#17212b;--muted:#5b6875;--brand:#2a4fa0;--brand-ink:#213f82;--brand-soft:#e8ecf6;--brand-line:#bfcbe6;--green:#1e6b3a;--green-soft:#e8f5ec;--red:#b3261e;--red-ink:#9c1f18;--red-soft:#fcebea;--amber-ink:#8a4f00;--amber-soft:#fff4e0;--violet-ink:#3a44a0;--violet-soft:#eef0fb;--font:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, Consolas, monospace}*{box-sizing:border-box}:root{--scroll-thumb:#17212b33;--scroll-thumb-hover:#17212b61}*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--scroll-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover);background-clip:padding-box}::-webkit-scrollbar-corner{background:0 0}:hover{scrollbar-color:var(--scroll-thumb-hover) transparent}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);margin:0;font-size:15px}button,input,select,textarea{font:inherit;color:inherit}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted{color:var(--muted)}.small{font-size:13px}.mono{font-family:var(--mono)}.strong{font-weight:600}.ink{color:var(--ink)}.danger{color:var(--red-ink)}.pad{margin:0;padding:12px 16px}.error-text{color:var(--red-ink)}.ok-text{color:var(--green)}.center-screen{justify-content:center;align-items:center;height:100%;padding:16px;display:flex}.login-box{background:var(--surface);border:1px solid var(--line);border-radius:14px;width:100%;max-width:440px;padding:28px}.login-box h1{margin:0 0 8px;font-size:22px}.dev-form{flex-direction:column;gap:10px;margin-top:12px;display:flex}.dev-form label{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.dev-form input,.dev-form select,.text-input{background:#fff;border:1px solid #cbd3dc;border-radius:8px;height:40px;padding:0 10px}.app{flex-direction:column;height:100%;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 24px;min-height:56px;padding:6px 20px;display:flex}.logo{align-items:center;gap:10px;font-size:16px;font-weight:600;display:flex}.logo-mark{background:var(--brand);border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.tabs{gap:4px;display:flex}.tab{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;min-height:40px;padding:8px 12px;font-size:14px;font-weight:500}.tab.active{background:var(--brand-soft);color:var(--brand-ink)}.topbar-right{flex-wrap:wrap;align-items:center;gap:16px;margin-left:auto;display:flex}.user{align-items:center;gap:8px;font-size:14px;display:flex}.workspace{flex:1;min-height:0;display:flex}.avatar{border-radius:50%;flex:none;justify-content:center;align-items:center;width:40px;height:40px;font-size:13px;font-weight:600;display:flex}.avatar.sm{width:30px;height:30px;font-size:12px}.avatar.lg{width:40px;height:40px;font-size:14px}.avatar.img{object-fit:cover;background:var(--surface-2)}.bot-av{background:var(--ink);color:#fff;width:32px;height:32px;font-size:11px}.chat{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.chat.empty{justify-content:center;align-items:center;padding:24px}.empty-box{text-align:center;max-width:420px}.empty-box h1{margin:12px 0 6px;font-size:20px}.chat-head{border-bottom:1px solid var(--line);background:var(--surface);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 24px;display:flex}.chat-title{flex:200px;min-width:0}.chat-title h1{margin:0;font-size:17px;font-weight:600}.icon-btn{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.icon-btn.back-btn{display:none}.chip{background:var(--bg);border-radius:8px;align-items:center;gap:6px;height:32px;padding:0 10px;font-size:13px;display:inline-flex}.chip.warn{background:var(--amber-soft);color:var(--amber-ink)}.log{background:#e9edf4;flex-direction:column;flex:1;gap:18px;min-height:0;padding:24px;display:flex;position:relative;overflow-y:auto}.msg-in{animation:.32s cubic-bezier(.2,.7,.3,1) both msg-in}@keyframes msg-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.msg-in{animation:none}}.hint{text-align:center;max-width:560px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:14px;margin:auto;padding:16px 20px}.msg-row{align-items:flex-start;gap:12px;display:flex}.msg-row.user{flex-direction:column;align-items:flex-end;gap:4px}.bubble{overflow-wrap:anywhere;max-width:760px;padding:10px 14px;font-size:15px;line-height:1.5}.bubble.user{background:var(--brand);color:#fff;white-space:pre-wrap;border-radius:16px 16px 4px;max-width:70%}.bubble.bot{background:var(--surface);border:1px solid var(--line);border-radius:4px 16px 16px}.bot-col{flex-direction:column;flex:1;align-items:flex-start;gap:10px;min-width:0;display:flex}.bot-col>.card{width:100%;max-width:1100px}.msg-time{color:var(--muted);font-size:12px}.md p{margin:0 0 8px}.md p:last-child{margin:0}.md ul,.md ol{margin:4px 0 8px;padding-left:20px}.md table{border-collapse:collapse;margin:6px 0;font-size:14px}.md th,.md td{border:1px solid var(--line);padding:4px 8px}.typing{align-items:center;gap:4px;height:42px;display:flex}.typing span{background:var(--muted);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite blink}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.event{background:var(--amber-soft);border:1px solid #f1d9a8;border-radius:14px;flex-direction:column;align-self:stretch;gap:8px;padding:12px;display:flex}.event-head{color:var(--ink);align-items:flex-start;gap:8px;font-size:14px;display:flex}.event-head .msg-time{white-space:nowrap;margin-left:auto}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}.card.attention{border-color:#e9b44c}.card-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.card-title{font-size:15px;font-weight:600}.card-foot{background:var(--surface-2);border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;display:flex}.foot-actions{flex-wrap:wrap;gap:8px;display:flex}.table-scroll{overflow-x:auto}table.grid{border-collapse:collapse;width:100%;min-width:760px;font-size:14px}table.grid.compact{min-width:480px}table.grid.loading{opacity:.5}.grid th{text-align:left;background:var(--surface-2);border-bottom:1px solid var(--line);color:var(--muted);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;padding:9px 12px;font-size:12px;font-weight:600}.grid td{border-bottom:1px solid var(--line-2);vertical-align:top;padding:8px 12px}.grid tr.dim td{opacity:.55}.grid .r{text-align:right}.cell-name{font-weight:500}.note{color:var(--amber-ink);font-family:var(--font)}.days{text-align:right;min-width:30px;display:inline-block}.flag{white-space:nowrap;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-block}.flag.crit{background:var(--red-soft);color:var(--red-ink)}.flag.warn{background:var(--amber-soft);color:var(--amber-ink)}.flag.ok{background:var(--green-soft);color:var(--green)}.flag.info{background:var(--violet-soft);color:var(--violet-ink)}.flag.muted{background:var(--bg);color:var(--muted)}.seg{background:var(--bg);border-radius:10px;gap:4px;padding:4px;display:flex}.seg-btn{height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0 14px;font-size:13px;font-weight:500}.seg-btn.on{color:var(--brand-ink);background:#fff;font-weight:600;box-shadow:0 1px 2px #17212b1f}.num-input{width:90px;height:34px;font-family:var(--mono);text-align:right;border:1px solid #cbd3dc;border-radius:8px;padding:0 8px;font-size:14px}.date-input{border:1px solid #cbd3dc;border-radius:8px;height:34px;padding:0 8px}.btn{border:1px solid var(--line);cursor:pointer;white-space:nowrap;background:#fff;border-radius:10px;align-items:center;gap:8px;height:40px;padding:0 14px;font-size:14px;font-weight:500;display:inline-flex}.btn:disabled{opacity:.55;cursor:default}.btn.sm{height:32px;padding:0 10px;font-size:13px}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.green{background:var(--green);border-color:var(--green);color:#fff}.btn.ghost{color:var(--ink)}.composer{background:var(--surface);border-top:1px solid var(--line);padding:12px 24px 16px}.input-row{border:1px solid var(--line-strong);background:var(--surface);border-radius:14px;align-items:flex-end;gap:6px;padding:6px;display:flex;position:relative}.input-row:has(textarea:focus){border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.input-row textarea{resize:none;field-sizing:content;background:0 0;border:0;outline:none;flex:1;min-width:0;min-height:40px;max-height:160px;padding:9px 6px;font-size:15px}.input-row textarea::placeholder{color:var(--muted);opacity:1}.quick-toggle,.send-btn{cursor:pointer;border:0;border-radius:10px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.quick-toggle{background:var(--brand-soft);color:var(--brand-ink)}.quick-toggle:hover:not(:disabled),.quick-toggle.open{color:#fff;background:#1f2a44}.quick-toggle:disabled{opacity:.5;cursor:default}.send-btn{background:#1f2a44}.send-btn:hover:not(:disabled){background:#141c30}.send-btn:disabled{opacity:.4;cursor:default}.quick-toggle:focus-visible,.send-btn:focus-visible,.quick-item:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.quick-menu{z-index:5;background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:2px;width:min(360px,100%);padding:6px;animation:.18s ease-out both msg-in;display:flex;position:absolute;bottom:calc(100% + 8px);left:0;box-shadow:0 12px 32px #17212b29}.quick-item{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;padding:8px 10px;display:flex}.quick-item:hover,.quick-item:focus-visible{background:var(--surface-2)}.quick-ico{background:var(--brand-soft);width:32px;height:32px;color:var(--brand-ink);border-radius:8px;flex:none;justify-content:center;align-items:center;display:flex}.quick-text{flex-direction:column;gap:1px;min-width:0;display:flex}.quick-text b{font-size:14px;font-weight:600}.quick-text span{color:var(--muted);font-size:12px}.topbar,.summary,.chat-head{--surface:#1f2a44;--surface-2:#2a3756;--bg:#172036;--line:#ffffff24;--line-strong:#ffffff47;--ink:#f2f4f9;--muted:#c3cbdd;--brand-soft:#172036;--brand-ink:#fff;--scroll-thumb:#ffffff2e;--scroll-thumb-hover:#ffffff59;color:var(--ink)}.search input::placeholder{color:var(--muted);opacity:1}.chat-head .btn,.chat-head .icon-btn{color:var(--ink);border-color:var(--line-strong);background:0 0}.chat-head .btn:hover:not(:disabled),.chat-head .icon-btn:hover{background:var(--surface-2)}.chat-head .sound-btn{border-radius:8px;width:32px;height:32px}.topbar .logo-mark{background:#2a4fa0}.topbar :focus-visible,.summary :focus-visible,.chat-head :focus-visible{outline-color:#fff}@media (width<=820px){.summary{display:none}.log,.composer,.chat-head{padding-left:16px;padding-right:16px}.bubble.user{max-width:88%}.topbar{flex-wrap:nowrap;gap:8px;min-height:48px;padding:4px 12px}.topbar-right,.logo-text{display:none}.chat-head{flex-wrap:nowrap;gap:8px;padding-top:6px;padding-bottom:6px}.chat-head .avatar,.chat-head .chip,.chat-head .btn,.chat-title .muted{display:none}.chat-head .sound-btn{border:0;width:40px;height:40px;margin-right:-8px}.chat-title h1{white-space:nowrap;text-overflow:ellipsis;font-size:17px;overflow:hidden}.log{padding-top:16px;padding-bottom:16px}.composer{padding-top:8px;padding-bottom:max(10px, env(safe-area-inset-bottom))}}.nowrap{white-space:nowrap}.summary{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;flex:0 0 300px;gap:12px;width:300px;padding:16px;display:flex;overflow-y:auto}.summary-title{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:13px;font-weight:600}.kpis{flex-direction:column;gap:8px;display:flex}.kpi-card{border:1px solid var(--line);background:var(--surface-2);text-align:left;cursor:pointer;border-radius:12px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.kpi-card:hover{border-color:var(--line-strong)}.kpi-card:focus-visible{outline-offset:2px;outline:2px solid #fff}.kpi-label{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex}.kpi-value{font-family:var(--mono);white-space:nowrap;font-size:20px;font-weight:500}.kpi-hint{color:var(--muted);font-size:12px}.summary .kpi-card.good .kpi-value{color:#9fe0b4}.summary .kpi-card.bad .kpi-value{color:#ffb4ae}.summary-note{color:var(--muted);margin:4px 0 0;line-height:1.45}.kpi-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.kpi-cell{border-right:1px solid var(--line-2);border-bottom:1px solid var(--line-2);flex-direction:column;gap:4px;padding:12px 16px;display:flex}.kpi-cell .kpi-value{font-size:18px}.kpi-cell.good .kpi-value{color:var(--green)}.kpi-cell.bad .kpi-value{color:var(--red-ink)}.card-title a,.cell-name a{color:var(--brand-ink);text-decoration:none}.card-title a:hover,.cell-name a:hover{text-decoration:underline}.grid tfoot td{background:var(--surface-2);border-top:1px solid var(--line);border-bottom:0}.th-btn{font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:0;padding:0}.th-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.export-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 10px;display:flex}.bot-av,.bot-head{background:#1f2a44}.chat-head .bot-head{background:#2a4fa0}.sync{align-items:center;gap:8px;display:flex}.icon-btn.sm-btn{width:32px;height:32px;color:var(--ink);border-color:var(--line-strong);background:0 0;border-radius:8px}.icon-btn.sm-btn:disabled{opacity:.5;cursor:default}.error-on-dark{color:#ffb4ae}
