@import url('vendor/fontawesome/css/all.min.css');
@import url('responsive.css');
:root{--ink:#26362e;--muted:#809087;--green:#2c7554;--green-dark:#215a40;--paper:#f6f8f6;--line:#e7ece8;--mint:#e8f3ed}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:14px;line-height:1.5}a{color:var(--green);text-decoration:none}a:hover{color:var(--green-dark)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}button{cursor:pointer}.sidebar{width:252px;position:fixed;left:0;top:0;bottom:0;background:white;border-right:1px solid var(--line);padding:30px 20px 20px;display:flex;flex-direction:column;z-index:20;overflow-y:auto}.brand{font-size:24px;font-weight:750;letter-spacing:-1px;color:#233e30;display:flex;align-items:center;gap:10px}.brand-icon{width:36px;height:38px;background:var(--green);border-radius:10px 10px 10px 2px;color:white;text-align:center;line-height:38px;font-family:Georgia,serif;font-size:27px}.brand-dot{color:#75ac86;margin-left:-10px}.workspace{display:flex;align-items:center;gap:11px;border:1px solid var(--line);border-radius:10px;padding:12px 9px;margin:30px 0 18px}.workspace strong{font-size:12px;display:block;max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace small,.sidebar-bottom small{display:block;color:var(--muted);font-size:10px}.avatar{background:#e8eee5;color:#57835d;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;border-radius:9px;font-weight:650}.avatar.small{width:30px;height:30px;border-radius:50%}.nav-label{color:#9ba69f;text-transform:uppercase;font-size:9px;letter-spacing:1.6px;font-weight:650;margin:22px 12px 9px}.nav-link{display:flex;align-items:center;gap:13px;color:#718077;font-weight:500;font-size:12px;padding:10px 13px;margin:3px 0;border-radius:7px}.nav-link:hover,.nav-link.active{background:#eaf3ed;color:#2c7554}.nav-link.active{font-weight:650}.nav-icon{font-size:18px;width:19px;text-align:center}.sidebar-bottom{margin-top:auto;padding:32px 12px 0;color:#74847a;font-size:11px}.sidebar-bottom small{margin-top:7px}.status-dot{display:inline-block;width:6px;height:6px;background:#6f9f71;border-radius:50%;margin-right:6px}.page-shell{margin-left:252px}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:23px;padding:0 36px}.breadcrumb{font-size:11px;color:#56655c;margin:0;white-space:nowrap}.breadcrumb span{padding:0 12px;color:#b9c2bc}.global-search{display:flex;align-items:center;gap:9px;margin-left:auto;color:#8f9d93}.global-search input{border:0;background:transparent;font-size:11px;width:210px;padding:8px}.user-chip{display:flex;align-items:center;gap:9px;font-size:11px;color:#5c6d61;margin-left:auto}.text-button{border:0;background:none;color:#85948a;font-size:11px}.icon-button{border:0;background:transparent;font-size:20px;color:#738478}.main{padding:32px 38px;max-width:1700px;margin:auto}.page-title{display:flex;justify-content:space-between;align-items:center;margin:3px 0 25px}.eyebrow{text-transform:uppercase;letter-spacing:1.5px;font-size:9px;color:#8a9a90;margin-bottom:7px}h1{font-size:27px;letter-spacing:-.8px;margin:0;font-weight:650}h2{font-size:17px;margin:0 0 6px;letter-spacing:-.3px}h3{font-size:15px;margin:0 0 8px}.page-title p{color:#8b978f;font-size:12px;margin:7px 0 0}.date-chip{border:1px solid var(--line);background:#fff;border-radius:6px;padding:9px 12px;color:#829087;font-size:10px}.welcome{border-radius:12px;background:#e9f2e9;padding:24px 27px;display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:22px;position:relative;overflow:hidden}.welcome h2{font-size:21px;font-weight:600;margin-bottom:8px}.welcome p{color:#74917d;font-size:12px;margin-bottom:18px}.welcome-art{font-size:74px;line-height:1;color:#8fb99b;transform:rotate(-8deg);padding:0 30px}.btn{background:var(--green);color:#fff;border:1px solid var(--green);border-radius:7px;padding:10px 16px;font-weight:550;font-size:12px;display:inline-flex;align-items:center;gap:8px;justify-content:center;text-decoration:none}.btn:hover{background:var(--green-dark);color:#fff}.btn.secondary{background:#fff;border-color:var(--line);color:#65786b}.btn.danger{background:#b54747;border-color:#b54747}.btn.small{font-size:10px;padding:6px 10px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.stat{padding:20px;background:#fff;border:1px solid var(--line);border-radius:10px}.stat-top{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#84918a}.stat-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:#edf3ed;color:#6c9978;font-size:17px}.stat-value{font-size:27px;font-weight:600;letter-spacing:-.9px;display:block;margin:7px 0}.stat small{font-size:10px;color:#a0aaa3}.stat small strong{color:#74a083;font-weight:500}.grid-two{display:grid;grid-template-columns:1.65fr 1fr;gap:21px;margin-bottom:22px}.panel{border:1px solid var(--line);border-radius:10px;background:#fff;padding:22px;margin-bottom:22px;overflow:hidden}.grid-two .panel{margin-bottom:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}.panel-head p,.muted{color:#94a097;font-size:11px;margin:0}.panel-head h2{font-size:14px}.panel-head a{font-size:11px}.chart-holder{height:240px;position:relative}.quick-links{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.quick-link{border:1px solid var(--line);border-radius:8px;text-align:center;padding:17px 6px;font-size:10px;color:#74857a;background:white}.quick-link span{display:block;font-size:22px;color:#589570;margin-bottom:8px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}th{font-size:10px;font-weight:550;text-transform:uppercase;letter-spacing:.5px;text-align:left;color:#95a197;background:#f9fbf9;padding:12px 14px;border-bottom:1px solid var(--line)}td{padding:13px 14px;border-bottom:1px solid #eef2ee;color:#64756a}tr:last-child td{border-bottom:0}.badge{padding:4px 8px;border-radius:5px;font-size:10px;background:#ebf4ec;color:#679575;font-weight:500}.badge.warning{background:#faf2df;color:#b49346}.badge.danger{background:#f9e9e9;color:#bd7777}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.field{display:flex;flex-direction:column;gap:7px;color:#697b6f;font-size:12px}.field b{color:#9e6f61;font-size:11px}.field input,.field select,.field textarea,.filter-bar input,.filter-bar select{width:100%;border:1px solid #dce5de;border-radius:7px;padding:10px 12px;min-height:41px;background:#fff;color:#344f3e}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid #a5c8ae;outline-offset:1px}.form-actions{display:flex;gap:10px;margin-top:24px;align-items:center}.tabs{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 20px}.tab{border:1px solid var(--line);background:#fff;border-radius:6px;color:#6a7d70;padding:8px 11px;font-size:11px}.tab:hover{background:#e8f1e9}.filter-bar{display:flex;align-items:end;gap:12px;margin-bottom:20px;flex-wrap:wrap}.filter-bar .field{min-width:120px;flex:1}.notice{padding:13px 17px;border-radius:8px;font-size:12px;margin-bottom:20px;background:#fff5df;color:#927334;border:1px solid #f2e5bb}.notice.success{background:#eaf4eb;color:#487e59;border-color:#d6e8da}.notice.error{background:#fbecec;color:#ae4c4c;border-color:#f0cdcd}.empty-state{text-align:center;padding:40px 15px;color:#819286}.empty-state>span{font-size:34px;color:#97b49e;display:block;margin-bottom:9px}.empty-state h3{font-weight:500}.empty-state p{font-size:12px;margin:8px 0}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.detail-grid dt{font-size:10px;color:#92a096;text-transform:uppercase}.detail-grid dd{font-size:13px;margin:5px 0 0}.profile-heading{display:flex;align-items:center;gap:20px}.student-photo{height:80px;width:80px;object-fit:cover;border-radius:10px}.pagination{display:flex;gap:8px;margin-top:20px}.auth-page{background:#f4f7f2;display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.auth-story{padding:8vw;background:#e5efe4;display:flex;flex-direction:column;justify-content:center}.auth-story h1{font-size:48px;max-width:440px;line-height:1.2;font-weight:600;margin:45px 0 20px}.auth-story p{color:#7d9683;max-width:330px}.auth-art{font-size:100px;color:#8bab89;margin-top:30px}.auth-card{width:min(450px,90%);margin:90px auto;padding:35px;background:white;border:1px solid var(--line);border-radius:16px;align-self:center}.auth-card h1{font-size:26px}.auth-card .field{margin:17px 0}.auth-card .btn{width:100%;margin-top:12px}.auth-card p{font-size:12px;color:#8c9a90}.auth-switch{display:block;text-align:center;font-size:12px;margin-top:22px}footer{padding:10px 38px 25px;font-size:10px;color:#94a499}footer span{float:right}.ledger-balance{font-size:25px;color:var(--green);font-weight:600}.receipt{max-width:850px;margin:25px auto;background:white;border:1px solid var(--line);border-radius:12px;padding:40px}.receipt-header{text-align:center;border-bottom:2px solid var(--green);padding-bottom:22px;margin-bottom:25px}.receipt-header h1{font-size:27px}.receipt-header img{max-height:65px;max-width:200px}.receipt-meta{display:flex;justify-content:space-between;gap:20px;margin-bottom:25px}.receipt-total{margin-left:auto;text-align:right;font-size:20px;padding:24px 0}.signatures{display:flex;justify-content:space-between;margin-top:65px;color:#76867c}.signatures img{max-height:50px;max-width:120px}.id-card{width:85.6mm;min-height:54mm;border:1px solid #ccdace;border-radius:10px;padding:15px;display:inline-block;vertical-align:top;margin:12px;background:#fff}.id-card h2{font-size:17px;color:var(--green)}.id-card p{font-size:11px;margin:3px 0}.check-row{display:flex;gap:8px;align-items:center;padding:8px;font-size:12px}.permissions{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.mini-list{list-style:none;padding:0;margin:0}.mini-list li{padding:13px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:11px;font-size:12px}.mini-list small{display:block;color:#94a398;font-size:10px}.mini-list strong{font-weight:500}.menu-collapsed .sidebar{display:none}.menu-collapsed .page-shell{margin-left:0}@media(max-width:1200px){.main{padding:25px}.topbar{padding:0 25px;gap:13px}.form-grid{grid-template-columns:repeat(2,1fr)}.global-search input{width:145px}.quick-links{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){.sidebar{transform:translateX(-100%);transition:transform .2s}.page-shell{margin-left:0}.menu-open .sidebar{transform:translateX(0);box-shadow:15px 0 40px #20372420}.stats{grid-template-columns:repeat(2,1fr)}.grid-two{grid-template-columns:1fr}.topbar{height:65px}.breadcrumb{display:none}.auth-story{padding:40px}.auth-story h1{font-size:35px}.permissions{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.main{padding:20px 15px}.topbar{padding:0 15px;gap:10px}.user-chip>span:last-child{display:none}.global-search input{width:145px}.page-title{align-items:start}h1{font-size:24px}.date-chip{display:none}.form-grid,.detail-grid{grid-template-columns:1fr}.welcome-art{display:none}.welcome{padding:22px}.welcome h2{font-size:20px}.stat{padding:15px}.stat-value{font-size:24px}.stats{gap:10px}.panel{padding:17px}.auth-page{display:block}.auth-story{display:none}.auth-card{margin:50px auto;padding:28px}.receipt{padding:20px;margin:10px}.receipt-meta{flex-direction:column}.permissions{grid-template-columns:1fr}.filter-bar .field{min-width:100%}}
@media print{body{background:white!important;color:black}.sidebar,.topbar,.page-title,.tabs,.no-print,footer,.form-actions,.filter-bar,button{display:none!important}.page-shell{margin:0}.main{padding:0;max-width:none}.panel,.receipt{border:0;box-shadow:none;margin:0;padding:15px}.table-wrap{overflow:visible}table{white-space:normal}tr{break-inside:avoid}.id-card{break-inside:avoid}.receipt.thermal{width:80mm;padding:3mm;font-size:10px}.receipt.thermal table{font-size:9px}.receipt.a5{width:148mm}.report-card{break-after:page}@page{size:auto;margin:12mm}}

/* Blue visual refresh: shared by master, school, login, and print pages. */
:root{--ink:#183153;--muted:#657b96;--green:#2563eb;--green-dark:#1d4ed8;--paper:#f3f7fd;--line:#e1eaf6;--mint:#eaf2ff;--blue-shadow:0 8px 28px #234c8510}
body{background:radial-gradient(ellipse at 90% 0,#e5efff 0,transparent 45%),var(--paper);color:var(--ink)}
.sidebar{background:linear-gradient(175deg,#102c56,#163e70 65%,#124970);border:0;box-shadow:4px 0 24px #123c6014;scrollbar-width:thin;scrollbar-color:#6289b2 transparent}
.sidebar .brand{color:#fff}.brand-icon{background:linear-gradient(135deg,#3b82f6,#06b6d4);box-shadow:0 6px 14px #0284c733;border-radius:12px 12px 12px 3px}.brand-dot{color:#67e8f9}
.sidebar .workspace{background:#ffffff0b;border-color:#ffffff20}.sidebar .workspace strong{color:#edf6ff}.sidebar .workspace small,.sidebar-bottom small{color:#abc5df}.sidebar .avatar{background:#2e5480;color:#c8eaff}
.nav-label{color:#91b3d6;letter-spacing:1.5px}.nav-link{color:#d0e0f3;border:1px solid transparent;transition:background .2s,transform .2s,color .2s,box-shadow .2s}
.nav-link:hover{color:#fff;background:#ffffff12;transform:translateX(3px)}.nav-link.active{color:#fff;background:linear-gradient(100deg,#2563eb,#1984d1);border-color:#75bfff35;box-shadow:0 5px 16px #04162b28}.nav-icon{font-size:16px}.sidebar-bottom{color:#b8d0e8}.status-dot{background:#67e8f9;box-shadow:0 0 0 3px #67e8f912}
.topbar{background:#ffffffed;border-bottom-color:#e3ecf8}.breadcrumb,.user-chip{color:#4f6683}.breadcrumb span{color:#9aadc5}.global-search{background:#f1f6fd;border:1px solid #e6edf7;border-radius:9px;padding:0 9px;color:#6581a3}.global-search input{color:#334e70}.icon-button,.text-button{color:#5a7290}.avatar{background:#e8f1ff;color:#2864ad}.session-chip{background:#eff6ff;color:#3268ab;border-color:#d8e7fc}.school-logo{border-radius:6px}
.eyebrow{color:#3976b8;font-weight:650}.page-title p{color:#6a7f99}.date-chip{color:#627b9b;background:#ffffffb5;border-color:#dfe9f7}.page-title h1{font-weight:700;letter-spacing:-.8px}
.welcome{background:linear-gradient(115deg,#164bb8 0%,#2563eb 52%,#168fcb 100%);box-shadow:0 12px 26px #2563eb20;border-radius:17px;min-height:180px;color:#fff;isolation:isolate}
.welcome::before,.welcome::after{content:"";position:absolute;border:1px solid #ffffff22;border-radius:50%;z-index:-1;pointer-events:none}.welcome::before{width:300px;height:300px;right:-90px;top:-135px}.welcome::after{width:200px;height:200px;right:50px;bottom:-135px}
.welcome h2{color:white;font-size:24px}.welcome h2 span{color:#bae6fd!important}.welcome p{color:#dfedff}.welcome .btn{background:white;color:#1d4ed8;border-color:white;box-shadow:0 4px 12px #123d9420}.welcome .btn:hover{background:#eaf4ff;color:#153e91}.welcome-art{color:#bae6fd;padding-right:20px;animation:blue-float 6s ease-in-out infinite}
.panel,.stat{border-color:#e1eaf6;border-radius:14px;box-shadow:var(--blue-shadow)}.stat{position:relative;overflow:hidden;border-top:3px solid #4b86f7;transition:transform .22s,box-shadow .22s}.stat:nth-child(2){border-top-color:#06b6d4}.stat:nth-child(3){border-top-color:#818cf8}.stat:nth-child(4){border-top-color:#38bdf8}.stat:hover{transform:translateY(-4px);box-shadow:0 13px 28px #20569e16}.stat-top{color:#607797}.stat-value{color:#173c70}.stat-icon{background:#eaf2ff;color:#2563eb}.stat:nth-child(2) .stat-icon{background:#e5f9fc;color:#0788a0}.stat:nth-child(3) .stat-icon{background:#eef0ff;color:#6665d8}.stat small{color:#6e8199}.stat small strong{color:#2475b5}
.panel-head p,.muted{color:#687d98}.quick-link{border-color:#e2ebf8;color:#456586;border-radius:11px;background:linear-gradient(180deg,#fff,#f7faff);transition:transform .2s,border-color .2s,box-shadow .2s}.quick-link span{color:#3479db}.quick-link:hover{transform:translateY(-4px);border-color:#93baff;box-shadow:0 8px 18px #2563eb12;color:#1d4ed8}
.btn{background:linear-gradient(110deg,#2563eb,#247dde);border-color:#2563eb;box-shadow:0 4px 10px #2563eb18;border-radius:9px;transition:transform .18s,box-shadow .18s,background .18s}.btn:hover{background:#1d4ed8;border-color:#1d4ed8;transform:translateY(-2px);box-shadow:0 7px 15px #2563eb28}.btn:active{transform:translateY(0)}.btn.secondary{background:#fff;color:#39618e;border-color:#dce7f6;box-shadow:none}.btn.secondary:hover{background:#eff6ff;border-color:#a8c8f8;color:#1d4ed8}.btn.danger{background:#bd424d;border-color:#bd424d;box-shadow:none}.btn.danger:hover{background:#a7333e;border-color:#a7333e}.text-button:hover{color:#1d4ed8}
.tab{color:#46658a;border-color:#dce7f7;border-radius:8px;transition:background .18s,border-color .18s,transform .18s}.tab:hover{background:#eaf2ff;border-color:#b5d0f6;color:#1d4ed8;transform:translateY(-2px)}
th{background:#f0f5fc;color:#58769b;border-color:#e0eaf7}td{color:#405d7f;border-color:#eaf0f8}tbody tr{transition:background .15s}tbody tr:hover{background:#f6faff}.badge{background:#e7f0ff;color:#285ca3}.badge.warning{background:#fff3d9;color:#926409}.badge.danger{background:#fde9ec;color:#a63846}
.field{color:#496789}.field input,.field select,.field textarea,.filter-bar input,.filter-bar select{border-color:#d6e3f3;color:#24496e;border-radius:9px;transition:border-color .18s,box-shadow .18s}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid #b7d3ff;border-color:#5a98f2;box-shadow:0 0 0 3px #3b82f610}.field input[name="amount"]{color:#1d4ed8}.field b{color:#9c4d59}.detail-grid dt{color:#627b98}.detail-grid dd{color:#2c4b70}.check-row{border-radius:6px}.check-row:hover{background:#f3f7ff}input[type="checkbox"]{accent-color:#2563eb}
.empty-state{color:#607c9c}.empty-state>span{color:#5b98e8}.mini-list li{border-color:#e7eef8}.mini-list small{color:#687e9a}.notice{border-radius:10px}.notice.success{background:#edf8f4;color:#237458;border-color:#cfeade}.notice.error{background:#fff0f2;color:#a33348;border-color:#f2d0d8}
.auth-page{background:radial-gradient(ellipse at 95% 5%,#dbeafe,transparent 55%),#f5f9ff}.auth-story{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(145deg,#10376f,#1e5ec8 65%,#0e99bd);color:#fff}.auth-story::before,.auth-story::after{content:"";position:absolute;border-radius:50%;pointer-events:none;z-index:-1;border:1px solid #ffffff20}.auth-story::before{width:460px;height:460px;right:-240px;top:-130px;background:#ffffff04}.auth-story::after{width:360px;height:360px;left:-180px;bottom:-190px;background:#ffffff05}.auth-story .brand{color:#fff}.auth-story h1{color:#fff;letter-spacing:-1.5px}.auth-story p{color:#d4e7ff;font-size:15px;line-height:1.8}.auth-art{color:#91dafa;animation:blue-float 6s ease-in-out infinite}.auth-card{border-color:#e2ebf8;border-radius:20px;box-shadow:0 18px 65px #1e4b8012;padding:38px}.auth-card h1{color:#193c68}.auth-card p{color:#607a99}.auth-card .btn{min-height:46px}.auth-switch{color:#2865b4;font-weight:550}
footer{color:#6f86a3}.receipt{border-color:#dce7f5;box-shadow:var(--blue-shadow)}.receipt-header{border-color:#2563eb}.signatures{color:#536f92}.id-card{border-color:#c5d8f2}.ledger-balance{color:#2563eb}
@keyframes blue-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes blue-float{0%,100%{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-9px) rotate(-3deg)}}
@media(prefers-reduced-motion:no-preference){.page-title,.auth-card{animation:blue-enter .45s ease-out backwards}.welcome{animation:blue-enter .5s ease-out backwards}.stat{animation:blue-enter .45s ease-out backwards}.stat:nth-child(2){animation-delay:.06s}.stat:nth-child(3){animation-delay:.12s}.stat:nth-child(4){animation-delay:.18s}.panel{animation:blue-enter .5s ease-out backwards}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:900px){.topbar{gap:12px}.welcome h2{font-size:22px}.menu-open .sidebar{box-shadow:15px 0 50px #102c5633}}
@media(max-width:600px){.global-search{padding:0 5px}.global-search input{width:125px}.topbar{gap:8px}.auth-card{padding:28px}.welcome{min-height:160px}.welcome h2{font-size:21px}.stat-value{font-size:23px}}
@media print{*,*::before,*::after{animation:none!important;transition:none!important;box-shadow:none!important;transform:none!important}.panel,.stat,.receipt{background:white}.welcome{background:white;color:#183153}.welcome h2,.welcome p{color:#183153}th{background:#f2f5fa}}
