:root{--bg:#f4f7fb;--panel:#fff;--text:#1d2733;--muted:#6d7784;--line:#e5eaf0;--primary:#0c5f70;--primary2:#0e7f8c;--sidebar:#17242e;--green:#1d8f61;--red:#c84a4a;--amber:#c78a22;--shadow:0 8px 28px rgba(18,42,58,.08)}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}a{text-decoration:none;color:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:265px;background:var(--sidebar);color:#d9e2e8;position:fixed;inset:0 auto 0 0;transition:.25s;overflow:auto;z-index:10}.sidebar.collapsed{width:82px}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:20px;border-bottom:1px solid rgba(255,255,255,.08)}.brand-mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,var(--primary2),#4fc3c9);display:grid;place-items:center;color:white;font-weight:800;font-size:21px;flex:none}.sidebar-brand div{display:flex;flex-direction:column}.sidebar-brand strong{color:#fff}.sidebar-brand span{font-size:12px;color:#93a6b4}.sidebar-brand button{margin-left:auto;background:none;border:0;color:#fff;font-size:20px;cursor:pointer}.sidebar nav{padding:14px 10px}.sidebar nav a{display:flex;align-items:center;gap:12px;padding:11px 13px;margin:3px 0;border-radius:9px;color:#b9c7d1}.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.09);color:white}.sidebar nav a span{width:22px;text-align:center}.sidebar nav a.sub{padding-left:34px;font-size:14px}.nav-label{text-transform:uppercase;font-size:10px;letter-spacing:1.4px;color:#708695;padding:20px 13px 7px}.sidebar.collapsed b,.sidebar.collapsed .sidebar-brand>div,.sidebar.collapsed .nav-label{display:none}.sidebar.collapsed nav a{justify-content:center}.sidebar.collapsed nav a.sub{padding-left:13px}.main{margin-left:265px;width:calc(100% - 265px);transition:.25s}.sidebar.collapsed+.main{margin-left:82px;width:calc(100% - 82px)}.topbar{background:white;border-bottom:1px solid var(--line);min-height:88px;padding:18px 28px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:5}.topbar h1{margin:0;font-size:25px}.topbar p{margin:4px 0 0;color:var(--muted);font-size:13px}.top-actions,.user-menu{display:flex;align-items:center;gap:14px}.period-filter{display:flex;gap:8px}.period-filter select,select,input{border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:white;color:var(--text)}.user-menu{border-left:1px solid var(--line);padding-left:14px}.user-menu div:nth-child(2){display:flex;flex-direction:column;font-size:13px}.user-menu span{font-size:11px;color:var(--muted)}.user-menu>a{font-size:12px;color:var(--primary)}.avatar{width:38px;height:38px;border-radius:50%;background:#d8eef0;color:var(--primary);display:grid;place-items:center;font-weight:700}.content{padding:24px 28px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.kpi-grid.compact .metric{min-height:125px}.metric,.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.metric{padding:20px}.metric span{font-size:13px;color:var(--muted)}.metric strong{display:block;font-size:26px;margin:11px 0 7px}.metric small{color:var(--muted)}.progress{height:8px;background:#eaf0f2;border-radius:10px;overflow:hidden}.progress i{display:block;height:100%;background:var(--primary2)}.dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.span-2{grid-column:span 2}.card{padding:20px;margin-bottom:18px}.card-head,.section-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px}.card h2,.section-toolbar h2{margin:0 0 4px;font-size:17px}.card p,.section-toolbar p{margin:0;color:var(--muted);font-size:13px}.card-head{margin-bottom:16px}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:#e6f2f3;color:var(--primary);font-size:11px;font-weight:700}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--muted);font-weight:600;background:#f8fafc}th,td{padding:13px 12px;border-bottom:1px solid var(--line);white-space:nowrap}.status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:700}.status.ok{background:#e7f5ee;color:var(--green)}.status.warn{background:#fff2dc;color:var(--amber)}.text-red{color:var(--red)!important}.text-green{color:var(--green)!important}.positive strong{color:var(--green)}.negative strong{color:var(--red)}.alerts{display:flex;flex-direction:column;gap:12px}.alert-item{padding:13px;border-left:4px solid;border-radius:8px;background:#fafbfc}.alert-item b,.alert-item span{display:block}.alert-item span{font-size:12px;color:var(--muted);margin-top:3px}.danger{border-color:var(--red)}.warning{border-color:var(--amber)}.success{border-color:var(--green)}.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.gauge{font-size:38px;font-weight:800;margin:24px 0 8px;color:var(--primary)}.btn{border:1px solid var(--line);background:white;color:var(--text);border-radius:8px;padding:9px 13px;cursor:pointer;font-weight:600}.btn.primary{background:var(--primary);color:white;border-color:var(--primary)}.btn.small{padding:6px 9px;font-size:11px}.section-toolbar{margin-bottom:18px}.report-card{min-height:190px;display:flex;flex-direction:column;justify-content:space-between}.upload-form,.settings-form{display:flex;flex-direction:column;gap:14px}.upload-form label,.settings-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}.dropzone{border:2px dashed #bed0d8;border-radius:12px;padding:28px!important;align-items:center!important;text-align:center;background:#f9fbfc}.dropzone input{display:none}.dropzone span{font-size:12px;color:var(--muted);font-weight:400}footer{padding:18px 28px;color:var(--muted);font-size:12px}.login-page{display:grid;place-items:center;min-height:100vh;background:linear-gradient(135deg,#edf5f6,#f8fafc)}.login-card{width:min(430px,92vw);background:#fff;padding:34px;border-radius:18px;box-shadow:0 22px 60px rgba(17,54,68,.15)}.login-card h1{margin:18px 0 5px}.login-card p{color:var(--muted)}.login-card form{display:flex;flex-direction:column;gap:14px;margin:24px 0}.login-card label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}.login-card small{color:var(--muted)}.alert.error{padding:10px;background:#feecec;color:#a72d2d;border-radius:8px;font-size:13px}@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.cards-3{grid-template-columns:1fr 1fr}.span-2{grid-column:span 2}.topbar{align-items:flex-start}.top-actions{flex-direction:column;align-items:flex-end}}@media(max-width:760px){.sidebar{width:82px}.sidebar b,.sidebar .sidebar-brand>div,.sidebar .nav-label{display:none}.main,.sidebar.collapsed+.main{margin-left:82px;width:calc(100% - 82px)}.content{padding:16px}.topbar{padding:15px;flex-direction:column;gap:12px}.top-actions{align-items:flex-start}.kpi-grid,.dashboard-grid,.cards-3{grid-template-columns:1fr}.span-2{grid-column:auto}.user-menu div:nth-child(2){display:none}}

/* Executive summary: filters and charts follow the selected scope and period. */
.executive-filters{flex-wrap:wrap;align-items:flex-end}
.executive-filters label{display:flex;flex-direction:column;gap:5px;font-size:11px;color:var(--muted)}
.executive-filters select{max-width:210px;width:100%;font-size:12px}
.topbar:has(.executive-filters){flex-wrap:wrap;gap:16px}
.topbar:has(.executive-filters) .top-actions{flex-wrap:wrap}
.executive-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
.executive-grid>.card{min-width:0;margin-bottom:0}
.executive-grid .summary-line-card{grid-column:span 3}
.executive-grid .summary-expense-card{grid-column:span 2}
.executive-grid .summary-top-card{grid-column:span 4}
.executive-grid>.card:last-child{grid-column:span 2}
.summary-chart{height:290px;position:relative}
.summary-empty{height:100%;display:grid;place-items:center;text-align:center;color:var(--muted)}
.summary-notice{font-size:13px;color:var(--muted);line-height:1.5;margin:16px 0}
.metric strong{overflow-wrap:anywhere}
@media(max-width:1200px){.executive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.executive-grid .summary-line-card,.executive-grid .summary-top-card{grid-column:span 2}.executive-grid .summary-expense-card,.executive-grid>.card:last-child{grid-column:span 1}}
@media(max-width:760px){.executive-grid{grid-template-columns:minmax(0,1fr)}.executive-grid .summary-line-card,.executive-grid .summary-top-card,.executive-grid .summary-expense-card,.executive-grid>.card:last-child{grid-column:span 1}.executive-filters{width:100%}.executive-filters label{flex:1 1 120px}.executive-filters select{max-width:100%}.summary-chart{height:260px}}

.collaborator-template-link{color:var(--primary);text-decoration:underline}
.operational-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.operational-config-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.operational-kpi-card{border-top:3px solid var(--primary2);min-width:0;display:flex;flex-direction:column}
.kpi-card-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}
.operational-kpi-card h2{font-size:17px;margin:20px 0 6px;overflow-wrap:anywhere}
.operational-kpi-card p{font-size:13px;color:var(--muted);line-height:1.5;margin:0;min-height:40px;overflow-wrap:anywhere}
.operational-kpi-card strong{margin:18px 0 12px}
.kpi-card-period{font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:14px;margin:18px 0 8px}
.kpi-config-card{min-width:0;margin:0 0 18px}.kpi-config-card legend{font-weight:700;color:var(--primary)}
.kpi-config-card input,.kpi-config-card select{width:100%;min-width:0}
@media(max-width:1250px){.operational-kpi-grid,.operational-config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-import-grid{grid-template-columns:1fr}}
@media(max-width:760px){.operational-kpi-grid,.operational-config-grid{grid-template-columns:minmax(0,1fr)}}
