:root{--nalc:#0f5c6e;--nalc-dark:#0a3f4c;--nalc-light:#e6f2f5;--nalc-accent:#e9a23b;--sidebar-w:250px}
body{background:#f3f6f8;font-family:"Segoe UI",Tahoma,Arial,sans-serif;font-size:.95rem}
.app-shell{display:flex;min-height:100vh}
.sidebar{width:var(--sidebar-w);background:linear-gradient(180deg,var(--nalc-dark),var(--nalc));color:#dbe9ed;position:fixed;top:0;bottom:0;overflow-y:auto;z-index:1030;padding-bottom:2rem}
[dir=rtl] .sidebar{right:0}
.sidebar .brand{display:flex;align-items:center;gap:.7rem;padding:1rem;border-bottom:1px solid rgba(255,255,255,.12)}
.sidebar .brand-name{font-weight:700;line-height:1.1;color:#fff}.sidebar .brand-sub{font-size:.75rem;color:#a8c8d0}
.logo-placeholder{background:var(--nalc-accent);color:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:800;letter-spacing:0}
.sidebar .nav-sep{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:#8fb4be;padding:1rem 1rem .3rem}
.sidebar .nav-link{color:#dbe9ed;padding:.5rem 1rem;display:flex;gap:.65rem;align-items:center;border-left:3px solid transparent}
[dir=rtl] .sidebar .nav-link{border-left:0;border-right:3px solid transparent}
.sidebar .nav-link:hover{background:rgba(255,255,255,.08);color:#fff}
.sidebar .nav-link.active{background:rgba(255,255,255,.14);color:#fff;border-color:var(--nalc-accent)}
.main{flex:1;margin-left:var(--sidebar-w);min-width:0}
[dir=rtl] .main{margin-left:0;margin-right:var(--sidebar-w)}
.topbar{background:#fff;border-bottom:1px solid #dde4e8;padding:.55rem 1.25rem;display:flex;align-items:center;gap:1rem;position:sticky;top:0;z-index:1020}
.topsearch{width:min(420px,45%)}
.content{padding:1.25rem 1.5rem 3rem}
.card{border:0;box-shadow:0 1px 3px rgba(16,40,50,.08);border-radius:.7rem}
.card-header{background:#fff;font-weight:600;border-bottom:1px solid #eef2f4}
.stat-card{display:flex;gap:.9rem;align-items:center;padding:1rem 1.1rem}
.stat-card .ico{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;background:var(--nalc-light);color:var(--nalc)}
.stat-card .val{font-size:1.45rem;font-weight:700;line-height:1.1}.stat-card .lbl{color:#6b7c85;font-size:.8rem}
.table thead th{background:#f0f5f7;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:#4a5b64;white-space:nowrap}
.table-hover tbody tr:hover{background:#f7fbfc}
.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
[dir=rtl] .num{text-align:left}
.btn-primary{background:var(--nalc);border-color:var(--nalc)}.btn-primary:hover,.btn-primary:focus{background:var(--nalc-dark);border-color:var(--nalc-dark)}
.btn-outline-primary{color:var(--nalc);border-color:var(--nalc)}.btn-outline-primary:hover{background:var(--nalc);border-color:var(--nalc)}
a{color:var(--nalc)}
.page-title{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.page-title h1{font-size:1.4rem;margin:0}
.login-body{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--nalc-dark),var(--nalc) 60%,#2b8ea3)}
.login-card{width:min(420px,92vw)}
.total-box{background:var(--nalc-light);border-left:4px solid var(--nalc);padding:.75rem 1rem;border-radius:.5rem;font-weight:600}
.search-results{position:absolute;z-index:50;background:#fff;border:1px solid #cfd8dc;border-radius:.5rem;width:100%;max-height:320px;overflow:auto;box-shadow:0 8px 20px rgba(0,0,0,.12)}
.search-results .item{padding:.5rem .8rem;cursor:pointer;border-bottom:1px solid #f0f0f0}.search-results .item:hover{background:var(--nalc-light)}
.print-header{margin-bottom:.5rem}
/* payment slip */
.slip{background:#fff;width:190mm;margin:0 auto;padding:10mm 12mm;border:2px solid var(--nalc);position:relative;font-size:12pt}
.slip .slip-head{display:flex;align-items:center;gap:14px;border-bottom:2px solid var(--nalc);padding-bottom:8px;margin-bottom:10px}
.slip h2{font-size:20pt;margin:0;color:var(--nalc)}.slip .slip-title{text-align:center;font-weight:700;letter-spacing:.1em;margin:6px 0 12px}
.slip table.slip-t{width:100%}.slip table.slip-t td{padding:5px 4px;border-bottom:1px dotted #aaa;vertical-align:top}
.slip table.slip-t td.k{width:34%;color:#444;font-weight:600}
.slip .amount-box{border:2px solid var(--nalc);padding:6px 12px;font-size:16pt;font-weight:800;display:inline-block;min-width:150px;text-align:center}
.slip .sign{display:flex;justify-content:space-between;margin-top:34px}.slip .sign div{border-top:1px solid #333;width:42%;text-align:center;padding-top:4px;font-size:10pt}
.slip .watermark{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:90pt;color:rgba(15,92,110,.05);font-weight:900;transform:rotate(-20deg);pointer-events:none}
@media (max-width:991px){.sidebar{transform:translateX(-100%);transition:.2s}[dir=rtl] .sidebar{transform:translateX(100%)}.sidebar.show{transform:none}.main,[dir=rtl] .main{margin:0}.content{padding:1rem}}
@media print{
  @page{size:A4;margin:12mm}
  body{background:#fff;font-size:10.5pt}
  .no-print,.sidebar,.topbar,.btn,.pagination,.alert{display:none!important}
  .main{margin:0!important}.content{padding:0!important}
  .card{box-shadow:none;border:1px solid #ccc}
  .table thead th{background:#eee!important;color:#000}
  a{color:#000;text-decoration:none}
  .slip{border-width:2px;width:100%;margin:0;box-shadow:none}
  .table-responsive{overflow:visible!important}
}

/* report cards, certificates, ID cards */
.rc{background:#fff;width:190mm;margin:0 auto 14px;padding:9mm 12mm;border:2px solid var(--nalc);font-size:11pt;position:relative;page-break-after:always;break-after:page}
.rc:last-of-type{page-break-after:auto;break-after:auto}
.rc .rc-head{display:flex;align-items:center;gap:14px;border-bottom:2px solid var(--nalc);padding-bottom:8px;margin-bottom:8px}
.rc h2{font-size:18pt;margin:0;color:var(--nalc)}.rc .rc-title{text-align:center;font-weight:800;letter-spacing:.12em;margin:4px 0 10px;font-size:13pt}
.rc table.rc-t{width:100%;border-collapse:collapse}.rc table.rc-t th,.rc table.rc-t td{border:1px solid #999;padding:4px 6px;font-size:10pt}.rc table.rc-t th{background:#eef3f5;text-align:start}
.rc .rc-info td{border:0;border-bottom:1px dotted #aaa;padding:3px 4px}.rc .rc-sum{display:flex;gap:10px;margin:10px 0}.rc .rc-sum div{flex:1;border:1.5px solid var(--nalc);padding:5px;text-align:center}.rc .rc-sum b{display:block;font-size:15pt}
.rc .sign{display:flex;justify-content:space-between;margin-top:30px}.rc .sign div{border-top:1px solid #333;width:30%;text-align:center;padding-top:4px;font-size:10pt}
.cert{background:#fff;width:277mm;height:188mm;margin:0 auto 14px;padding:10mm;position:relative;box-sizing:border-box;border:3px double var(--nalc);text-align:center;display:flex;flex-direction:column;justify-content:space-between}
.cert .cert-inner{border:1.5px solid var(--nalc);height:100%;padding:8mm 14mm;display:flex;flex-direction:column;justify-content:space-between;box-sizing:border-box}
.cert h1{font-size:34pt;letter-spacing:.12em;color:var(--nalc);margin:4px 0}.cert .cert-name{font-size:30pt;font-weight:800;border-bottom:1.5px solid #333;display:inline-block;padding:0 24px;margin:6px 0}
.cert .cert-sign{display:flex;justify-content:space-around}.cert .cert-sign div{border-top:1px solid #333;width:30%;padding-top:4px;font-size:11pt}
@media print{.rc,.cert{width:100%;margin:0;border-width:2px}.cert{width:100%;height:185mm}}
