*{box-sizing:border-box}:root{--bg:#0f172a;--panel:#1e293b;--panel-2:#283549;--border:#334155;--text:#e2e8f0;--muted:#94a3b8;--accent:#38bdf8;--accent-2:#0ea5e9;--green:#22c55e;--red:#ef4444;--warn:#f59e0b}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}.container{max-width:1100px;margin:0 auto;padding:24px 20px 64px}h1{margin:0 0 4px;font-size:28px;letter-spacing:-.02em}.subtitle{color:var(--muted);margin-bottom:24px;font-size:14px}.grid{display:grid;grid-gap:20px;gap:20px;align-items:start}.grid-2{grid-template-columns:1fr 1fr}@media (max-width:800px){.grid-2{grid-template-columns:1fr}}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px}.card h2{margin:0 0 14px;font-size:17px;letter-spacing:-.01em}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row>button{align-self:flex-end}@media (max-width:600px){.form-row{flex-direction:column;align-items:stretch}.form-row>.field{min-width:0;width:100%}.form-row>button{align-self:stretch;width:100%}}.field{display:flex;flex-direction:column;gap:4px;flex:1 1;min-width:100px}label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}input,select{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:9px 10px;color:var(--text);font-size:14px;outline:none;transition:border-color .15s;font-family:inherit}input:focus,select:focus{border-color:var(--accent)}button{background:var(--accent);color:#082f49;border:none;border-radius:8px;padding:9px 14px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s;font-family:inherit}button:hover{background:var(--accent-2)}button:disabled{opacity:.6;cursor:default}button.ghost{background:transparent;color:var(--muted);border:1px solid var(--border);padding:6px 10px;font-weight:500}button.ghost:hover{color:var(--text);background:var(--panel-2)}button.danger{background:transparent;color:var(--red);border:1px solid var(--border);padding:6px 10px;font-weight:500}button.danger:hover{background:rgba(239,68,68,.12)}.list{flex-direction:column;margin-top:12px}.item,.list{display:flex;gap:8px}.item{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;align-items:center;justify-content:space-between;font-size:14px}.chip,.item-meta{color:var(--muted);font-size:12px}.chip{display:inline-block;background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:2px 8px;margin-right:4px}.chip.on{background:rgba(56,189,248,.15);border-color:var(--accent);color:var(--accent)}.checkbox-grid{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.check-pill{background:var(--panel-2);border:1px solid var(--border);border-radius:999px;padding:5px 12px;cursor:pointer;font-size:13px;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .12s}.check-pill.active{background:rgba(56,189,248,.18);border-color:var(--accent);color:var(--accent)}.summary-table{width:100%;border-collapse:collapse;margin-top:8px}.summary-table td,.summary-table th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);font-size:14px}.summary-table th{color:var(--muted);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.05em}.summary-table tr:last-child td{border-bottom:none}.total{font-weight:700;color:var(--green)}.empty{color:var(--muted);font-size:13px;font-style:italic;padding:4px 0}.tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{background:transparent;color:var(--muted);border:none;border-bottom:2px solid transparent;border-radius:0;padding:10px 14px;font-size:14px;font-weight:500;cursor:pointer;white-space:nowrap;flex-shrink:0}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tab:hover{color:var(--text)}@media (max-width:520px){.container{padding:16px 14px 48px}h1{font-size:22px}.tab{padding:10px 12px;font-size:13px}}.kpi{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:6px}.kpi-item{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:10px 14px;flex:1 1;min-width:140px}.kpi-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.kpi-value{font-size:20px;font-weight:700;margin-top:2px}details{margin-top:8px}details summary{cursor:pointer;color:var(--muted);font-size:13px;padding:4px 0}details summary:hover{color:var(--text)}.breakdown{margin-top:6px;padding-left:16px;font-size:13px;color:var(--muted)}.breakdown div{padding:2px 0}.topbar{justify-content:space-between;margin-bottom:8px;gap:12px}.topbar,.user-chip{display:flex;align-items:center}.user-chip{font-size:13px;color:var(--muted);gap:8px}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:28px;width:100%;max-width:380px}.auth-card h1{font-size:22px;margin-bottom:4px}.auth-form{display:flex;flex-direction:column;gap:12px;margin-top:14px}.auth-form button{margin-top:6px;padding:11px 14px}.auth-foot{margin-top:16px;font-size:13px;color:var(--muted);text-align:center}.auth-foot a{color:var(--accent);text-decoration:none}.auth-foot a:hover{text-decoration:underline}.form-error{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.4);color:#fca5a5;padding:8px 10px;border-radius:8px;font-size:13px}.banner{background:rgba(56,189,248,.1);border:1px solid rgba(56,189,248,.35);border-radius:10px;padding:12px 14px;margin-bottom:16px;display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;font-size:14px}.banner .actions{display:flex;gap:6px}.print-header{display:none}@media print{body{background:#fff;color:#000}.container{max-width:100%;padding:0}.no-print,.tabs,.topbar{display:none!important}.print-header{display:block;margin-bottom:16px}.card,.print-header h1{color:#000}.card{background:#fff;border:1px solid #ccc;page-break-inside:avoid}.card h2,.card h3,.card strong,.kpi-item{color:#000}.kpi-item{background:#f5f5f5;border:1px solid #ccc}.item-meta,.kpi-label,.subtitle{color:#555}.kpi-value{color:#000}.summary-table td,.summary-table th{border-bottom:1px solid #ccc;color:#000}.summary-table th{color:#555}.total{color:#047857}.breakdown{color:#333}details{display:block}details summary{display:none}details .breakdown{display:block!important}}