*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background:#f3f6fb;color:#182235;font:15px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;overflow-wrap:anywhere}.topbar{min-height:72px;background:#101c36;color:#fff;display:flex;align-items:center;gap:14px;justify-content:space-between;padding:10px 24px;position:sticky;top:0;z-index:100;box-shadow:0 4px 18px #0c183022}.brand{font-weight:800;color:#fff;text-decoration:none;font-size:19px;min-width:0}.brand small{display:block;font-weight:400;color:#b9c7e2;font-size:11px}.top-actions{display:flex;align-items:center;gap:12px;white-space:nowrap}.top-actions a{color:#fff}.shell{display:flex;min-height:calc(100vh - 72px)}.sidebar{width:230px;background:#172541;padding:20px 12px;flex:0 0 230px;align-self:stretch}.sidebar nav{display:grid;gap:7px}.nav-group{display:block;padding:5px;border:1px solid #304364;border-radius:12px;min-width:0}.nav-group-title{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#b5c8e8;background:transparent;text-transform:uppercase;font-size:11px;font-weight:800;letter-spacing:.08em;padding:9px;border-radius:8px;min-height:38px}.nav-group-title:hover,.nav-group.expanded .nav-group-title{background:#24385b;color:#fff}.nav-chevron{display:inline-block;transition:transform .28s ease}.nav-group.expanded .nav-chevron{transform:rotate(180deg)}.nav-group-items{display:grid;gap:4px;max-height:0;opacity:0;overflow:hidden;visibility:hidden;transition:max-height .38s ease,opacity .28s ease,visibility .28s ease}.nav-group-items.is-open{max-height:420px;opacity:1;visibility:visible;padding-top:5px}.sidebar .nav-link{display:block;transition:background-color .2s ease,color .2s ease,box-shadow .2s ease}.sidebar .nav-link.active{background:#2f65d9;color:#fff;font-weight:700;box-shadow:inset 3px 0 #8bb5ff}.nav-group-items .nav-link{padding:9px 10px;font-size:13px;margin-left:2px}.nav-group a{padding:9px 10px;font-size:13px}.sidebar a{color:#dbe5f8;text-decoration:none;padding:12px 14px;border-radius:9px}.sidebar a:hover,.sidebar a:focus{background:#293d64;color:#fff}.sidebar .nav-link.active:hover{background:#2f65d9}.main{padding:26px;width:100%;min-width:0;overflow:hidden}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.page-heading h1{margin:0;font-size:clamp(21px,2.5vw,28px);overflow-wrap:anywhere}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.card,.panel{background:#fff;border:1px solid #e5eaf3;border-radius:14px;padding:20px;box-shadow:0 5px 18px #18223508;min-width:0}.card .label{color:#64748b;font-size:13px}.card .value{font-size:clamp(19px,2vw,25px);font-weight:800;margin-top:7px;overflow-wrap:anywhere}.panel{margin-top:20px}.panel h2{font-size:18px;margin:0 0 16px}.toolbar{display:flex;justify-content:space-between;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:15px}.btn,button{border:0;border-radius:8px;background:#215bd6;color:#fff;padding:10px 14px;cursor:pointer;font:inherit;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px}.btn:hover,button:hover{filter:brightness(.96)}button:disabled{opacity:.65;cursor:wait}.btn.secondary{background:#e8eef9;color:#1c376b}.btn.danger{background:#b42318;color:white}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:grid;gap:6px;min-width:0}.field.full{grid-column:1/-1}label{font-size:13px;font-weight:650;color:#39465d}input,select,textarea{width:100%;min-width:0;padding:11px 12px;border:1px solid #d4dce9;border-radius:8px;background:#fff;font:inherit;color:#182235;max-width:100%}input[type=checkbox]{width:auto;min-height:auto}textarea{min-height:90px;resize:vertical}.table-wrap{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;border:1px solid #e7ebf2;border-radius:10px;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x}table{border-collapse:collapse;width:100%;min-width:760px;background:white}th,td{text-align:left;padding:12px 13px;border-bottom:1px solid #edf0f5;vertical-align:top}th{background:#f7f9fc;color:#526078;font-size:12px;white-space:nowrap}td{font-size:14px;overflow-wrap:anywhere}.pill{display:inline-block;border-radius:30px;padding:3px 9px;background:#e6f6ec;color:#187442;font-size:12px;white-space:nowrap}.pill.warn{background:#fff1d6;color:#8a5300}.pill.bad{background:#fde7e7;color:#a51f1f}.muted{color:#6b7890}.alert{padding:12px 14px;background:#e8f7ee;color:#146c3b;border-radius:8px;margin-bottom:14px}.error{background:#fff0f0;color:#a51f1f}.inline-form{display:inline}.small{font-size:12px}.menu-toggle{display:none}.login-wrap{max-width:460px;margin:8vh auto;padding:22px}.login-wrap .panel{padding:28px}.login-wrap h1{margin-top:0}.code{background:#101c36;color:#d9e7ff;padding:14px;border-radius:8px;overflow-wrap:anywhere;white-space:pre-wrap;overflow-x:auto}.notice{padding:14px;background:#fff8df;border:1px solid #f1dda0;border-radius:9px}.actions{display:flex;gap:7px;flex-wrap:wrap}.actions form{margin:0}.report-total{font-size:clamp(18px,2vw,24px);font-weight:800}.table-scroll-hint{display:none;color:#64748b;font-size:12px;margin:4px 0 8px}.responsive-chart{width:100%;overflow-x:auto}.print-only{display:none}
@media(max-width:1100px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.main{padding:20px}.sidebar{width:215px;flex-basis:215px}}
@media(max-width:760px){.topbar{min-height:62px;padding:9px 12px;gap:9px;flex-wrap:wrap}.brand{font-size:16px;flex:1}.brand small{font-size:10px}.menu-toggle{display:inline-flex;flex:0 0 auto;padding:7px 11px;min-height:38px;background:#2b3d5f}.top-actions{font-size:12px;gap:8px}.admin-role{max-width:110px;overflow:hidden;text-overflow:ellipsis}.shell{display:block;min-height:calc(100vh - 62px)}.sidebar{display:none;width:100%;padding:10px;position:sticky;top:62px;z-index:90;box-shadow:0 8px 15px #101c3620}.sidebar.open{display:block}.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.sidebar a{padding:10px;font-size:13px}.nav-group{grid-column:1/-1}.nav-group-items .nav-link{font-size:12px;padding:9px}.nav-group-title{font-size:11px}.main{padding:13px;overflow:visible}.page-heading{align-items:flex-start;margin-bottom:15px}.page-heading h1{font-size:21px}.page-heading span{font-size:12px;white-space:nowrap}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.card{padding:13px;border-radius:11px}.card .label{font-size:12px}.card .value{font-size:18px}.panel{padding:13px;margin-top:14px;border-radius:11px}.panel h2{font-size:16px}.form-grid{grid-template-columns:1fr;gap:12px}.field.full{grid-column:auto}.table-wrap{border-radius:8px}.table-scroll-hint{display:block}.table-wrap table{min-width:720px}th,td{padding:10px;font-size:13px}.toolbar{align-items:stretch}.toolbar>.field{flex:1;min-width:130px}.toolbar>div:last-child{display:flex;gap:6px;flex-wrap:wrap}.btn,button{padding:9px 11px;font-size:13px}.actions{min-width:120px}.login-wrap{margin:4vh auto;padding:14px}.login-wrap .panel{padding:20px}}
@media(max-width:380px){.top-actions .admin-role{display:none}.cards{grid-template-columns:1fr 1fr}.card .value{font-size:16px}.main{padding:10px}.page-heading h1{font-size:19px}}
@media print{body{background:#fff;font-size:11px}.topbar,.sidebar,.page-heading span,.toolbar,.btn,button,.no-print{display:none!important}.shell{display:block;min-height:0}.main{padding:0;overflow:visible}.panel,.card{box-shadow:none;border:0;padding:8px;margin:0}.table-wrap{overflow:visible;border:0}.table-wrap table{min-width:0;width:100%;font-size:10px}th,td{padding:5px;font-size:9px;overflow-wrap:anywhere}.cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.print-only{display:block}.page-heading h1{font-size:18px}}
