:root { --navy:#0e3477; --navy-d:#0a1f4a; --gold:#f1b400; --soft:#f4f7fc; --line:#e1e8f4; }
body { background: var(--soft); font-family: "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif; color:#1c2540; }
.topbar { background: var(--navy-d); color:#fff; }
.topbar a, .topbar .btn-link { color:#dbe5ff; text-decoration:none; }
.sidebar { background:#fff; border-right:1px solid var(--line); min-height: calc(100vh - 56px); }
.sidebar .nav-link { color:#33405f; border-radius:8px; padding:.5rem .8rem; font-weight:500; }
.sidebar .nav-link.active, .sidebar .nav-link:hover { background:#e8efff; color:var(--navy); }
.sidebar .nav-heading { font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:#8a93a8; margin:1rem .8rem .3rem; }
.card { border:1px solid var(--line); border-radius:12px; box-shadow:0 1px 2px rgba(14,52,119,.04); }
.stat { font-size:1.9rem; font-weight:700; color:var(--navy); line-height:1.1; }
.table > :not(caption) > * > * { padding:.55rem .7rem; vertical-align: middle; }
.table thead th { background:#f0f4fb; font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; color:#55607a; border-bottom:1px solid var(--line); white-space:nowrap; }
.table-wrap { overflow-x:auto; }
.save-state { font-size:.75rem; margin-left:.4rem; color:#198754; }
.save-state.err { color:#c0392b; }
.cell-input { min-width: 120px; }
.badge-st { font-weight:600; }
.att-btn { min-width:2.6rem; }
@media print { .topbar, .sidebar, .no-print { display:none !important; } body { background:#fff; } .card { border:0; box-shadow:none; } }
@media (max-width: 991px) { .sidebar { min-height:auto; border-right:0; border-bottom:1px solid var(--line); } }

select.cell-input { min-width: 150px; }
