*{box-sizing:border-box}
:root{
  --navy:#17365D;--navy2:#0F2743;--green:#1F6E43;--gold:#D6B656;
  --bg:#F4F7FA;--card:#fff;--text:#1E293B;--muted:#64748B;--border:#D9E2EC;
  --danger:#B42318;--shadow:0 8px 24px rgba(15,39,67,.08)
}
body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}
button,input,textarea{font:inherit}
button{cursor:pointer}
.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}
.sidebar{background:linear-gradient(180deg,var(--navy2),var(--navy));color:white;padding:22px 18px;display:flex;flex-direction:column;gap:22px}
.brand{display:flex;align-items:center;gap:12px}
.brand-icon{width:44px;height:44px;border-radius:12px;background:var(--gold);color:var(--navy2);display:grid;place-items:center;font-weight:800}
.brand h1{font-size:18px;margin:0}
.brand p{font-size:12px;margin:3px 0 0;color:#D7E3F0}
.month-nav{display:grid;gap:7px}
.month-nav button{border:0;border-radius:10px;background:transparent;color:#E7EEF7;padding:10px 12px;text-align:left}
.month-nav button:hover,.month-nav button.active{background:rgba(255,255,255,.14);color:#fff;font-weight:700}
.sidebar-actions{margin-top:auto;display:grid;gap:8px}
.main{padding:26px;min-width:0}
.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:11px;color:var(--green);font-weight:800;margin:0 0 5px}
.topbar h2{margin:0;font-size:28px}
.muted{color:var(--muted);margin:6px 0 0;font-size:14px}
.top-actions{display:flex;gap:10px;flex-wrap:wrap}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
.kpi-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:18px;box-shadow:var(--shadow)}
.kpi-card span{display:block;color:var(--muted);font-size:12px;margin-bottom:8px}
.kpi-card strong{font-size:24px}
.kpi-card.highlight{border-top:4px solid var(--green)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.panel{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:18px;box-shadow:var(--shadow)}
.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px}
.panel-head h3{margin:0;font-size:18px}
.panel-head p{margin:4px 0 0;color:var(--muted);font-size:12px}
.groups{display:grid;gap:14px}
.group{border:1px solid var(--border);border-radius:14px;padding:13px}
.group-title{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px;font-size:13px;font-weight:800}
.item-row{display:grid;grid-template-columns:minmax(0,1fr) 130px 38px;gap:8px;margin-bottom:8px}
.item-row:last-child{margin-bottom:0}
.item-row input{min-width:0;border:1px solid var(--border);border-radius:9px;padding:9px 10px;background:#fff}
.item-row input[type=number]{text-align:right}
.delete-btn{border:1px solid var(--border);background:#fff;border-radius:9px;color:var(--danger);font-weight:800}
.primary-btn,.secondary-btn,.danger-btn{border-radius:10px;padding:10px 13px;font-weight:700;border:1px solid transparent}
.primary-btn{background:var(--green);color:#fff}
.secondary-btn{background:#fff;color:var(--navy);border-color:var(--border)}
.sidebar .secondary-btn{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.18);text-align:center}
.danger-btn{background:#fff;color:var(--danger);border-color:#F1B5AE}
.file-label{display:block;cursor:pointer}
.file-label input{display:none}
.review-panel{margin-top:18px}
.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.review-grid label{font-size:13px;font-weight:700}
.review-grid textarea{width:100%;min-height:100px;margin-top:6px;padding:10px;border:1px solid var(--border);border-radius:10px;resize:vertical}
.dashboard-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}
.dashboard-cards article{border:1px solid var(--border);border-radius:13px;padding:16px}
.dashboard-cards span{display:block;color:var(--muted);font-size:12px;margin-bottom:7px}
.dashboard-cards strong{font-size:20px}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;min-width:680px}
th,td{text-align:right;padding:11px 9px;border-bottom:1px solid var(--border);font-size:13px}
th:first-child,td:first-child{text-align:left}
.chart-wrap{width:100%;overflow:hidden;border:1px solid var(--border);border-radius:14px;padding:12px;margin-bottom:18px;background:#fff}
canvas{max-width:100%;height:auto}
footer{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px;padding:18px 4px}
.hidden{display:none!important}
@media (max-width:1000px){
  .app-shell{grid-template-columns:1fr}
  .sidebar{position:static}
  .month-nav{grid-template-columns:repeat(6,1fr)}
  .sidebar-actions{grid-template-columns:repeat(3,1fr)}
  .two-col{grid-template-columns:1fr}
}
@media (max-width:700px){
  .main{padding:16px}
  .topbar{flex-direction:column}
  .kpi-grid{grid-template-columns:1fr 1fr}
  .month-nav{grid-template-columns:repeat(4,1fr)}
  .sidebar-actions{grid-template-columns:1fr}
  .review-grid,.dashboard-cards{grid-template-columns:1fr}
  .item-row{grid-template-columns:minmax(0,1fr) 105px 38px}
}
@media (max-width:430px){
  .kpi-grid{grid-template-columns:1fr}
  .month-nav{grid-template-columns:repeat(3,1fr)}
}
