:root{--blue:#2f80ed;--blue2:#79c9ff;--navy:#153a66;--bg:#f5fbff;--card:#fff;--green:#41bd78;--orange:#ffad42;--pink:#ff82ac;--red:#e95b5b;--muted:#7089a4;--line:#e3edf6;--shadow:0 12px 32px rgba(24,73,118,.12)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-rounded,"Segoe UI",Arial,sans-serif;color:var(--navy);background:linear-gradient(180deg,#eef9ff,#f9fdff)}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--blue);text-decoration:none}.hidden{display:none!important}
.auth-screen{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 20% 15%,#cfeeff 0 14%,transparent 15%),radial-gradient(circle at 80% 85%,#d8f6dc 0 16%,transparent 17%),linear-gradient(160deg,#eef9ff,#fff)}
.auth-card{width:min(430px,100%);background:#fff;border:1px solid #e8f2fa;border-radius:28px;box-shadow:var(--shadow);padding:30px;text-align:center}.auth-card h1{margin:12px 0 5px}.auth-card .sub{margin:0 0 20px;color:var(--muted)}.auth-card label{text-align:left}.auth-card input,.auth-card textarea{margin-bottom:12px}.school-logo{width:52px;height:52px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(145deg,#ffe16f,#ff9a65);box-shadow:inset 0 3px 0 #fff8,0 7px 14px #d4874d33;font-size:27px}.school-logo.big{width:78px;height:78px;border-radius:25px;font-size:40px;margin:auto}.login-hint,.foot-mini{font-size:12px;color:var(--muted);margin-top:14px}.device-box{background:#f3f9ff;border:1px dashed #9fcdf4;border-radius:16px;padding:12px;margin:16px 0;text-align:left}.device-box small{display:block;color:var(--muted)}.device-box strong{display:block;word-break:break-all;margin:4px 0 9px}.license-info{margin-top:12px;font-size:13px}.license-card textarea{resize:vertical;width:100%;padding:12px;border:1px solid var(--line);border-radius:13px}
.app{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{height:100vh;position:sticky;top:0;background:linear-gradient(180deg,#174f8c,#0e315b);padding:20px 14px;color:#fff}.brand{display:flex;align-items:center;gap:11px;padding:0 7px 18px}.brand b{font-size:21px}.brand small{display:block;color:#bad6f5;margin-top:2px}.nav{display:grid;gap:5px}.nav button{border:0;background:transparent;color:#d9eaff;border-radius:14px;padding:12px;text-align:left}.nav button span{display:inline-block;width:31px;font-size:18px}.nav button.active,.nav button:hover{background:#ffffff1c;color:white}.logout{position:absolute;left:14px;right:14px;bottom:18px}.main{padding:24px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.topbar h2{margin:4px 0 0}.topbar small{color:var(--muted)}.top-actions{display:flex;align-items:center;gap:8px}.menu-btn{display:none;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 11px}.page{animation:fade .18s ease}@keyframes fade{from{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:none}}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stats article{background:#fff;border:1px solid #ebf3f8;border-radius:20px;padding:16px;box-shadow:var(--shadow);display:flex;gap:12px;align-items:center}.stats i{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;font-style:normal;font-size:23px}.stats small{color:var(--muted);display:block;margin-bottom:4px}.stats strong{font-size:20px}.c-blue{background:#e7f3ff}.c-green{background:#e9fced}.c-orange{background:#fff3df}.c-pink{background:#ffedf4}.hero{margin-top:16px;border-radius:25px;padding:25px 28px;background:linear-gradient(135deg,#9ddcff,#dcf5ff 55%,#dcf5d9);display:flex;align-items:center;justify-content:space-between;overflow:hidden}.hero h1{font-size:31px;margin:9px 0 7px}.hero p{color:#466985;max-width:660px}.hero-chip{background:#fff9;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:700}.hero-kids{font-size:75px;white-space:nowrap}.section-title{margin:22px 0 12px}.quick-menu{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.quick-menu button{border:1px solid #ebf3f8;background:#fff;box-shadow:var(--shadow);border-radius:20px;padding:17px;text-align:left;color:var(--navy)}.quick-menu button:hover{transform:translateY(-2px)}.quick-menu i{font-style:normal;font-size:31px;display:block;margin-bottom:8px}.quick-menu b,.quick-menu span{display:block}.quick-menu span{font-size:12px;color:var(--muted);margin-top:4px}
.panel{background:#fff;border:1px solid #e9f1f7;border-radius:22px;box-shadow:var(--shadow);padding:19px}.mt{margin-top:16px}.mt-sm{margin-top:10px}.panel h3{margin:0 0 15px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.panel-head h3{margin:0}.two-col{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.cartoon-panel{text-align:center;background:linear-gradient(180deg,#fff,#f3faff)}.cartoon{font-size:86px}.cartoon-panel p{color:var(--muted)}.info-box{background:#eaf6ff;padding:15px;border-radius:16px;text-align:left}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:15px}.form-grid .full{grid-column:1/-1}label{font-size:12px;font-weight:750;display:block;margin-bottom:6px}input,select,textarea{width:100%;border:1px solid var(--line);background:#fbfdff;border-radius:13px;padding:11px 12px;color:var(--navy);outline:none}input:focus,select:focus,textarea:focus{border-color:#8fc8f7;box-shadow:0 0 0 3px #dff1ff}.toolbar{display:flex;gap:10px;margin:15px 0}.toolbar input{max-width:450px}.settings-actions,.receipt-actions{display:flex;gap:9px;flex-wrap:wrap}
.btn{border:0;border-radius:13px;padding:10px 14px;font-weight:750}.btn.primary{background:linear-gradient(135deg,#3994ff,#236fd6);color:white;box-shadow:0 7px 16px #2f80ed33}.btn.ghost{background:#edf6ff;color:#2669aa}.btn.danger{background:#ffeded;color:#bf4444}.btn.small{padding:7px 10px;font-size:12px}.btn.wide{width:100%}.link-btn{border:0;background:transparent;color:var(--blue);font-weight:700}.pill{display:inline-flex;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:800}.pill.green{background:#e4f8eb;color:#258249}.pill.orange{background:#fff0dc;color:#ad6418}.pill.red{background:#ffeded;color:#bd4545}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:680px}th,td{border-bottom:1px solid #edf2f6;padding:11px 9px;text-align:left;font-size:13px}th{font-size:12px;color:#6e88a3;background:#fbfdff}td .actions{display:flex;gap:5px}.icon-btn{border:0;border-radius:9px;padding:7px;background:#eef6ff}.icon-btn.red{background:#ffeded}.bar-chart{height:270px;display:flex;align-items:flex-end;gap:14px;padding:25px 8px 0}.bar-item{flex:1;text-align:center;min-width:48px}.bar{background:linear-gradient(180deg,#64baf8,#3f84ed);border-radius:12px 12px 4px 4px;min-height:4px}.bar-item small{display:block;margin-top:7px;color:var(--muted)}.bar-item b{font-size:11px}.bottom-nav{display:none}footer{text-align:center;font-size:12px;color:#8297ab;padding:24px 0 6px}
.modal{position:fixed;inset:0;background:#173a665e;backdrop-filter:blur(3px);display:grid;place-items:center;padding:16px;z-index:50}.modal-card{width:min(560px,100%);background:#fff;border-radius:23px;padding:20px;box-shadow:0 25px 70px #173a6655}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head h3{margin:0 0 15px}.modal-head button{border:0;background:#f1f6fb;border-radius:10px;padding:7px 10px}.receipt-card{text-align:center}.success-icon{font-size:64px}.receipt-card h2{color:#258249}.receipt-box{text-align:left;background:#f6fbff;border-radius:16px;padding:14px;margin:14px 0}.toast{position:fixed;top:18px;right:18px;background:#153a66;color:white;border-radius:12px;padding:11px 14px;z-index:100;opacity:0;pointer-events:none;transform:translateY(-8px);transition:.2s}.toast.show{opacity:1;transform:none}
@media(max-width:900px){.app{display:block}.sidebar{position:fixed;z-index:40;left:-270px;transition:.2s;width:250px}.sidebar.open{left:0}.main{padding:16px 14px 82px}.menu-btn{display:block}.stats{grid-template-columns:1fr 1fr}.quick-menu{grid-template-columns:1fr 1fr}.two-col{grid-template-columns:1fr}.bottom-nav{position:fixed;z-index:35;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(5,1fr);background:#fff;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav button{border:0;background:#fff;padding:8px 2px;color:#6f8399;font-size:10px}.bottom-nav button span{font-size:19px;display:block}.bottom-nav button.active{color:var(--blue);font-weight:800}.hero-kids{font-size:55px}}
@media(max-width:560px){.stats{grid-template-columns:1fr 1fr}.stats article{padding:12px}.stats i{width:40px;height:40px}.stats strong{font-size:16px}.hero{padding:19px;align-items:flex-end}.hero h1{font-size:24px}.hero-kids{font-size:43px}.quick-menu{gap:10px}.quick-menu button{padding:14px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.topbar .pill{display:none}}

.quick-menu{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.hero-actions{display:flex;gap:8px;flex-wrap:wrap}.top-actions{flex-wrap:wrap}
/* v3.0 full-feature additions */
.sidebar{overflow-y:auto;padding-bottom:16px}.logout{position:sticky;left:auto;right:auto;bottom:0;width:100%;margin-top:14px}.nav button{padding:10px 12px}.nav{padding-bottom:8px}.pill.blue{background:#e7f3ff;color:#2469ad}.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.export-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:150px;border:2px dashed #9fcdf4;background:#f4faff;border-radius:18px;cursor:pointer;color:var(--navy);font-size:16px}.drop-zone span{font-size:12px;color:var(--muted);margin-top:8px}.muted{color:var(--muted)}hr{border:0;border-top:1px solid var(--line);margin:18px 0}.print-modal{width:min(920px,96vw);max-height:94vh;overflow:auto}.print-letter{background:#fff;color:#111;padding:32px 38px;min-height:980px;font-family:"Times New Roman",serif;page-break-after:always}.print-letter:last-child{page-break-after:auto}.print-letter .letter-head{text-align:center;border-bottom:3px double #111;padding-bottom:12px;margin-bottom:24px}.print-letter .letter-head h2,.print-letter .letter-head h3{margin:3px 0}.print-letter table{min-width:0}.print-letter th,.print-letter td{border:1px solid #555;padding:7px}.print-letter .signature{margin-left:auto;width:280px;text-align:center;margin-top:40px}.cash-report{font-family:Arial,sans-serif;background:#fff;color:#111;padding:28px}.cash-report h2,.cash-report h3{text-align:center;margin:4px}.cash-report table{min-width:0}.cash-report th,.cash-report td{border:1px solid #555;padding:7px}.status-paid{color:#21834b;font-weight:800}.status-due{color:#b66013;font-weight:800}
@media(max-width:900px){.report-grid{grid-template-columns:1fr}.sidebar{padding-bottom:20px}}
@media print{body *{visibility:hidden!important}#printArea,#printArea *{visibility:visible!important}#printArea{position:absolute;left:0;top:0;width:100%;background:white}.print-modal{box-shadow:none;padding:0;max-height:none;width:100%}.no-print{display:none!important}.modal{position:absolute;display:block;background:white;padding:0}.print-letter{padding:12mm 14mm;min-height:auto}.cash-report{padding:10mm}}
