:root{font-family:Cairo,Tahoma,Arial,sans-serif;color:#17352f;background:#f2f5f0;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}
.shell{min-height:100vh;display:grid;grid-template-columns:240px minmax(0,1fr)}.sidebar{background:#103d36;color:white;padding:26px 18px;display:flex;flex-direction:column;gap:24px}.brand{font-size:29px;font-weight:800;letter-spacing:-1px}.brand small{display:block;font-size:11px;font-weight:500;color:#b7d2c9;letter-spacing:0}.nav{display:grid;gap:6px}.nav button{border:0;background:transparent;color:#d7e9e2;text-align:right;padding:11px 15px;border-radius:12px}.nav button.active,.nav button:hover{background:#285b50;color:white}.sidebar-footer{margin-top:auto;font-size:12px;color:#aac8bd}.main{min-width:0;padding:28px clamp(18px,3.5vw,56px) 50px}.topbar{display:flex;gap:14px;justify-content:space-between;align-items:center;margin-bottom:28px}.topbar h1{font-size:27px;margin:0}.sub{color:#6d8179;font-size:13px;margin:4px 0}.top-actions{display:flex;gap:10px;align-items:center}.select,.input{border:1px solid #d5e0d8;background:#fff;border-radius:10px;padding:10px 12px;min-width:0;color:#17352f}.btn{border:0;background:#0f6653;color:white;border-radius:10px;padding:10px 16px;font-weight:700}.btn:hover{background:#0a5344}.btn.secondary{background:white;border:1px solid #c7d6cd;color:#21584b}.btn.danger{background:#aa4b36}.btn.small{padding:6px 11px;font-size:12px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.card,.panel{background:white;border:1px solid #e2e9e3;border-radius:17px;box-shadow:0 4px 18px #1749360b}.card{padding:21px}.card .label{font-size:13px;color:#637a70}.card strong{display:block;font-size:28px;margin-top:4px;color:#104739}.panel{padding:22px;margin-top:20px}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px}.panel h2{font-size:19px;margin:0}.muted{color:#6a8076}.tag{display:inline-block;padding:3px 9px;border-radius:99px;font-size:12px;background:#e5f3ec;color:#176044;white-space:nowrap}.tag.warn{background:#fff1d8;color:#85570b}.tag.done{background:#e0f0ec;color:#145a49}.tag.gray{background:#eef0ef;color:#5c6c64}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:right;min-width:620px}th,td{padding:13px 11px;border-bottom:1px solid #e8eee9;vertical-align:middle}th{color:#678075;font-size:12px;font-weight:700}td{font-size:14px}.row-actions{display:flex;gap:7px}.split{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(290px,.7fr);gap:20px}.empty{padding:38px;text-align:center;color:#71857b}.banner{padding:13px 15px;border-radius:11px;margin:0 0 15px;background:#e4f3ea;color:#1d644a}.banner.error{background:#fbe9e4;color:#9e3528}.notice{background:#fff5df;border:1px solid #f3dfab;border-radius:12px;padding:13px;color:#795616;font-size:13px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at 80% 10%,#d4e7d8,#eef3eb 42%,#e5efe9)}.login{width:min(100%,410px);padding:34px;background:white;border-radius:22px;box-shadow:0 18px 55px #1a514b22}.login h1{font-size:32px;margin:5px 0}.login p{color:#6b8177}.field{display:grid;gap:5px;margin:13px 0}.field label{font-size:13px;font-weight:700}.field input,.field select{width:100%}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 15px}.dialog{border:0;border-radius:18px;padding:24px;width:min(94vw,500px);box-shadow:0 25px 80px #08281f55}.dialog::backdrop{background:#102c2780}.dialog h2{margin:0 0 14px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.money{font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}.form-error{color:#a13626;font-size:13px;min-height:18px}.login .btn{width:100%;margin-top:14px}.loading{padding:50px;text-align:center;color:#59766b}.detail-list{display:grid;gap:10px}.detail-list div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #eef1ee;padding-bottom:8px}.receipt{font-size:13px;overflow-wrap:anywhere}.toolbar{display:flex;gap:10px;align-items:center}.toolbar input{max-width:260px}.section-note{font-size:13px;color:#60786c}
.nav-heading{display:block;margin:12px 15px 2px;color:#9ac5b8;font-size:11px;font-weight:700}.mobile-nav-label{display:none}.week-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.week-day{border:1px solid #dbe7dd;border-radius:12px;padding:12px;min-width:0}.week-day h3{margin:0 0 8px;font-size:15px}.slot{background:#eef6f0;border-radius:10px;padding:10px;margin:8px 0;display:grid;gap:4px}.slot.inactive{background:#f0f1ef;color:#6b7770}.slot small{color:#526a5f}.alert-list{padding-inline-start:22px;line-height:2}.check-row{display:block;margin:7px 0}.dialog{max-height:90vh;overflow:auto}.row-actions{flex-wrap:wrap}
@media(max-width:800px){.shell{display:block}.sidebar{padding:15px;gap:12px}.brand{font-size:23px}.nav{display:none}.mobile-nav-label{display:flex;align-items:center;gap:10px;color:#d7e9e2}.mobile-nav-label .select{flex:1}.sidebar-footer{display:none}.main{padding:18px}.topbar{align-items:flex-start;flex-direction:column}.top-actions{width:100%;justify-content:space-between}.grid{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}.panel{padding:16px}}@media(max-width:480px){.grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.panel-head{align-items:flex-start;flex-direction:column}.toolbar{width:100%}.toolbar input{width:100%;max-width:none}.topbar h1{font-size:23px}}
.finance-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 4px;border-bottom:1px solid #e8eee9}.finance-row:last-child{border-bottom:0}.finance-row p{margin:5px 0;font-size:13px}.inline-cash-form{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.inline-cash-form .input{width:145px;padding:7px 8px}.inline-cash-form button{white-space:nowrap}.finance-row>.row-actions{justify-content:flex-end;align-items:center;max-width:56%}.banner ul{margin:6px 0 0;padding-inline-start:22px}.finance-row .muted{overflow-wrap:anywhere}@media(max-width:600px){.finance-row{align-items:flex-start;flex-direction:column}.finance-row>.row-actions{max-width:100%;width:100%;justify-content:flex-start}.inline-cash-form{width:100%}.inline-cash-form .input{flex:1;min-width:110px}}
