/* Tema gelap, tombol besar, kontras tinggi untuk dipakai di jalan malam hari (NFR kegunaan) */
:root {
    --teal: #13a89e; --teal-d: #0b7a70; --oranye: #f28c28;
    --bs-primary: #13a89e; --bs-primary-rgb: 19,168,158;
    --bs-link-color: #4fd1c5; --bs-link-hover-color: #81e6d9;
    --bs-link-color-rgb: 79,209,197;
}
[data-bs-theme=dark] { --bs-body-bg: #0f1417; --bs-body-bg-rgb: 15,20,23; --bs-tertiary-bg: #172026; --bs-secondary-bg: #1c262d; }
body { min-height: 100vh; font-size: 1.02rem; }
.app-nav { background: #0b3b37; border-bottom: 2px solid var(--teal); }
.app-nav .nav-link.active { color: #fff; border-bottom: 2px solid var(--oranye); }
.btn-primary { --bs-btn-bg: var(--teal-d); --bs-btn-border-color: var(--teal-d); --bs-btn-hover-bg: var(--teal); --bs-btn-hover-border-color: var(--teal); --bs-btn-active-bg: var(--teal); }
.btn-oranye { background: var(--oranye); color: #111; font-weight: 600; border: 0; }
.btn-oranye:hover { background: #ffa347; color: #000; }
.text-teal { color: #4fd1c5 !important; } .text-oranye { color: var(--oranye) !important; }
.bg-teal { background: var(--teal-d) !important; }
.card { border-color: #25323a; }
.stat .num { font-size: 1.9rem; font-weight: 700; line-height: 1.1; }
.stat .lbl { font-size: .82rem; color: var(--bs-secondary-color); text-transform: uppercase; letter-spacing: .03em; }
.table > :not(caption) > * > * { padding: .55rem .6rem; }
.form-control, .form-select, .btn { min-height: 44px; }
.btn-sm { min-height: 34px; }
.bar { height: 10px; background: var(--teal); border-radius: 6px; }
.mono { font-family: ui-monospace, Menlo, Consolas, monospace; }
.leaflet-container { background: #1b2226; }
#peta { height: calc(100vh - 170px); min-height: 380px; border-radius: .5rem; }
.dot { display:inline-block; width: 12px; height: 12px; border-radius: 50%; }

/* ---- Aplikasi lapangan ---- */
.field { padding-bottom: 90px; }
.field-top { position: sticky; top: 0; z-index: 1020; background: #0b3b37; border-bottom: 2px solid var(--teal); }
.btn-xl { font-size: 1.25rem; padding: 1rem .75rem; border-radius: 1rem; font-weight: 600; }
.tap-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.tap { min-height: 118px; border-radius: 1.1rem; border: 0; color: #fff; font-weight: 700; font-size: 1.1rem; display: flex; flex-direction: column; align-items: center; justify-content: center; user-select: none; -webkit-tap-highlight-color: transparent; transition: transform .06s; }
.tap:active { transform: scale(.96); }
.tap .n { font-size: 2.3rem; line-height: 1; }
.tap-dewasa_l { background: #1f6fb2; } .tap-dewasa_p { background: #b23a7a; } .tap-anak { background: #2f9d4f; } .tap-lansia { background: #b86a12; }
.sos { position: fixed; right: 14px; bottom: 16px; z-index: 1050; width: 66px; height: 66px; border-radius: 50%; background: #d7263d; color: #fff; border: 3px solid #fff3; font-weight: 800; box-shadow: 0 4px 18px #0009; }
.lok-pill { white-space: nowrap; }
.hscroll { display: flex; gap: .5rem; overflow-x: auto; padding-bottom: .25rem; }
.warn-box { background: #3a2a0c; border-left: 4px solid var(--oranye); }
.thumb { width: 72px; height: 72px; object-fit: cover; border-radius: .5rem; }
#reader video { border-radius: .75rem; }
.toast-float { position: fixed; left: 50%; transform: translateX(-50%); bottom: 96px; z-index: 1060; min-width: 240px; }

@media print { .no-print, .app-nav { display: none !important; } body { background: #fff; color: #000; } }

[x-cloak] { display: none !important; }
.sheet { position: fixed; inset: 0; z-index: 1055; background: #000b; display: flex; align-items: flex-end; }
.sheet > .isi { background: var(--bs-body-bg); width: 100%; max-height: 92vh; overflow-y: auto; border-radius: 1.2rem 1.2rem 0 0; padding: 1rem 1rem 2rem; border-top: 3px solid var(--teal); }
@media (min-width: 640px) { .sheet { align-items: center; justify-content: center; } .sheet > .isi { max-width: 560px; border-radius: 1.2rem; } }
.p-item { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .7rem .8rem; border-bottom: 1px solid #25323a; cursor: pointer; }
.p-item:active { background: #1c262d; }
.sos-big { font-size: 1.2rem; padding: 1rem; border-radius: 1rem; }
.spin { display:inline-block; animation: spin 1s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } }
