:root{--bg:#f2f7f6;--surface:#fff;--surface-2:#ebf2f1;--surface-3:#dde9e7;--ink:#051716;--muted:#4a5957;--line:#ced9d7;--accent:#006b59;--accent-strong:#004e42;--accent-soft:#d1f4e9;--accent-2:#c86553;--danger:#a82d2e;--success:#207029;--warning:#b47d06;--info:#196ea9;--radius:8px;--radius-lg:10px;--shadow:0 8px 18px #12272612;--shadow-soft:0 1px 4px #1227260a;--focus:0 0 0 3px #88dec8bf;--dur-1:.14s;--dur-2:.22s;--ease-out:cubic-bezier(.16, 1, .3, 1)}@supports (color:lab(0% 0 0)){:root{--bg:lab(96.8243% -2.02289 -.218189);--surface:lab(100% 0 0);--surface-2:lab(94.8764% -2.69794 -.290823);--surface-3:lab(91.4687% -4.72593 -.508142);--ink:lab(6.43878% -6.66807 -1.52621);--muted:lab(36.4057% -6.00947 -1.23712);--line:lab(85.6446% -4.04996 -.435686);--accent:lab(39.7419% -33.6173 2.2667);--accent-strong:lab(29.2875% -34.0408 1.02558);--accent-soft:lab(93.5613% -13.599 1.46636);--accent-2:lab(54.7771% 39.0388 29.499);--danger:lab(39.2272% 50.5712 30.955);--success:lab(41.2263% -36.559 31.0561);--warning:lab(57.0187% 15.5786 61.4051);--info:lab(43.9546% -8.07992 -39.0276);--focus:0 0 0 3px lab(82.5991% -31.1031 2.12359/.75)}}*{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{background:var(--bg);color:var(--ink);font-family:var(--app-font,"Segoe UI", Tahoma, Arial, sans-serif);letter-spacing:0;margin:0}html[data-font=system]{--app-font:"Segoe UI", Tahoma, Arial, sans-serif}html[data-font=arabic-clean]{--app-font:"Arial", "Tahoma", sans-serif}html[data-font=school-formal]{--app-font:"Traditional Arabic", "Segoe UI", Tahoma, serif}button,input,select{font:inherit}button{cursor:pointer;transition:background-color var(--dur-1) var(--ease-out), color var(--dur-1) var(--ease-out), border-color var(--dur-1) var(--ease-out), transform var(--dur-1) var(--ease-out), box-shadow var(--dur-1) var(--ease-out)}.boot,.login-shell{place-items:center;min-height:100vh;padding:20px;display:grid}.login-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);width:min(420px,100%);box-shadow:var(--shadow);padding:30px;position:relative;overflow:hidden}.login-panel:before{content:"";background:linear-gradient(90deg, var(--accent), var(--accent-2));height:8px;position:absolute;inset:0 0 auto}.brand-mark{background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:44px;height:44px;font-weight:800;display:grid;box-shadow:0 8px 18px #00504140;box-shadow:0 8px 18px lab(29.4932% -39.9493 2.65107/.25)}.login-panel h1,.topbar h1,.panel h2,.modal h2{margin:0}.login-panel p,.topbar p{color:var(--muted);margin:6px 0 0}.app-shell{grid-template-columns:244px minmax(0,1fr);min-height:100vh;display:grid}.side{background:var(--surface);color:var(--ink);border-left:1px solid var(--line);height:100vh;box-shadow:none;flex-direction:column;gap:16px;padding:16px;display:flex;position:sticky;top:0}.side-head{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-2);align-items:center;gap:12px;min-height:58px;padding:8px;display:flex}.side-head span{color:var(--muted);margin-top:3px;font-size:13px;display:block}nav{gap:4px;display:grid}nav button,.ghost,.secondary,.primary,.danger-button,.mini{border-radius:var(--radius);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:8px 12px;display:inline-flex}nav button{color:var(--muted);background:0 0;border-color:#0000;justify-content:flex-start;min-height:42px;position:relative}nav button.active,nav button:hover{color:var(--accent-strong);background:var(--accent-soft);transform:none}nav button.active{box-shadow:none;border-color:#a3cfc3;border-color:lab(79.7644% -17.105 1.17327)}nav button:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{box-shadow:var(--focus);outline:0}.logout{color:var(--ink);border-color:var(--line);margin-top:auto}.workspace{min-width:0;padding:18px 20px}.topbar{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);z-index:10;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:12px 16px;display:flex;position:static}.topbar-actions{align-items:center;gap:8px;display:flex}.mobile-only{display:none}.topbar h1{font-size:32px;line-height:1.15}.stack{gap:12px;display:grid}.metric-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;display:grid}.metric,.panel,.modal,.import-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}.metric{align-content:space-between;min-height:104px;padding:14px;display:grid;position:relative;overflow:hidden}.metric:after{content:"";background:var(--accent-soft);inset-inline:16px;border-radius:999px;height:5px;position:absolute;bottom:12px}.metric:first-child:after,.metric:nth-child(3):after{background:linear-gradient(90deg, var(--accent), var(--success))}.metric:nth-child(4):after,.metric:nth-child(6):after{background:linear-gradient(90deg, var(--warning), var(--danger))}.metric span,.metric em,label,.facts dt{color:var(--muted);font-size:13px;font-style:normal}.metric strong{font-size:26px;line-height:1.1}.split{grid-template-columns:1.4fr .8fr;gap:14px;display:grid}.quick-payment-grid{grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);align-items:start;gap:12px;display:grid}.quick-card,.quick-summary{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:14px}.quick-card{gap:18px;display:grid}.quick-card h2,.quick-summary h2{margin:0}.quick-card p,.quick-summary p{color:var(--muted);margin:6px 0 0}.quick-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.quick-form .student-picker,.quick-form .alert,.quick-form button[type=submit]{grid-column:1/-1}.student-picker{position:relative}.student-results{z-index:15;inset-inline:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);gap:6px;max-height:300px;padding:8px;display:grid;position:absolute;top:calc(100% + 6px);overflow:auto}.student-results button{width:100%;color:var(--ink);border-radius:var(--radius);text-align:right;background:0 0;border:1px solid #0000;gap:3px;padding:10px;display:grid}.student-results button:hover,.student-results button:focus-visible{background:var(--accent-soft);border-color:#88beb0;border-color:lab(72.9331% -20.6054 1.41101)}.student-results span,.quick-student span{color:var(--muted);font-size:13px}.quick-summary{gap:14px;display:grid}.quick-student{border:1px solid var(--line);border-radius:var(--radius-lg);background:#edfaf6;background:lab(97.2935% -5.0841 .350046);gap:4px;padding:12px;display:grid}.quick-numbers{gap:8px;display:grid}.quick-numbers div{border:1px solid var(--line);border-radius:var(--radius);background:#fff;gap:4px;padding:10px;display:grid}.quick-numbers span{color:var(--muted);font-size:13px}.quick-numbers strong{font-size:20px}.panel{padding:14px;overflow:hidden}.panel-head,.toolbar,.actions,.legend{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.panel-head{justify-content:space-between;margin-bottom:12px}.inline-actions{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.toolbar{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:10px}input,select{border:1px solid var(--line);width:100%;min-height:40px;color:var(--ink);border-radius:var(--radius);transition:border-color var(--dur-1) var(--ease-out), box-shadow var(--dur-1) var(--ease-out), background-color var(--dur-1) var(--ease-out);background:#fff;padding:8px 10px}input:hover,select:hover{border-color:#80b0a3;border-color:lab(68.2287% -18.8777 1.29299)}label{gap:6px;display:grid}.toolbar>select,.toolbar>input{width:auto;min-width:170px}.searchbox{border:1px solid var(--line);border-radius:var(--radius);min-width:min(340px,100%);transition:border-color var(--dur-1) var(--ease-out), box-shadow var(--dur-1) var(--ease-out);background:#fff;flex:1;align-items:center;gap:8px;padding:0 10px;display:flex}.searchbox:focus-within{border-color:var(--accent);box-shadow:var(--focus)}.searchbox input{border:0;padding-inline:0}.primary{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:none}.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong);transform:none}.secondary{background:var(--surface-2);color:var(--ink);border-color:var(--line)}.secondary:hover,.ghost:hover,.mini:hover{background:var(--accent-soft);border-color:#88beb0;border-color:lab(72.9331% -20.6054 1.41101)}.danger-button{color:var(--danger);background:#fff1f0;background:lab(96.3544% 5.50771 2.9644);border-color:#eeb3ad;border-color:lab(78.4623% 21.6131 11.7883)}.danger-button:hover{background:#ffe4e1;background:lab(92.7161% 10.738 5.79774);border-color:#e18881;border-color:lab(66.465% 34.2301 19.0411)}button:disabled,input:disabled,select:disabled{cursor:not-allowed;opacity:.62}.ghost{border-color:var(--line);color:var(--ink);background:0 0}.mini{background:var(--surface-2);min-height:30px;color:var(--ink);padding:4px 9px}.result-strip{border:1px solid var(--line);border-radius:var(--radius);width:fit-content;color:var(--muted);background:#fff;align-items:center;gap:8px;padding:8px 12px;display:flex}.result-strip strong{color:var(--accent);font-size:18px}.sort-header{width:100%;color:inherit;background:0 0;border:0;justify-content:flex-start;align-items:center;gap:6px;padding:0;font-weight:800;display:inline-flex}.sort-header span{color:var(--muted);font-size:13px}.sort-header.active{color:var(--accent)}.class-pill,.status-badge{border-radius:999px;justify-content:center;align-items:center;min-height:26px;padding:4px 10px;font-size:13px;font-weight:700;display:inline-flex}.class-pill{color:var(--ink);background:#e4f4f2;background:lab(94.9969% -6.07941 -.652778)}.status-badge.active{color:#003907;color:lab(19.9605% -28.2427 24.59);background:#c6f7c8;background:lab(92.9128% -22.6585 17.1711)}.status-badge.exempt{color:#153b68;color:lab(24.015% .211567 -31.0442);background:#d2e3f9;background:lab(89.473% -2.53227 -12.6838)}.status-badge.withdrawn{color:#6f181b;color:lab(24.5353% 38.0742 22.3276);background:#ffd9d5;background:lab(90.1017% 20.1697 10.4827)}.status-badge.graduated{color:#003b62;color:lab(23.0247% -4.44162 -32.2782);background:#cee8ff;background:lab(90.7116% -5.66629 -15.2744)}.status-badge.transferred{color:#462e69;color:lab(24.2529% 21.6584 -30.9968);background:#ebe3fc;background:lab(91.4822% 6.24204 -11.3311)}.table-wrap,.ledger-wrap{border:1px solid var(--line);border-radius:var(--radius-lg);width:100%;box-shadow:none;background:#fff;overflow:auto}.ledger-scrollbar{border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:none;background:#fff;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.ledger-scrollbar span{color:var(--muted);text-align:center;font-size:13px}.ledger-wrap{scrollbar-gutter:stable both-edges}.ledger-wrap::-webkit-scrollbar{height:14px}.ledger-wrap::-webkit-scrollbar-track{background:#ecebe3;border-radius:999px}.ledger-wrap::-webkit-scrollbar-thumb{background:#8c9188;border:3px solid #ecebe3;border-radius:999px}table{border-collapse:collapse;width:100%}.ledger{table-layout:fixed;min-width:1320px}th,td{border-bottom:1px solid var(--line);text-align:right;vertical-align:middle;white-space:nowrap;padding:10px}th{color:var(--ink);background:#eef5f4;background:lab(96.0364% -2.69789 -.290823);font-weight:700}tbody tr{transition:background-color var(--dur-1) var(--ease-out), transform var(--dur-1) var(--ease-out)}tbody tr:hover{background:#f6fbfb;background:lab(98.3323% -2.02289 -.218213)}td span{color:var(--muted);font-size:12px;display:block}.ledger th:first-child,.ledger td:first-child{z-index:1;white-space:normal;background:#fff;width:310px;min-width:310px;max-width:310px;position:sticky;right:0}.ledger th:first-child{background:#eef5f4;background:lab(96.0364% -2.69789 -.290823)}.ledger-mobile,.data-card-list{display:none}.data-card{border:1px solid var(--line);border-radius:var(--radius);background:#fff;gap:8px;padding:12px;display:grid}.data-card-field{border-bottom:1px solid var(--line);grid-template-columns:minmax(86px,.36fr) minmax(0,1fr);align-items:center;gap:10px;min-height:34px;padding-bottom:8px;display:grid}.data-card-field:last-child{border-bottom:0;padding-bottom:0}.data-card-field>span{color:var(--muted);font-size:12px}.data-card-field>strong{white-space:normal;min-width:0;font-weight:700}.ledger-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;gap:10px;padding:12px;display:grid}.ledger-card-head,.ledger-card-totals{justify-content:space-between;align-items:center;gap:10px;display:flex}.ledger-card-head strong{line-height:1.45;display:block}.ledger-card-head span,.ledger-card-totals span{color:var(--muted);font-size:12px;display:block}.ledger-card-totals{border-radius:var(--radius);background:var(--surface-2);padding:9px 10px}.ledger-card-totals div{min-width:0}.ledger-card-totals strong{margin-top:2px;font-size:17px;display:block}.ledger-month-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.mobile-pay-cell{border-radius:var(--radius);text-align:right;border:1px solid #0000;min-height:58px;padding:8px}.mobile-pay-cell span,.mobile-pay-cell strong{display:block}.mobile-pay-cell span{color:inherit;opacity:.78;font-size:12px}.mobile-pay-cell strong{margin-top:4px;font-size:15px}.pay-cell{border:1px solid #0000;border-radius:7px;width:100%;min-width:128px;padding:9px 8px;font-weight:700}.pay-cell:hover{box-shadow:none;transform:none}.paid{color:#003907;color:lab(19.9605% -28.2427 24.59);background:#d2f7d4;background:lab(93.8216% -16.9839 12.7999)}.partial{color:#573400;color:lab(25.5201% 15.3858 41.6917);background:#ffe8bd;background:lab(93.2008% 4.51088 27.6385)}.late{color:#6f181b;color:lab(24.5353% 38.0742 22.3276);background:#ffdedb;background:lab(91.3585% 17.0444 8.83569)}.ignored{color:var(--muted);background:#e4e9e9;background:lab(91.9487% -1.99714 -.41523)}.dot{border-radius:50%;width:12px;height:12px;display:inline-block}.modal-backdrop{z-index:60;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#09222052;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal{width:min(560px,100%);max-height:calc(100vh - 36px);animation:modalIn var(--dur-2) var(--ease-out);padding:18px;overflow:auto}.facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.facts div{border:1px solid var(--line);border-radius:var(--radius);background:#f3f8f7;background:lab(97.1723% -2.02289 -.218189);padding:10px}.facts dd{margin:4px 0 0;font-weight:700}.form-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:12px;display:grid}.telegram-state{border:1px solid var(--line);border-radius:var(--radius);min-height:42px;padding:8px 10px;display:grid}.telegram-state span{color:var(--muted);font-size:13px}.settings-list{gap:8px;display:grid}.settings-row{grid-template-columns:1fr 160px;gap:8px;display:grid}.settings-row .check{align-items:center;gap:8px;display:flex}.settings-row .check input{width:18px;min-height:18px}.subscription-list{gap:8px;display:grid}.subscription-row{border-top:1px solid var(--line);grid-template-columns:minmax(230px,1.5fr) repeat(4,minmax(120px,1fr)) minmax(220px,auto);align-items:center;gap:8px;padding:10px;display:grid}.subscription-row:first-child{border-top:0}.subscription-row strong,.subscription-row span{display:block}.subscription-row span{color:var(--muted);margin-top:2px;font-size:12px}.subscription-row small{color:var(--muted);margin-top:4px;display:block}.subscription-badge{background:var(--soft);border-radius:999px;align-items:center;width:fit-content;margin-top:8px;padding:3px 9px;color:var(--ink)!important;font-size:12px!important;display:inline-flex!important}.subscription-badge.active{background:#b1efca;background:lab(89.4723% -25.6067 11.3071);color:#003e25!important;color:lab(22.1682% -26.9759 10.5623)!important}.subscription-badge.trial{background:#a9f3ff;background:lab(91.349% -22.7115 -15.0778);color:#003b52!important;color:lab(22.3937% -12.4305 -22.066)!important}.subscription-badge.grace{background:#ffe4b3;background:lab(92.0495% 5.40411 31.8809);color:#563000!important;color:lab(24.3285% 15.2779 34.8084)!important}.subscription-badge.expired{background:#ffd8d3;background:lab(90.0642% 21.5877 11.7488);color:var(--danger)!important}.subscription-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.subscription-actions button{min-height:42px}.account-list{gap:10px;display:grid}.account-row{border-top:1px solid var(--line);grid-template-columns:minmax(190px,1.3fr) repeat(5,minmax(130px,1fr)) minmax(130px,auto) minmax(150px,auto);align-items:end;gap:10px;padding:12px;display:grid}.account-row:first-child{border-top:0}.account-row.is-protected{background:var(--surface-2);border-radius:var(--radius)}.account-title{align-self:center}.account-title strong,.account-title span,.account-title small{display:block}.account-title span,.account-title small{color:var(--muted);margin-top:3px;font-size:12px}.account-check{align-self:center;margin:0}.account-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.account-actions button{min-height:42px}.subscription-lock{text-align:center;place-items:center;min-height:260px;display:grid}.subscription-lock h2{margin:12px 0 8px}.subscription-lock p{color:var(--muted);max-width:620px;margin:0 auto 8px}.import-panel{background:var(--surface);justify-items:start;gap:10px;padding:22px;display:grid}.alert,.empty{border:1px solid var(--line);border-radius:var(--radius-lg);color:var(--muted);background:#fff;padding:12px}.alert.danger{color:var(--danger);background:#fff1f0;background:lab(96.3544% 5.50771 2.9644);border-color:#eeb3ad;border-color:lab(78.4623% 21.6131 11.7883)}.alert.warning{color:#5c3100;color:lab(25.3659% 19.9576 44.9919);background:#fff3e2;background:lab(96.579% 2.09969 10.6008);border-color:#e5bc8b;border-color:lab(79.0978% 10.1735 30.9329);gap:10px;display:grid}.inline-action{color:#3e2100;color:lab(16.2335% 14.1984 29.8288);background:#fff;border-color:#d8b07e;border-color:lab(74.4522% 10.2732 31.0719);justify-self:start;align-items:center;gap:8px;min-height:38px;display:inline-flex}.report-summary{flex-wrap:wrap;gap:16px;margin-bottom:12px;display:flex}.rollover-summary{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.rollover-summary span{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:999px;padding:6px 10px;font-weight:700}@media (max-width:980px){.app-shell{grid-template-columns:1fr}.side{z-index:30;border-left:0;border-top:1px solid var(--line);border-radius:var(--radius-lg) var(--radius-lg) 0 0;height:auto;padding:8px 10px calc(8px + env(safe-area-inset-bottom));border-bottom:0;gap:8px;position:fixed;inset:auto 0 0;box-shadow:0 -8px 24px #12272614}.side-head,.side .logout{display:none}.side nav{overscroll-behavior-inline:contain;scrollbar-width:none;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.side nav::-webkit-scrollbar{display:none}.side nav button{border-color:var(--line);min-width:86px;min-height:54px;color:var(--ink);background:#fff;flex-direction:column;flex:none;justify-content:center;gap:4px;padding:7px 8px;font-size:12px}.side nav button svg{width:19px;height:19px}.workspace{padding:12px 12px 96px}.topbar{border-radius:0 0 var(--radius-lg) var(--radius-lg);align-items:center;margin:-12px -12px 12px;padding:10px 12px;position:sticky;top:0}.topbar h1{font-size:24px}.topbar p{font-size:12px}.mobile-only{display:inline-flex}.topbar-actions .ghost{min-width:42px;padding-inline:10px}.metric-grid,.split,.quick-payment-grid,.form-grid,.subscription-row,.account-row{grid-template-columns:repeat(2,minmax(0,1fr))}.subscription-row>div:first-child,.subscription-actions,.account-title,.account-actions{grid-column:1/-1}}@media (max-width:640px){.topbar{gap:8px}.metric-grid,.split,.quick-payment-grid,.quick-form,.form-grid,.facts,.settings-row,.subscription-row,.account-row{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.metric{min-height:88px;padding:12px}.metric strong{font-size:22px}.panel,.quick-card,.quick-summary,.modal,.import-panel{border-radius:var(--radius)}.toolbar{grid-template-columns:1fr;gap:8px;display:grid}.toolbar>select,.toolbar>input,.toolbar button,.searchbox{width:100%}.ledger-scrollbar,.ledger-wrap{display:none}.ledger-mobile{gap:10px;display:grid}.data-table-wrap{display:none}.data-card-list{gap:10px;display:grid}html,body{overflow-x:hidden}.ledger-card{border-radius:var(--radius)}.ledger-card-head{align-items:flex-start}.ledger-card-head .status-badge{flex:none}.ledger-month-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.subscription-actions,.account-actions{justify-content:stretch}.subscription-actions button,.account-actions button{flex:120px}}@media (max-width:420px){.metric-grid,.ledger-month-grid{grid-template-columns:1fr}.topbar-actions .ghost span{display:none}}@media print{.side,.topbar,.toolbar,button{display:none!important}.app-shell,.workspace{padding:0;display:block}.panel,.table-wrap{box-shadow:none;border:0}}@keyframes modalIn{0%{opacity:0;transform:translateY(10px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important}}
