/*
 * AirKita UI v74 — audit kerapian final.
 * UI-only overlay. Tidak mengubah logika transaksi, keuangan, WA, stok, jurnal, API, atau hak akses.
 */
:root{
  --side:250px!important;
  --ui-bg:#f4f8f7;
  --ui-side:#0f665b;
  --ui-side-deep:#0a554b;
  --ui-side-hover:rgba(255,255,255,.09);
  --ui-card:#fff;
  --ui-line:#dce7e3;
  --ui-text:#17231f;
  --ui-muted:#68766f;
  --ui-accent:#0f766e;
}

/* ---------- Kerangka desktop: sidebar selalu penuh dan konten tidak saling menimpa ---------- */
@media (min-width:901px){
  html,body{min-height:100%!important;background:var(--ui-bg)!important}
  body{overflow-x:hidden!important}
  .layout{
    display:grid!important;
    grid-template-columns:var(--side) minmax(0,1fr)!important;
    align-items:start!important;
    width:100%!important;
    min-height:100vh!important;
    background:var(--ui-bg)!important;
  }
  .side{
    position:sticky!important;
    top:0!important;
    align-self:start!important;
    width:var(--side)!important;
    min-width:var(--side)!important;
    height:100vh!important;
    height:100dvh!important;
    min-height:100vh!important;
    padding:16px 12px 26px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    background:linear-gradient(180deg,var(--ui-side) 0%,var(--ui-side-deep) 100%)!important;
    border-right:1px solid rgba(0,0,0,.08)!important;
  }
  .main{
    grid-column:2!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    min-height:100vh!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    background:var(--ui-bg)!important;
  }
  .content{
    width:100%!important;
    max-width:1600px!important;
    min-width:0!important;
    margin:0 auto!important;
    padding:22px 26px 28px!important;
  }
}

