@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=DM+Mono:wght@400;500&display=swap');
:root{
  --bg:#f8fafc;--s1:#ffffff;--s2:#f1f5f9;--border:#e2e8f0;
  --brand:#4f46e5;--brand-d:#3730a3;--money:#059669;--danger:#dc2626;
  --warn:#d97706;--text:#0f172a;--sub:#64748b;--radius:14px;
  --shadow:0 1px 3px rgba(0,0,0,0.07),0 4px 12px rgba(0,0,0,0.04);
  --sports:#11998e;--arts:#a18cd1;--music:#ff9a9e;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{background:var(--bg);color:var(--text);font-family:'Plus Jakarta Sans',sans-serif;padding-bottom:75px;min-height:100vh;}

/* LOGIN */
.login{position:fixed;inset:0;background:linear-gradient(145deg,#f0f4ff,#faf8ff,#f0fdf4);display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:200;}
.lbox{background:white;border:1px solid var(--border);border-radius:20px;padding:2rem;width:100%;max-width:380px;box-shadow:0 8px 32px rgba(79,70,229,0.1);}
.lbox-logo{font-size:1.5rem;font-weight:800;color:var(--brand);margin-bottom:0.15rem;}
.lbox-sub{font-size:0.82rem;color:var(--sub);margin-bottom:1.75rem;}
.err{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:0.65rem;font-size:0.8rem;color:#dc2626;margin-top:0.4rem;display:none;}

/* HEADER */
.hdr{background:white;border-bottom:1px solid var(--border);padding:0.75rem 1rem;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:50;}
.hdr-name{font-size:0.9rem;font-weight:700;}
.hdr-sub{font-size:0.68rem;color:var(--sub);}
.sdot{font-size:0.65rem;padding:2px 7px;border-radius:20px;font-weight:600;}
.sd-on{background:#dcfce7;color:#166534;}
.sd-off{background:#fee2e2;color:#991b1b;}
.sd-sync{background:#dbeafe;color:#1e40af;animation:blink 1s infinite;}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0.4}}

/* FEE HERO */
.fee-hero{background:linear-gradient(135deg,#1e1b4b,#312e81,#4338ca);padding:1rem 1.25rem;}
.fh-label{font-size:0.7rem;font-weight:700;color:rgba(255,255,255,0.7);text-transform:uppercase;letter-spacing:0.05em;}
.fh-amount{font-family:'DM Mono',monospace;font-size:1.9rem;font-weight:500;color:white;line-height:1.1;margin:0.2rem 0;}
.fh-sub{font-size:0.76rem;color:rgba(255,255,255,0.75);}
.fh-btns{display:flex;gap:0.5rem;margin-top:0.75rem;}
.fh-btn{flex:1;padding:0.55rem;border:none;border-radius:9px;font-weight:700;font-size:0.78rem;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;}
.fh-primary{background:white;color:var(--brand);}
.fh-ghost{background:rgba(255,255,255,0.15);color:white;border:1px solid rgba(255,255,255,0.25);}

/* NAV */
.nav{background:white;border-top:1px solid var(--border);position:fixed;bottom:0;left:0;right:0;display:flex;overflow-x:auto;z-index:50;scrollbar-width:none;}
.nav::-webkit-scrollbar{display:none;}
.nlink{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:0.6rem 0.8rem;font-size:0.6rem;font-weight:600;color:var(--sub);cursor:pointer;border:none;background:none;transition:0.15s;font-family:'Plus Jakarta Sans',sans-serif;white-space:nowrap;}
.nlink .ni{font-size:1.15rem;}
.nlink.on{color:var(--brand);}

/* CONTAINER */
.wrap{padding:0.85rem;max-width:600px;margin:0 auto;}
.sec{display:none;}.sec.on{display:block;animation:up 0.2s ease;}
@keyframes up{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}

/* CARDS */
.card{background:white;border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-bottom:0.65rem;box-shadow:var(--shadow);}
.ct{font-size:0.88rem;font-weight:700;margin-bottom:0.7rem;display:flex;align-items:center;gap:0.4rem;}

/* FORMS */
label{font-size:0.66rem;font-weight:700;color:var(--sub);text-transform:uppercase;letter-spacing:0.04em;display:block;margin-bottom:0.18rem;}
input,select,textarea{width:100%;padding:0.6rem 0.75rem;margin-bottom:0.65rem;border:1.5px solid var(--border);border-radius:9px;font-size:0.87rem;background:var(--bg);color:var(--text);font-family:'Plus Jakarta Sans',sans-serif;}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);background:white;}
select option{background:white;}
input::placeholder,textarea::placeholder{color:#94a3b8;}

/* BUTTONS */
button{display:block;width:100%;padding:0.72rem;border:none;border-radius:10px;font-weight:700;font-size:0.87rem;cursor:pointer;transition:0.15s;font-family:'Plus Jakarta Sans',sans-serif;}
.btn-brand{background:var(--brand);color:white;}
.btn-brand:hover{background:var(--brand-d);}
.btn-money{background:var(--money);color:white;}
.btn-danger{background:var(--danger);color:white;}
.btn-warn{background:var(--warn);color:white;}
.btn-wa{background:#25d366;color:white;}
.btn-outline{background:transparent;border:1.5px solid var(--brand);color:var(--brand);}
.btn-ghost{background:var(--s2);border:1px solid var(--border);color:var(--sub);}
.btn-sports{background:linear-gradient(135deg,#11998e,#38ef7d);color:white;}
.btn-arts{background:linear-gradient(135deg,#a18cd1,#fbc2eb);color:white;}
.btn-music{background:linear-gradient(135deg,#ff9a9e,#fecfef);color:#7c2d12;}
.btn-sm{width:auto;padding:0.32rem 0.7rem;font-size:0.73rem;display:inline-block;margin:0;}

/* STATS */
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:0.5rem;margin-bottom:0.65rem;}
.stat{background:white;border:1px solid var(--border);border-radius:11px;padding:0.8rem;text-align:center;box-shadow:var(--shadow);}
.sn{font-family:'DM Mono',monospace;font-size:1.25rem;font-weight:500;}
.sl{font-size:0.63rem;color:var(--sub);text-transform:uppercase;letter-spacing:0.04em;margin-top:2px;}

/* STUDENT LIST */
.stu-row{display:flex;align-items:center;gap:0.7rem;padding:0.7rem;background:white;border:1px solid var(--border);border-radius:10px;margin-bottom:0.45rem;cursor:pointer;transition:0.15s;}
.stu-row:hover{border-color:var(--brand);}
.stu-av{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--brand),#7c3aed);display:flex;align-items:center;justify-content:center;color:white;font-weight:700;font-size:0.85rem;flex-shrink:0;}
.stu-name{font-weight:700;font-size:0.88rem;}
.stu-meta{font-size:0.7rem;color:var(--sub);}
.pay-badge{font-size:0.62rem;padding:2px 6px;border-radius:4px;font-weight:700;}
.pb-paid{background:#dcfce7;color:#166534;}
.pb-owe{background:#fef2f2;color:#dc2626;}
.pb-part{background:#fef3c7;color:#92400e;}

/* PROGRESS */
.prog-bg{background:var(--s2);height:8px;border-radius:4px;overflow:hidden;margin-top:0.25rem;}
.prog-fill{height:100%;background:var(--money);border-radius:4px;transition:width 0.4s;}

/* MODAL */
.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.5);justify-content:center;align-items:flex-end;z-index:100;}
.modal.on{display:flex;}
.mbox{background:white;border-radius:20px 20px 0 0;padding:1.4rem;width:100%;max-width:600px;max-height:92vh;overflow-y:auto;animation:slideup 0.25s ease;}
@keyframes slideup{from{transform:translateY(100%)}to{transform:none}}
.mhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;}
.mclose{background:none;border:none;font-size:1.3rem;cursor:pointer;color:var(--sub);width:auto;margin:0;}

/* PROFILE TABS */
.profile-tabs{display:flex;gap:0.35rem;margin-bottom:0.7rem;overflow-x:auto;padding-bottom:2px;scrollbar-width:none;}
.profile-tabs::-webkit-scrollbar{display:none;}
.ptab{flex-shrink:0;padding:0.4rem 0.8rem;border:1.5px solid var(--border);border-radius:8px;font-size:0.75rem;font-weight:700;cursor:pointer;background:var(--bg);color:var(--sub);transition:0.15s;}
.ptab.on{background:var(--brand);color:white;border-color:var(--brand);}
.prof-hdr{background:linear-gradient(135deg,var(--brand),#7c3aed);border-radius:12px;padding:1rem;color:white;margin-bottom:0.7rem;}

/* SCORE TABLE */
.stbl{width:100%;border-collapse:collapse;font-size:0.8rem;margin-bottom:0.65rem;}
.stbl th{padding:0.45rem 0.5rem;background:var(--s2);color:var(--sub);font-weight:700;font-size:0.65rem;text-transform:uppercase;text-align:left;}
.stbl td{padding:0.45rem 0.5rem;border-bottom:1px solid var(--border);}
.stbl input[type=number]{width:60px;padding:0.28rem 0.4rem;margin:0;font-size:0.8rem;border-radius:6px;}
.gA{color:#166534;font-weight:700;}.gB{color:#065f46;font-weight:700;}.gC{color:#92400e;font-weight:700;}.gF{color:#dc2626;font-weight:700;}

/* REPORT */
.rc{background:white;border:2px solid var(--border);border-radius:12px;padding:1.1rem;}
.rc-hdr{text-align:center;border-bottom:2px solid var(--brand);padding-bottom:0.65rem;margin-bottom:0.65rem;}
.rc-school{font-size:1rem;font-weight:800;color:var(--brand);}
.rct{width:100%;border-collapse:collapse;font-size:0.79rem;margin:0.5rem 0;}
.rct th{background:var(--brand);color:white;padding:0.4rem 0.5rem;text-align:left;font-size:0.68rem;}
.rct td{padding:0.4rem 0.5rem;border-bottom:1px solid var(--border);}
.rct tr:nth-child(even) td{background:#f8f9ff;}
.rc-foot{background:var(--s2);border-radius:8px;padding:0.7rem;margin-top:0.65rem;font-size:0.8rem;}

/* SPORTS */
.sport-card{background:white;border:2px solid var(--border);border-radius:11px;padding:0.9rem;cursor:pointer;transition:0.15s;}
.sport-card.sel{border-color:var(--sports);background:#f0fdf4;}
.sport-card:hover{border-color:var(--sports);}
.sports-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;margin-bottom:0.65rem;}
.team-row{display:flex;align-items:center;gap:0.6rem;padding:0.5rem 0;border-bottom:1px solid var(--border);}
.team-av{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--sports),#38ef7d);display:flex;align-items:center;justify-content:center;color:white;font-weight:700;font-size:0.75rem;flex-shrink:0;}
.fixture{background:#f0fdf4;border-radius:9px;padding:0.65rem;margin-bottom:0.45rem;border-left:3px solid var(--sports);}

/* ARTS */
.art-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.6rem;margin-bottom:0.65rem;}
.art-card{background:white;border:1px solid var(--border);border-radius:11px;overflow:hidden;cursor:pointer;transition:0.15s;}
.art-card:hover{box-shadow:var(--shadow);transform:translateY(-2px);}
.art-prev{height:100px;background:linear-gradient(135deg,#a18cd1,#fbc2eb);display:flex;align-items:center;justify-content:center;font-size:1.75rem;color:white;}
.art-info{padding:0.6rem;}
.art-title{font-weight:700;font-size:0.82rem;}
.art-stu{font-size:0.7rem;color:var(--sub);}

/* MUSIC */
.music-card{background:white;border:1px solid var(--border);border-radius:11px;padding:0.9rem;}
.music-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;margin-bottom:0.65rem;}
.inst-row{display:flex;justify-content:space-between;align-items:center;padding:0.45rem 0;border-bottom:1px solid var(--border);}
.inst-row:last-child{border-bottom:none;}
.plog{background:var(--s2);border-radius:8px;padding:0.6rem;margin-bottom:0.4rem;}

/* OPPORTUNITY */
.opp-card{background:white;border:1px solid var(--border);border-radius:11px;padding:0.9rem;margin-bottom:0.5rem;cursor:pointer;transition:0.15s;}
.opp-card:hover{border-color:var(--brand);}
.opp-card.locked{opacity:0.65;filter:blur(0.3px);position:relative;}
.opp-card.locked::after{content:'✨ Premium';position:absolute;top:9px;right:9px;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:white;font-size:0.6rem;padding:2px 7px;border-radius:10px;font-weight:700;}
.opp-badge{font-size:0.62rem;padding:2px 6px;border-radius:4px;font-weight:700;}
.ob-s{background:#dbeafe;color:#1e40af;}
.ob-g{background:#dcfce7;color:#166534;}
.ob-i{background:#fef3c7;color:#92400e;}
.ob-c{background:#fce7f3;color:#9d174d;}
.dl-urgent{background:#fee2e2;color:#991b1b;font-size:0.65rem;padding:2px 6px;border-radius:4px;font-weight:600;}
.dl-soon{background:#fef3c7;color:#92400e;font-size:0.65rem;padding:2px 6px;border-radius:4px;font-weight:600;}
.dl-ok{background:#dcfce7;color:#166534;font-size:0.65rem;padding:2px 6px;border-radius:4px;font-weight:600;}

/* TABLE */
.twrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:0.8rem;}
th{padding:0.5rem 0.6rem;background:var(--s2);color:var(--sub);font-weight:700;font-size:0.65rem;text-transform:uppercase;text-align:left;}
td{padding:0.5rem 0.6rem;border-bottom:1px solid var(--border);}

/* CHIP */
.chip{font-size:0.6rem;padding:2px 6px;border-radius:4px;font-weight:700;}
.chip-ok{background:#dcfce7;color:#166534;}
.chip-warn{background:#fef3c7;color:#92400e;}
.chip-bad{background:#fee2e2;color:#991b1b;}

/* UPGRADE */
.upgrade-lock{background:#fff7ed;border:1px solid #fed7aa;border-radius:11px;padding:1rem;text-align:center;margin-top:0.75rem;}

/* FINANCE AI */
.ai-empty{text-align:center;padding:2rem 1rem;}
.ai-empty .ai-icon{font-size:3rem;margin-bottom:0.75rem;}
.ai-rec{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:0.85rem;margin-bottom:0.65rem;}
.ai-loading{text-align:center;padding:1.5rem;color:var(--sub);}
.ai-loading::after{content:'';display:inline-block;width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--brand);border-radius:50%;animation:spin 0.8s linear infinite;margin-left:8px;vertical-align:middle;}
@keyframes spin{to{transform:rotate(360deg)}}

/* COMMS */
.social-item{display:flex;justify-content:space-between;align-items:center;padding:0.7rem;background:var(--s2);border-radius:9px;margin-bottom:0.4rem;}
.comm-log{padding:0.6rem 0;border-bottom:1px solid var(--border);}
.comm-log:last-child{border-bottom:none;}

/* SECURITY */
.sec-result{background:white;border:1px solid var(--border);border-radius:10px;padding:0.85rem;margin-bottom:0.45rem;}
.allergy-alert{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:0.6rem;margin-top:0.45rem;font-size:0.8rem;color:#dc2626;font-weight:600;}

/* HEALTH */
.incident-row{display:flex;justify-content:space-between;align-items:center;padding:0.6rem 0;border-bottom:1px solid var(--border);}

/* ALUMNI */
.alumni-row{display:flex;justify-content:space-between;align-items:center;padding:0.6rem 0;border-bottom:1px solid var(--border);}

/* PLAN BADGE */
.plan-badge{font-size:0.62rem;padding:2px 7px;border-radius:20px;font-weight:700;}
.plan-basic{background:#fef3c7;color:#92400e;}
.plan-premium{background:linear-gradient(90deg,#f093fb,#f5576c);color:white;}

@media(min-width:480px){.wrap{max-width:600px;}}
