:root{--ink:#17231f;--muted:#66756f;--green:#0c7a53;--green-dark:#07583d;--mint:#e8f5ef;--gold:#e4a72b;--surface:#fff;--bg:#f3f6f4;--line:#dfe7e3}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.app-shell{min-height:100vh;display:flex}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;background:linear-gradient(165deg,#102e25,#081d18);color:#fff;padding:24px 16px;z-index:1030;display:flex;flex-direction:column}.brand{color:#fff;text-decoration:none;font-weight:750;font-size:1.08rem;display:flex;align-items:center;gap:11px;margin:0 10px 28px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--gold);color:#17231f;font-size:.84rem}.sidebar .nav-link{color:#bcd0c8;border-radius:10px;padding:10px 12px;font-size:.93rem}.sidebar .nav-link:hover,.sidebar .nav-link:focus{background:#ffffff14;color:#fff}.sidebar-footer{margin-top:auto;padding:16px 12px 0;color:#78978b;font-size:.76rem;border-top:1px solid #ffffff12}.main{margin-left:260px;min-width:0;width:100%}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;position:sticky;top:0;z-index:1020}.station-switcher{max-width:320px;width:100%}.content{padding:28px;max-width:1680px;margin:auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px}.eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;color:var(--green);font-weight:750}.page-title{font-size:1.65rem;font-weight:760;margin:.25rem 0}.page-subtitle{color:var(--muted);margin:0}.card{border:1px solid var(--line);border-radius:16px;box-shadow:0 5px 18px rgba(10,50,37,.035)}.metric-card .card-body{padding:19px}.metric-label{font-size:.79rem;color:var(--muted);font-weight:650}.metric-value{font-size:1.55rem;font-weight:780;margin-top:5px}.metric-note{font-size:.76rem;color:var(--muted)}.table{--bs-table-bg:transparent}.table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:750;border-bottom-color:var(--line);white-space:nowrap}.table td{vertical-align:middle;border-bottom-color:#edf1ef}.badge-status{display:inline-flex;padding:.37rem .62rem;border-radius:999px;font-size:.72rem;font-weight:700;background:#eef2f0;color:#46554f}.status-OPEN,.status-VALIDATED,.status-ACTIVE,.status-CLEARED,.status-CLOSED{background:#dff4e8;color:#09633f}.status-PENDING,.status-PENDING_VALIDATION{background:#fff2cc;color:#7c5900}.status-CANCELLED,.status-INACTIVE,.status-REJECTED{background:#fee8e6;color:#982a24}.btn-primary{--bs-btn-bg:var(--green);--bs-btn-border-color:var(--green);--bs-btn-hover-bg:var(--green-dark);--bs-btn-hover-border-color:var(--green-dark);border-radius:9px;font-weight:650}.btn-outline-primary{--bs-btn-color:var(--green);--bs-btn-border-color:var(--green);--bs-btn-hover-bg:var(--green);--bs-btn-hover-border-color:var(--green);border-radius:9px;font-weight:600}.btn-outline-secondary{border-radius:9px;font-weight:600}.section-title{font-size:1.02rem;font-weight:740}.empty-state{text-align:center;padding:42px 18px;color:var(--muted)}.bar-row{display:grid;grid-template-columns:70px 1fr 100px;align-items:center;gap:10px;font-size:.8rem;margin:11px 0}.bar-track{height:9px;background:#edf2ef;border-radius:99px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,var(--green),#31a776);border-radius:99px}.auth-page{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;background:#0b2b22}.auth-visual{padding:9vw;color:#fff;display:flex;flex-direction:column;justify-content:center;background:radial-gradient(circle at 20% 30%,#196e51 0,transparent 38%),linear-gradient(155deg,#0d3b2e,#071e18)}.auth-visual h1{font-weight:800;font-size:clamp(2.5rem,6vw,5.5rem);line-height:.96;max-width:760px}.auth-panel{background:#fff;padding:8vw;display:flex;align-items:center}.auth-card{width:100%;max-width:440px}.form-control,.form-select{border-radius:9px;border-color:#cfdbd5;padding:.67rem .78rem;font-size:.92rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control:focus,.form-select:focus{border-color:var(--green);box-shadow:0 0 0 .25rem rgba(12,122,83,.18)}.form-label{font-size:.85rem;font-weight:650;color:#2c3e37}.form-field-wrapper input,.form-field-wrapper select,.form-field-wrapper textarea{width:100%;border-radius:9px;border:1px solid #cfdbd5;padding:.67rem .78rem;font-size:.92rem}.form-field-wrapper input:focus,.form-field-wrapper select:focus,.form-field-wrapper textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 .25rem rgba(12,122,83,.18)}.print-only{display:none}
.trend-grid{height:220px;display:grid;grid-template-columns:repeat(12,minmax(22px,1fr));gap:9px;align-items:end}.trend-column{height:100%;display:grid;grid-template-rows:24px 1fr 22px;align-items:end;text-align:center}.trend-value{font-size:.62rem;color:var(--muted);overflow:hidden}.trend-bar{height:100%;background:#edf2ef;border-radius:7px 7px 2px 2px;display:flex;align-items:end;overflow:hidden}.trend-bar span{display:block;width:100%;min-height:2px;background:linear-gradient(180deg,#31a776,var(--green));border-radius:7px 7px 0 0}.trend-label{font-size:.7rem;color:var(--muted);padding-top:5px}
@media(max-width:991.98px){.sidebar{transform:translateX(-105%);transition:.2s}.sidebar.show{transform:translateX(0);box-shadow:15px 0 35px #0003}.main{margin-left:0}.content{padding:18px}.topbar{padding:0 14px}.user-name{display:none}.station-switcher{max-width:220px}.page-header{flex-direction:column}.auth-page{grid-template-columns:1fr}.auth-visual{display:none}.auth-panel{min-height:100vh;padding:24px}.trend-grid{overflow-x:auto;grid-template-columns:repeat(12,42px)}}
@media(max-width:575.98px){.topbar .btn-outline-secondary{display:none}.content{padding:14px}.metric-value{font-size:1.3rem}.table-responsive{font-size:.83rem}}
@media print{.sidebar,.topbar,.no-print,.btn{display:none!important}.main{margin:0}.content{padding:0}.card{box-shadow:none;border-color:#bbb}.print-only{display:block}body{background:white;font-size:11px}.page-title{font-size:20px}}
