:root{--primary: #1E3A5F;--accent: #2F6FED;--accent-soft: #EEF4FF;--success: #16A34A;--success-soft: #DCFCE7;--warning: #D97706;--warning-soft: #FEF3E2;--danger: #DC2626;--danger-soft: #FEE2E2;--bg: #F4F6F9;--surface: #FFFFFF;--border: #E2E8F0;--text: #0F172A;--muted: #64748B;--radius: 12px;--shadow-sm: 0 1px 2px rgba(15,23,42,.06);--shadow-md: 0 4px 16px rgba(15,23,42,.08);--shadow-lg: 0 16px 48px rgba(15,23,42,.16)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,sans-serif;background:var(--bg);color:var(--text);font-size:14px;-webkit-font-smoothing:antialiased}button{border:none;cursor:pointer;border-radius:9px;font-weight:600;font-family:inherit;transition:all .15s}button:hover{filter:brightness(.96)}button:active{transform:scale(.985)}button:disabled{opacity:.5;cursor:not-allowed}.btn{padding:11px 20px;font-size:14px}.btn-primary{background:var(--accent);color:#fff}.btn-success{background:var(--success);color:#fff}.btn-warn{background:var(--warning-soft);color:#b45309}.btn-soft{background:var(--accent-soft);color:var(--accent)}.btn-gray{background:var(--border);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.card{background:var(--surface);padding:24px 26px;border-radius:var(--radius);border:1px solid var(--border);margin-bottom:18px;box-shadow:var(--shadow-sm)}.card h2{font-size:17px;font-weight:700;margin-bottom:18px;letter-spacing:-.2px}.form-label{display:block;font-size:13px;font-weight:600;margin:10px 0 5px}.form-label.req:after{content:" *";color:var(--danger)}.form-input{width:100%;padding:10px 12px;border:1.5px solid var(--border);border-radius:9px;font-family:inherit;font-size:14px;margin-bottom:10px;background:#fff}.form-input:focus{outline:none;border-color:var(--accent)}.input-error{border-color:var(--danger)!important;background:#fff8f8!important}.badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:700;white-space:nowrap}.item{padding:14px 16px;background:#fff;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:10px;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center;gap:10px}.item:hover{background:#fafcff;box-shadow:var(--shadow-sm)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid-auto{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px}.kpi{background:#fff;padding:20px 22px;border-radius:var(--radius);border:1px solid var(--border);border-top:3px solid var(--accent);box-shadow:var(--shadow-sm)}.kpi-label{color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;margin-bottom:8px}.kpi-number{font-size:34px;font-weight:800;color:var(--primary);line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-1px}.kpi-sub{color:var(--muted);font-size:12px;margin-top:6px}.modal-bg{position:fixed;inset:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.modal{background:#fff;border-radius:14px;padding:28px;width:100%;max-width:640px;max-height:92vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.toast-wrap{position:fixed;top:18px;right:18px;z-index:2000;display:flex;flex-direction:column;gap:10px}.toast{background:#fff;border:1px solid var(--border);border-left:4px solid var(--success);border-radius:10px;box-shadow:var(--shadow-lg);padding:13px 16px;font-size:13px;line-height:1.5;min-width:280px;max-width:380px;cursor:pointer;animation:tin .25s ease}.toast.error{border-left-color:var(--danger)}.toast.info{border-left-color:var(--accent)}@keyframes tin{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:none}}.brm{width:40px;height:40px;border-radius:8px;border:1.5px solid var(--border);background:#fff;font-weight:700;font-size:13px}.brm.b.sel{background:var(--success);color:#fff;border-color:var(--success)}.brm.r.sel{background:var(--warning);color:#fff;border-color:var(--warning)}.brm.m.sel{background:var(--danger);color:#fff;border-color:var(--danger)}.brm.na{font-size:10px;color:var(--muted)}.brm.na.sel{background:#94a3b8;color:#fff;border-color:#94a3b8}.val-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #EDF1F5;font-size:14px}.val-row.total{border-bottom:none;border-top:2px solid var(--text);margin-top:4px;padding-top:12px;font-size:17px;font-weight:700}@media print{body *{visibility:hidden}.print-area,.print-area *{visibility:visible}.print-area{position:absolute;inset:0;padding:0!important}.no-print{display:none!important}}@media (max-width: 768px){.grid-2{grid-template-columns:1fr}}
