
:root{
  --white:#ffffff;--ink:#111111;--text:#1c1c1c;--muted:#6b6b6b;--soft:#fafafa;--soft2:#f6f6f6;
  --line:#dedede;--line2:#c9c9c9;--black:#111111;--danger:#7f1d1d;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#fff;color:var(--text);font-size:12px}
body{overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}
.app-shell{min-height:100vh;display:grid;grid-template-columns:220px minmax(0,1fr);background:#fff}
.sidebar{height:100vh;position:sticky;top:0;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:40}
.brand{height:52px;padding:0 12px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:9px}
.brand-mark{width:28px;height:28px;border:1px solid #111;display:grid;place-items:center;font-size:10px;font-weight:800;letter-spacing:.4px;border-radius:3px;background:#fff}
.brand-title{font-weight:760;font-size:12px;line-height:1.1}.brand-sub{font-size:9px;color:var(--muted);margin-top:2px}
.nav-scroll{padding:7px 6px;overflow:auto}.nav-caption{padding:8px 7px 4px;font-size:9px;text-transform:uppercase;letter-spacing:.7px;color:#8a8a8a;font-weight:750}
.nav{display:flex;flex-direction:column;gap:1px}.nav-link{height:31px;padding:0 8px;display:flex;align-items:center;gap:8px;border:1px solid transparent;border-radius:3px;color:#3a3a3a;font-weight:540}
.nav-link svg{width:14px;height:14px;stroke-width:1.7;flex:none}.nav-link:hover{border-color:#e8e8e8;background:#fafafa;color:#111}.nav-link.active{border-color:#111;color:#111;background:#fff;font-weight:700}
.sidebar-foot{margin-top:auto;border-top:1px solid var(--line);padding:9px 11px;font-size:9px;color:var(--muted);line-height:1.5}.sidebar-foot strong{display:block;color:#222;font-size:10px}
.main{min-width:0;background:#fff}.topbar{height:52px;position:sticky;top:0;z-index:30;background:#fff;border-bottom:1px solid var(--line);padding:0 14px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.top-left,.top-right{display:flex;align-items:center;gap:7px}.crumb{font-size:10px;color:var(--muted)}.menu-btn{display:none}
.top-user{display:flex;align-items:center;gap:7px;padding-left:8px;border-left:1px solid var(--line)}.avatar{width:26px;height:26px;border:1px solid #bbb;border-radius:50%;display:grid;place-items:center;font-size:9px;font-weight:750}
.page{padding:12px 14px 20px}.page-head{min-height:38px;display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:10px}.page-title{margin:0;font-size:17px;line-height:1.15;font-weight:760;letter-spacing:-.15px}.page-subtitle{margin:3px 0 0;color:var(--muted);font-size:10px}.page-actions{display:flex;gap:5px;flex-wrap:wrap}
.panel{background:#fff;border:1px solid var(--line);border-radius:3px}.panel+.panel{margin-top:8px}.panel-head{min-height:38px;padding:6px 9px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:8px}.panel-title{margin:0;font-size:12px;font-weight:730}.panel-note{font-size:9px;color:var(--muted)}.panel-body{padding:9px}.panel-body.tight{padding:0}
.toolbar{display:flex;align-items:end;gap:5px;flex-wrap:wrap;padding:7px 8px;border-bottom:1px solid var(--line);background:#fff}.toolbar+.table-wrap{border-top:0}
.field{display:flex;flex-direction:column;gap:3px;min-width:120px}.field.grow{flex:1;min-width:190px}.field.wide{min-width:220px}.label{font-size:9px;font-weight:700;color:#555;text-transform:uppercase;letter-spacing:.35px}.hint{font-size:9px;color:#777;margin-top:2px}
.input,.select,.textarea{width:100%;border:1px solid var(--line2);border-radius:2px;background:#fff;outline:none}.input,.select{height:30px;padding:0 7px}.textarea{min-height:66px;padding:6px 7px;resize:vertical}.input:focus,.select:focus,.textarea:focus{border-color:#111}.input[disabled],.select[disabled]{background:#f8f8f8;color:#777}
.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.span-4{grid-column:1/-1}
.form-section{padding:9px;border-bottom:1px solid var(--line)}.form-section:last-child{border-bottom:0}.form-section-title{font-size:10px;font-weight:750;margin:0 0 7px;text-transform:uppercase;letter-spacing:.4px;color:#333}
.form-actions{min-height:44px;padding:7px 9px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:8px;background:#fff}.action-right,.action-left{display:flex;gap:5px;align-items:center;flex-wrap:wrap}
.btn{height:30px;border:1px solid var(--line2);border-radius:2px;background:#fff;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;gap:5px;font-weight:650;white-space:nowrap;line-height:1}.btn:hover{border-color:#888;background:#fafafa}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{color:#7f1d1d;border-color:#b9a3a3}.btn-icon{width:30px;padding:0}.btn-link{border-color:transparent;padding:0 4px}.btn-sm{height:26px;padding:0 7px;font-size:10px}.btn svg{width:13px;height:13px;stroke-width:1.8}
.tag{display:inline-flex;align-items:center;min-height:20px;padding:0 6px;border:1px solid #ccc;border-radius:999px;background:#fff;color:#444;font-size:9px;font-weight:650}.tag.dark{border-color:#111;color:#111}.tag.locked{border-style:dashed;color:#666}.dot{width:6px;height:6px;border:1px solid #555;border-radius:50%;display:inline-block;margin-right:4px}.dot.fill{background:#222}
.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:8px}.stat{border:1px solid var(--line);border-radius:3px;padding:8px 9px;min-height:68px;background:#fff}.stat-label{font-size:9px;text-transform:uppercase;letter-spacing:.35px;color:#777;font-weight:700}.stat-value{font-size:21px;font-weight:740;margin-top:4px;line-height:1}.stat-foot{font-size:9px;color:#777;margin-top:6px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.table-wrap{width:100%;overflow:auto}.table-wrap.excel{max-height:calc(100vh - 235px)}table{width:100%;border-collapse:collapse;background:#fff}th{height:30px;padding:4px 6px;text-align:left;background:#fafafa;border-bottom:1px solid var(--line2);border-right:1px solid #e7e7e7;color:#333;font-size:9px;text-transform:uppercase;letter-spacing:.25px;white-space:nowrap;font-weight:750}td{height:31px;padding:3px 6px;border-bottom:1px solid #e9e9e9;border-right:1px solid #efefef;vertical-align:middle;white-space:nowrap}th:last-child,td:last-child{border-right:0}tbody tr:hover{background:#fcfcfc}.table-wrap.excel thead th{position:sticky;top:0;z-index:5}.table-wrap.excel th:first-child,.table-wrap.excel td:first-child{position:sticky;left:0;z-index:4;background:#fff}.table-wrap.excel th:first-child{background:#fafafa;z-index:6}
.excel-title th{background:#fff;border:1px solid #888;text-align:center;font-size:10px;color:#111;text-transform:none}.excel-group th{background:#f8f8f8;text-align:center;border:1px solid #bdbdbd}.excel-table td,.excel-table th{border:1px solid #d7d7d7}.excel-table td{height:29px}.roll-cell{font-variant-numeric:tabular-nums;font-weight:700}.cell-input{height:25px;width:54px;border:1px solid #c6c6c6;border-radius:0;text-align:center;padding:0 3px;outline:none;background:#fff;font-size:11px}.cell-input:focus{border:2px solid #111}.cell-readonly{background:#f7f7f7;color:#555}.calc-cell{font-weight:650;text-align:center}.sheet-bar{height:30px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:4px;padding:0 7px;background:#fff}.sheet-tab{height:22px;padding:0 8px;border:1px solid #ccc;background:#fff;border-radius:2px;display:inline-flex;align-items:center;font-size:9px}.sheet-tab.active{border-color:#111;font-weight:700}
.table-footer{min-height:40px;padding:5px 8px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:8px;background:#fff;color:#666;font-size:10px}.table-footer-left,.table-footer-right{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.per-page{display:flex;align-items:center;gap:4px}.per-page .select{width:62px;height:26px}.pagination{display:flex;align-items:center;gap:2px}.page-btn{min-width:26px;height:26px;border:1px solid #ccc;background:#fff;border-radius:2px;padding:0 6px;display:grid;place-items:center;font-size:10px}.page-btn:hover{border-color:#888}.page-btn.active{background:#111;color:#fff;border-color:#111}
.info-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:2px;background:#fff;margin-bottom:8px}.info-item{padding:6px 8px;border-right:1px solid var(--line)}.info-item:last-child{border-right:0}.info-k{font-size:8px;color:#777;font-weight:700;text-transform:uppercase;letter-spacing:.35px}.info-v{font-size:11px;font-weight:650;margin-top:2px}
.callout{border:1px solid #bbb;background:#fff;padding:7px 8px;font-size:10px;line-height:1.45}.callout strong{color:#111}.divider{height:1px;background:var(--line);margin:8px 0}.subtle{color:#777}.mono{font-variant-numeric:tabular-nums}.right{text-align:right}.center{text-align:center}
.checkbox{width:14px;height:14px;accent-color:#111}.switch{position:relative;width:30px;height:16px;display:inline-block}.switch input{display:none}.switch span{position:absolute;inset:0;border:1px solid #aaa;border-radius:999px;background:#fff}.switch span:after{content:"";position:absolute;width:10px;height:10px;left:2px;top:2px;border:1px solid #777;border-radius:50%;background:#fff;transition:.15s}.switch input:checked+span{background:#111;border-color:#111}.switch input:checked+span:after{left:16px;border-color:#fff;background:#fff}
.permission{display:flex;align-items:center;gap:6px}.permission small{color:#777}.locked-box{border:1px dashed #aaa;padding:12px;text-align:center;background:#fff}.locked-icon{width:30px;height:30px;border:1px solid #bbb;border-radius:50%;display:grid;place-items:center;margin:0 auto 7px}
.progress-line{height:4px;border:1px solid #ccc;background:#fff}.progress-line span{display:block;height:100%;background:#222}
.login-page,.public-page{min-height:100vh;background:#fff}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:16px}.login-card{width:100%;max-width:360px;border:1px solid #cfcfcf;border-radius:3px;padding:18px;background:#fff}.login-head{text-align:center;margin-bottom:14px}.login-logo{width:38px;height:38px;border:1px solid #111;border-radius:3px;display:grid;place-items:center;margin:0 auto 8px;font-weight:800}.login-head h1{font-size:16px;margin:0}.login-head p{font-size:10px;color:#777;margin:4px 0 0}.login-card .field{margin-bottom:8px}.login-foot{font-size:9px;color:#777;text-align:center;margin-top:12px;border-top:1px solid var(--line);padding-top:9px}
.public-top{height:54px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(14px,calc((100vw - 1060px)/2));background:#fff}.public-brand{display:flex;align-items:center;gap:8px;font-weight:760}.public-brand .brand-mark{width:27px;height:27px}.public-main{max-width:1060px;margin:0 auto;padding:18px 14px 26px}.public-hero{padding:20px 0 12px;border-bottom:1px solid var(--line);margin-bottom:12px}.public-hero h1{font-size:22px;margin:0 0 5px;letter-spacing:-.3px}.public-hero p{margin:0;color:#666;font-size:11px;max-width:620px}.search-card{border:1px solid var(--line);padding:10px;border-radius:3px;background:#fff}.search-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr auto;gap:6px;align-items:end}
.portal-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}.student-id{display:flex;gap:10px;align-items:center}.student-photo{width:48px;height:54px;border:1px solid #aaa;display:grid;place-items:center;font-size:8px;color:#777}.student-name{font-size:16px;font-weight:740}.portal-grid{display:grid;grid-template-columns:1.45fr .85fr;gap:8px}.download-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.download-card{border:1px solid var(--line);padding:9px;border-radius:3px;min-height:110px;display:flex;flex-direction:column}.download-card h3{font-size:11px;margin:0 0 4px}.download-card p{font-size:9px;color:#777;margin:0 0 10px;line-height:1.45}.download-card .btn{margin-top:auto;width:max-content}
.kpi-row{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.kpi{border:1px solid var(--line);padding:7px}.kpi b{font-size:15px;display:block}.kpi span{font-size:9px;color:#777}
.print-sheet{background:#fff;color:#111;border:1px solid #bbb;margin:0 auto;width:210mm;min-height:297mm;padding:10mm}.admit-grid{display:grid;grid-template-columns:1fr 1fr;gap:7mm}.admit-card{border:1px solid #111;min-height:129mm;padding:6mm;position:relative;background:#fff}.admit-header{text-align:center;border-bottom:1px solid #111;padding-bottom:3mm;margin-bottom:4mm}.admit-header h1{font-size:16px;margin:0 0 2px}.admit-header p{margin:1px 0;font-size:9px}.admit-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;margin-top:2mm}.student-meta{display:grid;grid-template-columns:72px 1fr;gap:4px 7px;font-size:9px;margin-bottom:4mm}.photo-box{position:absolute;right:6mm;top:35mm;width:23mm;height:28mm;border:1px solid #333;display:grid;place-items:center;font-size:8px;color:#666}.exam-table{width:100%;font-size:8px;border-collapse:collapse}.exam-table th,.exam-table td{height:auto;padding:3px 4px;border:1px solid #333;background:#fff;color:#111;text-transform:none;letter-spacing:0}.signature-row{display:flex;justify-content:space-between;gap:10mm;margin-top:9mm;font-size:8px}.signature{width:40%;border-top:1px solid #222;padding-top:2px;text-align:center}
.result-paper{background:#fff;color:#111;border:1px solid #aaa;width:210mm;min-height:297mm;margin:0 auto;padding:12mm}.result-head{text-align:center;border-bottom:2px solid #111;padding-bottom:7px;margin-bottom:8px}.result-head h1{font-size:18px;margin:0}.result-head p{font-size:9px;margin:2px 0}.result-title{font-size:12px;font-weight:800;margin-top:5px;text-transform:uppercase}.result-meta{display:grid;grid-template-columns:1fr 1fr;gap:4px 22px;font-size:9px;margin-bottom:8px}.result-meta div{display:flex;border-bottom:1px dotted #aaa;padding:3px 0}.result-meta b{width:90px}
@media(max-width:1100px){.app-shell{grid-template-columns:190px 1fr}.form-grid{grid-template-columns:repeat(3,1fr)}.span-4{grid-column:1/-1}.stat-grid{grid-template-columns:repeat(2,1fr)}.download-grid{grid-template-columns:1fr 1fr}.search-grid{grid-template-columns:1fr 1fr}.portal-grid{grid-template-columns:1fr}}
@media(max-width:760px){.app-shell{display:block}.sidebar{position:fixed;left:-224px;width:220px;transition:.18s}.sidebar.open{left:0}.menu-btn{display:inline-flex}.page{padding:9px}.page-head{align-items:flex-start;flex-direction:column}.form-grid,.form-grid.cols-3,.form-grid.cols-2,.grid-2,.grid-3,.grid-4,.kpi-row,.download-grid,.search-grid{grid-template-columns:1fr}.span-2,.span-3{grid-column:span 1}.stat-grid{grid-template-columns:1fr 1fr}.info-strip{grid-template-columns:1fr 1fr}.public-top{padding:0 10px}.hide-mobile{display:none!important}.portal-head{flex-direction:column}}
@media print{@page{size:A4;margin:0}body{background:#fff!important}.no-print,.sidebar,.topbar,.page-head,.public-top{display:none!important}.app-shell{display:block}.page,.public-main{padding:0;max-width:none}.panel{border:0}.print-sheet,.result-paper{border:0;width:210mm;min-height:297mm;padding:8mm;page-break-after:always}.admit-grid{gap:6mm}.admit-card{min-height:132mm}}


/* Premium white theme · accent actions only */
:root{
  --accent:#4f46e5;
  --accent-hover:#4338ca;
  --accent-soft:#eef2ff;
  --secondary:#0f766e;
  --secondary-hover:#0b655f;
  --success:#15803d;
  --warning:#b45309;
  --danger:#b42318;
  --focus-ring:rgba(79,70,229,.16);
}
html,body,.app-shell,.main,.sidebar,.topbar,.page,.panel,.panel-head,.panel-body,.toolbar,
.table-wrap,table,thead,tbody,tr,th,td,.form-actions,.stat,.kpi,.download-card,.login-page,
.public-page,.login-card,.public-top,.result-paper,.print-sheet,.admit-card,.callout,.sheet-bar,
.table-footer,.input,.select,.textarea,.cell-input,.cell-readonly,.sheet-tab,.page-btn,.tag,
.switch span,.switch span:after{background-color:#fff}

body{color:#18181b}
.sidebar{border-right-color:#e4e4e7}
.topbar{border-bottom-color:#e4e4e7}
.brand{border-bottom-color:#e4e4e7}
.brand-mark{border-color:var(--accent);color:var(--accent);font-weight:850}
.brand-title{color:#18181b;letter-spacing:-.08px}
.brand-sub{color:#71717a}
.nav-caption{color:#a1a1aa}
.nav-link{position:relative;color:#52525b}
.nav-link:hover{background:#fff;border-color:#d4d4d8;color:var(--accent)}
.nav-link.active{background:#fff;border-color:#d4d4d8;color:var(--accent);font-weight:760}
.nav-link.active:before{content:"";position:absolute;left:-7px;top:6px;bottom:6px;width:3px;border-radius:99px;background:var(--accent)}
.sidebar-foot{border-top-color:#e4e4e7;color:#71717a}
.sidebar-foot strong{color:#27272a}
.avatar{border-color:#c7d2fe;color:var(--accent);font-weight:800}
.crumb{color:#71717a}
.page-title{font-weight:790;color:#18181b;letter-spacing:-.28px}
.page-subtitle,.panel-note,.hint,.stat-foot,.kpi span,.download-card p,.permission small{color:#71717a}
.panel,.stat,.kpi,.download-card,.login-card{border-color:#e4e4e7}
.panel-head,.form-section,.form-actions,.table-footer,.sheet-bar{border-color:#e4e4e7}
.panel-title,.form-section-title{color:#27272a}
.label{color:#52525b}
.input,.select,.textarea{border-color:#d4d4d8;background:#fff}
.input:hover,.select:hover,.textarea:hover{border-color:#a1a1aa}
.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);outline:2px solid var(--accent-soft);outline-offset:0}
.input[disabled],.select[disabled],.cell-readonly{background:#fff;color:#a1a1aa;border-style:dashed}
.btn{background:#fff;border-color:#d4d4d8;color:#3f3f46;font-weight:680;transition:border-color .12s,color .12s,background .12s,transform .12s}
.btn:hover{background:#fff;border-color:var(--accent);color:var(--accent)}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}
.btn-primary:hover{background:var(--accent-hover)!important;color:#fff!important;border-color:var(--accent-hover)!important}
.btn-secondary{background:var(--secondary)!important;color:#fff!important;border-color:var(--secondary)!important}
.btn-secondary:hover{background:var(--secondary-hover)!important;color:#fff!important;border-color:var(--secondary-hover)!important}
.btn-danger{background:#fff;color:var(--danger);border-color:#f0b4ae}
.btn-danger:hover{background:#fff;color:#8f1b12;border-color:var(--danger)}
.btn-link{color:var(--accent)}
.tag{border-color:#d4d4d8;color:#52525b}
.tag.dark,.tag.active,.tag.success{border-color:#86efac;color:var(--success);background:#fff}
.tag.warning{border-color:#fdba74;color:var(--warning);background:#fff}
.tag.locked,.tag.danger{border-color:#f0b4ae;color:var(--danger);background:#fff}
.dot.fill{background:var(--accent);border-color:var(--accent)}
th{background:#fff;color:#52525b;border-color:#e4e4e7}
td{border-color:#eeeeef}
tbody tr:hover{background:#fff}
.excel-title th,.excel-group th,.table-wrap.excel th:first-child{background:#fff}
.excel-title th{border-color:#a1a1aa;color:#27272a;font-weight:800}
.excel-group th{border-color:#d4d4d8;color:#52525b}
.excel-table td,.excel-table th{border-color:#e4e4e7}
.cell-input{border-color:#d4d4d8;background:#fff}
.cell-input:focus{border:2px solid var(--accent)}
.sheet-tab{border-color:#d4d4d8;color:#52525b}
.sheet-tab:hover{border-color:#a5b4fc;color:var(--accent)}
.sheet-tab.active{border-color:var(--accent);color:var(--accent);font-weight:760}
.page-btn{border-color:#d4d4d8;color:#52525b}
.page-btn:hover{border-color:var(--accent);color:var(--accent)}
.page-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.checkbox{accent-color:var(--accent)}
.switch span{border-color:#a1a1aa}
.switch input:checked+span{background:var(--accent);border-color:var(--accent)}
.switch input:checked+span:after{border-color:#fff;background:#fff}
.callout{border-color:#c7d2fe;border-left:3px solid var(--accent);background:#fff;color:#52525b}
.callout strong{color:var(--accent)}
.login-logo{border-color:var(--accent);color:var(--accent)}
.public-brand .brand-mark{border-color:var(--accent);color:var(--accent)}
.public-hero h1{color:#18181b}
.stat-value{color:#18181b;letter-spacing:-.4px}
.result-head{border-bottom-color:#27272a}
@media print{
  .btn-primary,.btn-secondary{background:#fff!important;color:#111!important;border-color:#777!important}
}


/* Laravel functional layer additions */
.alert{border:1px solid var(--line);background:#fff;padding:8px 10px;margin-bottom:10px;font-size:12px;border-radius:3px}.alert-success{border-left:3px solid var(--secondary);color:#155e58}.alert-error{border-left:3px solid var(--danger);color:var(--danger)}.alert ul{margin:4px 0 0 18px}.text-right{text-align:right!important}.center{text-align:center!important}.inline-form{display:inline-flex;margin-left:3px}.table-sub,.student-cell small{display:block;color:var(--muted);font-size:10px;margin-top:1px}.empty{text-align:center;color:var(--muted);padding:24px!important}.toolbar{display:flex;gap:6px;align-items:center;padding:8px;border-bottom:1px solid var(--line);flex-wrap:wrap}.toolbar input{min-width:220px}.toolbar select{min-width:125px}.form-grid{display:grid;gap:9px 12px}.form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid label,.panel-body>label,.login-card label,.result-search-form label{display:block;font-size:11px;font-weight:650;color:#444;margin:0 0 3px}.panel-body input,.panel-body select,.panel-body textarea,.form-grid input,.form-grid select,.toolbar input,.toolbar select,.inline-edit-form input,.inline-edit-form select,.result-search-form input,.result-search-form select,.login-card input{height:30px;min-height:30px!important;padding:3px 7px;border:1px solid var(--line2);background:#fff;border-radius:3px;font-size:12px;outline:none}.panel-body input:focus,.panel-body select:focus,.form-grid input:focus,.form-grid select:focus,.toolbar input:focus,.toolbar select:focus,.inline-edit-form input:focus,.inline-edit-form select:focus,.result-search-form input:focus,.result-search-form select:focus,.login-card input:focus{border-color:var(--accent)}input[type=file]{padding:3px!important}.form-actions{padding:8px 10px;border-top:1px solid var(--line);display:flex;align-items:center;gap:7px}.check-line{display:flex!important;align-items:center;gap:6px;margin:6px 0!important;font-weight:500!important}.check-line input{width:14px;height:14px!important;min-height:14px!important;accent-color:var(--accent)}.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.action-grid .btn{justify-content:center}.pager{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-top:1px solid var(--line);font-size:11px}.pagination{display:flex;gap:3px}.page-btn.disabled{opacity:.45;pointer-events:none}.sheet-tabs{display:flex;gap:4px;padding:7px 8px;border-bottom:1px solid var(--line);overflow:auto}.excel .excel-table{min-width:820px}.excel-table th,.excel-table td{padding:3px 5px;height:31px}.excel-table .cell-input{height:25px!important;min-height:25px!important;width:64px;text-align:center}.excel-table .sticky-col{position:sticky;left:0;background:#fff;z-index:2}.student-cell{min-width:180px}.sticky-actions{position:sticky;bottom:0;background:#fff;z-index:4}.result-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-bottom:1px solid var(--line)}.result-summary>div{padding:8px 10px;border-right:1px solid var(--line)}.result-summary span{display:block;font-size:10px;color:var(--muted)}.result-summary b{font-size:13px}.bulkbar{display:flex;gap:6px;padding:8px;border-bottom:1px solid var(--line)}.bulkbar select{height:30px;border:1px solid var(--line2);background:#fff;border-radius:3px;padding:0 7px}.inline-edit-row td{background:#fff!important;border-bottom:1px solid var(--line2)}.inline-edit-form{display:flex;align-items:center;gap:7px;padding:6px}.inline-edit-form label{display:flex;align-items:center;gap:5px;font-size:11px}.user-menu-logout{width:100%;border:0;background:#fff;text-align:left}.public-page{background:#fff!important}.public-shell{max-width:860px;margin:0 auto;padding:28px 16px}.public-brand{display:flex;align-items:center;gap:10px;padding-bottom:14px;border-bottom:1px solid var(--line)}.public-brand strong{display:block}.public-brand span{display:block;color:var(--muted);font-size:11px}.public-hero{padding:30px 0 18px;text-align:center}.public-hero h1{font-size:24px;font-weight:750;margin:0 0 6px}.public-hero p{color:var(--muted);font-size:12px}.public-panel{max-width:620px;margin:0 auto}.result-search-form{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:end;padding:12px}.result-search-form button{height:30px}.public-actions{display:flex;justify-content:center;gap:7px;margin-top:12px}.text-link{color:var(--accent);font-size:12px}.result-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;border:1px solid var(--line);margin:12px 0}.result-meta span{padding:7px;border-right:1px solid var(--line);font-size:11px}.result-gpa{text-align:right}.result-gpa span,.result-gpa small{display:block;color:var(--muted);font-size:10px}.result-gpa b{font-size:25px}.portal-top{height:52px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 18px;background:#fff}.portal-top>div>strong,.portal-top>div>span{display:block}.portal-top>div>span{font-size:10px;color:var(--muted)}.portal-user{display:flex!important;align-items:center;gap:10px}.portal-user span{font-size:12px!important;color:#222!important}.portal-shell{padding-top:14px}.login-page{min-height:100vh;background:#fff;display:grid;place-items:center}.login-card{width:min(360px,calc(100vw - 30px));border:1px solid var(--line);padding:22px;background:#fff}.login-card h1{font-size:19px;font-weight:750;margin:8px 0 2px}.login-card>p{font-size:11px;color:var(--muted);margin-bottom:14px}.login-card input{width:100%;margin-bottom:8px}.login-card .btn-block{width:100%;justify-content:center;margin-top:7px}.login-foot{font-size:10px;color:var(--muted);margin-top:10px}.public-login{margin:35px auto}.public-login .text-link{display:block;text-align:center;margin-top:12px}
@media(max-width:900px){.form-grid-3,.result-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.result-search-form{grid-template-columns:1fr}.result-meta{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.form-grid-2,.form-grid-3,.result-summary,.result-meta{grid-template-columns:1fr}.toolbar input,.toolbar select{width:100%;min-width:0}.action-grid{grid-template-columns:1fr}.pager{align-items:flex-start;gap:8px;flex-direction:column}.public-shell{padding:16px 10px}}
/* Header account menu */
.user-menu{position:relative}.user-trigger{height:36px;border:0;background:#fff;display:flex;align-items:center;gap:7px;padding:0 3px 0 6px;color:#27272a}.user-trigger:hover{color:var(--accent)}.user-trigger-copy{text-align:left;line-height:1.15}.user-trigger-name{font-size:10px;font-weight:750;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-trigger-role{font-size:9px;color:#71717a;margin-top:2px}.user-chevron{font-size:13px;color:#a1a1aa}.user-dropdown{position:absolute;right:0;top:43px;width:245px;border:1px solid #d4d4d8;border-radius:3px;background:#fff;z-index:80}.user-dropdown[hidden]{display:none!important}.user-dropdown-head{display:flex;gap:9px;align-items:center;padding:10px}.avatar-lg{width:34px;height:34px}.user-dropdown-copy{min-width:0}.user-dropdown-copy strong,.user-dropdown-copy span,.user-dropdown-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-dropdown-copy strong{font-size:11px}.user-dropdown-copy span{font-size:9px;color:#52525b;margin-top:2px}.user-dropdown-copy small{font-size:9px;color:#71717a;margin-top:2px}.user-dropdown-divider{height:1px;background:#e4e4e7}.user-menu-item{width:100%;min-height:42px;display:flex;align-items:center;padding:7px 10px;border:0;border-bottom:1px solid #f1f1f2;background:#fff;color:#3f3f46;text-align:left}.user-menu-item:last-child{border-bottom:0}.user-menu-item:hover{color:var(--accent);background:#fff}.user-menu-item span{display:block}.user-menu-item b,.user-menu-item small{display:block}.user-menu-item b{font-size:10px}.user-menu-item small{font-size:9px;color:#71717a;margin-top:2px}.user-menu-logout:hover{color:var(--danger)}.avatar.has-image{background-size:cover;background-position:center;color:transparent}
.tabulation-table{min-width:1200px}.tabulation-table th{text-align:center}.tabulation-table th:nth-child(2),.tabulation-table td:nth-child(2){text-align:left}

/* =====================================================================
   2026 FLAT UI REFRESH
   Modern academic dashboard, colorful actions.
   ===================================================================== */
:root{
  --ui-navy:#0f2747;
  --ui-navy-2:#183a64;
  --ui-blue:#2563eb;
  --ui-blue-hover:#1d4ed8;
  --ui-blue-soft:#eff6ff;
  --ui-cyan:#0891b2;
  --ui-cyan-soft:#ecfeff;
  --ui-teal:#0f766e;
  --ui-teal-soft:#f0fdfa;
  --ui-green:#15803d;
  --ui-green-soft:#f0fdf4;
  --ui-amber:#d97706;
  --ui-amber-soft:#fffbeb;
  --ui-red:#dc2626;
  --ui-red-hover:#b91c1c;
  --ui-red-soft:#fef2f2;
  --ui-purple:#7c3aed;
  --ui-purple-soft:#f5f3ff;
  --ui-pink:#be185d;
  --ui-bg:#f5f7fb;
  --ui-surface:#ffffff;
  --ui-border:#dce3ee;
  --ui-border-strong:#c8d2e1;
  --ui-text:#182230;
  --ui-muted:#667085;
  --ui-radius:8px;
  --accent:var(--ui-blue);
  --accent-hover:var(--ui-blue-hover);
  --accent-soft:var(--ui-blue-soft);
  --secondary:var(--ui-teal);
  --secondary-hover:#0b5f59;
  --success:var(--ui-green);
  --warning:var(--ui-amber);
  --danger:var(--ui-red);
  --line:var(--ui-border);
  --line2:var(--ui-border-strong);
  --text:var(--ui-text);
  --muted:var(--ui-muted);
}

html,body{
  font-size:13px;
  background:var(--ui-bg);
  color:var(--ui-text);
  line-height:1.45;
}
body{background:var(--ui-bg)}

/* Admin shell */
.app-shell{grid-template-columns:248px minmax(0,1fr);background:var(--ui-bg)}
.sidebar{
  width:248px;
  background:var(--ui-navy)!important;
  border-right:1px solid #24476e;
  color:#dbeafe;
}
.brand{
  height:66px;
  padding:0 16px;
  border-bottom:1px solid #284b72;
  background:var(--ui-navy)!important;
  gap:11px;
}
.brand-mark{
  width:36px;
  height:36px;
  border:1px solid #60a5fa!important;
  border-radius:8px;
  background:#173b67!important;
  color:#eff6ff!important;
  font-size:11px;
  letter-spacing:.8px;
}
.brand-title{color:#fff;font-size:14px;font-weight:800}
.brand-sub{color:#a9c2df;font-size:10px;margin-top:2px}
.nav-scroll{padding:10px 9px 14px;scrollbar-width:thin;scrollbar-color:#365d87 transparent}
.nav-caption{padding:12px 9px 6px;color:#7fa5ce;font-size:9px;letter-spacing:1px;font-weight:800}
.nav{gap:3px}
.nav-link{
  height:39px;
  padding:0 11px;
  border:1px solid transparent;
  border-radius:7px;
  color:#c7d7ea;
  font-size:12px;
  font-weight:600;
  transition:background-color .14s,border-color .14s,color .14s;
}
.nav-link:hover{
  background:#17395f!important;
  border-color:#31567f!important;
  color:#fff!important;
}
.nav-link.active{
  background:#eaf3ff!important;
  border-color:#b9d7fb!important;
  color:#174a86!important;
  font-weight:800;
}
.nav-link.active:before{display:none}
.sidebar-foot{
  padding:13px 16px 15px;
  border-top:1px solid #284b72;
  background:#0b223e!important;
  color:#9cb8d6;
  font-size:10px;
}
.sidebar-foot strong{color:#fff;font-size:11px}
.sidebar-backdrop{display:none}

.main{background:var(--ui-bg)!important}
.topbar{
  height:66px;
  padding:0 22px;
  background:#fff!important;
  border-bottom:1px solid var(--ui-border);
}
.crumb{font-size:11px;color:#667085}
.top-left,.top-right{gap:10px}
.top-right>.btn{height:34px}
.avatar{
  width:32px;
  height:32px;
  border:1px solid #bfdbfe;
  background:var(--ui-blue-soft)!important;
  color:#1d4ed8;
  font-size:10px;
}
.user-trigger{height:44px;border-radius:7px!important;padding:0 6px;background:#fff!important}
.user-trigger:hover{background:#f8fafc!important;color:var(--ui-blue)}
.user-trigger-name{font-size:11px}
.user-trigger-role{font-size:9px;color:#7a8797}
.user-dropdown{
  top:50px;
  width:260px;
  border:1px solid var(--ui-border-strong);
  border-radius:9px;
  background:#fff!important;
  overflow:hidden;
}
.user-dropdown-head{padding:13px}
.user-menu-item{min-height:48px;padding:9px 13px;background:#fff!important}
.user-menu-item:hover{background:#f6f9fd!important;color:var(--ui-blue)}
.user-menu-logout:hover{background:var(--ui-red-soft)!important;color:var(--ui-red)}

/* Page rhythm */
.page{padding:22px 24px 30px}
.page-head{min-height:48px;align-items:center;margin-bottom:16px}
.page-title{font-size:22px;font-weight:800;color:#14213d;letter-spacing:-.35px}
.page-subtitle{font-size:11px;color:#748095;margin-top:4px}
.page-actions{gap:8px}

/* Flat panels */
.panel{
  background:#fff!important;
  border:1px solid var(--ui-border)!important;
  border-radius:9px;
  overflow:hidden;
}
.panel+.panel{margin-top:14px}
.panel-head{
  min-height:50px;
  padding:9px 14px;
  background:#fff!important;
  border-bottom:1px solid #e7edf5!important;
}
.panel-title{font-size:13px;font-weight:800;color:#22324b}
.panel-note{font-size:10px;color:#7b8798}
.panel-body{padding:14px}
.panel-body.tight{padding:0}

/* KPI cards use border accents instead of effects */
.stat-grid{gap:12px;margin-bottom:14px}
.stat{
  min-height:100px;
  padding:15px 16px;
  background:#fff!important;
  border:1px solid var(--ui-border)!important;
  border-left:4px solid var(--ui-blue)!important;
  border-radius:9px;
}
.stat:nth-child(2){border-left-color:var(--ui-teal)!important}
.stat:nth-child(3){border-left-color:var(--ui-purple)!important}
.stat:nth-child(4){border-left-color:var(--ui-amber)!important}
.stat-label{font-size:10px;color:#65738a;font-weight:800;letter-spacing:.55px}
.stat-value{font-size:29px;color:#152238;margin-top:8px;font-weight:800}
.stat-foot{font-size:10px;color:#7a8798;margin-top:8px}
.grid-2,.grid-3,.grid-4{gap:13px}

/* Buttons - colorful but flat */
.btn{
  min-height:36px;
  height:36px;
  padding:0 12px;
  border:1px solid #bcd1ea;
  border-radius:7px;
  background:#f8fbff!important;
  color:#24548c;
  font-size:12px;
  font-weight:750;
  transition:background-color .12s,border-color .12s,color .12s,transform .08s;
}
.btn:hover{background:#edf5ff!important;border-color:#82b1e8;color:#164777}
.btn:active{transform:translateY(1px)}
.btn-sm{height:31px;min-height:31px;padding:0 10px;font-size:11px}
.btn-icon{width:36px;padding:0}
.btn-primary{background:var(--ui-blue)!important;color:#fff!important;border-color:var(--ui-blue)!important}
.btn-primary:hover{background:var(--ui-blue-hover)!important;border-color:var(--ui-blue-hover)!important;color:#fff!important}
.btn-secondary{background:var(--ui-teal)!important;color:#fff!important;border-color:var(--ui-teal)!important}
.btn-secondary:hover{background:#0b5f59!important;border-color:#0b5f59!important;color:#fff!important}
.btn-danger{background:var(--ui-red)!important;color:#fff!important;border-color:var(--ui-red)!important}
.btn-danger:hover{background:var(--ui-red-hover)!important;border-color:var(--ui-red-hover)!important;color:#fff!important}
.btn-success{background:var(--ui-green)!important;color:#fff!important;border-color:var(--ui-green)!important}
.btn-success:hover{background:#166534!important;border-color:#166534!important;color:#fff!important}
.btn-warning{background:var(--ui-amber)!important;color:#fff!important;border-color:var(--ui-amber)!important}
.btn-warning:hover{background:#b45309!important;border-color:#b45309!important;color:#fff!important}
.btn-info{background:var(--ui-cyan)!important;color:#fff!important;border-color:var(--ui-cyan)!important}
.btn-info:hover{background:#0e7490!important;border-color:#0e7490!important;color:#fff!important}
.btn-purple{background:var(--ui-purple)!important;color:#fff!important;border-color:var(--ui-purple)!important}
.btn-purple:hover{background:#6d28d9!important;border-color:#6d28d9!important;color:#fff!important}
.btn-info-soft{background:var(--ui-blue-soft)!important;color:#1d4ed8!important;border-color:#bfdbfe!important}
.btn-info-soft:hover{background:#dbeafe!important;border-color:#93c5fd!important;color:#1e40af!important}
.btn-link{background:transparent!important;border-color:transparent!important;color:var(--ui-blue)}
.action-grid{gap:9px}
.action-grid .btn{min-height:40px}

/* Tags */
.tag{
  min-height:24px;
  padding:2px 8px;
  border-radius:999px;
  font-size:10px;
  font-weight:750;
  background:#f8fafc!important;
  border:1px solid #d8e0ea;
  color:#536174;
}
.tag.success,.tag.active,.tag.dark{background:var(--ui-green-soft)!important;border-color:#bbf7d0;color:#166534}
.tag.warning{background:var(--ui-amber-soft)!important;border-color:#fde68a;color:#a16207}
.tag.danger,.tag.locked{background:var(--ui-red-soft)!important;border-color:#fecaca;color:#b91c1c}

/* Forms */
.toolbar{
  padding:11px 12px;
  gap:8px;
  background:#fbfcfe!important;
  border-bottom:1px solid #e7edf5!important;
}
.field{gap:5px}
.label,.form-grid label,.panel-body>label,.login-card label,.result-search-form label{
  color:#48566b!important;
  font-size:11px!important;
  font-weight:750!important;
  letter-spacing:.15px;
}
.hint{font-size:10px;color:#7d8999}
.input,.select,.textarea,
.panel-body input,.panel-body select,.panel-body textarea,.form-grid input,.form-grid select,
.toolbar input,.toolbar select,.inline-edit-form input,.inline-edit-form select,
.result-search-form input,.result-search-form select,.login-card input,
.bulkbar select{
  min-height:38px!important;
  height:38px;
  padding:5px 10px;
  border:1px solid var(--ui-border-strong)!important;
  border-radius:7px;
  background:#fff!important;
  color:#243247;
  font-size:12px;
  outline:none;
}
.textarea,.panel-body textarea{height:auto!important;min-height:90px!important}
.input:hover,.select:hover,.textarea:hover,
.panel-body input:hover,.panel-body select:hover,.form-grid input:hover,.form-grid select:hover,.toolbar input:hover,.toolbar select:hover{border-color:#98abc2!important}
.input:focus,.select:focus,.textarea:focus,
.panel-body input:focus,.panel-body select:focus,.form-grid input:focus,.form-grid select:focus,
.toolbar input:focus,.toolbar select:focus,.inline-edit-form input:focus,.inline-edit-form select:focus,
.result-search-form input:focus,.result-search-form select:focus,.login-card input:focus{
  border-color:var(--ui-blue)!important;
  outline:2px solid #dbeafe;
  outline-offset:0;
}
.form-grid{gap:14px 16px}
.form-section{padding:15px;border-color:#e7edf5!important}
.form-section-title{font-size:11px;color:#314259;margin-bottom:11px}
.form-actions{min-height:54px;padding:9px 13px;background:#fbfcfe!important;border-color:#e7edf5!important}
.check-line input,.checkbox{accent-color:var(--ui-blue)}

/* Tables */
.table-wrap{background:#fff}
table{background:#fff!important}
th{
  height:40px;
  padding:7px 10px;
  background:#f1f5fa!important;
  color:#536174;
  border-bottom:1px solid #dce4ef!important;
  border-right:1px solid #e2e8f0!important;
  font-size:10px;
  letter-spacing:.45px;
  font-weight:800;
}
td{
  height:43px;
  padding:7px 10px;
  border-bottom:1px solid #edf1f6!important;
  border-right:1px solid #f1f4f8!important;
  color:#253449;
}
tbody tr:nth-child(even){background:#fbfcfe!important}
tbody tr:hover{background:#f3f8ff!important}
.table-sub,.student-cell small{font-size:10px;color:#7b8798}
.empty{padding:34px!important;color:#7d8999}
.table-footer,.pager{padding:9px 12px;background:#fbfcfe!important;border-color:#e7edf5!important}
.page-btn{min-width:31px;height:31px;border-radius:6px;background:#fff!important}
.page-btn.active{background:var(--ui-blue)!important;color:#fff;border-color:var(--ui-blue)!important}

/* Spreadsheet views */
.sheet-tabs{padding:9px 10px;gap:6px;background:#f8fafc!important;border-bottom:1px solid #e5eaf1}
.sheet-tab{height:30px;padding:0 10px;border-radius:6px;background:#fff!important;font-size:10px}
.sheet-tab.active{background:var(--ui-blue-soft)!important;color:#1d4ed8;border-color:#93c5fd;font-weight:800}
.excel-title th{height:43px;background:#eaf2fc!important;color:#183b66;border-color:#b9cce3!important;font-size:12px}
.excel-group th{background:#f2f6fb!important}
.table-wrap.excel th:first-child{background:#f1f5fa!important}
.table-wrap.excel td:first-child{background:#fff!important}
.cell-input,.excel-table .cell-input{
  height:31px!important;
  min-height:31px!important;
  width:70px;
  border:1px solid #c6d2e1!important;
  border-radius:5px;
  font-size:12px;
}
.cell-input:focus{border:2px solid var(--ui-blue)!important;outline:none}
.sticky-actions{background:#fbfcfe!important}

/* Information components */
.info-strip{border-radius:8px;border-color:var(--ui-border)!important;overflow:hidden}
.info-item{padding:9px 11px;border-color:#e7edf5!important}
.info-k{font-size:9px;color:#778498}
.info-v{font-size:12px;color:#22324b}
.callout{padding:10px 12px;border:1px solid #bfdbfe!important;border-left:4px solid var(--ui-blue)!important;border-radius:7px;background:var(--ui-blue-soft)!important;color:#43536a}
.callout strong{color:#1d4ed8}
.alert{padding:10px 12px;border-radius:7px;font-size:12px;background:#fff!important}
.alert-success{background:var(--ui-green-soft)!important;border-color:#bbf7d0!important;border-left:4px solid var(--ui-green)!important;color:#166534}
.alert-error{background:var(--ui-red-soft)!important;border-color:#fecaca!important;border-left:4px solid var(--ui-red)!important;color:#b91c1c}
.progress-line{height:6px;border-color:#cfd9e6;background:#edf2f7!important;border-radius:999px;overflow:hidden}
.progress-line span{background:var(--ui-blue)!important}
.switch span{background:#e2e8f0!important;border-color:#cbd5e1}
.switch input:checked+span{background:var(--ui-blue)!important;border-color:var(--ui-blue)}

/* Public & student portal */
.public-page,.login-page{background:var(--ui-bg)!important}
.public-shell{max-width:940px;padding:32px 18px}
.public-brand{
  min-height:64px;
  padding:10px 14px 14px;
  border-bottom:2px solid #dbe5f1;
  background:transparent!important;
}
.public-brand .brand-mark{width:38px;height:38px;background:var(--ui-navy)!important;color:#fff!important;border-color:var(--ui-navy)!important;border-radius:8px}
.public-brand strong{font-size:14px;color:#172b46}
.public-brand span{font-size:10px;color:#728096}
.public-hero{padding:34px 0 20px;border:0;margin:0;text-align:center}
.public-hero h1{font-size:28px;color:#14213d;letter-spacing:-.45px;font-weight:850}
.public-hero p{max-width:720px;margin:7px auto 0;font-size:12px;color:#6f7d90}
.public-panel{max-width:700px;border-top:4px solid var(--ui-blue)!important}
.result-search-form{padding:16px;gap:12px}
.result-search-form button{height:38px}
.public-actions{margin-top:16px}
.text-link{font-weight:700;color:var(--ui-blue)}
.text-link:hover{color:var(--ui-blue-hover);text-decoration:underline}
.portal-top{
  height:66px;
  padding:0 24px;
  border-bottom:1px solid var(--ui-border);
  background:var(--ui-navy)!important;
  color:#fff;
}
.portal-top>div>strong{font-size:14px;color:#fff}
.portal-top>div>span{color:#adc4df!important}
.portal-user span{color:#fff!important;font-weight:700}
.portal-top .btn{background:#fff!important;border-color:#fff!important;color:#173b67!important}
.portal-shell{padding-top:18px}

/* Login */
.login-card{
  width:min(420px,calc(100vw - 30px));
  padding:26px;
  border:1px solid #cbd8e8!important;
  border-top:5px solid var(--ui-blue)!important;
  border-radius:10px;
  background:#fff!important;
}
.login-card h1{font-size:23px;color:#14213d;margin:10px 0 3px}
.login-card>p{font-size:11px;color:#768399;margin-bottom:18px}
.login-logo{width:48px;height:48px;border-radius:10px;background:var(--ui-navy)!important;color:#fff!important;border-color:var(--ui-navy)!important;font-size:12px}
.login-card .btn-block{height:40px;margin-top:10px}
.login-foot{margin-top:15px;padding-top:11px;border-top:1px solid #e4eaf2;color:#8290a3}

/* Result page */
.result-summary{background:#f8fafc!important}
.result-summary>div{padding:11px 12px;border-color:#e3e9f1!important}
.result-summary span{font-size:10px;color:#7a8798}
.result-summary b{font-size:14px;color:#23344d}
.result-meta{border-color:#dce4ef!important;border-radius:7px;overflow:hidden;background:#fff!important}
.result-meta span{padding:9px;border-color:#e7edf5!important}
.result-gpa b{font-size:29px;color:var(--ui-blue)}

/* Responsive */
@media(max-width:1100px){
  .app-shell{grid-template-columns:218px minmax(0,1fr)}
  .sidebar{width:218px}
  .page{padding:18px}
}
@media(max-width:760px){
  .app-shell{display:block}
  .sidebar{left:-260px;width:248px;transition:left .18s ease}
  .sidebar.open{left:0}
  .sidebar-backdrop{position:fixed;inset:0;z-index:35;border:0;background:rgba(10,31,55,.48);padding:0}
  .sidebar-backdrop.open{display:block}
  .topbar{height:58px;padding:0 12px}
  .page{padding:14px 10px 22px}
  .page-head{margin-bottom:12px}
  .page-title{font-size:20px}
  .stat-grid{grid-template-columns:1fr 1fr;gap:8px}
  .stat{min-height:88px;padding:12px}
  .stat-value{font-size:24px}
  .panel{border-radius:8px}
  .portal-top{height:auto;min-height:64px;padding:10px 12px;gap:8px}
  .portal-user{gap:6px}
  .public-shell{padding:20px 10px}
  .public-hero{padding:24px 6px 16px}
  .public-hero h1{font-size:23px}
}
@media(max-width:520px){
  .stat-grid{grid-template-columns:1fr}
  .page-actions{width:100%}
  .page-actions .btn{flex:1}
  .portal-user>span{display:none}
  .login-card{padding:20px}
  .toolbar>*{width:100%;min-width:0!important}
}

/* Print remains clean and color-safe */
@media print{
  body,.public-page,.login-page,.main,.page{background:#fff!important}
  .btn-primary,.btn-secondary,.btn-danger,.btn-success,.btn-warning,.btn-info,.btn-purple{background:#fff!important;color:#111!important;border-color:#777!important}
}

/* ---------------------------------------------------------
   Form width correction — make grid controls fill columns
   --------------------------------------------------------- */
.form-grid > div{min-width:0}
.form-grid > div > input:not([type="checkbox"]):not([type="radio"]),
.form-grid > div > select,
.form-grid > div > textarea{
  display:block;
  width:100%!important;
  max-width:100%;
  box-sizing:border-box;
}
.form-grid > div > input[type="file"]{
  width:100%!important;
  max-width:100%;
  box-sizing:border-box;
}

/* Student create/edit: balanced three-column form on wide screens */
.form-grid.form-grid-3{
  grid-template-columns:repeat(3,minmax(220px,1fr));
  column-gap:22px;
  row-gap:15px;
}

@media(max-width:1050px){
  .form-grid.form-grid-3{grid-template-columns:repeat(2,minmax(220px,1fr));column-gap:18px}
}
@media(max-width:640px){
  .form-grid.form-grid-3{grid-template-columns:minmax(0,1fr)}
}


/* Action icon buttons */
.action-buttons{display:inline-flex;align-items:center;justify-content:flex-end;gap:4px;flex-wrap:wrap}.action-buttons .inline-form{margin-left:0}.icon-action{width:30px;min-width:30px;padding:0!important;display:inline-flex;align-items:center;justify-content:center}.btn-sm.icon-action{width:28px;min-width:28px;height:28px;padding:0!important}.icon-action i{font-size:12px;line-height:1}.icon-action.btn-danger i{font-size:11px}

/* Professional exam management additions — flat UI, no box shadow */
.btn-danger-soft{background:#fff1f2!important;color:#be123c!important;border-color:#fecdd3!important}.btn-danger-soft:hover{background:#ffe4e6!important}
.btn-success-soft{background:#ecfdf3!important;color:#067647!important;border-color:#abefc6!important}.btn-success-soft:hover{background:#d1fadf!important}
.form-span-2{grid-column:1/-1}.upload-preview{margin-top:8px;padding:8px;border:1px solid #dbe3ee;border-radius:6px;background:#fff}.upload-preview img{display:block;max-height:72px;max-width:220px;object-fit:contain}
.sidebar-dropdown{margin:2px 8px}.sidebar-dropdown summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;min-height:34px;padding:0 10px;border-radius:6px;color:#c5d4e7;font-size:11px;font-weight:700}.sidebar-dropdown summary::-webkit-details-marker{display:none}.sidebar-dropdown summary:hover{background:#173d69;color:#fff}.sidebar-dropdown summary i{font-size:9px;transition:transform .15s ease}.sidebar-dropdown[open] summary i{transform:rotate(180deg)}.sidebar-dropdown-menu{padding:3px 0 5px 12px;border-left:1px solid #315477;margin-left:9px}.sidebar-dropdown-menu a{display:block;padding:6px 9px;color:#aac0d8;font-size:10px;border-radius:5px}.sidebar-dropdown-menu a:hover{background:#173d69;color:#fff}
.admit-toolbar,.marks-toolbar{align-items:end}.admit-toolbar>div,.marks-toolbar>div{min-width:160px;flex:1}.admit-toolbar label,.marks-toolbar label{display:block;margin-bottom:5px}.toolbar-submit{flex:0 0 auto!important;min-width:auto!important}.toolbar-submit .btn{height:37px}
.report-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.report-kpi{border:1px solid #d8e2ef;border-left:4px solid #2563eb;border-radius:8px;background:#fff;padding:13px 14px;min-height:86px}.report-kpi:nth-child(2){border-left-color:#7c3aed}.report-kpi:nth-child(3){border-left-color:#16a34a}.report-kpi:nth-child(4){border-left-color:#dc2626}.report-kpi:nth-child(5){border-left-color:#f59e0b}.report-kpi:nth-child(6){border-left-color:#0891b2}.report-kpi:nth-child(7){border-left-color:#4f46e5}.report-kpi:nth-child(8){border-left-color:#059669}.report-kpi span{display:block;color:#667085;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.report-kpi strong{display:block;margin-top:7px;font-size:23px;color:#172b4d}.report-grid{margin-bottom:14px}.report-bars>div{display:grid;grid-template-columns:110px 1fr 70px;align-items:center;gap:10px;margin:13px 0}.report-bars progress{width:100%;height:10px;accent-color:#2563eb}.report-bars span{font-weight:700}.report-bars b{text-align:right}.grade-pill{display:inline-flex;min-width:38px;height:23px;align-items:center;justify-content:center;border-radius:12px;font-weight:800;background:#eff6ff;color:#1d4ed8}.grade-F{background:#fff1f2;color:#be123c}.grade-Incomplete{background:#fffbeb;color:#b45309}.report-table{min-width:1100px}
.profile-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:14px}.student-profile-card{text-align:center}.student-profile-photo{width:105px;height:120px;margin:4px auto 10px;border:1px solid #cfd8e6;border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#f8fafc;color:#94a3b8;font-size:30px}.student-profile-photo img{width:100%;height:100%;object-fit:cover}.student-profile-card h2{margin:4px 0;font-size:18px}.student-profile-card p{margin:0 0 8px;color:#667085}.profile-dl{display:grid;grid-template-columns:1fr 1.2fr;text-align:left;margin:16px 0 0;border-top:1px solid #eaecf0}.profile-dl dt,.profile-dl dd{margin:0;padding:8px 2px;border-bottom:1px solid #f0f2f5}.profile-dl dt{color:#667085;font-weight:600}.profile-dl dd{font-weight:700;color:#344054}.student-exam-details details{border-top:1px solid #eaecf0}.student-exam-details summary{cursor:pointer;padding:11px 13px;font-weight:700;background:#fcfcfd}.student-exam-details details[open] summary{background:#f4f8ff;color:#1d4ed8}
/* Excel-style marks workbook */
.marks-workbook{overflow:visible}.marks-grid-wrap{max-height:calc(100vh - 285px);overflow:auto;border-top:1px solid #b7c5d6}.marks-sheet{border-collapse:separate!important;border-spacing:0;min-width:900px}.marks-sheet th,.marks-sheet td{border-right:1px solid #c5cfdb!important;border-bottom:1px solid #c5cfdb!important;padding:0!important;height:33px}.marks-sheet thead th{position:sticky;top:0;z-index:8;background:#e8f0e5!important;color:#1f2937;text-align:center;font-size:10px}.marks-sheet .excel-title th{top:0;height:46px;background:#217346!important;color:#fff!important;text-align:left;padding:7px 11px!important}.marks-sheet .excel-title th strong{display:block;font-size:13px}.marks-sheet .excel-title th span{display:block;font-size:9px;font-weight:500;opacity:.9;margin-top:2px}.marks-sheet .excel-title+tr th{top:46px;height:38px;background:#e2efda!important;border-top:1px solid #adc29f!important}.marks-sheet .excel-title+tr th small{display:block;color:#5c6f55;font-size:8px}.marks-sheet .row-number{width:38px;min-width:38px;text-align:center;background:#edf2f7!important;color:#667085;font-weight:700}.marks-sheet tbody .row-number{position:sticky;left:0;z-index:3}.marks-sheet tbody td:nth-child(2){position:sticky;left:38px;z-index:3;background:#fff!important;min-width:70px;padding:0 7px!important}.marks-sheet tbody td:nth-child(3){position:sticky;left:108px;z-index:3;background:#fff!important;min-width:220px;padding:0 9px!important}.marks-sheet thead tr:nth-child(2) th:nth-child(1){left:0;z-index:11}.marks-sheet thead tr:nth-child(2) th:nth-child(2){position:sticky;left:38px;z-index:11}.marks-sheet thead tr:nth-child(2) th:nth-child(3){position:sticky;left:108px;z-index:11}.marks-sheet .student-cell small{display:block}.mark-cell{background:#fff}.marks-sheet .cell-input{width:100%!important;height:32px!important;min-height:32px!important;border:0!important;border-radius:0!important;text-align:center;background:transparent;font-size:12px;padding:0 5px}.marks-sheet .cell-input:focus{outline:2px solid #217346!important;outline-offset:-2px;background:#f3fff6}.marks-sheet .formula-cell{text-align:center;background:#f8fafc!important;font-weight:700;color:#334155;min-width:62px}.marks-sheet .absent-cell{min-width:60px;background:#fff}.marks-sheet tbody tr:hover td{background:#f6fbf3!important}.marks-sheet tbody tr:hover td:nth-child(2),.marks-sheet tbody tr:hover td:nth-child(3){background:#f6fbf3!important}
@media(max-width:1100px){.report-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-layout{grid-template-columns:1fr}.student-profile-card{max-width:none}}
@media(max-width:640px){.report-kpis{grid-template-columns:1fr}.report-bars>div{grid-template-columns:85px 1fr 55px}.admit-toolbar>div,.marks-toolbar>div{min-width:100%;flex-basis:100%}.form-span-2{grid-column:auto}}

/* =========================================================
   Exam Suite V2 - compact marks, admission, seat management
   Flat interface: border-based visual depth only.
   ========================================================= */

/* Compact filters */
.marks-filter-grid,.compact-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,220px));gap:9px 12px;align-items:end;padding:10px 12px;background:#f8fafc;border-bottom:1px solid #d9e2ee}
.marks-filter-grid>div,.compact-filter-grid>div{min-width:0}.marks-filter-grid label,.compact-filter-grid label{display:block;margin:0 0 4px;color:#52637a;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.25px}.marks-filter-grid select,.compact-filter-grid select,.compact-filter-grid input{width:100%!important;height:34px;min-height:34px;padding:5px 9px;font-size:11px}.compact-filter-grid .filter-search{grid-column:span 2}.compact-filter-grid .filter-button{width:auto}.compact-filter-grid .filter-button .btn{height:34px;white-space:nowrap}.admit-filter-grid{grid-template-columns:repeat(4,minmax(130px,1fr)) minmax(190px,1.4fr) 80px auto}

/* Marks workbook */
.marks-page-head{margin-bottom:8px}.marks-workbook{border-radius:6px}.sheet-tabs{padding:7px 10px!important;gap:5px!important}.sheet-tab{min-width:42px;text-align:center;padding:6px 9px!important;font-size:9px!important}.marks-sheet-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 11px;background:#1f6f46;color:#fff;border-top:1px solid #18583a}.marks-sheet-title strong{display:block;font-size:12px}.marks-sheet-title>div>span{display:block;font-size:8px;opacity:.9;margin-top:1px}.marks-sheet-meta{display:flex;align-items:center;gap:6px}.marks-sheet-meta span{display:inline-flex!important;gap:4px;align-items:center;border:1px solid rgba(255,255,255,.35);padding:3px 6px;border-radius:4px;font-size:8px!important}.marks-grid-wrap{max-height:calc(100vh - 260px)!important;min-height:300px;border-top:0!important}.marks-sheet{min-width:980px!important}.marks-sheet thead th{top:0!important;height:38px!important;background:#e4f0dc!important;border-top:1px solid #b2c6a7!important;line-height:1.05;padding:4px!important}.marks-sheet thead th small{display:block;font-size:7px;color:#607456;margin-top:2px}.marks-sheet tbody td{height:35px!important}.marks-sheet thead th:nth-child(1){position:sticky;left:0;z-index:15}.marks-sheet thead th:nth-child(2){position:sticky;left:38px;z-index:15}.marks-sheet thead th:nth-child(3){position:sticky;left:108px;z-index:15;min-width:225px}.marks-sheet tbody td:nth-child(2){min-width:70px}.marks-sheet tbody td:nth-child(3){min-width:225px}.marks-sheet .row-action{position:sticky;right:0;z-index:5;width:68px;min-width:68px;background:#f8fafc!important;text-align:center}.marks-sheet thead .row-action{z-index:16;background:#dcead4!important}.row-save-btn{width:27px;height:27px;border:1px solid #b8c8d8;border-radius:5px;background:#fff;color:#2563eb;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;vertical-align:middle}.row-save-btn:hover{background:#eff6ff;border-color:#93c5fd}.row-save-btn:disabled{opacity:.5;cursor:not-allowed}.row-save-btn.saving i{animation:saveSpin .75s linear infinite}.row-status{display:block;max-width:64px;margin:2px auto 0;font-size:7px;line-height:1.05;white-space:normal}.row-status.saved{color:#067647}.row-status.unsaved{color:#b45309}.row-status.error{color:#b42318}.row-status.saving{color:#175cd3}.marks-sheet tr.row-dirty td.row-action{background:#fffbeb!important}.marks-sheet tr.row-saved td.row-action{background:#ecfdf3!important}.marks-sheet tr.row-save-error td.row-action{background:#fff1f2!important}.mark-disabled{background:#f2f4f7!important}.mark-disabled .cell-input{color:#98a2b3}.marks-bottom-actions{padding:7px 12px!important;min-height:48px}.marks-bottom-actions .btn{height:34px}.marks-bottom-actions .subtle{font-size:9px}
@keyframes saveSpin{to{transform:rotate(360deg)}}

/* Admission form */
.admission-layout{display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:14px;align-items:start}.admission-main{min-width:0;display:grid;gap:12px}.admission-section{margin:0}.admission-section .panel-head{position:relative}.section-number{display:inline-flex;align-items:center;justify-content:center;width:27px;height:27px;border:1px solid #c7d7e9;border-radius:50%;background:#f7fbff;color:#2563eb;font-size:9px;font-weight:800}.admission-photo-column{position:sticky;top:72px;display:grid;gap:12px}.photo-upload-card{margin:0}.photo-file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.passport-preview{width:150px;height:180px;margin:0 auto 10px;border:1.5px dashed #9eb3cb;border-radius:7px;background:#f8fafc;padding:4px;display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer}.passport-preview:hover{border-color:#2563eb;background:#f1f7ff}.passport-preview img{width:100%;height:100%;object-fit:cover;border-radius:4px}.passport-preview span{display:flex;flex-direction:column;align-items:center;gap:6px;color:#667085}.passport-preview span i{font-size:34px;color:#9fb2c8}.passport-preview span b{font-size:11px;color:#344054}.passport-preview span small{font-size:9px}.photo-upload-help{display:grid;gap:3px;margin:8px 0 11px;padding:8px;border:1px solid #e3e9f1;border-radius:6px;background:#fbfcfe;color:#667085;font-size:8px}.photo-upload-help b{font-size:9px;color:#344054}.photo-upload-help code{font-size:7px}.btn-block{width:100%;justify-content:center}.admission-summary-card ul{padding-left:17px;margin:9px 0 0;color:#667085;font-size:9px;line-height:1.8}.subject-rule-note{display:flex;gap:8px;align-items:flex-start;padding:9px 10px;margin-bottom:10px;border:1px solid #bfdbfe;border-left:4px solid #3b82f6;border-radius:6px;background:#eff6ff;color:#335478;font-size:9px}.subject-rule-note i{margin-top:2px;color:#2563eb}.subject-selector-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 7px}.subject-selector-head strong{font-size:12px}.subject-selector-head span{font-size:8px;color:#667085}.subject-choice-table{border:1px solid #d9e2ee;border-radius:6px;overflow:hidden}.subject-choice-row{display:grid;grid-template-columns:70px minmax(180px,1.4fr) minmax(180px,1fr) 120px 120px;align-items:center;min-height:39px;border-bottom:1px solid #e8edf3;font-size:9px}.subject-choice-row:last-child{border-bottom:0}.subject-choice-row>span{padding:6px 8px}.subject-choice-row small{display:block;color:#7a8799;font-size:7px;margin-top:2px}.subject-choice-title{min-height:29px;background:#f4f7fb;font-size:8px;font-weight:800;text-transform:uppercase;color:#52637a}.subject-check,.subject-radio{text-align:center}.subject-radio label{display:inline-flex;align-items:center;gap:4px;font-weight:700;cursor:pointer}.subject-rule-badges{display:flex;gap:3px;flex-wrap:wrap}.rule-badge{display:inline-flex;border-radius:10px;padding:2px 5px;font-size:7px;font-style:normal;font-weight:800}.rule-badge.compulsory{background:#ecfdf3;color:#067647}.rule-badge.choice{background:#eff6ff;color:#175cd3}.rule-badge.optional{background:#f5f3ff;color:#6941c6}.subject-choice-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:8px}.subject-rule-guide{display:flex;gap:18px;flex-wrap:wrap;padding:10px 13px;border-bottom:1px solid #e5eaf0;background:#fbfcfe;font-size:9px;color:#52637a}.subject-rule-guide span{display:flex;align-items:center;gap:5px}.subject-rule-guide .dot{width:8px;height:8px;border-radius:50%;display:inline-block}.subject-rule-guide .dot.compulsory{background:#12b76a}.subject-rule-guide .dot.choice{background:#2e90fa}.subject-rule-guide .dot.optional{background:#7f56d9}.subject-rule-table input[type=checkbox]{width:16px;height:16px}

/* Seat plan / hall management */
.seat-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:12px}.seat-stat{border:1px solid #d9e2ee;border-left:4px solid #2563eb;border-radius:7px;padding:10px 12px;background:#fff}.seat-stat:nth-child(2){border-left-color:#7c3aed}.seat-stat:nth-child(3){border-left-color:#16a34a}.seat-stat:nth-child(4){border-left-color:#f59e0b}.seat-stat span{display:block;font-size:8px;font-weight:800;text-transform:uppercase;color:#667085}.seat-stat b{display:block;font-size:21px;margin-top:4px;color:#1f3553}.seat-config-grid{display:grid;grid-template-columns:minmax(250px,.75fr) minmax(0,1.6fr);gap:12px}.choice-box-grid{display:grid;grid-template-columns:repeat(3,minmax(125px,1fr));gap:6px}.choice-box{display:flex;align-items:center;gap:6px;border:1px solid #d9e2ee;border-radius:5px;padding:7px;background:#fff;font-size:9px}.seat-actions{display:flex;gap:7px;flex-wrap:wrap}.hall-plan{margin-top:12px}.hall-plan-head{display:flex;align-items:center;justify-content:space-between;padding:9px 11px;background:#f5f8fc;border:1px solid #d9e2ee;border-bottom:0;border-radius:7px 7px 0 0}.hall-grid-preview{display:grid;gap:6px;padding:10px;border:1px solid #d9e2ee;overflow:auto;background:#fff}.hall-bench{min-width:100px;border:1px solid #b7c5d6;border-radius:5px;padding:4px;background:#fafcff}.hall-bench-title{text-align:center;font-size:7px;color:#667085;margin-bottom:3px}.hall-bench-seats{display:flex;gap:3px}.mini-seat{flex:1;min-width:40px;border:1px solid #d7e0eb;background:#f8fafc;padding:3px;text-align:center;font-size:7px;line-height:1.2}.mini-seat.filled{background:#eef6ff;border-color:#a7c8ef;color:#174f8a}.mini-seat b{display:block;font-size:8px}.hall-inline-edit{display:grid;grid-template-columns:1.3fr .8fr .8fr .65fr .65fr .65fr .7fr auto;gap:6px;align-items:center}.hall-inline-edit input{width:100%!important}.hall-capacity{font-weight:800;color:#175cd3}.option-check-grid{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:7px}.admit-print-head{gap:10px}

/* Sidebar dropdown is the single Students entry */
.sidebar-dropdown.active>summary{background:#1f4f82;color:#fff}.sidebar-dropdown summary span{display:flex;align-items:center;gap:7px}.sidebar-dropdown-menu a{display:flex!important;align-items:center;gap:7px}.sidebar-dropdown-menu a i{width:12px;text-align:center;font-size:9px}.nav-link span{display:flex;align-items:center;gap:7px}

@media(max-width:1200px){.marks-filter-grid{grid-template-columns:repeat(4,minmax(130px,1fr))}.admit-filter-grid{grid-template-columns:repeat(4,minmax(120px,1fr))}.admit-filter-grid .filter-search{grid-column:span 2}.admission-layout{grid-template-columns:minmax(0,1fr) 220px}.subject-choice-row{grid-template-columns:60px minmax(160px,1.3fr) minmax(155px,1fr) 105px 105px}.seat-config-grid{grid-template-columns:1fr}.hall-inline-edit{grid-template-columns:repeat(4,1fr)}}
@media(max-width:900px){.marks-filter-grid,.compact-filter-grid,.admit-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-filter-grid .filter-search{grid-column:span 1}.admission-layout{grid-template-columns:1fr}.admission-photo-column{position:static;grid-row:1}.photo-upload-card{max-width:360px}.subject-choice-table{overflow-x:auto}.subject-choice-row{min-width:760px}.seat-stats{grid-template-columns:repeat(2,1fr)}.option-check-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.marks-filter-grid,.compact-filter-grid,.admit-filter-grid{grid-template-columns:1fr}.marks-grid-wrap{max-height:calc(100vh - 330px)!important}.seat-stats{grid-template-columns:1fr}.choice-box-grid{grid-template-columns:1fr}.option-check-grid{grid-template-columns:1fr}.admit-print-head .page-actions{width:100%}.admit-print-head .page-actions .btn{flex:1}.photo-upload-card{max-width:none}}
.seat-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(160px,230px));gap:10px;padding:10px 12px;align-items:end}.seat-filter-grid label{display:block;margin-bottom:4px;font-size:9px;font-weight:800;color:#52637a;text-transform:uppercase}.seat-filter-grid select{width:100%!important;height:34px}.seat-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:12px 0}.seat-summary-grid>div{border:1px solid #d9e2ee;border-left:4px solid #2563eb;border-radius:7px;padding:10px 12px;background:#fff}.seat-summary-grid>div:nth-child(2){border-left-color:#16a34a}.seat-summary-grid>div:nth-child(3){border-left-color:#7c3aed}.seat-summary-grid>div:nth-child(4){border-left-color:#f59e0b}.seat-summary-grid span{display:block;font-size:8px;font-weight:800;color:#667085;text-transform:uppercase}.seat-summary-grid b{display:block;margin-top:4px;font-size:21px;color:#1f3553}.field-label{display:block;margin:12px 0 6px;font-size:9px;font-weight:800;color:#344054}.check-chip-grid{display:flex;flex-wrap:wrap;gap:6px}.check-chip-grid label{display:flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid #d9e2ee;border-radius:5px;background:#fff;font-size:9px}.hall-select-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.hall-select-card{display:flex;align-items:center;gap:7px;padding:8px;border:1px solid #d9e2ee;border-radius:6px;background:#fff}.hall-select-card span{display:grid;gap:2px}.hall-select-card b{font-size:9px}.hall-select-card small{font-size:7px;color:#667085}.strategy-options{display:grid;grid-template-columns:1fr 1fr;gap:7px}.strategy-options label{display:flex;align-items:flex-start;gap:7px;padding:9px;border:1px solid #d9e2ee;border-radius:6px}.strategy-options span{display:grid;gap:2px}.strategy-options b{font-size:9px}.strategy-options small{font-size:7px;color:#667085;line-height:1.3}.seat-download-list{display:grid;gap:7px}.download-row{display:grid;grid-template-columns:28px 1fr 18px;align-items:center;gap:8px;padding:9px 10px;border:1px solid #d9e2ee;border-radius:6px;color:#344054;background:#fff}.download-row:hover{background:#f7fbff;border-color:#b8d1ed;color:#175cd3}.download-row>i:first-child{width:28px;height:28px;border-radius:5px;background:#eff6ff;color:#2563eb;display:flex;align-items:center;justify-content:center}.download-row span{display:grid;gap:2px}.download-row b{font-size:9px}.download-row small{font-size:7px;color:#667085}.hall-layouts{display:grid;gap:12px}.hall-layout{border:1px solid #d9e2ee;border-radius:7px;overflow:hidden}.hall-layout-head{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;background:#f5f8fc;border-bottom:1px solid #d9e2ee}.hall-layout-head>div{display:flex;gap:8px;align-items:center}.hall-layout-head b{font-size:10px}.hall-layout-head span{font-size:8px;color:#667085}.bench-grid{display:grid;grid-template-columns:repeat(var(--bench-cols),minmax(90px,1fr));gap:6px;padding:9px;overflow-x:auto}.bench-cell{border:1px solid #c9d5e3;border-radius:5px;padding:4px;background:#fbfcfe;min-height:58px}.bench-cell>small{display:block;text-align:center;color:#7a8799;font-size:6px;margin-bottom:3px}.bench-cell>span{display:flex;justify-content:space-between;gap:4px;border-top:1px solid #e6ebf1;padding:3px 2px;font-size:7px}.bench-cell b{font-size:8px}.bench-cell em{font-style:normal;color:#2563eb}.empty-seat{justify-content:center!important;color:#98a2b3}.inline-hall-edit{display:grid;grid-template-columns:1.2fr .7fr .65fr 1fr .7fr .55fr .65fr .65fr auto auto;gap:5px;align-items:center}.inline-hall-edit input{width:100%!important}.inline-hall-edit label{display:flex;align-items:center;gap:4px;font-size:8px}
@media(max-width:900px){.seat-filter-grid{grid-template-columns:1fr 1fr}.seat-summary-grid{grid-template-columns:1fr 1fr}.hall-select-grid,.strategy-options{grid-template-columns:1fr}.inline-hall-edit{grid-template-columns:repeat(3,1fr)}.bench-grid{min-width:720px}}
@media(max-width:560px){.seat-filter-grid,.seat-summary-grid{grid-template-columns:1fr}}
.subject-index-rules{display:flex;gap:4px;flex-wrap:wrap}.subject-index-rules>span{display:inline-flex;align-items:center;gap:3px;border:1px solid #e1e7ef;border-radius:5px;padding:3px 5px;background:#fbfcfe}.subject-index-rules>span>b{font-size:8px;color:#344054}
.sidebar-dropdown summary span i{transform:none!important;transition:none}.sidebar-dropdown[open] summary>i:last-child{transform:rotate(180deg)}

/* =========================================================
   Exam Suite V3 - stability, compact layout and smart seating
   Flat UI only: no box-shadow and no colored left-edge cards.
   ========================================================= */

/* Consistent serial-number column on every data table */
.sl-col{width:46px;min-width:46px;max-width:46px;text-align:center!important;color:#667085;font-variant-numeric:tabular-nums}
th.sl-col{font-size:8px!important}

/* Student thumbnails */
.student-list-photo{width:50px;height:50px;display:block;object-fit:cover;border:1px solid #d6dee8;border-radius:4px;background:#f8fafc}
.student-list-photo.placeholder{display:flex;align-items:center;justify-content:center;color:#98a2b3;font-size:16px}
.student-thumb-40,.student-thumb-placeholder{width:40px;height:44px;border:1px solid #d6dee8;border-radius:4px;object-fit:cover;background:#f8fafc}
.student-thumb-placeholder{display:flex;align-items:center;justify-content:center;color:#98a2b3}

/* Remove colored left-edge accent treatment while preserving normal borders */
.report-kpi,.seat-stat,.seat-summary-grid>div,.subject-rule-note,.callout,.alert{
  border-left-width:1px!important;
  border-left-color:#d9e2ee!important;
}
.alert-success{border-color:#abefc6!important}.alert-error{border-color:#fecaca!important}
.sidebar-dropdown-menu{border-left:0!important;margin-left:7px!important;padding-left:8px!important}

/* Marks page: compact filters + more usable spreadsheet viewport */
.marks-page-head{margin-bottom:6px!important}
.marks-filter-grid{
  grid-template-columns:repeat(4,minmax(145px,205px))!important;
  justify-content:start!important;
  gap:6px 8px!important;
  padding:7px 9px!important;
  background:#fafbfc!important;
}
.marks-filter-grid label{margin-bottom:2px!important;font-size:8px!important}
.marks-filter-grid select{height:30px!important;min-height:30px!important;padding:3px 7px!important;font-size:10px!important}
.sheet-tabs{padding:5px 8px!important;min-height:34px}.sheet-tab{height:25px!important;padding:4px 8px!important}
.marks-sheet-title{padding:5px 9px!important;min-height:38px}.marks-sheet-title strong{font-size:11px!important}
.marks-grid-wrap{max-height:calc(100vh - 238px)!important;min-height:360px!important}
.marks-sheet tbody td{height:32px!important}.marks-sheet .cell-input{height:31px!important;min-height:31px!important}
.marks-sheet .row-action{width:72px!important;min-width:72px!important}.row-status{font-size:6.5px!important}
.marks-bottom-actions{min-height:42px!important;padding:5px 10px!important}

/* Admission form: reduce wasted vertical space while keeping the photo on the right */
.admission-layout{grid-template-columns:minmax(0,1fr) 220px!important;gap:8px!important}
.admission-main{gap:7px!important}.admission-photo-column{gap:7px!important;top:66px!important}
.admission-section .panel-head,.photo-upload-card .panel-head{min-height:33px!important;padding:4px 8px!important}
.admission-section .panel-body,.photo-upload-card .panel-body,.admission-summary-card .panel-body{padding:7px 8px!important}
.admission-section .form-grid{gap:6px 8px!important}.admission-section .form-grid.form-grid-3{column-gap:8px!important;row-gap:6px!important}
.admission-section .form-grid input,.admission-section .form-grid select{height:29px!important;min-height:29px!important;padding:3px 6px!important;font-size:11px!important}
.section-number{width:23px!important;height:23px!important;font-size:8px!important}
.passport-preview{width:126px!important;height:151px!important;margin-bottom:6px!important;border-style:solid!important}
.photo-upload-help{margin:5px 0 7px!important;padding:6px!important}.admission-summary-card ul{margin-top:5px!important;line-height:1.55!important}
.subject-rule-note{padding:6px 8px!important;margin-bottom:6px!important}.subject-choice-row{min-height:34px!important}.subject-choice-row>span{padding:4px 6px!important}.subject-choice-title{min-height:27px!important}
.subject-choice-actions{margin-top:5px!important}.subject-selector-head{margin-bottom:5px!important}

/* Sidebar icon alignment */
.nav-link span>i,.sidebar-dropdown summary span>i{width:16px;text-align:center;font-size:11px;flex:0 0 16px}
.sidebar-dropdown-menu a i{width:16px!important;flex:0 0 16px}

/* Group-wise routine layout */
.routine-groups{display:grid;gap:9px}.routine-group-panel{margin:0!important}.routine-group-panel .panel-head{background:#fafbfc}.routine-table input{width:100%!important;min-width:105px;height:30px!important}.routine-table td:nth-child(2){width:100px}.routine-table td:nth-child(3){min-width:190px}.routine-save-bar{position:sticky;bottom:0;z-index:20;background:#fff;border:1px solid #d9e2ee;margin-top:8px}

/* Bulk class shift */
.class-shift-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:10px;align-items:start;margin-top:10px}.class-shift-target{position:sticky;top:70px}.compact-form-stack{display:grid;gap:9px}.compact-form-stack label{display:block;margin-bottom:3px;font-size:9px;font-weight:750}.compact-form-stack select,.compact-form-stack textarea{width:100%!important}.class-shift-note{display:flex;gap:7px;padding:7px;border:1px solid #d9e2ee;border-radius:5px;background:#fafbfc;color:#667085;font-size:8px;line-height:1.45}.class-shift-filter{grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(130px,180px)) auto!important}

/* Smart seat builder */
.seat-step-panel{margin-bottom:9px}.seat-builder-filter{display:grid;grid-template-columns:repeat(4,minmax(140px,190px)) minmax(300px,1fr) auto;gap:7px 9px;align-items:end;padding:8px 10px}.seat-builder-filter>div{min-width:0}.seat-builder-filter label{display:block;margin:0 0 3px;font-size:8px;font-weight:800;color:#52637a;text-transform:uppercase}.seat-builder-filter select{width:100%!important;height:30px!important;min-height:30px!important}.seat-filter-groups{align-self:stretch}.seat-group-checks{display:flex;gap:5px;flex-wrap:wrap}.seat-group-checks label{display:flex!important;align-items:center;gap:4px;text-transform:none!important;font-weight:650!important;border:1px solid #d9e2ee;border-radius:4px;padding:4px 6px;margin:0!important;background:#fff;font-size:9px!important}.seat-filter-submit .btn{height:30px}
.seat-summary-strip{display:grid;grid-template-columns:1.7fr 1.2fr repeat(4,minmax(95px,.7fr));gap:7px;margin:0 0 9px}.seat-summary-strip>div{border:1px solid #d9e2ee;border-radius:5px;background:#fff;padding:7px 9px;min-width:0}.seat-summary-strip span{display:block;font-size:7px;text-transform:uppercase;font-weight:800;color:#7a8799}.seat-summary-strip b{display:block;margin-top:3px;font-size:12px;color:#26364d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seat-builder{display:grid;grid-template-columns:330px minmax(0,1fr);gap:10px;align-items:start}.seat-student-panel{position:sticky;top:66px;max-height:calc(100vh - 85px);overflow:hidden}.seat-student-panel>.panel-head{min-height:44px}.seat-pool-tools{display:flex;gap:5px;padding:6px 7px;border-bottom:1px solid #e5eaf0}.seat-pool-tools input{min-width:0;width:100%!important;height:29px!important}.seat-student-groups{overflow:auto;max-height:calc(100vh - 190px);padding:6px}.seat-student-group{border:1px solid #e0e6ee;border-radius:5px;margin-bottom:5px;background:#fff}.seat-student-group summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:6px 7px;font-size:9px;font-weight:800;background:#f8fafc}.seat-student-list{padding:4px;display:grid;gap:4px;min-height:20px}
.seat-student-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:5px;border:1px solid #d7e0ea;border-radius:4px;padding:5px 30px 5px 6px;background:#fff;cursor:grab;min-width:0}.seat-student-card.dragging{opacity:.45}.seat-student-main{min-width:0;display:grid;grid-template-columns:42px minmax(0,1fr);gap:1px 5px;align-items:center}.seat-student-main>b{grid-row:1/3;font-size:11px;color:#1e4f7d}.seat-student-main>span{font-size:8.5px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seat-student-main>small{font-size:7px;color:#7a8799;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seat-assigned-badge,.seat-unassigned-badge{font-size:6.5px;font-style:normal;padding:2px 4px;border-radius:3px;white-space:nowrap}.seat-assigned-badge{background:#fff7ed;color:#9a3412}.seat-unassigned-badge{background:#ecfdf3;color:#067647}.seat-add-next,.seat-remove{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:22px;height:22px;border:1px solid #cdd8e5;border-radius:4px;background:#fff;color:#2563eb;cursor:pointer;display:flex;align-items:center;justify-content:center}.seat-remove{color:#b42318}.seat-add-next:hover{background:#eff6ff}.seat-remove:hover{background:#fff1f2}
.seat-layout-panel{min-width:0}.seat-layout-heading{align-items:flex-start}.seat-layout-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.seat-builder-state{padding:5px 9px;border-bottom:1px solid #e5eaf0;background:#fafbfc;font-size:8px;color:#667085}.seat-builder-state.dirty{color:#b45309;background:#fffbeb}.seat-builder-state.saving{color:#175cd3;background:#eff6ff}.seat-builder-state.saved{color:#067647;background:#ecfdf3}.seat-builder-state.error{color:#b42318;background:#fff1f2}
.live-hall-grid{display:grid;grid-template-columns:repeat(var(--hall-columns),minmax(130px,1fr));gap:7px;padding:9px;overflow:auto;min-height:350px;background:#f8fafc}.live-bench{border:1px solid #cfd9e5;border-radius:5px;background:#fff;min-width:130px}.live-bench-label{text-align:center;padding:4px 5px;border-bottom:1px solid #e4e9ef;background:#f6f8fb;font-size:7px;font-weight:800;color:#64748b}.live-bench-seats{display:grid;grid-template-columns:repeat(auto-fit,minmax(95px,1fr));gap:4px;padding:4px}.live-seat-slot{border:1px dashed #b9c7d8;border-radius:4px;min-height:75px;padding:3px;background:#fbfdff;transition:border-color .12s,background .12s}.live-seat-slot.drag-over{border-color:#2563eb;background:#eff6ff}.live-seat-slot.filled{border-style:solid;border-color:#aebfd1;background:#fff}.live-seat-label{display:block;text-align:center;font-size:6px;color:#8492a6;margin-bottom:2px}.live-seat-content{min-height:54px;display:flex;align-items:center;justify-content:center}.seat-empty-hint{display:flex;flex-direction:column;align-items:center;gap:3px;color:#9aa8b8;font-size:7px;text-align:center}.seat-empty-hint i{font-size:13px}.live-seat-slot .seat-student-card{width:100%;grid-template-columns:1fr;padding:4px 25px 4px 5px}.live-seat-slot .seat-student-main{grid-template-columns:34px minmax(0,1fr)}.live-seat-slot .seat-student-main>b{font-size:10px}.live-seat-slot .seat-student-main>span{font-size:7px}.live-seat-slot .seat-student-main>small{font-size:6px}.seat-layout-footer{display:flex;justify-content:space-between;align-items:center;padding:7px 9px;border-top:1px solid #d9e2ee;font-size:9px}.seat-output-grid{margin-top:10px}

/* General alignment */
.table-wrap table td,.table-wrap table th{vertical-align:middle}.action-buttons{white-space:nowrap}.page-actions{align-items:center}.btn i{line-height:1}.panel-head small{color:#7a8799}.toolbar .btn{height:30px}.toolbar input,.toolbar select{height:30px!important;min-height:30px!important}

@media(max-width:1250px){
  .seat-builder-filter{grid-template-columns:repeat(4,minmax(125px,1fr));}.seat-filter-groups{grid-column:span 3}.seat-filter-submit{grid-column:span 1}
  .seat-builder{grid-template-columns:285px minmax(0,1fr)}
  .class-shift-layout{grid-template-columns:minmax(0,1fr) 250px}
}
@media(max-width:950px){
  .marks-filter-grid{grid-template-columns:repeat(2,minmax(140px,200px))!important}
  .seat-builder{grid-template-columns:1fr}.seat-student-panel{position:static;max-height:none}.seat-student-groups{max-height:360px}
  .seat-builder-filter{grid-template-columns:repeat(2,minmax(0,1fr))}.seat-filter-groups,.seat-filter-submit{grid-column:span 2}
  .seat-summary-strip{grid-template-columns:repeat(3,1fr)}.class-shift-layout{grid-template-columns:1fr}.class-shift-target{position:static}
}
@media(max-width:620px){
  .marks-filter-grid{grid-template-columns:1fr 1fr!important}.admission-layout{grid-template-columns:1fr!important}.admission-photo-column{position:static!important;grid-row:1}
  .seat-builder-filter{grid-template-columns:1fr}.seat-filter-groups,.seat-filter-submit{grid-column:auto}.seat-summary-strip{grid-template-columns:1fr 1fr}.live-hall-grid{grid-template-columns:repeat(var(--hall-columns),minmax(120px,1fr));min-width:650px}.seat-layout-panel{overflow:hidden}.class-shift-filter{grid-template-columns:1fr!important}
}
.stat{border-left-width:1px!important;border-left-color:#d9e2ee!important}

/* =========================================================
   V5 production UI refinement
   ========================================================= */
.page-actions,.form-actions{justify-content:flex-end!important}
.page-actions .btn:not(.btn-danger),.page-actions form .btn:not(.btn-danger),.form-actions .btn:not(.btn-danger),.form-actions form .btn:not(.btn-danger){background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}
.page-actions .btn:not(.btn-danger):hover,.form-actions .btn:not(.btn-danger):hover{background:var(--accent-hover)!important;border-color:var(--accent-hover)!important}
.stat,.seat-stat,.seat-summary-grid>div,.dashboard-kpi,.subject-rule-note,.callout,.alert-success,.alert-error{border-left-width:1px!important;border-left-color:#d9e2ee!important}

/* Administrator login */
.admin-login-page{min-height:100vh;margin:0;background:#f4f7fb;color:#172b4d;display:grid;place-items:center;font-family:inherit}
.admin-login-shell{width:min(430px,calc(100vw - 32px));display:grid;gap:12px}
.admin-login-brand{display:flex;align-items:center;justify-content:center;gap:9px;text-align:left}
.admin-login-brand img,.admin-login-mark{width:42px;height:42px;object-fit:contain;border:1px solid #cfd9e5;border-radius:7px;background:#fff;display:grid;place-items:center;color:#2563eb;font-size:18px}
.admin-login-brand strong{display:block;font-size:13px;color:#172b4d}.admin-login-brand span{display:block;margin-top:2px;font-size:9px;color:#7a8799}
.admin-login-card{border:1px solid #cfd9e5;border-radius:8px;background:#fff;padding:22px}
.admin-login-title{display:flex;align-items:center;gap:11px;margin-bottom:18px}.admin-login-icon{width:42px;height:42px;border-radius:7px;background:#eaf2ff;color:#2563eb;display:grid;place-items:center;font-size:18px}
.admin-login-title h1{margin:0;font-size:19px;line-height:1.1}.admin-login-title p{margin:3px 0 0;font-size:10px;color:#7a8799}
.admin-login-form{display:grid;gap:11px}.login-field label{display:block;margin-bottom:4px;font-size:10px;font-weight:750;color:#344054}
.login-input-wrap{position:relative}.login-input-wrap>i{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#8da0b5;font-size:11px;pointer-events:none}
.login-input-wrap input{width:100%;height:38px!important;min-height:38px!important;border:1px solid #c7d4e2;border-radius:5px;background:#fff;padding:5px 10px 5px 31px!important;font-size:12px;outline:none}.login-input-wrap input:focus{border-color:#2563eb}
.login-options{display:flex;align-items:center;justify-content:space-between;min-height:24px}.login-remember{display:inline-flex!important;align-items:center;gap:7px!important;margin:0!important;font-size:10px!important;font-weight:600!important;color:#52637a!important;cursor:pointer}.login-remember input{appearance:auto!important;width:14px!important;height:14px!important;min-height:14px!important;margin:0!important;padding:0!important;accent-color:#2563eb}
.admin-login-submit{height:38px!important;width:100%;font-size:11px!important;border-radius:5px!important}.admin-login-footer{text-align:center;color:#8996a8;font-size:9px}

/* Dashboard */
.dashboard-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:10px}.dashboard-kpi{border:1px solid #d9e2ee;border-radius:6px;background:#fff;padding:10px 11px;min-width:0}.dashboard-kpi span{display:block;font-size:8px;font-weight:800;text-transform:uppercase;color:#7a8799}.dashboard-kpi b{display:block;margin-top:5px;font-size:20px;color:#1f3553}.dashboard-kpi small{display:block;margin-top:4px;font-size:7.5px;color:#7a8799;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-main-grid{margin-bottom:10px}.exam-summary-grid{display:grid;grid-template-columns:repeat(3,1fr)}.exam-summary-grid>div{padding:12px;border-right:1px solid #e5eaf0;border-bottom:1px solid #e5eaf0}.exam-summary-grid>div:nth-child(3n){border-right:0}.exam-summary-grid>div:nth-last-child(-n+3){border-bottom:0}.exam-summary-grid span{display:block;font-size:8px;text-transform:uppercase;font-weight:800;color:#7a8799}.exam-summary-grid b{display:block;margin-top:4px;font-size:17px;color:#1f3553}.dashboard-actions{padding:10px;display:flex;gap:7px;justify-content:flex-end;flex-wrap:wrap}.dashboard-actions .btn{min-width:120px}

/* Bulk import screens */
.bulk-import-filter,.bulk-marks-selection{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:8px;align-items:end;padding:10px}.bulk-import-filter label,.bulk-marks-selection label{display:block;margin:0 0 4px;font-size:9px;font-weight:800;color:#52637a}.bulk-import-filter select,.bulk-import-filter input,.bulk-marks-selection select{width:100%!important;height:32px!important;min-height:32px!important}.bulk-filter-action{display:flex;justify-content:flex-end}.bulk-file-actions{display:flex;gap:8px;justify-content:flex-end;align-items:center;padding:10px;border-top:1px solid #e5eaf0}.bulk-file-actions form{display:flex;gap:7px;align-items:center}.bulk-file-actions input[type=file]{height:32px!important;min-height:32px!important;border:1px solid #d9e2ee;border-radius:4px;padding:4px;background:#fff;max-width:280px}.compact-table th,.compact-table td{padding:6px 7px!important;font-size:9px!important}.row-error td{background:#fff7f7!important}.import-error{display:block;max-width:300px;color:#b42318;font-size:8px;line-height:1.35}.tag.danger{background:#fff1f2!important;color:#b42318!important;border-color:#fecdd3!important}

/* Admission compactness */
.admission-layout{grid-template-columns:minmax(0,1fr) 220px!important;gap:8px!important}.admission-main{gap:6px!important}.admission-section .panel-body{padding:6px 7px!important}.admission-section .panel-head{padding:4px 7px!important}.admission-section .form-grid{gap:5px 7px!important}.admission-section .form-grid input,.admission-section .form-grid select{height:28px!important;min-height:28px!important}.admission-photo-column{gap:6px!important}.passport-preview{width:118px!important;height:142px!important}.photo-upload-card .panel-body{padding:7px!important}.subject-choice-row{min-height:31px!important}.subject-choice-row>span{padding:3px 5px!important}.section-number{width:21px!important;height:21px!important}

/* Clear action bars */
.marks-bottom-actions{justify-content:flex-end!important}.marks-bottom-actions .subtle{margin-right:auto}.toolbar button.btn{background:var(--accent);color:#fff;border-color:var(--accent)}

@media(max-width:1200px){.dashboard-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:850px){.dashboard-kpis{grid-template-columns:repeat(2,1fr)}.bulk-import-filter,.bulk-marks-selection{grid-template-columns:repeat(2,1fr)}.admission-layout{grid-template-columns:1fr!important}.admission-photo-column{position:static!important;grid-row:1}}
@media(max-width:520px){.dashboard-kpis,.bulk-import-filter,.bulk-marks-selection{grid-template-columns:1fr}.admin-login-card{padding:17px}.bulk-file-actions{align-items:stretch;flex-direction:column}.bulk-file-actions form{align-items:stretch;flex-direction:column}.bulk-file-actions input[type=file]{max-width:none;width:100%}}
.panel-head .btn:not(.btn-danger),.seat-layout-actions .btn:not(.btn-danger){background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}
.panel-head .btn:not(.btn-danger):hover,.seat-layout-actions .btn:not(.btn-danger):hover{background:var(--accent-hover)!important;border-color:var(--accent-hover)!important}
.top-right>a.btn{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}
.bulk-marks-selection{grid-template-columns:repeat(5,minmax(135px,1fr))}.bulk-marks-selection input{width:100%;height:32px;border:1px solid #d9e2ee;border-radius:4px;background:#f8fafc;padding:0 8px;font-size:10px}
@media(max-width:1000px){.bulk-marks-selection{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.bulk-marks-selection{grid-template-columns:1fr}}
.marks-bottom-actions .subtle{margin-right:auto!important}

/* =========================================================
   V6 PROFESSIONAL NAVY THEME
   Unified action color: #0f2747 · Flat UI · No box shadows
   ========================================================= */
:root{
  --ui-navy:#0f2747;
  --ui-navy-2:#17385f;
  --ui-blue:#0f2747;
  --ui-blue-hover:#091b33;
  --accent:#0f2747;
  --accent-hover:#091b33;
  --accent-soft:#f2f5f8;
  --ui-bg:#f6f8fb;
  --ui-border:#d8e0ea;
  --ui-border-strong:#bec9d7;
  --ui-text:#182230;
  --ui-muted:#667085;
}

*,*::before,*::after{box-shadow:none!important}
html,body{font-family:"Inter","Segoe UI",Roboto,Arial,sans-serif!important;color:var(--ui-text);background:var(--ui-bg);font-size:13px}

/* Shell / spacing */
.app-shell{grid-template-columns:246px minmax(0,1fr);background:var(--ui-bg)}
.sidebar{width:246px;background:var(--ui-navy)!important;border-right:1px solid #274360}
.brand{height:68px;padding:0 16px;background:var(--ui-navy)!important;border-color:#294564}
.brand-mark{width:36px;height:36px;border-radius:7px;background:#17385f!important;border:1px solid #526d8d!important;color:#fff!important;font-weight:800}
.brand-title{font-size:14px;font-weight:800}.brand-sub{font-size:10px;color:#b3c2d5}
.nav-scroll{padding:10px 8px 14px}.nav-caption{padding:13px 10px 6px;font-size:9px;color:#90a7c1;letter-spacing:.8px}
.nav-link{height:40px;padding:0 11px;border-radius:6px;color:#d2dcea;font-size:12px;font-weight:600}
.nav-link:hover,.sidebar-dropdown summary:hover,.sidebar-dropdown-menu a:hover{background:#183a61!important;border-color:#315476!important;color:#fff!important}
.nav-link.active,.sidebar-dropdown.active>summary{background:#fff!important;color:#0f2747!important;border-color:#fff!important}
.sidebar-dropdown summary{min-height:40px;padding:0 11px;border-radius:6px;color:#d2dcea;font-size:12px}
.sidebar-dropdown-menu{padding:4px 0 6px 13px}.sidebar-dropdown-menu a{padding:7px 9px;font-size:10.5px;color:#b8c8db}
.sidebar-foot{padding:14px 16px;background:#0b2039!important;border-color:#294564;color:#aebed1}
.topbar{height:68px;padding:0 24px;border-color:var(--ui-border);background:#fff!important}
.page{padding:24px 26px 34px}.page-head{min-height:50px;margin-bottom:16px;align-items:center}.page-title{font-size:22px;font-weight:800;letter-spacing:-.35px;color:#11233d}.page-subtitle{font-size:11px;line-height:1.5;color:#6d7a8c;margin-top:5px}

/* Panels / tables */
.panel{border:1px solid var(--ui-border)!important;border-radius:8px!important;background:#fff!important;overflow:hidden}
.panel+.panel{margin-top:15px}.panel-head{min-height:52px;padding:10px 14px;border-bottom:1px solid #e4e9ef!important;background:#fff!important}.panel-title{font-size:13px;font-weight:800;color:#1d2f47}.panel-note,.panel-head small{font-size:10px;color:#748094}
.panel-body{padding:15px}.form-actions{min-height:54px;padding:9px 14px;border-top:1px solid #e4e9ef;background:#fbfcfe!important}
.toolbar{padding:11px 12px;gap:9px;background:#fbfcfe!important;border-color:#e4e9ef!important}
.table-wrap table{font-size:12px}.table-wrap th{height:38px;padding:7px 9px;background:#f7f9fc!important;color:#536174;font-size:9px;font-weight:800;border-color:#dde4ec}.table-wrap td{height:40px;padding:7px 9px;border-color:#e6ebf1}.table-wrap tbody tr:hover{background:#fafcfe!important}

/* Unified forms */
.label,.form-grid label,.panel-body>label,.login-card label,.result-search-form label,
.bulk-import-filter label,.bulk-marks-selection label,.compact-filter-grid label,.admit-filter-grid label,.seat-filter-grid label{
  display:block;color:#344054!important;font-size:10.5px!important;font-weight:700!important;letter-spacing:0!important;text-transform:none!important;margin:0 0 6px!important;
}
.input,.select,.textarea,
.panel-body input:not([type="checkbox"]):not([type="radio"]):not(.cell-input),
.panel-body select,.panel-body textarea,.form-grid input,.form-grid select,.toolbar input,.toolbar select,
.inline-edit-form input,.inline-edit-form select,.bulkbar select,.compact-filter-grid input,.compact-filter-grid select,
.admit-filter-grid input,.admit-filter-grid select,.seat-filter-grid select{
  min-height:38px!important;height:38px!important;padding:7px 10px!important;border:1px solid var(--ui-border-strong)!important;border-radius:6px!important;background:#fff!important;color:#1f2f43!important;font-size:12px!important;outline:none!important;
}
.textarea,.panel-body textarea{height:auto!important;min-height:90px!important;resize:vertical}
.input:focus,.select:focus,.textarea:focus,
.panel-body input:focus,.panel-body select:focus,.panel-body textarea:focus,.form-grid input:focus,.form-grid select:focus,.toolbar input:focus,.toolbar select:focus,
.inline-edit-form input:focus,.inline-edit-form select:focus,.compact-filter-grid input:focus,.compact-filter-grid select:focus{
  border-color:#0f2747!important;outline:2px solid rgba(15,39,71,.08)!important;outline-offset:0!important;
}
input::placeholder,textarea::placeholder{color:#98a2b3}
input[type="checkbox"],input[type="radio"]{accent-color:#0f2747}
input[type="file"]{padding:4px 5px!important;line-height:27px!important}
input[type="file"]::file-selector-button{
  height:28px;margin-right:9px;padding:0 10px;border:0;border-radius:4px;background:#0f2747;color:#fff;font-family:inherit;font-weight:700;cursor:pointer;
}

/* Every standard application action button uses the requested navy */
.btn,.btn-primary,.btn-secondary,.btn-danger,.btn-success,.btn-warning,.btn-info,.btn-purple,.btn-info-soft,.btn-danger-soft,.btn-success-soft,
.page-actions .btn,.page-actions form .btn,.form-actions .btn,.form-actions form .btn,.panel-head .btn,.seat-layout-actions .btn,.toolbar button.btn,.top-right>a.btn{
  min-height:38px!important;height:38px!important;padding:0 13px!important;border:1px solid #0f2747!important;border-radius:6px!important;background:#0f2747!important;color:#fff!important;font-size:11px!important;font-weight:700!important;line-height:1!important;
}
.btn:hover,.btn-primary:hover,.btn-secondary:hover,.btn-danger:hover,.btn-success:hover,.btn-warning:hover,.btn-info:hover,.btn-purple:hover,.btn-info-soft:hover,.btn-danger-soft:hover,.btn-success-soft:hover,
.page-actions .btn:hover,.form-actions .btn:hover,.panel-head .btn:hover,.toolbar button.btn:hover,.top-right>a.btn:hover{
  background:#091b33!important;border-color:#091b33!important;color:#fff!important;
}
.btn-sm,.btn.btn-sm{height:32px!important;min-height:32px!important;padding:0 10px!important;font-size:10px!important}.btn-icon,.btn.btn-icon{width:38px!important;padding:0!important}.btn-sm.icon-action{width:32px!important;min-width:32px!important;height:32px!important;padding:0!important}
.btn:disabled,.btn.disabled{opacity:.55;cursor:not-allowed}
.btn-link{background:transparent!important;color:#0f2747!important;border-color:transparent!important;padding-left:4px!important;padding-right:4px!important}
.btn-link:hover{background:transparent!important;color:#091b33!important;border-color:transparent!important;text-decoration:underline}

/* Keep non-action menu controls neutral */
.user-trigger{background:#fff!important;color:#25364d!important;border:0!important}.user-trigger:hover{background:#f5f7fa!important;color:#0f2747!important}.user-menu-item{background:#fff!important;color:#344054!important}.user-menu-item:hover{background:#f7f9fc!important;color:#0f2747!important}

/* Balanced bulk import */
.bulk-import-filter{padding:15px!important;gap:14px!important;align-items:end!important;background:#fff}
.bulk-template-filter{grid-template-columns:repeat(3,minmax(190px,1fr)) auto!important}
.bulk-upload-filter{grid-template-columns:repeat(4,minmax(170px,1fr)) auto!important}
.bulk-import-filter select,.bulk-import-filter input{height:40px!important;min-height:40px!important;border-radius:6px!important;font-size:12px!important}
.bulk-filter-action{display:flex!important;align-items:flex-end!important;justify-content:flex-end!important;min-width:max-content}
.bulk-filter-action .btn{height:40px!important;min-height:40px!important}

/* Flat information states */
.alert,.callout,.stat,.report-kpi,.seat-stat,.seat-summary-grid>div,.dashboard-kpi{box-shadow:none!important}
.callout{border:1px solid #d8e0ea!important;border-left:1px solid #d8e0ea!important;border-radius:6px!important;background:#f8fafc!important;color:#526071!important}.callout strong{color:#0f2747!important}
.alert-success{border:1px solid #b7dfc7!important;border-left:1px solid #b7dfc7!important}.alert-error{border:1px solid #f0b8bd!important;border-left:1px solid #f0b8bd!important}
.stat,.report-kpi,.seat-stat,.seat-summary-grid>div,.dashboard-kpi{border-left-width:1px!important;border-left-color:var(--ui-border)!important}

/* Public result service */
.public-page{min-height:100vh;background:#f4f7fa!important;color:#182230}
.public-shell{max-width:1120px;margin:0 auto;padding:24px 28px 30px!important}
.public-brand{min-height:72px;padding:0 0 18px!important;border-bottom:1px solid #d7e0ea!important;background:transparent!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px!important}
.public-brand-identity{display:flex;align-items:center;gap:12px;min-width:0}.public-brand-logo{width:48px;height:48px;object-fit:contain;border:1px solid #d7e0ea;border-radius:7px;background:#fff;padding:4px}.public-brand .brand-mark{width:44px!important;height:44px!important;border-radius:7px!important;background:#0f2747!important;color:#fff!important;border-color:#0f2747!important}
.public-brand strong{display:block;font-size:15px!important;font-weight:800;color:#122642!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.public-brand span{display:block;margin-top:3px;font-size:10px!important;color:#758195!important}
.public-brand-link{display:inline-flex;align-items:center;gap:7px;color:#0f2747;font-size:11px;font-weight:700;white-space:nowrap}.public-brand-link:hover{text-decoration:underline}
.public-alert{max-width:860px;margin:20px auto 0!important}
.result-search-page{max-width:880px;margin:0 auto;padding:54px 0 42px}.result-search-intro{text-align:center;margin-bottom:26px}.result-search-kicker{display:inline-flex;align-items:center;gap:7px;margin-bottom:10px;color:#526276;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.7px}.result-search-kicker i{color:#0f2747}.result-search-intro h1{margin:0;color:#10233e;font-size:32px;line-height:1.2;font-weight:800;letter-spacing:-.6px}.result-search-intro p{max-width:660px;margin:10px auto 0;color:#6d798a;font-size:12px;line-height:1.65}
.result-search-card{border:1px solid #d4dde8;border-radius:9px;background:#fff;overflow:hidden}.result-search-card-head{min-height:70px;padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid #e2e8ef;background:#fbfcfd}.section-eyebrow{display:block;color:#7a8798;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.7px}.result-search-card-head h2{margin:3px 0 0;font-size:15px;color:#1a2c44;font-weight:800}.result-search-count{padding:5px 8px;border:1px solid #d7e0ea;border-radius:999px;background:#fff;color:#617084;font-size:9px;font-weight:700}
.result-search-form{display:grid!important;grid-template-columns:minmax(220px,1.15fr) minmax(240px,1.25fr) auto!important;gap:14px!important;align-items:end!important;padding:20px!important}.result-search-field{min-width:0}.result-search-form label{margin-bottom:7px!important;font-size:10.5px!important}.result-search-form input,.result-search-form select{width:100%!important;height:42px!important;min-height:42px!important;padding:8px 11px!important;border:1px solid #bfcad7!important;border-radius:6px!important;background:#fff!important;color:#1e2d40!important;font-size:12px!important}.result-search-form input:focus,.result-search-form select:focus{border-color:#0f2747!important;outline:2px solid rgba(15,39,71,.08)!important}.result-search-submit .btn{height:42px!important;min-height:42px!important;padding:0 17px!important}
.result-search-empty{padding:36px 20px;text-align:center;display:grid;justify-items:center;gap:7px;color:#6c7889}.result-search-empty i{font-size:25px;color:#8693a5}.result-search-empty strong{color:#314159;font-size:12px}.result-search-empty span{font-size:10.5px}
.result-search-help{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:14px;color:#778397;font-size:10.5px}.result-search-help i{color:#0f2747}
.public-footer{margin-top:28px;padding-top:18px;border-top:1px solid #d7e0ea;display:flex;justify-content:space-between;gap:12px;color:#8995a5;font-size:9.5px}

/* Result display */
.public-result-page{padding:34px 0 12px}.public-result-page .result-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;text-align:left;border:0!important;padding:0 0 18px!important;margin:0!important}.public-result-page .result-head h1{font-size:24px;margin:4px 0 3px;color:#10233e}.public-result-page .result-head p{font-size:11px;margin:0;color:#6f7b8c}.public-result-page .result-gpa{text-align:right}.public-result-page .result-gpa b{display:block;font-size:30px;color:#0f2747}.public-result-page .result-gpa span,.public-result-page .result-gpa small{font-size:9px;color:#788496}
.public-result-page .result-meta{display:grid!important;grid-template-columns:repeat(5,1fr)!important;gap:0!important;border:1px solid #d8e0ea!important;border-radius:7px!important;overflow:hidden!important;background:#fff!important;margin:0 0 16px!important}.public-result-page .result-meta span{display:block;padding:10px 11px!important;border-right:1px solid #e1e7ee!important;font-size:9px!important;color:#758194!important}.public-result-page .result-meta span:last-child{border-right:0!important}.public-result-page .result-meta b{display:block;margin-top:3px;color:#24354c;font-size:11px}.result-table-panel{margin-top:0!important}.public-actions{display:flex;justify-content:flex-end!important;gap:8px;margin-top:14px!important}

/* Login uses same navy action treatment */
.admin-login-page{background:#f4f7fa!important}.admin-login-card{border-color:#d5dee8!important;border-radius:8px!important}.admin-login-mark,.admin-login-icon{background:#eef2f6!important;color:#0f2747!important;border-color:#d5dee8!important}.login-input-wrap input:focus{border-color:#0f2747!important;outline:2px solid rgba(15,39,71,.08)!important}.login-remember input{accent-color:#0f2747!important}

@media(max-width:1180px){
  .bulk-upload-filter{grid-template-columns:repeat(2,minmax(220px,1fr))!important}.bulk-upload-filter .bulk-filter-action{grid-column:1/-1}
}
@media(max-width:900px){
  .app-shell{grid-template-columns:218px minmax(0,1fr)}.sidebar{width:218px}.page{padding:20px 18px 28px}
  .bulk-template-filter{grid-template-columns:repeat(2,minmax(0,1fr))!important}.bulk-template-filter .bulk-filter-action{grid-column:1/-1}
  .result-search-form{grid-template-columns:1fr!important}.result-search-submit .btn{width:100%}
  .public-result-page .result-meta{grid-template-columns:repeat(2,1fr)!important}.public-result-page .result-meta span{border-bottom:1px solid #e1e7ee}.public-result-page .result-meta span:nth-child(2n){border-right:0!important}
}
@media(max-width:760px){
  .public-shell{padding:16px 14px 24px!important}.public-brand{min-height:62px;padding-bottom:14px!important}.public-brand-link{display:none}.result-search-page{padding:38px 0 28px}.result-search-intro h1{font-size:26px}.result-search-card-head{align-items:flex-start;flex-direction:column}.result-search-form{padding:15px!important}.public-footer{flex-direction:column}.public-result-page .result-head{align-items:flex-start;flex-direction:column}.public-result-page .result-gpa{text-align:left}
}
@media(max-width:560px){
  .bulk-template-filter,.bulk-upload-filter{grid-template-columns:1fr!important}.bulk-template-filter .bulk-filter-action,.bulk-upload-filter .bulk-filter-action{grid-column:auto}.bulk-filter-action .btn{width:100%}
  .public-result-page .result-meta{grid-template-columns:1fr!important}.public-result-page .result-meta span{border-right:0!important}.public-actions{flex-direction:column}.public-actions .btn{width:100%}
}

@media print{
  *,*::before,*::after{box-shadow:none!important}
}

/* =========================================================
   V7 ACADEMIC TEAL / COMPACT EXCEL THEME
   Primary + secondary: #0f766e
   Sidebar: #e4f0dc
   Flat UI: no shadows, compact tables, subtle #edf7f4 form borders
   ========================================================= */
:root{
  --accent:#0f766e;
  --accent-hover:#0b5f59;
  --accent-soft:#edf7f4;
  --secondary:#0f766e;
  --secondary-hover:#0b5f59;
  --ui-teal:#0f766e;
  --ui-teal-dark:#0b5f59;
  --ui-teal-soft:#edf7f4;
  --ui-sidebar:#e4f0dc;
  --ui-sidebar-hover:#d4e8d7;
  --ui-table-head:#e4f0dc;
  --ui-table-line:#bfd0c4;
  --ui-table-line-soft:#d8e3da;
  --ui-bg:#f7faf8;
  --ui-surface:#ffffff;
  --ui-text:#17332d;
  --ui-muted:#65766f;
  --ui-border:#d8e3da;
  --ui-border-strong:#bfd0c4;
  --ui-input-border:#edf7f4;
  --line:#d8e3da;
  --line2:#bfd0c4;
  --text:#17332d;
  --muted:#65766f;
}

*,*::before,*::after{box-shadow:none!important}
html,body{background:var(--ui-bg)!important;color:var(--ui-text)!important;font-family:"Inter","Segoe UI",Roboto,Arial,sans-serif!important}

/* ---------- Admin shell ---------- */
.app-shell{grid-template-columns:236px minmax(0,1fr)!important;background:var(--ui-bg)!important}
.sidebar{
  width:236px!important;
  background:var(--ui-sidebar)!important;
  color:#23443d!important;
  border-right:1px solid #c8d9ca!important;
}
.brand{
  height:62px!important;
  padding:0 14px!important;
  background:var(--ui-sidebar)!important;
  border-bottom:1px solid #c8d9ca!important;
}
.brand-mark{background:#fff!important;border:1px solid #9fbdab!important;color:var(--ui-teal)!important}
.brand-title{color:#173d35!important}.brand-sub{color:#617b72!important}
.nav-scroll{padding:8px 7px 12px!important}
.nav-caption{padding:12px 9px 5px!important;color:#748b82!important;font-size:8.5px!important;font-weight:800!important}
.nav{gap:2px!important}
.nav-link,
.sidebar-dropdown summary{
  min-height:36px!important;
  height:36px!important;
  margin:0!important;
  padding:0 9px!important;
  border:0!important;
  border-radius:4px!important;
  background:transparent!important;
  color:#274940!important;
  font-size:11px!important;
  font-weight:650!important;
  text-align:left!important;
}
.nav-link{display:flex!important;align-items:center!important;justify-content:flex-start!important}
.nav-link>span,
.sidebar-dropdown summary>span{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:8px!important;
  width:100%!important;
  min-width:0!important;
  text-align:left!important;
}
.nav-link span>i,
.sidebar-dropdown summary span>i{
  width:17px!important;
  min-width:17px!important;
  flex:0 0 17px!important;
  margin:0!important;
  text-align:left!important;
  color:#47685f!important;
  font-size:11px!important;
}
.sidebar-dropdown{margin:2px 0!important}
.sidebar-dropdown summary{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:6px!important;list-style:none!important}
.sidebar-dropdown summary>i:last-child{
  width:13px!important;
  min-width:13px!important;
  margin-left:auto!important;
  text-align:left!important;
  color:#6f877f!important;
  font-size:8px!important;
}
.nav-link:hover,.sidebar-dropdown summary:hover,.sidebar-dropdown-menu a:hover{
  background:var(--ui-sidebar-hover)!important;
  color:#163b33!important;
}
.nav-link:hover span>i,.sidebar-dropdown summary:hover span>i,.sidebar-dropdown-menu a:hover i{color:var(--ui-teal)!important}
.nav-link.active,.sidebar-dropdown.active>summary{
  background:var(--ui-teal)!important;
  color:#fff!important;
  font-weight:750!important;
}
.nav-link.active:before{display:none!important}
.nav-link.active span>i,.sidebar-dropdown.active>summary span>i,.sidebar-dropdown.active>summary>i:last-child{color:#fff!important}
.sidebar-dropdown-menu{
  margin:2px 0 3px 0!important;
  padding:2px 0 2px 0!important;
  border-left:0!important;
}
.sidebar-dropdown-menu a{
  min-height:30px!important;
  padding:5px 9px 5px 34px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:7px!important;
  border-radius:4px!important;
  color:#49685f!important;
  font-size:9.5px!important;
  text-align:left!important;
}
.sidebar-dropdown-menu a i{
  width:14px!important;
  min-width:14px!important;
  flex:0 0 14px!important;
  text-align:left!important;
  color:#6a837a!important;
}
.sidebar-foot{padding:11px 14px!important;background:#d9ead8!important;border-top:1px solid #c4d6c5!important;color:#60786f!important}
.sidebar-foot strong{color:#284a42!important}
.topbar{height:62px!important;background:#fff!important;border-color:#d9e4dc!important;padding:0 20px!important}
.page{padding:18px 20px 28px!important}.page-head{min-height:44px!important;margin-bottom:12px!important}.page-title{color:#173d35!important;font-size:20px!important}

/* ---------- Accent consistency ---------- */
a.text-link,.btn-link,.public-brand-link,.result-search-kicker i,.result-search-help i{color:var(--ui-teal)!important}
.avatar{color:var(--ui-teal)!important;border-color:#b6cec0!important}
.checkbox,.check-line input,input[type="checkbox"],input[type="radio"],.login-remember input{accent-color:var(--ui-teal)!important}
.switch input:checked+span{background:var(--ui-teal)!important;border-color:var(--ui-teal)!important}
.sheet-tab.active{border-color:var(--ui-teal)!important;color:var(--ui-teal)!important}
.tag.dark{border-color:var(--ui-teal)!important;color:var(--ui-teal)!important}

/* ---------- Buttons: every application action follows #0f766e ---------- */
.btn,.btn-primary,.btn-secondary,.btn-danger,.btn-success,.btn-warning,.btn-info,.btn-purple,
.btn-info-soft,.btn-danger-soft,.btn-success-soft,
.page-actions .btn,.page-actions form .btn,.form-actions .btn,.form-actions form .btn,
.panel-head .btn,.seat-layout-actions .btn,.toolbar button.btn,.top-right>a.btn,
.row-save-btn,.seat-add-next,.seat-remove,.page-btn{
  border:1px solid var(--ui-teal)!important;
  background:var(--ui-teal)!important;
  color:#fff!important;
  border-radius:4px!important;
  box-shadow:none!important;
}
.btn:hover,.btn-primary:hover,.btn-secondary:hover,.btn-danger:hover,.btn-success:hover,.btn-warning:hover,.btn-info:hover,.btn-purple:hover,
.btn-info-soft:hover,.btn-danger-soft:hover,.btn-success-soft:hover,
.page-actions .btn:hover,.form-actions .btn:hover,.panel-head .btn:hover,.toolbar button.btn:hover,.top-right>a.btn:hover,
.row-save-btn:hover,.seat-add-next:hover,.seat-remove:hover,.page-btn:hover{
  background:var(--ui-teal-dark)!important;
  border-color:var(--ui-teal-dark)!important;
  color:#fff!important;
}
.btn{min-height:34px!important;height:34px!important;padding:0 11px!important;font-size:10.5px!important;font-weight:700!important}
.btn-sm,.btn.btn-sm{height:29px!important;min-height:29px!important;padding:0 8px!important;font-size:9.5px!important}
.btn-icon,.btn.btn-icon{width:34px!important;padding:0!important}
.btn-link{background:transparent!important;border-color:transparent!important;color:var(--ui-teal)!important}
.btn-link:hover{background:transparent!important;border-color:transparent!important;color:var(--ui-teal-dark)!important}
.page-btn.disabled,.btn:disabled,.btn.disabled,.row-save-btn:disabled{opacity:.45!important}

/* ---------- Panels ---------- */
.panel{border:1px solid #d5e1d8!important;border-radius:5px!important;background:#fff!important;overflow:hidden!important}
.panel+.panel{margin-top:10px!important}.panel-head{min-height:42px!important;padding:7px 10px!important;border-bottom:1px solid #d8e3da!important}.panel-title{color:#22463e!important;font-size:11.5px!important}.panel-body{padding:10px!important}.form-actions{min-height:43px!important;padding:6px 9px!important;border-color:#d8e3da!important;background:#fbfdfb!important}.toolbar{padding:6px 7px!important;gap:6px!important;background:#fbfdfb!important;border-color:#d8e3da!important}

/* ---------- Borderless / quiet form controls ---------- */
.label,.form-grid label,.panel-body>label,.login-card label,.result-search-form label,
.bulk-import-filter label,.bulk-marks-selection label,.compact-filter-grid label,.admit-filter-grid label,.seat-filter-grid label{
  color:#425f56!important;font-size:9.5px!important;font-weight:700!important;margin:0 0 4px!important;
}
.input,.select,.textarea,
.panel-body input:not([type="checkbox"]):not([type="radio"]):not(.cell-input):not(.grade-cell-input),
.panel-body select,.panel-body textarea,
.form-grid input,.form-grid select,.toolbar input,.toolbar select,
.inline-edit-form input,.inline-edit-form select,.bulkbar select,.compact-filter-grid input,.compact-filter-grid select,
.admit-filter-grid input,.admit-filter-grid select,.seat-filter-grid select,
.bulk-import-filter input,.bulk-import-filter select,.bulk-marks-selection input,.bulk-marks-selection select,
.result-search-form input,.result-search-form select,.login-card input{
  min-height:34px!important;
  height:34px!important;
  padding:6px 8px!important;
  border:1px solid var(--ui-input-border)!important;
  border-radius:4px!important;
  outline:none!important;
  background:#fff!important;
  color:#203f37!important;
  font-size:11px!important;
  box-shadow:none!important;
}
.textarea,.panel-body textarea{height:auto!important;min-height:78px!important}
.input:hover,.select:hover,.textarea:hover,
.panel-body input:hover,.panel-body select:hover,.panel-body textarea:hover,.form-grid input:hover,.form-grid select:hover,
.toolbar input:hover,.toolbar select:hover,.inline-edit-form input:hover,.inline-edit-form select:hover,
.compact-filter-grid input:hover,.compact-filter-grid select:hover,.result-search-form input:hover,.result-search-form select:hover{
  border:1px solid var(--ui-input-border)!important;outline:none!important;background:#fbfefd!important;
}
.input:focus,.select:focus,.textarea:focus,
.panel-body input:focus,.panel-body select:focus,.panel-body textarea:focus,.form-grid input:focus,.form-grid select:focus,
.toolbar input:focus,.toolbar select:focus,.inline-edit-form input:focus,.inline-edit-form select:focus,
.compact-filter-grid input:focus,.compact-filter-grid select:focus,.result-search-form input:focus,.result-search-form select:focus,.login-card input:focus{
  border:1px solid var(--ui-input-border)!important;outline:none!important;background:#f8fcfa!important;color:#173d35!important;
}
input[type="file"]{padding:3px 4px!important;background:#fff!important;border:1px solid var(--ui-input-border)!important}
input[type="file"]::file-selector-button{height:27px!important;border:0!important;border-radius:3px!important;background:var(--ui-teal)!important;color:#fff!important;margin-right:8px!important;padding:0 9px!important;font-weight:700!important}

/* ---------- All tables follow Marks Entry grid language ---------- */
.table-wrap{background:#fff!important}
.table-wrap table,table.excel-table{border-collapse:collapse!important;border-spacing:0!important;background:#fff!important}
.table-wrap th,.excel-table th{
  height:31px!important;
  min-height:31px!important;
  padding:3px 6px!important;
  background:var(--ui-table-head)!important;
  color:#173d35!important;
  border:1px solid var(--ui-table-line)!important;
  font-size:8.5px!important;
  font-weight:800!important;
  line-height:1.15!important;
  text-transform:uppercase!important;
  letter-spacing:.15px!important;
  vertical-align:middle!important;
}
.table-wrap td,.excel-table td{
  height:28px!important;
  min-height:28px!important;
  padding:2px 6px!important;
  border:1px solid var(--ui-table-line-soft)!important;
  background:#fff!important;
  color:#213d36!important;
  line-height:1.15!important;
  vertical-align:middle!important;
}
.table-wrap tbody tr:hover td,.excel-table tbody tr:hover td{background:#f7fbf8!important}
.table-wrap tbody tr:nth-child(even) td{background:#fcfdfc!important}
.table-wrap tbody tr:nth-child(even):hover td{background:#f7fbf8!important}
.table-sub,.student-cell small{font-size:8.5px!important;line-height:1.1!important;margin-top:1px!important;color:#788980!important}
.table-wrap.excel th:first-child{background:var(--ui-table-head)!important}
.table-wrap.excel td:first-child{background:#fff!important}
.excel-title th,.excel-group th{background:var(--ui-table-head)!important;border-color:var(--ui-table-line)!important;color:#173d35!important}
.compact-table th,.compact-table td{padding-top:2px!important;padding-bottom:2px!important}

/* Marks grid remains the visual reference */
.marks-sheet tbody td{height:28px!important;min-height:28px!important;padding-top:1px!important;padding-bottom:1px!important}
.marks-sheet th{height:32px!important;padding-top:3px!important;padding-bottom:3px!important;background:var(--ui-table-head)!important}
.marks-sheet th small{font-size:6.5px!important;color:#5b746b!important;line-height:1!important;margin-top:1px!important}
.marks-sheet .cell-input{
  height:25px!important;
  min-height:25px!important;
  width:100%!important;
  max-width:78px!important;
  padding:0 3px!important;
  border:0!important;
  border-radius:0!important;
  outline:none!important;
  background:transparent!important;
  color:#163b33!important;
  text-align:center!important;
}
.marks-sheet .cell-input:hover{border:0!important;background:#f3f8f5!important}
.marks-sheet .cell-input:focus{border:0!important;outline:2px solid var(--ui-teal)!important;outline-offset:-2px!important;background:#edf7f4!important}
.marks-sheet .row-action{width:58px!important;min-width:58px!important}.row-save-btn{width:26px!important;height:24px!important;min-width:26px!important;padding:0!important}
.marks-sheet-title{background:#fbfdfb!important;border-color:#d8e3da!important}.sheet-tabs{border-color:#d8e3da!important;background:#fbfdfb!important}.sheet-tab{border:0!important;background:#eef4ef!important;color:#536c63!important}.sheet-tab.active{background:var(--ui-teal)!important;color:#fff!important}

/* ---------- Grade Settings: true spreadsheet editing ---------- */
.grade-settings-panel{overflow:hidden!important}
.grade-excel-wrap{overflow:auto!important;border:0!important}
.grade-excel-table{min-width:650px!important;table-layout:fixed!important}
.grade-excel-table th{text-align:center!important;height:32px!important}
.grade-excel-table .grade-sl{width:54px!important;text-align:center!important}
.grade-excel-table td{padding:0!important;height:31px!important;background:#fff!important}
.grade-excel-table tbody tr:nth-child(even) td{background:#fcfdfc!important}
.grade-excel-table td.grade-sl{padding:0 6px!important;font-weight:700!important;color:#526d63!important;background:#f8fbf9!important}
.grade-cell-input{
  display:block!important;
  width:100%!important;
  height:30px!important;
  min-height:30px!important;
  margin:0!important;
  padding:0 8px!important;
  border:0!important;
  border-radius:0!important;
  outline:none!important;
  background:transparent!important;
  color:#173d35!important;
  font-size:11px!important;
  text-align:center!important;
  box-shadow:none!important;
}
.grade-cell-input:hover{border:0!important;background:#f4f8f5!important}
.grade-cell-input:focus{border:0!important;outline:2px solid var(--ui-teal)!important;outline-offset:-2px!important;background:#edf7f4!important}
.grade-letter-input{font-weight:750!important;text-transform:uppercase!important}
.grade-sheet-hint{display:flex;align-items:center;gap:6px;color:#6b7f77;font-size:9px}.grade-sheet-hint i{color:var(--ui-teal)}

/* ---------- Pagination / alerts / states ---------- */
.page-btn{min-width:26px!important;height:26px!important;min-height:26px!important;padding:0 6px!important}
.table-footer,.pager{min-height:35px!important;padding:4px 7px!important;border-color:#d8e3da!important}
.alert-success{border-color:#b8d7c2!important;color:#25644f!important;background:#f7fbf8!important}.alert-error{background:#fffafa!important}
.callout{border-color:#d5e1d8!important;background:#f8fbf9!important}.callout strong{color:var(--ui-teal)!important}

/* ---------- Public result + login use same secondary color ---------- */
.public-page,.admin-login-page{background:#f6faf7!important}
.public-brand .brand-mark,.admin-login-mark,.admin-login-icon{color:var(--ui-teal)!important;border-color:#b8d0c0!important;background:#edf7f1!important}
.result-search-intro h1,.public-result-page .result-head h1{color:#173d35!important}.public-result-page .result-gpa b{color:var(--ui-teal)!important}
.result-search-card,.admin-login-card{border-color:#d2dfd5!important}
.result-search-card-head{background:#fbfdfb!important;border-color:#dce6de!important}
.result-search-form input,.result-search-form select{height:38px!important;min-height:38px!important;border:1px solid var(--ui-input-border)!important;border-radius:4px!important;background:#fff!important}
.result-search-form input:focus,.result-search-form select:focus{border:1px solid var(--ui-input-border)!important;outline:none!important;background:#f8fcfa!important}
.result-search-submit .btn{height:38px!important;min-height:38px!important}
.login-input-wrap input{border:1px solid var(--ui-input-border)!important;background:#fff!important}.login-input-wrap input:focus{border:1px solid var(--ui-input-border)!important;outline:none!important;background:#f8fcfa!important}

@media(max-width:900px){
  .app-shell{grid-template-columns:216px minmax(0,1fr)!important}.sidebar{width:216px!important}.page{padding:15px 14px 24px!important}
}

/* V7.1 final consistency pass */
.marks-sheet-title{background:#0f766e!important;border-color:#0b5f59!important;color:#fff!important}
.marks-sheet-meta span{border-color:rgba(255,255,255,.42)!important}
.sidebar-dropdown-menu{margin-left:22px!important;padding-left:0!important}
.sidebar-dropdown-menu a{padding-left:10px!important;padding-right:8px!important}
.sidebar-dropdown-menu a i{margin-left:0!important}
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not(.cell-input):not(.grade-cell-input),select,textarea{border:1px solid #edf7f4!important;box-shadow:none!important;background-color:#fff!important}
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not(.cell-input):not(.grade-cell-input):hover,select:hover,textarea:hover,input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not(.cell-input):not(.grade-cell-input):focus,select:focus,textarea:focus{border:1px solid #edf7f4!important;box-shadow:none!important;outline:none!important}
main.main table th,.public-shell table th{height:31px!important;min-height:31px!important;padding:3px 6px!important;background:#e4f0dc!important;color:#173d35!important;border:1px solid #bfd0c4!important;font-size:8.5px!important;font-weight:800!important;line-height:1.15!important}
main.main table td,.public-shell table td{height:28px!important;min-height:28px!important;padding:2px 6px!important;border:1px solid #d8e3da!important;line-height:1.15!important}
.section-number{color:#0f766e!important;border-color:#b9d2c1!important;background:#edf7f1!important}.passport-preview:hover{border-color:#0f766e!important;background:#f0f7f2!important}.subject-rule-note{border-color:#c8ddd0!important;border-left-color:#0f766e!important;background:#f2f8f4!important;color:#3e6257!important}.subject-rule-note i{color:#0f766e!important}.rule-badge.choice,.grade-pill{background:#edf7f4!important;color:#0f766e!important}.subject-rule-guide .dot.choice{background:#0f766e!important}.student-exam-details details[open] summary{background:#f0f7f2!important;color:#0f766e!important}.report-kpi,.seat-stat{border-left-color:#0f766e!important}.report-kpi:nth-child(n),.seat-stat:nth-child(n){border-left-color:#0f766e!important}.report-bars progress{accent-color:#0f766e!important}.seat-student-main>b,.seat-cell em{color:#0f766e!important}.live-seat-slot.drag-over{border-color:#0f766e!important;background:#edf7f4!important}.seat-builder-state.saving{color:#0f766e!important;background:#edf7f4!important}.row-status.saving{color:#0f766e!important}


/* =========================================================
   V7.2 ALIGNMENT / FILTER / REPORT SPACING PASS
   ========================================================= */
.sidebar-dropdown-menu{
  margin:2px 0 4px 22px!important;
  padding:2px 0!important;
}
.sidebar-dropdown-menu a{
  min-height:30px!important;
  padding:5px 8px 5px 10px!important;
  justify-content:flex-start!important;
  text-align:left!important;
}
.sidebar-dropdown-menu a i{
  width:14px!important;
  min-width:14px!important;
  flex:0 0 14px!important;
  text-align:left!important;
}
/* A visible but intentionally quiet filter/form edge. No dark hover/focus ring. */
.input,.select,.textarea,
.panel-body input:not([type="checkbox"]):not([type="radio"]):not(.cell-input):not(.grade-cell-input),
.panel-body select,.panel-body textarea,
.form-grid input,.form-grid select,.toolbar input,.toolbar select,
.inline-edit-form input,.inline-edit-form select,.bulkbar select,.compact-filter-grid input,.compact-filter-grid select,
.admit-filter-grid input,.admit-filter-grid select,.seat-filter-grid select,
.bulk-import-filter input,.bulk-import-filter select,.bulk-marks-selection input,.bulk-marks-selection select,
.result-search-form input,.result-search-form select,.login-card input{
  border:1px solid #edf7f4!important;
  background:#fff!important;
  box-shadow:none!important;
}
.input:hover,.select:hover,.textarea:hover,
.input:focus,.select:focus,.textarea:focus,
.panel-body input:hover,.panel-body select:hover,.panel-body textarea:hover,
.panel-body input:focus,.panel-body select:focus,.panel-body textarea:focus,
.form-grid input:hover,.form-grid select:hover,.form-grid input:focus,.form-grid select:focus,
.toolbar input:hover,.toolbar select:hover,.toolbar input:focus,.toolbar select:focus,
.compact-filter-grid input:hover,.compact-filter-grid select:hover,.compact-filter-grid input:focus,.compact-filter-grid select:focus,
.result-search-form input:hover,.result-search-form select:hover,.result-search-form input:focus,.result-search-form select:focus{
  border-color:#edf7f4!important;
  outline:none!important;
  box-shadow:none!important;
}
.report-filter-panel{margin-bottom:14px!important}
.report-kpis{margin-top:0!important;margin-bottom:14px!important}

/* =========================================================
   V7.3 ACTIVE SUBMENU + SOLID FORM BORDER PASS
   ========================================================= */
:root{--ui-input-border:#d4e8d7!important}

/* Make the current child route unmistakably selected. */
.sidebar-dropdown-menu a.active{
  background:#d4e8d7!important;
  color:#0f766e!important;
  font-weight:800!important;
}
.sidebar-dropdown-menu a.active i{
  color:#0f766e!important;
  font-weight:800!important;
}
.sidebar-dropdown-menu a.active:hover{
  background:#d4e8d7!important;
  color:#0f766e!important;
}

/* Every standard form control uses the same solid green border in all states. */
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
select,
textarea{
  border:1px solid #d4e8d7!important;
  border-style:solid!important;
  box-shadow:none!important;
}
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):hover,
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):focus,
select:hover,
select:focus,
textarea:hover,
textarea:focus{
  border:1px solid #d4e8d7!important;
  border-style:solid!important;
  outline:none!important;
  box-shadow:none!important;
}

/* Preserve the Excel/grid feel while still honoring the requested input border. */
.grade-excel-table td{border:0!important}
.grade-cell-input,
.cell-input{
  border:1px solid #d4e8d7!important;
  border-style:solid!important;
  box-shadow:none!important;
}
.grade-cell-input:hover,.grade-cell-input:focus,
.cell-input:hover,.cell-input:focus{
  border:1px solid #d4e8d7!important;
  border-style:solid!important;
  box-shadow:none!important;
}

/* =========================================================
   V7.5 RECESSED DESKTOP / JAVA-SWING INPUT TREATMENT
   Keeps the requested solid #d4e8d7 border and uses inset-only
   shadows so controls feel slightly engraved into the surface.
   ========================================================= */
:root{
  --ui-input-border:#d4e8d7;
  --ui-input-bg:#ffffff;
  --ui-input-bg-focus:#fbfefc;
  --ui-input-inset:inset 1px 1px 2px rgba(43,74,51,.18), inset -1px -1px 1px rgba(255,255,255,.96);
  --ui-input-inset-focus:inset 1px 1px 2px rgba(15,118,110,.22), inset -1px -1px 1px rgba(255,255,255,1);
}

/* Standard text-like controls: classic recessed desktop field. */
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
select,
textarea,
.input,
.select,
.textarea{
  border:1px solid var(--ui-input-border)!important;
  border-style:solid!important;
  background:var(--ui-input-bg)!important;
  box-shadow:var(--ui-input-inset)!important;
  outline:none!important;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):hover,
select:hover,
textarea:hover,
.input:hover,
.select:hover,
.textarea:hover{
  border:1px solid var(--ui-input-border)!important;
  box-shadow:var(--ui-input-inset)!important;
  outline:none!important;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):focus,
select:focus,
textarea:focus,
.input:focus,
.select:focus,
.textarea:focus{
  border:1px solid var(--ui-input-border)!important;
  background:var(--ui-input-bg-focus)!important;
  box-shadow:var(--ui-input-inset-focus)!important;
  outline:none!important;
}

/* Read-only / disabled fields keep the same recessed visual language. */
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"])[readonly],
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"])[disabled],
select[disabled],
textarea[disabled]{
  background:#f4f8f5!important;
  color:#708077!important;
  box-shadow:inset 1px 1px 2px rgba(43,74,51,.12), inset -1px -1px 1px rgba(255,255,255,.82)!important;
}

/* Marks-entry and Grade Settings cells receive the same inset field feel. */
.cell-input,
.grade-cell-input,
.marks-sheet .cell-input,
.grade-excel-table .grade-cell-input{
  border:1px solid var(--ui-input-border)!important;
  background:#fff!important;
  box-shadow:var(--ui-input-inset)!important;
}
.cell-input:hover,
.grade-cell-input:hover,
.marks-sheet .cell-input:hover,
.grade-excel-table .grade-cell-input:hover{
  border:1px solid var(--ui-input-border)!important;
  background:#fff!important;
  box-shadow:var(--ui-input-inset)!important;
}
.cell-input:focus,
.grade-cell-input:focus,
.marks-sheet .cell-input:focus,
.grade-excel-table .grade-cell-input:focus{
  border:1px solid var(--ui-input-border)!important;
  background:#fbfefc!important;
  box-shadow:var(--ui-input-inset-focus)!important;
  outline:none!important;
}

/* Native file inputs and their button follow the same desktop-control language. */
input[type="file"]{
  padding:3px 4px!important;
}
input[type="file"]::file-selector-button{
  min-height:24px;
  margin-right:7px;
  padding:0 8px;
  border:1px solid #c6ddca;
  border-radius:2px;
  background:#f5faf6;
  color:#24483d;
  box-shadow:inset 1px 1px 1px rgba(255,255,255,.95), inset -1px -1px 1px rgba(43,74,51,.10);
  cursor:pointer;
  font:inherit;
}
input[type="file"]::file-selector-button:hover{
  background:#eef7f0;
}

/* =========================================================
   V7.7 TRUE CLASSIC JAVA SWING / DESKTOP INPUT SKIN
   Crisp recessed bevel (not a modern blurred shadow).
   Kept LAST intentionally so it overrides every older form rule.
   ========================================================= */
:root{
  --swing-field-border:#d4e8d7;
  --swing-field-bg:#f0fdfa;
  --swing-field-text:#122c2a;
  --swing-inset-dark:rgba(72,88,84,.58);
  --swing-inset-mid:rgba(132,153,147,.28);
  --swing-inset-light:rgba(255,255,255,.98);
  --swing-field-bevel:
    inset 1px 1px 0 var(--swing-inset-dark),
    inset 2px 2px 0 var(--swing-inset-mid),
    inset -1px -1px 0 var(--swing-inset-light);
}

/* Exact desktop/JTextField-style recessed controls across the project. */
html body input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="range"]):not([type="color"]),
html body select,
html body textarea,
html body .form-control,
html body .form-select,
html body .input,
html body .select,
html body .textarea,
html body .cell-input,
html body .grade-cell-input{
  -webkit-appearance:auto!important;
  appearance:auto!important;
  border:1px solid var(--swing-field-border)!important;
  border-radius:0!important;
  background:var(--swing-field-bg)!important;
  background-color:var(--swing-field-bg)!important;
  color:var(--swing-field-text)!important;
  -webkit-box-shadow:var(--swing-field-bevel)!important;
  box-shadow:var(--swing-field-bevel)!important;
  outline:none!important;
}

/* Keep the same crisp recessed look on hover; no modern glow. */
html body input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="range"]):not([type="color"]):hover,
html body select:hover,
html body textarea:hover,
html body .form-control:hover,
html body .form-select:hover,
html body .input:hover,
html body .select:hover,
html body .textarea:hover,
html body .cell-input:hover,
html body .grade-cell-input:hover{
  border-color:var(--swing-field-border)!important;
  background:var(--swing-field-bg)!important;
  -webkit-box-shadow:var(--swing-field-bevel)!important;
  box-shadow:var(--swing-field-bevel)!important;
  outline:none!important;
}

/* Focus stays desktop-like: slightly stronger top/left recess, no ring. */
html body input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="range"]):not([type="color"]):focus,
html body select:focus,
html body textarea:focus,
html body .form-control:focus,
html body .form-select:focus,
html body .input:focus,
html body .select:focus,
html body .textarea:focus,
html body .cell-input:focus,
html body .grade-cell-input:focus{
  border-color:var(--swing-field-border)!important;
  background:var(--swing-field-bg)!important;
  -webkit-box-shadow:
    inset 1px 1px 0 rgba(48,62,59,.72),
    inset 2px 2px 0 rgba(116,139,133,.34),
    inset -1px -1px 0 rgba(255,255,255,1)!important;
  box-shadow:
    inset 1px 1px 0 rgba(48,62,59,.72),
    inset 2px 2px 0 rgba(116,139,133,.34),
    inset -1px -1px 0 rgba(255,255,255,1)!important;
  outline:none!important;
}

/* Readonly / disabled fields still retain the same recessed control shape. */
html body input[readonly],
html body input[disabled],
html body select[disabled],
html body textarea[readonly],
html body textarea[disabled],
html body .form-control[readonly],
html body .form-control:disabled,
html body .form-select:disabled{
  border-color:var(--swing-field-border)!important;
  background:#f0fdfa!important;
  background-color:#f0fdfa!important;
  color:#5f7773!important;
  -webkit-box-shadow:var(--swing-field-bevel)!important;
  box-shadow:var(--swing-field-bevel)!important;
}

/* Native file control follows the same desktop family. */
html body input[type="file"]{
  padding:2px 4px!important;
  overflow:hidden!important;
  background:#f0fdfa!important;
}
html body input[type="file"]::file-selector-button{
  min-height:24px!important;
  margin:-1px 8px -1px -3px!important;
  padding:2px 9px!important;
  border:1px solid #b9cec0!important;
  border-radius:0!important;
  background:#e4f0dc!important;
  color:#183c37!important;
  -webkit-box-shadow:inset 1px 1px 0 #fff, inset -1px -1px 0 rgba(65,88,80,.28)!important;
  box-shadow:inset 1px 1px 0 #fff, inset -1px -1px 0 rgba(65,88,80,.28)!important;
}
html body input[type="file"]::file-selector-button:active{
  -webkit-box-shadow:inset 1px 1px 0 rgba(65,88,80,.34), inset -1px -1px 0 #fff!important;
  box-shadow:inset 1px 1px 0 rgba(65,88,80,.34), inset -1px -1px 0 #fff!important;
}

/* =========================================================
   V7.8 MARKS ENTRY: INPUT FILLS THE ENTIRE MARK CELL
   Spreadsheet-style score entry with no inner side gap.
   ========================================================= */
html body .marks-sheet td.mark-cell{
  padding:0!important;
  margin:0!important;
  overflow:hidden!important;
  background:#fff!important;
}
html body .marks-sheet td.mark-cell > input.cell-input,
html body .marks-sheet .mark-cell .cell-input{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  min-width:100%!important;
  height:100%!important;
  min-height:28px!important;
  margin:0!important;
  padding:0 6px!important;
  box-sizing:border-box!important;
  border-radius:0!important;
}
html body .marks-sheet tbody td.mark-cell{
  height:28px!important;
  min-height:28px!important;
}

/* =========================================================
   V7.10 MARKS ENTRY: FIXED SCORE INPUT HEIGHT
   Prevents number controls/filled values from changing row height.
   ========================================================= */
html body .marks-sheet tbody td.mark-cell{
  height:28px!important;
  min-height:28px!important;
  padding:0!important;
  vertical-align:middle!important;
}
html body .marks-sheet td.mark-cell > input.cell-input[type="number"],
html body .marks-sheet .mark-cell input.cell-input[type="number"]{
  display:block!important;
  width:100%!important;
  min-width:100%!important;
  max-width:none!important;
  height:28px!important;
  min-height:28px!important;
  max-height:28px!important;
  line-height:26px!important;
  margin:0!important;
  padding:0 6px!important;
  box-sizing:border-box!important;
  border-radius:0!important;
  vertical-align:middle!important;
  -moz-appearance:textfield!important;
  appearance:textfield!important;
}
html body .marks-sheet .mark-cell input.cell-input[type="number"]::-webkit-outer-spin-button,
html body .marks-sheet .mark-cell input.cell-input[type="number"]::-webkit-inner-spin-button{
  -webkit-appearance:none!important;
  appearance:none!important;
  margin:0!important;
}
html body .marks-sheet .mark-cell input.cell-input[type="number"]:focus,
html body .marks-sheet .mark-cell input.cell-input[type="number"]:not(:placeholder-shown){
  height:28px!important;
  min-height:28px!important;
  max-height:28px!important;
  line-height:26px!important;
}

/* =========================================================
   V7.11 MARKS GRID GEOMETRY / STICKY COLUMN FIX
   Prevent sticky identity columns from overlapping/clipping and
   keep all score rows at one stable spreadsheet height.
   ========================================================= */
html body .marks-sheet{
  border-collapse:separate!important;
  border-spacing:0!important;
}

/* Lock the three identity columns to the same widths used by their sticky offsets. */
html body .marks-sheet thead th:nth-child(1),
html body .marks-sheet tbody td:nth-child(1){
  width:38px!important;
  min-width:38px!important;
  max-width:38px!important;
  box-sizing:border-box!important;
  position:sticky!important;
  left:0!important;
}
html body .marks-sheet thead th:nth-child(2),
html body .marks-sheet tbody td:nth-child(2){
  width:70px!important;
  min-width:70px!important;
  max-width:70px!important;
  box-sizing:border-box!important;
  position:sticky!important;
  left:38px!important;
}
html body .marks-sheet thead th:nth-child(3),
html body .marks-sheet tbody td:nth-child(3){
  width:225px!important;
  min-width:225px!important;
  max-width:225px!important;
  box-sizing:border-box!important;
  position:sticky!important;
  left:108px!important;
}
html body .marks-sheet thead th:nth-child(-n+3){
  z-index:30!important;
  background:#e4f0dc!important;
}
html body .marks-sheet tbody td:nth-child(-n+3){
  z-index:20!important;
  background:#fff!important;
}
html body .marks-sheet tbody tr:hover td:nth-child(-n+3){
  background:#f7fbf8!important;
}

/* Keep identity text inside its own sticky cell; never under adjacent columns. */
html body .marks-sheet tbody td:nth-child(2),
html body .marks-sheet tbody td:nth-child(3){
  overflow:hidden!important;
  white-space:nowrap!important;
  text-overflow:ellipsis!important;
}
html body .marks-sheet tbody td:nth-child(2){
  padding:0 7px!important;
}
html body .marks-sheet tbody td:nth-child(3){
  padding:0 9px!important;
}
html body .marks-sheet .student-cell small{
  display:block!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  text-overflow:ellipsis!important;
  line-height:1.05!important;
  margin-top:1px!important;
}

/* One exact row geometry for empty, focused, and filled score cells. */
html body .marks-sheet tbody tr,
html body .marks-sheet tbody td{
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
  box-sizing:border-box!important;
  vertical-align:middle!important;
}
html body .marks-sheet tbody td.mark-cell{
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
  padding:0!important;
  overflow:hidden!important;
}
html body .marks-sheet td.mark-cell > input.cell-input[type="number"],
html body .marks-sheet .mark-cell input.cell-input[type="number"]{
  display:block!important;
  width:100%!important;
  min-width:100%!important;
  max-width:none!important;
  height:29px!important;
  min-height:29px!important;
  max-height:29px!important;
  line-height:29px!important;
  margin:0!important;
  padding:0 6px!important;
  box-sizing:border-box!important;
  border-radius:0!important;
  vertical-align:middle!important;
  -moz-appearance:textfield!important;
  appearance:textfield!important;
}
html body .marks-sheet .mark-cell input.cell-input[type="number"]:focus,
html body .marks-sheet .mark-cell input.cell-input[type="number"]:not(:placeholder-shown){
  height:29px!important;
  min-height:29px!important;
  max-height:29px!important;
  line-height:29px!important;
}

/* =========================================================
   V7.12 MARKS ENTRY: PREVENT DIRTY/SAVED STATUS FROM GROWING ROWS
   Typing a value adds row status text via JS. Keep that status out
   of normal table flow so td/tr height never gains vertical space.
   ========================================================= */
html body .marks-sheet tbody tr,
html body .marks-sheet tbody td{
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
  padding-top:0!important;
  padding-bottom:0!important;
  vertical-align:middle!important;
  box-sizing:border-box!important;
}
html body .marks-sheet tbody td.mark-cell{
  padding:0!important;
}
html body .marks-sheet .mark-cell > input.cell-input[type="number"]{
  height:29px!important;
  min-height:29px!important;
  max-height:29px!important;
  margin:0!important;
  padding-top:0!important;
  padding-bottom:0!important;
  line-height:29px!important;
  box-sizing:border-box!important;
}
/* Row status must never participate in row height calculation. */
html body .marks-sheet td.row-action{
  overflow:hidden!important;
  padding-top:0!important;
  padding-bottom:0!important;
}
html body .marks-sheet td.row-action .row-status{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  clip-path:inset(50%)!important;
  white-space:nowrap!important;
  border:0!important;
}
html body .marks-sheet .row-save-btn{
  margin:0!important;
  vertical-align:middle!important;
}

/* =========================================================
   V7.13 GLOBAL DEVELOPER CREDIT FOOTER
   Keep developer information centered at the true bottom of
   admin, public/result and administrator login screens.
   ========================================================= */
html body .developer-credit{
  width:100%!important;
  min-height:34px!important;
  margin:0!important;
  padding:8px 12px!important;
  border-top:1px solid #d4e8d7!important;
  background:#f8fbf9!important;
  color:#52675f!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex-wrap:wrap!important;
  gap:3px 5px!important;
  text-align:center!important;
  font-size:10px!important;
  font-weight:500!important;
  line-height:1.35!important;
  box-sizing:border-box!important;
  position:relative!important;
  inset:auto!important;
  float:none!important;
  clear:both!important;
  z-index:1!important;
}
html body .developer-credit span,
html body .developer-credit a{
  display:inline!important;
  margin:0!important;
  padding:0!important;
  line-height:1.35!important;
  white-space:nowrap!important;
}
html body .developer-credit a{
  color:#0f766e!important;
  font-weight:650!important;
  text-decoration:none!important;
}
html body .developer-credit a:hover{
  color:#0b5f59!important;
  text-decoration:underline!important;
}
html body .developer-credit .developer-credit-brand{
  font-weight:750!important;
}
html body .developer-credit .developer-credit-dot{
  color:#8ba097!important;
  padding:0 1px!important;
}

/* Admin: content grows, credit stays at the bottom of main column. */
html body main.main{
  min-height:100vh!important;
  display:flex!important;
  flex-direction:column!important;
}
html body main.main > .topbar{
  flex:0 0 auto!important;
}
html body main.main > .page{
  width:100%!important;
  flex:1 0 auto!important;
}
html body main.main > .developer-credit{
  flex:0 0 auto!important;
  margin-top:auto!important;
}

/* Public/result: footer remains centered at the bottom on short pages. */
html body.public-page{
  min-height:100vh!important;
}
html body.public-page .public-shell{
  min-height:100vh!important;
  display:flex!important;
  flex-direction:column!important;
}
html body.public-page .public-shell > .public-footer{
  margin-top:auto!important;
}
html body.public-page .public-shell > .developer-credit{
  flex:0 0 auto!important;
  margin-top:10px!important;
}

/* Login: reserve the last row only for the centered credit line. */
html body.admin-login-page{
  min-height:100vh!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  grid-template-rows:minmax(0,1fr) auto!important;
  place-items:stretch!important;
}
html body.admin-login-page > .admin-login-shell{
  align-self:center!important;
  justify-self:center!important;
}
html body.admin-login-page > .developer-credit{
  align-self:end!important;
  justify-self:stretch!important;
  margin:0!important;
}

@media(max-width:600px){
  html body .developer-credit{
    min-height:36px!important;
    padding:7px 8px!important;
    gap:2px 4px!important;
    font-size:9px!important;
  }
}

@media print{
  .developer-credit{display:none!important}
}


/* =========================================================
   V7.14 DEMO LOGIN CREDENTIAL PANEL
   Compact seeded admin credentials for demonstration builds.
   ========================================================= */
html body.admin-login-page .demo-login-box{
  margin:0 0 14px!important;
  border:1px solid #d4e8d7!important;
  background:#f0fdfa!important;
  box-shadow:inset 1px 1px 0 rgba(64,93,82,.18),inset -1px -1px 0 rgba(255,255,255,.95)!important;
  border-radius:3px!important;
  overflow:hidden!important;
  color:#163b35!important;
}
html body.admin-login-page .demo-login-head{
  min-height:30px!important;
  padding:6px 10px!important;
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  background:#e4f0dc!important;
  border-bottom:1px solid #d4e8d7!important;
  color:#0f766e!important;
  font-size:10px!important;
  font-weight:800!important;
  text-transform:uppercase!important;
  letter-spacing:.035em!important;
}
html body.admin-login-page .demo-login-row{
  min-height:30px!important;
  padding:6px 10px!important;
  display:grid!important;
  grid-template-columns:72px minmax(0,1fr)!important;
  align-items:center!important;
  gap:8px!important;
  border-bottom:1px solid #e3eee5!important;
  font-size:10px!important;
  line-height:1.3!important;
}
html body.admin-login-page .demo-login-row:last-child{
  border-bottom:0!important;
}
html body.admin-login-page .demo-login-row > span{
  color:#61746c!important;
  font-weight:650!important;
}
html body.admin-login-page .demo-login-row > strong{
  min-width:0!important;
  color:#0f2747!important;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important;
  font-size:10px!important;
  font-weight:700!important;
  overflow-wrap:anywhere!important;
  user-select:all!important;
}
