:root,[data-theme=light]{--bg-color: #ffffff;--surface-1: #ffffff;--surface-2: #f8f9fa;--input-bg: #f8f9fa;--card-bg: #ffffff;--hover-bg: #f0f1f2;--text-primary: #1a1a1a;--text-secondary: #666666;--text-tertiary: #767676;--border-color: #e1e1e1;--border-lighter: #f0eee9;--border-strong: #cfcdc7;--primary-color: #374151;--accent-color: #10b981;--accent-soft: rgba(16, 185, 129, .1);--prism-call: #16a34a;--prism-put: #dc2626;--prism-pos: #16a34a;--prism-neg: #dc2626;--prism-neg-soft: rgba(220, 38, 38, .1);--prism-zebra: #f3f5f7;--prism-row-call: #f1f9f4;--prism-row-call-alt: #e8f6ed;--prism-row-put: #fdf2f2;--prism-row-put-alt: #fce9e9;--radius-soft: 2px;--shadow-dropdown: 0 2px 8px rgba(0,0,0,.06), 0 12px 40px rgba(0,0,0,.14);--font-body: "Be Vietnam Pro", system-ui, sans-serif;--font-ui: "Inter", ui-sans-serif, system-ui, sans-serif;--font-mono: "Inter", ui-monospace, monospace;color-scheme:light}[data-theme=dark]{--bg-color: #14151a;--surface-1: #1c1d23;--surface-2: #20212a;--input-bg: #2a2b34;--card-bg: #1c1d23;--hover-bg: #2a2b34;--text-primary: #ece9de;--text-secondary: #a4a39c;--text-tertiary: #8a877f;--border-color: rgba(232, 231, 224, .1);--border-lighter: rgba(232, 231, 224, .04);--border-strong: rgba(232, 231, 224, .22);--primary-color: #d1d5db;--accent-color: #4ade80;--accent-soft: rgba(74, 222, 128, .12);--prism-call: #2bd46e;--prism-put: #ff4d55;--prism-pos: #2bd46e;--prism-neg: #ff4d55;--prism-neg-soft: rgba(255, 77, 85, .12);--prism-zebra: #1c1d23;--prism-row-call: #15201f;--prism-row-call-alt: #162822;--prism-row-put: #22181e;--prism-row-put-alt: #2c1b20;--shadow-dropdown: 0 2px 8px rgba(0,0,0,.25), 0 12px 40px rgba(0,0,0,.6);color-scheme:dark}@tailwind base;@tailwind components;@tailwind utilities;*{box-sizing:border-box}html,body,#root{margin:0;padding:0;background:var(--bg-color);color:var(--text-primary);font-family:var(--font-body);font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.prism-app{display:flex;flex-direction:column;min-height:320px}.prism-masthead{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px 11px;border-bottom:1px dashed var(--border-color);background:var(--surface-2)}.prism-masthead h1{margin:0;display:flex;align-items:center;gap:10px;font-family:var(--font-body);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--text-primary)}.prism-masthead h1:before{content:"";flex-shrink:0;width:18px;height:3px;background:var(--accent-color);border-radius:2px}.prism-masthead .accent{color:var(--text-secondary);font-weight:700}.prism-masthead-badges{display:flex;align-items:center;gap:8px}.prism-stale-badge{color:var(--prism-neg);border-color:var(--prism-neg)}.prism-delayed{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-ui);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-tertiary);background:var(--surface-1);border:1px solid var(--border-color);border-radius:var(--radius-soft);padding:3px 9px}.prism-tabs{border-bottom:1px solid var(--border-color);background:var(--surface-1)}.prism-tab-groups{display:flex;flex-wrap:wrap;gap:0;padding:0 12px;border-bottom:1px solid var(--border-color)}.prism-tab-groups button{background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--text-secondary);padding:9px 14px;font-family:var(--font-body);font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:color .2s ease,border-color .2s ease}.prism-tab-groups button:hover{color:var(--text-primary)}.prism-tab-groups button[aria-selected=true]{color:var(--accent-color);border-bottom-color:var(--accent-color)}.prism-tab-items{display:flex;flex-wrap:wrap;gap:6px;padding:10px 12px}.prism-tab-items button{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:0;padding:5px 11px;font-family:var(--font-body);font-size:11px;font-weight:600;letter-spacing:.03em;cursor:pointer;transition:color .15s ease,background .15s ease,border-color .15s ease}.prism-tab-items button:hover:not([aria-selected=true]){color:var(--text-primary);background:var(--surface-2);border-color:var(--border-strong)}.prism-tab-items button[aria-selected=true]{color:var(--accent-color);background:var(--accent-soft);border-color:var(--accent-color);font-weight:700}.prism-status{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:7px 16px;border-bottom:1px solid var(--border-color);font-size:12px;color:var(--text-secondary);background:var(--surface-1)}.prism-status strong{color:var(--text-primary);font-weight:700}.prism-status-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.prism-toggle{display:inline-flex;align-items:center;gap:6px;background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:0;padding:5px 11px;font-family:var(--font-body);font-size:11px;font-weight:600;letter-spacing:.03em;cursor:pointer;transition:color .15s ease,background .15s ease,border-color .15s ease}.prism-toggle:hover:not(.is-on){color:var(--text-primary);background:var(--surface-2);border-color:var(--border-strong)}.prism-toggle:before{content:"";width:12px;height:3px;border-radius:2px;background:currentColor;opacity:.5}.prism-toggle.is-on{color:var(--accent-color);background:var(--accent-soft);border-color:var(--accent-color);font-weight:700}.prism-toggle.is-on:before{opacity:1}.prism-body{display:grid;grid-template-columns:300px minmax(0,1fr);height:720px}.prism-results{display:flex;flex-direction:column;min-width:0;min-height:0;height:100%}.prism-filter-panel{display:flex;flex-direction:column;height:100%;min-height:0;border-right:1px solid var(--border-color);background:var(--surface-2)}.pf-header{flex:0 0 auto;display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:var(--surface-1);border:none;border-bottom:1px solid var(--border-color);padding:11px 16px;cursor:pointer;color:var(--text-primary)}.pf-header:before{content:"";flex-shrink:0;width:18px;height:3px;background:var(--accent-color);border-radius:2px}.pf-header-t{font-family:var(--font-body);font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.15em}.pf-header-n{font-family:var(--font-ui);font-size:10px;font-weight:700;color:var(--accent-color);background:var(--accent-soft);border-radius:999px;padding:1px 8px;min-width:20px;text-align:center}.pf-header-caret{margin-left:auto;color:var(--text-tertiary);font-size:11px}.pf-toolbar{flex:0 0 auto;display:flex;flex-direction:column;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border-color)}.pf-reset{align-self:flex-end}.pf-add{display:flex;flex-direction:column;gap:7px}.pf-add-label{font-family:var(--font-ui);font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary)}.pf-add-box{position:relative}.pf-add-input{width:100%;background:transparent;color:var(--text-primary);border:1px solid var(--border-color);border-radius:8px;padding:8px 11px;font-family:inherit;font-size:12px;outline:none;transition:border-color .18s ease,box-shadow .18s ease}.pf-add-input::placeholder{color:var(--text-tertiary)}.pf-add-input:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px var(--accent-soft)}.pf-add-menu{position:absolute;z-index:20;top:calc(100% + 4px);left:0;right:0;margin:0;padding:0;list-style:none;max-height:320px;overflow:auto;background:var(--card-bg);border:1px solid var(--border-color);border-top:2px solid var(--primary-color);border-radius:0;box-shadow:var(--shadow-dropdown);animation:prism-dropdown-in .2s cubic-bezier(.16,1,.3,1)}.pf-add-menu li{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:8px 12px 8px 10px;border-left:2px solid transparent;cursor:pointer;font-size:12px;transition:background .15s ease,color .15s ease,border-color .15s ease}.pf-add-menu li:hover,.pf-add-menu li.is-active{background:var(--input-bg);border-left-color:var(--primary-color)}.pf-add-t{color:var(--text-primary)}.pf-add-cat{font-family:var(--font-ui);color:var(--text-tertiary);font-size:10px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.pf-rows{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column}.pf-empty{padding:18px 16px;color:var(--text-tertiary);font-size:12px}.pf-row{display:flex;flex-direction:column;gap:9px;padding:12px 16px;border-bottom:1px dashed var(--border-color)}.pf-row:hover{background:var(--surface-1)}.pf-row-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.pf-row-title{display:flex;flex-direction:column;gap:3px}.pf-name{font-family:var(--font-body);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-primary)}.pf-desc{font-size:10px;color:var(--text-tertiary);line-height:1.35}.pf-remove{background:none;border:none;color:var(--text-tertiary);cursor:pointer;font-size:16px;line-height:1;padding:0 2px;transition:color .15s ease}.pf-remove:hover{color:var(--prism-neg)}.pf-row-body{display:flex;flex-direction:column;gap:8px;min-width:0}.pf-lbl,.pf-to{font-family:var(--font-ui);font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.pf-unit{font-size:11px;color:var(--text-tertiary)}.pf-num{width:76px;background:transparent;color:var(--text-primary);border:1px solid var(--border-color);border-radius:0;padding:4px 7px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.pf-num:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px var(--accent-soft)}.pf-range{display:flex;flex-direction:column;gap:7px}.pf-range-inputs{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.pf-bands{display:flex;flex-wrap:wrap;gap:0}.pf-band{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:66px;background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:0;padding:4px 8px;cursor:pointer;transition:color .15s ease,background .15s ease,border-color .15s ease}.pf-band+.pf-band{margin-left:-1px}.pf-band:hover:not(.is-active){color:var(--text-primary);background:var(--surface-1);border-color:var(--border-strong);z-index:1}.pf-band.is-active{background:var(--accent-soft);border-color:var(--accent-color);color:var(--accent-color);position:relative;z-index:1}.pf-band.is-active .pf-band-d{color:var(--accent-color);opacity:.8}.pf-band-t{font-size:11px;font-weight:700}.pf-band-d{font-family:var(--font-ui);font-size:9px;color:var(--text-tertiary)}.pf-checks{display:flex;flex-wrap:wrap;gap:10px 14px}.pf-check{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-primary);cursor:pointer}.pf-check input{accent-color:var(--accent-color)}.pf-compare{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.pf-op{background:transparent;color:var(--text-primary);border:1px solid var(--border-color);border-radius:0;padding:4px 7px;font-size:12px;max-width:190px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.pf-op:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px var(--accent-soft)}.prism-btn{background:var(--text-primary);color:var(--bg-color);border:1px solid var(--text-primary);border-radius:0;padding:6px 14px;font-family:var(--font-body);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;transition:background .2s ease,color .2s ease}.prism-btn:hover{background:var(--bg-color);color:var(--text-primary)}.prism-btn:disabled{opacity:.5;cursor:not-allowed}.prism-btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:0;padding:5px 12px;font-family:var(--font-body);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:color .18s ease,background .18s ease,border-color .18s ease}.prism-btn-ghost:hover{color:var(--text-primary);background:var(--surface-1);border-color:var(--border-strong)}.prism-pager{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12px;color:var(--text-secondary)}.prism-pager button{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:0;padding:3px 9px;cursor:pointer;font-size:12px;line-height:1;transition:color .15s ease,background .15s ease,border-color .15s ease}.prism-pager button:hover:not(:disabled){color:var(--text-primary);background:var(--surface-1);border-color:var(--border-strong)}.prism-pager button:disabled{opacity:.35;cursor:not-allowed}.prism-pager-bar{display:flex;justify-content:flex-end;padding:7px 16px;border-top:1px solid var(--border-color);background:var(--surface-1)}.prism-grid{position:relative;display:grid;overflow:auto;flex:1 1 auto;min-height:0}.prism-grid-header,.prism-grid-row{display:grid;grid-template-columns:subgrid;grid-column:1 / -1;align-items:center}.prism-grid-header{position:sticky;top:0;z-index:2;background:var(--surface-2);border-bottom:1px solid var(--border-color)}.prism-grid-header>div{padding:7px 10px;text-align:right;white-space:nowrap;font-family:var(--font-ui);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s ease}.prism-grid-header>div:hover{color:var(--text-primary)}.prism-grid-header>div.is-sorted{color:var(--text-primary);background:var(--accent-soft)}.prism-grid-header .arrow{color:var(--accent-color);margin-left:3px}.prism-grid-row{background:var(--bg-color);color:var(--text-primary);border-bottom:1px solid var(--border-lighter);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.prism-grid-row.prism-row-alt{background:var(--prism-zebra)}.prism-grid-row.prism-row-call{background:var(--prism-row-call)}.prism-grid-row.prism-row-put{background:var(--prism-row-put)}.prism-grid-row.prism-row-call-alt{background:var(--prism-row-call-alt)}.prism-grid-row.prism-row-put-alt{background:var(--prism-row-put-alt)}.prism-grid-row.is-group-start{border-top:1px solid var(--border-strong)}.prism-grid-row:hover{background:var(--hover-bg)}.prism-grid-row>div{padding:5px 10px;text-align:right;white-space:nowrap;font-size:12px}.prism-grid-row>div.is-sorted{background:var(--accent-soft)}.prism-grid-row>div.prism-heatr-4.is-sorted{background:var(--prism-neg-soft)}.prism-grid-header>div:focus-visible{outline:2px solid var(--accent-color);outline-offset:-2px}.prism-side-badge{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;margin-right:5px;border-radius:2px;font-size:9px;font-weight:700;border:1px solid currentColor}.prism-cell-sym{text-align:left!important;font-family:var(--font-body);font-weight:700;position:sticky;left:0;z-index:1;background:inherit}.prism-grid-header>.prism-cell-sym{z-index:4}.prism-cell-sym:after{content:"";position:absolute;top:0;bottom:0;left:100%;width:10px;background:inherit;box-shadow:1px 0 0 var(--border-color);pointer-events:none}.prism-tag-call{color:var(--prism-call);font-weight:700}.prism-tag-put{color:var(--prism-put);font-weight:700}.prism-pos{color:var(--prism-pos)}.prism-neg{color:var(--prism-neg)}.prism-heat-1,.prism-heatr-1{color:var(--text-tertiary)}.prism-heat-2,.prism-heatr-2{color:var(--text-secondary)}.prism-heat-3{color:var(--prism-pos);font-weight:600}.prism-heat-4{color:var(--prism-pos);font-weight:700;background:var(--accent-soft)}.prism-heatr-3{color:var(--prism-neg);font-weight:600}.prism-heatr-4{color:var(--prism-neg);font-weight:700;background:var(--prism-neg-soft)}.prism-empty,.prism-loading{padding:40px 16px;text-align:center;color:var(--text-tertiary);font-size:13px}.error-fallback{padding:32px;text-align:center;color:var(--text-secondary)}.error-fallback button{margin-top:12px}@keyframes prism-dropdown-in{0%{opacity:0;transform:translateY(-4px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.pf-add-menu{animation:none!important}}@media(max-width:768px){.prism-body{grid-template-columns:1fr;height:auto}.prism-filter-panel{border-right:none;border-bottom:1px solid var(--border-color)}.prism-results{height:560px}.prism-masthead{padding:11px 12px 10px}.prism-status{padding:7px 12px}}
