/* =====================================================================
   RESET
   ===================================================================== */
*{ box-sizing: border-box; }
html, body{ margin: 0; min-height: 100%; }

body{
  font-family: var(--font-ui);
  color: var(--ink);
  background: var(--bg);
  min-height: 100vh;
  -webkit-tap-highlight-color: transparent;
}

h1, h2, h3{ margin: 0; font-weight: 700; letter-spacing: -.01em; }
p{ margin: 0; }
button{ font-family: inherit; }

/* app-like feel: teks non-interaktif gak bisa di-select/drag/context-menu.
   PENTING: jangan taruh user-select:none di <body>/parent tombol -- di
   beberapa WebView Android itu bisa bikin klik tombol child ke-block, jadi
   ini di-scope cuma ke elemen teks non-interaktif. */
h1, h2, h3, p, td, th, label, .muted, .badge, .login-msg, header p{
  -webkit-user-select: none; user-select: none;
  -webkit-touch-callout: none;
}
button, .btn, input, select, textarea, a{
  -webkit-user-select: auto; user-select: auto;
  -webkit-touch-callout: default; touch-action: manipulation;
}
::selection{ background: transparent; }

/* WAJIB: beberapa komponen (.panel-card__form, .result-box, dst) set
   display:flex/grid dengan specificity yang SAMA kayak [hidden] bawaan
   browser (sama-sama 0,1,0) -- karena stylesheet kita di-load belakangan,
   tanpa aturan ini elemen hidden="" bisa tetap keliatan. */
[hidden]{ display: none !important; }
