@font-face{font-family:Saudi;src:url('/assets/fonts/Saudi-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Saudi;src:url('/assets/fonts/Saudi-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
:root{color-scheme:light;--font:"Segoe UI",Tahoma,Arial,sans-serif;--ink:#182d29;--muted:#60716b;--green:#146b52;--green-dark:#084735;--light:#e7f3ec;--line:#dbe5df;--surface:#fff;--canvas:#f3f6f4;--gold:#aa741d;--red:#b33d3d;--radius:16px;--shadow:0 4px 18px #143c2710}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font:16px/1.7 var(--font)}button,input,select,textarea{font:inherit}button,input,select,a{touch-action:manipulation}button,.button-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;min-height:46px;padding:11px 22px;border-radius:10px;border:1px solid transparent;background:var(--green);color:white;font-weight:700;text-decoration:none;line-height:1.5;transition:background .16s,box-shadow .16s}button:hover,.button-link:hover{background:var(--green-dark);box-shadow:0 2px 5px #163c241a}button:disabled{opacity:.45;cursor:wait}button.secondary{background:white;border-color:#c8d8cd;color:var(--green-dark);box-shadow:none}button.secondary:hover{background:var(--light)}button.danger{background:#fff0ef;color:var(--red);border-color:#f2cfcb}button.small{padding:7px 14px;min-height:38px;font-size:14px}button.link{background:transparent;color:var(--green);padding:4px 0;box-shadow:none;text-align:right}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #b78d32;outline-offset:3px}input,select,textarea{display:block;width:100%;min-height:46px;padding:10px 13px;border:1px solid #b7c9bd;border-radius:9px;background:white;color:var(--ink)}input[type=checkbox],input[type=radio]{display:inline-block;width:20px;height:20px;min-height:20px;accent-color:var(--green);flex-shrink:0}input[type=file]{max-width:100%;font-size:13px}select[multiple]{min-height:160px}textarea{min-height:94px;resize:vertical}label{display:block;font-weight:700;font-size:14px;margin-bottom:7px}h1,h2,h3,p{margin-top:0}h1{font-size:32px;line-height:1.45;margin-bottom:8px;font-weight:700}h2{font-size:23px;line-height:1.5;margin-bottom:14px}h3{font-size:18px;line-height:1.6;margin-bottom:8px}p{color:var(--muted);margin-bottom:14px}small{font-size:13px;color:var(--muted)}a{color:var(--green)}[hidden]{display:none!important}.shell{display:grid;grid-template-columns:242px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:var(--surface);border-left:1px solid #c6d5cd;padding:8px 10px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;font-size:35px;font-weight:700;margin:0 12px 34px;color:var(--green-dark);flex-wrap:wrap}.brand img{width:42px;height:42px}.brand small{font-size:11px;font-weight:400;color:var(--muted)}.nav{display:grid;gap:4px}.nav-group{display:grid;gap:1px}.nav-group h2{font-size:11px;line-height:1.4;font-weight:700;color:var(--muted);margin:0 10px 3px}.nav-group+.nav-group{border-top:1px solid var(--line);padding-top:4px}.nav-group:last-child h2{display:none}.nav button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.nav button span{min-width:0}.menu-toggle{display:none}.nav button{display:flex;align-items:center;gap:9px;justify-content:flex-start;text-align:right;background:transparent;color:#344f45;font-size:14px;line-height:1.45;min-height:34px;padding:6px 10px;font-weight:600;border-radius:7px;position:relative;box-shadow:none}.nav button:hover{background:#f3f7f3}.nav button.on{background:var(--light);color:var(--green-dark);font-weight:700}.nav button.on:before{content:'';position:absolute;right:0;width:4px;height:22px;background:var(--green);border-radius:4px}.sidefoot{margin-top:auto;border-top:1px solid var(--line);padding:9px 10px 0;font-size:12px;color:var(--muted)}.sidefoot strong{display:block;color:var(--ink);font-size:15px}.main{padding:22px 26px 32px;min-width:0;max-width:1540px;width:100%;margin:0 auto}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;border-bottom:1px solid #c6d5cd;padding-bottom:14px}.heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.heading p{margin:0}.heading h2{margin-bottom:5px}.eyebrow{font-size:13px;color:var(--green);font-weight:700;margin-bottom:8px}.pill,.status{display:inline-flex;align-items:center;gap:5px;background:var(--light);color:var(--green-dark);border:1px solid #d1e5d7;border-radius:30px;padding:3px 11px;font-size:12px;white-space:nowrap}.status.neutral{background:#f0f2ef;color:#66756d;border-color:#e0e5df}.card{padding:20px;border:1px solid #cad8d0;border-radius:12px;background:var(--surface);margin-bottom:16px;box-shadow:0 2px 5px #223c2708}.hero{background:linear-gradient(110deg,#e8f3eb,#f8fbf6);border-color:#d0e3d7;display:flex;align-items:center;justify-content:space-between;padding:28px 32px}.hero h2{font-size:28px}.hero p{max-width:680px}.hero .motif{font-size:90px;color:var(--green);line-height:1;margin-left:14px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{background:var(--surface);border:1px solid #cad8d0;border-radius:12px;padding:16px 20px;border-top:3px solid var(--green)}.metric span{color:var(--muted);font-size:14px}.metric strong{display:block;font-size:38px;line-height:1.65;color:var(--green-dark)}.metric small{font-size:12px}.filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:14px}.filters>.field:has(.dual-date){grid-column:span 1}.filters>button{align-self:end}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.field{min-width:0}.field.full{grid-column:1/-1}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:20px}.stack{display:grid;gap:12px}.tabrow{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}.tabrow button{background:transparent;border:1px solid #cbd9cf;color:var(--muted);font-size:14px}.tabrow button.on{background:var(--green);color:#fff;border-color:var(--green)}.tabrow .negative.on{background:var(--red);border-color:var(--red)}.domain-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.domain{display:flex;align-items:center;justify-content:flex-start;gap:12px;background:#fbfcfa;border:1px solid var(--line);text-align:right;color:var(--ink);padding:10px 12px;min-height:76px;height:auto}.domain-copy{min-width:0}.domain-name{display:block;line-height:1.5;font-size:14px;font-weight:700}.deduction-note{display:block;color:var(--muted);font-size:12px;line-height:1.6;margin-bottom:10px}.domain:hover{background:#edf5ee;color:var(--ink)}.domain strong{display:block;flex-shrink:0;min-width:38px;font-size:25px;line-height:1.2;color:var(--green);margin:0;text-align:center}.domain small{display:block;font-weight:400;line-height:1.6}.domain.negative strong{color:var(--red)}.domain.selected{outline:2px solid var(--green);background:var(--light);outline-offset:1px}.preview{background:#f1f8f2;border:1px solid #bbdac5;border-radius:12px;padding:22px;margin-top:22px}.summary-line{display:flex;gap:24px;flex-wrap:wrap}.summary-line strong{font-size:26px;display:block}.muted{color:var(--muted);font-size:14px}.empty{text-align:center;color:var(--muted);padding:36px 16px}.responsive{width:100%;min-width:0}table{width:100%;border-collapse:collapse;text-align:right;font-size:14px}th,td{padding:14px 10px;border-bottom:1px solid #e6ede7;vertical-align:middle}th{font-size:13px;color:#53685b;background:#f3f7f3;font-weight:700}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfdfb}td strong{display:block}.positive{color:var(--green);font-weight:700}.negative{color:var(--red)}.compact{margin-bottom:10px}.no-margin{margin:0}.spaced{margin-top:24px}.section-heading{display:flex;align-items:start;gap:15px;margin-bottom:20px}.section-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:48px;height:48px;background:var(--light);color:var(--green);font-size:28px;border-radius:12px}.section-heading h2{margin-bottom:4px}.section-heading p{margin:0}.checkline{display:flex;align-items:center;gap:9px;margin:7px 0}.checkline label{margin:0;font-size:14px;font-weight:400}.checkbox-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px}.avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid #e1ece3;background:#e8f2ed}.avatar.placeholder{display:inline-flex;align-items:center;justify-content:center;color:var(--green);font-size:20px;font-weight:700}.avatar.large{width:90px;height:90px;font-size:38px}.person{display:flex;align-items:center;gap:10px;text-align:right}.person small{display:block;font-size:12px}.photo-editor{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:16px;border:1px dashed #b3cabb;border-radius:12px}.photo-editor input{width:auto;flex:1;min-width:180px}.photo-editor small{width:100%}.student-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}.student-option{display:flex;align-items:center;gap:10px;padding:12px;background:#f8faf7;border:1px solid var(--line);border-radius:10px;cursor:pointer}.student-option small{display:block;font-weight:400}.badge-catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.badge-rule{display:flex;align-items:flex-start;gap:18px;background:#fcfdfb;border:1px solid var(--line);border-radius:14px;padding:22px}.badge-rule.inactive{opacity:.6}.badge-image{width:76px;height:86px;object-fit:contain;flex-shrink:0}.badge-rule h3{margin:7px 0;font-size:20px}.badge-rule p{font-size:14px;line-height:1.7}.badge-rule .status{font-size:11px}.rule-details{border-top:1px solid var(--line);padding-top:10px;margin-bottom:12px}.rule-details strong{display:block;font-size:13px;color:#496052;font-weight:400}.rule-details small{display:block;margin-top:5px;font-size:12px}.earned-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.earned-card{text-align:center;padding:22px;border:1px solid #e5ddc7;background:#fffdf7;border-radius:14px}.earned-card .person{justify-content:center;margin:14px 0}.earned-card h3{margin-top:10px;color:#7d5e24}.earned-card>small{font-size:11px}.icon-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px}.icon-picker label{display:flex;flex-direction:column;align-items:center;gap:7px;border:1px solid var(--line);padding:12px;border-radius:12px;cursor:pointer;font-size:12px}.icon-picker label:has(input:checked){background:var(--light);border-color:var(--green)}.icon-picker .badge-image{width:50px;height:60px}.student-badges{display:flex;gap:14px;flex-wrap:wrap;margin:20px 0}.student-badges>div{display:grid;justify-items:center;gap:8px;font-size:13px;padding:14px;border:1px solid #e6ddc4;border-radius:12px}.student-badges .badge-image{width:56px;height:64px}.display-list{display:grid;gap:16px}.display-item{display:flex;align-items:center;gap:20px;padding:22px;border:1px solid var(--line);border-radius:14px;background:#fcfdfa}.display-symbol{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:14px;background:var(--light);color:var(--green);font-size:40px;flex-shrink:0}.display-info{flex:1}.display-info h3{display:inline-block;margin-left:10px}.display-info p{font-size:14px;margin:7px 0}.display-info small{font-size:12px}.display-item .actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  align-items: stretch;
  gap: 8px;
  width: min(100%, 320px);
  margin: 0;
}
.display-item .actions > :is(button, .button-link) {
  min-height: 48px;
  padding: 8px 10px;
  font-size: 14px;
  line-height: 1.4;
  text-align: center;
}
.display-item .actions > small {
  grid-column: 1 / -1;
  align-self: center;
}.award{border:1px solid #eadfc6;background:#fffcf5;border-radius:12px;padding:18px;margin-bottom:12px}.award.cancelled{opacity:.6}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-art{display:flex;flex-direction:column;justify-content:center;background:#0f4c3b;padding:65px;color:white}.login-art .brand{color:#fff;margin:0 0 35px}.login-art .brand small{color:#bdd8c7}.login-art h1{font-size:48px;max-width:460px;line-height:1.5}.login-art p{color:#c5dbce;max-width:480px;font-size:18px}.login-art .circle{font-size:80px;color:#e7c97f;margin-bottom:22px}.login-form{display:flex;align-items:center;justify-content:center;padding:35px}.login-form>div{max-width:400px;width:100%}.login-form h2{font-size:30px}.login-form form{display:grid;gap:20px;margin-top:28px}.login-form button{width:100%}.local-note{font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:20px;margin-top:26px}#notice{position:fixed;bottom:24px;left:24px;max-width:460px;padding:16px 24px;border-radius:12px;background:#174e3c;color:white;box-shadow:var(--shadow);z-index:100;display:none;font-size:15px}#notice.error{background:#983f3d}dialog{max-width:760px;width:calc(100% - 28px);max-height:90vh;border:1px solid var(--line);border-radius:20px;padding:28px;color:var(--ink);box-shadow:0 25px 90px #0d29253d}dialog::backdrop{background:#12291e80;backdrop-filter:blur(3px)}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}
@media(min-width:1100px){.record-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:22px;align-items:start}}
@media(max-width:1200px){.filters{grid-template-columns:1fr 1fr}.filters button{grid-column:1/-1}.badge-catalog{grid-template-columns:1fr}.domain-grid{grid-template-columns:1fr 1fr}.display-item{flex-wrap:wrap}.main{padding:26px}.student-picker{grid-template-columns:1fr 1fr}}
@media(max-width:850px){.shell{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:12px 8px}.nav button{font-size:13px;padding:6px 9px}.brand{font-size:29px;margin:0 6px 25px}.brand small{display:none}.main{padding:22px}.grid{gap:10px}.metric{padding:16px}.metric strong{font-size:30px}.earned-grid{grid-template-columns:1fr 1fr}.hero{padding:22px}.hero h2{font-size:24px}.login-art{padding:32px}.login-art h1{font-size:36px}.responsive table,.responsive tbody,.responsive tr,.responsive td{display:block;width:100%}.responsive thead{display:none}.responsive tr{padding:10px;border:1px solid var(--line);border-radius:12px;margin-bottom:12px}.responsive td{border:0;padding:6px 8px;overflow-wrap:anywhere}.responsive td:before{content:attr(data-label);display:inline-block;min-width:110px;color:var(--muted);font-size:12px}.responsive td .person{display:inline-flex}.responsive td strong{display:inline}.responsive tbody tr:last-child td{border:0}}
@media(max-width:650px){body{font-size:16px}.shell{display:block}.sidebar{position:static;height:auto;padding:16px 12px 8px;border-left:0;border-bottom:1px solid var(--line)}.brand{margin:0 8px 14px;font-size:29px}.brand img{width:33px;height:33px}.menu-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--light);color:var(--green-dark);border:1px solid var(--line);padding:8px 12px;min-height:42px;border-radius:8px}.menu-toggle:hover,.menu-toggle[aria-expanded=true]{background:var(--light);color:var(--green-dark);border-color:var(--green-dark)}.nav{display:none;gap:8px;padding:10px 0 4px}.nav.is-open{display:grid}.nav-group{grid-template-columns:1fr 1fr;gap:3px 6px}.nav-group h2{grid-column:1/-1}.nav button{min-height:42px;padding:7px 10px;font-size:13px;white-space:normal}.nav button.on:before{display:none}.sidefoot{display:none}.main{padding:18px 14px}.topbar{margin-bottom:20px;padding-bottom:14px;align-items:start}.topbar .muted{font-size:12px}.pill{font-size:10px}h1{font-size:26px}h2{font-size:21px}.heading{flex-wrap:wrap;gap:12px}.card{padding:18px;margin-bottom:16px}.hero{padding:22px}.hero .motif{display:none}.hero h2{font-size:25px}.grid{grid-template-columns:1fr}.grid.two{grid-template-columns:1fr}.metric{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);border-right:3px solid #b7d5c2}.metric strong{font-size:29px}.metric small{display:none}.fields{grid-template-columns:1fr}.field.full{grid-column:auto}.filters{gap:12px}.filters input,.filters select{font-size:14px;padding:9px;min-width:0}.domain-grid{gap:10px}.domain{padding:9px 10px;font-size:14px}.domain strong{font-size:26px}.actions>button{flex:1}.badge-rule{gap:12px;padding:16px}.badge-rule>.badge-image{width:60px;height:70px}.badge-rule h3{font-size:20px}.earned-grid{grid-template-columns:1fr}.student-picker{grid-template-columns:1fr}.checkbox-grid{grid-template-columns:1fr}.icon-picker{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.icon-picker label{padding:8px 2px}.icon-picker .badge-image{width:42px;height:50px}.display-item{padding:16px;gap:12px}.display-symbol{width:45px;height:45px;font-size:30px}.display-info h3{display:block;margin:0 0 7px}.display-info{min-width:190px}.display-item .actions{width:100%}.login{display:block}.login-art{padding:26px}.login-art .circle,.login-art p{display:none}.login-art .brand{margin-bottom:16px}.login-art h1{font-size:28px;margin:0}.login-form{padding:30px 22px}.login-form h2{font-size:28px}.tabrow{gap:6px}.tabrow button{padding:9px 12px;font-size:13px}#notice{bottom:14px;left:14px;right:14px;max-width:none}dialog{padding:20px}.section-heading{gap:10px}.section-icon{width:40px;height:40px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media print{.sidebar,.topbar,.filters,button{display:none!important}.shell{display:block}.main{padding:0;max-width:none}.card{border:0;padding:0;box-shadow:none}.responsive table{display:table}.responsive thead{display:table-header-group}.responsive tbody{display:table-row-group}.responsive tr{display:table-row}.responsive td{display:table-cell}.responsive td:before{display:none}}
.sidebar{overflow-y:auto}.brand{flex-wrap:nowrap;gap:12px;align-items:center}.brand>div{min-width:0}.brand small{display:block;font-size:12px;line-height:1.6;overflow-wrap:anywhere}.brand .school-logo{width:48px;height:48px;object-fit:contain}.print-brand{display:none}.identity-preview{display:flex;align-items:center;gap:25px;background:#f4f8f3;border:1px solid var(--line);padding:24px;border-radius:14px;margin-bottom:25px}.identity-preview img{width:130px;height:100px;object-fit:contain}.identity-placeholder{padding:25px;background:var(--light);border-radius:12px;color:var(--green);font-weight:700}.identity-preview h2{margin-bottom:5px}.identity-preview p{margin:0}.info-note{margin-top:22px;padding:16px;border-right:3px solid var(--green);background:#f0f6f0;color:var(--muted);font-size:14px}.support-filters{grid-template-columns:1fr 1fr auto}@media(max-width:650px){.brand small{display:block;font-size:11px}.brand .school-logo{width:36px;height:36px}.identity-preview{padding:16px;gap:15px}.identity-preview img{width:85px;height:85px}.support-filters{grid-template-columns:1fr 1fr}.support-filters button{grid-column:1/-1}.identity-preview h2{font-size:20px}}@media print{.print-brand{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:25px}.print-brand img{width:75px;height:65px;object-fit:contain}.print-brand strong{font-size:25px}}

/* Compact synchronized dates: one row, errors only when needed. */
.dual-date{display:grid;grid-template-columns:1fr 1fr;gap:8px;min-width:0}.date-cell{min-width:0}.date-cell>label{font-size:11px;font-weight:400;color:var(--muted);margin-bottom:4px}.dual-date input{width:100%;min-width:0;font-family:"Segoe UI",Tahoma,sans-serif;font-size:14px;padding:9px 7px;text-align:left;direction:ltr}.hijri-entry{display:flex;direction:ltr;border:1px solid #b7c9bd;border-radius:9px;background:#fff;overflow:hidden}.hijri-entry input{border:0;border-radius:0;flex:1;min-height:44px}.hijri-entry:focus-within{outline:2px solid var(--green);outline-offset:1px}.hijri-entry input:focus-visible{outline:none}.hijri-trigger{flex:0 0 30px;min-height:0;padding:0;border-radius:0;border:0;background:var(--light);color:var(--green);font-size:21px}.date-message{grid-column:1/-1;line-height:1.5;color:var(--red);font-size:12px}.dual-date input:invalid:not(:placeholder-shown){border-color:#b3261e}
.hijri-picker{width:min(360px,calc(100vw - 24px));padding:18px;border:1px solid var(--line);border-radius:16px;color:var(--ink);box-shadow:0 16px 60px #152f2938;font-family:var(--font)}.hijri-picker::backdrop{background:#102b2555}.calendar-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.calendar-heading small{font-weight:400;margin-right:6px}.hijri-picker button{min-height:36px;padding:5px;box-shadow:none}.calendar-close{background:transparent;color:var(--muted);width:32px;font-size:24px}.calendar-navigation{display:grid;grid-template-columns:32px minmax(0,1fr) 82px 32px;gap:6px;margin-bottom:14px}.calendar-navigation select{min-height:36px;padding:4px;font-size:14px}.calendar-navigation button{background:var(--light);color:var(--green)}.calendar-week,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}.calendar-week{font-size:11px;color:var(--muted);margin-bottom:6px}.calendar-days button{background:transparent;color:var(--ink);font-weight:400;font-size:15px;border-radius:8px}.calendar-days button:hover{background:var(--light)}.calendar-days button[aria-current=date]{background:var(--green);color:white;font-weight:700}.calendar-days button:disabled{opacity:.25;cursor:default}.calendar-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--line);padding-top:12px;margin-top:14px}.calendar-footer small{font-size:11px}.calendar-footer button{font-size:13px;padding:5px 15px}
@media(max-width:650px){.filters>.field:has(.dual-date){grid-column:1/-1}.dual-date{gap:10px}.dual-date input{font-size:14px}}

@media(min-width:1001px){.filters{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.filters>button{align-self:end}.support-filters{grid-template-columns:1fr 1fr auto}}
.hijri-entry{position:relative}.dual-date .native-date{position:absolute;width:1px;height:1px;min-height:0;padding:0;opacity:0;pointer-events:none;left:0;bottom:0}
#recordStudent{min-height:155px;padding:5px}#recordStudent option{padding:7px 10px;border-radius:5px}#studentMatches{margin:8px 0 0}.record-receipt{border:1px solid #b7d7c3;background:#eff8f1;padding:12px;border-radius:9px;color:var(--green-dark);font-size:14px;margin-bottom:15px}.row-actions{display:flex;gap:7px;flex-wrap:wrap}
.badge-image.custom-badge{width:130px;height:130px;object-fit:contain;flex-shrink:0}.badge-rule>.custom-badge{width:130px;height:130px}.earned-card>.custom-badge{width:150px;height:150px}#badgeUploadPreview .badge-image{width:180px;height:180px;object-fit:contain}.workflow-step{border-inline-start:4px solid var(--green)}.transfer-options{max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:12px}.transfer-options label{font-weight:400}.workflow-status{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}

.dashboard-action{display:flex;align-items:center;justify-content:space-between;gap:18px;border-right:4px solid var(--green);background:#eef5f0}
.overview-context{display:flex;align-items:center;justify-content:space-between;gap:16px;border-right:4px solid var(--green)}.overview-context>div{min-width:0}.overview-context span{display:block;color:var(--muted);font-size:14px;margin-top:4px}.overview-context p{font-size:13px;margin:6px 0 0}.overview-context>button{flex-shrink:0}.overview-metrics{margin-bottom:16px}.overview-filter>summary{cursor:pointer;font-weight:700;color:var(--green);min-height:30px}.overview-filter[open]>summary{margin-bottom:18px}.overview-leaders{display:grid;gap:0}.overview-student{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.overview-student:last-child{border-bottom:0}.overview-student>.person{flex:1;min-width:0}.overview-student .person strong{overflow-wrap:anywhere}.overview-points{text-align:center;min-width:65px}.overview-points strong{display:block;font-size:25px;color:var(--green);line-height:1.3}.overview-points small{font-size:12px}.overview-student>.link{min-height:44px;padding:8px}.overview-metrics .metric small{display:block}
@media(max-width:650px){.overview-context{align-items:stretch;flex-direction:column;gap:12px}.overview-context>button{width:100%}.overview-context p{line-height:1.8}.overview-metrics .metric{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:12px 14px}.overview-metrics .metric small{grid-column:1/-1;font-size:12px}.overview-metrics .metric strong{grid-column:2;grid-row:1;font-size:28px}.overview-student{gap:8px}.overview-student .avatar{width:34px;height:34px}.overview-student .person{gap:8px}.overview-student .person small{font-size:12px}.overview-points{min-width:40px}.overview-student>.link{font-size:13px}}
.dashboard-action h2{font-size:21px;margin:0 0 4px}.dashboard-action p{margin:0;font-size:14px}.dashboard-action button{flex-shrink:0}
.shell .heading h1{font-size:28px}.shell .fields{gap:14px}.shell .topbar .pill{white-space:normal}
@media(min-width:1201px){.filters:not(.support-filters)>.field:has(.dual-date){grid-column:span 2}.filters:not(.support-filters){grid-template-columns:repeat(6,minmax(0,1fr))}.filters:not(.support-filters)>.field{grid-column:span 2}.filters:not(.support-filters)>button{grid-column:span 2}}
@media(max-width:650px){.dashboard-action{align-items:stretch;flex-direction:column;gap:12px}.shell .heading h1{font-size:25px}.filters{grid-template-columns:1fr 1fr}.filters>.field:has(.dual-date){grid-column:1/-1}}

.scope-context{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid var(--line)}.scope-context>span{color:var(--muted);font-size:14px}.scope-context>button{margin-inline-start:auto}
.quick-record{max-width:1050px;margin-inline:auto}.record-top{display:flex;align-items:center;justify-content:space-between;gap:16px}.record-top>.field{width:55%}.selection-tools{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:12px 0}.selection-tools strong{font-size:14px;flex:1}.selection-tools button{font-size:13px;min-height:44px}.record-roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:330px;overflow:auto;padding:3px}.student-chip{justify-content:flex-start;text-align:right;min-height:64px;padding:10px;border:1px solid #c8d8cd;background:#fff;color:var(--ink);font-size:15px}.student-chip:hover{background:var(--light);color:var(--ink)}.student-chip.selected{background:#e1f2e8;border:2px solid var(--green);padding:9px}.student-chip small{display:block;font-size:12px;font-weight:400}.selection-mark{width:24px;height:24px;flex-shrink:0;display:grid;place-items:center;border:1px solid #b7c9bd;border-radius:50%;color:var(--green)}.student-chip.selected .selection-mark{background:var(--green);color:white}.record-summary p{font-size:14px;line-height:1.7;margin:8px 0 14px;max-height:110px;overflow:auto}.record-summary>button{width:100%;min-height:52px}.record-warning{padding:14px;margin-bottom:14px;border:1px solid #d2aa51;border-radius:10px;background:#fff6dc;color:#674712;font-size:15px}.keep-record{margin-top:16px;font-size:14px}.quick-record .domain{min-height:76px}.record-confirm{border-top:3px solid var(--green)}.record-hint{margin-bottom:0}
@media(max-width:650px){.quick-record .card{padding:14px}.record-top{gap:8px}.record-top>.field{width:58%}.record-roster{grid-template-columns:repeat(2,minmax(0,1fr));max-height:280px}.student-chip{font-size:14px}.quick-record .domain-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-record .domain{padding:9px;gap:8px}.quick-record .domain-name{font-size:13px}.quick-record .domain small{font-size:12px}.quick-record .heading{margin-bottom:12px}.selection-tools{gap:10px}.record-confirm{position:static}.record-step{margin-bottom:12px}}
.record-step{display:flex;align-items:center;gap:10px;font-size:21px}.record-step>span{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--green);color:#fff;font-size:18px}.step-divider{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}
/* Period controls respond to their card width, including the sidebar and archive fields. */
.period-panel{container:period-panel / inline-size}
.filters.period-filters{grid-template-columns:minmax(0,1fr);justify-content:start;align-items:end;gap:14px 16px}
.filters.period-filters>.field,.filters.period-filters>.field:has(.dual-date){grid-column:auto}
.period-filters>.field{display:flex;flex-direction:column}
.period-filters>.field>label{line-height:20px;min-height:20px;margin:0 0 6px}
.period-filters>.field>select{margin-top:20px;min-height:46px;height:46px;padding:8px 10px}
.period-filters .date-cell>label{line-height:16px;margin-bottom:4px}
.period-filters .hijri-entry{height:46px}
.period-filters .dual-date input{font-size:13px;min-height:44px;padding:8px 6px}
.filters.period-filters>button{grid-column:1/-1;justify-self:start;width:auto;min-height:46px;padding:8px 18px;align-self:end}
@container period-panel (min-width:640px){
 .filters.period-filters{grid-template-columns:repeat(2,minmax(0,320px))}
 .period-filters>.field:has(select[name="class_id"]){grid-column:1/-1;width:220px}
}
@container period-panel (min-width:920px){
 .filters.period-filters{grid-template-columns:220px 300px 300px}
 .period-filters>.field:has(select[name="class_id"]){grid-column:auto;width:auto}
}
@container period-panel (min-width:1080px){
 .filters.period-filters{grid-template-columns:220px 300px 300px max-content}
 .filters.period-filters>button{grid-column:auto}
}
@container period-panel (min-width:640px){.filters.period-filters.is-archive{grid-template-columns:repeat(2,minmax(0,320px))}}
@container period-panel (min-width:940px){.filters.period-filters.is-archive{grid-template-columns:repeat(3,300px)}.filters.period-filters.is-archive>button{grid-column:auto}}
@container period-panel (max-width:639px){
 .period-filters>.field>select{margin-top:0}
}
@media(max-width:650px){.record-step{font-size:19px}}

/* Approved Arabic system wordmark; the school's own logo remains independent. */
.brand .system-wordmark{display:block;width:108px;height:58px;object-fit:contain}.brand>div>small{text-align:center}.sidebar .brand{margin:0 4px 5px;justify-content:center}.login-art .system-wordmark{width:210px;height:140px;filter:brightness(2.35) saturate(.68)}.login-art .brand>div>small{margin-top:8px}
@media(max-width:650px){.brand .system-wordmark{width:110px;height:66px}.sidebar .brand{margin-bottom:10px;justify-content:flex-start}.login-art .system-wordmark{width:150px;height:95px}}

@media(max-width:480px){.quick-record .domain-grid{grid-template-columns:1fr}.quick-record .domain-name{font-size:14px}.quick-record .domain strong{min-width:40px}}

.permission-panel{border:1px solid var(--line,#d5e1da);border-radius:14px;padding:16px}.permission-panel h3{margin:0 0 6px}.permission-panel p{font-size:14px;line-height:1.7}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px}.permission-option{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:8px;background:#f4f8f5;font-size:14px}.permission-option input{width:18px;height:18px;flex-shrink:0}@media(max-width:600px){.permission-grid{grid-template-columns:1fr}}

.display-title-settings{border:1px solid var(--line,#c8d8cd);border-radius:12px;padding:12px 16px}.display-title-settings summary{cursor:pointer;font-weight:700;color:var(--green-dark)}.display-title-row{border:1px solid var(--line,#d7e1da);border-radius:10px;margin:12px 0;padding:10px 12px}.display-title-row legend{font-size:14px;padding:0 6px}.display-title-row .fields{margin:0}

.dialog-toolbar {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  justify-content: flex-end;
  height: 44px;
  margin-block-end: -44px;
  pointer-events: none;
}
.dialog-toolbar .dialog-close {
  width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  border-radius: 50%;
  border-color: var(--line);
  background: #f1f6f3;
  color: var(--green-dark);
  pointer-events: auto;
}
.dialog-toolbar .dialog-close:hover {
  background: #deebe3;
}
.dialog-toolbar .dialog-close:focus-visible {
  outline: 2px solid var(--green-dark);
  outline-offset: 2px;
}
#modalBody > :first-child, #platformDialog > h2 {
  padding-inline-end: 56px;
}

.login-form .login-demo-link { display:flex; width:100%; margin-block-start:14px; background:#fff; border-color:var(--line); color:var(--green-dark); text-align:center; }
.login-form .login-demo-link:hover { background:var(--light); }
.login-form .install-app { width:100%; margin-block-start:12px; }
.install-app[hidden] { display:none; }
.today-list { min-width:0; border:1px solid var(--line); border-radius:12px; padding:0 14px; }
.today-list header, .today-list li { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.today-list header { padding-block:12px; }
.today-list ul { list-style:none; margin:0; padding:0; }
.today-list li { padding-block:8px; border-block-start:1px solid var(--line); }
.today-list li div { min-width:0; overflow-wrap:anywhere; }
.today-list li small { display:block; color:var(--muted); }
.today-list li bdi { font-weight:700; white-space:nowrap; }
.demo-summary { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr)); gap:12px; margin-block:0 16px; }
.demo-summary > div { border:1px solid var(--line); border-radius:10px; padding:10px 12px; overflow-wrap:anywhere; }
.demo-summary dt { font-weight:700; }
.demo-summary dd { margin:4px 0 0; }
.demo-summary small { display:block; color:var(--muted); }
.demo-settings { padding:0; margin:0; border:0; min-width:0; }
.login-form form { grid-template-columns:minmax(0,1fr); }
