:root{--bg-primary: #222226;--bg-surface: #2E2E33;--bg-header: #1C1C20;--bg-elevated: #353535;--bg-button: #333338;--bg-button-hover: #3C3C41;--bg-sidebar: #2E2E33;--bg-highlight: #373737;--bg-bg2: #333338;--bg-bg3: #48484E;--bg-bg4: #3B3B41;--accent: #35A854;--accent-hover: #3FBE62;--accent-pressed: #2D8F47;--accent-border: #1D7A34;--accent-bg: rgba(53, 168, 84, .08);--accent-bg-strong: rgba(53, 168, 84, .15);--suggested: #6DB442;--text-primary: #DADADA;--text-fg: rgba(255,255,255,.87);--text-panel: #E1E1E1;--text-dim: rgba(255,255,255,.52);--text-disabled: rgba(255,255,255,.42);--text-placeholder: rgba(255,255,255,.26);--text-on-accent: #FFFFFF;--text-unfocused: #A7A7AB;--border: #242429;--border-header: #1C1C20;--border-active: #161619;--border-focus: #35A854;--success: #73D216;--warning: #F27835;--error: #FC4138;--destructive: #F04A50;--link: #5294E2;--info: #55C1EC;--menu-hover: rgba(255,255,255,.1);--list-hover: rgba(255,255,255,.05);--chart-scope1: #35A854;--chart-scope2: #2D8F47;--chart-scope3: #6DB442;--chart-other: #1D7A34;--shadow-popover: 0 2px 6px 1px rgba(0,0,0,.35);--shadow-window: 0 3px 9px 1px rgba(0,0,0,.5);--radius-button: 3px;--radius-entry: 3px;--radius-search: 4px;--radius-tab: 1px;--radius-popover: 3px;--radius-tooltip: 5px;--radius-window: 8px;--radius-dialog: 18px;--font-sans: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", "Consolas", monospace;--ease: cubic-bezier(.25, .46, .45, .94);--transition: all .2s var(--ease);--transition-fast: all 50ms var(--ease)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:1.5;min-height:100vh}#root{min-height:100vh;display:flex;flex-direction:column}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4,h5,h6{color:var(--text-fg);font-weight:600;line-height:1.3}h1{font-size:1.75rem}h2{font-size:1.375rem}h3{font-size:1.125rem}h4{font-size:1rem}code,pre{font-family:var(--font-mono)}table{border-collapse:collapse;width:100%}::selection{background:var(--accent);color:var(--text-on-accent)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-header)}::-webkit-scrollbar-thumb{background:var(--bg-bg3);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.btn{min-height:22px;min-width:20px;border:1px solid var(--border);border-radius:var(--radius-button);padding:5px 12px;font-family:var(--font-sans);font-size:.875rem;font-weight:500;cursor:pointer;transition:var(--transition);background:var(--bg-button);color:var(--text-fg);display:inline-flex;align-items:center;gap:6px}.btn:hover{background:var(--bg-button-hover)}.btn:focus-visible{border-color:var(--accent);outline:none}.btn:active{transition:var(--transition-fast);background:var(--accent);color:var(--text-on-accent);border-color:var(--accent)}.btn:disabled{color:var(--text-disabled);opacity:.55;cursor:not-allowed}.btn--primary{background:var(--accent);color:var(--text-on-accent);border-color:var(--accent-border)}.btn--primary:hover{background:var(--accent-hover)}.btn--primary:active{background:var(--accent-pressed)}.btn--suggested{background:var(--suggested);color:var(--text-on-accent);border-color:var(--suggested)}.btn--suggested:hover{filter:brightness(1.1)}.btn--destructive{background:var(--destructive);color:var(--text-on-accent);border-color:var(--destructive)}.btn--destructive:hover{filter:brightness(1.1)}.btn--flat{background:transparent;border-color:transparent;transition:none}.btn--flat:hover{background:var(--list-hover);transition:all .35s var(--ease)}.input{border:1px solid var(--border);padding:5px 8px;border-radius:var(--radius-entry);transition:var(--transition);caret-color:currentColor;background:var(--bg-surface);color:var(--text-primary);font-family:var(--font-sans);font-size:.875rem;box-shadow:inset 0 2px 4px #2e2e330d;width:100%}.input:focus{border-color:var(--accent);outline:none}.input::placeholder{color:var(--text-placeholder)}.input--search{border-radius:var(--radius-search)}.card{background:var(--bg-sidebar);border:1px solid var(--border);border-radius:var(--radius-popover);padding:16px}.card--accent{border-top:4px solid var(--accent)}.tabs{padding:2px;background:var(--bg-primary);box-shadow:inset 0 -1px var(--border);display:flex;gap:0}.tab{padding:2px 10px;min-height:20px;border-radius:var(--radius-tab) var(--radius-tab) 0 0;border:1px solid transparent;border-bottom:none;background:transparent;color:var(--text-disabled);font-family:var(--font-sans);font-size:.875rem;font-weight:500;cursor:pointer;transition:var(--transition)}.tab:hover{color:var(--text-dim)}.tab--active{color:var(--text-fg);background:var(--bg-surface);border-color:var(--border)}.scope-tag{display:inline-block;padding:1px 8px;border-radius:var(--radius-button);font-size:.75rem;font-weight:600;font-family:var(--font-mono)}.scope-tag--1{background:#35a85426;color:var(--chart-scope1)}.scope-tag--2{background:#2d8f4726;color:var(--chart-scope2)}.scope-tag--3{background:#6db44226;color:var(--chart-scope3)}.table{width:100%;border-collapse:collapse}.table th{text-align:left;padding:8px 12px;font-size:.75rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border)}.table td{padding:8px 12px;font-size:.875rem;border-bottom:1px solid var(--border)}.table tr:hover td{background:var(--list-hover)}.page{padding:24px;max-width:1200px;margin:0 auto;width:100%}.page__title{margin-bottom:4px}.page__subtitle{color:var(--text-dim);font-size:.875rem;margin-bottom:24px}.grid-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px}.grid-2col{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media(max-width:768px){.page{padding:16px}.grid-2col{grid-template-columns:1fr}.grid-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}.stat-card{background:var(--bg-sidebar);border:1px solid var(--border);border-radius:var(--radius-popover);padding:16px;border-top:4px solid var(--accent)}.stat-card__label{font-size:.75rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.stat-card__value{font-size:1.5rem;font-weight:700;color:var(--text-fg);font-family:var(--font-mono)}.stat-card__unit{font-size:.75rem;font-weight:400;color:var(--text-dim);margin-left:4px}.input-row{display:grid;grid-template-columns:1fr auto 160px auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.input-row__label{font-size:.875rem;color:var(--text-fg)}.input-row__factor{font-size:.75rem;font-family:var(--font-mono);color:var(--text-dim);white-space:nowrap}.input-row__field{position:relative}.input-row__field input{width:160px;text-align:right;padding-right:44px}.input-row__unit{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:.75rem;color:var(--text-placeholder);pointer-events:none}.input-row__result{font-size:.875rem;font-family:var(--font-mono);font-weight:600;color:var(--accent);text-align:right;white-space:nowrap;min-width:100px}@media(max-width:768px){.input-row{grid-template-columns:1fr;gap:4px}.input-row__field input{width:100%}}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}.form-section{margin-bottom:24px}.form-section__title{font-size:1rem;font-weight:600;color:var(--text-fg);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.form-group{margin-bottom:12px}.form-group label{display:block;font-size:.8125rem;font-weight:500;color:var(--text-dim);margin-bottom:4px}.pct-bar{height:6px;background:var(--bg-bg3);border-radius:3px;overflow:hidden;min-width:80px}.pct-bar__fill{height:100%;background:var(--accent);border-radius:3px;transition:width .3s var(--ease)}.scope-subtotal{display:flex;justify-content:space-between;align-items:center;padding:12px 0;margin-top:8px;border-top:2px solid var(--border);font-weight:600}.scope-subtotal__value{font-family:var(--font-mono);font-size:1.125rem;color:var(--accent)}
