
/* Masjid Display Portal 4.2 — Operations Dashboard */
.ops-dashboard-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:20px;padding:4px 2px}
.ops-dashboard-head h2{margin:4px 0 6px;font-size:clamp(1.55rem,3vw,2.25rem)}
.ops-dashboard-head p{margin:0;color:var(--muted,#8fa59e)}
.ops-head-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.ops-head-actions span{font-size:.8rem;color:var(--muted,#8fa59e)}
.ops-summary .stat-card strong{text-transform:none}
.ops-alert-stack{display:grid;gap:8px;margin:0 0 18px}
.ops-alert{width:100%;border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:12px 14px;display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:10px;text-align:left;background:rgba(255,255,255,.04)}
.ops-alert>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-weight:900}
.ops-alert b{font-size:.78rem}
.ops-alert.warning{border-color:rgba(245,158,11,.38)}.ops-alert.warning>span{background:rgba(245,158,11,.18);color:#fbbf24}
.ops-alert.danger{border-color:rgba(239,68,68,.45)}.ops-alert.danger>span{background:rgba(239,68,68,.18);color:#f87171}
.ops-all-good{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid rgba(34,197,94,.35);background:rgba(34,197,94,.08);border-radius:16px;margin-bottom:18px}
.ops-all-good>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(34,197,94,.2);color:#4ade80;font-weight:900}
.ops-all-good small{display:block;color:var(--muted,#8fa59e);margin-top:2px}
.ops-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr);gap:18px;align-items:start}
.ops-main-column{display:grid;gap:18px}
.ops-device-list{display:grid;gap:12px}
.ops-device-card{border:1px solid rgba(255,255,255,.09);border-radius:16px;padding:14px;background:rgba(255,255,255,.025)}
.ops-device-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:13px}
.ops-device-head>div{display:flex;align-items:center;gap:9px}
.ops-status-dot{width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 4px rgba(255,255,255,.04)}
.ops-status-dot.online{background:#22c55e}.ops-status-dot.warning{background:#f59e0b}.ops-status-dot.offline{background:#ef4444}
.ops-status-label{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:4px 8px;border-radius:999px}
.ops-status-label.online{color:#4ade80;background:rgba(34,197,94,.12)}
.ops-status-label.warning{color:#fbbf24;background:rgba(245,158,11,.12)}
.ops-status-label.offline{color:#f87171;background:rgba(239,68,68,.12)}
.ops-device-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.ops-device-grid>div,.ops-current-slide{padding:10px;border-radius:12px;background:rgba(255,255,255,.035)}
.ops-device-grid small,.ops-current-slide small{display:block;color:var(--muted,#8fa59e);font-size:.72rem;margin-bottom:4px}
.ops-device-grid strong,.ops-current-slide strong{font-size:.86rem;overflow-wrap:anywhere}
.ops-current-slide{margin-top:10px}
.ops-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.ops-actions button{font-size:.78rem}
.ops-two-column{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ops-preview{position:sticky;top:18px}
.ops-quick-links{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.ops-quick-links button{font-size:.76rem;padding:9px 6px}
@media(max-width:1100px){.ops-layout{grid-template-columns:1fr}.ops-preview{position:static}.ops-device-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.ops-dashboard-head{align-items:flex-start;flex-direction:column}.ops-head-actions{width:100%;justify-content:space-between}.ops-two-column{grid-template-columns:1fr}.ops-device-grid{grid-template-columns:1fr 1fr}.ops-actions button{flex:1}.ops-quick-links{grid-template-columns:1fr}.ops-alert{grid-template-columns:30px 1fr}.ops-alert b{display:none}}
@media(max-width:420px){.ops-device-grid{grid-template-columns:1fr}}


/* v4.2.4 — Halaman kuliah dan penceramah berasingan, carian serta pagination */
.panel-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.content-list-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) minmax(150px,auto);gap:12px;align-items:end;padding:14px;margin-bottom:10px;border:1px solid rgba(15,91,68,.12);border-radius:15px;background:#f5faf7}.content-list-toolbar label{display:grid;gap:6px;margin:0;font-size:12px;font-weight:850;color:#49665d}.content-list-toolbar input,.content-list-toolbar select{width:100%;min-height:44px;border:1px solid #cbd8d3;border-radius:12px;padding:10px 13px;background:#fff;color:#10231e;outline:none}.content-list-toolbar input:focus,.content-list-toolbar select:focus{border-color:#0b5c49;box-shadow:0 0 0 3px rgba(11,92,73,.1)}.content-page-size{min-width:155px}.search-result-summary{margin:7px 2px 13px;color:#71827c;font-size:12px;font-weight:750}.content-pagination{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:16px;padding-top:15px;border-top:1px solid #e1e9e6;color:#667b73;font-size:12px}.content-pagination>div{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.content-pagination button{min-width:38px;height:38px;border:1px solid #d3dfdb;border-radius:10px;background:#fff;color:#274d41;font-weight:850;cursor:pointer}.content-pagination button:hover:not(:disabled),.content-pagination button.active{background:#0b5c49;border-color:#0b5c49;color:#fff}.content-pagination button:disabled{opacity:.38;cursor:not-allowed}.record-title-line{display:flex;align-items:flex-start;gap:8px;justify-content:space-between}.record-title-line h4{min-width:0}.record-status{display:inline-flex;align-items:center;width:max-content;flex:0 0 auto;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:900}.record-status.active{background:#daf4e6;color:#147346}.record-status.inactive{background:#ecefee;color:#66766f}.speaker-management-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.speaker-management-grid>.empty{grid-column:1/-1}.speaker-management-card{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:14px;align-items:start;padding:16px;border:1px solid #dce8e3;border-radius:17px;background:#fff;box-shadow:0 7px 22px rgba(16,35,30,.04)}.speaker-management-card.inactive{opacity:.62}.speaker-management-card h4{margin:2px 0 5px;font-size:16px}.speaker-management-card p{margin:0 0 7px;color:#0b5c49;font-size:12px;font-weight:850;text-transform:uppercase}.speaker-management-card small{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;color:#71827c;line-height:1.45}.speaker-card-content{min-width:0}.speaker-usage{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.speaker-usage span{display:inline-flex;padding:5px 8px;border-radius:999px;background:#edf5f2;color:#31554a;font-size:10px;font-weight:800}.speaker-management-card>.row-actions{align-self:start;flex-direction:column}.lecture-row .record-title-line{justify-content:flex-start}.lecture-row .record-status{margin-left:auto}
@media(max-width:900px){.speaker-management-grid{grid-template-columns:1fr}.speaker-management-card{grid-template-columns:64px minmax(0,1fr) auto}.speaker-management-card .avatar{width:64px;height:64px}.responsive-panel-head{align-items:flex-start}.content-pagination{align-items:flex-start;flex-direction:column}}
@media(max-width:650px){.responsive-panel-head{display:grid;grid-template-columns:1fr}.panel-head-actions{justify-content:stretch}.panel-head-actions>*{flex:1}.content-list-toolbar{grid-template-columns:1fr}.content-page-size{min-width:0}.content-pagination>div{width:100%;justify-content:center}.speaker-management-card{grid-template-columns:54px minmax(0,1fr)}.speaker-management-card .avatar{width:54px;height:54px;border-radius:15px}.speaker-management-card>.row-actions{grid-column:1/-1;flex-direction:row;justify-content:flex-end}.lecture-row{grid-template-columns:52px minmax(0,1fr)}.lecture-row>.row-actions{grid-column:2;justify-content:flex-end}.date-block{width:52px;height:58px}.record-title-line{align-items:flex-start;flex-wrap:wrap}.lecture-row .record-status{margin-left:0}}

/* v4.2.13 — tetapan Superduper bagi setiap Player. */
.device-superduper-settings{display:grid;gap:12px;align-content:start;padding:15px;border:1px solid rgba(217,180,91,.34);border-radius:17px;background:linear-gradient(145deg,rgba(217,180,91,.10),rgba(10,76,61,.055));min-width:min(330px,100%)}.device-superduper-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.device-superduper-head strong,.device-superduper-head small{display:block}.device-superduper-head small{margin-top:3px;color:#6d8179}.device-graphics-badge{padding:6px 9px;border-radius:999px;background:#0a4c3d;color:#fff;font-size:10px;font-weight:900;letter-spacing:.07em;white-space:nowrap}.device-superduper-settings label:not(.switch-row){display:grid;gap:6px;font-weight:750;color:#29493f}.device-superduper-settings select{width:100%}.device-superduper-settings .switch-row{margin:0;padding:10px 0;border-top:1px solid rgba(10,76,61,.10);border-bottom:1px solid rgba(10,76,61,.10)}.device-superduper-settings button{justify-self:start}.device-superduper-settings select:disabled{opacity:.55;cursor:not-allowed}@media(max-width:900px){.device-superduper-settings{min-width:0;width:100%}}
.device-v3 .device-superduper-settings{margin-top:14px;max-width:520px}.device-v3 .device-superduper-settings.compact{padding:13px}.device-superduper-readonly{display:flex;justify-content:space-between;gap:12px;margin-top:12px;padding:10px 12px;border-radius:12px;background:#f2f7f5;color:#547069}.device-superduper-readonly strong{color:#173d32}
/* v4.2.21: pilihan animasi khusus setiap Player. */
.device-superduper-settings .switch-row>span{display:grid;gap:3px}
.device-superduper-settings .switch-row>span>b{font-size:13px;color:#173d32}
.device-superduper-settings .switch-row>span>small{font-size:11px;line-height:1.45;color:#6d8179;font-weight:500}
.device-superduper-settings>.note{margin:0;padding:9px 11px;border-radius:11px;background:rgba(10,76,61,.06);font-size:11px;line-height:1.45;color:#567168}
.device-superduper-readonly{display:grid;grid-template-columns:1fr auto;align-items:center}

/* v4.2.22 — profil prestasi dan diagnostik setiap Player. */
.device-performance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.device-performance-grid label{min-width:0}
.device-performance-grid input,.device-performance-grid select{width:100%;min-height:42px}
.device-runtime-diagnostics{display:flex;flex-wrap:wrap;gap:7px;margin-top:2px;padding:10px;border-radius:12px;background:rgba(10,76,61,.065);border:1px solid rgba(10,76,61,.09)}
.device-runtime-diagnostics span{padding:5px 8px;border-radius:999px;background:#fff;color:#61766f;font-size:10px}
.device-runtime-diagnostics b{color:#173d32}
@media(max-width:720px){.device-performance-grid{grid-template-columns:1fr}.device-runtime-diagnostics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.device-runtime-diagnostics span{border-radius:9px}}

/* v4.2.25 Player diagnostics */
.device-diagnostics-actions{display:flex;flex-wrap:wrap;gap:7px;padding:10px;border:1px solid rgba(10,76,61,.1);border-radius:12px;background:rgba(10,76,61,.045)}
.device-diagnostics-actions button,.device-diagnostics-actions .button-link{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:7px 10px;border:1px solid rgba(10,76,61,.16);border-radius:9px;background:#fff;color:#174c3d;text-decoration:none;font:700 11px/1.2 inherit;cursor:pointer}
.device-diagnostics-actions .button-link{background:#0b624d;color:#fff}
.device-diagnostic-top{display:grid;gap:5px;margin-top:8px;padding:10px;border-radius:12px;background:#fff8df;border:1px solid #f1df9f}.device-diagnostic-top>b{font-size:11px;color:#66520d}.device-diagnostic-top span{font-size:10px;color:#78671f}

/* v4.2.26 Android performance recommendation */
.device-performance-advice{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid rgba(10,98,77,.16);border-radius:12px;background:rgba(10,98,77,.06)}
.device-performance-advice div{min-width:0}.device-performance-advice b,.device-performance-advice small{display:block}.device-performance-advice b{color:#174c3d;font-size:12px}.device-performance-advice small{margin-top:3px;color:#61766f;font-size:11px;line-height:1.45}
.device-performance-advice button{flex:0 0 auto;min-height:36px;padding:7px 10px;border:1px solid rgba(10,98,77,.22);border-radius:9px;background:#fff;color:#0b624d;font:700 11px/1.2 inherit;cursor:pointer}
.device-performance-advice.warning{border-color:rgba(190,119,0,.3);background:rgba(255,181,45,.12)}.device-performance-advice.warning b{color:#8a5600}.device-performance-advice.warning button{border-color:#c68316;background:#9b6208;color:#fff}
@media(max-width:720px){.device-performance-advice{align-items:stretch;flex-direction:column}.device-performance-advice button{width:100%}}


/* v4.2.27 — jadual operasi harian setiap Player */
.device-playback-schedule{display:grid;gap:11px;padding:13px;border:1px solid rgba(10,76,61,.16);border-radius:14px;background:rgba(255,255,255,.64)}
.device-playback-schedule-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.device-playback-schedule-head b,.device-playback-schedule-head small{display:block}.device-playback-schedule-head b{color:#173d32}.device-playback-schedule-head small{margin-top:4px;color:#6d8179;font-size:11px;line-height:1.45}
.schedule-status{padding:6px 9px;border-radius:999px;background:#e8f1ee;color:#2a5b4c;font-size:10px;font-weight:900;white-space:nowrap}.schedule-status.standby{background:#172420;color:#fff}
.device-schedule-days{display:grid;gap:7px}.device-schedule-days>span{font-size:12px;font-weight:850;color:#29493f}.device-schedule-days>div{display:flex;flex-wrap:wrap;gap:7px}.device-schedule-days label{display:block!important}.device-schedule-days input{position:absolute;opacity:0;pointer-events:none}.device-schedule-days i{display:block;padding:7px 10px;border:1px solid #d4e1dc;border-radius:999px;background:#fff;color:#526c63;font-size:11px;font-style:normal;font-weight:800;cursor:pointer}.device-schedule-days input:checked+i{border-color:#0a4c3d;background:#0a4c3d;color:#fff}.device-schedule-days input:disabled+i{opacity:.45;cursor:not-allowed}.device-schedule-days>small{font-size:10px;line-height:1.4;color:#71857d}
@media(max-width:720px){.device-playback-schedule-head{display:grid}.schedule-status{justify-self:start}}
