:root{--bg:#050b11;--panel:#0b1824;--panel2:#0e2231;--line:#294658;--text:#f5f8fb;--muted:#94a7b5;--yellow:#ffc400;--red:#ff5265;--green:#3fe47b;--blue:#5cc6ff;--shadow:0 18px 55px rgba(0,0,0,.3)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at 10% 0,#173244 0,#07121b 34%,#03070b 100%);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif}body{overflow-x:hidden}[hidden]{display:none!important}button,input,select{font:inherit}.app{max-width:1500px;margin:auto;padding:18px}.topbar{height:74px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #1e3342;margin-bottom:20px;gap:18px}.brand{display:flex;align-items:center;gap:13px;min-width:0}.brand img{width:70px;height:70px;object-fit:contain}.brand b{display:block;font-size:19px;letter-spacing:1.4px}.brand span{display:block;color:var(--yellow);font-size:9px;font-weight:900;letter-spacing:1.8px;margin-top:4px}.actions{display:flex;gap:8px;align-items:center}.actions>a{text-decoration:none}.btn{border-radius:11px;padding:11px 15px;font-weight:950;letter-spacing:.3px;cursor:pointer;border:1px solid #385468}.btn:disabled{opacity:.55;cursor:wait}.primary{background:linear-gradient(135deg,#ffd42c,#ffb900);border:0;color:#071019;box-shadow:0 10px 25px rgba(255,196,0,.14)}.ghost{background:#102131;color:#f3f7fa}.danger{background:#38131b;color:#ff8998;border-color:#7a3340}.wide{width:100%}.eyebrow{font-size:10px;font-weight:1000;letter-spacing:2.7px;color:var(--yellow)}.login{min-height:calc(100vh - 120px);display:grid;place-items:center}.login-card{width:min(470px,100%);background:linear-gradient(145deg,#0d2130,#07121c);border:1px solid #2b4659;border-radius:24px;padding:34px;box-shadow:var(--shadow)}.login-logo{width:120px;height:96px;object-fit:contain;display:block;margin:0 auto 12px}.login-card h1{font-size:34px;margin:8px 0}.login-card p{color:var(--muted);line-height:1.55}.login-card label,.form-side label{display:grid;gap:7px;color:#b8c7d1;font-size:12px;font-weight:900;margin:12px 0}.login-card input,.form-side input,.filters input,.filters select{width:100%;background:#06111a;color:#fff;border:1px solid #345166;border-radius:10px;padding:13px;outline:none}.login-card input:focus,.form-side input:focus,.filters input:focus{border-color:var(--yellow);box-shadow:0 0 0 3px rgba(255,196,0,.08)}.message{min-height:20px;margin-top:10px;font-size:13px}.message.bad{color:#ff8392}.message.good{color:#79f2a4}.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin:18px 0}.hero h1{font-size:42px;line-height:1;margin:8px 0}.hero p{color:var(--muted);margin:0}.notice{padding:12px 15px;border-radius:11px;border:1px solid #2f5063;background:#0e2637;margin-bottom:14px}.notice.good{color:#83f3a8;border-color:#2d6d49}.notice.bad{color:#ff8998;border-color:#723340}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:16px}.stat,.panel{background:linear-gradient(145deg,rgba(13,31,44,.98),rgba(6,15,23,.98));border:1px solid #294456;border-radius:18px;box-shadow:var(--shadow)}.stat{padding:19px}.stat span{display:block;color:#91a3af;font-size:10px;font-weight:1000;letter-spacing:1.6px}.stat b{display:block;color:var(--yellow);font-size:36px;margin:5px 0}.stat small{color:#6f8492}.tabs{display:flex;gap:8px;margin:4px 0 12px}.tab{border:1px solid #294759;background:#0b1c29;color:#9fb2bf;border-radius:10px;padding:10px 15px;font-weight:900;cursor:pointer}.tab.active{background:#ffc400;color:#071019;border-color:#ffc400}.panel{padding:20px;margin-bottom:15px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:16px}.panel-head h2{margin:5px 0 0;font-size:23px}.panel-head p{margin:6px 0 0;color:var(--muted)}.filters{display:flex;gap:9px;margin-bottom:12px}.filters input{max-width:500px}.filters select{max-width:180px}.result-wrap{overflow:auto;border:1px solid #203b4c;border-radius:12px}.result-wrap table{width:100%;border-collapse:collapse;min-width:850px}.result-wrap th,.result-wrap td{padding:13px 12px;border-bottom:1px solid #1d3442;text-align:left}.result-wrap th{color:#758b99;font-size:10px;letter-spacing:1.6px}.score{font-weight:1000}.pass{color:var(--green);font-weight:1000}.fail{color:#ff7181;font-weight:1000}.small{background:#142a3a;color:#edf4f8;border:1px solid #3b576a;border-radius:8px;padding:7px 9px;font-weight:900;cursor:pointer;margin-right:6px}.danger-outline{color:#ff8795;border-color:#6e3440}.empty{color:#718592;padding:25px}.video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.video-card{border:1px solid #294455;background:#081722;border-radius:14px;padding:15px}.vc-top{display:flex;justify-content:space-between;gap:8px}.clip{background:#182d3b;color:var(--yellow);border:1px solid #3a5668;border-radius:8px;padding:5px 8px;font-size:10px;font-weight:1000}.status{font-size:10px;font-weight:1000}.status.on{color:var(--green)}.status.off{color:#ff7381}.video-card h3{font-size:16px;margin:11px 0 6px}.video-card p{color:#8498a5;font-size:12px;min-height:34px;word-break:break-word}.tags{display:flex;gap:7px;margin:10px 0}.tags span{background:#122737;color:#aac0cc;padding:5px 8px;border-radius:7px;font-size:10px;font-weight:900}.vc-actions{display:flex;gap:7px}.editor-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);gap:18px}.workflow{display:flex;align-items:center;max-width:680px;margin:0 auto 20px}.step{display:flex;align-items:center;gap:8px;color:#718692;font-size:11px;font-weight:900;white-space:nowrap}.step b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#142b3a;border:1px solid #355365}.step.active{color:#fff}.step.active b{background:var(--yellow);color:#071019;border-color:var(--yellow)}.line{height:1px;background:#294556;flex:1;margin:0 10px}.file-picker{display:flex;align-items:center;justify-content:space-between;gap:15px;background:#091722;border:1px solid #294353;border-radius:13px;padding:12px 14px;margin-bottom:12px}.file-picker strong{display:block}.file-picker small{display:block;color:#7f94a1;margin-top:3px;max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-btn{position:relative;overflow:hidden}.file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}.video-shell{position:relative;background:#020609;border:1px solid #2e4858;border-radius:15px;overflow:hidden;display:grid;place-items:center;min-height:330px}.video-shell video{width:100%;height:min(56vh,560px);object-fit:contain;background:#000}.video-shell #previewEmpty{position:absolute;color:#6e8390;pointer-events:none}.clock{display:flex;justify-content:space-between;padding:10px 2px;color:#95a9b6;font-size:12px}.clock b{color:#fff}.track{height:30px;border-radius:999px;background:#263b48;border:1px solid #3c5868;position:relative;cursor:pointer}.fill{position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,#385466,#ffc400);border-radius:999px;opacity:.45}.marker{position:absolute;top:50%;transform:translate(-50%,-50%);width:27px;height:27px;border-radius:50%;border:2px solid #071019;font-weight:1000;cursor:pointer}.m1{background:#ffc400}.m2{background:#ff5265;color:#fff}.track-help,.small-note{color:#748a98;font-size:11px;line-height:1.45;margin:8px 0 12px}.mark-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.haz{display:grid;grid-template-columns:40px 1fr;grid-template-rows:auto auto;text-align:left;align-items:center;column-gap:10px;border:1px solid #7b6614;background:#152938;color:#fff;border-radius:11px;padding:10px 12px;font-weight:950;cursor:pointer}.haz>b{grid-row:1/3;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--yellow);color:#071019}.haz span{font-size:12px}.haz small{color:#89a0ad;font-weight:800;font-size:10px}.haz.red{border-color:#69303a}.haz.red>b{background:var(--red);color:#fff}.auto-card{display:grid;grid-template-columns:1fr 1.4fr;gap:9px;background:#091722;border:1px solid #294353;border-radius:13px;padding:12px;margin-bottom:5px}.auto-card span{display:block;color:#718692;font-size:9px;font-weight:1000;letter-spacing:1.3px}.auto-card b{display:block;color:var(--yellow);font-size:14px;margin-top:4px;word-break:break-all}.hazard{background:#091722;border:1px solid #294353;border-radius:13px;padding:14px;margin-top:12px}.h-title{display:flex;align-items:center;gap:10px;margin-bottom:5px}.h-title>b{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:#ffc400;color:#071019}.hazard:nth-of-type(2) .h-title>b{background:#ff5265;color:#fff}.h-title small{display:block;color:#728794;margin-top:2px}.form-side input[readonly]{color:#c8d5dc;background:#0a1720}.active{display:flex!important;align-items:flex-start!important;gap:10px!important;background:#091722;border:1px solid #294353;border-radius:12px;padding:13px!important}.active input{width:18px!important;accent-color:var(--yellow);margin-top:2px}.active small{display:block;color:#718692;margin-top:3px}.save-all{width:100%;font-size:15px;padding:15px;margin-top:14px}.delete-clip{margin-top:9px}.modal{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.78);display:grid;place-items:center;padding:18px}.modal-card{position:relative;width:min(760px,100%);max-height:88vh;overflow:auto;background:#0b1b27;border:1px solid #385366;border-radius:18px;padding:24px}.modal-close{position:absolute;right:14px;top:14px;background:#132838;color:#fff;border:1px solid #3b5668;border-radius:8px;padding:8px;cursor:pointer}.detail-meta{color:#a6b7c2;padding:10px 0;border-bottom:1px solid #263d4b}.detail-clip{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #223844}.detail-clip b{color:var(--yellow);text-align:right}
@media(max-width:1050px){.stats{grid-template-columns:repeat(2,1fr)}.video-grid{grid-template-columns:repeat(2,1fr)}.editor-grid{grid-template-columns:1fr}}@media(max-width:700px){.app{padding:10px}.topbar{height:auto;padding:7px 0;align-items:flex-start}.brand img{width:52px;height:52px}.brand b{font-size:13px;letter-spacing:.8px}.brand span{font-size:7px;letter-spacing:1px}.actions .btn{padding:8px 9px;font-size:10px}.hero{align-items:flex-start;flex-direction:column}.hero h1{font-size:29px}.stats{grid-template-columns:1fr 1fr}.stat{padding:14px}.stat b{font-size:28px}.panel{padding:14px}.panel-head{flex-direction:column}.filters{display:grid;grid-template-columns:1fr}.filters select{max-width:none}.video-grid{grid-template-columns:1fr}.editor-grid{grid-template-columns:1fr}.workflow{overflow:auto}.file-picker{align-items:flex-start;flex-direction:column}.file-btn{width:100%;text-align:center}.mark-grid{grid-template-columns:1fr}.auto-card{grid-template-columns:1fr}.video-shell{min-height:220px}.video-shell video{height:42vh}.login-card{padding:24px}.login-logo{width:100px;height:82px}.brand{gap:8px}}@media(max-height:760px) and (min-width:701px){.app{padding:10px}.topbar{height:60px;margin-bottom:12px}.hero{margin:10px 0 14px}.hero h1{font-size:34px}.stat{padding:13px}.stat b{font-size:30px}.panel{padding:15px}}
.certificate-btn{border-color:#5d6d22;color:#ffe16a;background:#1a2b22}.certificate-btn:hover{border-color:#ffc400}

/* V16 mobile admin hardening: cards instead of wide result table */
.mobile-results{display:none}
@media(max-width:700px){
  html,body{overflow-x:hidden}.app{padding:8px;max-width:none}.topbar{height:auto;min-height:56px;gap:7px;align-items:center;margin-bottom:10px}.brand{min-width:0;flex:1;gap:7px}.brand img{width:46px;height:46px;flex:0 0 46px}.brand b{font-size:12px;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand span{font-size:6.5px;letter-spacing:.7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.actions{flex:0 0 auto}.actions .btn{padding:7px 8px;font-size:9px;white-space:nowrap}
  .hero{margin:8px 0 10px;gap:8px}.hero h1{font-size:25px;line-height:1.05;margin:5px 0}.hero p{font-size:11px;line-height:1.35}.hero>.btn{align-self:stretch}
  .stats{gap:6px;margin-bottom:9px}.stat{padding:10px;border-radius:12px}.stat span{font-size:8px}.stat b{font-size:24px;margin:3px 0}.stat small{font-size:9px}
  .tabs{gap:5px;margin-bottom:8px}.tab{padding:9px 10px;font-size:10px;flex:1}
  .panel{padding:11px;border-radius:14px;margin-bottom:9px}.panel-head{gap:8px;margin-bottom:10px}.panel-head h2{font-size:19px}.panel-head p{font-size:10px;line-height:1.35}.panel-head .btn{width:100%}
  .filters{gap:6px;margin-bottom:8px}.filters input,.filters select{max-width:none;padding:10px;font-size:12px}
  .result-wrap{display:none}.mobile-results{display:grid;gap:7px}.result-card{background:#081722;border:1px solid #294455;border-radius:12px;padding:11px}.rc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.rc-head small,.rc-grid small{display:block;color:#708694;font-size:7px;font-weight:1000;letter-spacing:1px}.rc-head b{display:block;font-size:10px;margin-top:2px}.result-card h3{font-size:15px;margin:7px 0}.rc-head>span{font-size:9px}.rc-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.rc-grid>div{background:#0d2230;border-radius:8px;padding:7px}.rc-grid b{display:block;font-size:11px;margin-top:2px;word-break:break-word}.rc-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:8px}.rc-actions .small{margin:0;padding:8px 4px;font-size:9px}.empty{padding:18px 8px;text-align:center;font-size:11px}
  .video-grid{grid-template-columns:1fr;gap:7px}.video-card{padding:11px}.video-card h3{font-size:14px;margin:8px 0 4px}.video-card p{font-size:10px;min-height:0;margin:4px 0}.tags{margin:7px 0}.vc-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px}.vc-actions .small{margin:0;padding:8px;font-size:9px}
  .workflow{margin-bottom:9px;overflow:hidden}.step{font-size:8px;gap:4px}.step b{width:25px;height:25px}.line{margin:0 5px}
  .editor-grid{grid-template-columns:1fr;gap:9px}.file-picker{padding:9px;gap:8px}.file-picker small{max-width:100%;font-size:9px}.file-btn{padding:9px;font-size:10px}.video-shell{min-height:190px}.video-shell video{height:32vh;min-height:170px}.clock{padding:7px 2px;font-size:10px}.track{height:26px}.track-help,.small-note{font-size:9px;margin:6px 0 8px}.mark-grid{grid-template-columns:1fr 1fr;gap:5px}.haz{grid-template-columns:30px 1fr;padding:8px;column-gap:7px}.haz>b{width:27px;height:27px;font-size:10px}.haz span{font-size:9px}.haz small{font-size:8px}.auto-card{padding:9px}.form-side label{font-size:10px;margin:8px 0}.form-side input{padding:10px;font-size:12px}.hazard{padding:10px;margin-top:8px}.h-title>b{width:28px;height:28px}.save-all{font-size:12px;padding:12px;margin-top:9px}.delete-clip{margin-top:6px}.modal{padding:8px}.modal-card{max-height:92vh;padding:16px;border-radius:14px}.detail-clip{padding:8px 0;font-size:10px}
  .login{min-height:calc(100dvh - 70px)}.login-card{padding:20px;border-radius:17px}.login-card h1{font-size:25px}.login-card p{font-size:11px}.login-card label{font-size:10px}.login-card input{padding:10px;font-size:12px}.login-logo{width:85px;height:70px}
}
@media(max-width:380px){.stat b{font-size:21px}.stat small{font-size:8px}.panel-head h2{font-size:17px}.result-card h3{font-size:14px}.rc-actions .small{font-size:8px}.actions .btn{padding:6px 7px;font-size:8px}}

/* V17 ADMIN MOBILE UI — touch-first cards and readable controls */
@media(max-width:700px){
  body{font-size:14px}
  .app{padding:9px;max-width:100%}
  .topbar{padding:7px 0 9px;min-height:58px;margin-bottom:11px;align-items:center}
  .brand{gap:8px;min-width:0}.brand img{width:47px;height:47px;flex:0 0 47px}
  .brand b{font-size:12px;letter-spacing:.7px}.brand span{font-size:6.5px;letter-spacing:1px}
  .actions{gap:5px}.actions .btn{padding:8px 9px;font-size:9px;border-radius:9px}
  .hero{margin:8px 0 11px;padding:2px 1px;gap:9px}.hero h1{font-size:25px;margin:5px 0}.hero p{font-size:11px}
  .hero>.btn{width:auto;align-self:stretch;min-width:82px}
  .stats{gap:7px;margin:0 0 10px}.stat{padding:11px 9px;border-radius:13px}.stat span{font-size:8px}.stat b{font-size:25px;margin:3px 0}.stat small{font-size:8px;line-height:1.2}
  .tabs{gap:6px;margin-bottom:9px}.tab{padding:10px 8px;border-radius:10px;font-size:10px}
  .panel{padding:12px;border-radius:15px;margin-bottom:10px}.panel-head{gap:9px;margin-bottom:10px}.panel-head h2{font-size:20px}.panel-head p{font-size:10px;line-height:1.4}
  .panel-head .btn{width:100%;padding:10px;font-size:10px}
  .filters{gap:7px;margin-bottom:9px}.filters input,.filters select{padding:11px;font-size:13px;border-radius:10px}
  .mobile-results{gap:8px}.result-card{padding:12px;border-radius:13px;box-shadow:0 8px 22px rgba(0,0,0,.12)}
  .rc-head small,.rc-grid small{font-size:7px}.rc-head b{font-size:11px}.result-card h3{font-size:16px;margin:8px 0}
  .rc-grid{gap:6px}.rc-grid>div{padding:8px;border-radius:9px}.rc-grid b{font-size:12px}.rc-actions{gap:6px;margin-top:9px}.rc-actions .small{padding:9px 4px;font-size:9px;border-radius:9px}
  .video-grid{gap:8px}.video-card{padding:12px;border-radius:13px}.video-card h3{font-size:15px}.vc-actions{gap:6px}.vc-actions .small{padding:9px;font-size:9px}
  .workflow{margin-bottom:10px}.step{font-size:8px}.step b{width:27px;height:27px}.line{margin:0 4px}
  .file-picker{padding:10px;border-radius:11px}.file-btn{padding:10px;font-size:10px}
  .video-shell{min-height:200px;border-radius:12px}.video-shell video{height:34vh;min-height:180px}
  .clock{font-size:10px}.track{height:28px}.track-help,.small-note{font-size:9px;line-height:1.4}
  .mark-grid{grid-template-columns:1fr 1fr;gap:6px}.haz{padding:9px;border-radius:10px}.haz span{font-size:9px}.haz small{font-size:8px}
  .hazard{padding:11px;border-radius:11px}.form-side input{padding:11px;font-size:13px}.auto-card{padding:10px;border-radius:11px}.auto-card b{font-size:12px}
  .save-all{padding:13px;font-size:12px;border-radius:11px}.delete-clip{padding:11px;font-size:11px}
  .modal{padding:8px}.modal-card{width:100%;max-height:90vh;padding:17px;border-radius:15px}.modal-close{padding:8px}
}
@media(max-width:380px){
  .brand img{width:43px;height:43px;flex-basis:43px}.brand b{font-size:11px}.brand span{font-size:6px}.actions .btn{padding:7px 7px;font-size:8px}
  .hero h1{font-size:22px}.stat{padding:9px 7px}.stat b{font-size:22px}.tab{font-size:9px;padding:9px 6px}
  .panel{padding:10px}.panel-head h2{font-size:18px}.result-card{padding:10px}.result-card h3{font-size:14px}.rc-actions .small{font-size:8px;padding:8px 3px}
}

/* V21 candidate access-code settings */
.access-settings{margin:0 0 14px;padding:18px}.access-settings-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}.access-settings-row label{font-size:12px;font-weight:900;color:#c8d1d8}.access-settings-row input{display:block;width:100%;margin-top:7px;background:#07111a;border:1px solid #385063;color:#fff;border-radius:10px;padding:12px 13px;outline:none}.access-settings-row input:focus{border-color:var(--yellow);box-shadow:0 0 0 2px #ffc40022}.access-settings-row .btn{height:44px;white-space:nowrap}.access-settings .panel-head{margin-bottom:10px}.access-settings .panel-head h2{margin:4px 0}.access-settings .panel-head p{margin:0;color:#8498a5;font-size:11px}.access-settings .message{margin-top:8px}@media(max-width:700px){.access-settings{padding:13px}.access-settings-row{grid-template-columns:1fr}.access-settings-row .btn{width:100%}}

/* HPT admin video-library thumbnails: quick visual identification without opening the editor */
.vc-preview{position:relative;width:132px;height:74px;margin:0 0 10px;border:1px solid #36566a;border-radius:10px;overflow:hidden;background:#061018;cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.18)}
.vc-thumb,.vc-thumb-fallback{display:block;width:100%;height:100%;object-fit:cover;background:#061018}
.vc-play{position:absolute;left:8px;bottom:7px;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:rgba(0,0,0,.68);color:#ffd21a;font-size:11px;pointer-events:none}
.vc-preview:hover{border-color:var(--yellow);transform:translateY(-1px)}
@media(max-width:700px){.vc-preview{width:116px;height:65px;margin-bottom:8px;border-radius:9px}.vc-play{width:22px;height:22px;left:7px;bottom:6px;font-size:10px}}

/* v22 report action */
.report-btn{border-color:#3b586d;color:#dce7ee;background:#0d1d29}.report-btn:hover{border-color:var(--yellow);color:#fff}

/* Multi-school registry */
.schoolManagerGrid{display:grid;grid-template-columns:minmax(310px,.78fr) minmax(0,1.22fr);gap:17px;align-items:start}
.schoolForm,.schoolRegistry{min-width:0;border:1px solid #294455;border-radius:15px;background:rgba(4,14,22,.72);padding:18px}
.schoolFormHead,.registryHeading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}
.schoolFormHead h3,.registryHeading h3{font-size:20px;margin:5px 0 0}.schoolFormBadge{font-size:9px;font-weight:1000;letter-spacing:1.2px;padding:7px 9px;border:1px solid #38566a;border-radius:9px;color:#b9cbd5}
.schoolForm label{display:block;margin:12px 0;color:#c5d3dc;font-size:11px;font-weight:900}.schoolForm input:not([type=checkbox]):not([type=color]):not([type=file]){display:block;width:100%;margin-top:7px;background:#06111a;color:#fff;border:1px solid #345166;border-radius:10px;padding:12px;outline:none}.schoolForm input:focus{border-color:var(--yellow);box-shadow:0 0 0 3px #ffc40014}.schoolFieldsTwo{display:grid;grid-template-columns:1fr 1fr;gap:10px}.schoolFieldsTwo label{min-width:0}.schoolForm input[type=color]{display:block;width:100%;height:38px;padding:4px;margin-top:7px;border:1px solid #345166;border-radius:9px;background:#06111a;cursor:pointer}.schoolForm input[type=file]{display:block;width:100%;margin-top:8px;color:#a9bbc7;font-size:11px}.formHint{display:block;color:#718a99;font-weight:700;font-size:9px;margin-top:4px}.schoolActiveField{display:flex!important;gap:10px;align-items:flex-start;border:1px solid #294657;background:#0a1b27;border-radius:10px;padding:12px;margin-top:14px!important}.schoolActiveField input{margin-top:2px;accent-color:var(--yellow)}.schoolActiveField b,.schoolActiveField small{display:block}.schoolActiveField small{color:#7f94a1;font-size:10px;line-height:1.45;margin-top:3px}.schoolFormActions{display:flex;gap:8px;flex-wrap:wrap}.schoolFormActions .btn{flex:1}.schoolLogoPreviewWrap{display:flex;align-items:center;gap:12px;border:1px solid #294455;border-radius:10px;padding:9px;margin-top:8px}.schoolLogoPreviewWrap img{width:56px;height:48px;object-fit:contain;background:#07131d;border-radius:8px}.schoolLogoPreviewWrap span{font-size:10px;color:#a5b6c0;overflow-wrap:anywhere}.registryHeading p{margin:5px 0 0;color:#7f94a1;font-size:11px}.registryHeading> b{min-width:38px;height:38px;display:grid;place-items:center;background:#142a39;color:var(--yellow);border:1px solid #345166;border-radius:11px;font-size:17px}.schoolList{display:grid;gap:10px}.schoolList .empty{border:1px dashed #2c4758;border-radius:10px}.schoolItem{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border:1px solid #294455;border-radius:12px;background:#071722}.schoolItemLogo{width:48px;height:48px;display:grid;place-items:center;border:1px solid #2b4658;background:#0a1a27;border-radius:10px;overflow:hidden;color:var(--yellow);font-size:14px;font-weight:1000}.schoolItemLogo img{width:100%;height:100%;object-fit:contain}.schoolItemInfo{min-width:0}.schoolItemInfo h4{font-size:14px;margin:0 0 4px;overflow-wrap:anywhere}.schoolItemInfo p{font-size:10px;color:#8aa0ad;margin:3px 0;overflow-wrap:anywhere}.schoolCodeChip{display:inline-block;max-width:100%;padding:4px 7px;border:1px solid #3a5464;border-radius:7px;color:#f1f4f6;background:#102432;font-size:10px;font-weight:900;letter-spacing:.7px;overflow-wrap:anywhere}.schoolStatus{display:inline-block;margin-left:5px;font-size:8px;font-weight:1000;letter-spacing:.8px}.schoolStatus.on{color:#6fe69b}.schoolStatus.off{color:#ff7f91}.schoolItemActions{display:flex;flex-direction:column;gap:6px}.schoolItemActions .small{margin:0;white-space:nowrap}.schoolItemActions .danger-outline{border-color:#71414a}.schoolMsgError{color:#ff8395}.schoolMsgGood{color:#7cf2a4}
@media(max-width:950px){.schoolManagerGrid{grid-template-columns:1fr}.schoolRegistry{min-width:0}}
@media(max-width:560px){.schoolFieldsTwo{grid-template-columns:1fr}.schoolItem{grid-template-columns:40px minmax(0,1fr);gap:9px}.schoolItemLogo{width:40px;height:40px}.schoolItemActions{grid-column:1/-1;flex-direction:row;flex-wrap:wrap}.schoolItemActions .small{flex:1}.schoolForm,.schoolRegistry{padding:12px}.panel-head{flex-wrap:wrap}}

/* V24 — readable mobile administration layouts; no data or workflow changes. */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
button, input, select, textarea { touch-action: manipulation; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--yellow); outline-offset: 2px;
}
@media (max-width: 700px) {
  .topbar { gap: 10px; align-items: center !important; flex-wrap: wrap; }
  .brand { min-width: 0; flex: 1 1 220px; }
  .brand b { display: block; font-size: 12px !important; line-height: 1.3; overflow-wrap: anywhere; }
  .brand span { display: block; font-size: 9px !important; line-height: 1.35; letter-spacing: .45px !important; }
  .actions { display: flex; flex-wrap: wrap; justify-content: flex-end; }
  .actions .btn { min-height: 38px; font-size: 11px !important; }
  .hero h1 { font-size: clamp(24px, 6vw, 32px) !important; line-height: 1.15; }
  .hero p { font-size: 13px !important; line-height: 1.45; }
  .stat span { font-size: 9px !important; line-height: 1.35; letter-spacing: .4px; }
  .stat small { font-size: 10px !important; line-height: 1.35; }
  .tab { flex: 1 1 auto; min-width: 0; line-height: 1.3; }
  .panel-head p { font-size: 12px !important; line-height: 1.5; }
  .panel-head h2 { font-size: 21px !important; line-height: 1.2; }
  .panel-head .btn { min-height: 42px; font-size: 11px !important; }
  .rc-head small, .rc-grid small { font-size: 9px !important; line-height: 1.35; }
  .rc-head b, .rc-grid b { font-size: 12px !important; }
  .rc-actions .small, .vc-actions .small { min-height: 38px; font-size: 10px !important; line-height: 1.3; }
  .video-card h3 { font-size: 16px !important; line-height: 1.35; overflow-wrap: anywhere; }
  .workflow { flex-wrap: nowrap; }
  .step { flex: 0 0 auto; font-size: 10px !important; }
  .step span { white-space: normal; }
  .schoolForm label, .form-side label { font-size: 12px !important; line-height: 1.4; }
  .formHint { font-size: 10px !important; }
  .schoolForm input:not([type=checkbox]):not([type=color]):not([type=file]), .form-side input { min-height: 44px; font-size: 16px !important; }
  .schoolActiveField b { font-size: 12px; line-height: 1.4; }
  .schoolActiveField small { font-size: 11px !important; line-height: 1.45; }
  .schoolItemInfo p { font-size: 11px !important; line-height: 1.4; }
  .schoolCodeChip { font-size: 11px !important; overflow-wrap: anywhere; }
  .schoolStatus { font-size: 9px !important; }
  .registryHeading h3 { font-size: 18px !important; line-height: 1.25; }
  .registryHeading p { font-size: 12px !important; line-height: 1.45; }
  .form-side .small-note, .track-help { font-size: 11px !important; line-height: 1.5; }
  .haz span { font-size: 10px !important; }
  .haz small { font-size: 10px !important; }
  .modal-card { overflow-y: auto; -webkit-overflow-scrolling: touch; }
}
@media (max-width: 420px) {
  .app { padding: 8px !important; }
  .brand img { width: 40px !important; height: 40px !important; flex-basis: 40px; }
  .brand b { font-size: 10.5px !important; }
  .brand span { font-size: 8px !important; }
  .actions { width: 100%; justify-content: stretch; }
  .actions .btn { flex: 1 1 0; text-align: center; }
  .stats { gap: 6px !important; }
  .stat { min-width: 0; padding: 10px 8px !important; }
  .stat span { font-size: 8px !important; }
  .stat b { font-size: 24px !important; }
  .tabs { display: grid !important; grid-template-columns: repeat(3, minmax(0,1fr)); }
  .tab { padding: 10px 4px !important; font-size: 9px !important; overflow-wrap: anywhere; }
  .panel-head .btn { width: 100%; white-space: normal; }
  .schoolItem { grid-template-columns: 36px minmax(0,1fr) !important; }
  .schoolItemLogo { width: 36px !important; height: 36px !important; }
  .schoolItemActions { gap: 6px; }
  .schoolItemActions .small { min-width: 0; white-space: normal; font-size: 10px !important; }
  .access-settings-row input { min-height: 44px; font-size: 16px; }
}
