@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');
:root{--navy:#112b4f;--deep:#0d2341;--blue:#2868bc;--sky:#ebf4ff;--line:#e2e9f2;--fg:#213750;--muted:#71849b;--bg:#f5f7fb;--shadow:0 10px 35px #1839570e;font-family:'DM Sans',system-ui,sans-serif;color:var(--fg)}
*{box-sizing:border-box}body{margin:0;background:var(--bg)}a{color:inherit}button,input,textarea,select{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1,h2{font-family:'Plus Jakarta Sans',system-ui,sans-serif}h1{font-size:29px;letter-spacing:-.04em}h2{font-size:18px;letter-spacing:-.03em}label{font-size:12px;display:flex;flex-direction:column;gap:7px;font-weight:800;color:#39516c}input,select,textarea{border:1px solid #d7e1ee;border-radius:9px;padding:11px 12px;outline:none;background:white;width:100%;color:#203a59;min-width:0;font-weight:500;font-size:13px}textarea{resize:vertical;line-height:1.6}input:focus,textarea:focus,select:focus{border-color:#2f71c8;box-shadow:0 0 0 3px #cfe1fa}.checkline{align-items:center;flex-direction:row;gap:10px;padding:11px 0}.checkline input{width:16px;height:16px;accent-color:var(--blue)}
.btn-primary{border:0;background:var(--blue);padding:12px 19px;border-radius:9px;font-size:12px;font-weight:800;color:white;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:43px}.btn-primary:hover{background:#18579f}.btn-light{border:1px solid #d7e2ef;background:white;padding:10px 15px;border-radius:9px;text-decoration:none;display:inline-flex;align-items:center;color:#315778;font-weight:800;font-size:12px}.wide{width:100%}.hint{font-size:12px;color:var(--muted);line-height:1.7}.alert{border:1px solid #b1d7c9;background:#eaf8f3;color:#12684d;padding:13px 15px;border-radius:10px;margin-bottom:17px;font-size:13px;font-weight:700}.alert.bad{border-color:#f4c5c5;background:#fff0f0;color:#b53939}
.auth-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#1e527e 0,transparent 36%),linear-gradient(145deg,#102e53,#07182d);padding:40px 16px}.auth-card{width:min(100%,450px);background:#fff;padding:39px;border-radius:20px;box-shadow:0 22px 80px #0003}.install-card{width:min(100%,760px)}.auth-card h1{font-size:27px;margin:9px 0}.auth-card>p{color:#7b8ba2;line-height:1.7;font-size:13px}.auth-logo{width:56px;height:56px;border-radius:14px;background:#214f86;color:white;display:grid;place-items:center;font-size:30px;font-weight:800;margin-bottom:19px}.auth-kicker{font-size:10px;font-weight:800;letter-spacing:.1em;color:#2673ae}.auth-card form{display:grid;gap:16px;margin-top:25px}.auth-card form h2{margin-bottom:0;margin-top:10px}.auth-back{font-size:12px;font-weight:700;display:block;text-decoration:none;margin-bottom:28px;color:#2e6bb7}.auth-footer{text-align:center;margin-top:25px}.auth-card .hint{margin:0}
.admin-shell{display:grid;grid-template-columns:256px minmax(0,1fr);min-height:100vh}.admin-sidebar{background:var(--deep);color:#d0dced;display:flex;flex-direction:column;padding:27px 16px 22px;position:sticky;top:0;height:100vh;overflow-y:auto}.admin-brand{display:flex;align-items:center;gap:12px;padding:1px 9px 27px;text-decoration:none;color:white}.admin-brand-mark{background:#fff;color:var(--navy);width:42px;height:42px;display:grid;place-items:center;border-radius:11px;font-size:27px;font-weight:800}.admin-brand strong{font-size:12px;letter-spacing:.035em;display:block}.admin-brand small{font-size:10px;color:#9fb2ce;margin-top:5px;display:block}.admin-nav-caption{color:#7b96b9;font-size:9px;font-weight:800;letter-spacing:.15em;padding:17px 12px}.admin-nav{display:grid;gap:3px}.admin-nav a{display:flex;align-items:center;gap:12px;text-decoration:none;padding:12px 14px;color:#becfe4;font-size:12px;font-weight:700;border-radius:9px}.admin-nav a span{font-size:18px;min-width:23px;text-align:center}.admin-nav a.active,.admin-nav a:hover{background:#1d466f;color:white}.admin-sidebar-bottom{margin-top:auto;padding:16px 10px 0;display:grid;gap:16px;border-top:1px solid #284563}.admin-sidebar-bottom a,.admin-sidebar-bottom button{border:0;padding:0;text-align:left;text-decoration:none;background:none;color:#b9cce0;font-size:12px;font-weight:700}.admin-sidebar-bottom .view-site{color:#7fcbff}.admin-mobile-head{display:none}.admin-content{min-width:0}.admin-topbar{height:68px;padding:0 38px;border-bottom:1px solid var(--line);background:white;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#8996a8}.admin-topbar b{color:var(--fg)}.admin-user{color:#28557c;font-weight:800}.admin-main{max-width:1240px;padding:35px 39px 60px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:center;gap:25px;margin:0 0 25px}.page-head h1{margin:7px 0}.page-head p{font-size:12px;color:#8493a6;margin:0}.eyebrow-admin{color:#3876b9;font-weight:800;letter-spacing:.1em;font-size:9px}.panel{background:white;border:1px solid #e6edf5;border-radius:16px;padding:28px;margin:0 0 24px;box-shadow:var(--shadow)}.panel h2{margin-bottom:14px}.panel>p{font-size:13px;color:#6b7d90;line-height:1.75}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}.panel-header h2{margin:0 0 6px}.panel-header p{font-size:12px;color:var(--muted);margin:0}.pill{background:#e8f2ff;color:#2265a6;padding:7px 12px;border-radius:22px;font-size:11px;font-weight:800}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin-bottom:24px}.stat-card{padding:24px;border:1px solid var(--line);background:white;border-radius:14px;box-shadow:var(--shadow);display:grid;gap:12px}.stat-card span{font-size:12px;color:#607b96;font-weight:700}.stat-card strong{font-size:37px;color:#133d67;line-height:1}.stat-card small{font-size:10px;color:#9aa8b7}.quick-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.quick-actions a{text-decoration:none;border-radius:8px;padding:12px;background:#eaf2fc;color:#285d94;font-size:12px;font-weight:800}.editor-form{display:grid;gap:18px}.editor-form h2{margin:10px 0 2px;border-bottom:1px solid #e4edf6;padding-bottom:13px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.span-full{grid-column:1/-1}.editor-form .form-grid{margin-bottom:5px}.form-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:10px}.existing-photo img{max-height:140px;max-width:280px;border:1px solid #e4ecf5;border-radius:9px;object-fit:cover}.narrow{max-width:620px}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:12px;min-width:640px}.data-table th{text-align:left;background:#f6f9fc;color:#657c95;padding:12px;border-bottom:1px solid #dfe9f3;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.data-table td{padding:15px 12px;border-bottom:1px solid #e7edf4;vertical-align:middle}.data-table td strong{font-size:12px;line-height:1.6;display:block}.data-table td small{font-size:10px;display:block;color:#758ea7;margin-top:4px}.status{padding:6px 9px;border-radius:6px;font-size:10px;font-weight:800;white-space:nowrap}.status.on{color:#136e50;background:#e8f8ef}.status.off{color:#946629;background:#fff5df}.table-actions{display:flex;align-items:center;gap:12px}.table-actions a{font-weight:800;color:#216bb1;text-decoration:none}.table-actions button{border:0;color:#b54848;font-weight:800;background:none;padding:0}.empty{text-align:center;padding:26px!important;color:#8da0b3}.admin-bottom{text-align:center;padding:18px;color:#91a0b3;font-size:11px}
@media(max-width:1120px){.admin-shell{grid-template-columns:215px minmax(0,1fr)}.admin-main{padding:28px 22px}.stat-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.admin-mobile-head{height:62px;background:#102a4d;color:white;display:flex;justify-content:space-between;align-items:center;padding:0 17px;position:sticky;top:0;z-index:11}.admin-mobile-brand{text-decoration:none;color:white;font-size:12px;font-weight:800}.admin-mobile-head button{background:#24476d;color:white;border:1px solid #486582;border-radius:8px;padding:9px 12px;font-size:12px}.admin-shell{display:block}.admin-sidebar{display:none;position:fixed;z-index:10;top:62px;left:0;bottom:0;height:calc(100dvh - 62px);width:min(85vw,290px);box-shadow:0 15px 45px #081e3e5f}.admin-sidebar.opened{display:flex}.admin-topbar{height:53px;padding:0 17px}.admin-user{max-width:145px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-main{padding:25px 16px 50px}.page-head{align-items:flex-start}.page-head h1{font-size:25px}.page-head>a{display:none}.panel{padding:19px}.form-grid{grid-template-columns:1fr}.stat-grid{gap:11px}.stat-card{padding:18px}.stat-card strong{font-size:29px}.auth-card{padding:30px 22px}}

.admin-pages{display:flex;align-items:center;gap:13px;justify-content:center;padding:20px 0 0;font-size:12px;color:#70869d}.admin-pages a{background:#eaf2fc;padding:9px 13px;border-radius:7px;color:#24598c;text-decoration:none;font-weight:800}

/* Diagnostik instalasi V1.0.1: transparan tanpa membuka kredensial PHP/DB. */
.preflight-box{border:1px solid #d9e6f3;background:#f6faff;border-radius:14px;padding:20px 22px;margin-top:18px}
.preflight-box h2{font-size:16px;margin-bottom:8px}.preflight-box p{font-size:12px;line-height:1.7;color:#55718f;margin-bottom:12px}
.preflight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.preflight-item{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #e1ebf5;background:#fff;border-radius:8px;padding:9px 11px;font-size:12px}
.preflight-item code{font-size:11px;overflow-wrap:anywhere}.preflight-state{font-size:11px;font-weight:800;white-space:nowrap}
.preflight-state.ready{color:#167452}.preflight-state.missing{color:#b53e3e}
.preflight-box .preflight-help{background:#fff0ef;border-left:3px solid #d95c52;padding:10px 12px;color:#853d38;margin:13px 0 0}
.preflight-box .preflight-success{background:#e6f7ef;border-left:3px solid #37a579;padding:10px 12px;color:#176044;margin:13px 0 0}
.auth-card .btn-primary:disabled{background:#9aadc2;cursor:not-allowed}
@media(max-width:620px){.preflight-box{padding:16px}.preflight-grid{grid-template-columns:1fr}}

/* V1.0.6 foto resmi sekolah */
.admin-photo-field{margin-top:23px;padding-top:12px;border-top:1px solid #e5ecf4}
.admin-photo-field .existing-photo img{width:100%;max-width:390px;max-height:220px;object-fit:contain;object-position:center;background:#f2f6fb;border-radius:12px}
.admin-photo-options{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:12px}
.admin-photo-options .checkline{width:auto}
