:root{--paper:#ffffff;--ink:#0f172a;--muted:#64748b;--line:#dbe3ef;--blue:#0b2a63;--blue2:#2563eb;--gold:#c9971a;--bg:#eef4ff;--soft:#f8fafc;--good:#16a34a;--warn:#f97316;--bad:#dc2626;}
    html,body{min-height:100%;margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
    html[data-theme="dark"]{color-scheme:dark;--paper:#0f172a;--ink:#e5edf8;--muted:#9fb0c7;--line:#243449;--blue:#bfdbfe;--blue2:#60a5fa;--gold:#fbbf24;--bg:#07111f;--soft:#111827;}
    html[data-theme="dark"] body{background:#07111f;color:var(--ink);}html[data-theme="dark"] .general-page{background:radial-gradient(circle at top,#1d4ed826,transparent 32%),linear-gradient(135deg,#07111f 0%,#0f172a 52%,#111827 100%);}html[data-theme="dark"] .general-sheet,html[data-theme="dark"] .general-header,html[data-theme="dark"] .general-footer{background:#0f172a;color:var(--ink);border-color:#243449;}html[data-theme="dark"] .general-toolbar{background:linear-gradient(180deg,#111827,#0f172a);border-color:#243449;}html[data-theme="dark"] .general-btn,html[data-theme="dark"] .gbt-umum-btn,html[data-theme="dark"] .relief-umum-btn{background:#111827;color:#e5edf8;border-color:#334155;}html[data-theme="dark"] .general-main{background:#0b1220;}html[data-theme="dark"] .general-placeholder{background:#111827;border-color:#334155;color:#cbd5e1;}html[data-theme="dark"] .status-box-general{background:#0b2552;border-color:#1d4ed8;color:#bfdbfe;}html[data-theme="dark"] .presence-section,html[data-theme="dark"] .presence-stat{background:#101827;border-color:#334155;}html[data-theme="dark"] .presence-table th,html[data-theme="dark"] .presence-section-head{background:#111827;color:#dbeafe;border-color:#334155;}html[data-theme="dark"] .presence-table td{color:#e5edf8;border-color:#26364a;}
    .official-token-panel{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;border:1px solid #bfdbfe;background:#eff6ff;border-radius:16px;padding:10px 12px;margin:0 0 12px;color:#0f2f6d;font-size:.78rem;font-weight:900}.official-token-panel.warning{border-color:#fed7aa;background:#fff7ed;color:#9a3412}.official-token-panel.success{border-color:#bbf7d0;background:#ecfdf5;color:#166534}.official-token-panel .token-title{font-size:.82rem;font-weight:1000;color:inherit}.official-token-panel small{display:block;margin-top:2px;font-size:.68rem;color:#64748b;line-height:1.25;word-break:break-all}.official-token-panel img{width:64px;height:64px;background:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:4px}.official-token-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.official-token-actions .general-btn{height:32px;font-size:.68rem;padding:0 10px}html[data-theme="dark"] .official-token-panel{background:#0b2552;border-color:#1d4ed8;color:#bfdbfe}html[data-theme="dark"] .official-token-panel.success{background:#052e1c;border-color:#15803d;color:#bbf7d0}html[data-theme="dark"] .official-token-panel.warning{background:#3b2507;border-color:#f59e0b;color:#fde68a}.general-print-frame{position:fixed;right:0;bottom:0;width:0;height:0;border:0;opacity:0;pointer-events:none}
    .general-page{min-height:100vh;padding:18px;background:linear-gradient(135deg,#f8fafc 0%,#eef4ff 50%,#f8fafc 100%)}.general-shell{width:calc(100vw - 36px);max-width:none;margin:0 auto}.general-sheet{min-height:calc(100vh - 36px);background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 45px rgba(15,23,42,.10);overflow:hidden}.general-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);background:#fff}.general-mark{font-size:.68rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}.general-title{margin:2px 0 0;font-size:1.08rem;line-height:1.1;font-weight:1000;letter-spacing:.02em;color:var(--blue)}.general-sub{margin-top:3px;font-size:.72rem;font-weight:800;color:var(--muted)}.general-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.general-btn{border:1px solid var(--line);background:#fff;color:var(--blue);height:34px;border-radius:999px;padding:0 12px;font-size:.72rem;font-weight:1000;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;white-space:nowrap}.general-btn:hover{box-shadow:0 10px 22px rgba(37,99,235,.12);transform:translateY(-1px)}.general-btn.active{background:linear-gradient(135deg,#173b89,#2f80ed);border-color:#2563eb;color:#fff}.general-btn.theme{min-width:92px}.general-toolbar{display:none;grid-template-columns:minmax(220px,1fr) auto auto auto;gap:8px;align-items:end;padding:14px 16px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#f8fbff 0%,#eef6ff 100%)}.general-toolbar.show{display:grid}.general-toolbar label{display:grid;gap:5px;font-size:.72rem;text-transform:uppercase;font-weight:1000;letter-spacing:.04em;color:#64748b}.general-toolbar input{height:42px;border-radius:14px;border:1px solid #cbd5e1;padding:0 14px;font-size:15px;font-weight:800;color:#0f172a;background:#fff}.general-toolbar .general-btn{height:42px;border-radius:14px;padding:0 16px;font-size:.82rem}.general-main{min-height:calc(100vh - 168px);padding:16px;background:#fff}.general-placeholder{border:1px dashed #cbd5e1;border-radius:18px;background:#f8fafc;min-height:360px;width:min(960px,100%);display:grid;place-items:center;text-align:center;padding:24px;color:#64748b;font-weight:900;margin:140px auto 70px}.general-placeholder b{display:block;color:var(--blue);font-size:1.1rem;margin-bottom:6px}.general-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-top:1px solid var(--line);background:#fff;color:#64748b;font-size:.7rem;font-weight:800}.status-box-general{margin:0 16px 12px;padding:10px 12px;border-radius:14px;background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8;font-size:.8rem;font-weight:900}.status-box-general[data-state="error"]{background:#fef2f2;border-color:#fecaca;color:#b91c1c}
    .presence-report{display:grid;gap:14px}.presence-hero{border-radius:18px;padding:16px;background:linear-gradient(135deg,#173b89 0%,#2467da 45%,#38bdf8 100%);color:white;box-shadow:0 18px 38px rgba(37,99,235,.18)}.presence-hero h2{margin:0 0 10px;font-size:1.04rem;letter-spacing:.01em;color:white}.presence-pills{display:flex;gap:8px;flex-wrap:wrap}.presence-pill{background:rgba(255,255,255,.94);color:#0f172a;border-radius:999px;padding:7px 12px;font-size:.75rem;font-weight:1000}.presence-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.presence-stat{border:1px solid #d6e3f3;border-top:3px solid #3b82f6;background:#f8fbff;border-radius:12px;padding:12px;min-height:64px;box-shadow:0 8px 18px rgba(15,23,42,.04)}.presence-stat .k{font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;font-weight:1000;color:#475569;margin-bottom:6px}.presence-stat .v{font-size:1rem;font-weight:1000;color:#020617}.presence-stat.good{background:#ecfdf3;border-top-color:#22c55e}.presence-section{border:1px solid #d8e3f2;border-radius:16px;overflow:hidden;background:#fff}.presence-section-head{height:44px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f3f7fc;border-bottom:1px solid #d8e3f2;padding:0 12px}.presence-section-title{font-size:.78rem;font-weight:1000;text-transform:uppercase;letter-spacing:.04em;color:#020617}.presence-count{min-width:24px;height:24px;border-radius:999px;background:#e2e8f0;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:1000;color:#0f172a;padding:0 7px}.presence-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.72rem}.presence-table th{height:30px;background:#f8fafc;color:#334155;text-align:left;text-transform:uppercase;letter-spacing:.05em;font-size:.62rem;font-weight:1000;border-bottom:1px solid #dbe3ef;padding:0 8px}.presence-table td{border-bottom:1px solid #e5edf7;padding:8px;vertical-align:top;font-weight:800;color:#020617}.presence-table tr:last-child td{border-bottom:0}.presence-table .name{font-weight:1000;line-height:1.25}.presence-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:6px 10px;font-size:.68rem;font-weight:1000;text-transform:uppercase;border:1px solid #cbd5e1;background:#fff;color:#334155}.presence-badge.cuti{background:#fff7ed;border-color:#fdba74;color:#ea580c}.presence-badge.luar{background:#eff6ff;border-color:#93c5fd;color:#2563eb}.presence-badge.sekolah{background:#ecfdf5;border-color:#86efac;color:#047857}.presence-note{display:inline-flex;align-items:center;border:1px solid #e2e8f0;border-radius:10px;padding:5px 8px;background:#f8fafc;color:#475569;font-size:.66rem;font-weight:900;line-height:1.25}.presence-empty{padding:16px;text-align:center;color:#64748b;font-weight:900;background:#f8fafc}
    .gbt-duty-wrap,.relief-umum-report{display:grid;gap:12px}.gbt-duty-toolbar,.relief-umum-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 12px;border:1px solid #dbe3ef;border-radius:14px;background:#f8fbff;color:#0f2f6d}.gbt-duty-tools,.relief-umum-toolbar>div:last-child{display:flex;gap:8px;flex-wrap:wrap}.gbt-umum-btn,.relief-umum-btn{border:1px solid #cbd5e1;background:#fff;color:#0b2a63;border-radius:999px;padding:8px 12px;font-size:.72rem;font-weight:1000;cursor:pointer}.gbt-umum-btn.active,.gbt-umum-btn.primary,.relief-umum-btn.primary{background:#0b2a63;color:#fff;border-color:#0b2a63}.gbt-duty-status,.relief-umum-status{border-radius:14px;padding:10px 12px;font-weight:1000;font-size:.78rem;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8}.gbt-duty-status.warning,.relief-umum-status.warning{border-color:#fed7aa;background:#fff7ed;color:#9a3412}.gbt-duty-status.success,.relief-umum-status.success{border-color:#bbf7d0;background:#ecfdf5;color:#166534}.gbt-duty-sheet,.relief-official-sheet{width:min(1120px,100%);margin:0 auto;background:#fff;color:#111827;border:1px solid #d7dce8;border-radius:18px;box-shadow:0 18px 38px rgba(15,23,42,.08);padding:22px;box-sizing:border-box}.gbt-duty-topline{display:grid;grid-template-columns:86px 1fr 96px;gap:12px;align-items:center;border-bottom:3px solid #0b2a63;padding-bottom:12px}.gbt-duty-logo{width:74px;height:74px;object-fit:contain}.gbt-duty-title{text-align:center}.gbt-duty-title .ministry{font-size:11px;font-weight:1000;letter-spacing:.12em;color:#334155;text-transform:uppercase}.gbt-duty-title h2{margin:4px 0 2px;font-size:20px;line-height:1.1;color:#0b2a63;font-weight:1000}.gbt-duty-title .school{font-size:13px;font-weight:1000;color:#0f172a}.gbt-duty-qr{display:grid;justify-items:center;gap:4px;font-size:8px;font-weight:900;color:#475569}.gbt-duty-qr img{width:76px;height:76px;border:1px solid #cbd5e1;padding:3px;background:#fff}.gbt-duty-meta{display:flex;justify-content:space-between;gap:12px;margin:12px 0;padding:10px 12px;border:1px solid #dbe3ef;border-radius:12px;background:#f8fafc;font-size:11px;font-weight:900;color:#0f172a}.gbt-duty-people-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}.gbt-duty-card{border:1px solid #dbe3ef;border-radius:12px;padding:10px;background:#fff;min-height:84px}.gbt-duty-card .role{font-size:9px;font-weight:1000;color:#64748b;letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px}.gbt-duty-card .name{font-size:11px;line-height:1.28;font-weight:1000;color:#0f172a}.gbt-duty-table{width:100%;border-collapse:collapse;table-layout:fixed;margin-top:12px;font-size:10px}.gbt-duty-table th{background:#0b2a63;color:#fff;font-weight:1000;text-transform:uppercase;letter-spacing:.04em;border:1px solid #0b2a63;padding:7px 5px}.gbt-duty-table td{border:1px solid #cbd5e1;padding:7px 5px;vertical-align:top;line-height:1.35}.gbt-duty-table .day{font-weight:1000;color:#0b2a63;width:90px}.gbt-duty-bottom{display:grid;grid-template-columns:1.2fr .8fr;gap:16px;margin-top:14px}.gbt-duty-note{border:1px solid #dbe3ef;border-radius:12px;background:#f8fafc;padding:10px;font-size:10px;line-height:1.45;color:#334155;font-weight:800}.gbt-duty-sign{display:grid;grid-template-columns:1fr 1fr;gap:12px}.gbt-duty-sign .box{border-top:1px solid #334155;margin-top:42px;padding-top:6px;text-align:center;font-size:10px;font-weight:1000;color:#0f172a}.gbt-duty-footer{text-align:center;margin-top:12px;padding-top:8px;border-top:1px solid #dbe3ef;font-size:9px;color:#64748b;font-weight:800}.relief-print-head{text-align:center;border-bottom:3px double #0f172a;padding-bottom:8px;margin-bottom:8px}.relief-print-head h2{margin:0;font-size:18px;letter-spacing:.05em;color:#0f172a}.relief-print-head .school{font-size:12px;font-weight:1000;color:#334155;margin-top:3px}.relief-print-meta{display:flex;justify-content:space-between;gap:12px;font-size:11px;font-weight:1000;color:#0f172a;margin-bottom:8px}.relief-print-meta .right{text-align:right}.relief-closed{border:1px solid #cbd5e1;background:#f8fafc;border-radius:10px;padding:7px 9px;font-size:10px;margin-bottom:8px;color:#334155}.relief-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:10px}.relief-table th{background:#0f172a;color:#fff;border:1px solid #0f172a;padding:6px 5px;text-transform:uppercase;font-size:9px}.relief-table td{border:1px solid #cbd5e1;padding:6px 5px;vertical-align:top;color:#0f172a}.relief-table .bil{width:36px;text-align:center;font-weight:1000}.relief-table .guru{width:24%}.relief-table .jadual{width:22%}.relief-table .catatan{width:22%}.relief-table .ganti{width:22%}.relief-name,.relief-candidate{font-weight:1000;line-height:1.25}.relief-candidate.pending{color:#b45309}.relief-pill,.relief-period,.relief-class,.relief-subject{display:block;margin-top:3px;font-size:8px;font-weight:900;color:#475569;text-transform:uppercase}.relief-signature{display:grid;grid-template-columns:1fr 1fr;gap:42px;margin:58px 0 48px}.relief-signature div{border-top:1px solid #0f172a;padding-top:7px;font-size:10px;font-weight:900;color:#334155}.relief-signature b{display:block;margin-top:4px;color:#0f172a;font-size:11px}.relief-signature small{display:block;margin-top:2px;color:#64748b}.relief-qr-wrap{display:flex;align-items:center;justify-content:flex-end;gap:9px;border-top:1px dashed #cbd5e1;padding-top:8px;font-size:9px;font-weight:900;color:#334155}.relief-qr{width:58px;height:58px;border:1px solid #cbd5e1;padding:3px}.relief-qr-caption{font-size:8px;line-height:1.25;color:#475569}.relief-doc-footer{text-align:center;border-top:1px solid #dbe3ef;margin-top:10px;padding-top:7px;font-size:8px;color:#64748b;font-weight:800}

    
    .general-page{padding:12px;background:#eef3fb}.general-shell{width:calc(100vw - 24px)}.general-sheet{min-height:calc(100vh - 24px);border-radius:18px;border-color:#d9e2ee;box-shadow:0 14px 34px rgba(15,23,42,.08)}
    .general-header{display:grid;grid-template-columns:minmax(240px,1fr) auto minmax(300px,1fr);align-items:start;gap:12px;padding:10px 14px 8px;background:#fff;border-bottom:1px solid #e5edf6}.general-header-copy{min-width:0;padding-top:5px}.general-brand-center{display:grid;justify-items:center;align-content:start;gap:0;margin-top:-2px}.general-brand-logo{display:flex;align-items:center;justify-content:center;gap:7px;height:72px;line-height:.82;color:#020617;font-family:Impact,"Arial Black",system-ui,sans-serif;font-size:76px;font-weight:1000;letter-spacing:.035em;text-shadow:0 1px 0 rgba(15,23,42,.06)}.general-brand-logo img{width:58px;height:58px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(15,23,42,.16))}.general-brand-sub{margin-top:-8px;color:#020617;font-size:15px;font-weight:1000;letter-spacing:.48em;white-space:nowrap}.general-brand-school{margin-top:3px;color:#172033;font-size:8px;font-weight:800;letter-spacing:.01em}.general-actions{padding-top:7px}.general-btn{height:29px;padding:0 11px;font-size:.66rem;background:#fff;border-color:#dbe5f1;color:#0b2a63;box-shadow:0 4px 12px rgba(15,23,42,.035)}.general-btn.active{background:#eff6ff;border-color:#bcd7ff;color:#0b2a63;box-shadow:inset 0 0 0 1px rgba(37,99,235,.08)}.general-btn.home-active{background:#0b2a63;color:#fff;border-color:#0b2a63}.general-btn.theme::first-letter{color:#f97316}.general-toolbar{padding:12px 28px}.general-main{min-height:calc(100vh - 156px);padding:0 28px 22px;background:#fff}.general-footer{min-height:40px;padding:10px 14px;background:#fff;font-size:.66rem;color:#526178;border-top:1px solid #edf2f8}.status-box-general{margin:0 28px 12px}.general-placeholder{margin:90px auto 60px}.umum-home-wrap{position:relative;padding:0 0 10px}.umum-home-panel{position:relative;margin:0 28px 0 6px;padding:8px 0 8px;border-top:1px solid #d8e4f2;border-right:1px solid #cfdbea;border-radius:0 18px 0 0;background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);overflow:visible}.umum-home-panel::before{content:"";position:absolute;left:0;right:0;top:52px;height:8px;border-radius:999px;background:linear-gradient(90deg,#078b8f,#17a8e7);width:49%;box-shadow:0 1px 0 rgba(2,6,23,.05)}.umum-home-head{display:grid;grid-template-columns:minmax(0,1fr) 174px;gap:14px;align-items:start}.umum-home-date{margin:0;color:#142033;font-size:.9rem;line-height:1.05;font-weight:1000;letter-spacing:.035em}.umum-home-time{margin-top:2px;color:#111827;font-size:3.95rem;line-height:.86;font-weight:1000;letter-spacing:.085em;font-family:"Arial Black",Impact,system-ui,sans-serif}.umum-role-pill{justify-self:center;margin-top:18px;min-width:132px;height:32px;border-radius:999px;background:#fff;border:1px solid #dfe8f5;box-shadow:0 8px 20px rgba(15,23,42,.05);display:inline-flex;align-items:center;justify-content:center;color:#0f172a;font-size:1.05rem;font-weight:1000}.umum-home-mini-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:21px;max-width:780px}.umum-home-mini{min-height:56px;border-radius:14px;border:1px solid #dce6f2;background:#f8fbff;box-shadow:inset 0 1px 0 rgba(255,255,255,.9);padding:8px 26px 6px;display:grid;align-content:center}.umum-home-mini-label{color:#64748b;font-size:.68rem;font-weight:1000;letter-spacing:.23em;text-transform:uppercase}.umum-home-mini-value{margin-top:3px;color:#111827;font-size:1.8rem;line-height:1;font-family:"Arial Black",Impact,system-ui,sans-serif;font-weight:1000;letter-spacing:.04em}.umum-install-row{margin-top:10px;max-width:780px;border:1px solid #d7e8ff;background:#f7fbff;border-radius:20px;padding:7px;box-shadow:0 4px 0 rgba(14,165,233,.05),inset 0 0 0 1px rgba(59,130,246,.08)}.umum-install-grid{display:grid;grid-template-columns:1.3fr repeat(4,1fr);gap:10px}.umum-install-card{min-height:42px;border-radius:11px;border:1px solid #e1eaf5;background:linear-gradient(180deg,#fff,#f4f8fe);display:grid;place-items:center;text-decoration:none;color:#1d4ed8;box-shadow:0 5px 12px rgba(15,23,42,.04);overflow:hidden}.umum-install-card img{height:25px;max-width:120px;object-fit:contain}.umum-install-card strong{font-size:.64rem;font-weight:1000;letter-spacing:.16em;text-transform:uppercase;color:#1d4ed8}.umum-install-card span{font-size:.58rem;font-weight:1000;color:#64748b;text-transform:uppercase}.umum-install-card .icon{font-size:26px;line-height:1}.umum-public-note{margin:8px 0 0;max-width:780px;color:#64748b;font-size:.68rem;font-weight:800}.umum-home-wrap .home-telegram-card{margin:22px 28px 18px 6px;border-radius:18px;padding:10px 26px;background:linear-gradient(135deg,rgba(236,253,245,.94),rgba(240,249,255,.98));border-color:#c3eee8;box-shadow:none}.umum-home-wrap .home-telegram-card strong{font-size:1.08rem;color:#0f172a}.umum-home-wrap .home-telegram-card__copy div>span{font-size:.8rem;color:#556173}.umum-home-wrap .home-telegram-card__icon{background:#bae6fd}.umum-home-wrap .home-telegram-card__btn{min-width:150px;font-size:.85rem;padding:8px 18px;background:linear-gradient(135deg,#0ea5e9,#0f766e);color:#fff}.umum-home-wrap .home-weather-root{display:block;margin:0 28px 0 6px}.umum-home-wrap .home-weather-card{background:linear-gradient(135deg,#f0fffb 0%,#e8fbff 100%);border-color:#bfeee8;box-shadow:none;border-radius:22px;color:#0f172a}.umum-home-wrap .home-weather-card::after{background:radial-gradient(circle,rgba(14,165,233,.18),transparent 70%)}.umum-home-wrap .home-weather-card__kicker{color:#c8641b;font-size:.67rem;letter-spacing:.19em}.umum-home-wrap .home-weather-card h2{color:#0f172a;font-size:1.05rem}.umum-home-wrap .home-weather-card__head span,.umum-home-wrap .home-weather-card__status{color:#526178}.umum-home-wrap .home-weather-card__current{background:#edf3fa;color:#64748b;border-color:#dbe5f1}.umum-home-wrap .home-weather-card__refresh{background:#fff;color:#0f172a;border-color:#dbe5f1}.umum-home-wrap .home-weather-grid__label{background:#fff;color:#64748b;border-color:#dbe5f1}.umum-home-wrap .home-weather-day{background:#fff;color:#0f172a;border-color:#e1eaf5}.umum-home-wrap .home-weather-day.is-today{border-color:#facc15;background:#fff}.umum-home-wrap .home-weather-day strong{color:#172033}.umum-home-wrap .home-weather-day span{color:#64748b}.umum-home-wrap .home-weather-temp{background:#f8fbff;color:#0f172a;border-color:#e1eaf5}.umum-home-wrap .home-weather-temp--hot{background:#fffbea;color:#9a3412;border-color:#fde68a}.umum-home-wrap .home-weather-temp--current,.umum-home-wrap .home-weather-temp--current-unavailable{background:#f8fbff;color:#64748b}.umum-home-wrap .home-weather-card__foot span{color:#0f172a}.umum-home-wrap .home-weather-card__link{background:#0694a2;color:#fff}.umum-home-fallback-weather{margin:0 28px 0 6px;padding:12px;border-radius:22px;border:1px solid #bfeee8;background:linear-gradient(135deg,#f0fffb,#e8fbff);font-weight:900;color:#0f172a}.umum-home-fallback-weather .weather-mini-grid{display:grid;grid-template-columns:110px repeat(5,1fr);gap:8px;margin-top:8px}.umum-home-fallback-weather .cell{min-height:32px;border-radius:12px;border:1px solid #e1eaf5;background:#fff;display:flex;align-items:center;justify-content:center;font-size:.78rem}.umum-home-fallback-weather .label{justify-content:flex-start;padding-left:12px;color:#64748b;text-transform:uppercase;letter-spacing:.08em}.umum-home-fallback-weather .hot{background:#fffbea;color:#9a3412;border-color:#fde68a}.umum-home-fallback-weather .source{margin-top:8px;display:flex;justify-content:space-between;align-items:center;font-size:.74rem}.umum-home-fallback-weather .source button{border:0;border-radius:999px;background:#0694a2;color:white;font-weight:1000;padding:7px 18px}html[data-theme="dark"] .general-brand-logo,html[data-theme="dark"] .general-brand-sub,html[data-theme="dark"] .general-brand-school{color:#e5edf8}html[data-theme="dark"] .umum-home-panel{background:#0f172a;border-color:#243449}html[data-theme="dark"] .umum-home-date,html[data-theme="dark"] .umum-home-time,html[data-theme="dark"] .umum-role-pill{color:#e5edf8}html[data-theme="dark"] .umum-role-pill,html[data-theme="dark"] .umum-home-mini,html[data-theme="dark"] .umum-install-card{background:#111827;border-color:#334155}html[data-theme="dark"] .umum-home-mini-value{color:#f8fafc}html[data-theme="dark"] .umum-install-row{background:#101827;border-color:#334155}html[data-theme="dark"] .umum-home-wrap .home-telegram-card{background:linear-gradient(135deg,rgba(8,47,73,.72),rgba(15,23,42,.86));border-color:rgba(56,189,248,.22)}html[data-theme="dark"] .umum-home-wrap .home-telegram-card strong{color:#e0f2fe}html[data-theme="dark"] .umum-home-wrap .home-telegram-card__copy div>span{color:#cbd5e1}html[data-theme="dark"] .umum-home-wrap .home-weather-card{background:linear-gradient(135deg,rgba(7,31,55,.94),rgba(15,23,42,.9));border-color:rgba(56,189,248,.2)}html[data-theme="dark"] .umum-home-wrap .home-weather-card h2{color:#eff6ff}html[data-theme="dark"] .umum-home-wrap .home-weather-grid__label,html[data-theme="dark"] .umum-home-wrap .home-weather-day,html[data-theme="dark"] .umum-home-wrap .home-weather-temp{background:rgba(255,255,255,.055);border-color:rgba(148,163,184,.16);color:#e5eefb}html[data-theme="dark"] .umum-home-wrap .home-weather-card__foot span{color:#dbeafe}

    @media(max-width:980px){.presence-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.general-toolbar{grid-template-columns:1fr 1fr}.general-toolbar label{grid-column:1/-1}.presence-table{font-size:.66rem}.presence-table th,.presence-table td{padding:6px 5px}.general-header,.general-footer{display:block}.general-actions{margin-top:10px;justify-content:flex-start}}@media(max-width:640px){.gbt-duty-topline,.gbt-duty-bottom,.gbt-duty-sign{grid-template-columns:1fr}.gbt-duty-sheet{padding:14px 10px;border-radius:14px}.gbt-duty-people-grid{grid-template-columns:1fr}.gbt-duty-table{font-size:8.6px}.general-page{padding:10px}.general-shell{width:100%}.general-main{padding:10px}.presence-stats{grid-template-columns:1fr}.presence-table col:nth-child(3),.presence-table col:nth-child(4){display:none}.presence-table th:nth-child(3),.presence-table td:nth-child(3),.presence-table th:nth-child(4),.presence-table td:nth-child(4){display:none}.general-toolbar{grid-template-columns:1fr}.general-toolbar .general-btn{width:100%}.general-placeholder{margin:60px auto;min-height:260px}}@media print{html,body,.general-page{background:#fff!important;color:#000!important}.general-page{padding:0}.general-shell{width:100%}.general-sheet{min-height:100vh;border:0;border-radius:0;box-shadow:none}.general-actions,.general-toolbar,.status-box-general,.general-footer{display:none!important}.general-main{padding:0}.presence-report{gap:8px}.presence-hero{box-shadow:none;border-radius:0}.presence-stats{grid-template-columns:repeat(6,1fr);gap:5px}.presence-stat{box-shadow:none;padding:7px;min-height:auto}.presence-section,.gbt-duty-sheet,.relief-official-sheet{break-inside:avoid}.gbt-duty-sheet{box-shadow:none;border-radius:0;width:100%;max-width:100%;padding:8mm}.relief-official-sheet{box-shadow:none;width:100%;max-width:100%;border-radius:0}.relief-umum-toolbar,.relief-umum-status{display:none!important}.relief-table{font-size:8.2pt}.relief-table th{font-size:7.6pt}.relief-table td{padding:3px 4px}.relief-signature{margin-top:50px;margin-bottom:42px}.presence-section{break-inside:avoid;border-radius:0}.presence-table{font-size:8pt}.presence-table th{font-size:7pt}.presence-table td{padding:4px 5px}@page{size:A4 portrait;margin:7mm}}

    
    @media(max-width:980px){.general-header{display:grid!important;grid-template-columns:1fr!important;justify-items:start}.general-brand-center{justify-self:center;order:-1}.general-actions{justify-content:flex-start}.general-brand-logo{font-size:62px;height:60px}.general-brand-logo img{width:48px;height:48px}.general-brand-sub{font-size:12px}.umum-home-head{grid-template-columns:1fr}.umum-role-pill{justify-self:end;margin-top:4px}.umum-home-time{font-size:3.1rem}.umum-home-mini-row{grid-template-columns:1fr 1fr;gap:10px}.umum-install-grid{grid-template-columns:1fr 1fr}.umum-install-card:first-child{grid-column:1/-1}.umum-home-fallback-weather .weather-mini-grid{grid-template-columns:90px repeat(5,minmax(60px,1fr));overflow-x:auto}.general-main{padding:0 14px 18px}.umum-home-panel,.umum-home-wrap .home-telegram-card,.umum-home-wrap .home-weather-root,.umum-home-fallback-weather{margin-left:0;margin-right:0}}
    @media(max-width:640px){.general-brand-logo{font-size:50px;height:52px}.general-brand-logo img{width:42px;height:42px}.general-brand-sub{letter-spacing:.28em}.umum-home-time{font-size:2.45rem}.umum-home-panel::before{width:70%;top:48px}.umum-home-mini-row{grid-template-columns:1fr}.umum-install-grid{grid-template-columns:1fr 1fr}.umum-home-wrap .home-telegram-card{display:grid}.umum-home-wrap .home-telegram-card__btn{width:100%;box-sizing:border-box}.umum-home-fallback-weather .weather-mini-grid{display:none}.general-main{padding:0 10px 16px}.general-page{padding:8px}.general-shell{width:100%}.general-sheet{border-radius:14px}}


    
    html,body{overflow-x:hidden}.general-page{display:flex;justify-content:center;align-items:flex-start;padding:14px 18px 22px;background:linear-gradient(135deg,#f8fafc 0%,#eef4ff 50%,#f8fafc 100%)}.general-shell{width:min(1180px,calc(100vw - 36px))!important;max-width:1180px!important;margin:0 auto!important}.general-sheet{min-height:calc(100vh - 40px);border-radius:20px;box-shadow:0 18px 42px rgba(15,23,42,.10)}.general-header{display:grid!important;grid-template-columns:minmax(230px,1fr) minmax(300px,360px) minmax(270px,1fr);align-items:center;gap:14px;padding:10px 16px;background:#fff}.general-header-copy{padding-top:0}.general-brand-center{justify-self:center;width:100%;max-width:360px;display:grid;place-items:center;background:#fff;border-radius:18px;padding:2px 8px}.general-roses-logo-img{display:block;width:min(330px,100%);height:auto;object-fit:contain}.general-brand-logo,.general-brand-sub,.general-brand-school{display:none!important}.general-actions{padding-top:0;justify-content:flex-end}.general-main{min-height:calc(100vh - 172px);padding:0 24px 24px;background:#fff}.umum-home-wrap{max-width:1040px;margin:0 auto;padding:0 0 16px}.umum-home-panel{max-width:960px;margin:0 auto!important;padding:12px 0 10px!important;border-left:1px solid transparent;border-right:1px solid #cfdbea;border-top:1px solid #d8e4f2;border-radius:0 18px 0 0;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%)}.umum-home-panel::before{top:58px;left:0;width:58%;max-width:620px}.umum-home-mini-row,.umum-install-row,.umum-public-note{max-width:760px}.umum-install-card:first-child img{height:26px;max-width:150px}.umum-home-wrap .home-telegram-card,.umum-home-wrap .home-weather-root,.umum-home-fallback-weather{max-width:1040px;margin:22px auto 0!important}.umum-home-wrap .home-weather-card{max-width:1040px;margin:0 auto}.umum-home-fallback-weather{box-sizing:border-box}.general-placeholder{margin:80px auto 50px}.general-footer{justify-content:center;text-align:center;gap:24px}.general-footer>div{white-space:normal}html[data-theme="dark"] .general-brand-center{background:#fff;border:1px solid rgba(255,255,255,.12)}html[data-theme="dark"] .general-roses-logo-img{filter:none}html[data-theme="dark"] .general-page{background:radial-gradient(circle at top,#1d4ed826,transparent 32%),linear-gradient(135deg,#07111f 0%,#0f172a 52%,#111827 100%)}@media(max-width:980px){.general-shell{width:min(760px,calc(100vw - 24px))!important}.general-header{grid-template-columns:1fr!important;justify-items:center;text-align:center}.general-header-copy{order:2}.general-brand-center{order:1;max-width:330px}.general-roses-logo-img{width:min(300px,100%)}.general-actions{order:3;justify-content:center}.general-main{padding:0 14px 18px}.umum-home-panel,.umum-home-wrap .home-telegram-card,.umum-home-wrap .home-weather-root,.umum-home-fallback-weather{margin-left:auto!important;margin-right:auto!important}.umum-home-panel::before{width:72%}}@media(max-width:640px){.general-page{padding:8px}.general-shell{width:100%!important}.general-sheet{border-radius:14px}.general-roses-logo-img{width:min(260px,100%)}.general-main{padding:0 10px 16px}.umum-home-panel{padding-top:10px!important;border-right:0}.umum-home-panel::before{top:48px;width:72%}.umum-home-time{font-size:2.4rem}.general-footer{display:block}}


    
    html, body { overflow-x: hidden !important; }
    .general-page {
      min-height: 100vh !important;
      box-sizing: border-box !important;
      padding: 22px 18px 28px !important;
      display: flex !important;
      justify-content: center !important;
      align-items: flex-start !important;
      background:
        radial-gradient(circle at top left, rgba(59,130,246,.12), transparent 34%),
        linear-gradient(135deg, #f8fafc 0%, #eef4ff 52%, #f8fafc 100%) !important;
    }
    .general-shell {
      width: min(1180px, calc(100vw - 36px)) !important;
      max-width: 1180px !important;
      margin: 0 auto !important;
      box-sizing: border-box !important;
    }
    .general-sheet {
      min-height: auto !important;
      background: var(--paper) !important;
      border: 1px solid var(--line) !important;
      border-radius: 22px !important;
      box-shadow: 0 20px 50px rgba(15, 23, 42, .10) !important;
      overflow: hidden !important;
    }
    .general-header {
      display: grid !important;
      grid-template-columns: minmax(230px, 1fr) minmax(280px, 360px) minmax(300px, 1fr) !important;
      align-items: center !important;
      gap: 20px !important;
      padding: 16px 22px !important;
      background: #fff !important;
      border-bottom: 1px solid var(--line) !important;
    }
    .general-header-copy { min-width: 0 !important; padding: 0 !important; }
    .general-mark {
      font-size: .68rem !important;
      font-weight: 1000 !important;
      letter-spacing: .14em !important;
      color: var(--gold) !important;
    }
    .general-title {
      margin: 3px 0 0 !important;
      font-size: 1.16rem !important;
      line-height: 1.1 !important;
      font-weight: 1000 !important;
      color: var(--blue) !important;
      letter-spacing: .01em !important;
    }
    .general-sub {
      margin-top: 5px !important;
      font-size: .76rem !important;
      color: var(--muted) !important;
      font-weight: 800 !important;
      line-height: 1.25 !important;
    }
    .general-brand-center {
      justify-self: center !important;
      width: 100% !important;
      max-width: 360px !important;
      display: grid !important;
      place-items: center !important;
      background: #fff !important;
      border: 0 !important;
      border-radius: 18px !important;
      padding: 0 !important;
      box-shadow: none !important;
    }
    .general-roses-logo-img {
      display: block !important;
      width: min(345px, 100%) !important;
      height: auto !important;
      max-height: 112px !important;
      object-fit: contain !important;
      filter: none !important;
    }
    .general-actions {
      justify-self: end !important;
      display: flex !important;
      align-items: center !important;
      justify-content: flex-end !important;
      gap: 8px !important;
      flex-wrap: wrap !important;
      min-width: 0 !important;
      padding: 0 !important;
    }
    .general-btn {
      height: 36px !important;
      border-radius: 999px !important;
      padding: 0 14px !important;
      border: 1px solid #d9e3f3 !important;
      background: #fff !important;
      color: #0b2a63 !important;
      font-size: .74rem !important;
      font-weight: 1000 !important;
      box-shadow: 0 1px 2px rgba(15,23,42,.04) !important;
      transition: transform .18s ease, box-shadow .18s ease, background .18s ease !important;
    }
    .general-btn:hover { transform: translateY(-1px) !important; box-shadow: 0 10px 22px rgba(37,99,235,.13) !important; }
    .general-btn.active, .general-btn.home-active {
      background: linear-gradient(135deg, #0b2a63, #2563eb) !important;
      color: #fff !important;
      border-color: #2563eb !important;
    }
    .general-toolbar {
      grid-template-columns: minmax(220px, 1fr) auto auto auto !important;
      gap: 10px !important;
      padding: 14px 22px !important;
      background: linear-gradient(180deg, #f8fbff 0%, #eef6ff 100%) !important;
      border-bottom: 1px solid var(--line) !important;
    }
    .general-toolbar input { height: 40px !important; border-radius: 14px !important; }
    .general-toolbar .general-btn { height: 40px !important; border-radius: 14px !important; }
    .status-box-general { margin: 14px 22px 0 !important; }
    .general-main {
      min-height: 480px !important;
      padding: 24px 30px 30px !important;
      background: #fff !important;
      box-sizing: border-box !important;
      overflow-x: auto !important;
    }
    .general-placeholder {
      width: min(680px, 100%) !important;
      min-height: 240px !important;
      margin: 48px auto !important;
      border-radius: 22px !important;
      background: linear-gradient(180deg, #f8fafc, #eef6ff) !important;
      border: 1px dashed #bfccdc !important;
      box-shadow: inset 0 1px 0 rgba(255,255,255,.85) !important;
    }
    .general-footer {
      display: flex !important;
      justify-content: space-between !important;
      align-items: center !important;
      gap: 14px !important;
      padding: 14px 22px !important;
      background: #f8fafc !important;
      border-top: 1px solid var(--line) !important;
      color: #64748b !important;
      font-size: .72rem !important;
      font-weight: 800 !important;
      text-align: left !important;
    }

    
    .umum-home-wrap {
      width: 100% !important;
      max-width: 1040px !important;
      margin: 0 auto !important;
      padding: 0 0 8px !important;
      display: grid !important;
      gap: 18px !important;
    }
    .umum-home-panel {
      position: relative !important;
      width: min(900px, 100%) !important;
      max-width: 900px !important;
      margin: 0 auto !important;
      padding: 22px 24px 18px !important;
      border: 1px solid #d8e4f2 !important;
      border-radius: 26px !important;
      background:
        radial-gradient(circle at 76% 18%, rgba(56,189,248,.10), transparent 30%),
        linear-gradient(180deg, #ffffff 0%, #fbfdff 100%) !important;
      box-shadow: 0 18px 42px rgba(15,23,42,.08) !important;
      overflow: hidden !important;
      box-sizing: border-box !important;
    }
    .umum-home-panel::before {
      content: "" !important;
      position: absolute !important;
      left: 24px !important;
      top: 90px !important;
      width: min(520px, 62%) !important;
      height: 8px !important;
      border-radius: 999px !important;
      background: linear-gradient(90deg, #0f766e, #0ea5e9) !important;
      opacity: .95 !important;
    }
    .umum-home-head {
      display: grid !important;
      grid-template-columns: minmax(0, 1fr) auto !important;
      gap: 16px !important;
      align-items: start !important;
    }
    .umum-home-date { font-size: .92rem !important; font-weight: 1000 !important; color: #0f172a !important; }
    .umum-home-time {
      margin-top: 3px !important;
      font-size: clamp(3.4rem, 7vw, 5.2rem) !important;
      line-height: .86 !important;
      letter-spacing: .02em !important;
      font-weight: 1000 !important;
      color: #111827 !important;
      text-shadow: 0 1px 0 #fff !important;
    }
    .umum-role-pill {
      min-width: 122px !important;
      height: 36px !important;
      display: inline-flex !important;
      align-items: center !important;
      justify-content: center !important;
      border-radius: 999px !important;
      background: #fff !important;
      border: 1px solid #d8e4f2 !important;
      box-shadow: 0 6px 18px rgba(15,23,42,.06) !important;
      font-size: .9rem !important;
      font-weight: 1000 !important;
      color: #0f172a !important;
    }
    .umum-home-mini-row {
      width: min(650px, 100%) !important;
      max-width: 650px !important;
      margin: 30px 0 12px !important;
      display: grid !important;
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
      gap: 14px !important;
    }
    .umum-home-mini {
      border: 1px solid #d8e4f2 !important;
      border-radius: 18px !important;
      background: #f8fafc !important;
      padding: 13px 18px !important;
      min-height: 62px !important;
      box-sizing: border-box !important;
    }
    .umum-home-mini-label { font-size: .72rem !important; text-transform: uppercase !important; letter-spacing: .16em !important; font-weight: 1000 !important; color: #64748b !important; }
    .umum-home-mini-value { margin-top: 2px !important; font-size: 2rem !important; line-height: 1 !important; font-weight: 1000 !important; color: #0f172a !important; }
    .umum-install-row { width: min(650px, 100%) !important; margin: 10px 0 0 !important; }
    .umum-install-grid {
      display: grid !important;
      grid-template-columns: 1.3fr repeat(4, 1fr) !important;
      gap: 10px !important;
      padding: 10px !important;
      background: #f8fbff !important;
      border: 1px solid #dce7f7 !important;
      border-radius: 22px !important;
      box-shadow: 0 8px 18px rgba(37,99,235,.07) !important;
    }
    .umum-install-card {
      min-height: 52px !important;
      border-radius: 14px !important;
      border: 1px solid #e2e8f0 !important;
      background: #fff !important;
      display: flex !important;
      flex-direction: column !important;
      align-items: center !important;
      justify-content: center !important;
      gap: 2px !important;
      text-decoration: none !important;
      color: #1e3a8a !important;
      font-size: .62rem !important;
      font-weight: 1000 !important;
      letter-spacing: .08em !important;
      text-transform: uppercase !important;
      box-shadow: 0 6px 16px rgba(15,23,42,.05) !important;
    }
    .umum-install-card:first-child img { height: 28px !important; max-width: 145px !important; object-fit: contain !important; }
    .umum-install-card .icon { font-size: 1.15rem !important; color: #5472a7 !important; line-height: 1 !important; }
    .umum-install-card span:not(.icon) { font-size: .56rem !important; color: #64748b !important; }
    .umum-public-note { width: min(650px, 100%) !important; margin: 10px 0 0 !important; color: #526178 !important; font-size: .75rem !important; font-weight: 800 !important; }
    .umum-home-wrap .home-telegram-card,
    .umum-home-wrap .home-weather-root,
    .umum-home-fallback-weather {
      width: 100% !important;
      max-width: 1040px !important;
      margin: 0 auto !important;
      box-sizing: border-box !important;
    }
    .umum-home-wrap .home-telegram-card {
      border-radius: 20px !important;
      box-shadow: 0 12px 30px rgba(15,23,42,.05) !important;
    }
    .umum-home-fallback-weather {
      border-radius: 22px !important;
      box-shadow: 0 14px 34px rgba(15,23,42,.06) !important;
      overflow: hidden !important;
    }

    html[data-theme="dark"] .general-page {
      background: radial-gradient(circle at top,#1d4ed826,transparent 32%), linear-gradient(135deg,#07111f 0%,#0f172a 52%,#111827 100%) !important;
    }
    html[data-theme="dark"] .general-header,
    html[data-theme="dark"] .general-brand-center { background: #fff !important; }
    html[data-theme="dark"] .general-main { background: #0b1220 !important; }
    html[data-theme="dark"] .general-footer { background: #111827 !important; }
    html[data-theme="dark"] .umum-home-panel { background: linear-gradient(180deg, #f8fafc, #ffffff) !important; color: #0f172a !important; }
    html[data-theme="dark"] .umum-home-date,
    html[data-theme="dark"] .umum-home-time,
    html[data-theme="dark"] .umum-home-mini-value,
    html[data-theme="dark"] .umum-role-pill { color: #0f172a !important; }

    @media (max-width: 980px) {
      .general-page { padding: 12px !important; }
      .general-shell { width: min(760px, calc(100vw - 24px)) !important; }
      .general-header { grid-template-columns: 1fr !important; justify-items: center !important; text-align: center !important; gap: 14px !important; }
      .general-brand-center { order: 1 !important; max-width: 330px !important; }
      .general-header-copy { order: 2 !important; }
      .general-actions { order: 3 !important; justify-content: center !important; }
      .general-roses-logo-img { width: min(310px, 100%) !important; }
      .general-toolbar { grid-template-columns: 1fr 1fr !important; }
      .general-toolbar label { grid-column: 1 / -1 !important; }
      .general-main { padding: 18px 16px 22px !important; }
      .umum-home-panel::before { width: 72% !important; }
      .umum-install-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
      .umum-install-card:first-child { grid-column: 1 / -1 !important; }
    }
    @media (max-width: 640px) {
      .general-page { padding: 8px !important; }
      .general-shell { width: 100% !important; }
      .general-sheet { border-radius: 16px !important; }
      .general-header { padding: 14px 12px !important; }
      .general-roses-logo-img { width: min(270px, 100%) !important; }
      .general-actions { gap: 6px !important; }
      .general-btn { height: 34px !important; padding: 0 10px !important; font-size: .68rem !important; }
      .general-toolbar { grid-template-columns: 1fr !important; padding: 12px !important; }
      .general-toolbar .general-btn { width: 100% !important; }
      .general-main { padding: 12px 10px 16px !important; min-height: 420px !important; }
      .umum-home-panel { padding: 18px 16px 16px !important; border-radius: 20px !important; }
      .umum-home-head { grid-template-columns: 1fr !important; }
      .umum-role-pill { justify-self: end !important; margin-top: -4px !important; }
      .umum-home-time { font-size: 2.45rem !important; }
      .umum-home-panel::before { top: 74px !important; left: 16px !important; width: 68% !important; }
      .umum-home-mini-row { grid-template-columns: 1fr !important; margin-top: 26px !important; }
      .umum-install-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
      .general-footer { display: block !important; text-align: center !important; }
    }

    
    .official-token-panel { display:none !important; }
    .umum-home-panel::before { content:none !important; display:none !important; }

    
    .gbt-umum-host .gbt-duty-sheet{width:100%;max-width:190mm;margin:0 auto;background:#fff!important;color:#111827!important;border:0!important;border-radius:0!important;padding:0!important;box-shadow:none!important;font-family:Arial,Helvetica,sans-serif!important;}
    .gbt-umum-host .gbt-duty-school{text-align:center;font-size:13px;font-weight:800;margin-top:2px;color:#111827!important;}
    .gbt-umum-host .gbt-duty-sheet h3{text-align:center;font-size:15px;line-height:1.28;margin:10px 0 12px;font-weight:900;color:#111827!important;}
    .gbt-umum-host .gbt-duty-people-list{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 5% 12px;font-size:12.5px;line-height:1.35;font-weight:650;color:#111827!important;}
    .gbt-umum-host .gbt-duty-table{width:100%;border-collapse:collapse;table-layout:fixed;border:1px solid #334155;background:#fff;color:#111827!important;}
    .gbt-umum-host .gbt-duty-table th,.gbt-umum-host .gbt-duty-table td{border:1px solid #334155;text-align:center;vertical-align:middle;padding:6px 5px;font-size:11.5px;line-height:1.18;color:#111827!important;}
    .gbt-umum-host .gbt-duty-table thead th{background:#9ec3e6!important;color:#111827!important;font-weight:900;}
    .gbt-umum-host .gbt-duty-task{width:20%;background:#9ec3e6!important;color:#111827!important;}
    .gbt-umum-host .gbt-duty-task b{display:block;font-size:11.5px;font-weight:900;}
    .gbt-umum-host .gbt-duty-task small{display:block;margin-top:3px;font-size:10.5px;font-weight:500;line-height:1.18;}
    .gbt-umum-host .gbt-duty-day-0{background:#08d9dc!important}.gbt-umum-host .gbt-duty-day-1{background:#ffff59!important}.gbt-umum-host .gbt-duty-day-2{background:#ef86ea!important}.gbt-umum-host .gbt-duty-day-3{background:#66f25e!important}.gbt-umum-host .gbt-duty-day-4{background:#c45bee!important}
    .gbt-umum-host .gbt-duty-names{font-weight:900;line-height:1.22}.gbt-umum-host .gbt-duty-names span{display:block}.gbt-umum-host .gbt-duty-all{margin:-6px -5px;padding:7px 5px;background:#ffc966!important;font-weight:900}.gbt-umum-host .gbt-duty-dash{font-weight:900;color:#374151}.gbt-umum-host .gbt-duty-split{text-align:left;font-size:10.2px;line-height:1.25;font-weight:650}.gbt-umum-host .gbt-duty-split b{display:block;margin-top:1px;font-weight:900}
    .gbt-umum-host .gbt-duty-notes{margin:12px 3% 0;font-size:11.4px;line-height:1.35;color:#111827!important}.gbt-umum-host .gbt-duty-notes b{display:block;margin-bottom:2px}
    .gbt-umum-host .gbt-duty-qr-row{margin:12px auto 0;display:grid;grid-template-columns:26mm 1fr;gap:10px;align-items:center;border:1px solid #dbe3ef;border-radius:10px;padding:8px;max-width:156mm;background:#fff;color:#111827!important}.gbt-umum-host .gbt-duty-qr-box{width:26mm;height:26mm;border:1px solid #cbd5e1;border-radius:8px;padding:3px;background:#fff;display:grid;place-items:center}.gbt-umum-host .gbt-duty-qr-box img{width:100%;height:100%;display:block;image-rendering:pixelated}.gbt-umum-host .gbt-duty-qr-copy b{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.gbt-umum-host .gbt-duty-qr-copy span{display:block;margin-top:3px;font-size:10.5px;font-weight:700;color:#334155}.gbt-umum-host .gbt-duty-qr-copy small{display:block;margin-top:4px;font-size:7.2px;color:#64748b;word-break:break-all;line-height:1.18}
    .gbt-umum-host .gbt-duty-sign-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:16px 3% 0;color:#111827!important}.gbt-umum-host .gbt-duty-sign-grid>div{min-height:68px;border-top:1px solid #94a3b8;padding-top:7px;font-size:10.5px}.gbt-umum-host .gbt-duty-sign-grid span,.gbt-umum-host .gbt-duty-sign-grid em{display:block;color:#475569;font-style:normal}.gbt-umum-host .gbt-duty-sign-grid b{display:block;margin-top:28px;font-size:11px;text-transform:uppercase}.gbt-umum-host .gbt-duty-footer-line{text-align:center;margin-top:8px;font-size:8.5px;color:#64748b;font-weight:700}

    
    .relief-system-auto-embed{width:100%;max-width:980px;margin:12px auto 0;border:1px solid #dbe3ef;border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 12px 28px rgba(15,23,42,.08)}
    .relief-system-auto-frame{display:block;width:100%;height:min(78vh,860px);min-height:660px;border:0;background:#fff}
    @media(max-width:760px){.relief-system-auto-frame{min-height:620px;height:76vh}.general-main{padding-left:10px!important;padding-right:10px!important}}


/* =========================================================
   LUH UX R1 · 2026-08-16
   Screen-only polish for Laporan Umum (Guru Ganti + Guru Bertugas).
   Print documents keep their dedicated print contracts/templates.
   ========================================================= */
@media (min-width:981px){
  .general-shell{
    width:min(1360px,calc(100vw - 36px))!important;
    max-width:1360px!important;
  }
  .general-header{
    grid-template-columns:minmax(270px,.95fr) minmax(350px,430px) minmax(350px,1fr)!important;
  }
  .general-brand-center{max-width:430px!important;}
  .general-roses-logo-img{width:min(410px,100%)!important;max-height:118px!important;}
}

.gbt-umum-report,
.relief-umum-report{
  width:100%;
  display:grid;
  gap:14px;
  min-width:0;
}

.gbt-umum-toolbar{
  display:grid;
  grid-template-columns:auto minmax(180px,1fr) auto;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  border:1px solid #d7e3f2;
  border-radius:16px;
  background:linear-gradient(180deg,#fbfdff 0%,#f1f6fc 100%);
  box-shadow:0 8px 22px rgba(15,23,42,.05);
}
.gbt-umum-toolbar-main{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.gbt-umum-week-hint{
  min-width:0;
  text-align:center;
  color:#334155;
  font-size:.78rem;
  line-height:1.35;
  font-weight:900;
}
.gbt-umum-status{
  padding:10px 13px;
  border:1px solid #bfdbfe;
  border-radius:14px;
  background:#eff6ff;
  color:#1d4ed8;
  font-size:.78rem;
  line-height:1.4;
  font-weight:900;
}
.gbt-umum-status.success{border-color:#bbf7d0;background:#ecfdf5;color:#166534;}
.gbt-umum-status.warning{border-color:#fed7aa;background:#fff7ed;color:#9a3412;}
.gbt-umum-tabs{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.gbt-umum-tab{
  min-height:36px;
  padding:0 13px;
  border:1px solid #cbd5e1;
  border-radius:999px;
  background:#fff;
  color:#0b2a63;
  font-size:.72rem;
  font-weight:1000;
  cursor:pointer;
}
.gbt-umum-tab.active{background:#0b2a63;color:#fff;border-color:#0b2a63;box-shadow:0 8px 18px rgba(11,42,99,.16);}
.gbt-umum-host{
  width:100%;
  min-width:0;
  overflow-x:auto;
  padding:20px;
  border:1px solid #dbe3ef;
  border-radius:18px;
  background:linear-gradient(180deg,#f8fbff 0%,#eef4fb 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.86);
}
.gbt-umum-host .gbt-duty-sheet{
  width:min(1080px,100%)!important;
  max-width:1080px!important;
  min-width:780px;
  margin:0 auto!important;
  padding:22px!important;
  border:1px solid #cbd5e1!important;
  border-radius:16px!important;
  box-shadow:0 16px 36px rgba(15,23,42,.10)!important;
}
.gbt-umum-host .gbt-duty-school{font-size:15px!important;letter-spacing:.02em;}
.gbt-umum-host .gbt-duty-sheet h3{font-size:18px!important;line-height:1.32!important;margin:10px 0 15px!important;}
.gbt-umum-host .gbt-duty-people-list{font-size:13.5px!important;line-height:1.42!important;margin:0 4% 15px!important;gap:24px!important;}
.gbt-umum-host .gbt-duty-table th,
.gbt-umum-host .gbt-duty-table td{font-size:12.5px!important;line-height:1.24!important;padding:8px 6px!important;}
.gbt-umum-host .gbt-duty-task b{font-size:12.5px!important;}
.gbt-umum-host .gbt-duty-task small{font-size:11px!important;line-height:1.22!important;}
.gbt-umum-host .gbt-duty-split{font-size:11.5px!important;line-height:1.32!important;}
.gbt-umum-host .gbt-duty-notes{font-size:12px!important;line-height:1.45!important;margin-top:15px!important;}
.gbt-umum-host .gbt-duty-qr-row{max-width:760px!important;margin-top:16px!important;padding:10px!important;}
.gbt-umum-host .gbt-duty-qr-copy b{font-size:11px!important;}
.gbt-umum-host .gbt-duty-qr-copy span{font-size:11.5px!important;line-height:1.35!important;}
.gbt-umum-host .gbt-duty-sign-grid{margin-top:22px!important;}
.gbt-umum-host .gbt-duty-footer-line{font-size:9.5px!important;margin-top:12px!important;}

.relief-umum-toolbar{
  padding:12px 14px!important;
  border-radius:16px!important;
  background:linear-gradient(180deg,#fbfdff 0%,#f1f6fc 100%)!important;
  box-shadow:0 8px 22px rgba(15,23,42,.05);
}
.relief-umum-hint{font-size:.82rem;line-height:1.35;font-weight:900;color:#334155;}
.relief-umum-status{font-size:.8rem!important;line-height:1.4!important;}
.relief-system-auto-embed{
  max-width:1120px!important;
  margin-top:2px!important;
  border-radius:18px!important;
  border-color:#d5e0ee!important;
  box-shadow:0 16px 36px rgba(15,23,42,.09)!important;
}
.relief-system-auto-frame{
  height:min(82vh,940px)!important;
  min-height:760px!important;
}

html[data-theme="dark"] .gbt-umum-toolbar,
html[data-theme="dark"] .relief-umum-toolbar{background:linear-gradient(180deg,#111827,#0f172a)!important;border-color:#334155!important;}
html[data-theme="dark"] .gbt-umum-week-hint,
html[data-theme="dark"] .relief-umum-hint{color:#cbd5e1!important;}
html[data-theme="dark"] .gbt-umum-host{background:linear-gradient(180deg,#0f172a,#111827);border-color:#334155;}

@media(max-width:980px){
  .gbt-umum-toolbar{grid-template-columns:1fr;}
  .gbt-umum-week-hint{text-align:left;order:-1;}
  .gbt-umum-toolbar>.gbt-umum-btn{justify-self:start;}
  .gbt-umum-host{padding:12px;}
  .relief-system-auto-frame{min-height:700px!important;height:80vh!important;}
}
@media(max-width:640px){
  .gbt-umum-toolbar-main{display:grid;grid-template-columns:1fr 1fr;}
  .gbt-umum-toolbar-main .gbt-umum-btn:first-child{grid-column:1 / -1;}
  .gbt-umum-btn,.relief-umum-btn{min-height:38px;}
  .gbt-umum-host{padding:8px;border-radius:14px;}
  .gbt-umum-host .gbt-duty-sheet{min-width:720px;padding:16px!important;}
  .relief-system-auto-frame{min-height:650px!important;height:78vh!important;}
}


/* LUH TOUCH R2 · 2026-08-16 · coarse-pointer ergonomics without changing desktop/print geometry */
.gbt-umum-host{
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;
  overscroll-behavior-y:auto;
  touch-action:pan-x pan-y pinch-zoom;
  scroll-behavior:smooth;
}
.gbt-umum-btn,.gbt-umum-tab,.general-btn,.relief-umum-btn,
.general-toolbar input,.general-toolbar select{
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.gbt-umum-btn:active,.gbt-umum-tab:active,.general-btn:active,.relief-umum-btn:active{
  transform:translateY(1px) scale(.99);
}
@media (any-pointer:coarse){
  .general-actions{gap:10px!important;}
  .general-btn{
    min-height:46px!important;
    height:auto!important;
    padding:0 15px!important;
    font-size:.78rem!important;
  }
  .general-toolbar{gap:10px!important;}
  .general-toolbar input,.general-toolbar select{
    min-height:48px!important;
    font-size:16px!important;
  }
  .general-toolbar .general-btn{min-height:48px!important;}
  .gbt-umum-toolbar{gap:12px!important;padding:14px!important;}
  .gbt-umum-toolbar-main{gap:10px!important;}
  .gbt-umum-btn{
    min-height:46px!important;
    padding:0 16px!important;
    font-size:.78rem!important;
  }
  .gbt-umum-tabs{gap:10px!important;}
  .gbt-umum-tab{
    min-height:44px!important;
    padding:0 16px!important;
    font-size:.76rem!important;
  }
  .gbt-umum-host{
    scrollbar-width:auto;
    padding:14px!important;
  }
  .gbt-umum-host::-webkit-scrollbar{height:14px;width:14px;}
  .gbt-umum-host::-webkit-scrollbar-thumb{background:#94a3b8;border:3px solid transparent;border-radius:999px;background-clip:padding-box;}
  .gbt-umum-host::-webkit-scrollbar-track{background:#e8eef6;border-radius:999px;}
  .gbt-umum-week-hint{font-size:.84rem!important;line-height:1.45!important;}
  .gbt-umum-status{font-size:.84rem!important;line-height:1.5!important;}
  .relief-umum-btn{min-height:46px!important;padding:0 16px!important;}
}
@media (any-pointer:coarse) and (max-width:640px){
  .gbt-umum-toolbar-main{grid-template-columns:1fr 1fr!important;gap:10px!important;}
  .gbt-umum-toolbar-main .gbt-umum-btn:first-child{grid-column:1/-1!important;}
  .gbt-umum-btn{width:100%;}
  .gbt-umum-host{padding:6px!important;}
}
@media print{
  .gbt-umum-host{touch-action:auto!important;scroll-behavior:auto!important;}
}


/* LUH TOUCH R3 · 2026-08-16 · Keberadaan + page gesture ownership */
html,body,.general-page,.general-shell,.general-sheet,.general-main{
  touch-action:pan-x pan-y pinch-zoom!important;
}
html,body{
  overscroll-behavior-y:auto!important;
}
.general-main{
  overflow-x:visible!important;
}
.presence-report{
  touch-action:pan-y pinch-zoom!important;
}
.presence-section{
  overflow:hidden!important;
}
.presence-table-scroll{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;
  overscroll-behavior-y:auto;
  touch-action:pan-x pan-y pinch-zoom!important;
  scrollbar-gutter:stable;
  outline:none;
}
.presence-table-scroll:focus-visible{
  box-shadow:inset 0 0 0 2px rgba(37,99,235,.28);
}
.presence-table{
  min-width:760px;
}
@media (any-pointer:coarse){
  .presence-table-scroll{
    scrollbar-width:auto;
  }
  .presence-table-scroll::-webkit-scrollbar{height:14px;}
  .presence-table-scroll::-webkit-scrollbar-thumb{background:#94a3b8;border:3px solid transparent;border-radius:999px;background-clip:padding-box;}
  .presence-table-scroll::-webkit-scrollbar-track{background:#e8eef6;border-radius:999px;}
  .presence-section-head{min-height:50px;height:auto;padding:10px 12px;}
  .presence-badge{min-height:34px;}
}
@media (max-width:640px){
  .presence-table{min-width:620px;}
  .presence-table col:nth-child(3),.presence-table col:nth-child(4),
  .presence-table th:nth-child(3),.presence-table td:nth-child(3),
  .presence-table th:nth-child(4),.presence-table td:nth-child(4){display:none!important;}
}
@media print{
  .general-main{overflow:visible!important;}
  .presence-table-scroll{overflow:visible!important;touch-action:auto!important;}
  .presence-table{min-width:0!important;width:100%!important;}
}


/* =========================================================
   LUH NOSCROLL R4 · 2026-08-17
   View-specific viewport ownership for ?view=guru_ganti.
   No page / inner-frame scrollbars; snapshot scales to fit.
   Print contracts are intentionally untouched.
   ========================================================= */
@media screen {
  html[data-luh-view="guru_ganti"],
  html[data-luh-view="guru_ganti"] body {
    width:100% !important;
    height:100% !important;
    max-width:100% !important;
    max-height:100% !important;
    overflow:hidden !important;
    overscroll-behavior:none !important;
  }
  html[data-luh-view="guru_ganti"] .general-page {
    width:100vw !important;
    height:100vh !important;
    height:100dvh !important;
    min-height:0 !important;
    max-height:100vh !important;
    max-height:100dvh !important;
    padding:8px !important;
    align-items:stretch !important;
    overflow:hidden !important;
    overscroll-behavior:none !important;
    touch-action:manipulation !important;
  }
  html[data-luh-view="guru_ganti"] .general-shell {
    width:min(1360px,calc(100vw - 16px)) !important;
    max-width:min(1360px,calc(100vw - 16px)) !important;
    height:100% !important;
    min-height:0 !important;
    margin:0 auto !important;
    overflow:hidden !important;
  }
  html[data-luh-view="guru_ganti"] .general-sheet {
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-height:100% !important;
    display:grid !important;
    grid-template-rows:auto auto auto minmax(0,1fr) auto !important;
    overflow:hidden !important;
  }
  html[data-luh-view="guru_ganti"] .general-header {
    padding:8px 14px !important;
    gap:10px !important;
  }
  html[data-luh-view="guru_ganti"] .general-title { font-size:1rem !important; }
  html[data-luh-view="guru_ganti"] .general-sub { margin-top:2px !important; font-size:.68rem !important; }
  html[data-luh-view="guru_ganti"] .general-roses-logo-img { max-height:64px !important; width:min(300px,100%) !important; }
  html[data-luh-view="guru_ganti"] .general-btn {
    height:32px !important;
    min-height:32px !important;
    padding:0 10px !important;
    font-size:.68rem !important;
  }
  html[data-luh-view="guru_ganti"] .general-toolbar {
    grid-template-columns:minmax(180px,1fr) auto auto auto !important;
    gap:6px !important;
    padding:7px 12px !important;
    align-items:end !important;
  }
  html[data-luh-view="guru_ganti"] .general-toolbar label { gap:2px !important; font-size:.62rem !important; }
  html[data-luh-view="guru_ganti"] .general-toolbar input,
  html[data-luh-view="guru_ganti"] .general-toolbar select,
  html[data-luh-view="guru_ganti"] .general-toolbar .general-btn {
    height:32px !important;
    min-height:32px !important;
    border-radius:10px !important;
    font-size:.68rem !important;
  }
  html[data-luh-view="guru_ganti"] .status-box-general {
    margin:6px 12px 0 !important;
    padding:6px 9px !important;
    font-size:.7rem !important;
  }
  html[data-luh-view="guru_ganti"] .general-main {
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    padding:7px 12px 8px !important;
    overflow:hidden !important;
    overscroll-behavior:none !important;
    touch-action:manipulation !important;
  }
  html[data-luh-view="guru_ganti"] .relief-umum-report {
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    display:grid !important;
    grid-template-rows:auto auto minmax(0,1fr) !important;
    gap:6px !important;
    overflow:hidden !important;
  }
  html[data-luh-view="guru_ganti"] .relief-umum-toolbar {
    min-height:0 !important;
    padding:6px 9px !important;
    gap:6px !important;
    border-radius:10px !important;
    box-shadow:none !important;
  }
  html[data-luh-view="guru_ganti"] .relief-umum-hint { font-size:.7rem !important; line-height:1.2 !important; }
  html[data-luh-view="guru_ganti"] .relief-umum-btn {
    min-height:28px !important;
    height:28px !important;
    padding:0 9px !important;
    font-size:.64rem !important;
  }
  html[data-luh-view="guru_ganti"] .relief-umum-status {
    min-height:0 !important;
    padding:5px 9px !important;
    font-size:.68rem !important;
    line-height:1.2 !important;
    border-radius:10px !important;
  }
  html[data-luh-view="guru_ganti"] .relief-system-auto-embed {
    width:100% !important;
    max-width:1120px !important;
    height:100% !important;
    min-height:0 !important;
    max-height:100% !important;
    margin:0 auto !important;
    border-radius:12px !important;
    overflow:hidden !important;
    box-shadow:none !important;
  }
  html[data-luh-view="guru_ganti"] .relief-system-auto-frame {
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-height:100% !important;
    border:0 !important;
    overflow:hidden !important;
    overscroll-behavior:none !important;
    touch-action:manipulation !important;
  }
  html[data-luh-view="guru_ganti"] .general-footer {
    min-height:0 !important;
    padding:5px 12px !important;
    gap:8px !important;
    font-size:.58rem !important;
    line-height:1.15 !important;
  }
}

@media screen and (max-width:980px) {
  html[data-luh-view="guru_ganti"] .general-page { padding:4px !important; }
  html[data-luh-view="guru_ganti"] .general-shell {
    width:calc(100vw - 8px) !important;
    max-width:calc(100vw - 8px) !important;
  }
  html[data-luh-view="guru_ganti"] .general-header {
    grid-template-columns:1fr !important;
    padding:5px 7px !important;
    gap:4px !important;
  }
  html[data-luh-view="guru_ganti"] .general-header-copy,
  html[data-luh-view="guru_ganti"] .general-brand-center { display:none !important; }
  html[data-luh-view="guru_ganti"] .general-actions {
    order:1 !important;
    width:100% !important;
    justify-self:stretch !important;
    display:grid !important;
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    gap:4px !important;
  }
  html[data-luh-view="guru_ganti"] .general-actions .general-btn {
    width:100% !important;
    min-width:0 !important;
    padding:0 4px !important;
    font-size:.6rem !important;
    white-space:nowrap !important;
  }
  html[data-luh-view="guru_ganti"] .general-btn.theme { min-width:0 !important; }
  html[data-luh-view="guru_ganti"] .general-toolbar {
    grid-template-columns:minmax(140px,1fr) repeat(3,auto) !important;
    gap:4px !important;
    padding:5px 6px !important;
  }
  html[data-luh-view="guru_ganti"] .general-toolbar label { grid-column:auto !important; }
  html[data-luh-view="guru_ganti"] .general-toolbar .general-btn { width:auto !important; padding:0 7px !important; font-size:.6rem !important; }
  html[data-luh-view="guru_ganti"] .general-main { padding:4px 6px 5px !important; }
  html[data-luh-view="guru_ganti"] .general-footer { display:none !important; }
}

@media screen and (max-width:640px) {
  html[data-luh-view="guru_ganti"] .general-sheet { border-radius:10px !important; }
  html[data-luh-view="guru_ganti"] .general-actions {
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
  html[data-luh-view="guru_ganti"] .general-toolbar {
    grid-template-columns:1fr 1fr !important;
  }
  html[data-luh-view="guru_ganti"] .general-toolbar label { grid-column:1 / -1 !important; }
  html[data-luh-view="guru_ganti"] .general-toolbar .general-btn { width:100% !important; }
  html[data-luh-view="guru_ganti"] #generalPrintBtn { grid-column:1 / -1 !important; }
  html[data-luh-view="guru_ganti"] .relief-umum-toolbar { padding:4px 6px !important; }
  html[data-luh-view="guru_ganti"] .relief-umum-hint { font-size:.62rem !important; }
  html[data-luh-view="guru_ganti"] .relief-umum-status { padding:4px 6px !important; font-size:.6rem !important; }
  html[data-luh-view="guru_ganti"] .relief-system-auto-embed { border-radius:8px !important; }
}


/* =========================================================
   LUH SCREEN TABLE R5 · 2026-08-17
   Guru Ganti screen view is a native responsive table.
   Official A4/QR/signature snapshot remains print/download only.
   ========================================================= */
@media screen {
  html[data-luh-view="guru_ganti"] .general-main{
    height:100% !important;
    min-height:0 !important;
    max-height:100% !important;
    overflow:hidden !important;
  }
  html[data-luh-view="guru_ganti"] .general-footer{display:none !important}
  html[data-luh-view="guru_ganti"] .relief-umum-report{
    height:100% !important;
    min-height:0 !important;
    grid-template-rows:auto auto minmax(0,1fr) !important;
    gap:5px !important;
  }
  html[data-luh-view="guru_ganti"] .relief-system-auto-embed,
  html[data-luh-view="guru_ganti"] .relief-system-auto-frame{display:none !important}

  .relief-screen-sheet{
    width:100%;height:100%;min-height:0;display:grid;
    grid-template-rows:auto auto minmax(0,1fr);align-self:stretch;
    border:1px solid #cbd5e1;border-radius:12px;background:#fff;
    overflow:hidden;box-shadow:0 5px 16px rgba(15,23,42,.06);color:#0f172a;
  }
  .relief-screen-head{
    min-height:34px;padding:5px 9px;display:flex;align-items:center;
    justify-content:space-between;gap:10px;border-bottom:1px solid #dbe3ef;
    background:linear-gradient(180deg,#fff,#f8fbff);
  }
  .relief-screen-heading{min-width:0;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
  .relief-screen-heading strong{color:#0b3a70;font-size:12px;line-height:1;font-weight:1000;letter-spacing:.03em;white-space:nowrap}
  .relief-screen-heading span{color:#475569;font-size:9.5px;line-height:1.05;font-weight:900;white-space:nowrap}
  .relief-screen-session{
    flex:0 0 auto;border:1px solid #bfdbfe;border-radius:999px;padding:3px 8px;
    background:#eff6ff;color:#0b3a70;font-size:8.5px;line-height:1;font-weight:1000;white-space:nowrap
  }
  .relief-screen-closure{
    padding:3px 8px;border-bottom:1px solid #dcfce7;background:#f0fdf4;color:#166534;
    font-size:8.5px;line-height:1.1;font-weight:900;text-align:center;white-space:nowrap;
    overflow:hidden;text-overflow:ellipsis
  }
  .relief-screen-table-wrap{min-width:0;min-height:0;height:100%;overflow:hidden;background:#fff}
  .relief-screen-table{width:100%;height:auto;border-collapse:collapse;table-layout:fixed;color:#0f172a;font-size:10.5px;line-height:1.04}
  .relief-screen-table .relief-col-bil{width:4.5%}.relief-screen-table .relief-col-guru{width:25%}
  .relief-screen-table .relief-col-jadual{width:29.5%}.relief-screen-table .relief-col-catatan{width:18%}
  .relief-screen-table .relief-col-ganti{width:23%}
  .relief-screen-table th,.relief-screen-table td{
    border-right:1px solid #cbd5e1;border-bottom:1px solid #dbe3ef;padding:3px 5px;
    vertical-align:middle;overflow:hidden
  }
  .relief-screen-table th:last-child,.relief-screen-table td:last-child{border-right:0}
  .relief-screen-table thead th{
    height:25px;padding:4px 5px;background:#0b3a70;color:#fff;font-size:9px;line-height:1;
    font-weight:1000;letter-spacing:.025em;text-align:center;white-space:nowrap
  }
  .relief-screen-table tbody tr:nth-child(even) td{background:#f8fafc}
  .relief-screen-bil{text-align:center;font-weight:1000;white-space:nowrap}
  .relief-screen-teacher,.relief-screen-schedule,.relief-screen-replacement{white-space:nowrap;text-overflow:ellipsis}
  .relief-screen-name,.relief-screen-ganti{font-weight:1000}
  .relief-screen-status{
    display:inline-flex;margin-left:5px;padding:1px 5px;border:1px solid #cbd5e1;border-radius:999px;
    background:#e2e8f0;color:#334155;font-size:.78em;font-weight:1000;vertical-align:middle
  }
  .relief-screen-schedule b{color:#0b3a70;font-weight:1000}.relief-screen-schedule span{font-weight:800;color:#334155}
  .relief-screen-schedule i{margin:0 4px;color:#94a3b8;font-style:normal;font-weight:1000}
  .relief-screen-note{color:#8b1e1e;font-weight:800;white-space:nowrap;text-overflow:ellipsis}
  .relief-screen-replacement{text-align:center}.relief-screen-ganti--assigned{color:#166534}
  .relief-screen-ganti--pending{color:#92400e}
  .relief-screen-pending{
    display:inline-flex;margin-left:5px;padding:1px 4px;border-radius:999px;background:#fff7ed;color:#9a3412;
    border:1px solid #fed7aa;font-size:.72em;font-weight:1000
  }
  .relief-screen-empty{padding:14px !important;text-align:center;color:#64748b;font-weight:900}

  .relief-screen-sheet[data-density="normal"] .relief-screen-table{font-size:11.5px}
  .relief-screen-sheet[data-density="normal"] .relief-screen-table td{padding:5px 6px}
  .relief-screen-sheet[data-density="compact"] .relief-screen-table{font-size:10px}
  .relief-screen-sheet[data-density="compact"] .relief-screen-table td{padding:3px 5px}
  .relief-screen-sheet[data-density="dense"] .relief-screen-head{min-height:29px;padding:3px 8px}
  .relief-screen-sheet[data-density="dense"] .relief-screen-heading strong{font-size:10.5px}
  .relief-screen-sheet[data-density="dense"] .relief-screen-heading span{font-size:8.5px}
  .relief-screen-sheet[data-density="dense"] .relief-screen-session{font-size:7.8px;padding:2px 7px}
  .relief-screen-sheet[data-density="dense"] .relief-screen-table{font-size:9px;line-height:1}
  .relief-screen-sheet[data-density="dense"] .relief-screen-table thead th{height:21px;font-size:8px;padding:3px 4px}
  .relief-screen-sheet[data-density="dense"] .relief-screen-table td{padding:2px 4px}
  .relief-screen-sheet[data-density="ultra"] .relief-screen-head{min-height:26px;padding:2px 7px}
  .relief-screen-sheet[data-density="ultra"] .relief-screen-heading strong{font-size:9.5px}
  .relief-screen-sheet[data-density="ultra"] .relief-screen-heading span{font-size:7.8px}
  .relief-screen-sheet[data-density="ultra"] .relief-screen-session{font-size:7px;padding:2px 6px}
  .relief-screen-sheet[data-density="ultra"] .relief-screen-table{font-size:8px;line-height:.98}
  .relief-screen-sheet[data-density="ultra"] .relief-screen-table thead th{height:19px;font-size:7.3px;padding:2px 3px}
  .relief-screen-sheet[data-density="ultra"] .relief-screen-table td{padding:1px 3px}

  html[data-theme="dark"] .relief-screen-sheet{background:#0f172a;color:#e5edf8;border-color:#334155}
  html[data-theme="dark"] .relief-screen-head{background:linear-gradient(180deg,#111827,#0f172a);border-color:#334155}
  html[data-theme="dark"] .relief-screen-heading span{color:#cbd5e1}
  html[data-theme="dark"] .relief-screen-table-wrap{background:#0f172a}
  html[data-theme="dark"] .relief-screen-table{color:#e5edf8}
  html[data-theme="dark"] .relief-screen-table th,html[data-theme="dark"] .relief-screen-table td{border-color:#334155}
  html[data-theme="dark"] .relief-screen-table tbody tr:nth-child(even) td{background:#111827}
  html[data-theme="dark"] .relief-screen-schedule span{color:#cbd5e1}
  html[data-theme="dark"] .relief-screen-note{color:#fca5a5}

  @media(max-width:980px){
    .relief-screen-heading{gap:6px}.relief-screen-heading strong{font-size:10px}.relief-screen-heading span{font-size:8px}
    .relief-screen-table{font-size:8.5px}.relief-screen-table th,.relief-screen-table td{padding-left:3px;padding-right:3px}
    .relief-screen-status{margin-left:3px;padding-left:3px;padding-right:3px}.relief-screen-pending{display:none}
  }
  @media(max-width:640px){
    .relief-screen-head{min-height:25px;padding:2px 4px}.relief-screen-heading span{display:none}
    .relief-screen-session{font-size:7px;padding:2px 4px}.relief-screen-table{font-size:6.7px}
    .relief-screen-table thead th{font-size:6.2px;height:17px;padding:2px}.relief-screen-table td{padding:1px 2px}
    .relief-screen-status{display:none}.relief-screen-schedule i{margin:0 2px}.relief-screen-note{font-size:6.2px}
  }
}

/* =========================================================
   LUH ORIGINAL FIT R6 · 2026-08-17
   Restore original Guru Ganti snapshot UX. Width fits host.
   Screen-only signatures/QR footer are suppressed so the
   original table can fit vertically without any scrollbar.
   Print/download snapshot remains unchanged.
   ========================================================= */
@media screen {
  html[data-luh-view="guru_ganti"] .general-main{height:100%!important;min-height:0!important;max-height:100%!important;overflow:hidden!important}
  html[data-luh-view="guru_ganti"] .general-footer{display:flex!important}
  html[data-luh-view="guru_ganti"] .relief-umum-report{height:100%!important;min-height:0!important;grid-template-rows:auto auto minmax(0,1fr)!important;gap:5px!important;overflow:hidden!important}
  html[data-luh-view="guru_ganti"] .relief-screen-sheet{display:none!important}
  html[data-luh-view="guru_ganti"] .relief-system-auto-embed{display:block!important;width:100%!important;max-width:none!important;height:100%!important;min-height:0!important;max-height:100%!important;margin:0!important;border-radius:12px!important;overflow:hidden!important;box-shadow:none!important;background:#e5e7eb!important}
  html[data-luh-view="guru_ganti"] .relief-system-auto-frame{display:block!important;width:100%!important;max-width:100%!important;height:100%!important;min-height:0!important;max-height:100%!important;border:0!important;overflow:hidden!important;overscroll-behavior:none!important;scrollbar-width:none!important}
  html[data-luh-view="guru_ganti"] .relief-system-auto-frame::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
}
@media screen and (max-width:980px){
  html[data-luh-view="guru_ganti"] .general-footer{display:none!important}
  html[data-luh-view="guru_ganti"] .relief-system-auto-embed{border-radius:8px!important}
}


/* =========================================================
   LUH RELIEF HEIGHT 100 R8 · 2026-08-17
   Guru Ganti keeps the original snapshot UX, fills 100% of
   the remaining viewport height, width-fit, no page/frame scroll.
   ========================================================= */
@media screen {
  html[data-luh-view="guru_ganti"] .general-sheet{
    grid-template-rows:auto auto auto minmax(0,1fr) !important;
  }
  html[data-luh-view="guru_ganti"] .general-footer{
    display:none !important;
  }
  html[data-luh-view="guru_ganti"] .general-main{
    height:100% !important;
    min-height:0 !important;
    max-height:none !important;
    align-self:stretch !important;
    overflow:hidden !important;
  }
  html[data-luh-view="guru_ganti"] .relief-umum-report{
    height:100% !important;
    min-height:0 !important;
    align-self:stretch !important;
    grid-template-rows:auto auto minmax(0,1fr) !important;
    overflow:hidden !important;
  }
  html[data-luh-view="guru_ganti"] .relief-system-auto-embed{
    width:100% !important;
    max-width:none !important;
    height:100% !important;
    min-height:100% !important;
    max-height:100% !important;
    align-self:stretch !important;
    overflow:hidden !important;
  }
  html[data-luh-view="guru_ganti"] .relief-system-auto-frame{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    height:100% !important;
    min-height:100% !important;
    max-height:100% !important;
    overflow:hidden !important;
    border:0 !important;
  }
}


/* =========================================================
   LUH RELIEF VIEWPORT FILL R9 · 2026-08-17
   Fix hidden status-grid collapse: main is explicitly placed in
   the flexible final row so the Relief iframe owns the full
   remaining viewport height. Width-fit + no scroll remain intact.
   ========================================================= */
@media screen {
  html[data-luh-view="guru_ganti"] .general-sheet{
    grid-template-rows:auto auto auto minmax(0,1fr) !important;
  }
  html[data-luh-view="guru_ganti"] .general-header{grid-row:1 !important;}
  html[data-luh-view="guru_ganti"] .general-toolbar{grid-row:2 !important;}
  html[data-luh-view="guru_ganti"] #generalStatus{grid-row:3 !important;}
  html[data-luh-view="guru_ganti"] .general-main{
    grid-row:4 !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    align-self:stretch !important;
    overflow:hidden !important;
  }
  html[data-luh-view="guru_ganti"] .general-footer{display:none !important;}
  html[data-luh-view="guru_ganti"] .relief-umum-report{
    height:100% !important;
    min-height:0 !important;
    max-height:100% !important;
    grid-template-rows:auto auto minmax(0,1fr) !important;
    overflow:hidden !important;
  }
  html[data-luh-view="guru_ganti"] .relief-system-auto-embed,
  html[data-luh-view="guru_ganti"] .relief-system-auto-frame{
    width:100% !important;
    max-width:100% !important;
    min-height:0 !important;
    overflow:hidden !important;
  }
}

/* ROSES LUH VISITOR OFFICIAL R11 — canonical screen preview container */
.visitor-public-report{display:grid;gap:10px;width:100%;max-width:1500px;margin:0 auto}.visitor-public-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 12px;border:1px solid #dbe3ef;border-radius:14px;background:#f8fbff}.visitor-public-head>div{display:grid;gap:2px;min-width:0}.visitor-public-head span{font-size:.66rem;font-weight:1000;letter-spacing:.08em;color:#8f1024}.visitor-public-head b{font-size:.9rem;color:#0f172a;overflow-wrap:anywhere}.visitor-public-head small{font-size:.7rem;font-weight:800;color:#64748b}.visitor-public-frame{display:block;width:100%;height:min(80vh,900px);min-height:620px;border:1px solid #cbd5e1;border-radius:16px;background:#eef2f7;box-shadow:0 14px 34px rgba(15,23,42,.08)}.visitor-public-loading{min-height:420px;display:grid;place-items:center;align-content:center;gap:8px;color:#0b2a63;font-weight:900}.visitor-public-loading span:last-child{font-size:.78rem;color:#64748b}.rv-loader-dot{width:34px;height:34px;border:4px solid #dbeafe;border-top-color:#2563eb;border-radius:50%;animation:rvVisitorSpin .8s linear infinite}@keyframes rvVisitorSpin{to{transform:rotate(360deg)}}
html[data-theme="dark"] .visitor-public-head{background:#111827;border-color:#334155}html[data-theme="dark"] .visitor-public-head b{color:#e5edf8}html[data-theme="dark"] .visitor-public-frame{border-color:#334155;background:#0b1220}
@media(max-width:760px){.visitor-public-frame{min-height:520px;height:72vh}.visitor-public-head{align-items:flex-start}.visitor-public-head .general-btn{width:100%}}
