/* ============================================================
   app-style.css - Polesan "terasa seperti app" untuk Kalender Bali
   ------------------------------------------------------------
   File ini TIDAK menggantikan kalenderbaru.css - hanya menambah
   polesan di atasnya. Warna & font mengikuti skema yang sudah ada
   (biru #073A61, kuning #FFFF66) supaya tetap konsisten.
   ============================================================ */

/* --- 1. Matikan efek "situs di browser" --- */

html, body {
    /* Cegah pull-to-refresh karet & overscroll bounce ala web biasa */
    overscroll-behavior-y: contain;
    /* Cegah teks auto-membesar saat rotasi HP (khas Safari iOS) */
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

* {
    /* Hilangkan kotak highlight biru/abu saat tap link di Android/iOS */
    -webkit-tap-highlight-color: transparent;
}

a, button, input[type="submit"] {
    /* Cegah "callout" (menu copy/share) muncul saat tap-and-hold */
    -webkit-touch-callout: none;
}

body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}


/* --- 2. Area aman notch / status bar (hanya berlaku saat dibuka
   sebagai app terinstall, tidak mengubah tampilan saat masih
   dibuka lewat browser biasa) --- */

@media (display-mode: standalone) {
    body {
        padding-top: env(safe-area-inset-top);
        padding-bottom: env(safe-area-inset-bottom);
    }
    div#topheader:first-of-type {
        margin-top: calc(10px + env(safe-area-inset-top));
    }
}


/* --- 3. Touch target lebih besar & nyaman ---
   Tidak ubah warna/font, cuma tambah "ruang tap" di sekeliling link
   supaya lebih gampang dipencet jari, sesuai standar minimum 44px. */

.backsmall a,
.foresmall a,
.judulmenu a {
    display: inline-block;
    padding: 8px 6px;
    min-height: 24px;
}

/* --- 4. Tombol & input bergaya app, bukan widget bawaan browser --- */

input[type="submit"],
input[type="text"] {
    -webkit-appearance: none;
    appearance: none;
    border-radius: 8px;
}

input[type="submit"] {
    background-color: #073A61;
    color: #FFFFFF;
    border: none;
    padding: 10px 20px;
    font-size: 15px;
    font-weight: bold;
    min-height: 40px;
}

input[type="submit"]:active {
    background-color: #052840;
}

input[type="text"] {
    border: 1px solid #CCCCCC;
    padding: 8px 10px;
    font-size: 15px;
    min-height: 20px;
}


/* --- 5. Kartu/section dengan sudut membulat & bayangan halus,
   supaya terasa seperti "card" app modern, bukan blok tabel HTML
   lama yang kotak tegas --- */

div#container {
    border-radius: 12px;
    overflow: hidden;
}

div#header {
    border-radius: 8px;
}


/* --- 6. Efek tekan (active state) di baris menu bawah, supaya ada
   umpan balik visual seperti app native saat menu ditekan --- */

.backsmall a:active {
    opacity: 0.6;
}


/* --- 7. Bottom tab bar (bottom-nav.php) --- */

/* Kasih jarak bawah supaya konten terakhir halaman tidak
   ketutup tab bar yang fixed */
body {
    padding-bottom: calc(64px + env(safe-area-inset-bottom));
}

.kbd-tabbar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 40;
    display: flex;
    background-color: #073A61;
    padding-bottom: env(safe-area-inset-bottom);
    box-shadow: 0 -2px 8px rgba(0,0,0,0.15);
}

.kbd-tab {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    padding: 8px 4px 6px;
    color: #A8BFD6;
    text-decoration: none;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 10px;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.kbd-tab svg {
    width: 22px;
    height: 22px;
}

.kbd-tab-active {
    color: #FFFF66;
}

.kbd-tab:active {
    opacity: 0.7;
}

/* Checkbox tersembunyi yang mengontrol buka/tutup panel "Lainnya" -
   tanpa JavaScript, murni CSS */
.kbd-more-toggle {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.kbd-more-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.4);
    z-index: 45;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
}

.kbd-more-sheet {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 46;
    background: #FFFFFF;
    border-radius: 16px 16px 0 0;
    padding: 8px 16px calc(20px + env(safe-area-inset-bottom));
    transform: translateY(100%);
    transition: transform 0.25s ease;
    max-height: 70vh;
    overflow-y: auto;
}

