/* SePadan: three public screens, administrative tools only after server login. */
.public-mode .admin-only{display:none!important;}
.system-notice{display:none;}
.form-error{color:#b52843;font-size:13px;}
.topbar{padding:22px 0;}
.module-head{background:white;border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:18px;gap:14px;flex-wrap:wrap;}
.schedule-grid{grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:12px;}
.schedule-cell{min-height:148px;border-radius:14px;background:#fff;border:1px solid #dbe7e4;border-top:3px solid #119480;}
.schedule-cell.free{border-top-color:#d7e1e8;background:#fbfcfd;}
.schedule-cell .period{letter-spacing:0;font-size:13px;white-space:nowrap;}
.schedule-cell strong{font-size:15px;line-height:1.25;overflow-wrap:anywhere;}
.schedule-cell span{font-size:13px;line-height:1.3;overflow-wrap:anywhere;}
.schedule-grid>.empty-state{grid-column:1/-1;background:white;min-height:230px;border:1px dashed #c8d7de;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:30px;}
.filters{background:white;padding:18px;border:1px solid var(--line);border-radius:13px;margin-bottom:18px;}
.public-mode .summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
.public-mode .metric.accent{display:none;}
.relief-date{font-size:12px;min-width:165px;}

#builderRoot .navlist{display:none;}
#builderRoot .side{display:none;}
.builder-section-picker{display:block;max-width:420px;}
#builderRoot .build-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
.builder-actions{padding:14px;border:1px solid var(--line);background:white;border-radius:13px;flex-wrap:wrap;}
.builder-actions>div{gap:7px;}
.builder-actions p{width:100%;color:#6a7a88;}
@media(max-width:760px){
 main{padding:0 16px 24px;}
 .system-notice{font-size:11px;line-height:1.5;}
 h1{font-size:24px;}
 #loginButton{font-size:12px;padding:10px 12px;width:auto;overflow:visible;}
 #loginButton::first-letter{margin-right:0;}
 .topbar{gap:8px;flex-wrap:wrap;}
 .schedule-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
 .filters.two{grid-template-columns:1fr 1fr;}
 .filters input,.filters select{width:100%;}
 .section-head{align-items:flex-start;gap:12px;flex-wrap:wrap;}
 .module-head{padding:18px;}
 .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
 .public-mode .summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
 .metric{padding:13px;min-height:100px;}
 .metric span{font-size:11px;}
 #builderRoot .build-grid{grid-template-columns:1fr;}
 #builderRoot .build-step{padding:18px;}
 .builder-section-picker{max-width:none;}
 .builder-actions .button{flex:1 0 44%;}
}
@media print{.system-notice,#loginButton,#logoutButton,.builder-section-picker{display:none!important;}}

/* JARI: peranan relief hanya melihat ketiadaan dan relief (server tetap menolak tindakan admin). */
.role-relief [data-view="guru"],.role-relief [data-view="import"],.role-relief [data-view="tetapan"],
.role-relief [data-schedule-mode="generator"],.role-relief .admin-role-only{display:none!important;}

/* Log masuk: Google (jika ada) dan kod e-mel. */
#googleButton{display:flex;justify-content:center;min-height:44px;}
.login-or{text-align:center;color:var(--muted,#667);margin:.6rem 0;font-size:.9rem;}
#otpLogin{display:grid;gap:.6rem;}
#loginCodeHint:empty{display:none;}

/* Menu ahli sekolah. */
.member-list{list-style:none;margin:1rem 0;padding:0;display:grid;gap:.5rem;}
.member-list li{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;align-items:center;padding:.6rem .75rem;border:1px solid var(--line,#dde3e1);border-radius:10px;}
.member-list li>div:first-child{display:grid;min-width:0;}
.member-list strong{overflow-wrap:anywhere;}
.member-list small{color:var(--muted,#667);}
.member-actions{display:flex;flex-wrap:wrap;gap:.35rem;}
.member-actions .button{padding:.35rem .6rem;font-size:.85rem;}
.member-form{display:grid;gap:.6rem;}

/* Halaman utama jari.mabx.my (tiada sekolah dipilih). */
.landing-page{min-height:100vh;display:grid;justify-items:center;align-content:start;padding-top:18vh!important;background:#f4f7f6;margin:0;padding:16px;box-sizing:border-box;}
.landing{max-width:420px;width:100%;text-align:center;font-family:inherit;}
.landing h1{font-size:3rem;letter-spacing:.08em;color:#0b6b5b;margin:0 0 .25rem;}
.landing-form{display:flex;gap:.5rem;margin-top:1rem;}
.landing-form input{flex:1;min-width:0;text-transform:uppercase;padding:.7rem;font-size:1rem;border:1px solid #ccd6d3;border-radius:10px;}
.landing-error{min-height:1.4em;margin:.75rem 0 0;}
