:root{--navy: #0c2344;--navy-lift: #16345e;--gold: #c89614;--gold-lift: #e0ac25;--whatsapp: #25d366;--bg: #0a0c10;--surface: #0e1116;--surface-2: #141821;--surface-3: #1a1f2a;--overlay: rgba(4, 6, 10, .72);--ink: #f2f4f7;--text: #c8cdd6;--text-2: #a9b0ba;--text-3: #767d88;--inverse: #0a0c10;--border: #1c2027;--border-2: #272d38;--separator: #171b22;--focus: #3987e5;--success: #0ca30c;--success-s: rgba(12, 163, 12, .12);--warning: #fab219;--warning-s: rgba(250, 178, 25, .12);--serious: #ec835a;--serious-s: rgba(236, 131, 90, .12);--critical: #d03b3b;--critical-s: rgba(208, 59, 59, .12);--info: #3987e5;--info-s: rgba(57, 135, 229, .12);--tag-purple: #9085e9;--r-xs: 6px;--r-sm: 8px;--r: 12px;--r-lg: 16px;--r-pill: 999px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--shadow-1: 0 1px 2px rgba(0, 0, 0, .3), 0 1px 3px rgba(0, 0, 0, .2);--shadow-2: 0 4px 16px rgba(0, 0, 0, .4), 0 2px 6px rgba(0, 0, 0, .25);--shadow-3: 0 16px 48px rgba(0, 0, 0, .55);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: "SF Mono", ui-monospace, "JetBrains Mono", Menlo, Consolas, monospace;--rail-w: 244px;--header-h: 56px;color-scheme:dark}[data-theme=light]{--bg: #f4f6f8;--surface: #fafbfc;--surface-2: #f0f2f5;--surface-3: #e7eaee;--overlay: rgba(12, 35, 68, .35);--ink: #0b0b0b;--text: #33383f;--text-2: #52514e;--text-3: #898781;--inverse: #ffffff;--border: #e2e6ea;--border-2: #d2d8de;--separator: #edf0f3;--success-s: rgba(12, 163, 12, .1);--warning-s: rgba(250, 178, 25, .14);--serious-s: rgba(236, 131, 90, .12);--critical-s: rgba(208, 59, 59, .1);--info-s: rgba(57, 135, 229, .1);--tag-purple: #4a3aa7;--shadow-1: 0 1px 2px rgba(12, 35, 68, .04), 0 1px 3px rgba(12, 35, 68, .06);--shadow-2: 0 4px 12px rgba(12, 35, 68, .07), 0 2px 4px rgba(12, 35, 68, .04);--shadow-3: 0 16px 48px rgba(12, 35, 68, .16);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);font-size:14px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0;color:var(--ink);font-weight:600;letter-spacing:-.01em}h1{font-size:20px}h2{font-size:16px}h3{font-size:14px}h4{font-size:13px}p{margin:0 0 var(--sp-3)}a{color:var(--focus);text-decoration:none}a:hover{text-decoration:underline}code,pre,.mono{font-family:var(--mono);font-size:12px}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-xs)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:var(--r-pill);border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--text-3);background-clip:content-box}.app{display:grid;grid-template-columns:var(--rail-w) minmax(0,1fr);min-height:100%}.app.collapsed{--rail-w: 64px}.rail{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-4) var(--sp-3);background:var(--surface);border-right:1px solid var(--border);overflow-y:auto}.brand{display:flex;align-items:center;padding:var(--sp-1) var(--sp-2) var(--sp-5)}.brand:hover{text-decoration:none}.logo{width:116px;height:auto;color:var(--ink);display:block}.app.collapsed .logo{display:none}.nav{display:flex;flex-direction:column;gap:1px}.nav-group{margin-top:var(--sp-4)}.nav-group-label{padding:0 var(--sp-2) var(--sp-2);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3)}.nav-item{display:flex;align-items:center;gap:10px;padding:7px var(--sp-2);border-radius:var(--r-sm);color:var(--text-2);font-size:13px;font-weight:500;background:none;border:0;width:100%;text-align:left;cursor:pointer;transition:background .12s,color .12s}.nav-item:hover{background:var(--surface-2);color:var(--ink);text-decoration:none}.nav-item.active{background:var(--surface-3);color:var(--ink);font-weight:600}.nav-item.active{box-shadow:inset 2px 0 0 var(--gold)}.nav-item .icon{flex:none;width:16px;height:16px;opacity:.85}.nav-item .count{margin-left:auto;font-size:11px;color:var(--text-3);font-variant-numeric:tabular-nums}.rail-footer{margin-top:auto;padding-top:var(--sp-4);border-top:1px solid var(--separator)}.main{display:flex;flex-direction:column;min-width:0}.header{position:sticky;top:0;z-index:20;height:var(--header-h);flex:none;display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-5);background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.header .title{font-size:15px;font-weight:600;color:var(--ink)}.header .spacer{flex:1}.page{padding:var(--sp-5);min-width:0}.page-head{display:flex;align-items:flex-start;gap:var(--sp-4);margin-bottom:var(--sp-5)}.page-head .sub{color:var(--text-3);font-size:13px;margin-top:2px}.page-actions{margin-left:auto;display:flex;gap:var(--sp-2);flex:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:var(--sp-4)}.card.flush{padding:0;overflow:hidden}.card-head{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4);border-bottom:1px solid var(--separator)}.card-head h3{flex:1}.card-body{padding:var(--sp-4)}.card-foot{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--separator);background:var(--surface-2)}.grid{display:grid;gap:var(--sp-4)}.grid.c2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.grid.c3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.grid.c4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:var(--sp-4)}.stat .label{font-size:12px;color:var(--text-3);font-weight:500}.stat .value{margin-top:var(--sp-2);font-size:26px;font-weight:650;color:var(--ink);letter-spacing:-.02em;line-height:1.1}.stat .value .unit{font-size:14px;font-weight:500;color:var(--text-3);margin-left:3px}.stat .delta{margin-top:var(--sp-2);font-size:12px;display:flex;align-items:center;gap:4px}.stat .delta.up{color:var(--success)}.stat .delta.down{color:var(--critical)}.stat .delta.flat{color:var(--text-3)}.stat .spark{margin-top:var(--sp-3);height:32px}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data th{text-align:left;font-weight:600;font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:var(--text-3);padding:var(--sp-3) var(--sp-3);border-bottom:1px solid var(--border);white-space:nowrap;position:sticky;top:0;background:var(--surface);z-index:1}table.data th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}table.data th.sortable:hover{color:var(--text)}table.data td{padding:var(--sp-3);border-bottom:1px solid var(--separator);vertical-align:middle}table.data tbody tr:hover{background:var(--surface-2)}table.data tbody tr.selected{background:var(--info-s)}table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}table.data td.actions{text-align:right;white-space:nowrap}table.data .muted{color:var(--text-3)}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:var(--r-pill);font-size:11px;font-weight:600;line-height:1.6;background:var(--surface-3);color:var(--text-2);border:1px solid var(--border-2);white-space:nowrap}.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.badge.good{background:var(--success-s);color:var(--success);border-color:transparent}.badge.warning{background:var(--warning-s);color:var(--warning);border-color:transparent}.badge.serious{background:var(--serious-s);color:var(--serious);border-color:transparent}.badge.critical{background:var(--critical-s);color:var(--critical);border-color:transparent}.badge.info{background:var(--info-s);color:var(--info);border-color:transparent}.badge.brand{background:#c8961424;color:var(--gold-lift);border-color:transparent}.badge.channel{background:#25d3661f;color:var(--whatsapp);border-color:transparent}.tag{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:var(--r-xs);font-size:11px;font-weight:500;background:var(--surface-3);color:var(--text-2);border:1px solid var(--border-2)}.tag button{background:none;border:0;color:inherit;cursor:pointer;padding:0;opacity:.6}.tag button:hover{opacity:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 var(--sp-3);border-radius:var(--r-sm);border:1px solid var(--border-2);background:var(--surface-2);color:var(--text);font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s,opacity .12s}.btn:hover{background:var(--surface-3);color:var(--ink)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--gold);border-color:var(--gold);color:#1a1400;font-weight:600}.btn.primary:hover{background:var(--gold-lift);border-color:var(--gold-lift)}.btn.danger{background:transparent;border-color:var(--critical);color:var(--critical)}.btn.danger:hover{background:var(--critical-s)}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-2)}.btn.ghost:hover{background:var(--surface-2);color:var(--ink)}.btn.sm{height:26px;padding:0 var(--sp-2);font-size:12px}.btn.lg{height:38px;padding:0 var(--sp-4);font-size:14px}.btn.icon{width:32px;padding:0}.btn.icon.sm{width:26px}.btn.block{width:100%}.btn-group{display:inline-flex}.btn-group .btn{border-radius:0;margin-left:-1px}.btn-group .btn:first-child{border-radius:var(--r-sm) 0 0 var(--r-sm);margin-left:0}.btn-group .btn:last-child{border-radius:0 var(--r-sm) var(--r-sm) 0}.btn-group .btn.active{background:var(--surface-3);color:var(--ink);z-index:1}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--sp-4)}.field>label{font-size:12px;font-weight:600;color:var(--text-2)}.field .hint{font-size:12px;color:var(--text-3)}.field .error{font-size:12px;color:var(--critical)}.field.invalid input,.field.invalid textarea,.field.invalid select{border-color:var(--critical)}input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input[type=tel],input[type=url],input[type=date],input[type=datetime-local],textarea,select{width:100%;min-height:32px;padding:6px 10px;border-radius:var(--r-sm);border:1px solid var(--border-2);background:var(--surface-2);color:var(--ink);font-family:inherit;font-size:13px;transition:border-color .12s}input:hover,textarea:hover,select:hover{border-color:var(--text-3)}input:focus,textarea:focus,select:focus{border-color:var(--focus);outline:none}input::placeholder,textarea::placeholder{color:var(--text-3)}input:disabled,textarea:disabled,select:disabled{opacity:.5;cursor:not-allowed}textarea{min-height:84px;resize:vertical;line-height:1.55}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:28px;background-image:none;cursor:pointer}.check{display:flex;align-items:center;gap:var(--sp-2);font-size:13px;cursor:pointer}.check input{width:15px;height:15px;min-height:0;accent-color:var(--gold);cursor:pointer}.switch{position:relative;width:36px;height:20px;flex:none}.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.switch .slot{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--r-pill);background:var(--surface-3);border:1px solid var(--border-2);transition:background .15s;pointer-events:none}.switch .knob{position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:var(--text-2);transition:transform .15s,background .15s;pointer-events:none}.switch input:checked~.slot{background:var(--gold);border-color:var(--gold)}.switch input:checked~.knob{transform:translate(16px);background:#1a1400}.toolbar{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-4)}.toolbar .grow{flex:1;min-width:160px}.search{position:relative}.search input{padding-left:30px}.search .icon{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--text-3);pointer-events:none}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:var(--overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;padding:var(--sp-5)}.dialog{width:min(560px,100%);max-height:calc(100vh - 96px);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-lg);box-shadow:var(--shadow-3)}.dialog.wide{width:min(880px,100%)}.dialog.full{width:min(1200px,100%);height:calc(100vh - 96px)}.dialog-head{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--separator)}.dialog-head h2{flex:1}.dialog-body{padding:var(--sp-5);overflow-y:auto;flex:1}.dialog-foot{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--separator)}.drawer{position:fixed;top:0;right:0;bottom:0;z-index:100;width:min(520px,100%);display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--border-2);box-shadow:var(--shadow-3)}.menu{min-width:180px;padding:var(--sp-1);background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--r-sm);box-shadow:var(--shadow-2)}.menu button{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:6px var(--sp-2);border:0;border-radius:var(--r-xs);background:none;color:var(--text);font-family:inherit;font-size:13px;text-align:left;cursor:pointer}.menu button:hover{background:var(--surface-3);color:var(--ink)}.menu button.danger{color:var(--critical)}.menu .sep{height:1px;margin:var(--sp-1) 0;background:var(--separator)}.tabs{display:flex;gap:var(--sp-1);border-bottom:1px solid var(--border);margin-bottom:var(--sp-4)}.tab{padding:8px var(--sp-3);margin-bottom:-1px;border:0;border-bottom:2px solid transparent;background:none;color:var(--text-3);font-family:inherit;font-size:13px;font-weight:500;cursor:pointer}.tab:hover{color:var(--text)}.tab.active{color:var(--ink);border-bottom-color:var(--gold);font-weight:600}.chat{display:grid;grid-template-columns:320px minmax(0,1fr) 300px;height:calc(100vh - var(--header-h))}.chat.no-panel{grid-template-columns:320px minmax(0,1fr)}.thread-list{border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0;background:var(--surface)}.thread-list .scroll{overflow-y:auto;flex:1}.thread{display:flex;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--separator);cursor:pointer;border-left:2px solid transparent}.thread:hover{background:var(--surface-2)}.thread.active{background:var(--surface-2);border-left-color:var(--gold)}.thread .avatar{flex:none;width:34px;height:34px;border-radius:50%;background:var(--surface-3);color:var(--text-2);display:grid;place-items:center;font-size:12px;font-weight:600}.thread .meta{min-width:0;flex:1}.thread .name{font-weight:600;color:var(--ink);font-size:13px}.thread .preview{color:var(--text-3);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thread .when{font-size:11px;color:var(--text-3);white-space:nowrap}.thread .unread{min-width:18px;height:18px;padding:0 5px;border-radius:var(--r-pill);background:var(--gold);color:#1a1400;font-size:11px;font-weight:700;display:grid;place-items:center}.conversation{display:flex;flex-direction:column;min-height:0}.conversation .scroll{flex:1;overflow-y:auto;padding:var(--sp-4) var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-2)}.bubble{max-width:min(620px,78%);padding:8px 12px;border-radius:var(--r);font-size:13px;line-height:1.5;word-break:break-word;position:relative}.bubble.inbound{align-self:flex-start;background:var(--surface-2);border:1px solid var(--border);border-bottom-left-radius:var(--r-xs)}.bubble.outbound{align-self:flex-end;background:var(--navy-lift);color:#eef2f8;border-bottom-right-radius:var(--r-xs)}.bubble.bot{align-self:flex-end;background:var(--surface-3);border:1px solid var(--border-2);box-shadow:inset 2px 0 0 var(--gold)}.bubble .when{display:block;margin-top:4px;font-size:10px;opacity:.6;text-align:right}.bubble .status{margin-left:4px}.bubble .status.read{color:var(--info)}.bubble .status.failed{color:var(--critical)}.bubble .media{max-width:100%;border-radius:var(--r-sm);display:block}.day-sep{align-self:center;margin:var(--sp-3) 0;padding:2px 10px;border-radius:var(--r-pill);background:var(--surface-3);color:var(--text-3);font-size:11px}.composer{flex:none;padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border);background:var(--surface)}.composer .row{display:flex;gap:var(--sp-2);align-items:flex-end}.composer textarea{min-height:36px;max-height:160px}.composer .window-closed{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-2);border-radius:var(--r-sm);background:var(--warning-s);color:var(--warning);font-size:12px}.thread{color:inherit;text-decoration:none}.thread:hover{text-decoration:none}.thread .top{display:flex;align-items:baseline;gap:var(--sp-2)}.thread .top .name{flex:1}.thread .bottom{display:flex;align-items:center;gap:var(--sp-2);margin-top:2px}.thread .bottom .preview{flex:1}.thread .tags{display:flex;flex-wrap:wrap;gap:3px;margin-top:4px}.conversation .bar{flex:none;min-height:var(--header-h);display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border);background:var(--surface)}.conversation .accounts{flex:none;display:flex;gap:var(--sp-2);align-items:center;padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--separator)}.conversation .stream{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.conversation .day-float{position:absolute;top:var(--sp-3);left:50%;transform:translate(-50%);z-index:3;padding:2px 10px;border-radius:var(--r-pill);background:var(--surface-3);border:1px solid var(--border-2);color:var(--text-2);font-size:11px;pointer-events:none}.bubble .acts{position:absolute;top:-13px;right:var(--sp-2);z-index:2;display:none;gap:2px}.bubble.inbound .acts{right:auto;left:var(--sp-2)}.bubble:hover .acts,.bubble:focus-within .acts{display:flex}.bubble .acts .btn{background:var(--surface-3);border-color:var(--border-2)}.bubble .quote{display:block;width:100%;text-align:left;margin-bottom:6px;padding:3px var(--sp-2);border:0;border-left:2px solid var(--gold);border-radius:var(--r-xs);background:#0000002e;color:inherit;font:inherit;font-size:12px;cursor:pointer}.bubble .quote .who{display:block;font-weight:600}.bubble .reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.bubble .reactions span{padding:0 6px;border-radius:var(--r-pill);background:var(--surface-3);border:1px solid var(--border-2);font-size:11px}.bubble .fail{margin-top:4px;font-size:11px;color:var(--critical)}.bubble .fail .detail{display:block;color:var(--text-3)}.bubble .choice{margin:8px -12px -8px}.bubble .choice>*{display:block;width:100%;padding:6px var(--sp-2);border:0;border-top:1px solid var(--border-2);background:none;color:var(--focus);font:inherit;font-size:12px;text-align:center;cursor:pointer}.bubble.highlight{outline:2px solid var(--gold);outline-offset:2px}.bubble .doc{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2);border-radius:var(--r-sm);background:#0000002e;color:inherit}.bubble .sticker{max-width:128px}.composer .pop{position:absolute;bottom:calc(100% + 6px);left:0;z-index:30}.composer .row .grow{flex:1;min-width:0;position:relative}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;width:292px;max-height:224px;overflow-y:auto}.emoji-grid button{padding:4px;border:0;border-radius:var(--r-xs);background:none;font-size:17px;line-height:1.2;cursor:pointer}.emoji-grid button:hover{background:var(--surface-3)}.canned-list{width:320px;max-height:300px;overflow-y:auto}.canned-list .group{padding:var(--sp-2) var(--sp-2) 2px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3)}.canned-list button{display:block;text-align:left}.canned-list .shortcut{font-family:var(--mono);font-size:11px;color:var(--text-3)}.canned-list .preview{display:block;font-size:11px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note{position:relative;margin-bottom:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);box-shadow:inset 2px 0 0 var(--gold)}.note .who{display:flex;align-items:center;gap:var(--sp-2);font-size:11px;color:var(--text-3)}.note .who .name{color:var(--text-2);font-weight:600}.note .body{margin-top:3px;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.note .acts{display:none;gap:2px;margin-left:auto}.note:hover .acts{display:flex}.panel{border-left:1px solid var(--border);background:var(--surface);overflow-y:auto;padding:var(--sp-4)}.panel .panel-head{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3)}.panel .panel-head h3{flex:1}.panel .section{margin-bottom:var(--sp-5)}.panel .section>h4{margin-bottom:var(--sp-2);color:var(--text-3);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.kv{display:grid;grid-template-columns:auto 1fr;gap:6px var(--sp-3);font-size:12px}.kv dt{color:var(--text-3)}.kv dd{margin:0;color:var(--text);overflow-wrap:anywhere}.chart{width:100%}.chart-head{display:flex;align-items:baseline;gap:var(--sp-3);margin-bottom:var(--sp-3)}.chart-head h3{flex:1}.chart-head .note{font-size:12px;color:var(--text-3)}.legend{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-3);font-size:12px;color:var(--text-2)}.legend .item{display:flex;align-items:center;gap:6px}.legend .swatch{width:10px;height:10px;border-radius:3px;flex:none}.tooltip{background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--r-sm);box-shadow:var(--shadow-2);padding:var(--sp-2) var(--sp-3);font-size:12px;pointer-events:none}.tooltip .t-label{color:var(--text-3);margin-bottom:4px}.tooltip .t-row{display:flex;align-items:center;gap:var(--sp-2)}.tooltip .t-row .val{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--ink);font-weight:600}.graph-canvas{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}.graph-controls{position:absolute;top:var(--sp-3);left:var(--sp-3);z-index:2;display:flex;gap:var(--sp-2)}.graph-detail{position:absolute;top:var(--sp-3);right:var(--sp-3);z-index:2;width:280px;max-height:calc(100% - 24px);overflow-y:auto;background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--r-sm);padding:var(--sp-3);box-shadow:var(--shadow-2)}.flow-canvas{position:relative;min-height:480px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);background-image:radial-gradient(var(--border) 1px,transparent 1px);background-size:16px 16px;overflow:auto}.flow-node{position:absolute;width:220px;background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--r-sm);box-shadow:var(--shadow-1);cursor:grab}.flow-node.selected{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}.flow-node .head{display:flex;align-items:center;gap:6px;padding:6px var(--sp-2);border-bottom:1px solid var(--separator);font-size:12px;font-weight:600;color:var(--ink)}.flow-node .body{padding:var(--sp-2);font-size:12px;color:var(--text-2)}.flow-node.warn{border-color:var(--warning)}.flow-node.bad{border-color:var(--critical);opacity:.72}.flow-node.drop{border-color:var(--focus);box-shadow:0 0 0 2px var(--focus)}.flow-node .head .spacer{flex:1}.flow-port{width:9px;height:9px;border-radius:50%;background:var(--text-3);border:2px solid var(--surface);position:absolute}.flow-port.in{top:-5px}.flow-port.out{bottom:-5px;cursor:crosshair}.flow-port.branch{background:var(--gold)}.flow-port.out:hover{background:var(--gold-lift);transform:scale(1.3)}.builder-shell{display:flex;flex-direction:column;height:calc(100vh - var(--header-h));min-height:0}.builder-bar{flex:none;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border);background:var(--surface)}.builder-bar .spacer{flex:1}.builder{flex:1;min-height:0;display:grid}.builder .pane{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--surface)}.builder .pane.canvas{background:var(--bg)}.pane-head{flex:none;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--separator)}.pane-head .spacer{flex:1}.pane-body{flex:1;min-height:0;overflow:auto;padding:var(--sp-3)}.pane-foot{flex:none;padding:var(--sp-2) var(--sp-3) 0;border-top:1px solid var(--separator)}.pane-foot .tabs{margin-bottom:0;border-bottom:0}.pane-resize{background:var(--border);cursor:col-resize}.pane-resize:hover{background:var(--gold)}.step-row{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-2);border:1px solid transparent;border-radius:var(--r-sm);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.step-row:hover{background:var(--surface-2)}.step-row.active{background:var(--surface-2);border-color:var(--gold)}.step-row.drop-before{box-shadow:inset 0 2px 0 var(--gold)}.step-row .grip{cursor:grab;color:var(--text-3)}.step-row .grow{flex:1}.sep{height:1px;background:var(--separator)}@media (max-width: 1100px){.builder{grid-template-columns:minmax(0,1fr)!important;grid-auto-rows:minmax(320px,auto);overflow-y:auto}.pane-resize{display:none}}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-7) var(--sp-5);text-align:center;color:var(--text-3)}.empty .icon{opacity:.4}.empty h3{color:var(--text-2)}.empty p{max-width:380px;font-size:13px}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 37%,var(--surface-2) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;border-radius:var(--r-xs)}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.skeleton.line{height:12px;margin-bottom:8px}.skeleton.line.short{width:40%}.spinner{width:15px;height:15px;border:2px solid var(--border-2);border-top-color:var(--gold);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.banner{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-sm);font-size:13px;margin-bottom:var(--sp-4)}.banner.info{background:var(--info-s);color:var(--info)}.banner.warning{background:var(--warning-s);color:var(--warning)}.banner.critical{background:var(--critical-s);color:var(--critical)}.banner.good{background:var(--success-s);color:var(--success)}.banner .body{flex:1}.banner .trace{font-family:var(--mono);font-size:11px;opacity:.75}.toasts{position:fixed;bottom:var(--sp-5);right:var(--sp-5);z-index:200;display:flex;flex-direction:column;gap:var(--sp-2)}.toast{min-width:260px;max-width:380px;padding:var(--sp-3);border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border-2);box-shadow:var(--shadow-2);font-size:13px}.toast.critical{border-color:var(--critical)}.toast.good{border-color:var(--success)}.pager{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) 0;font-size:12px;color:var(--text-3)}.pager .spacer{flex:1}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:var(--sp-5);background:radial-gradient(1200px 600px at 50% -10%,var(--navy) 0%,var(--bg) 60%)}.auth-card{width:min(400px,100%);background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-lg);box-shadow:var(--shadow-3);padding:var(--sp-6)}.auth-card .brand{justify-content:center;padding-bottom:var(--sp-5)}.auth-card h1{font-size:18px;text-align:center;color:var(--ink)}.auth-card .sub{margin-top:var(--sp-1);margin-bottom:var(--sp-5);text-align:center;font-size:13px;color:var(--text-3)}.auth-sep{display:flex;align-items:center;gap:var(--sp-3);margin:var(--sp-5) 0 var(--sp-3);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3)}.auth-sep:before,.auth-sep:after{content:"";flex:1;height:1px;background:var(--border-2)}.auth-sso{display:flex;flex-direction:column;gap:var(--sp-2)}.auth-sso .btn{justify-content:flex-start;gap:var(--sp-3)}.auth-sso .btn svg{width:16px;height:16px;flex:none}.auth-sso .skeleton{height:32px}.auth-alt{padding-top:var(--sp-5);text-align:center;font-size:12px;color:var(--text-3)}.auth-alt .link{background:none;border:0;padding:0;font:inherit;color:var(--gold-lift);cursor:pointer}.auth-alt .link:hover{text-decoration:underline}.wgrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:40px;gap:var(--sp-4)}.widget{position:relative;display:flex;flex-direction:column;min-width:0;overflow:hidden;grid-column:var(--gx) / span var(--gw);grid-row:var(--gy) / span var(--gh)}.widget>.card{border:0;background:none;padding:0}.widget .stat{border:0;background:none;padding:0}.widget>.card,.widget>.chart,.widget>.stat{flex:1;min-height:0}.widget-body{flex:1;min-height:0;overflow:auto}.widget-void{height:100%;display:grid;place-items:center;color:var(--text-3);font-size:12px}.widget-note{margin:2px 0 0;font-size:12px;color:var(--text-3)}.widget-chip{flex:none;width:28px;height:28px;border-radius:var(--r-sm);display:grid;place-items:center;font-size:14px}.widget-actions{position:absolute;top:var(--sp-2);right:var(--sp-2);z-index:3;opacity:0;transition:opacity .12s}.widget-actions{background:var(--surface);border-radius:var(--r-sm);box-shadow:var(--shadow-1)}.widget:hover .widget-actions,.widget-actions:focus-within{opacity:1}.widget-grip{position:absolute;top:var(--sp-2);left:var(--sp-2);z-index:3;color:var(--text-3);font-size:12px;line-height:1}.widget-resize{position:absolute;right:0;bottom:0;width:20px;height:20px;z-index:3;padding:0;border:0;background:none;color:var(--text-3);cursor:se-resize}.widget-resize:after{content:"";position:absolute;right:5px;bottom:5px;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;border-radius:0 0 2px}.wgrid.editing .widget{cursor:grab}.wgrid.editing .widget:active{cursor:grabbing}.widget.dragging{opacity:.4}.widget.over{outline:2px dashed var(--gold);outline-offset:-2px}.shortcuts{display:grid;gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(116px,1fr))}.shortcut{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text);font-size:12px;font-weight:600;text-align:center}.shortcut:hover{background:var(--surface-3);color:var(--ink);text-decoration:none}.shortcut .glyph{width:30px;height:30px;border-radius:var(--r-sm);display:grid;place-items:center;background:var(--surface-3);color:var(--gold-lift);font-size:15px}.filter-row{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2)}.filter-row select,.filter-row input{flex:1;min-width:0}.filter-row .op{flex:0 0 132px}.row{display:flex;align-items:center;gap:var(--sp-2)}.col{display:flex;flex-direction:column;gap:var(--sp-2)}.spacer{flex:1}.muted{color:var(--text-3)}.strong{color:var(--ink);font-weight:600}.nowrap{white-space:nowrap}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.num{font-variant-numeric:tabular-nums}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (max-width: 1100px){.chat{grid-template-columns:280px minmax(0,1fr)}.chat .panel{display:none}}@media (max-width: 820px){.app{grid-template-columns:1fr}.rail{position:fixed;z-index:50;transform:translate(-100%);transition:transform .2s;width:var(--rail-w)}.app.rail-open .rail{transform:none}.page{padding:var(--sp-4)}}.stack{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.section{margin-bottom:var(--sp-4)}.section>h4{margin-bottom:var(--sp-2);color:var(--text-3);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.chips{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}.prewrap{white-space:pre-wrap;overflow-wrap:anywhere}hr.sep{height:1px;border:0;margin:var(--sp-4) 0;background:var(--separator)}.pre-block{margin:var(--sp-2) 0 0;padding:var(--sp-2) var(--sp-3);max-height:240px;overflow:auto;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);font-family:var(--mono);font-size:11px;color:var(--text-2);white-space:pre-wrap;overflow-wrap:anywhere}.setting{display:flex;align-items:flex-start;gap:var(--sp-4);padding:var(--sp-3) 0;border-bottom:1px solid var(--separator)}.setting:last-child{border-bottom:0}.setting .text,.toolbar .text{flex:1;min-width:0}.setting .text p{margin:2px 0 0;font-size:12px;color:var(--text-3)}.hours-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) 0}.hours-row:not(:last-child){border-bottom:1px solid var(--separator)}.console{display:grid;grid-template-columns:320px minmax(0,1fr) 380px;gap:var(--sp-4);align-items:start}.console-chat{display:flex;flex-direction:column;height:calc(100vh - var(--header-h) - 140px);min-height:520px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}.console-chat .scroll{flex:1;overflow-y:auto;padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}.console-chat .composer{border-radius:0}.think{align-self:flex-start;width:min(560px,90%);padding:var(--sp-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r)}.think .step{display:flex;align-items:center;gap:var(--sp-2);font-size:12px;padding:2px 0}.think .step .ms{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--text-3)}.meter{height:6px;border-radius:var(--r-pill);background:var(--surface-3);overflow:hidden}.meter>span{display:block;height:100%;background:var(--info);border-radius:var(--r-pill)}.rec{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-top:1px solid var(--border);background:var(--critical-s);color:var(--critical);font-size:12px}.rec .pulse{width:8px;height:8px;border-radius:50%;background:var(--critical);animation:rec-pulse 1.2s ease infinite}@keyframes rec-pulse{0%,to{opacity:1}50%{opacity:.3}}@media (max-width: 1400px){.console{grid-template-columns:300px minmax(0,1fr)}.console>.stack:last-child{grid-column:1 / -1}}.knowledge{display:grid;grid-template-columns:360px minmax(0,1fr);gap:var(--sp-4);align-items:start}.dropzone{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-5) var(--sp-4);text-align:center;border:1px dashed var(--border-2);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text-3);font-size:12px;cursor:pointer;transition:border-color .12s,background .12s,color .12s}.dropzone:hover,.dropzone.over{border-color:var(--focus);background:var(--surface-3);color:var(--text-2)}.dropzone[aria-disabled=true]{cursor:not-allowed;opacity:.6}.dropzone .glyph{font-size:20px;opacity:.7}.upload-row{display:flex;align-items:center;gap:var(--sp-2);font-size:12px;padding:var(--sp-2) 0;border-bottom:1px solid var(--separator)}.upload-row:last-child{border-bottom:0}.upload-row .name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2)}@media (max-width: 1200px){.knowledge{grid-template-columns:minmax(0,1fr)}}@media (max-width: 900px){.console{grid-template-columns:minmax(0,1fr)}.console>.stack:last-child{grid-column:auto}}.matrix{border-collapse:separate;border-spacing:2px;width:100%;font-size:12px}.matrix th{padding:var(--sp-1) var(--sp-2);text-align:left;white-space:nowrap;font-size:11px;font-weight:600;color:var(--text-3)}.matrix th.rowlab{position:sticky;left:0;z-index:1;background:var(--surface);color:var(--text-2);max-width:16rem;overflow:hidden;text-overflow:ellipsis}.matrix th .sub{display:block;font-weight:500;color:var(--text-3);font-variant-numeric:tabular-nums}.matrix td{padding:0}.matrix td.margin{padding:0 var(--sp-2);white-space:nowrap;color:var(--text-3);font-variant-numeric:tabular-nums}.matrix .cell{display:block;width:100%;height:42px;padding:2px;border:0;border-radius:var(--r-xs);font:inherit;color:var(--text-3);background:var(--surface-2);cursor:default;text-align:center}.matrix .cell.hit{cursor:pointer}.matrix .cell.hit:hover{outline:1px solid var(--focus);outline-offset:-1px}.matrix .cell .v{display:block;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.matrix .cell .n{display:block;font-size:10px;opacity:.72;font-variant-numeric:tabular-nums}.matrix .cell.b-empty{background:var(--surface);color:var(--text-3)}.matrix .cell.b-unmeasured{background:var(--surface-2);color:var(--text-3)}.matrix .cell.b-thin{background:var(--surface-3);color:var(--text-2)}.matrix .cell.b-good{background:color-mix(in srgb,var(--success) 30%,var(--surface));color:var(--ink)}.matrix .cell.b-ok{background:color-mix(in srgb,var(--success) 15%,var(--surface));color:var(--text)}.matrix .cell.b-warn{background:color-mix(in srgb,var(--warning) 24%,var(--surface));color:var(--ink)}.matrix .cell.b-poor{background:color-mix(in srgb,var(--serious) 26%,var(--surface));color:var(--ink)}.matrix .cell.b-bad{background:color-mix(in srgb,var(--critical) 30%,var(--surface));color:var(--ink)}.fam{padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);color:inherit;font:inherit;text-align:left;cursor:pointer}.fam:hover{border-color:var(--border-2);background:var(--surface-3)}.fam[aria-pressed=true]{border-color:var(--gold);background:var(--surface-3)}.lab{display:grid;grid-template-columns:320px minmax(360px,1fr) 460px;gap:var(--sp-4);align-items:start}@media (max-width: 1500px){.lab{grid-template-columns:300px minmax(0,1fr)}}@media (max-width: 1000px){.lab{grid-template-columns:minmax(0,1fr)}}table.permgrid th,table.permgrid td{text-align:center}table.permgrid th:first-child,table.permgrid td:first-child{text-align:left;min-width:220px}table.permgrid th{vertical-align:bottom}table.permgrid .col-head{display:flex;flex-direction:column;align-items:center;gap:4px}table.permgrid input[type=checkbox]{width:15px;height:15px;min-height:0;accent-color:var(--gold);cursor:pointer}table.permgrid input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}table.permgrid .na{color:var(--text-3);opacity:.5}.ops-split{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--sp-4);align-items:start}@media (max-width: 1100px){.ops-split{grid-template-columns:minmax(0,1fr)}}.case-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(14px,1fr));gap:2px;margin-top:var(--sp-2)}.case-grid .cell{aspect-ratio:1;border-radius:var(--r-xs)}.field .group-label{font-size:12px;font-weight:600;color:var(--text-2)}
