:root{--sidebar-bg:#1b3a2f;--sidebar-fg:#e8ede9;--sidebar-muted:#8fa89c;--sidebar-active-bg:#24503f;--sidebar-active-fg:#fff;--sidebar-border:#2a4a3c;--accent:#1b3a2f;--accent-hover:#24503f;--accent-subtle:#eef3f0;--accent-fg:#fff;--highlight:#d9a441;--highlight-subtle:#fdf6e8;--bg:#f7f6f2;--surface:#fff;--border:#e5e2da;--border-strong:#d4d0c6;--text:#1a1a17;--text-secondary:#55534c;--text-muted:#8b8880;--success:#15803d;--success-bg:#f0fdf4;--warning:#b45309;--warning-bg:#fffbeb;--danger:#b91c1c;--danger-bg:#fef2f2;--info:#1d4ed8;--info-bg:#eff6ff;--font-display:"Fraunces", Georgia, serif;--font-body:"Inter", system-ui, sans-serif;--text-xs:12px;--text-sm:13px;--text-base:14px;--text-lg:16px;--text-xl:20px;--text-2xl:28px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--radius:6px;--radius-sm:4px;--border-width:1px;--row-height:38px;--control-height:36px;--control-height-sm:32px;--transition:.15s ease;--mobile-tabs-height:64px}[data-app=ops]{--sidebar-bg:#262a2e;--sidebar-active-bg:#383e44;--sidebar-border:#3a4046;--sidebar-muted:#98a0a7}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--text-base);-webkit-font-smoothing:antialiased;margin:0;line-height:1.45}h1,h2,h3,.stat-figure{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:600}h1{font-size:var(--text-xl)}h2{font-size:var(--text-lg)}h3{font-size:var(--text-base)}.stat-figure{font-size:var(--text-2xl);letter-spacing:-.02em}.num,td.num,.money,input[inputmode=decimal],table{font-variant-numeric:tabular-nums}.num,.money{white-space:nowrap}.card,.panel{background:var(--surface);border:var(--border-width) solid var(--border);border-radius:var(--radius);padding:var(--space-4);box-shadow:none}table{border-collapse:collapse;width:100%}thead th{z-index:1;background:var(--bg);border-bottom:var(--border-width) solid var(--border);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);text-align:left;padding:var(--space-2) var(--space-3);font-weight:600;position:sticky;top:0}tbody td{height:var(--row-height);padding:var(--space-2) var(--space-3);border-bottom:var(--border-width) solid var(--border);font-size:var(--text-sm)}tbody tr:hover{background:var(--accent-subtle)}button,input,select,textarea{font-family:inherit;font-size:var(--text-base)}.btn{height:var(--control-height);padding:0 var(--space-3);border-radius:var(--radius);border:var(--border-width) solid transparent;cursor:pointer;transition:background var(--transition), border-color var(--transition)}.btn-primary{background:var(--accent);color:var(--accent-fg)}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn-ghost{color:var(--text);background:0 0}.btn-danger{background:var(--danger);color:#fff}.btn[disabled]{opacity:.55;cursor:not-allowed}.input{height:var(--control-height);padding:0 var(--space-3);background:var(--surface);border:var(--border-width) solid var(--border-strong);border-radius:var(--radius);color:var(--text)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.badge{align-items:center;gap:var(--space-1);height:22px;padding:0 var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:600;display:inline-flex}.badge-success{background:var(--success-bg);color:var(--success)}.badge-warning{background:var(--warning-bg);color:var(--warning)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-info{background:var(--info-bg);color:var(--info)}.badge-muted{background:var(--bg);color:var(--text-muted)}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (width<=768px){:root{--control-height:44px;--row-height:44px}html,body{max-width:100%;overflow-x:hidden}button,a,input,select,textarea{min-height:44px}}@media print{body{background:#fff}.no-print,nav,aside{display:none!important}.document{font-size:12px}.document h1,.document .total{font-family:var(--font-display)}}
