:root{--bg:#f5f7fb;--card:#fff;--text:#172033;--muted:#718096;--line:#e6eaf0;--primary:#315bea;--primary2:#5b45d8;--success:#159957;--warning:#d98200;--danger:#d9363e;--shadow:0 10px 35px rgba(15,23,42,.07)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.55 Inter,system-ui,-apple-system,"Segoe UI",sans-serif}.app-shell{display:flex;min-height:100vh}.sidebar{width:250px;background:#111827;color:#dbe4f0;position:fixed;inset:0 auto 0 0;z-index:20;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;padding:22px 18px;border-bottom:1px solid rgba(255,255,255,.08)}.brand b{display:block;color:#fff;font-size:16px}.brand small{display:block;color:#94a3b8;margin-top:2px}.brand-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;font-weight:900;font-size:22px;box-shadow:0 10px 22px rgba(49,91,234,.3)}.brand-icon.big{width:58px;height:58px;font-size:28px}.sidebar nav{padding:14px 10px;flex:1}.sidebar a{display:flex;gap:12px;align-items:center;color:#b9c5d6;text-decoration:none;padding:12px 13px;border-radius:11px;margin:3px 0}.sidebar a:hover{background:#1d2738;color:#fff}.side-bottom{padding:12px 10px;border-top:1px solid rgba(255,255,255,.08)}.main{margin-left:250px;min-width:0;width:calc(100% - 250px)}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;padding:0 28px;position:sticky;top:0;z-index:10}.eyebrow{font-size:11px;color:var(--primary);font-weight:700;letter-spacing:.08em}.user-chip{margin-left:auto;display:flex;gap:9px;align-items:center;color:#4a5568}.avatar{width:34px;height:34px;border-radius:50%;background:#e8edff;color:var(--primary);display:grid;place-items:center;font-weight:800}.menu-btn{display:none;border:0;background:#eef2ff;padding:9px;border-radius:9px}.content{padding:28px;max-width:1500px;margin:auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.page-head h1{margin:0;font-size:28px}.page-head p{margin:4px 0 0;color:var(--muted)}.stats-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:15px;margin-bottom:20px}.stat{background:var(--card);border:1px solid var(--line);border-radius:17px;padding:18px;display:flex;gap:14px;align-items:center;box-shadow:var(--shadow)}.stat-icon{width:43px;height:43px;border-radius:12px;background:#eef2ff;display:grid;place-items:center;font-size:19px}.stat small{display:block;color:var(--muted)}.stat strong{display:block;font-size:26px;line-height:1.2;margin-top:4px}.stat.warning .stat-icon{background:#fff4df}.stat.danger .stat-icon{background:#ffebed}.panel{background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow);padding:20px;margin-bottom:20px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.panel h2{font-size:18px;margin:0}.panel p{color:var(--muted);margin:4px 0}.rules{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.rules div{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:14px}.rules b{display:block;font-size:18px}.rules span{color:var(--muted);font-size:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:10px;padding:10px 15px;text-decoration:none;font-weight:700;cursor:pointer;font:inherit}.btn.primary{background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff}.btn.outline{background:#fff;color:var(--primary);border:1px solid #cfd7ff}.btn.wide{width:100%;padding:12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid .span2{grid-column:span 2}.form-grid .btn{width:max-content}label{display:flex;flex-direction:column;gap:6px;color:#475569;font-weight:600}input,select,textarea{font:inherit;border:1px solid #d9e0ea;border-radius:10px;padding:10px 11px;background:#fff;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:#8ca0ff;box-shadow:0 0 0 3px #eef2ff}.inline-form{display:flex;gap:8px;align-items:center}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:850px}th,td{padding:12px 11px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#64748b;background:#f8fafc}tbody tr:hover{background:#fbfcff}td small.muted{display:block;color:var(--muted);font-size:11px}.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800}.badge.success{background:#e8f7ef;color:#137a46}.badge.warning{background:#fff1d8;color:#9a5c00}.badge.danger{background:#ffe7e9;color:#b4232b}.badge.info{background:#e9efff;color:#3152b8}.empty{text-align:center;color:var(--muted);padding:30px}.alert{padding:11px 13px;border-radius:10px;margin-bottom:15px}.alert.danger{background:#fff0f1;color:#a51f28}.alert.success{background:#eaf8f0;color:#167044}.login-page{min-height:100vh;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at top,#e9efff,#f7f8fc 50%)}.login-wrap{width:min(430px,100%)}.login-brand{display:flex;align-items:center;gap:14px;margin:0 auto 18px;width:max-content}.login-brand h1{font-size:25px;margin:0}.login-brand p{margin:2px 0;color:var(--muted)}.login-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:25px;box-shadow:0 20px 60px rgba(15,23,42,.1)}.login-title h2{margin:0;font-size:21px}.login-title p{color:var(--muted);margin-top:5px}.login-card form{display:grid;gap:14px}.login-help{font-size:12px;color:var(--muted);text-align:center;margin:14px 0 0}.report-title{text-align:center;margin-bottom:18px}.report-title h2{margin:0;font-size:20px}.report-title h3{margin:4px 0;font-size:15px}.report-title p{margin:0}.signature{margin:50px 0 10px auto;width:270px;text-align:center}footer{text-align:center;color:#94a3b8;font-size:12px;padding:8px 28px 25px}.print-hide{display:flex}@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(3,1fr)}.rules{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}.main{margin-left:0;width:100%}.menu-btn{display:block}.topbar{padding:0 15px}.user-chip span:last-child{display:none}.content{padding:18px 14px}.page-head{align-items:flex-start;flex-direction:column}.page-head .inline-form{width:100%;flex-wrap:wrap}.page-head .inline-form input{flex:1}.stats-grid{grid-template-columns:repeat(2,1fr);gap:10px}.stat{padding:14px}.stat strong{font-size:22px}.rules{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.form-grid .span2{grid-column:auto}.panel{padding:14px}.inline-form{flex-wrap:wrap}.login-card{padding:21px}}@media(max-width:420px){.stats-grid{grid-template-columns:1fr}.rules{grid-template-columns:1fr}.page-head h1{font-size:24px}.topbar{height:64px}.topbar strong{font-size:13px}}
@media print{body{background:#fff}.sidebar,.topbar,footer,.print-hide{display:none!important}.main{margin:0;width:100%}.content{padding:0}.panel{box-shadow:none;border:0}.report{padding:0}.report table{min-width:0;font-size:10px}.report th,.report td{padding:5px}.signature{margin-top:35px}}

/* Logo sekolah dinamis - ganti assets/logo-sekolah.png tanpa mengubah kode */
.brand-logo-wrap,.login-logo-wrap{position:relative;flex:0 0 auto;width:42px;height:42px}.school-logo{width:42px;height:42px;display:block;object-fit:contain;border-radius:10px;background:#fff;padding:3px}.brand-icon.fallback-logo{display:none;position:absolute;inset:0}.login-logo-wrap{width:62px;height:62px}.login-logo{width:62px;height:62px;border-radius:16px;padding:5px}.login-logo-wrap .brand-icon.big{position:absolute;inset:0;display:none}.login-brand{align-items:center}.brand b{letter-spacing:-.01em}footer{font-weight:600;letter-spacing:.01em}


/* FINAL LOGO SIZE FIX */
.brand-logo-wrap { width:42px !important; height:42px !important; min-width:42px !important; max-width:42px !important; min-height:42px !important; max-height:42px !important; overflow:hidden !important; display:block !important; }
.brand-logo-wrap img.school-logo { width:42px !important; height:42px !important; max-width:42px !important; max-height:42px !important; min-width:42px !important; min-height:42px !important; object-fit:contain !important; display:block !important; }
.login-logo-wrap { width:62px !important; height:62px !important; min-width:62px !important; max-width:62px !important; min-height:62px !important; max-height:62px !important; overflow:hidden !important; display:block !important; }
.login-logo-wrap img.login-logo { width:62px !important; height:62px !important; max-width:62px !important; max-height:62px !important; min-width:62px !important; min-height:62px !important; object-fit:contain !important; display:block !important; }

/* ADMIN MANAGEMENT */
.actions{display:flex;gap:7px;flex-wrap:wrap}.btn.small{padding:7px 10px;font-size:12px}.btn.danger{background:#fff0f1;color:#b4232b;border:1px solid #ffd0d4}.btn.secondary{background:#eef2f7;color:#334155;border:1px solid #dbe2ea}.muted{color:var(--muted)}.form-note{font-size:12px;color:var(--muted);margin-top:-6px}.status-toggle{display:flex;align-items:center;gap:8px}.checkbox{width:18px;height:18px}.modal-like{border:1px solid #dce3ed;background:#f8fafc;border-radius:12px;padding:12px}.danger-text{color:var(--danger);font-weight:700}.table-actions{white-space:nowrap}.section-title{font-size:16px;font-weight:800;margin:0 0 10px}.mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}@media(max-width:760px){.mini-grid{grid-template-columns:1fr}}

/* LAPORAN PDF / PRINT */
@media print{
  @page{size:A4 landscape;margin:10mm}
  .report-title h2{font-size:17px}.report-title h3{font-size:13px}.report-title p{font-size:11px}
  .report table{width:100%;font-size:9px}.report th,.report td{padding:4px 5px}
  .report .signature{font-size:11px}
}
.schedule-panel .panel-head{margin-bottom:18px}.schedule-meta{margin-bottom:18px}.schedule-scroll{overflow:auto;border:1px solid var(--line);border-radius:12px}.schedule-table{min-width:980px}.schedule-table th,.schedule-table td{padding:11px 10px}.schedule-table input[type=time]{width:135px}.schedule-table .schedule-check{min-width:95px}.schedule-check label{display:flex;flex-direction:row;align-items:center;gap:7px;font-weight:600;white-space:nowrap}.schedule-example{margin:14px 0;padding:12px 14px;border:1px solid #dce3ed;background:#f8fafc;border-radius:11px;color:#475569}.btn:disabled{opacity:.55;cursor:not-allowed}.schedule-table small.form-note{display:block;margin-top:5px;max-width:150px}

/* Guru & Karyawan - unified X107 fields */
.form-note{margin:0 0 18px;color:#718096;font-size:14px}
.import-help{padding:12px 14px;border:1px solid var(--line);background:#f8fafc;border-radius:11px;color:#475569;margin:12px 0 15px}.import-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.import-form input[type=file]{max-width:100%;background:#fff}.import-details{margin:8px 0 0;padding-left:22px;color:#475569}.import-details li{margin:5px 0}

/* BULK DELETE GURU & KARYAWAN */
.bulk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px;padding:12px 13px;background:#f8fafc;border:1px solid var(--line);border-radius:12px}.bulk-left{display:flex;align-items:center;gap:12px}.select-all-label{display:flex;flex-direction:row;align-items:center;gap:8px;font-weight:700;cursor:pointer}.check-col{width:38px;text-align:center!important}.employee-check{margin:0}.bulk-toolbar form{margin:0}.bulk-toolbar .btn{white-space:nowrap}@media(max-width:760px){.bulk-toolbar{align-items:stretch}.bulk-left,.bulk-toolbar>.actions{width:100%}.bulk-toolbar>.actions .btn,.bulk-toolbar>.actions form{flex:1}.bulk-toolbar>.actions form .btn{width:100%}}
