*{box-sizing:border-box}html{font-size:16px}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:#f4f7fb;color:#172033}a{color:inherit;text-decoration:none}.shell{min-height:100vh;display:grid;grid-template-columns:270px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:#0f2747;color:#fff;padding:18px 14px;display:flex;flex-direction:column;overflow:hidden}.brand{display:flex;align-items:center;gap:12px;padding:10px 8px 18px;border-bottom:1px solid rgba(255,255,255,.1)}.brand strong{display:block;font-size:18px}.brand span{font-size:11px;opacity:.72}.logo-box,.logo-mark{width:52px;height:52px;border-radius:13px;background:#fff;display:grid;place-items:center;color:#0f2747;font-weight:800;overflow:hidden}.logo-box img{max-width:44px;max-height:44px}.sidebar nav{display:grid;gap:5px;margin-top:15px;overflow:auto;padding-right:4px}.sidebar nav a{display:flex;gap:10px;align-items:center;padding:11px;border-radius:10px;color:#eaf1fb;font-weight:650}.sidebar nav a b{width:28px;text-align:center}.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.13)}.side-bottom{margin-top:auto;padding:14px 8px 0;border-top:1px solid rgba(255,255,255,.1);display:grid;gap:4px}.side-bottom small{opacity:.75}.side-bottom a{margin-top:8px;color:#fff}.main{padding:24px 28px 36px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;gap:15px;background:#fff;border:1px solid #dfe6ef;border-radius:16px;padding:18px 20px;margin-bottom:18px;box-shadow:0 8px 24px rgba(15,39,71,.05)}.topbar h1{margin:0;font-size:28px}.topbar p{margin:5px 0 0;color:#718096;font-size:13px}.top-actions{display:flex;gap:10px;align-items:center}.icon-btn{display:none}.btn,button{border:0;border-radius:9px;padding:10px 14px;font:inherit;font-weight:700;cursor:pointer}.btn.primary,button.primary{background:#153E75!important;color:#fff!important}.btn.secondary,button.secondary{background:#fff!important;color:#153E75!important;border:1px solid #153E75}.btn.danger,button.danger{background:#fff1f2;color:#b42318;border:1px solid #fecaca}.btn.small{padding:6px 9px;font-size:12px}.panel,.card{background:#fff;border:1px solid #dfe6ef;border-radius:14px;padding:18px;box-shadow:0 6px 20px rgba(15,39,71,.04)}.panel{margin-bottom:16px}.panel h2,.panel h3{margin-top:0}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.stat{background:#fff;border:1px solid #dfe6ef;border-radius:14px;padding:17px}.stat span{display:block;color:#718096;font-size:12px;font-weight:700;text-transform:uppercase}.stat strong{display:block;font-size:27px;margin-top:8px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.span2{grid-column:span 2}label{display:block;font-size:12px;font-weight:700;color:#44546a}input,select,textarea{width:100%;margin-top:6px;padding:11px 12px;border:1px solid #cfd8e5;border-radius:9px;background:#fff;font:inherit;color:#172033}textarea{min-height:90px;resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid rgba(21,62,117,.10);border-color:#153E75}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.table-wrap{overflow:auto;border:1px solid #e3e9f1;border-radius:12px}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{padding:11px 10px;border-bottom:1px solid #edf1f5;text-align:left;vertical-align:top}.table th{background:#f7f9fc;color:#58677b;font-size:11px;text-transform:uppercase}.table tr:hover td{background:#fbfdff}.right{text-align:right!important}.center{text-align:center!important}.muted{color:#718096}.badge{display:inline-block;padding:5px 8px;border-radius:999px;background:#eef3f9;color:#36506f;font-size:11px;font-weight:800}.badge.green{background:#eaf8ef;color:#16794a}.badge.red{background:#fff0f1;color:#b42318}.badge.orange{background:#fff6e8;color:#a65b00}.alert{padding:12px 14px;border-radius:10px;margin-bottom:14px}.alert.success{background:#ecfdf3;color:#166534}.alert.error{background:#fff1f2;color:#991b1b}.alert.warning{background:#fff8e6;color:#8a4b00}.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.filters label{min-width:145px}.footer{padding:24px 4px 0;color:#8a97a8;font-size:11px;text-align:center}.login-body{min-height:100vh;display:grid;place-items:center;background:#eef3f9;padding:20px}.login-card{width:min(430px,100%);background:#fff;border:1px solid #dfe6ef;border-radius:18px;padding:28px;box-shadow:0 20px 50px rgba(15,39,71,.1)}.login-logo{text-align:center;margin-bottom:16px}.login-logo img{max-width:220px;max-height:90px}.public{max-width:1100px;margin:auto;padding:22px}.public-header{display:flex;align-items:center;justify-content:space-between;gap:15px;background:#fff;border:1px solid #dfe6ef;padding:14px 18px;border-radius:14px;margin-bottom:18px}.public-header img{max-height:52px;max-width:190px}.public-form{max-width:760px;margin:auto}.receipt{background:#fff;color:#111;padding:20px}.receipt-head{display:flex;justify-content:space-between;gap:20px;border-bottom:2px solid #153E75;padding-bottom:10px}.receipt-head img{max-width:130px;max-height:70px}.receipt table{width:100%;border-collapse:collapse;margin-top:12px}.receipt th,.receipt td{border:1px solid #999;padding:7px;font-size:12px}.receipt .total{font-size:18px;font-weight:800}.overlay{display:none}@media(max-width:1100px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:50;width:280px;left:0;top:0;transform:translateX(-103%);transition:.2s}.sidebar.open{transform:none}.overlay{position:fixed;inset:0;background:#0006;z-index:40}.overlay.show{display:block}.icon-btn{display:inline-grid;place-items:center;width:42px;height:42px;background:#fff;border:1px solid #cfd8e5;color:#153E75}.main{padding:16px}.stats{grid-template-columns:repeat(2,1fr)}.grid3{grid-template-columns:1fr 1fr}}@media(max-width:700px){.topbar{align-items:flex-start}.topbar h1{font-size:22px}.stats,.grid2,.grid3,.form-grid,.form-grid.three{grid-template-columns:1fr}.span2{grid-column:span 1}.top-actions .btn{display:none}.main{padding:12px}.panel,.card{padding:14px}.table{font-size:12px}}
@media print{.sidebar,.topbar,.footer,.no-print{display:none!important}.shell{display:block}.main{padding:0}.panel{box-shadow:none;border:0}.receipt{padding:0}@page{size:A4;margin:12mm}}