.kbd-more-toggle:checked ~ .kbd-more-overlay {
    opacity: 1;
    pointer-events: auto;
}

.kbd-more-toggle:checked ~ .kbd-more-sheet {
    transform: translateY(0);
}

.kbd-more-sheet-handle {
    width: 36px;
    height: 4px;
    background: #DDDDDD;
    border-radius: 2px;
    margin: 8px auto 12px;
}

.kbd-more-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px 12px;
    padding-bottom: 4px;
}

.kbd-more-grid a {
    display: block;
    padding: 12px 8px;
    color: #073A61;
    text-decoration: none;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 13px;
    border-bottom: 1px solid #F0F0F0;
}

.kbd-more-grid a:active {
    background-color: #F5F5F5;
}


/* --- 8. Menu mengambang (FAB) + drawer untuk index.php --- */

/* Tombol bulat mengambang, tidak makan ruang layout sama sekali
   (position: fixed artinya lepas dari alur normal halaman) */
.kbd-fab {
    position: fixed;
    top: calc(12px + env(safe-area-inset-top));
    left: 12px;
    z-index: 50;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background-color: #073A61;
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(0,0,0,0.3);
    cursor: pointer;
}

.kbd-fab:active {
    opacity: 0.8;
}

/* Checkbox tersembunyi pengontrol buka/tutup drawer - murni CSS,
   tanpa JavaScript untuk buka/tutupnya */
.kbd-drawer-toggle {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.kbd-drawer-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.4);
    z-index: 51;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
}

.kbd-drawer {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 52;
    width: min(80vw, 300px);
    background: #FFFFFF;
    box-shadow: 2px 0 12px rgba(0,0,0,0.2);
    transform: translateX(-100%);
    transition: transform 0.25s ease;
    display: flex;
    flex-direction: column;
    padding-top: env(safe-area-inset-top);
    padding-bottom: env(safe-area-inset-bottom);
}

.kbd-drawer-toggle:checked ~ .kbd-drawer-overlay {
    opacity: 1;
    pointer-events: auto;
}

.kbd-drawer-toggle:checked ~ .kbd-drawer {
    transform: translateX(0);
}

.kbd-drawer-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px;
    background-color: #073A61;
    color: #FFFFFF;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-weight: bold;
    font-size: 16px;
}

.kbd-drawer-close {
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    padding: 4px 8px;
}

.kbd-drawer-body {
    flex: 1;
    overflow-y: auto;
    padding: 8px 0;
}

/* Setiap kategori jadi baris accordion vertikal - ramping, tidak
   pernah melebihi lebar drawer (yang sudah dibatasi max 300px) */
.kbd-accordion-item {
    border-bottom: 1px solid #EEEEEE;
}

.kbd-accordion-btn {
    display: flex;
    align-items: center;
    gap: 14px;
    width: calc(100% - 16px);
    margin: 2px 8px;
    text-align: left;
    -webkit-appearance: none;
    appearance: none;
    border: none;
    background: none;
    color: #333333;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 15px;
    padding: 12px 12px;
    border-radius: 24px;
    cursor: pointer;
}

.kbd-accordion-icon {
    flex: 0 0 auto;
    display: flex;
    color: #666666;
}

.kbd-accordion-label {
    flex: 1;
}

.kbd-accordion-btn::after {
    content: '\203A';
    color: #999999;
    transition: transform 0.2s ease;
}

.kbd-accordion-btn-active::after {
    transform: rotate(90deg);
}

/* Highlight pil biru saat kategori aktif/terbuka - mirip pola
   menu Google AdSense mobile */
.kbd-accordion-btn-active {
    background-color: #E8F0FE;
    color: #073A61;
    font-weight: bold;
}

.kbd-accordion-btn-active .kbd-accordion-icon,
.kbd-accordion-btn-active::after {
    color: #073A61;
}

.kbd-topnav-panel {
    display: none;
    flex-direction: column;
    background-color: transparent;
    padding: 0 16px 4px 52px;
}

.kbd-topnav-panel-open {
    display: flex;
}

.kbd-topnav-panel a {
    display: block;
    padding: 12px 6px;
    color: #073A61;
    text-decoration: none;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 14px;
    border-bottom: 1px solid #EAEAEA;
}

.kbd-topnav-panel a:last-child {
    border-bottom: none;
}

.kbd-topnav-panel a:active {
    background-color: #EFEFEF;
}
