:root{--side:250px;--brand:#1f4e5f;--brand2:#2f7a8c;--bg:#f3f6f7}
body{background:var(--bg);font-size:.92rem}
.topbar{height:52px;background:linear-gradient(90deg,var(--brand),var(--brand2));color:#fff;position:sticky;top:0;z-index:1030}
.topbar .brand{font-weight:600;letter-spacing:.3px}
.wrap{display:flex;min-height:calc(100vh - 52px)}
.sidebar{width:var(--side);flex:0 0 var(--side);background:#fff;border-right:1px solid #dde5e8;overflow-y:auto;max-height:calc(100vh - 52px);position:sticky;top:52px;padding-bottom:20px}
.sidebar .sec{font-size:.72rem;text-transform:uppercase;color:#7b8b91;padding:12px 16px 4px;font-weight:600}
.sidebar a,.sidebar .linklike{display:block;padding:6px 16px;color:#24363c;text-decoration:none;border-left:3px solid transparent;font-size:.86rem;width:100%;text-align:left;background:none;border-top:0;border-right:0;border-bottom:0}
.sidebar a:hover,.sidebar .linklike:hover{background:#eef4f6}
.sidebar a.active{background:#e3eff2;border-left-color:var(--brand2);font-weight:600}
.sidebar i{width:20px;display:inline-block;color:var(--brand2)}
.content{flex:1;padding:18px;min-width:0}
.card{border:1px solid #dde5e8;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.card-header{background:#fff;font-weight:600}
.table-sm td,.table-sm th{padding:.3rem .45rem;vertical-align:middle}
.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
tr.opening td,tr.closing td,tr.total td{font-weight:700;background:#f2f7f8}
.form-label{margin-bottom:.2rem;font-weight:500;font-size:.85rem}
.req::after{content:" *";color:#c0392b}
.check-warn{color:#c0392b;font-weight:700}
.select2-container .select2-selection--single{height:31px;border-color:#ced4da}
.select2-container--default .select2-selection--single .select2-selection__rendered{line-height:29px}
.select2-container{width:100%!important}
.report-icons a{font-size:1.4rem;margin-left:8px}
.login-bg{min-height:100vh;background:linear-gradient(135deg,#dfeef0 0%,#eef3e6 50%,#f3e9ee 100%);display:flex;align-items:center;justify-content:center;padding:16px}
.login-box{width:100%;max-width:380px;background:#fbfdfc;border-radius:18px;box-shadow:0 10px 30px rgba(31,78,95,.12);padding:34px 30px}
.login-box h1{font-size:1.6rem;text-align:center;color:var(--brand);margin-bottom:22px}
.popup-ok{position:fixed;top:70px;left:50%;transform:translateX(-50%);z-index:2000;background:#198754;color:#fff;padding:12px 26px;border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,.2);font-weight:600}
.expgrid .row>div{margin-bottom:6px}
@media (max-width:991.98px){
 .sidebar{position:fixed;left:-260px;top:52px;height:calc(100vh - 52px);z-index:1020;transition:left .2s;max-height:none}
 .sidebar.open{left:0;box-shadow:4px 0 20px rgba(0,0,0,.15)}
 .content{padding:12px}
}
