:root{--text:#616e7c;--text-h:#1f2933;--bg:#f5f7fa;--card:#fff;--border:#e4e7eb;--accent:#2186eb;--error:#cf1124;--error-bg:#ffe3e3;color:var(--text-h);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{border-top:4px solid #0000;border-image:linear-gradient(90deg,#2186eb,#5fd0c5,#3ebd93) 1;margin:0}.app{max-width:1100px;margin:0 auto;padding:24px;transition:margin-right .2s}@media (width>=900px){.app--chat-open{margin-right:380px}}.app__titlebar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.app__header h1{margin:0;font-size:22px;font-weight:600}.app__logo{flex-shrink:0;width:auto;height:38px}.app__user{flex-shrink:0;align-items:center;gap:12px;display:flex}.app__email{color:var(--text-h);font-size:13px}.app__role{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);background:#eaf3fd;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.app__logout,.app__ask{border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:6px;padding:5px 12px;font-family:inherit;font-size:13px}.app__ask{border-color:var(--accent);color:var(--accent);font-weight:600}.app__logout:hover{color:var(--text-h)}.login{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login__card{background:var(--card);border:1px solid var(--border);border-radius:10px;flex-direction:column;width:100%;max-width:360px;padding:28px 26px;display:flex;box-shadow:0 8px 28px #00000014}.login__logo{align-self:center;width:auto;height:40px;margin-bottom:16px}.login__title{text-align:center;margin:0;font-size:18px;font-weight:600}.login__sub{color:var(--text);text-align:center;margin:4px 0 20px;font-size:13px}.login__field{flex-direction:column;gap:5px;margin-bottom:14px;display:flex}.login__field span{color:var(--text);font-size:12px;font-weight:600}.login__field input{border:1px solid var(--border);color:var(--text-h);border-radius:6px;padding:9px 11px;font-family:inherit;font-size:14px}.login__field input:focus{border-color:var(--accent);outline:none}.login__error{color:var(--error);background:var(--error-bg);border-radius:6px;margin:0 0 12px;padding:8px 10px;font-size:13px}.login__btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;margin-top:4px;padding:10px;font-family:inherit;font-size:14px;font-weight:600}.login__btn:disabled{opacity:.6;cursor:default}.admin__actions{gap:8px;display:flex}.admin__actions button,.admin__add{border:1px solid var(--border);background:var(--card);color:var(--text-h);cursor:pointer;border-radius:6px;padding:6px 12px;font-family:inherit;font-size:12px}.admin__actions button:disabled,.admin__add:disabled{opacity:.5;cursor:default}.admin__actions button.admin__delete{color:var(--error);border-color:var(--error)}.admin__add{background:var(--accent);color:#fff;border-color:var(--accent);align-self:flex-end;font-weight:600}.badge-on{color:#0a7d54;font-size:12px;font-weight:600}.badge-off{color:var(--error);font-size:12px;font-weight:600}.badge-pending{color:#b26b00;font-size:12px;font-weight:600}.cred-banner{background:#fff8e6;border:1px solid #f0c36d;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin-top:16px;padding:12px 16px;display:flex}.cred-banner__body{color:var(--text-h);flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;display:flex}.cred-banner__pw{letter-spacing:.04em;background:#fff;border:1px solid #e7d3a1;border-radius:6px;padding:3px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;font-weight:700}.cred-banner__note{color:var(--text);opacity:.85}.cred-banner__actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.cred-banner__sent{color:#0a7d54;font-size:12px;font-weight:600}.cred-banner__actions button{border:1px solid var(--border);background:var(--card);color:var(--text-h);cursor:pointer;border-radius:6px;padding:5px 12px;font-family:inherit;font-size:12px}.chat{background:var(--card);border-left:1px solid var(--border);z-index:50;flex-direction:column;width:380px;max-width:92vw;height:100vh;display:flex;position:fixed;top:0;right:0;box-shadow:-8px 0 24px #00000014}.chat__head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.chat__title{font-size:14px;font-weight:600}.chat__head-actions{align-items:center;gap:8px;display:flex}.chat__new{border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:6px;padding:4px 10px;font-family:inherit;font-size:12px}.chat__close{color:var(--text);cursor:pointer;background:0 0;border:none;font-size:22px;line-height:1}.chat__turn{flex-direction:column;gap:8px;display:flex}.chat__chart{border:1px solid var(--border);background:var(--card);border-radius:10px;padding:10px 12px 6px}.chat__chart-title{color:var(--text);margin-bottom:6px;font-size:12px;font-weight:600}.chat__meta{color:var(--text);opacity:.7;font-size:11px}.chat__body{flex-direction:column;flex:1;gap:10px;padding:16px;display:flex;overflow-y:auto}.chat__intro{color:var(--text);font-size:13px}.chat__suggestions{flex-direction:column;gap:8px;margin-top:12px;display:flex}.chat__chip{text-align:left;border:1px solid var(--border);background:var(--bg);color:var(--text-h);cursor:pointer;border-radius:8px;padding:8px 10px;font-family:inherit;font-size:13px}.chat__chip:hover{border-color:var(--accent)}.chat__msg{white-space:pre-wrap;word-break:break-word;border-radius:10px;max-width:88%;padding:9px 12px;font-size:13px;line-height:1.5}.chat__msg--user{background:var(--accent);color:#fff;border-bottom-right-radius:3px;align-self:flex-end}.chat__msg--assistant{background:var(--bg);border:1px solid var(--border);color:var(--text-h);border-bottom-left-radius:3px;align-self:flex-start;max-width:96%}.chat__markdown{white-space:normal}.chat__markdown>:first-child{margin-top:0}.chat__markdown>:last-child{margin-bottom:0}.chat__markdown p{margin:0 0 8px}.chat__markdown h1,.chat__markdown h2,.chat__markdown h3,.chat__markdown h4{color:var(--text-h);margin:12px 0 6px;font-size:13px;font-weight:700}.chat__markdown ul,.chat__markdown ol{margin:0 0 8px;padding-left:18px}.chat__markdown li{margin:2px 0}.chat__markdown hr{border:none;border-top:1px solid var(--border);margin:10px 0}.chat__markdown table{border-collapse:collapse;width:max-content;max-width:100%;margin:4px 0 10px;font-size:12px;display:block;overflow-x:auto}.chat__markdown th,.chat__markdown td{border:1px solid var(--border);text-align:left;white-space:nowrap;padding:4px 8px}.chat__markdown th{background:var(--bg-soft,#7f7f7f14);font-weight:600}.chat__markdown code{background:#7f7f7f26;border-radius:4px;padding:1px 4px;font-size:12px}.chat__markdown pre{background:#7f7f7f1f;border-radius:6px;margin:0 0 8px;padding:8px 10px;overflow-x:auto}.chat__markdown pre code{background:0 0;padding:0}.chat__typing{color:var(--text);font-style:italic}.chat__error{color:var(--error);background:var(--error-bg);border-radius:6px;padding:8px 10px;font-size:12px}.chat__input{border-top:1px solid var(--border);gap:8px;padding:12px;display:flex}.chat__input input{border:1px solid var(--border);border-radius:8px;flex:1;padding:9px 11px;font-family:inherit;font-size:13px}.chat__input input:focus{border-color:var(--accent);outline:none}.chat__input button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:0 16px;font-family:inherit;font-size:13px;font-weight:600}.chat__input button:disabled{opacity:.5;cursor:default}.tabs{border-bottom:1px solid var(--border);gap:20px;display:flex}.tab{color:var(--text);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 2px;font-family:inherit;font-size:14px}.tab--active{color:var(--accent);border-bottom:2px solid var(--accent);font-weight:600}.filter-bar{flex-wrap:wrap;gap:12px;margin-top:20px;margin-bottom:4px;display:flex}.filter{flex-direction:column;gap:4px;display:flex}.filter__label{color:var(--text);font-size:11px;font-weight:600}.filter__select{border:1px solid var(--border);background:var(--card);color:var(--text-h);border-radius:6px;min-width:130px;padding:6px 8px;font-size:13px}.drill-path{flex-wrap:wrap;align-items:center;gap:8px;min-height:28px;margin:10px 0 4px;display:flex}.drill-path__hint{color:var(--text);font-size:12px}.chip{border:1px solid var(--accent);color:#0b5cad;cursor:pointer;background:#eaf3fd;border-radius:14px;align-items:center;gap:6px;padding:4px 10px;font-family:inherit;font-size:12px;display:inline-flex}.chip__x{font-size:14px;line-height:1}.chip--clear{border-color:var(--border);background:var(--card);color:var(--text)}.panel-grid{grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;display:grid}.panel-grid .panel{margin-top:0}.panel-grid .panel--wide{grid-column:1/-1}@media (width<=720px){.panel-grid{grid-template-columns:1fr}}.section-title{color:var(--text);margin:28px 0 10px;font-size:14px;font-weight:600}.grid{gap:16px;display:grid}.grid--3{grid-template-columns:repeat(3,1fr);margin-top:20px}.grid--4{grid-template-columns:repeat(4,1fr)}.grid--5{grid-template-columns:repeat(5,1fr)}.kpi{background:var(--card);border:1px solid var(--border);border-top:3px solid var(--border);border-radius:8px;padding:14px 18px 16px;transition:box-shadow .15s,transform .15s;box-shadow:0 1px 2px #0000000a}.kpi:hover{transform:translateY(-2px);box-shadow:0 6px 16px #00000017}.kpi__label{color:var(--text);margin-bottom:8px;font-size:13px}.kpi__value{color:var(--text-h);font-size:32px;font-weight:700}.panel{background:var(--card);border:1px solid var(--border);border-radius:8px;margin-top:16px;padding:16px 18px;transition:box-shadow .15s;box-shadow:0 1px 2px #0000000a}.panel:hover{box-shadow:0 4px 14px #00000012}.panel__head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.panel__title{color:var(--text);font-size:13px;font-weight:600}.segmented{border:1px solid var(--border);border-radius:6px;display:inline-flex;overflow:hidden}.segmented button{background:var(--card);color:var(--text);cursor:pointer;border:none;padding:5px 12px;font-family:inherit;font-size:12px}.segmented button.on{background:var(--accent);color:#fff}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:13px}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 12px}.table th{color:var(--text);background:#f7f9fb;font-size:12px;font-weight:600}.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums}.table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.table th.sortable:hover{color:var(--text-h)}.sort-ind{color:var(--accent)}.table tbody tr:hover{background:#f7f9fb}.table a{color:var(--accent);text-decoration:none}.table a:hover{text-decoration:underline}.table-empty{color:var(--text);text-align:center;padding:18px}.paginator{color:var(--text);align-items:center;gap:12px;margin-top:12px;font-size:13px;display:flex}.paginator button{border:1px solid var(--border);background:var(--card);color:var(--text-h);cursor:pointer;border-radius:6px;padding:5px 12px;font-family:inherit;font-size:13px}.paginator button:disabled{opacity:.5;cursor:default}.error{color:var(--error);background:var(--error-bg);border-radius:6px;padding:10px 14px}.phase-note{color:var(--text);margin-top:28px;font-size:13px}@media (width<=1000px){.grid--5{grid-template-columns:repeat(3,1fr)}}@media (width<=720px){.grid--3,.grid--4,.grid--5{grid-template-columns:1fr 1fr}}
