:root{
  --bg:#f5f7f6;--bg-soft:#eef3f1;--surface:#ffffff;--surface-2:#f9fbfa;
  --sidebar:#12352d;--sidebar-deep:#0c2822;--sidebar-hover:#1a443a;
  --primary:#2e7d67;--primary-2:#4f9d85;--accent:#a8dc69;--accent-soft:#edf7df;
  --text:#17231f;--muted:#718079;--border:#e2e9e6;--border-strong:#d4dfdb;
  --success:#2f8f5b;--success-soft:#eaf7ef;--warning:#c68a22;--warning-soft:#fff6e2;
  --danger:#c95555;--danger-soft:#fceded;--info:#4d7fa8;--info-soft:#eef5fb;--violet:#7567aa;--violet-soft:#f2effb;
  --shadow-sm:0 4px 16px rgba(24,53,44,.05);--shadow:0 12px 34px rgba(24,53,44,.08);--shadow-lg:0 24px 60px rgba(16,42,34,.13);
  --radius-sm:12px;--radius:18px;--radius-lg:24px;--sidebar-w:278px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
html,body{min-height:100%}
body{margin:0;background:linear-gradient(180deg,#f9fbfa 0,#f4f7f5 180px,var(--bg) 100%);color:var(--text);font-family:"Segoe UI",Tahoma,Arial,sans-serif;font-size:14px;direction:rtl;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{transition:color .18s ease,background-color .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}
button,.btn,.form-control,.form-select{transition:.18s ease}
.app-shell{min-height:100vh}

/* Sidebar */
.sidebar{position:fixed;right:0;top:0;bottom:0;width:var(--sidebar-w);background:linear-gradient(180deg,var(--sidebar) 0,var(--sidebar-deep) 100%);color:#fff;z-index:1040;display:flex;flex-direction:column;transition:transform .25s ease,box-shadow .25s ease;box-shadow:-8px 0 30px rgba(7,31,24,.08)}
.sidebar:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 10% 0%,rgba(168,220,105,.10),transparent 28%),radial-gradient(circle at 90% 78%,rgba(79,157,133,.10),transparent 32%)}
.sidebar>*{position:relative;z-index:1}
.sidebar-brand{display:flex;align-items:center;gap:12px;padding:21px 18px;border-bottom:1px solid rgba(255,255,255,.08);min-height:83px}
.sidebar-brand img{box-shadow:0 5px 16px rgba(0,0,0,.13)}
.brand-mark{width:44px;height:44px;border-radius:14px;background:linear-gradient(145deg,#b7e67a,var(--accent));color:var(--sidebar-deep);display:grid;place-items:center;font-size:22px;font-weight:900;box-shadow:0 8px 22px rgba(168,220,105,.18)}
.brand-title{font-size:17px;font-weight:800;line-height:1.35}.brand-sub{font-size:10.5px;color:#a9c0b7;margin-top:2px}
.sidebar-nav{padding:14px 12px 18px;overflow:auto;flex:1;scrollbar-width:thin;scrollbar-color:#ffffff1d transparent}
.nav-caption{color:#87a098;font-size:10.5px;padding:14px 11px 6px;letter-spacing:.01em}
.nav-link-school{display:flex;align-items:center;gap:11px;color:#bdd0c8;text-decoration:none;padding:10.5px 12px;border-radius:12px;margin:3px 0;font-weight:650;position:relative}
.nav-link-school i{width:21px;text-align:center;font-size:15px;color:#94aea4;transition:.18s}
.nav-link-school:hover{background:rgba(255,255,255,.07);color:#fff;transform:translateX(-2px)}
.nav-link-school.active{background:linear-gradient(90deg,rgba(255,255,255,.11),rgba(255,255,255,.07));color:#fff;box-shadow:inset -3px 0 0 var(--accent)}
.nav-link-school.active i{color:var(--accent)}
.sidebar-user{padding:13px;border-top:1px solid rgba(255,255,255,.08)}
.sidebar-user .mini{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.05);border-radius:15px;padding:11px;display:flex;gap:10px;align-items:center}
.avatar{width:39px;height:39px;border-radius:13px;background:linear-gradient(145deg,var(--accent),#c5eb92);color:var(--sidebar-deep);display:grid;place-items:center;font-weight:900;flex:0 0 auto}
.sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(4,22,17,.42);backdrop-filter:blur(2px);z-index:1035}

/* Main shell / topbar */
.main{margin-right:var(--sidebar-w);min-height:100vh;transition:margin .25s ease}
.topbar{min-height:74px;background:rgba(255,255,255,.88);backdrop-filter:blur(14px);border-bottom:1px solid rgba(218,228,223,.85);position:sticky;top:0;z-index:1020;display:grid;grid-template-columns:minmax(230px,1fr) minmax(280px,460px) minmax(230px,1fr);align-items:center;padding:0 27px;box-shadow:0 2px 12px rgba(25,51,43,.025)}
.topbar-school{display:flex;align-items:center;gap:9px;min-width:0}.topbar-school-name{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-year{font-size:11.5px;color:var(--muted)}
.top-search{width:100%;position:relative}.top-search input{border:1px solid var(--border);background:var(--surface-2);border-radius:14px;padding:11px 42px 11px 14px;width:100%;outline:0}.top-search input:focus{background:#fff;border-color:#b6ccc4;box-shadow:0 0 0 4px rgba(46,125,103,.07)}.top-search i{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:#8a9992}
.top-actions{display:flex;gap:8px;align-items:center;justify-content:flex-start}
.icon-btn{width:42px;height:42px;border:1px solid var(--border);background:#fff;border-radius:13px;display:grid;place-items:center;color:#42534c;text-decoration:none;box-shadow:0 2px 7px rgba(26,54,45,.025)}.icon-btn:hover{color:var(--primary);border-color:#c8d8d2;background:#fbfdfc;transform:translateY(-1px)}
.pwa-install-btn{display:none;width:auto;padding:0 13px;gap:7px;font-size:12px;font-weight:700}.pwa-install-btn.available{display:flex}
.connection-pill{display:flex;align-items:center;gap:6px;height:34px;padding:0 10px;border-radius:999px;font-size:11px;color:var(--muted);background:#f8faf9;border:1px solid var(--border)}.connection-dot{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 0 3px var(--success-soft)}.connection-pill.offline{color:#9b5924;background:var(--warning-soft);border-color:#f1dfb5}.connection-pill.offline .connection-dot{background:var(--warning);box-shadow:0 0 0 3px #fbe8c3}
.content{padding:27px 28px calc(42px + env(safe-area-inset-bottom,0px));max-width:1780px;margin-inline:auto}

/* Page headers */
.page-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:22px}.page-head h1{font-size:25px;line-height:1.3;margin:0 0 6px;font-weight:850;letter-spacing:-.02em}.page-head p{margin:0;color:var(--muted);line-height:1.65}.page-head .btn{min-height:40px}
.page-head:after{content:"";position:absolute}

/* Cards */
.school-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.school-card:hover{border-color:#dce5e1}
.school-card .card-header{padding:17px 19px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#fff,#fcfdfc);font-weight:800;display:flex;align-items:center;justify-content:space-between;gap:10px}.school-card .card-body{padding:19px}
.stat-card{padding:18px 19px;position:relative;overflow:hidden;height:100%;min-height:130px;display:flex;flex-direction:column;justify-content:center}.stat-card:after{content:"";position:absolute;width:110px;height:110px;border-radius:50%;left:-38px;top:-44px;background:currentColor;opacity:.035;pointer-events:none}.stat-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.stat-icon{width:43px;height:43px;border-radius:13px;display:grid;place-items:center;background:var(--accent-soft);color:#48731f;font-size:18px;flex:0 0 auto}.stat-label{color:var(--muted);font-size:11.5px;font-weight:650}.stat-value{font-weight:850;font-size:24px;line-height:1.25;margin-top:7px;letter-spacing:-.015em}.stat-sub{font-size:11.5px;color:#84928c;line-height:1.6;margin-top:3px}
.stat-card.tone-green{background:linear-gradient(145deg,#fff,#f6fcf8);border-color:#dceee3}.stat-card.tone-green .stat-icon{background:var(--success-soft);color:var(--success)}
.stat-card.tone-blue{background:linear-gradient(145deg,#fff,#f6f9fd);border-color:#dfeaf3}.stat-card.tone-blue .stat-icon{background:var(--info-soft);color:var(--info)}
.stat-card.tone-amber{background:linear-gradient(145deg,#fff,#fffaf1);border-color:#f0e5ca}.stat-card.tone-amber .stat-icon{background:var(--warning-soft);color:var(--warning)}
.stat-card.tone-violet{background:linear-gradient(145deg,#fff,#faf8ff);border-color:#e6e0f4}.stat-card.tone-violet .stat-icon{background:var(--violet-soft);color:var(--violet)}
.stat-card.tone-red{background:linear-gradient(145deg,#fff,#fff8f8);border-color:#f1dddd}.stat-card.tone-red .stat-icon{background:var(--danger-soft);color:var(--danger)}
.stat-card.tone-teal{background:linear-gradient(145deg,#fff,#f4fbf9);border-color:#d8ebe5}.stat-card.tone-teal .stat-icon{background:#e7f4f0;color:var(--primary)}

/* Financial hero */
.financial-hero{background:linear-gradient(135deg,#173d33 0,#1c4d40 58%,#2f6d59 100%);color:#fff;border-radius:var(--radius-lg);padding:22px 24px;position:relative;overflow:hidden;box-shadow:0 18px 40px rgba(20,67,53,.16)}.financial-hero:after{content:"";position:absolute;width:270px;height:270px;border-radius:50%;background:radial-gradient(circle,rgba(190,230,137,.18),rgba(190,230,137,0) 68%);left:-65px;top:-95px}.financial-hero:before{content:"";position:absolute;width:160px;height:160px;border:1px solid rgba(255,255,255,.07);border-radius:36px;transform:rotate(32deg);right:-45px;bottom:-80px}.financial-hero>*{position:relative;z-index:1}.financial-hero .big{font-size:25px;font-weight:850;line-height:1.35;margin-top:4px}.financial-metric{padding:5px 0 5px 16px}.financial-metric small{color:#b9d1c8!important}.financial-metric.positive .big{color:#c7ec98}.financial-metric.warning .big{color:#ffd68c}.financial-metric.danger .big{color:#ffb3b3}

/* Buttons / forms */
.btn{border-radius:11px;font-weight:650;padding:.55rem .85rem}.btn-sm{border-radius:9px;padding:.38rem .65rem}.btn-accent{background:linear-gradient(180deg,#b5e479,var(--accent));border-color:#9dcc62;color:#18311c;font-weight:800;box-shadow:0 4px 10px rgba(134,187,70,.12)}.btn-accent:hover{background:#9fd05f;border-color:#92c155;color:#173019;transform:translateY(-1px)}.btn-dark-school{background:var(--sidebar);border-color:var(--sidebar);color:#fff}.btn-dark-school:hover{background:var(--sidebar-hover);border-color:var(--sidebar-hover);color:#fff}.btn-light.border{border-color:var(--border)!important;background:#fff}.btn-light.border:hover{background:#f7faf8;border-color:var(--border-strong)!important}
.form-label{font-size:12px;font-weight:700;color:#53635c;margin-bottom:.4rem}.form-control,.form-select{border-radius:11px;border-color:#dce5e1;padding:.65rem .8rem;background-color:#fff;color:var(--text)}.form-control::placeholder{color:#a0aca6}.form-control:hover,.form-select:hover{border-color:#cedbd6}.form-control:focus,.form-select:focus{border-color:#8eb9a9;box-shadow:0 0 0 .22rem rgba(46,125,103,.09)}.input-group>.form-control,.input-group>.form-select,.input-group>.btn{border-radius:0}.input-group>:first-child{border-start-start-radius:11px!important;border-end-start-radius:11px!important}.input-group>:last-child{border-start-end-radius:11px!important;border-end-end-radius:11px!important}

/* Tables */
.table-responsive{scrollbar-width:thin;scrollbar-color:#d7e1dd transparent}.table-school{margin:0;font-size:13px}.table-school th{background:#f7faf8;color:#66766f;font-size:11.5px;font-weight:800;border-bottom:1px solid var(--border);white-space:nowrap;padding:.78rem .85rem}.table-school td{vertical-align:middle;border-color:#edf1ef;padding:.72rem .85rem}.table-school tbody tr{transition:background-color .14s ease}.table-school tbody tr:hover{background:#f9fcfa}.table-school tbody tr:last-child td{border-bottom:0}.table-school .btn{white-space:nowrap}
.badge{font-weight:700;border-radius:999px;padding:.42em .7em}.badge-soft-success{background:var(--success-soft);color:#2c7f52}.badge-soft-warning{background:var(--warning-soft);color:#95671c}.badge-soft-danger{background:var(--danger-soft);color:#b64545}.badge-soft-info{background:var(--info-soft);color:#3f729b}.badge-soft-dark{background:#ebf0ee;color:#41564d}

/* Quick actions */
.quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.quick-action{background:#fff;border:1px solid var(--border);border-radius:15px;padding:14px;text-decoration:none;color:var(--text);display:flex;gap:11px;align-items:center;min-height:72px;box-shadow:0 3px 12px rgba(22,52,43,.035)}.quick-action i{width:39px;height:39px;border-radius:12px;background:#edf6f2;display:grid;place-items:center;color:var(--primary);font-size:16px;flex:0 0 auto}.quick-action b{font-size:12.5px}.quick-action small{font-size:10.8px;margin-top:2px}.quick-action:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#cfddd7;color:var(--text)}

/* Receipt / tabs / login */
.receipt-preview{background:#fff;color:#111;border:1px dashed #cfd9d3;padding:20px;margin:auto;box-shadow:0 10px 35px #0000000d}.receipt-preview[data-paper="80mm"]{max-width:330px}.receipt-preview[data-paper="58mm"]{max-width:260px}.receipt-preview[data-paper="A5"]{max-width:560px}.receipt-preview[data-paper="A4"]{max-width:800px}.receipt-logo{max-width:90px;max-height:70px;object-fit:contain}.receipt-line{border-top:1px dashed #aaa;margin:12px 0}.tabs-pills{gap:5px}.tabs-pills .nav-link{border-radius:10px;color:#617069;font-weight:700;padding:.55rem .85rem}.tabs-pills .nav-link:hover{background:#f3f7f5}.tabs-pills .nav-link.active{background:var(--sidebar);color:#fff;box-shadow:0 4px 12px rgba(18,53,45,.10)}
.login-page{min-height:100vh;display:grid;grid-template-columns:1.08fr .92fr;background:#f4f7f5}.login-visual{background:linear-gradient(145deg,#12352d,#1d5748);color:#fff;padding:60px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-visual:after{content:"";position:absolute;width:420px;height:420px;border:95px solid rgba(190,230,137,.08);border-radius:50%;left:-130px;bottom:-100px}.login-form-wrap{display:grid;place-items:center;padding:35px}.login-box{width:min(440px,100%)}
.empty{padding:38px 20px;text-align:center;color:var(--muted)}

/* Search / lookup */
.lookup-box{position:relative}.lookup-input{padding-inline-start:2.7rem}.lookup-icon{position:absolute;z-index:4;right:1rem;top:50%;transform:translateY(-50%);color:#829089;pointer-events:none}.student-lookup-results{position:absolute;z-index:1080;top:calc(100% + .4rem);right:0;left:0;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-lg);max-height:360px;overflow:auto;padding:.35rem}.lookup-result{display:flex;align-items:center;gap:.8rem;width:100%;border:0;background:transparent;text-align:right;padding:.72rem .8rem;border-radius:10px;cursor:pointer;color:inherit}.lookup-result:hover,.lookup-result.active{background:#f2f7f4}.lookup-result-avatar{width:38px;height:38px;border-radius:11px;background:#e8f5ef;color:#285f4e;display:grid;place-items:center;font-weight:800;flex:0 0 auto}.lookup-result-name{font-weight:800;line-height:1.2}.lookup-result-meta{font-size:.78rem;color:#7a8580;margin-top:.2rem}.lookup-empty{padding:1rem;text-align:center;color:#7a8580}.student-highlight{outline:2px solid #8fc65b;outline-offset:-2px;background:#f7fcef!important;animation:studentPulse 1.8s ease-in-out 2}@keyframes studentPulse{50%{background:#eaf7dc}}
.academic-actions{display:flex;gap:.35rem;flex-wrap:wrap}.setup-repeat-row{background:#f8faf9;border:1px solid var(--border);border-radius:14px;padding:12px}

/* AJAX / feedback */
.ajax-progress{position:fixed;z-index:99999;top:0;right:0;height:3px;width:0;background:linear-gradient(90deg,var(--primary),var(--accent));opacity:0;transition:width .2s ease,opacity .2s ease;pointer-events:none;box-shadow:0 1px 5px rgba(64,129,105,.25)}.ajax-progress.show{opacity:1;width:78%;animation:ajaxProgress 1.8s ease-in-out infinite}@keyframes ajaxProgress{0%{width:7%}50%{width:65%}100%{width:92%}}.ajax-busy .main{cursor:progress}.ajax-toast-wrap{position:fixed;z-index:100000;left:22px;bottom:22px;display:grid;gap:9px;max-width:min(420px,calc(100vw - 30px))}.ajax-toast{background:#173d33;color:#fff;border-radius:13px;padding:12px 16px;box-shadow:0 16px 40px rgba(0,0,0,.18);transform:translateY(12px);opacity:0;transition:.2s ease;font-size:.92rem}.ajax-toast.show{transform:none;opacity:1}.ajax-toast.warning{background:#8b631e}.ajax-toast.danger{background:#944646}.ajax-toast.info{background:#426c8d}
.page-enter{animation:pageEnter .18s ease both}@keyframes pageEnter{from{opacity:.35;transform:translateY(3px)}to{opacity:1;transform:none}}

/* PWA */
.pwa-update{position:fixed;z-index:100001;left:18px;bottom:18px;width:min(390px,calc(100vw - 36px));background:#173d33;color:#fff;border:1px solid rgba(255,255,255,.09);border-radius:16px;padding:13px 14px;box-shadow:var(--shadow-lg);display:none;align-items:center;gap:12px}.pwa-update.show{display:flex}.pwa-update i{width:39px;height:39px;border-radius:12px;background:rgba(255,255,255,.10);display:grid;place-items:center;font-size:18px}.pwa-update .btn{font-size:11px;white-space:nowrap}
.mobile-bottom-nav{display:none}
body.pwa-standalone .topbar{padding-top:env(safe-area-inset-top,0px);min-height:calc(70px + env(safe-area-inset-top,0px))}body.pwa-standalone .sidebar{padding-top:env(safe-area-inset-top,0px)}

/* Responsive */
.mobile-toggle{display:none}
@media(max-width:1199px){
  .sidebar{transform:translateX(105%);box-shadow:none}.sidebar.open{transform:translateX(0);box-shadow:-12px 0 40px rgba(0,0,0,.16)}.sidebar.open~.sidebar-backdrop,.sidebar-backdrop.show{display:block}.main{margin-right:0}.mobile-toggle{display:grid}.content{padding:22px 20px 40px}.topbar{padding:0 18px;grid-template-columns:1fr minmax(260px,420px) auto}.topbar-school{min-width:0}.connection-pill span{display:none}.connection-pill{width:34px;padding:0;justify-content:center}.pwa-install-btn span{display:none}.pwa-install-btn{width:42px;padding:0;justify-content:center}
}
@media(max-width:900px){.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{grid-template-columns:1fr auto}.top-search{display:none}.financial-hero .big{font-size:22px}.financial-metric{padding-left:0}}
@media(max-width:767px){
  body{font-size:13.5px}.content{padding:17px 12px calc(88px + env(safe-area-inset-bottom,0px))}.topbar{min-height:64px;height:auto;padding:0 12px;grid-template-columns:1fr auto;gap:8px}.topbar-school-name{font-size:12.5px}.topbar-year{font-size:10px}.top-actions{gap:5px}.icon-btn{width:38px;height:38px;border-radius:11px}.connection-pill{height:32px;width:32px}.page-head{display:block;margin-bottom:17px}.page-head h1{font-size:21px}.page-head p{font-size:12px}.page-head .btn-group,.page-head>.d-flex{margin-top:12px;width:100%;flex-wrap:wrap}.page-head>.d-flex .btn{flex:1 1 auto}.school-card{border-radius:15px}.school-card .card-header{padding:14px 15px}.school-card .card-body{padding:15px}.stat-card{min-height:112px;padding:15px}.stat-value{font-size:20px}.stat-icon{width:38px;height:38px;border-radius:11px}.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.quick-action{min-height:66px;padding:11px;border-radius:13px}.quick-action i{width:36px;height:36px}.login-page{grid-template-columns:1fr}.login-visual{display:none}.login-form-wrap{padding:24px 16px}.table-responsive{border-radius:12px}.sidebar{width:min(300px,88vw)}.financial-hero{border-radius:17px;padding:18px}.financial-hero .row{--bs-gutter-y:1rem}.financial-hero .big{font-size:20px}.ajax-toast-wrap{left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom,0px));max-width:none}.pwa-update{left:12px;bottom:calc(76px + env(safe-area-inset-bottom,0px));width:calc(100vw - 24px)}
  .mobile-bottom-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;right:10px;left:10px;bottom:calc(8px + env(safe-area-inset-bottom,0px));height:62px;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border:1px solid rgba(215,226,221,.94);border-radius:18px;box-shadow:0 14px 38px rgba(16,47,38,.16);z-index:1030;padding:5px 7px}.mobile-bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#77867f;text-decoration:none;border-radius:13px;font-size:9.5px;font-weight:700}.mobile-bottom-nav a i{font-size:17px}.mobile-bottom-nav a.active{background:#edf6f2;color:var(--primary)}
}
@media(max-width:420px){.quick-grid{grid-template-columns:1fr 1fr}.stat-value{font-size:18px}.topbar-school-name{max-width:145px}.pwa-install-btn{display:none!important}}

/* Print */
@media print{.sidebar,.sidebar-backdrop,.topbar,.page-head,.no-print,.alert,.print-hide,.mobile-bottom-nav,.pwa-update{display:none!important}.main{margin:0!important}.content{padding:0!important}.school-card{box-shadow:none;border:0}.receipt-preview{box-shadow:none;border:0;max-width:none!important}.print-only{display:block!important}body{background:#fff}@page{margin:7mm}}
.min-w-0{min-width:0}
@media(max-width:1199px){body.sidebar-open{overflow:hidden}}
