/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-paper:#edebe5;--color-surface:#f8f6f2;--color-surface2:#e3dfd7;--color-surface3:#f2efe9;--color-ink:#1a1917;--color-muted:#706b63;--color-faint:#a29d95;--color-border:#cdc7bd;--color-border2:#b0a99f;--color-accent:#c2410c;--color-accent-h:#9a3412;--color-accent-dim:#fde8dc;--color-night:#18130f;--color-night2:#231e19;--color-night3:#332c26;--color-night-text:#f0ebe3;--color-night-muted:#9c958c;--color-night-border:#332c26;--color-success:#15803d;--color-error:#b91c1c;--color-warn:#92400e;--color-info:#0369a1;--color-purple:#6d28d9;--color-orange:#c2410c}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--color-paper);height:100%;color:var(--color-ink);font-family:var(--font-mono);color-scheme:light;-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.5}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border2)}::-webkit-scrollbar-thumb:hover{background:var(--color-muted)}}@layer components{#app{grid-template-rows:48px 1fr;height:100vh;display:grid;overflow:hidden}#main{flex-direction:column;min-height:0;display:flex;overflow:hidden}#topbar{background:var(--color-night);border-bottom:1px solid var(--color-night-border);color:var(--color-night-text);flex-shrink:0;align-items:center;gap:10px;padding:0 18px;display:flex}.logo{letter-spacing:.1em;text-transform:uppercase;border-right:1px solid var(--color-night-border);color:var(--color-night-text);white-space:nowrap;flex-shrink:0;align-items:center;gap:8px;padding-right:18px;font-size:12px;font-weight:700;display:flex}.topbar-spacer{flex:1}.nav-tabs{gap:1px;padding-left:8px;display:flex}.nav-tab{font-size:11px;font-weight:500;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--color-night-muted);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;align-items:center;gap:5px;padding:4px 10px;transition:background .1s,color .1s,border-color .1s;display:inline-flex}.nav-tab:hover{background:var(--color-night3);color:var(--color-night-text)}.nav-tab.active{background:var(--color-night3);border-color:var(--color-night-border);color:var(--color-night-text)}.auth-actions{border-left:1px solid var(--color-night-border);align-items:center;gap:8px;padding-left:12px;display:flex}.auth-status{color:var(--color-night-muted);white-space:nowrap;letter-spacing:.04em;font-size:10px}.refresh-indicator{color:var(--color-night-muted);letter-spacing:.04em;align-items:center;gap:6px;font-size:10px;display:flex}.refresh-dot{background:var(--color-success);border-radius:50%;flex-shrink:0;width:5px;height:5px}.refresh-dot.active{animation:2s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.25}}.btn{background:var(--color-surface3);border:1px solid var(--color-border2);font-size:11px;font-weight:500;font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--color-ink);cursor:pointer;white-space:nowrap;flex-shrink:0;align-items:center;gap:5px;min-height:28px;padding:5px 12px;transition:background .1s,border-color .1s;display:inline-flex}.btn:hover{background:var(--color-surface2);border-color:var(--color-border2)}.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.btn.primary{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.btn.primary:hover{background:var(--color-accent-h);border-color:var(--color-accent-h)}.btn.active{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent)}.btn.danger{color:var(--color-error);border-color:#b37871}@supports (color:color-mix(in lab, red, red)){.btn.danger{border-color:color-mix(in srgb, var(--color-error) 35%, var(--color-border2))}}.btn.danger:hover{background:#edded9}@supports (color:color-mix(in lab, red, red)){.btn.danger:hover{background:color-mix(in srgb, var(--color-error) 8%, var(--color-surface3))}}.btn.danger:hover{border-color:var(--color-error)}.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}#topbar .btn{background:var(--color-night2);border-color:var(--color-night-border);color:var(--color-night-text)}#topbar .btn:hover{background:var(--color-night3);border-color:var(--color-accent)}.view{display:none}.view.active{display:contents}#view-requests.active{flex-direction:column;flex:1;gap:10px;min-height:0;padding:20px 24px 32px;display:flex;overflow:hidden}#view-requests .requests-header{flex-shrink:0}#view-requests .table-wrap{flex:1;min-height:0;overflow:auto}#view-settings.active,#view-nodes.active,#view-models.active{flex-direction:column;flex:1;gap:10px;min-height:0;padding:20px 24px 32px;display:flex;overflow:hidden auto}#view-overview.active{flex-direction:column;flex:1;gap:10px;padding:20px 24px 32px;display:flex;overflow:hidden auto}#view-overview.active>*{flex-shrink:0}.section-title{text-transform:uppercase;letter-spacing:.14em;color:var(--color-muted);align-items:center;gap:10px;margin:6px 0 0;font-size:10px;font-weight:700;display:flex}.section-title:after{content:"";background:var(--color-border);flex:1;height:1px}.page-hero{background:var(--color-surface);border:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.page-hero h1{letter-spacing:.14em;text-transform:uppercase;color:var(--color-ink);font-size:11px;font-weight:700;line-height:1.2}.page-hero h1:before{content:"$ ";color:var(--color-accent);font-weight:400}.page-hero p{display:none}.hero-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.hero-tabs{background:var(--color-paper);border:1px solid var(--color-border);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:1px;max-width:520px;padding:3px;display:flex}.quiet-status{color:var(--color-muted);letter-spacing:.04em;margin-top:3px;font-size:10px}.date-range-tabs{flex-wrap:wrap;align-items:center;gap:1px;display:flex}.date-range-tab{font-size:10px;font-weight:600;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);cursor:pointer;background:0 0;border:1px solid #0000;padding:3px 9px;transition:background .1s,color .1s}.date-range-tab:hover{background:var(--color-surface2);color:var(--color-ink)}.date-range-tab.active{background:var(--color-surface);border-color:var(--color-border2);color:var(--color-ink)}.stat-grid{background:var(--color-border);border:1px solid var(--color-border);grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:1px;display:grid}.stat-card{background:var(--color-surface);flex-direction:column;gap:5px;padding:16px 18px 14px;display:flex;position:relative;overflow:hidden}.stat-card:before{content:"";height:2px;position:absolute;top:0;left:0;right:0}.stat-card.c-accent:before{background:var(--color-accent)}.stat-card.c-red:before{background:var(--color-error)}.stat-card.c-green:before{background:var(--color-success)}.stat-card.c-blue:before{background:var(--color-info)}.stat-card.c-purple:before{background:var(--color-purple)}.stat-card.c-yellow:before{background:var(--color-warn)}.stat-label{text-transform:uppercase;letter-spacing:.12em;color:var(--color-muted);font-size:9px;font-weight:700}.stat-value{letter-spacing:-.5px;color:var(--color-ink);font-variant-numeric:tabular-nums;font-size:28px;font-weight:600;line-height:1}.stat-value.v-green{color:var(--color-success)}.stat-value.v-red{color:var(--color-error)}.stat-value.v-blue{color:var(--color-info)}.stat-value.v-purple{color:var(--color-purple)}.stat-sub{color:var(--color-muted);letter-spacing:.04em;font-size:10px}.charts-row{grid-template-columns:minmax(0,1fr) minmax(280px,320px);gap:10px;min-width:0;display:grid}.chart-card{background:var(--color-surface);border:1px solid var(--color-border);flex-direction:column;gap:12px;min-width:0;padding:16px 18px 12px;display:flex;overflow:hidden}.table-card{background:var(--color-surface);border:1px solid var(--color-border);width:100%;min-height:80px;padding:16px 18px 12px;display:block;overflow:visible}.table-card .chart-header{margin-bottom:12px}.chart-header{justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;display:flex}.chart-title{letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink);font-size:10px;font-weight:700}.chart-subtitle{color:var(--color-muted);margin-top:2px;font-size:10px}.bar-chart-wrap{flex-direction:column;flex:1;gap:8px;min-width:0;min-height:200px;display:flex;overflow:auto hidden}.bar-chart-legend{color:var(--color-muted);letter-spacing:.04em;gap:12px;font-size:10px;display:flex}.legend-dot{vertical-align:middle;width:7px;height:7px;margin-right:3px;display:inline-block}.bar-chart{flex:1;align-items:flex-end;gap:3px;min-width:100%;min-height:160px;display:flex;position:relative}.bar-chart-grid{pointer-events:none;flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0}.bar-chart-gridline{background:var(--color-border);width:100%;height:1px}.bar-group{flex-direction:column;flex:1 0 24px;align-items:center;gap:2px;min-width:24px;display:flex;position:relative}.bar-stack{flex-direction:column;justify-content:flex-end;align-items:center;gap:1px;width:100%;height:100%;display:flex}.bar{width:80%;min-height:2px;transition:opacity .15s}.bar.requests{background:#15803da6}.bar.errors{background:#b91c1ca6}.bar-group:hover .bar{opacity:.75}.bar-label{color:var(--color-faint);text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:9px;overflow:hidden}.bar-chart-empty{color:var(--color-muted);flex:1;justify-content:center;align-items:center;font-size:11px;display:flex}.mini-table-wrap,#models-table-wrap,#providers-table-wrap,#endpoints-table-wrap,#errors-statuses-wrap,#errors-types-wrap,#slow-requests-wrap{flex-direction:column;gap:3px;min-width:0;max-width:100%;display:flex;overflow-x:auto}.mini-table-title{text-transform:uppercase;letter-spacing:.12em;color:var(--color-muted);margin-bottom:3px;font-size:9px;font-weight:700}.mini-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:11.5px}.mini-table th{text-transform:uppercase;letter-spacing:.1em;color:var(--color-muted);text-align:left;border-bottom:1px solid var(--color-border);text-overflow:ellipsis;white-space:nowrap;padding:5px 7px;font-size:9px;font-weight:700;overflow:hidden}.mini-table th.num,.mini-table td.num{text-align:right;font-variant-numeric:tabular-nums}.mini-table td{color:var(--color-ink);border-bottom:1px solid var(--color-border);text-overflow:ellipsis;white-space:nowrap;padding:6px 7px;overflow:hidden}.mini-table tr:last-child td{border-bottom:none}.mini-table tbody tr:hover td{background:var(--color-surface3)}#endpoints-wrap,#endpoints-table-wrap,#slow-requests-wrap{height:auto;display:block;overflow:hidden}#endpoints-table-wrap .mini-table,#slow-requests-wrap .mini-table{width:100%;min-width:0}.metric-table{grid-auto-rows:minmax(32px,auto);width:100%;display:grid}.metric-row{border-bottom:1px solid var(--color-border);align-items:center;gap:10px;min-width:0;display:grid}.metric-row:last-child{border-bottom:none}.metric-row.header{min-height:26px;color:var(--color-muted);text-transform:uppercase;letter-spacing:.1em;font-size:9px;font-weight:700}.metric-row:not(.header):hover{background:var(--color-surface3)}.metric-cell{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:6px 7px;font-size:12px;overflow:hidden}.metric-cell.num{text-align:right;font-variant-numeric:tabular-nums}.metric-table.endpoints .metric-row{grid-template-columns:minmax(220px,1fr) minmax(100px,140px) minmax(110px,150px)}.metric-table.performance .metric-row{grid-template-columns:minmax(220px,1fr) minmax(80px,110px) minmax(80px,110px) minmax(80px,110px) minmax(100px,130px) minmax(100px,130px) minmax(120px,150px)}.errors-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0;display:grid}.empty-state{text-align:center;color:var(--color-muted);background:var(--color-paper);border:1px dashed var(--color-border);letter-spacing:.04em;padding:20px;font-size:11px}.notice{border:1px solid;align-items:flex-start;gap:8px;padding:8px 12px;font-size:11px;line-height:1.5;display:flex}.notice.error{background:#f4e9e5}@supports (color:color-mix(in lab, red, red)){.notice.error{background:color-mix(in srgb, var(--color-error) 6%, var(--color-surface))}}.notice.error{border-color:#b91c1c33}@supports (color:color-mix(in lab, red, red)){.notice.error{border-color:color-mix(in srgb, var(--color-error) 20%, transparent)}}.notice.error{color:var(--color-error)}#auth-banner{background:#f3e5e1;display:none}@supports (color:color-mix(in lab, red, red)){#auth-banner{background:color-mix(in srgb, var(--color-error) 8%, var(--color-surface))}}#auth-banner{border-bottom:1px solid #b91c1c33}@supports (color:color-mix(in lab, red, red)){#auth-banner{border-bottom:1px solid color-mix(in srgb, var(--color-error) 20%, transparent)}}#auth-banner{color:var(--color-error);z-index:50;letter-spacing:.04em;padding:8px 24px;font-size:11px;position:sticky;top:0}.requests-header{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px;display:flex}.filter-input{background:var(--color-surface);border:1px solid var(--color-border2);color:var(--color-ink);min-height:28px;font-size:11px;font-family:var(--font-mono);outline:none;width:120px;padding:4px 9px}.filter-input.search{width:200px}.filter-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-dim)}.filter-input::placeholder{color:var(--color-faint)}.filter-select{background:var(--color-surface);border:1px solid var(--color-border2);font-size:11px;font-family:var(--font-mono);color:var(--color-ink);cursor:pointer;outline:none;min-height:28px;padding:4px 9px}.filter-select:focus{border-color:var(--color-accent)}.filter-reset{color:var(--color-muted)}.settings-grid{grid-template-columns:minmax(360px,1fr) minmax(360px,1.2fr);align-items:start;gap:10px;display:grid}.settings-panel{background:var(--color-surface);border:1px solid var(--color-border);flex-direction:column;min-width:0;display:flex;overflow:hidden}.settings-panel-header{border-bottom:1px solid var(--color-border);background:var(--color-surface3);justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.settings-panel-title{letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink);font-size:10px;font-weight:700}.settings-panel-body{flex-direction:column;gap:12px;padding:14px;display:flex}.settings-form{grid-template-columns:minmax(160px,1fr) minmax(180px,1.4fr) auto;align-items:end;gap:7px;display:grid}.settings-form.compact{grid-template-columns:minmax(180px,1fr) auto}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field label{text-transform:uppercase;letter-spacing:.1em;color:var(--color-muted);font-size:9px;font-weight:700}.field input,.field select,.field textarea{background:var(--color-paper);border:1px solid var(--color-border2);color:var(--color-ink);min-height:30px;font-size:12px;font-family:var(--font-mono);outline:none;width:100%;padding:6px 9px}.field textarea{resize:vertical;min-height:60px;font-size:11px;line-height:1.5}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-dim)}.field input::placeholder,.field textarea::placeholder{color:var(--color-faint)}#node-extension-text{border:1px solid var(--color-border);width:100%;min-height:220px;font-family:var(--font-mono);color:#c9d3d9;resize:vertical;background:#100e0c;outline:none;padding:10px 12px;font-size:11px;line-height:1.65}#node-extension-text:disabled{opacity:.45}.settings-form.provider-form{grid-template-columns:minmax(150px,1fr) minmax(220px,1.5fr) minmax(110px,.6fr) auto}.settings-form.model-form{grid-template-columns:minmax(140px,1fr) minmax(140px,.9fr) minmax(160px,1fr) auto}.capability-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.capability-check{border:1px solid var(--color-border2);background:var(--color-surface3);min-height:22px;color:var(--color-muted);font-size:10px;font-family:var(--font-mono);letter-spacing:.04em;align-items:center;gap:4px;padding:2px 7px;display:inline-flex}.capability-check input{accent-color:var(--color-accent);border:0;width:auto;min-height:auto;padding:0}.settings-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:11.5px}.settings-table th{text-transform:uppercase;letter-spacing:.1em;color:var(--color-muted);text-align:left;border-bottom:1px solid var(--color-border);background:var(--color-surface3);padding:6px 9px;font-size:9px;font-weight:700}.settings-table td{border-bottom:1px solid var(--color-border);color:var(--color-ink);vertical-align:middle;padding:6px 9px}.settings-table th.num,.settings-table td.num{text-align:right}.settings-table td.mono{font-family:var(--font-mono);font-size:11px}.settings-table tbody tr.project-row{cursor:pointer}.settings-table tbody tr:hover td{background:var(--color-surface3)}.settings-table tbody tr.selected td{background:var(--color-accent-dim)}.row-actions{justify-content:flex-end;gap:5px;display:flex}.icon-btn{background:var(--color-surface2);border:1px solid var(--color-border2);min-width:26px;min-height:26px;font-size:11px;font-family:var(--font-mono);color:var(--color-ink);cursor:pointer;padding:3px 6px}.icon-btn:hover{background:var(--color-surface3)}.icon-btn.danger{color:var(--color-error)}.key-reveal{background:#eaefe7}@supports (color:color-mix(in lab, red, red)){.key-reveal{background:color-mix(in srgb, var(--color-success) 6%, var(--color-surface))}}.key-reveal{border:1px solid #15803d33}@supports (color:color-mix(in lab, red, red)){.key-reveal{border:1px solid color-mix(in srgb, var(--color-success) 20%, transparent)}}.key-reveal{flex-direction:column;gap:6px;padding:10px;display:none}.key-reveal.visible{display:flex}.key-reveal code{background:var(--color-surface3);border:1px solid var(--color-border);color:var(--color-ink);font-size:11px;font-family:var(--font-mono);padding:7px 9px;display:block;overflow-x:auto}.ops-panel,.upload-panel{background:var(--color-surface);border:1px solid var(--color-border);overflow:hidden}.ops-panel-header{border-bottom:1px solid var(--color-border);background:var(--color-surface3);justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 16px;display:flex}.ops-panel-body{padding:14px}.upload-panel{grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);align-items:start;gap:16px;padding:16px;display:grid}.upload-panel.collapsed{display:none}.upload-form{grid-template-columns:minmax(180px,1.2fr) minmax(150px,.8fr) minmax(170px,1fr) auto auto;align-items:end;gap:8px;display:grid}.upload-status{color:var(--color-muted);grid-column:2/-1;min-height:16px;font-size:11px}.model-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;display:grid}.model-card,.node-card,.assignment-card{border:1px solid var(--color-border);background:var(--color-surface);padding:12px;transition:border-color .15s}.model-card:hover,.node-card:hover{border-color:var(--color-accent)}.model-card.selected,.node-card.selected{border-color:var(--color-accent);background:#f6f1eb}@supports (color:color-mix(in lab, red, red)){.model-card.selected,.node-card.selected{background:color-mix(in srgb, var(--color-accent) 3%, var(--color-surface))}}.model-card-top,.node-card-main{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.model-title,.node-name{letter-spacing:-.2px;word-break:break-word;font-size:13px;font-weight:700}.model-subtitle,.node-meta{color:var(--color-muted);word-break:break-word;margin-top:2px;font-size:11px}.model-facts,.node-card-stats{flex-wrap:wrap;gap:4px;margin:10px 0;display:flex}.model-facts span,.node-card-stats span{background:var(--color-surface2);border:1px solid var(--color-border);color:var(--color-muted);letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;font-size:9px}.model-details{border-top:1px solid var(--color-border);gap:7px;margin-top:10px;padding-top:10px;display:none}.model-card.selected .model-details{display:grid}.model-details div{grid-template-columns:88px minmax(0,1fr);gap:8px;font-size:11px;display:grid}.model-details span{color:var(--color-muted)}.model-details strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.model-card-actions,.node-card-actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.node-workspace{grid-template-columns:minmax(280px,.8fr) minmax(460px,1.4fr);align-items:start;gap:10px;display:grid}#nodes-wrap{gap:8px;display:grid}.node-summary-empty{border:1px dashed var(--color-border2);color:var(--color-muted);text-align:center;letter-spacing:.04em;padding:20px;font-size:11px}.node-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.node-summary-card{background:var(--color-surface3);border:1px solid var(--color-border);padding:10px}.node-summary-card.wide{grid-column:1/-1}.node-summary-card span{color:var(--color-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:3px;font-size:9px;font-weight:700;display:block}.node-summary-card strong{word-break:break-word;font-size:12px}.assignment-list{gap:8px;display:grid}.assignment-card{opacity:.72}.assignment-card.enabled{opacity:1;border-color:#ca9f88}@supports (color:color-mix(in lab, red, red)){.assignment-card.enabled{border-color:color-mix(in srgb, var(--color-accent) 30%, var(--color-border))}}.assignment-toggle{cursor:pointer;align-items:flex-start;gap:9px;display:flex}.assignment-toggle input,.check-row input{accent-color:var(--color-accent)}.assignment-toggle strong{font-size:12px;display:block}.assignment-toggle small{color:var(--color-muted);font-size:10px}.assignment-controls{grid-template-columns:minmax(180px,1fr) auto auto;align-items:end;gap:8px;margin-top:10px;display:grid}.assignment-controls label,.inline-advanced{color:var(--color-muted);letter-spacing:.04em;font-size:10px}.assignment-controls input[type=text],.inline-advanced input{background:var(--color-surface3);border:1px solid var(--color-border2);color:var(--color-ink);font-family:var(--font-mono);width:100%;min-height:28px;margin-top:3px;padding:4px 7px;font-size:11px}.check-row{align-items:center;gap:5px;min-height:28px;display:inline-flex}.inline-advanced{grid-column:1/-1}.inline-advanced summary,.advanced-box summary{cursor:pointer;color:var(--color-accent);letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-weight:600}.advanced-box{border-top:1px solid var(--color-border);margin-top:14px;padding-top:10px}.advanced-box-body{gap:10px;margin-top:10px;display:grid}.history-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.status-badge{color:var(--color-muted);background:var(--color-surface2);border:1px solid var(--color-border);letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;font-size:10px;font-weight:600;display:inline-flex}.status-badge.success,.status-badge.succeeded{color:var(--color-success)}.status-badge.failed{color:var(--color-error)}.status-badge.running{color:var(--color-info)}.badge{letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border:1px solid;align-items:center;gap:4px;padding:2px 7px;font-size:9px;font-weight:700;display:inline-flex}.badge:before{content:"";border-radius:50%;flex-shrink:0;width:4px;height:4px}.badge.success{background:#15803d1a}@supports (color:color-mix(in lab, red, red)){.badge.success{background:color-mix(in srgb, var(--color-success) 10%, transparent)}}.badge.success{color:var(--color-success);border-color:#15803d40}@supports (color:color-mix(in lab, red, red)){.badge.success{border-color:color-mix(in srgb, var(--color-success) 25%, transparent)}}.badge.success:before{background:var(--color-success)}.badge.failed,.badge.error{background:#b91c1c1a}@supports (color:color-mix(in lab, red, red)){.badge.failed,.badge.error{background:color-mix(in srgb, var(--color-error) 10%, transparent)}}.badge.failed,.badge.error{color:var(--color-error);border-color:#b91c1c40}@supports (color:color-mix(in lab, red, red)){.badge.failed,.badge.error{border-color:color-mix(in srgb, var(--color-error) 25%, transparent)}}.badge.failed:before,.badge.error:before{background:var(--color-error)}.badge.running{background:#0369a11a}@supports (color:color-mix(in lab, red, red)){.badge.running{background:color-mix(in srgb, var(--color-info) 10%, transparent)}}.badge.running{color:var(--color-info);border-color:#0369a140}@supports (color:color-mix(in lab, red, red)){.badge.running{border-color:color-mix(in srgb, var(--color-info) 25%, transparent)}}.badge.running:before{background:var(--color-info);animation:1s infinite pulse-dot}.badge.pending{background:#92400e1a}@supports (color:color-mix(in lab, red, red)){.badge.pending{background:color-mix(in srgb, var(--color-warn) 10%, transparent)}}.badge.pending{color:var(--color-warn);border-color:#92400e40}@supports (color:color-mix(in lab, red, red)){.badge.pending{border-color:color-mix(in srgb, var(--color-warn) 25%, transparent)}}.badge.pending:before{background:var(--color-warn)}.badge.cancelled,.badge.skipped{background:#6d28d91a}@supports (color:color-mix(in lab, red, red)){.badge.cancelled,.badge.skipped{background:color-mix(in srgb, var(--color-purple) 10%, transparent)}}.badge.cancelled,.badge.skipped{color:var(--color-purple);border-color:#6d28d940}@supports (color:color-mix(in lab, red, red)){.badge.cancelled,.badge.skipped{border-color:color-mix(in srgb, var(--color-purple) 25%, transparent)}}.badge.cancelled:before,.badge.skipped:before{background:var(--color-purple)}.badge.timeout,.badge.rate_limited{background:#c2410c1a}@supports (color:color-mix(in lab, red, red)){.badge.timeout,.badge.rate_limited{background:color-mix(in srgb, var(--color-orange) 10%, transparent)}}.badge.timeout,.badge.rate_limited{color:var(--color-orange);border-color:#c2410c40}@supports (color:color-mix(in lab, red, red)){.badge.timeout,.badge.rate_limited{border-color:color-mix(in srgb, var(--color-orange) 25%, transparent)}}.badge.timeout:before,.badge.rate_limited:before{background:var(--color-orange)}.badge.neutral{background:#706b631f}@supports (color:color-mix(in lab, red, red)){.badge.neutral{background:color-mix(in srgb, var(--color-muted) 12%, transparent)}}.badge.neutral{color:var(--color-muted);border-color:#706b6340}@supports (color:color-mix(in lab, red, red)){.badge.neutral{border-color:color-mix(in srgb, var(--color-muted) 25%, transparent)}}.badge.neutral:before{background:var(--color-muted)}.table-wrap{border:1px solid var(--color-border);background:var(--color-surface);overflow-x:auto}.req-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:11.5px}.req-table th{text-transform:uppercase;letter-spacing:.1em;color:var(--color-muted);text-align:left;border-bottom:1px solid var(--color-border);background:var(--color-surface3);z-index:1;padding:7px 10px;font-size:9px;font-weight:700;position:sticky;top:0}.req-table th.num{text-align:right}.req-table td{color:var(--color-ink);border-bottom:1px solid var(--color-border);font-variant-numeric:tabular-nums;padding:7px 10px}.req-table td.num{text-align:right}.req-table td.mono{font-family:var(--font-mono);font-size:11px}.req-table tbody tr{cursor:pointer;transition:background .1s}.req-table tbody tr:hover td{background:var(--color-surface3)}.req-table tbody tr.selected td{background:var(--color-accent-dim)}.req-table tbody tr:last-child td{border-bottom:none}.req-table td.muted{color:var(--color-muted)}.req-table td.model-cell{white-space:normal;overflow-wrap:anywhere;min-width:180px;max-width:360px;line-height:1.35}.table-loading,.table-empty{text-align:center;color:var(--color-muted);letter-spacing:.04em;padding:28px;font-size:11px}#detail-drawer{background:var(--color-surface);border-left:1px solid var(--color-border);z-index:100;flex-direction:column;width:520px;transition:transform .2s;display:flex;position:fixed;top:48px;bottom:0;right:0;overflow:hidden;transform:translate(100%)}#detail-drawer.open{transform:translate(0)}.drawer-header{border-bottom:1px solid var(--color-border);background:var(--color-surface3);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 18px;display:flex}.drawer-title{letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink);font-size:10px;font-weight:700}.drawer-close{color:var(--color-muted);cursor:pointer;background:0 0;border:none;padding:3px;font-size:16px;line-height:1;transition:color .1s}.drawer-close:hover{color:var(--color-ink)}.drawer-body{flex:1;padding:18px 22px;overflow-y:auto}.drawer-tabs{border-bottom:1px solid var(--color-border);gap:0;margin-bottom:14px;display:flex}.drawer-tab{font-size:10px;font-weight:700;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:6px 12px;transition:color .1s}.drawer-tab:hover{color:var(--color-ink)}.drawer-tab.active{color:var(--color-ink);border-bottom-color:var(--color-accent)}.facts-grid{grid-template-columns:repeat(2,1fr);gap:7px;margin-bottom:14px;display:grid}.fact{background:var(--color-surface3);border:1px solid var(--color-border);padding:8px 10px}.fact-label{text-transform:uppercase;letter-spacing:.1em;color:var(--color-muted);margin-bottom:2px;font-size:9px;font-weight:700}.fact-value{color:var(--color-ink);word-break:break-all;font-size:13px}.fact-value.mono{font-family:var(--font-mono);font-size:11px}pre{background:var(--color-surface3);border:1px solid var(--color-border);max-height:300px;margin-bottom:10px;padding:10px 12px;overflow:auto}pre code{font-family:var(--font-mono);color:var(--color-ink);font-size:11px;line-height:1.65}.event-list{flex-direction:column;gap:7px;display:flex}.event-item{background:var(--color-surface3);border:1px solid var(--color-border);flex-direction:column;gap:5px;padding:10px 12px;display:flex}.event-header{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.event-type{color:var(--color-accent);text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:700}.event-ts{color:var(--color-muted);font-size:10px}.event-duration{color:var(--color-muted);margin-left:auto;font-size:10px}.event-message{color:var(--color-ink);font-size:11px}.payload-section{flex-direction:column;gap:10px;display:flex}.payload-meta{color:var(--color-muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:11px;display:flex}.payload-label{text-transform:uppercase;letter-spacing:.1em;color:var(--color-muted);margin-bottom:5px;font-size:9px;font-weight:700}.spinner{border:2px solid var(--color-border2);border-top-color:var(--color-accent);border-radius:50%;width:12px;height:12px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}#login-overlay[hidden]{display:none}#login-overlay{z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f0c09cc;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.login-card{background:var(--color-surface);border:1px solid var(--color-border2);flex-direction:column;gap:14px;width:min(400px,100%);padding:28px;display:flex;box-shadow:0 32px 80px #0000002e}.login-title{letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink);font-size:14px;font-weight:700}.login-subtitle{color:var(--color-muted);letter-spacing:.04em;font-size:11px}.login-form{flex-direction:column;gap:8px;display:flex}.login-form label{text-transform:uppercase;letter-spacing:.1em;color:var(--color-muted);font-size:9px;font-weight:700}.login-form input{background:var(--color-paper);border:1px solid var(--color-border2);color:var(--color-ink);font-family:var(--font-mono);outline:none;width:100%;padding:9px 10px;font-size:13px}.login-form input:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-dim)}.login-error{min-height:16px;color:var(--color-error);font-size:11px}.http-ok{color:var(--color-success)}.http-err{color:var(--color-error)}.http-warn{color:var(--color-warn)}.trunc{text-overflow:ellipsis;vertical-align:bottom;max-width:120px;display:inline-block;overflow:hidden}@media (max-width:1100px){.charts-row,.settings-grid,.node-workspace,.upload-panel{grid-template-columns:1fr}.upload-form{grid-template-columns:1fr 1fr}.upload-status{grid-column:1/-1}}@media (max-width:900px){#app{height:auto;overflow:visible}#main{overflow:visible}.errors-row{grid-template-columns:1fr}#detail-drawer{width:100%}}@media (max-width:560px){.drawer-body{padding:12px}.settings-form,.settings-form.compact,.upload-form,.assignment-controls,.node-summary,.history-grid{grid-template-columns:1fr}.page-hero{flex-direction:column}}}@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.static{position:static}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}