:root{--nav:#07365b;--nav2:#052d4d;--cyan:#10b8d1;--blue:#2563eb;--bg:#f4f7fb;--card:#fff;--text:#10213c;--muted:#72809a;--green:#16a34a;--red:#ef4444;--orange:#f59e0b}
*{box-sizing:border-box} body{margin:0;font-family:Tahoma,Arial,sans-serif;background:var(--bg);color:var(--text)}
.app{display:grid;grid-template-columns:260px 1fr;min-height:100vh}
aside{background:linear-gradient(180deg,var(--nav),var(--nav2));color:#fff;padding:20px 14px;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 20px;border-bottom:1px solid #ffffff24}
.brand img{width:72px;height:58px;object-fit:contain;background:#fff;border-radius:10px;padding:4px}
.brand b{font-size:19px} .brand small{display:block;opacity:.75;margin-top:4px}
nav{margin-top:18px} nav button{width:100%;border:0;background:transparent;color:#fff;text-align:right;padding:13px 14px;margin:3px 0;border-radius:9px;font-size:15px;cursor:pointer}
nav button:hover,nav button.active{background:linear-gradient(90deg,#0fb7cf,#2563eb)} main{min-width:0}
header{height:82px;background:#fff;border-bottom:1px solid #e7ebf2;display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:3}
header h1{font-size:23px;margin:0} .user{display:flex;gap:12px;align-items:center;color:var(--muted)} .avatar{width:40px;height:40px;border-radius:50%;background:#eaf1ff;display:grid;place-items:center;font-size:20px}
.content{padding:24px} .cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}
.card{background:#fff;border:1px solid #e8edf5;border-radius:14px;padding:18px;box-shadow:0 2px 10px #16365b0b}
.card .label{color:var(--muted);font-size:14px} .card .value{font-size:28px;font-weight:700;margin-top:10px}
.grid{display:grid;grid-template-columns:2fr 1fr;gap:18px} .toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
input,select,textarea{border:1px solid #dce3ee;border-radius:9px;padding:10px 12px;background:#fff;font:inherit;max-width:100%}
.btn{border:0;border-radius:9px;padding:10px 15px;cursor:pointer;font-weight:700} .primary{background:var(--blue);color:#fff} .success{background:var(--green);color:#fff}
table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden} th,td{padding:11px 10px;border-bottom:1px solid #edf0f5;text-align:right;font-size:13px} th{background:#f8fafc}
.badge{padding:5px 9px;border-radius:20px;font-size:12px} .ok{background:#e8f7ec;color:#16803a} .late{background:#fff2da;color:#b36c00} .no{background:#ffe7e7;color:#c62d2d}
.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px} .panel-title h3{margin:0}
.page{display:none} .page.active{display:block} .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px} label{display:block;font-size:13px;color:#53627a;margin-bottom:5px}
.field{margin-bottom:12px} .field input,.field select,.field textarea{width:100%}
.alert{padding:12px;border-radius:9px;background:#eef6ff;margin:8px 0;font-size:13px} .money-in{color:var(--green);font-weight:700} .money-out{color:var(--red);font-weight:700}
.chart{height:180px;display:flex;align-items:flex-end;gap:12px;padding:18px 8px 0;border-bottom:1px solid #dde4ee} .bar{flex:1;background:#22a447;border-radius:5px 5px 0 0;min-height:15px;position:relative} .bar.red{background:#ef4444}
.footer{color:#8b97aa;text-align:center;padding:24px;font-size:12px}
@media(max-width:1000px){.app{grid-template-columns:82px 1fr} .brand div,nav button span{display:none} .brand img{width:50px} nav button{text-align:center;font-size:20px} .cards{grid-template-columns:1fr 1fr} .grid{grid-template-columns:1fr}}.report-scroll{overflow-x:auto} #reportOutput{margin-top:24px} #reportOutput th,#reportOutput td{font-size:14px} .report-total{font-weight:bold;font-size:18px} #reportOutput p{line-height:1.8}
.barcode-button{margin:4px}.attendance-counts{margin-top:18px}.scan-error{background:#fee2e2;color:#991b1b}.scan-success{background:#dcfce7;color:#14532d}#attendance p{line-height:1.8}#attendance td,#attendance th{font-size:14px}#barcodeDialog{border:1px solid #dce3ee;border-radius:16px;max-width:95vw;padding:24px}#barcodeDialog::backdrop{background:#10213c99}#studentCard{text-align:center;background:white;color:black;max-width:100%}#studentBarcode{max-width:100%;height:auto;direction:ltr}#studentCard h2{overflow-wrap:anywhere}#scanCode{min-width:220px}.card-actions{justify-content:center;margin-top:16px}@media print{body:has(#barcodeDialog[open])>.app{display:none!important}#barcodeDialog[open]{position:static;display:block;border:0;margin:0 auto;width:100%;max-width:none;padding:0}#barcodeDialog .card-actions{display:none!important}#studentCard{width:100mm;margin:10mm auto;padding:4mm;border:1px solid black;break-inside:avoid}#studentBarcode{width:auto;max-width:90mm}#barcodeDialog::backdrop{display:none}}

#studentFormMessage{color:#a12626;min-height:1.4em}#barcodeHelp{display:block;line-height:1.7;color:#526278}.card-number{font-size:14px;margin:6px 0;overflow-wrap:anywhere}#scanResult{padding:14px;margin:12px 0;border:1px solid #cbd5e1;border-radius:10px}#scanResult[hidden]{display:none}#scanStudentDetails{overflow-wrap:anywhere}#sbarcode,#scanCode{font-size:18px}#studentTable .btn{margin:3px}#students>.card:last-child{overflow-x:auto}

#whishReceiptField[hidden]{display:none}#paymentMessage{min-height:1.4em;line-height:1.7}#payments .grid>.card:first-child{overflow-x:auto}#payRows td:last-child{overflow-wrap:anywhere;max-width:240px}
