/* SIAPIYA v3.19.4 — Adaptive Workspace · Mobile Responsiveness & Performance */
.siapiya-adaptive-nav{display:flex;flex-direction:column;gap:.3rem}
.siapiya-adaptive-nav .siapiya-nav-section{padding:.7rem .9rem .2rem;font-size:.67rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--bs-secondary-color)}
.siapiya-adaptive-nav a{min-height:44px}
.siapiya-adaptive-nav a .siapiya-nav-note{margin-left:auto;font-size:.68rem;font-weight:700;color:var(--bs-secondary-color)}
.siapiya-module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.siapiya-module-card{appearance:none;width:100%;text-align:left;border:1px solid var(--bs-border-color);background:var(--bs-body-bg);color:var(--bs-body-color);border-radius:16px;padding:16px;min-height:112px;box-shadow:0 .35rem 1rem rgba(15,23,42,.055);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.siapiya-module-card:hover,.siapiya-module-card:focus-visible{transform:translateY(-1px);box-shadow:0 .55rem 1.25rem rgba(15,23,42,.09);border-color:color-mix(in srgb,var(--bs-primary) 45%,var(--bs-border-color));outline:none}
.siapiya-module-card .siapiya-module-icon{width:42px;height:42px;border-radius:13px;display:inline-grid;place-items:center;background:var(--bs-primary-bg-subtle);color:var(--bs-primary);font-size:1.2rem;margin-bottom:12px}
.siapiya-module-card .siapiya-module-title{font-weight:800;margin-bottom:3px}
.siapiya-module-card .siapiya-module-meta{font-size:.78rem;color:var(--bs-secondary-color);line-height:1.35}
.siapiya-workspace-hero{border:0;border-radius:20px;overflow:hidden;background:linear-gradient(135deg,var(--bs-primary) 0%,#3b82f6 60%,#06b6d4 100%);color:#fff}
.siapiya-workspace-hero .card-body{padding:1.25rem}
.siapiya-workspace-hero .siapiya-kicker{font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;opacity:.78}
.siapiya-workspace-summary{margin-bottom:1rem}
.siapiya-workspace-summary .siapiya-module-card{min-height:92px;padding:13px}
.siapiya-workspace-summary .siapiya-module-icon{width:34px;height:34px;border-radius:11px;font-size:1rem;margin-bottom:8px}
.siapiya-helper-copy{display:-webkit-box!important;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;max-width:72ch}
.siapiya-compact-copy .page-intro p.text-muted,.siapiya-compact-copy .page-intro .text-muted.small{margin-bottom:.35rem!important}
.siapiya-mobile-module-link{display:flex!important;align-items:center;gap:.7rem}
.siapiya-mobile-module-link .badge{margin-left:auto}
@media(max-width:767.98px){
  .siapiya-module-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .siapiya-module-card{min-height:98px;padding:12px;border-radius:14px}
  .siapiya-module-card .siapiya-module-icon{width:36px;height:36px;margin-bottom:8px}
  .siapiya-module-card .siapiya-module-meta{font-size:.72rem}
  .siapiya-helper-copy{-webkit-line-clamp:1}
  .siapiya-workspace-summary .siapiya-module-grid{display:flex;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:3px}
  .siapiya-workspace-summary .siapiya-module-card{min-width:155px;scroll-snap-align:start}
}
@media(prefers-reduced-motion:reduce){.siapiya-module-card{transition:none}}

/* v3.19.1 — bottom navigation labels stay compact and aligned. */
@media(max-width:767.98px){
  #bottomNav .bottom-nav-item>span{display:block;width:100%;padding-inline:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;line-height:1.05}
}

/* v3.19.2 — Mobile compositor & tap responsiveness. Desktop visual language is unchanged. */
.siapiya-tap-pending{opacity:.78!important;transform:scale(.985)!important}
@media(max-width:767.98px){
  a,button,.btn,.bottom-nav-item,.siapiya-module-card,.absen-btn{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
  .app-topbar,.bottom-nav,.sticky-simpan-bar,.sidebar{
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  .sidebar{background:rgba(255,255,255,.985)!important;}
  .app-topbar{background:rgba(245,245,247,.985)!important;box-shadow:0 1px 5px rgba(15,23,42,.045)!important}
  .bottom-nav{background:rgba(255,255,255,.985)!important;box-shadow:0 -1px 6px rgba(15,23,42,.055)!important}
  .sticky-simpan-bar{background:rgba(255,255,255,.985)!important;box-shadow:0 -2px 8px rgba(15,23,42,.06)!important}
  [data-bs-theme="dark"] .sidebar{background:rgba(28,28,30,.985)!important;}
  [data-bs-theme="dark"] .app-topbar{background:rgba(28,28,30,.985)!important;box-shadow:0 1px 5px rgba(0,0,0,.28)!important}
  [data-bs-theme="dark"] .bottom-nav,[data-bs-theme="dark"] .sticky-simpan-bar{background:rgba(28,28,30,.985)!important;box-shadow:0 -1px 6px rgba(0,0,0,.28)!important}
  .siapiya-module-card{box-shadow:0 1px 4px rgba(15,23,42,.045);transition:transform .08s ease,border-color .08s ease,opacity .08s ease}
  .siapiya-module-card:hover,.siapiya-module-card:focus-visible{transform:none;box-shadow:0 1px 4px rgba(15,23,42,.045)}
  .bottom-nav-item,.btn,.absen-btn,.form-control,.form-select{transition-property:transform,opacity,background-color,border-color,color!important;transition-duration:.08s!important}
  .bottom-nav-item i{transition-property:transform!important;transition-duration:.08s!important}
  .bottom-nav-item:active,.siapiya-module-card:active,.btn:active{transform:scale(.985)}
  .absen-card{box-shadow:0 1px 5px rgba(15,23,42,.04)!important}
  .absen-card:hover{transform:none!important;box-shadow:0 1px 5px rgba(15,23,42,.04)!important}
  [data-bs-theme="dark"] .absen-card{box-shadow:0 1px 5px rgba(0,0,0,.24)!important}
}
@media(max-width:767.98px) and (hover:none){
  .siapiya-module-card:hover,.btn:hover,.absen-card:hover{transform:none!important}
}

/* v3.19.4 — Bottom sheet must never be hidden behind the fixed mobile bottom nav. */
:root{--siapiya-mobile-bottom-nav-height:70px}
@media(max-width:767.98px){
  #mobileMenuBottom.offcanvas-bottom{
    bottom:var(--siapiya-mobile-bottom-nav-height)!important;
    max-height:calc(100dvh - var(--siapiya-mobile-bottom-nav-height) - 8px)!important;
    min-height:min(50dvh,calc(100dvh - var(--siapiya-mobile-bottom-nav-height) - 8px))!important;
    border-bottom:1px solid var(--bs-border-color)!important;
  }
  #mobileMenuBottom .offcanvas-body{
    overflow-y:auto!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding-bottom:calc(20px + env(safe-area-inset-bottom))!important;
    scroll-padding-bottom:calc(20px + env(safe-area-inset-bottom));
  }
  #mobileMenuBottom .siapiya-adaptive-nav{padding-bottom:8px}
}
