:root{
  --brand:#0f3d5e; --brand-2:#1f6f8b; --accent:#e9a23b;
  --bg:#f4f6f9; --line:#e3e7ee; --ink:#1d2733; --muted:#6b7686;
  --side-w:250px;
}
html,body{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:14.5px}
a{color:var(--brand-2)}
.btn-primary{--bs-btn-bg:var(--brand);--bs-btn-border-color:var(--brand);--bs-btn-hover-bg:#0b2f49;--bs-btn-hover-border-color:#0b2f49;--bs-btn-active-bg:#0b2f49}
.btn-outline-primary{--bs-btn-color:var(--brand);--bs-btn-border-color:var(--brand);--bs-btn-hover-bg:var(--brand);--bs-btn-hover-border-color:var(--brand)}
.nav-pills{--bs-nav-pills-link-active-bg:var(--brand)}
.topbar{position:sticky;top:0;z-index:1030;height:54px;background:var(--brand);color:#fff;box-shadow:0 1px 0 rgba(0,0,0,.08)}
.brand{color:#fff;text-decoration:none;font-weight:700;display:flex;align-items:center;gap:.5rem}
.brand-sub{font-weight:400;opacity:.7;font-size:.9em}
.brand-mark{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--accent);color:#1d2733;font-weight:800}
.brand-mark.big{width:54px;height:54px;font-size:1.6rem;border-radius:14px;display:grid}
.layout{display:flex;min-height:calc(100vh - 54px)}
.sidebar{width:var(--side-w);flex-shrink:0;background:#fff;border-right:1px solid var(--line);padding:.75rem 0}
@media (min-width:992px){.sidebar{position:sticky;top:54px;height:calc(100vh - 54px);overflow:auto}}
.sidebar .nav-group{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:.9rem 1.25rem .35rem;font-weight:600}
.sidebar .nav-link{display:flex;gap:.6rem;align-items:center;color:#334155;padding:.45rem 1.25rem;border-left:3px solid transparent}
.sidebar .nav-link:hover{background:#f2f5f9}
.sidebar .nav-link.active{background:#eaf2f7;color:var(--brand);border-left-color:var(--brand);font-weight:600}
.content{flex:1;min-width:0;padding:1.25rem 1.5rem 3rem}
@media (max-width:576px){.content{padding:1rem}}
.card{border-color:var(--line);border-radius:10px}
.card-header{background:#fff;border-bottom-color:var(--line);font-weight:600}
.table{--bs-table-bg:transparent;margin-bottom:0}
.table>:not(caption)>*>*{padding:.55rem .65rem;border-bottom-color:var(--line)}
.table thead th{font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-weight:600;background:#f8fafc;white-space:nowrap}
.table-hover tbody tr:hover{background:#f7fafc}
.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.kpi{display:flex;gap:.9rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;height:100%;color:var(--ink)}
.kpi-icon{width:44px;height:44px;border-radius:10px;display:grid;place-items:center;font-size:1.3rem}
.kpi-primary .kpi-icon{background:#e6eff6;color:var(--brand)}
.kpi-warning .kpi-icon{background:#fdf2e1;color:#b56d06}
.kpi-success .kpi-icon{background:#e5f5ec;color:#16794a}
.kpi-danger .kpi-icon{background:#fde8e8;color:#b42318}
.kpi-value{font-size:1.5rem;font-weight:700;line-height:1.1}
.kpi-label{color:var(--muted);font-size:.85rem}
a .kpi:hover{border-color:var(--brand-2)}
.tile{border:1px solid var(--line);background:#fff}
.tile:hover{border-color:var(--brand-2)}
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:1rem;background:linear-gradient(160deg,#0f3d5e 0%,#1f6f8b 55%,#f4f6f9 55%)}
.login-card{width:100%;max-width:440px;border:0;border-radius:16px}
.badge{font-weight:600}
.qty-input{max-width:120px;text-align:right}
.row-removed td{text-decoration:line-through;color:#9aa4b2}
.row-added{background:#f0f9f3}
.hint{color:var(--muted);font-size:.85rem}
.timeline{list-style:none;padding:0;margin:0}
.timeline li{position:relative;padding:0 0 .9rem 1.25rem;border-left:2px solid var(--line);margin-left:.4rem}
.timeline li:before{content:"";position:absolute;left:-6px;top:3px;width:10px;height:10px;border-radius:50%;background:var(--brand-2)}
.sticky-actions{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--line);padding:.75rem 1rem;margin:0 -1rem -1rem;border-radius:0 0 10px 10px}
.progress{height:8px}
@media print{
  .topbar,.sidebar,.no-print,.btn{display:none!important}
  .content{padding:0}
  body{background:#fff;font-size:11px}
  .card{border:0}
}
