:root{--color-background:#f3ede2;--color-background-secondary:#eae3d7;--color-surface:#ffffff;--color-surface-muted:#faf7f1;--color-border:#d8d1c7;--color-border-strong:#c3bbae;--color-text-primary:#2b2b2b;--color-text-secondary:#706d67;--color-success:#526b55;--color-warning:#a47c3c;--color-danger:#a34e43;--color-info:#647d8b;--color-success-soft:#e7ede6;--color-warning-soft:#f1e8d7;--color-danger-soft:#f1e0dc;--color-info-soft:#e3e9ec;--color-accent:#2b2b2b;--color-accent-contrast:#ffffff;--font-sans:var(--font-inter),ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-head:var(--font-bricolage),var(--font-sans);--font-mono:var(--font-plex-mono),ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;--fs-xs:11px;--fs-sm:12.5px;--fs-base:13.5px;--fs-md:15px;--fs-lg:17px;--fs-xl:20px;--fs-2xl:24px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--radius-sm:4px;--radius:6px;--radius-lg:8px;--shadow-sm:0 1px 2px rgba(43,43,43,0.05);--shadow:0 1px 3px rgba(43,43,43,0.08),0 1px 2px rgba(43,43,43,0.04);--shadow-lg:0 8px 28px rgba(43,43,43,0.14);--bg:var(--color-background);--bg-2:var(--color-background-secondary);--panel:var(--color-surface);--panel-2:var(--color-surface-muted);--border:var(--color-border);--text:var(--color-text-primary);--muted:var(--color-text-secondary);--accent:var(--color-accent);--accent-2:var(--color-info);--danger:var(--color-danger);--warn:var(--color-warning);--ok:var(--color-success);--radius-token:var(--radius)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--color-background);font-family:var(--font-sans);font-size:var(--fs-base);line-height:1.45;min-height:100vh;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body,h1,h2,h3,h4,html{color:var(--color-text-primary)}h1,h2,h3,h4{font-family:var(--font-head);font-weight:600;letter-spacing:-.01em}h2{font-size:var(--fs-xl);margin:0 0 var(--sp-3)}a{color:var(--color-info);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit}.mono,.tabular,code{font-family:var(--font-mono)}.encounter-date,.kpi .value,.tabular,table.dense td.num,table.dense th.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topnav{position:-webkit-sticky;position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:var(--sp-5);padding:0 var(--sp-6);height:52px;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.topnav .brand{font-family:var(--font-head);font-weight:700;letter-spacing:-.01em;margin-right:var(--sp-2);white-space:nowrap}.topnav .brand span{color:var(--color-text-secondary);font-weight:600}.topnav nav{display:flex;gap:2px;flex:1 1}.topnav nav a{display:inline-flex;align-items:center;gap:var(--sp-2);padding:6px 12px;border-radius:var(--radius);font-weight:500;font-size:var(--fs-base)}.topnav nav a,.topnav nav a svg{color:var(--color-text-secondary)}.topnav nav a svg{opacity:.85}.topnav nav a.active svg,.topnav nav a:hover svg{color:var(--color-text-primary);opacity:1}.topnav nav a:hover{text-decoration:none}.topnav nav a.active,.topnav nav a:hover{color:var(--color-text-primary);background:var(--color-background-secondary)}.topnav nav a.active{box-shadow:inset 0 -2px 0 var(--color-text-primary)}.topnav .user{display:flex;align-items:center;gap:var(--sp-3);color:var(--color-text-secondary);white-space:nowrap}.content{padding:var(--sp-5) var(--sp-6) var(--sp-8);width:100%;max-width:1920px;margin:0 auto}.toolbar{gap:var(--sp-4);margin-bottom:var(--sp-4);flex-wrap:wrap}.breadcrumbs,.toolbar{display:flex;align-items:center}.breadcrumbs{gap:6px;font-size:var(--fs-sm);color:var(--color-text-secondary)}.breadcrumbs button{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-primary);padding:4px 10px;border-radius:var(--radius-sm);cursor:pointer}.breadcrumbs button:hover{border-color:var(--color-border-strong)}.breadcrumbs .crumb-sep{opacity:.5}.breadcrumbs .crumb.active{color:var(--color-text-primary);font-weight:600;border-color:var(--color-border-strong)}.dash-grid{display:grid;grid-template-columns:7fr 3fr;grid-gap:var(--sp-4);gap:var(--sp-4);align-items:start}@media (max-width:1100px){.dash-grid{grid-template-columns:1fr}}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.panel .panel-head{display:flex;align-items:center;justify-content:space-between;padding:10px var(--sp-4);border-bottom:1px solid var(--color-border);font-weight:600;font-size:var(--fs-base)}.panel .panel-body{padding:var(--sp-4)}.analytics-col,.grid-col{display:flex;flex-direction:column;gap:var(--sp-4)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:var(--sp-3);gap:var(--sp-3)}.kpi{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--sp-3) var(--sp-4)}.kpi .label{color:var(--color-text-secondary);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em}.kpi .value{font-family:var(--font-mono);font-size:var(--fs-2xl);font-weight:600;margin-top:var(--sp-1);color:var(--color-text-primary)}.kpi-hint{font-size:var(--fs-xs);margin-top:2px}.kpi.clickable{display:block;text-align:left;width:100%;cursor:pointer;color:inherit;font:inherit;transition:border-color .12s ease,box-shadow .12s ease,background .12s ease}.kpi.clickable:hover{border-color:var(--color-text-secondary);box-shadow:var(--shadow-sm);text-decoration:none}.kpi.clickable.active{border-color:var(--color-text-primary);box-shadow:inset 0 -2px 0 var(--color-text-primary)}.kpi.tone-ok .value{color:var(--color-success)}.kpi.tone-warn .value{color:var(--color-warning)}.kpi.tone-danger .value{color:var(--color-danger)}.kpi.tone-info .value{color:var(--color-info)}.bi-grid-2{display:grid;grid-template-columns:2fr 1fr}.bi-grid-2.gap{gap:var(--sp-4)}@media (max-width:1100px){.bi-grid-2{grid-template-columns:1fr}}.panel-link{margin-left:auto;font-size:var(--fs-sm);color:var(--color-info);font-weight:500}.panel-link:hover{text-decoration:underline}.p360-view-toggle{display:inline-flex;gap:var(--sp-2);margin-left:auto}.chat-panel{display:flex;flex-direction:column;height:calc(100vh - 220px);min-height:420px}.chat-thread{flex:1 1;overflow-y:auto;padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2);background:var(--color-background)}.chat-bubble{max-width:78%;padding:7px 11px;border-radius:var(--radius-lg);font-size:var(--fs-sm);box-shadow:var(--shadow-sm)}.chat-bubble.in{align-self:flex-start;background:var(--color-surface);border:1px solid var(--color-border);border-bottom-left-radius:2px}.chat-bubble.out{align-self:flex-end;background:var(--color-success-soft);border:1px solid var(--color-success-soft);border-bottom-right-radius:2px}.chat-body{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--color-text-primary)}.chat-meta{margin-top:3px;display:flex;gap:5px;font-size:var(--fs-xs);color:var(--color-text-secondary)}.chat-status-fail{color:var(--color-danger)}.chat-compose{border-top:1px solid var(--color-border);padding:var(--sp-3);background:var(--color-surface)}.chat-compose-row{display:flex;gap:var(--sp-2);align-items:flex-end}.chat-input{flex:1 1;resize:vertical;border:1px solid var(--color-border-strong);border-radius:var(--radius);padding:7px 10px;font-family:var(--font-sans);font-size:var(--fs-sm);background:var(--color-surface);color:var(--color-text-primary)}.chat-input:focus-visible{outline:2px solid var(--color-info);outline-offset:1px}.chat-send-error{color:var(--color-danger);font-size:var(--fs-sm);margin-bottom:var(--sp-2)}.chat-hint{font-size:var(--fs-xs);margin-top:6px}.modal-backdrop{position:fixed;inset:0;background:rgba(43,43,43,.4);display:flex;align-items:flex-start;justify-content:center;padding:5vh var(--sp-4);z-index:100;overflow-y:auto}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:640px}.campaign-modal{max-width:720px}.modal-foot,.modal-head{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4)}.modal-head h3{margin:0;font-family:var(--font-head)}.modal-head .btn{margin-left:auto}.modal-foot{border-top:1px solid var(--color-border);justify-content:flex-end}.modal-body{padding:var(--sp-4);max-height:70vh;overflow-y:auto}.modal-error{padding:0 var(--sp-4) var(--sp-2)}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--sp-3);gap:var(--sp-3)}.form-grid .span-2{grid-column:1/-1}.field{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-sm)}.field>span{color:var(--color-text-secondary);font-weight:500}.channel-block{border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--sp-3);background:var(--color-surface-muted)}.channel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.tpl-params{margin-top:var(--sp-2);display:flex;flex-direction:column;gap:6px}.creative-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));grid-gap:var(--sp-2);gap:var(--sp-2)}.creative-tile{display:flex;flex-direction:column;gap:4px;border:1px solid var(--color-border);border-radius:var(--radius);padding:4px;text-decoration:none;color:var(--color-text-primary)}.creative-tile img{width:100%;object-fit:cover}.creative-file,.creative-tile img{height:72px;border-radius:var(--radius-sm)}.creative-file{display:flex;align-items:center;justify-content:center;background:var(--color-background-secondary);font-family:var(--font-mono);color:var(--color-text-secondary)}.creative-name{font-size:var(--fs-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wa-body{display:inline-block;max-width:460px;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.dense-wrap{max-height:72vh;overflow:auto;border-radius:var(--radius-lg)}table.dense{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:var(--fs-sm);background:var(--color-surface)}table.dense td,table.dense th{padding:6px 12px;border-bottom:1px solid var(--color-border);white-space:nowrap;text-align:left}table.dense thead th{position:-webkit-sticky;position:sticky;top:0;z-index:3;background:var(--color-surface-muted);color:var(--color-text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:var(--fs-xs);border-bottom:1px solid var(--color-border-strong)}table.dense td.sticky-col,table.dense th.sticky-col{position:-webkit-sticky;position:sticky;left:0;z-index:2;background:var(--color-surface);font-family:var(--font-mono);font-size:var(--fs-xs)}table.dense thead th.sticky-col{z-index:4}table.dense tbody tr:nth-child(2n) td,table.dense thead th.sticky-col{background:var(--color-surface-muted)}table.dense tbody tr:hover td{background:var(--color-background-secondary)}.btn,table.dense tbody tr.clickable{cursor:pointer}.btn{display:inline-flex;align-items:center;gap:var(--sp-2);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text-primary);padding:6px 12px;border-radius:var(--radius);font-weight:500;font-size:var(--fs-base);transition:background .12s ease,border-color .12s ease}.btn:hover{background:var(--color-background-secondary);border-color:var(--color-text-secondary)}.btn:focus-visible{outline:2px solid var(--color-info);outline-offset:1px}.btn.primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast);font-weight:600}.btn.primary:hover{background:#1b1b1b;border-color:#1b1b1b}.btn.danger{background:transparent;border-color:var(--color-danger);color:var(--color-danger)}.btn.danger:hover{background:var(--color-danger-soft)}.btn.ok{background:transparent;border-color:var(--color-success);color:var(--color-success)}.btn.ok:hover{background:var(--color-success-soft)}.btn:disabled{opacity:.45;cursor:not-allowed}.badge{display:inline-block;padding:1px 8px;border-radius:var(--radius-sm);font-size:var(--fs-xs);font-weight:600;border:1px solid var(--color-border-strong);color:var(--color-text-secondary);background:var(--color-surface-muted)}.badge.on{color:var(--color-success);border-color:var(--color-success);background:var(--color-success-soft)}.badge.off{color:var(--color-danger);border-color:var(--color-danger);background:var(--color-danger-soft)}.badge.perm{color:var(--color-info);border-color:var(--color-info);background:var(--color-info-soft);margin:1px 2px;font-family:var(--font-mono);font-weight:500}.field{width:100%;padding:8px 11px;border-radius:var(--radius);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--fs-md);font-family:inherit}.field::placeholder{color:var(--color-text-secondary);opacity:.7}.field:focus{outline:none;border-color:var(--color-info);box-shadow:0 0 0 3px var(--color-info-soft)}.select{padding:6px 10px;border-radius:var(--radius);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text-primary);font-family:inherit;font-size:var(--fs-base)}.select:focus{outline:none;border-color:var(--color-info)}.muted{color:var(--color-text-secondary)}.chart-box{width:100%;height:300px}.chart-box.short{height:240px}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:var(--sp-6);background:var(--color-background)}.auth-card{width:100%;max-width:400px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--sp-8)}.auth-card h1{margin:0 0 var(--sp-1);font-size:var(--fs-2xl)}.auth-card p.sub{margin:0 0 var(--sp-5);color:var(--color-text-secondary)}.auth-card label{display:block;margin:var(--sp-4) 0 6px;font-weight:600;font-size:var(--fs-sm)}.auth-error{color:var(--color-danger);margin-top:var(--sp-3);font-size:var(--fs-sm)}.auth-note{color:var(--color-text-secondary);margin-top:var(--sp-4);font-size:var(--fs-xs)}.center-screen{min-height:100vh;display:grid;place-items:center;text-align:center;padding:var(--sp-6);background:var(--color-background)}.spinner{width:16px;height:16px;border:2px solid var(--color-border);border-top-color:var(--color-info);border-radius:50%;display:inline-block;animation:spin .7s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(1turn)}}.datagrid{display:flex;flex-direction:column;gap:var(--sp-3)}.datagrid-toolbar{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap}.grid-search{max-width:280px;padding:6px 11px;font-size:var(--fs-base)}.datagrid-pager{display:flex;align-items:center;gap:var(--sp-2)}.col-chooser{position:absolute;right:0;top:34px;z-index:60;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:var(--sp-2);max-height:340px;overflow:auto;min-width:220px}.col-chooser-item{display:flex;align-items:center;gap:var(--sp-2);padding:4px 6px;font-size:var(--fs-sm);white-space:nowrap}.col-chooser-item:hover{background:var(--color-background-secondary);border-radius:var(--radius-sm)}.fk-cell{color:var(--color-info);cursor:pointer;font-family:var(--font-mono)}.fk-cell:hover{text-decoration:underline}.scope-banner{background:var(--color-info-soft);border:1px solid var(--color-border);border-left:3px solid var(--color-info);border-radius:var(--radius);padding:8px 12px;margin-bottom:var(--sp-3);font-size:var(--fs-sm)}.data-index{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:var(--sp-4);gap:var(--sp-4)}.data-index-links{display:flex;flex-direction:column;gap:6px}.data-index-link{padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-primary)}.data-index-link:hover{border-color:var(--color-border-strong);background:var(--color-background-secondary);text-decoration:none}.ag-theme-pristine{--ag-background-color:var(--color-surface);--ag-foreground-color:var(--color-text-primary);--ag-header-background-color:var(--color-surface-muted);--ag-header-foreground-color:var(--color-text-secondary);--ag-border-color:var(--color-border);--ag-row-border-color:var(--color-border);--ag-odd-row-background-color:var(--color-surface-muted);--ag-row-hover-color:var(--color-background-secondary);--ag-selected-row-background-color:var(--color-info-soft);--ag-font-size:12.5px;--ag-font-family:var(--font-sans);--ag-header-column-resize-handle-color:var(--color-border-strong);--ag-input-focus-border-color:var(--color-info);--ag-header-cell-hover-background-color:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.ag-theme-pristine .ag-header-cell-text{text-transform:uppercase;letter-spacing:.04em;font-size:var(--fs-xs)}.modal-overlay{position:fixed;inset:0;background:rgba(43,43,43,.4);display:grid;place-items:center;z-index:100;padding:var(--sp-6)}.modal-panel{width:75vw;max-width:1400px;max-height:86vh;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--color-border);background:var(--color-surface-muted)}.modal-title{font-family:var(--font-head);font-size:var(--fs-lg);font-weight:600}.modal-body{padding:var(--sp-5);overflow:auto}.record-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:var(--sp-3) var(--sp-6);gap:var(--sp-3) var(--sp-6)}.record-field{border-bottom:1px solid var(--color-border);padding-bottom:var(--sp-2)}.record-label{color:var(--color-text-secondary);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em}.record-value{margin-top:3px;word-break:break-word}.record-value.mono{font-size:var(--fs-sm);white-space:pre-wrap}.fk-link,.record-value.mono{font-family:var(--font-mono)}.fk-link{color:var(--color-info);cursor:pointer}.fk-link:hover{text-decoration:underline}.p360-grid{display:grid;grid-template-columns:320px 1fr;grid-gap:var(--sp-4);gap:var(--sp-4);align-items:start}@media (max-width:1000px){.p360-grid{grid-template-columns:1fr}}.p360-rail{display:flex;flex-direction:column;gap:var(--sp-3);position:-webkit-sticky;position:sticky;top:68px}.p360-name{font-family:var(--font-head);font-size:var(--fs-xl);font-weight:600}.p360-tags{display:flex;gap:6px;margin:var(--sp-3) 0;flex-wrap:wrap}.p360-facts{display:grid;grid-template-columns:auto 1fr;grid-gap:4px 12px;gap:4px 12px;margin:var(--sp-2) 0 0;font-size:var(--fs-sm)}.p360-facts dt{color:var(--color-text-secondary)}.p360-facts dd{margin:0;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.p360-summary{display:grid;grid-template-columns:repeat(4,1fr);text-align:center;grid-gap:var(--sp-2);gap:var(--sp-2)}.p360-summary div{display:flex;flex-direction:column}.p360-summary b{font-family:var(--font-mono);font-size:var(--fs-xl);font-weight:600}.p360-summary span{color:var(--color-text-secondary);font-size:var(--fs-xs)}.timeline{display:flex;flex-direction:column}.encounter{border-left:2px solid var(--color-border);margin-left:var(--sp-2)}.encounter.open{border-left-color:var(--color-text-primary)}.encounter-head{display:flex;align-items:center;gap:var(--sp-3);width:100%;background:transparent;border:none;color:var(--color-text-primary);text-align:left;padding:10px var(--sp-2) 10px 18px;cursor:pointer;position:relative}.encounter-head:hover{background:var(--color-background-secondary)}.encounter-dot{position:absolute;left:-7px;width:11px;height:11px;border-radius:50%;background:var(--color-surface);border:2px solid var(--color-text-secondary)}.encounter.open .encounter-dot{border-color:var(--color-text-primary);background:var(--color-text-primary)}.encounter-date{font-family:var(--font-mono);font-weight:500;min-width:92px;font-size:var(--fs-sm)}.encounter-main{flex:1 1}.encounter-title{font-weight:600}.encounter-chips{display:flex;gap:4px;flex-wrap:wrap;max-width:320px;justify-content:flex-end}.encounter-toggle{color:var(--color-text-secondary);width:16px}.encounter-body{padding:4px var(--sp-2) var(--sp-4) 18px;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:var(--sp-3);gap:var(--sp-3)}.enc-section{background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius);padding:10px 12px;min-width:0;overflow-wrap:anywhere;word-break:break-word}.enc-section-title{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);margin-bottom:6px;font-weight:600}.enc-section .line{font-size:var(--fs-sm);padding:2px 0;min-width:0;overflow-wrap:anywhere;word-break:break-word}.encounter-links{grid-column:1/-1;display:flex;gap:var(--sp-4);font-size:var(--fs-sm)}.enc-section.wide{grid-column:1/-1}.rx-block+.rx-block{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px dashed var(--color-border)}.rx-heading{font-size:var(--fs-sm);font-weight:600;color:var(--color-text-primary);margin-bottom:4px}.rx-scroll{overflow-x:auto;max-width:100%}.rx-table{border-collapse:collapse;font-size:var(--fs-sm);min-width:max-content}.rx-table td,.rx-table th{border:1px solid var(--color-border);padding:3px 10px;text-align:center;white-space:nowrap}.rx-table thead th{background:var(--color-background-secondary);color:var(--color-text-secondary);font-weight:600;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em}.rx-table .rx-eye-col{background:var(--color-surface-muted);font-weight:600;text-align:left}.rx-table .rx-eye-col,.rx-table tbody td{color:var(--color-text-primary)}.line{padding:2px 0}.tip-card .panel-body,.tip-list{display:flex;flex-direction:column;gap:var(--sp-3)}.tip-context{font-size:var(--fs-sm);background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius);padding:8px 10px;color:var(--color-text-secondary)}.tip-text{width:100%;font-size:var(--fs-base);resize:vertical}.tip-text-view{background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius);padding:10px 12px;white-space:pre-wrap}.tip-actions{display:flex;gap:var(--sp-2)}.tip-track{font-size:var(--fs-xs)}.fld-label{display:block;margin:var(--sp-3) 0 5px;font-weight:600;font-size:var(--fs-sm)}.role-picker{display:flex;flex-wrap:wrap;gap:var(--sp-2);background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius);padding:10px}.role-item{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);padding:4px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;background:var(--color-surface)}.role-item:hover{border-color:var(--color-border-strong)}.dash-controls{display:flex;align-items:center;gap:var(--sp-2);margin-left:auto;flex-wrap:wrap}.dash-controls .save-state{font-size:var(--fs-xs);margin-right:var(--sp-2);white-space:nowrap}.dash-rgl{position:relative}.dash-item{display:flex}.dash-item>*{width:100%}.grid-panel{display:flex;flex-direction:column;height:100%;overflow:hidden}.grid-panel .grid-panel-body{flex:1 1;min-height:0;padding:var(--sp-3);display:flex;flex-direction:column}.grid-panel-body>.chart-box,.grid-panel-body>.chart-box.short{height:100%;flex:1 1;min-height:0}.grid-panel-body>.ranked-wrap{flex:1 1;min-height:0;overflow:auto}.kpi-panel{padding:0}.kpi-strip-head{display:flex;align-items:center;gap:var(--sp-2);padding:8px var(--sp-4);border-bottom:1px solid var(--color-border);font-size:var(--fs-sm)}.kpis-embedded{padding:var(--sp-3);overflow:auto;flex:1 1;min-height:0;margin:0}.dash-rgl.editing .grid-panel{outline:1px dashed var(--color-info);outline-offset:-1px}.drag-handle{cursor:move}.drag-grip{color:var(--color-text-secondary);letter-spacing:1px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.dash-rgl .react-grid-placeholder{background:var(--color-info)!important;opacity:.18;border-radius:var(--radius-lg)}.dash-rgl .react-resizable-handle{z-index:3}.dash-rgl.editing .react-resizable-handle:after{border-right-color:var(--color-text-secondary);border-bottom-color:var(--color-text-secondary)}.ranked-wrap{position:relative;height:100%;display:flex;flex-direction:column}.ranked-viewall{align-self:flex-end;margin-top:4px;background:none;border:none;color:var(--color-info);font-size:var(--fs-xs);font-weight:500;cursor:pointer;padding:2px 4px}.ranked-viewall:hover{text-decoration:underline}.ranked-modal{max-width:820px;width:100%}.ranked-modal .modal-head{gap:var(--sp-2)}.ranked-modal .modal-head h3{margin:0 auto 0 0;font-family:var(--font-head)}.ranked-modal-body{max-height:78vh}.ranked-modal-body .chart-box{height:auto}.ranked-table{width:100%;border-collapse:collapse;margin-top:var(--sp-4);font-size:var(--fs-sm)}.ranked-table td,.ranked-table th{border-bottom:1px solid var(--color-border);padding:5px 10px;text-align:left}.ranked-table th{color:var(--color-text-secondary);font-weight:600;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em}.ranked-table .rank-col{width:40px;color:var(--color-text-secondary);text-align:right;font-family:var(--font-mono)}.ranked-table td.num,.ranked-table th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ranked-table tbody tr:hover{background:var(--color-surface-muted)}.reminder-modal{width:70vw;max-width:1100px}.reminder-modal-body{display:flex;flex-direction:column;gap:var(--sp-4)}.rd-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--sp-4);gap:var(--sp-4)}@media (max-width:900px){.rd-grid{grid-template-columns:1fr}}.accordion-head{width:100%;background:none;border:none;border-bottom:1px solid var(--color-border);cursor:pointer;font:inherit;font-weight:600;text-align:left;display:flex;align-items:center;justify-content:space-between}.accordion-caret{color:var(--color-text-secondary)}.rd-chat{display:flex;flex-direction:column}.rd-thread{max-height:320px;min-height:120px}.insight-headline{border-left:3px solid var(--color-info)}.insight-head-line{font-family:var(--font-head);font-size:var(--fs-lg);font-weight:700;color:var(--color-text-primary)}.insight-summary{margin:6px 0 0;color:var(--color-text-secondary)}.insight-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:var(--fs-sm)}.insight-list.ok-list li::marker{color:var(--color-success)}.insight-actions{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:var(--sp-3)}.insight-action-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.insight-action-text{font-weight:600}.insight-badges{display:inline-flex;gap:4px;white-space:nowrap}.insight-why{font-size:var(--fs-sm);margin-top:2px}.insight-problems{display:flex;flex-direction:column;gap:var(--sp-3)}.insight-problem{border:1px solid var(--color-border);border-left:3px solid var(--color-danger);border-radius:var(--radius);padding:10px 12px;background:var(--color-surface-muted)}.insight-problem-issue{font-weight:600;margin-bottom:4px}.insight-problem-ev,.insight-problem-impact{font-size:var(--fs-sm);margin-top:2px}.ask-panel{margin-bottom:16px}.ask-thread{display:flex;flex-direction:column;gap:var(--sp-3);max-height:46vh;overflow-y:auto}.ask-empty{font-size:var(--fs-sm)}.ask-suggestions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-2)}.ask-chip{border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text-primary);border-radius:999px;padding:4px 12px;font-size:var(--fs-sm);cursor:pointer}.ask-chip:hover{background:var(--color-background-secondary);border-color:var(--color-text-secondary)}.ask-bubble{border-radius:var(--radius);padding:8px 12px;max-width:100%}.ask-bubble.user{align-self:flex-end;background:var(--color-info-soft);border:1px solid var(--color-info-soft);max-width:80%}.ask-bubble.assistant{align-self:flex-start;background:var(--color-surface-muted);border:1px solid var(--color-border);max-width:92%}.ask-role{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);margin-bottom:3px}.ask-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--fs-sm);line-height:1.5}.ask-compose{display:flex;gap:var(--sp-2);margin-top:var(--sp-3)}.ask-input{flex:1 1}.ask-hint{font-size:var(--fs-xs);margin-top:6px}.insight-json{margin:0;max-height:420px;overflow:auto;font-family:var(--font-mono);font-size:var(--fs-xs);background:var(--color-background-secondary);padding:var(--sp-3);border-radius:var(--radius);white-space:pre-wrap;word-break:break-word}