/* ---------- Identitas sidebar ---------- */
.side .brand{
  margin:3px 8px 2px!important;
  max-width:100%!important;
  font-size:22px!important;
  line-height:1.05!important;
  letter-spacing:.01em!important;
  font-weight:900!important;
  color:#fff!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}
.side>.muted,.side .tk-store-name{
  display:block!important;
  margin:4px 8px 14px!important;
  padding:0!important;
  max-width:100%!important;
  color:#d2e9e3!important;
  font-size:11.5px!important;
  line-height:1.35!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
.side .nav{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  padding:0 0 42px!important;
  overflow:visible!important;
}
.side .nav>a,
.side .nav details>a{
  max-width:100%!important;
}

/* ---------- Accordion menu: tidak ada teks hilang/terpotong ---------- */
.side .nav details{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  margin:3px 0!important;
  padding:0!important;
  border:0!important;
  border-radius:10px!important;
  background:rgba(255,255,255,.025)!important;
  overflow:visible!important; /* penting: submenu panjang tidak terpotong */
}
.side .nav summary{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  width:100%!important;
  min-width:0!important;
  min-height:40px!important;
  margin:0!important;
  padding:9px 32px 9px 11px!important;
  border-radius:9px!important;
  color:#f5fffc!important;
  font-size:13px!important;
  font-weight:800!important;
  line-height:1.25!important;
  letter-spacing:0!important;
  text-transform:none!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  list-style:none!important;
  cursor:pointer!important;
}
.side .nav summary::-webkit-details-marker{display:none!important}
.side .nav summary:hover,.side .nav details[open]>summary{background:var(--ui-side-hover)!important}
.side .nav summary::after{
  content:'›'!important;
  position:absolute!important;
  right:11px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  font-size:19px!important;
  line-height:1!important;
  color:#c6e2da!important;
}
.side .nav details[open]>summary::after{transform:translateY(-50%) rotate(90deg)!important}
.side .nav a{
  display:block!important;
  width:auto!important;
  max-width:calc(100% - 8px)!important;
  min-width:0!important;
  margin:2px 4px!important;
  padding:8px 10px!important;
  border:0!important;
  border-radius:8px!important;
  color:#edf9f5!important;
  background:transparent!important;
  font-size:12.5px!important;
  font-weight:650!important;
  line-height:1.3!important;
  white-space:normal!important;
  overflow:visible!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  text-overflow:clip!important;
}
.side .nav details a{padding-left:17px!important}
.side .nav a:hover{background:rgba(255,255,255,.075)!important;color:#fff!important}
.side .nav a.active{
  background:#fff!important;
  color:#0b6255!important;
  box-shadow:0 3px 10px rgba(0,0,0,.10)!important;
  font-weight:800!important;
}
.side::-webkit-scrollbar{width:7px!important}
.side::-webkit-scrollbar-track{background:rgba(255,255,255,.03)!important}
.side::-webkit-scrollbar-thumb{background:rgba(255,255,255,.30)!important;border-radius:999px!important}
.side{scrollbar-width:thin!important;scrollbar-color:rgba(255,255,255,.32) transparent!important}

/* ---------- Header: judul dan aksi tidak tumpang tindih ---------- */
.top{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:16px!important;
  width:100%!important;
  min-width:0!important;
  min-height:72px!important;
  height:auto!important;
  padding:12px 26px!important;
  background:#fff!important;
  border-bottom:1px solid var(--ui-line)!important;
}
.tk-top-title{
  flex:1 1 auto!important;
  min-width:0!important;
  max-width:100%!important;
}
.tk-top-title strong{
  display:block!important;
  max-width:100%!important;
  margin:0!important;
  color:var(--ui-text)!important;
  font-size:20px!important;
  line-height:1.2!important;
  white-space:normal!important;
  overflow:visible!important;
  overflow-wrap:anywhere!important;
  text-overflow:clip!important;
}
.tk-top-subtitle{
  display:block!important;
  margin-top:3px!important;
  max-width:100%!important;
  color:var(--ui-muted)!important;
  font-size:11.5px!important;
  line-height:1.3!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
.tk-top-actions{
  flex:0 0 auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:8px!important;
  min-width:0!important;
  max-width:50%!important;
  flex-wrap:wrap!important;
}
.tk-user-label{
  max-width:220px!important;
  color:#44534c!important;
  font-size:11.5px!important;
  line-height:1.25!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  text-align:right!important;
}
.tk-top-actions .btn,.tk-top-actions button{white-space:nowrap!important;flex:0 0 auto!important}

/* ---------- Tipografi umum ---------- */
.main h1,.main h2,.main h3,.main h4,.main h5,.main h6,
.main p,.main label,.main small,.main .muted,.main strong,.main span{
  max-width:100%;
}
.main h1,.main h2,.main h3,.main h4,.main h5,.main h6{
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}
.main h1{font-size:24px!important;line-height:1.2!important;margin:0 0 12px!important}
.main h2{font-size:20px!important;line-height:1.25!important;margin:0 0 10px!important}
.main h3{font-size:16px!important;line-height:1.3!important;margin:0 0 9px!important}
.main p,.main .muted,.main small{line-height:1.45!important;overflow-wrap:anywhere!important}

/* ---------- Card, grid, row: anak tidak boleh melebar menabrak kolom ---------- */
.card{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  padding:17px!important;
  border:1px solid var(--ui-line)!important;
  border-radius:14px!important;
  background:var(--ui-card)!important;
  overflow:visible!important;
}
.grid,.form-grid,.pos,.finance-entry-grid,.shift-summary,.cash-denomination-grid,.opname-category-grid{
  min-width:0!important;
}
.grid>*,.form-grid>*,.pos>*,.finance-entry-grid>*,.shift-summary>*,.cash-denomination-grid>*,.opname-category-grid>*{
  min-width:0!important;
  max-width:100%!important;
}
.row{
  min-width:0!important;
  max-width:100%!important;
  flex-wrap:wrap!important;
}
.row>*{min-width:0!important;max-width:100%}

/* ---------- Form: label panjang dan tombol tetap rapi ---------- */
label{
  max-width:100%!important;
  color:#53615b!important;
  line-height:1.3!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
input,select,textarea{
  max-width:100%!important;
  min-width:0!important;
  line-height:1.3!important;
}
textarea{resize:vertical!important}
.btn,button{
  max-width:100%!important;
  min-width:0!important;
  height:auto!important;
  line-height:1.25!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  text-align:center!important;
}
input[type=file]{height:auto!important;min-height:40px!important;padding:6px 8px!important}

/* ---------- Tabel: tidak tumpang tindih; data lebar digeser horizontal ---------- */
.table-wrap{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow-x:auto!important;
  overflow-y:visible!important;
  -webkit-overflow-scrolling:touch!important;
}
.table-wrap table{max-width:none!important}
th,td{
  line-height:1.35!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}
th{vertical-align:middle!important}
td .row{flex-wrap:wrap!important}
td .btn,td button{margin:2px 0!important}
code,pre{
  max-width:100%!important;
  white-space:pre-wrap!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
}
img,svg,canvas,video{max-width:100%;height:auto}

/* ---------- Beberapa komponen panjang yang sebelumnya mudah turun/tumpang tindih ---------- */
.report-actions,.quick-periods,.pagination,.payment-shortcuts,.print-choice-grid{
  max-width:100%!important;
  min-width:0!important;
  flex-wrap:wrap!important;
}
.cash-count-head,.deposit-form,.payment-grid{min-width:0!important;max-width:100%!important}
.status-item,.account-help,.flash{overflow-wrap:anywhere!important;word-break:normal!important}

/* ---------- Laptop kecil: sidebar tetap rapi tanpa mengorbankan isi ---------- */
@media (min-width:901px) and (max-width:1180px){
  :root{--side:225px!important}
  .side{padding-left:10px!important;padding-right:10px!important}
  .side .brand{font-size:19px!important;margin-left:7px!important;margin-right:7px!important}
  .side .nav summary{font-size:12.5px!important;padding-left:9px!important}
  .side .nav a{font-size:12px!important}
  .top{padding-left:18px!important;padding-right:18px!important}
  .content{padding:18px!important}
  .tk-user-label{max-width:160px!important}
}

/* ---------- Mobile: sidebar tetap utuh, teks boleh membungkus ---------- */
@media (max-width:900px){
  .layout{display:block!important;min-height:100dvh!important}
  .side{
    position:fixed!important;
    inset:0 auto 0 0!important;
    width:min(86vw,310px)!important;
    height:100dvh!important;
    min-height:100dvh!important;
    padding:16px 12px 28px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    background:linear-gradient(180deg,var(--ui-side) 0%,var(--ui-side-deep) 100%)!important;
  }
  .side .nav details{overflow:visible!important}
  .side .nav summary,.side .nav a{white-space:normal!important;overflow-wrap:anywhere!important}
  .main{width:100%!important;min-width:0!important}
  .top{padding:9px 10px!important;gap:7px!important;min-height:64px!important}
  .tk-top-title strong{font-size:16px!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
  .tk-top-actions{max-width:54%!important;gap:5px!important}
  .tk-user-label{display:none!important}
  .content{padding:10px!important;max-width:none!important}
  .card{padding:13px!important;border-radius:12px!important}
  .row{gap:7px!important}
}

@media (max-width:520px){
  .tk-top-actions{max-width:58%!important}
  .tk-account-btn{display:none!important}
  .tk-top-logout-form .tk-logout-btn{min-height:36px!important;padding:7px 9px!important;font-size:11px!important}
  .main h1{font-size:20px!important}.main h2{font-size:18px!important}.main h3{font-size:15px!important}
}

/* Cetak tidak ikut sidebar/header. */
@media print{
  .side,.top,.tk-mobile-menu{display:none!important}
  .layout{display:block!important}
  .main,.content{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
}
