/* ============================================================================
 * LILY GRADUATION — DASHBOARD (dibangun ulang dari nol, v1.0.45)
 * ----------------------------------------------------------------------------
 * PELAJARAN DARI VERSI SEBELUMNYA (penyebab teks menumpuk vertikal):
 * Aturan global `* { max-width:100% }` + `word-break` memaksa kolom tabel dan
 * isi kartu menyusut sampai selebar 1 huruf. Di berkas ini TIDAK ADA aturan
 * global semacam itu. Pendekatannya:
 *   - Tabel mempertahankan lebar alaminya, digulir mendatar di pembungkusnya.
 *   - Sel tabel TIDAK boleh patah per huruf (white-space:nowrap).
 *   - Elemen fleksibel diberi `min-width:0` agar tidak mendorong layout.
 *   - Pemotongan kata hanya untuk elemen tertentu (path, URL, kode).
 *
 * Breakpoint: mobile <768px · tablet 768–1023px · desktop ≥1024px
 * Warna mengikuti token tema (--lily-admin-*) → terang/gelap konsisten.
 * ========================================================================== */

/* ---------- 1. TOKEN ---------- */
:root{
  --app-gold:#a9905f; --app-on-gold:#fff;
  --app-surface:#fff; --app-bg:#f5f2ec; --app-ink:#1c1a17; --app-muted:#6f6858; --app-line:#e6dfd2;
  --app-danger:#b3261e; --app-ok:#2e7d32;
  --app-top:54px; --app-nav:66px; --app-side:232px;
  --app-radius:12px;
  --app-shadow:0 1px 2px rgba(28,26,23,.05),0 6px 18px rgba(28,26,23,.05);
}
html[data-lily-admin-theme="dark"],
body[data-lily-admin-theme="dark"]{
  --app-gold:#c9ad76; --app-on-gold:#20180c;
  --app-surface:#1f2223; --app-bg:#151718; --app-ink:#f2eee7; --app-muted:#b0a99e; --app-line:#3a3f40;
  --app-danger:#f2b8b5; --app-ok:#a6d6aa;
  --app-shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.32);
}

/* ---------- 2. KERANGKA ---------- */
body.lily-dash-host *,body.lily-dash-host *::before,body.lily-dash-host *::after{box-sizing:border-box}
.lilyapp-top,.lilyapp-nav,.lilyapp-navitem,.lilyapp-ic,.lilyapp-sheet,.lily-modal,.lily-acc-modal,.lily-cal-sheet{box-sizing:border-box}
body.lily-dash-host{background:var(--app-bg)!important;color:var(--app-ink);
  -webkit-text-size-adjust:100%;text-size-adjust:100%;}
body.lily-dash-host #wpwrap,body.lily-dash-host #wpbody,body.lily-dash-host #wpbody-content{background:var(--app-bg)}
body.lily-dash-host #wpadminbar,
body.lily-dash-host #adminmenumain,body.lily-dash-host #adminmenuback,body.lily-dash-host #adminmenuwrap,
body.lily-dash-host #wpfooter,body.lily-dash-host #screen-meta,body.lily-dash-host #screen-meta-links,
body.lily-dash-host .update-nag,body.lily-dash-host .lily-app-toolbar,body.lily-dash-host .lily-app-nav{display:none!important}
html.wp-toolbar{padding-top:0!important}
body.lily-dash-host #wpcontent{margin-left:0!important;padding-left:0!important}
body.lily-dash-host #wpbody-content{
  padding:calc(var(--app-top) + 12px) 0 calc(var(--app-nav) + env(safe-area-inset-bottom,0px) + 24px);
  overflow-x:hidden;                 /* hanya di tingkat halaman, bukan elemen */
}
body.lily-dash-host .wrap{margin:0 auto!important;padding:0 14px;max-width:100%}

/* ---------- 3. HEADER ---------- */
.lilyapp-top{
  position:fixed;inset:0 0 auto 0;height:var(--app-top);z-index:9990;
  display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px;
  background:var(--app-surface);border-bottom:1px solid var(--app-line);
}
.lilyapp-brand{font-weight:800;font-size:1rem;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--app-ink)}
.lilyapp-top-actions{display:flex;gap:8px;flex:0 0 auto}
.lilyapp-ic{
  display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex:0 0 auto;
  border:1px solid var(--app-line);border-radius:10px;background:var(--app-bg);color:var(--app-ink);
  text-decoration:none;cursor:pointer;
}
.lilyapp-ic .dashicons{font-size:18px;width:18px;height:18px;line-height:18px}

/* ---------- 4. NAVIGASI BAWAH (mobile/tablet) ---------- */
.lilyapp-nav{
  position:fixed;left:0;right:0;bottom:0;z-index:9990;
  height:calc(var(--app-nav) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);
  display:flex;background:var(--app-surface);border-top:1px solid var(--app-line);
}
.lilyapp-navitem{
  flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  border:0;background:transparent;cursor:pointer;text-decoration:none;padding:8px 4px;
  color:var(--app-muted);font-size:.7rem;font-weight:700;line-height:1;
  -webkit-tap-highlight-color:transparent;
}
.lilyapp-navitem span:not(.dashicons){max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lilyapp-navitem .dashicons{font-size:23px;width:23px;height:23px}
.lilyapp-navitem.is-active{color:var(--app-gold)}

/* ---------- 5. TIPOGRAFI ---------- */
body.lily-dash-host .wrap h1,
body.lily-dash-host .wrap > h2:first-child{font-size:1.25rem;font-weight:800;line-height:1.25;margin:0 0 .5rem;color:var(--app-ink)}
body.lily-dash-host h2{font-size:1.05rem;line-height:1.3;margin:0 0 .5rem;color:var(--app-ink)}
body.lily-dash-host h3{font-size:.95rem;line-height:1.3;margin:0 0 .35rem;color:var(--app-ink)}
body.lily-dash-host p,body.lily-dash-host li,body.lily-dash-host label{font-size:.875rem;line-height:1.5;color:var(--app-ink)}
body.lily-dash-host .description,body.lily-dash-host small{font-size:.78rem;line-height:1.45;color:var(--app-muted)}
body.lily-dash-host a{color:var(--app-gold)}
/* Pemotongan kata HANYA untuk konten teknis panjang */
body.lily-dash-host code,body.lily-dash-host .lily-readonly-stat,body.lily-dash-host pre{overflow-wrap:anywhere}
body.lily-dash-host pre{white-space:pre-wrap}

/* Panduan singkat: ringkas & bisa ditutup */
body.lily-dash-host .lily-beginner-notice{
  background:var(--app-surface);border:1px solid var(--app-line);border-left:3px solid var(--app-gold);
  border-radius:var(--app-radius);padding:10px 12px;margin:0 0 12px;box-shadow:none;
}
body.lily-dash-host .lily-beginner-notice p{margin:0 0 .3rem;font-size:.82rem;font-weight:700}
body.lily-dash-host .lily-beginner-notice ol{margin:0;padding-left:1.15rem}
body.lily-dash-host .lily-beginner-notice li{font-size:.78rem;line-height:1.4;color:var(--app-muted)}

/* ---------- 6. PANEL & KARTU ---------- */
body.lily-dash-host .lily-admin-panel,
body.lily-dash-host .lily-card,body.lily-dash-host .card,body.lily-dash-host .postbox,
body.lily-dash-host .lily-hub-card,body.lily-dash-host .lily-mobile-card,
body.lily-dash-host .lily-crew-card,body.lily-dash-host .lily-dashboard-card,
body.lily-dash-host .lily-submission-item,body.lily-dash-host .lily-client-summary-card,
body.lily-dash-host .lily-booking-card,body.lily-dash-host .lily-h1-group{
  background:var(--app-surface);border:1px solid var(--app-line);border-radius:var(--app-radius);
  box-shadow:var(--app-shadow);padding:14px;margin:0 0 12px;min-width:0;
}
body.lily-dash-host .lily-admin-heading{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start;justify-content:space-between;margin-bottom:12px}
body.lily-dash-host .lily-admin-heading > div{min-width:0;flex:1 1 240px}

/* ---------- 7. TABEL (kunci: lebar alami + digulir) ---------- */
body.lily-dash-host .lily-scroll-x,
body.lily-dash-host .lily-table-scroll{
  max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;
  background:var(--app-surface);border:1px solid var(--app-line);border-radius:var(--app-radius);
  box-shadow:var(--app-shadow);margin:0 0 12px;
}
body.lily-dash-host .lily-scroll-x > table,
body.lily-dash-host .lily-table-scroll > table{
  width:auto;min-width:100%;border-collapse:collapse;background:transparent;border:0;margin:0;
}
body.lily-dash-host .lily-scroll-x th,body.lily-dash-host .lily-scroll-x td,
body.lily-dash-host .lily-table-scroll th,body.lily-dash-host .lily-table-scroll td{
  white-space:nowrap;                 /* CEGAH teks menumpuk vertikal */
  padding:10px 12px;font-size:.82rem;line-height:1.4;color:var(--app-ink);
  border-bottom:1px solid var(--app-line);text-align:left;vertical-align:middle;
}
body.lily-dash-host .lily-scroll-x th,body.lily-dash-host .lily-table-scroll th{
  font-weight:700;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--app-muted);
  background:var(--app-bg);
}
/* Menempelnya baris judul dibatasi pada <thead> saja.
   Selektor lama (`.lily-scroll-x th`) juga mengenai <th> di dalam <tbody> —
   pada tabel .widefat itu kolom checkbox/judul baris — sehingga setiap baris
   ikut menempel dan saling menumpuk. */
body.lily-dash-host .lily-scroll-x > table > thead > tr > th,
body.lily-dash-host .lily-table-scroll > table > thead > tr > th{
  position:sticky;top:0;z-index:2;
}
body.lily-dash-host .lily-scroll-x tbody th,
body.lily-dash-host .lily-table-scroll tbody th{position:static}
body.lily-dash-host .lily-scroll-x tr:last-child td{border-bottom:0}
/* Petunjuk bahwa tabel bisa digeser */
body.lily-dash-host .lily-scroll-hint{font-size:.72rem;color:var(--app-muted);margin:-6px 0 10px}

/* ---------- 8. FORM & TOMBOL ---------- */
body.lily-dash-host input[type=text],body.lily-dash-host input[type=search],
body.lily-dash-host input[type=email],body.lily-dash-host input[type=url],
body.lily-dash-host input[type=tel],body.lily-dash-host input[type=number],
body.lily-dash-host input[type=password],body.lily-dash-host input[type=date],
body.lily-dash-host input[type=time],body.lily-dash-host select,body.lily-dash-host textarea{
  width:100%;box-sizing:border-box;min-height:42px;padding:.5rem .7rem;font-size:16px;
  border:1px solid var(--app-line);border-radius:10px;background:var(--app-surface);color:var(--app-ink);
  box-shadow:none;line-height:1.4;
}
body.lily-dash-host textarea{min-height:96px}
body.lily-dash-host input:focus,body.lily-dash-host select:focus,body.lily-dash-host textarea:focus{
  border-color:var(--app-gold);outline:2px solid color-mix(in srgb,var(--app-gold) 28%,transparent);outline-offset:0;
}
body.lily-dash-host ::placeholder{color:var(--app-muted);opacity:1}
body.lily-dash-host .form-table,body.lily-dash-host .form-table tbody,body.lily-dash-host .form-table tr,
body.lily-dash-host .form-table th,body.lily-dash-host .form-table td{display:block;width:auto;padding:0;background:transparent;border:0}
body.lily-dash-host .form-table th{padding:.5rem 0 .25rem;font-weight:700;font-size:.85rem}
body.lily-dash-host .form-table td{padding-bottom:.75rem}
body.lily-dash-host label > input[type=checkbox],body.lily-dash-host label > input[type=radio]{width:auto;min-height:0;accent-color:var(--app-gold);margin-right:6px}

body.lily-dash-host .button,body.lily-dash-host .button-secondary{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  min-height:40px;padding:.4rem .9rem;border-radius:10px;
  border:1px solid var(--app-line);background:var(--app-surface);color:var(--app-ink);
  font-size:.85rem;font-weight:700;text-shadow:none;box-shadow:none;cursor:pointer;
}
body.lily-dash-host .button-primary{background:var(--app-gold);border-color:var(--app-gold);color:var(--app-on-gold)}
body.lily-dash-host .button-link-delete,body.lily-dash-host .submitdelete{color:var(--app-danger);border-color:transparent;background:transparent}
body.lily-dash-host .button .dashicons{font-size:16px;width:16px;height:16px}

/* Notice */
body.lily-dash-host .notice,body.lily-dash-host .updated,body.lily-dash-host .error{
  background:var(--app-surface);border:1px solid var(--app-line);border-left:3px solid var(--app-gold);
  border-radius:var(--app-radius);padding:10px 12px;margin:0 0 12px;box-shadow:none;color:var(--app-ink);
}
body.lily-dash-host .notice-success{border-left-color:var(--app-ok)}
body.lily-dash-host .notice-error,body.lily-dash-host .error{border-left-color:var(--app-danger)}

/* Chip status */
body.lily-dash-host .lily-state,body.lily-dash-host .lily-progress-badge,body.lily-dash-host .lily-inv-badge{
  display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.7rem;font-weight:700;
  white-space:nowrap;line-height:1.5;
}

/* ---------- 9. FILTER & PENCARIAN ---------- */
body.lily-dash-host .lily-booking-search{display:flex;gap:8px;margin:0 0 10px}
body.lily-dash-host .lily-booking-search input{flex:1 1 auto;min-width:0}
body.lily-dash-host .lily-booking-search .button{flex:0 0 auto}
body.lily-dash-host .lily-booking-filters,body.lily-dash-host .lily-filter-form,
body.lily-dash-host .lily-calendar-filters{
  display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;
  background:var(--app-surface);border:1px solid var(--app-line);border-radius:var(--app-radius);padding:10px;margin:0 0 12px;
}
body.lily-dash-host .lily-booking-filters label,body.lily-dash-host .lily-filter-form label,
body.lily-dash-host .lily-calendar-filters label{
  display:flex;flex-direction:column;gap:3px;flex:1 1 140px;min-width:0;font-size:.72rem;font-weight:700;color:var(--app-muted);
}
body.lily-dash-host .lily-booking-filters .button,body.lily-dash-host .lily-filter-form .button{flex:0 0 auto}
body.lily-dash-host .lily-booking-filter-actions{display:flex;gap:8px;flex:1 1 100%}
body.lily-dash-host .lily-booking-filter-actions .button{flex:1 1 0}

/* ---------- 10. KARTU BOOKING ---------- */
body.lily-dash-host .lily-booking-cards{display:grid;grid-template-columns:1fr;gap:12px}
body.lily-dash-host .lily-booking-card{display:flex;flex-direction:column;gap:8px}
body.lily-dash-host .lily-booking-card > div{min-width:0}
body.lily-dash-host .lily-booking-card h3{font-size:1rem;margin:.25rem 0 .1rem}
body.lily-dash-host .lily-booking-card p{font-size:.8rem;line-height:1.5;margin:0;color:var(--app-muted)}
body.lily-dash-host .lily-booking-card-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:auto;padding-top:8px}
body.lily-dash-host .lily-booking-card-actions > .button{flex:1 1 calc(50% - 4px);min-width:120px}
body.lily-dash-host .lily-booking-card-actions > form{display:flex;gap:8px;align-items:center;margin:0;min-width:0}
body.lily-dash-host .lily-booking-card-actions > form:not([data-lily-typed-confirm]){flex:1 1 calc(50% - 4px)}
body.lily-dash-host .lily-booking-card-actions > form:not([data-lily-typed-confirm]) .button{width:100%}
body.lily-dash-host .lily-booking-card-actions > form[data-lily-typed-confirm]{flex:1 1 100%}
body.lily-dash-host .lily-booking-card-actions > form[data-lily-typed-confirm] input[type=text]{flex:1 1 auto;min-width:0;max-width:none!important;min-height:38px;font-size:.8rem}
body.lily-dash-host .lily-booking-warnings{background:var(--app-bg);border:1px solid var(--app-line);border-radius:10px;padding:8px 10px;font-size:.78rem}

/* ---------- 11. DATA KLIEN ---------- */
body.lily-dash-host .lily-client-summary-list{display:grid;grid-template-columns:1fr;gap:10px}
body.lily-dash-host .lily-client-summary-card{display:flex;flex-direction:column;gap:8px}
body.lily-dash-host .lily-client-date{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;font-size:.8rem;color:var(--app-muted)}
body.lily-dash-host .lily-client-name-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
body.lily-dash-host .lily-client-name-row h3{margin:0;flex:1 1 100%;font-size:1rem}
body.lily-dash-host .lily-client-status-control{display:flex;flex-wrap:nowrap;align-items:center;gap:6px;min-width:0}
body.lily-dash-host .lily-client-status-control form{margin:0;display:inline-flex}
body.lily-dash-host .lily-confirm-status{min-height:34px;padding:.2rem .8rem;white-space:nowrap}
body.lily-dash-host .lily-prev-status{min-height:34px;padding:.2rem .5rem;flex:0 0 auto}

/* ---------- 12. HUBUNGI FOTOGRAFER ---------- */
body.lily-dash-host .lily-h1-timeline{display:flex;flex-direction:column;gap:8px;margin:8px 0}
body.lily-dash-host .lily-h1-timeline article{
  display:flex;gap:10px;align-items:flex-start;min-width:0;
  background:var(--app-bg);border:1px solid var(--app-line);border-left:3px solid var(--app-gold);border-radius:10px;padding:8px 10px;
}
body.lily-dash-host .lily-h1-timeline article > strong{flex:0 0 auto;font-size:.8rem;white-space:nowrap}
body.lily-dash-host .lily-h1-timeline article > div{min-width:0}
body.lily-dash-host .lily-h1-timeline h3{font-size:.9rem;margin:0}
body.lily-dash-host .lily-h1-timeline p{font-size:.78rem;margin:.15rem 0 0}
body.lily-dash-host .lily-h1-actions{display:flex;flex-wrap:nowrap;gap:8px;align-items:center;margin-top:10px}
body.lily-dash-host .lily-h1-actions .button{flex:1 1 0;min-width:0;white-space:nowrap}
body.lily-dash-host .lily-h1-actions form{flex:1 1 0;display:flex;margin:0;min-width:0}
body.lily-dash-host .lily-h1-actions form .button{width:100%}
body.lily-dash-host .lily-h1-nowa{flex:1 1 0;font-size:.75rem;color:var(--app-danger);text-align:center}

/* ---------- 13. KALENDER ---------- */
body.lily-dash-host .lily-calendar-navigation{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin:0 0 10px}
body.lily-dash-host .lily-calendar-navigation h2{margin:0;font-size:1.05rem}
body.lily-dash-host .lily-calendar-navigation-actions{display:flex;gap:6px}
body.lily-dash-host .lily-calendar-navigation-actions .button{padding:.3rem .6rem;min-height:36px}
body.lily-dash-host .lily-calendar-navigation-actions .button span:not(.dashicons){display:none}
body.lily-dash-host .lily-calendar-weekdays{
  display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;margin:0 0 4px;background:transparent;border:0;
}
body.lily-dash-host .lily-calendar-weekdays span{
  text-align:center;font-size:.68rem;font-weight:700;color:var(--app-muted);padding:2px 0;background:transparent;
}
body.lily-dash-host .lily-calendar-grid{
  display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;
  background:var(--app-line);border:1px solid var(--app-line);border-radius:var(--app-radius);overflow:hidden;
}
body.lily-dash-host .lily-calendar-day{
  background:var(--app-surface);min-height:62px;padding:3px;display:flex;flex-direction:column;gap:2px;
  min-width:0;overflow:hidden;cursor:pointer;
}
body.lily-dash-host .lily-calendar-day.is-muted{background:var(--app-bg);opacity:.55}
body.lily-dash-host .lily-calendar-date{
  font-size:.7rem;font-weight:700;color:var(--app-ink);align-self:flex-start;
  min-width:19px;height:19px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;
}
body.lily-dash-host .lily-calendar-day.is-today .lily-calendar-date{background:var(--app-gold);color:var(--app-on-gold)}
body.lily-dash-host .lily-cal-bars{display:flex;flex-direction:column;gap:2px;min-width:0}
body.lily-dash-host .lily-cal-bar{
  font-size:.58rem;line-height:1.3;color:#fff;border-radius:3px;padding:1px 3px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;
}
body.lily-dash-host .lily-cal-more{font-size:.58rem;font-weight:700;color:var(--app-muted);padding-left:3px}

/* ---------- 14. EDIT PER-FIELD (detail booking) ---------- */
body.lily-dash-host .lily-detail-single{margin:0 0 16px}
body.lily-dash-host label.lily-pf{display:block;margin:0 0 8px}
body.lily-dash-host .lily-pf__view{
  display:flex;align-items:center;gap:10px;justify-content:space-between;min-width:0;
  padding:9px 12px;border:1px solid var(--app-line);border-radius:10px;background:var(--app-bg);
}
body.lily-dash-host .lily-pf__label{flex:0 0 auto;font-size:.75rem;font-weight:700;color:var(--app-muted)}
body.lily-dash-host .lily-pf__value{flex:1 1 auto;min-width:0;text-align:right;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.lily-dash-host .lily-pf__edit{flex:0 0 auto;border:0;background:transparent;color:var(--app-gold);font-weight:800;font-size:.8rem;cursor:pointer;padding:4px 6px;border-radius:8px}
body.lily-dash-host .lily-pf.is-editing .lily-pf__view{display:none}
body.lily-dash-host .lily-pf:not(.is-editing) .lily-pf__input-wrap{display:none}

/* ---------- 15. FORM TAMBAH BOOKING ---------- */
body.lily-dash-host .lily-create-fields{border:1px solid var(--app-line);border-radius:var(--app-radius);padding:14px;margin:0 0 12px}
body.lily-dash-host .lily-create-fields legend{font-weight:800;padding:0 6px;font-size:.85rem;color:var(--app-ink)}
body.lily-dash-host .lily-create-fields > label{display:block;margin:0 0 10px;font-size:.8rem;font-weight:700;color:var(--app-muted)}
body.lily-dash-host .lily-create-fields > label > span{color:var(--app-danger)}
body.lily-dash-host .lily-time-row{display:flex;gap:8px;align-items:center;margin:0 0 10px}
body.lily-dash-host .lily-time-row select{flex:1 1 0;min-width:0}
body.lily-dash-host .lily-square-check{display:flex;align-items:center;gap:8px;font-weight:600}

/* ---------- 16. GRID UMUM (akun klien, leads, portal, submission) ---------- */
body.lily-dash-host .lily-admin-grid,body.lily-dash-host .lily-hub-grid,
body.lily-dash-host .lily-dashboard-cards,body.lily-dash-host .lily-mobile-cards,
body.lily-dash-host .lily-crew-card-grid,body.lily-dash-host .lily-settings-grid{
  display:grid;grid-template-columns:1fr;gap:12px;
}
body.lily-dash-host .lily-submission-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
body.lily-dash-host .lily-submission-item img,body.lily-dash-host .lily-thumb-placeholder{width:100%;height:auto;display:block;border-radius:8px}
body.lily-dash-host .lily-action-row,body.lily-dash-host .lily-credential-actions,body.lily-dash-host .lily-crew-actions{
  display:flex;flex-wrap:wrap;gap:8px;
}
body.lily-dash-host .lily-action-row .button,body.lily-dash-host .lily-credential-actions .button,
body.lily-dash-host .lily-crew-actions .button{flex:1 1 auto}
body.lily-dash-host .lily-readonly-stat{
  display:block;background:var(--app-bg);border:1px solid var(--app-line);border-radius:10px;
  padding:8px 10px;margin:0 0 8px;font-size:.8rem;
}
body.lily-dash-host .lily-client-credential-form{display:none}   /* dibuka via popup */
body.lily-dash-host .lily-acc-edit-btn{margin-top:8px}

/* ---------- 17. POPUP / SHEET ---------- */
.lilyapp-sheet-backdrop,.lily-modal-backdrop,.lily-acc-modal-backdrop{
  position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9995;opacity:0;pointer-events:none;transition:opacity .2s;
}
.lilyapp-sheet-backdrop.is-open,.lily-modal-backdrop.is-open,.lily-acc-modal-backdrop.is-open{opacity:1;pointer-events:auto}
.lilyapp-sheet{
  position:fixed;left:0;right:0;bottom:0;z-index:9996;max-height:80vh;overflow:auto;
  visibility:hidden;pointer-events:none;
  background:var(--app-surface);color:var(--app-ink);border-radius:18px 18px 0 0;
  box-shadow:0 -8px 30px rgba(0,0,0,.28);transform:translateY(100%);transition:transform .26s cubic-bezier(.22,1,.36,1);
  padding:10px 14px calc(18px + env(safe-area-inset-bottom,0px));
}
.lilyapp-sheet.is-open{transform:translateY(0);visibility:visible;pointer-events:auto}
.lilyapp-sheet__grip{width:40px;height:4px;border-radius:99px;background:var(--app-line);margin:6px auto 12px}
.lilyapp-sheet h3{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--app-muted);margin:0 0 10px}
.lilyapp-sheet__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.lilyapp-sheet__link{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;
  min-height:80px;padding:10px 6px;border:1px solid var(--app-line);border-radius:10px;
  background:var(--app-bg);color:var(--app-ink);text-decoration:none;font-size:.7rem;font-weight:700;line-height:1.25;
}
.lilyapp-sheet__link .dashicons{font-size:20px;width:20px;height:20px;color:var(--app-gold)}

.lily-modal,.lily-acc-modal{
  position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:9997;
  width:min(94vw,520px);max-height:86vh;overflow:auto;padding:18px;
  background:var(--app-surface);color:var(--app-ink);border-radius:14px;
  box-shadow:0 20px 50px rgba(0,0,0,.32);display:none;
}
.lily-modal.is-open,.lily-acc-modal.is-open{display:block}
.lily-modal h4,.lily-acc-modal h4{margin:0 2rem .7rem 0;font-size:1rem}
.lily-modal__close,.lily-acc-modal__close{
  position:absolute;top:10px;right:12px;border:0;background:transparent;font-size:22px;line-height:1;cursor:pointer;color:var(--app-muted);
}
.lily-modal pre{background:var(--app-bg);border-radius:10px;padding:12px;font-size:.78rem;line-height:1.5;margin:0}
.lily-modal .lily-client-credential-form,.lily-acc-modal .lily-client-credential-form{display:block}

/* ============================================================
   TABLET (≥768px)
   ============================================================ */
@media (min-width:768px){
  body.lily-dash-host .wrap{max-width:720px;padding:0 20px}
  body.lily-dash-host .lily-booking-cards,
  body.lily-dash-host .lily-client-summary-list,
  body.lily-dash-host .lily-admin-grid,body.lily-dash-host .lily-hub-grid,
  body.lily-dash-host .lily-dashboard-cards,body.lily-dash-host .lily-crew-card-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  body.lily-dash-host .lily-calendar-day{min-height:82px;padding:5px}
  body.lily-dash-host .lily-calendar-date{font-size:.8rem;min-width:22px;height:22px}
  body.lily-dash-host .lily-cal-bar{font-size:.68rem;padding:1px 5px}
  body.lily-dash-host .lily-calendar-weekdays span{font-size:.78rem}
  body.lily-dash-host .lily-calendar-navigation-actions .button span:not(.dashicons){display:inline}
}

/* ============================================================
   DESKTOP (≥1024px) — sidebar, terasa aplikasi desktop
   ============================================================ */
@media (min-width:1024px){
  .lilyapp-top{padding:0 22px}
  .lilyapp-nav{
    top:var(--app-top);bottom:0;left:0;right:auto;width:var(--app-side);height:auto;
    flex-direction:column;justify-content:flex-start;gap:2px;padding:14px 10px;
    border-top:0;border-right:1px solid var(--app-line);
  }
  .lilyapp-navitem{
    flex:0 0 auto;flex-direction:row;justify-content:flex-start;gap:12px;width:100%;
    padding:11px 14px;border-radius:10px;font-size:.88rem;
  }
  .lilyapp-navitem .dashicons{font-size:19px;width:19px;height:19px}
  .lilyapp-navitem.is-active{background:color-mix(in srgb,var(--app-gold) 15%,transparent)}
  body.lily-dash-host #wpbody-content{
    padding-left:var(--app-side);padding-top:calc(var(--app-top) + 18px);padding-bottom:40px;
  }
  body.lily-dash-host .wrap{max-width:none;width:100%;margin:0!important;padding:0 32px}
  body.lily-dash-host .lily-booking-cards,
  body.lily-dash-host .lily-client-summary-list,
  body.lily-dash-host .lily-admin-grid,body.lily-dash-host .lily-hub-grid,
  body.lily-dash-host .lily-dashboard-cards,body.lily-dash-host .lily-crew-card-grid{
    grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  }
  body.lily-dash-host .lily-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
  body.lily-dash-host .lily-detail-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}
  body.lily-dash-host .lily-calendar-day{min-height:108px;padding:6px}
  body.lily-dash-host .lily-cal-bar{font-size:.72rem;padding:2px 6px}
  body.lily-dash-host .lily-submission-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
  .lilyapp-sheet{
    left:50%;bottom:auto;top:50%;width:min(820px,90vw);border-radius:16px;max-height:82vh;
    transform:translate(-50%,-50%) scale(.96);opacity:0;transition:transform .2s,opacity .2s;
  }
  .lilyapp-sheet.is-open{transform:translate(-50%,-50%) scale(1);opacity:1;visibility:visible;pointer-events:auto}
  .lilyapp-sheet__grid{grid-template-columns:repeat(5,1fr)}
}

/* ============================================================
   LOGIN
   ============================================================ */
body.login.lily-dash-host{background:#f5f2ec}
body.login.lily-dash-host #login{width:min(92vw,360px);padding-top:7vh}
body.login.lily-dash-host h1 a{
  background-image:none!important;width:auto;height:auto;text-indent:0;overflow:visible;
  font-size:1.5rem;font-weight:800;color:#1c1a17;line-height:1.2;
}
body.login.lily-dash-host h1 a::after{content:"Lily Dashboard"}
body.login.lily-dash-host #loginform{
  background:#fff;border:1px solid #e6dfd2;border-radius:16px;padding:20px 18px;box-shadow:0 16px 40px rgba(60,48,26,.1);
}
body.login.lily-dash-host #loginform label{color:#4b463d;font-weight:600}
body.login.lily-dash-host #loginform input[type=text],
body.login.lily-dash-host #loginform input[type=password]{
  border:1px solid #ddd4c2;border-radius:10px;font-size:16px;min-height:44px;padding:.55rem .75rem;
}
body.login.lily-dash-host #wp-submit{
  width:100%;min-height:44px;border-radius:10px!important;font-weight:700;
  background:#a9905f!important;border-color:#a9905f!important;box-shadow:none;text-shadow:none;
}
body.login.lily-dash-host #nav,body.login.lily-dash-host #backtoblog{text-align:center}
body.login.lily-dash-host #nav a,body.login.lily-dash-host #backtoblog a{color:#7c6636}
body.login.lily-dash-host .language-switcher{display:none}

/* ---------- 18. BOTTOM-SHEET DETAIL HARI (kalender) ---------- */
.lily-cal-sheet-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9995;opacity:0;pointer-events:none;transition:opacity .2s}
.lily-cal-sheet-backdrop.is-open{opacity:1;pointer-events:auto}
.lily-cal-sheet{
  position:fixed;left:0;right:0;bottom:0;z-index:9996;max-height:78vh;overflow:auto;
  visibility:hidden;pointer-events:none;
  background:var(--app-surface);color:var(--app-ink);border-radius:18px 18px 0 0;
  box-shadow:0 -8px 30px rgba(0,0,0,.28);transform:translateY(100%);
  transition:transform .26s cubic-bezier(.22,1,.36,1);
  padding:10px 16px calc(18px + env(safe-area-inset-bottom,0px));
}
.lily-cal-sheet.is-open{transform:translateY(0);visibility:visible;pointer-events:auto}
.lily-cal-sheet__grip{width:40px;height:4px;border-radius:99px;background:var(--app-line);margin:6px auto 12px;cursor:pointer}
.lily-cal-sheet h3{margin:0 0 10px;font-size:1rem}
.lily-cal-ev{
  display:block;border:1px solid var(--app-line);border-left:3px solid var(--app-gold);border-radius:10px;
  padding:10px 12px;margin:0 0 8px;text-decoration:none;color:var(--app-ink);background:var(--app-bg);
}
.lily-cal-ev .t{font-weight:700;font-size:.88rem;display:block}
.lily-cal-ev small{display:block;color:var(--app-muted);font-size:.76rem;margin-top:2px}
.lily-cal-sheet__empty{color:var(--app-muted);font-size:.85rem;padding:6px 0 14px}
@media (min-width:1024px){
  .lily-cal-sheet{left:50%;bottom:auto;top:50%;width:min(560px,90vw);border-radius:14px;transform:translate(-50%,-46%);opacity:0;transition:transform .2s,opacity .2s}
  .lily-cal-sheet.is-open{transform:translate(-50%,-50%);opacity:1;visibility:visible;pointer-events:auto}
}

/* ---------- 19. NOTIFIKASI ---------- */
.lilyapp-bell{position:relative}
.lilyapp-bell-dot{
  position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 4px;
  display:inline-flex;align-items:center;justify-content:center;
  background:#c0392b;color:#fff;border-radius:99px;font-size:.62rem;font-weight:800;line-height:1;
}
.lily-notif-list{display:flex;flex-direction:column;gap:8px}
.lily-notif{
  display:block;text-decoration:none;color:var(--app-ink);background:var(--app-bg);
  border:1px solid var(--app-line);border-left:3px solid var(--app-line);border-radius:10px;padding:10px 12px;
}
.lily-notif.is-info{border-left-color:var(--app-gold)}
.lily-notif.is-warning{border-left-color:#b8860b}
.lily-notif.is-urgent{border-left-color:#c0392b}
.lily-notif.is-unread{background:color-mix(in srgb,var(--app-gold) 10%,var(--app-surface))}
.lily-notif__title{display:block;font-weight:700;font-size:.88rem}
.lily-notif small{display:block;color:var(--app-muted);font-size:.76rem;margin-top:2px}
.lily-notif__time{opacity:.75}
.lily-notif-empty{color:var(--app-muted);font-size:.85rem;padding:8px 0}
.lily-notif-panel{width:min(94vw,440px)}

/* Item sidebar khusus desktop */
.lilyapp-desk-only{display:none}
@media (min-width:1024px){ .lilyapp-desk-only{display:flex} }

/* ---------- 20. LOGIN: logo + sambutan ---------- */
body.login.lily-dash-host #login h1{margin-bottom:6px}
body.login.lily-dash-host .lily-login-logo{display:block;margin:0 auto 10px;max-width:150px;height:auto}
body.login.lily-dash-host .lily-login-welcome{
  text-align:center;margin:0 0 16px;font-size:.92rem;line-height:1.5;color:#4b463d;font-weight:600;
}


/* ---------- 21. DARK MODE: keterbacaan menyeluruh ---------- */
html[data-lily-admin-theme="dark"] body.lily-dash-host .lily-beginner-notice,
body[data-lily-admin-theme="dark"] body.lily-dash-host .lily-beginner-notice,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-beginner-notice{
  background:var(--app-surface)!important;border-color:var(--app-line)!important;
}
body[data-lily-admin-theme="dark"].lily-dash-host .lily-beginner-notice p,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-beginner-notice strong{color:var(--app-ink)!important}
body[data-lily-admin-theme="dark"].lily-dash-host .lily-beginner-notice li,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-beginner-notice ol{color:var(--app-muted)!important}
/* Teks umum yang sering ditimpa gaya lama */
body[data-lily-admin-theme="dark"].lily-dash-host,
body[data-lily-admin-theme="dark"].lily-dash-host p,
body[data-lily-admin-theme="dark"].lily-dash-host li,
body[data-lily-admin-theme="dark"].lily-dash-host td,
body[data-lily-admin-theme="dark"].lily-dash-host th,
body[data-lily-admin-theme="dark"].lily-dash-host label,
body[data-lily-admin-theme="dark"].lily-dash-host h1,
body[data-lily-admin-theme="dark"].lily-dash-host h2,
body[data-lily-admin-theme="dark"].lily-dash-host h3,
body[data-lily-admin-theme="dark"].lily-dash-host h4,
body[data-lily-admin-theme="dark"].lily-dash-host strong{color:var(--app-ink)!important}
body[data-lily-admin-theme="dark"].lily-dash-host .description,
body[data-lily-admin-theme="dark"].lily-dash-host small,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-page-intro{color:var(--app-muted)!important}
body[data-lily-admin-theme="dark"].lily-dash-host .lily-booking-warnings,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-project-warning,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-readonly-stat{
  background:#242628!important;border-color:var(--app-line)!important;color:var(--app-ink)!important;
}
body[data-lily-admin-theme="dark"].lily-dash-host .lily-booking-warnings *,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-project-warning *{color:var(--app-ink)!important}
body[data-lily-admin-theme="dark"].lily-dash-host input,
body[data-lily-admin-theme="dark"].lily-dash-host select,
body[data-lily-admin-theme="dark"].lily-dash-host textarea{
  background:#17191a!important;color:var(--app-ink)!important;border-color:#4a5152!important;
}
body[data-lily-admin-theme="dark"].lily-dash-host .button:not(.button-primary){
  background:#2b2f30!important;color:var(--app-ink)!important;border-color:#4a5152!important;
}
body[data-lily-admin-theme="dark"].lily-dash-host .lily-scroll-x th{background:#202324!important;color:var(--app-muted)!important}
body[data-lily-admin-theme="dark"].lily-dash-host .lily-scroll-x,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-table-scroll{background:var(--app-surface)!important}

/* ---------- 22. LOGIN: logo & sambutan DI ATAS ---------- */
body.login.lily-dash-host #login h1{display:none}          /* hilangkan "Dipersembahkan oleh WordPress" */
body.login.lily-dash-host .lily-login-head{text-align:center;margin:0 0 18px}
body.login.lily-dash-host .lily-login-head img{display:block;margin:0 auto 10px;max-width:170px;height:auto}
body.login.lily-dash-host .lily-login-head p{margin:0;font-size:1rem;font-weight:700;color:#4b463d;line-height:1.4}

/* ---------- 23. KARTU DATA KLIEN (dipakai menu Client) ---------- */
body.lily-dash-host .lily-client-date{justify-content:flex-end;text-align:right;width:100%}
body.lily-dash-host .lily-client-note{
  background:var(--app-bg);border:1px solid var(--app-line);border-left:3px solid var(--app-gold);
  border-radius:10px;padding:8px 10px;margin:8px 0 0;
}
body.lily-dash-host .lily-client-note strong{font-size:.78rem;display:block;margin-bottom:2px}
body.lily-dash-host .lily-client-note ul{margin:0;padding-left:1.1rem}
body.lily-dash-host .lily-client-note li{font-size:.76rem;line-height:1.4;color:var(--app-muted)}
body.lily-dash-host .lily-client-actions{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:10px;flex-wrap:wrap}
body.lily-dash-host .lily-client-actions .button{min-height:38px}
body.lily-dash-host .lily-client-actions > a:first-child{flex:1 1 auto}
/* Dua tombol invoice di TENGAH, ikon dibedakan agar tidak salah klik */
body.lily-dash-host .lily-inv-view,body.lily-dash-host .lily-inv-edit{flex:0 0 auto;width:42px;padding:0;justify-content:center}
body.lily-dash-host .lily-inv-view{background:color-mix(in srgb,var(--app-gold) 14%,var(--app-surface));border-color:var(--app-gold)}
body.lily-dash-host .lily-inv-view .dashicons{color:var(--app-gold)}
body.lily-dash-host .lily-inv-edit{background:color-mix(in srgb,#3a6ea5 14%,var(--app-surface));border-color:#3a6ea5}
body.lily-dash-host .lily-inv-edit .dashicons{color:#3a6ea5}
body.lily-dash-host .lily-wa-icon{flex:0 0 auto;width:42px;padding:0;justify-content:center;background:#25d366;border-color:#25d366}
body.lily-dash-host .lily-wa-icon .dashicons{color:#fff}

/* ---------- 24. TABEL: geser dari mana saja (tanpa scroll ke bawah) ---------- */
body.lily-dash-host .lily-scroll-x,
body.lily-dash-host .lily-table-scroll{
  scrollbar-width:thin;overscroll-behavior-x:contain;cursor:grab;position:relative;
}
body.lily-dash-host .lily-scroll-x.is-grabbing,
body.lily-dash-host .lily-table-scroll.is-grabbing{cursor:grabbing;user-select:none}
body.lily-dash-host .lily-scroll-x::-webkit-scrollbar{height:10px}
body.lily-dash-host .lily-scroll-x::-webkit-scrollbar-thumb{background:var(--app-line);border-radius:99px}
body.lily-dash-host .lily-scroll-x::-webkit-scrollbar-track{background:transparent}
/* Tinggi dibatasi pada SEMUA perangkat agar bilah geser mendatar selalu
   berada di bawah area yang terlihat — admin tidak perlu menggulir sampai
   akhir daftar hanya untuk menggeser kolom. */
/* Batas 70vh DILEPAS. Setiap tabel dibungkus .lily-scroll-x oleh JS, dan
   membatasi tingginya membuat tiap daftar menjadi wadah gulir sendiri:
   muncul scrollbar bertingkat, dan hanya segelintir baris terlihat sekaligus
   walau layar masih panjang. Halaman kini digulir seperti biasa sehingga
   makin banyak klien tampak dalam sekali gulir. */
body.lily-dash-host .lily-scroll-x,
body.lily-dash-host .lily-table-scroll{max-height:none}
/* PENYEBAB RUSAKNYA TAMPILAN DESKTOP (diperbaiki).
   Versi sebelumnya membuat overflow wadah BERSYARAT: `overflow:visible`
   selama tabelnya masih muat, dan `overflow-x:auto` hanya bila tidak muat.
   Sementara itu setiap <th> tetap `position:sticky; top:var(--app-top)`.

   Akibatnya di layar lebar — tempat tabel biasanya muat — wadahnya BUKAN
   area gulir, sehingga sticky jatuh ke viewport. Begitu halaman digulir,
   sel-sel judul kolom lepas dari barisnya, parkir di bawah header aplikasi,
   dan menimpa isi tabel; baris judul yang ditinggalkan menyisakan pita putih
   kosong. Di HP tabel selalu lebih lebar dari layar, jadi wadahnya menjadi
   area gulir dan sticky tetap terkurung di dalamnya — itulah sebabnya versi
   mobile terlihat normal sementara desktop kacau.

   Wadah kini SELALU menjadi area gulir mendatar, sama seperti perilaku di HP.
   `overflow-y:visible` di sebelah `overflow-x:auto` dihitung browser menjadi
   `auto`, tetapi tinggi wadah tidak dibatasi sehingga tidak pernah ada
   scrollbar tegak bertingkat dan halaman tetap menggulir seperti biasa.
   Kelas .is-scrollable dipertahankan — sekarang murni penanda tampilan
   (bayangan tepi & bilah bantuan geser), bukan pengatur overflow. */
body.lily-dash-host .lily-scroll-x,
body.lily-dash-host .lily-table-scroll{overflow-x:auto;overflow-y:visible}

/* ---------- 25. DARK MODE: semua latar container ikut berubah ---------- */
body[data-lily-admin-theme="dark"].lily-dash-host .lily-admin-panel,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-card,
body[data-lily-admin-theme="dark"].lily-dash-host .card,
body[data-lily-admin-theme="dark"].lily-dash-host .postbox,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-hub-card,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-mobile-card,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-crew-card,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-dashboard-card,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-submission-item,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-client-summary-card,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-booking-card,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-h1-group,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-client-note,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-booking-filters,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-filter-form,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-calendar-filters,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-create-fields,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-pf__view,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-h1-timeline article,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-calendar-day,
body[data-lily-admin-theme="dark"].lily-dash-host .notice,
body[data-lily-admin-theme="dark"].lily-dash-host .updated{
  background:var(--app-surface)!important;border-color:var(--app-line)!important;color:var(--app-ink)!important;
}
body[data-lily-admin-theme="dark"].lily-dash-host .lily-calendar-day.is-muted{background:var(--app-bg)!important}
body[data-lily-admin-theme="dark"].lily-dash-host .lily-calendar-grid{background:var(--app-line)!important;border-color:var(--app-line)!important}
body[data-lily-admin-theme="dark"].lily-dash-host .lily-pf__view,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-h1-timeline article,
body[data-lily-admin-theme="dark"].lily-dash-host .lily-client-note{background:#242628!important}

/* ---------- 26. MUTASI KEUANGAN ---------- */
body.lily-dash-host .lily-mutasi-sum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}
body.lily-dash-host .lily-mutasi-sum > div{background:var(--app-bg);border:1px solid var(--app-line);border-radius:10px;padding:10px 12px;min-width:0}
body.lily-dash-host .lily-mutasi-sum span{display:block;font-size:.72rem;color:var(--app-muted)}
body.lily-dash-host .lily-mutasi-sum strong{font-size:.95rem;display:block;margin-top:2px;overflow-wrap:anywhere}
body.lily-dash-host .lily-mutasi-sum .is-in{color:#2e7d32}
body.lily-dash-host .lily-mutasi-sum .is-out{color:#b3261e}
body[data-lily-admin-theme="dark"].lily-dash-host .lily-mutasi-sum > div{background:#242628!important}
body[data-lily-admin-theme="dark"].lily-dash-host .lily-mutasi-sum .is-in{color:#a6d6aa}
body[data-lily-admin-theme="dark"].lily-dash-host .lily-mutasi-sum .is-out{color:#f2b8b5}
@media (max-width:640px){ body.lily-dash-host .lily-mutasi-sum{grid-template-columns:1fr} }

/* ---------- 27. HUBUNGI FOTOGRAFER: kartu per fotografer per tanggal ---------- */
body.lily-dash-host .lily-h1-date{margin:.1rem 0 .2rem;font-size:.82rem;color:var(--app-gold)}
body.lily-dash-host .lily-h1-group{border-left:3px solid var(--app-gold)}
body.lily-dash-host .lily-detail-heading{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
body.lily-dash-host .lily-detail-heading > div{min-width:0;flex:1 1 auto}
@media (min-width:1024px){
  body.lily-dash-host .lily-h1 .lily-h1-group{display:inline-block;width:calc(50% - 8px);vertical-align:top;margin-right:8px}
}

/* ---------- 28. POPUP KONFIRMASI PEMBAYARAN ---------- */
.lily-pay-modal{width:min(94vw,420px)}
.lily-pay-sub{margin:0 0 12px;font-size:.82rem;color:var(--app-muted)}
.lily-pay-field{display:block;font-size:.8rem;font-weight:700;color:var(--app-muted);margin:0 0 12px}
.lily-pay-field input{margin-top:4px}
.lily-pay-check{display:flex;align-items:flex-start;gap:8px;font-size:.82rem;font-weight:600;margin:0 0 10px;line-height:1.4}
.lily-pay-check input{margin-top:2px;flex:0 0 auto}
.lily-pay-info{font-size:.78rem;line-height:1.5;color:var(--app-ink);background:var(--app-bg);border:1px solid var(--app-line);border-radius:10px;padding:9px 11px;margin:4px 0 14px;min-height:1px}
.lily-pay-actions{display:flex;gap:8px;justify-content:flex-end}
.lily-pay-actions .button{min-width:100px}
body[data-lily-admin-theme="dark"] .lily-pay-info{background:#242628!important}

/* ---------- 29. MUTASI: keterangan bisa diklik + sorot invoice tujuan ---------- */
body.lily-dash-host .lily-mut-link{display:block;color:inherit;text-decoration:none}
body.lily-dash-host a.lily-mut-link:hover strong{color:var(--app-gold);text-decoration:underline}
body.lily-dash-host .lily-mutasi-table td{white-space:normal}
body.lily-dash-host .lily-invoice-row:target{
  outline:2px solid var(--app-gold);outline-offset:-2px;
  background:color-mix(in srgb,var(--app-gold) 14%,transparent);
}

/* Sub-menu di bawah "Client" (hanya desktop) */
@media (min-width:1024px){
  .lilyapp-navitem.lilyapp-subitem{padding-left:34px;font-size:.82rem;opacity:.92}
  .lilyapp-navitem.lilyapp-subitem .dashicons{font-size:17px;width:17px;height:17px}
}

/* ---------- 30. SUB-MENU CLIENT (desktop) ---------- */
.lilyapp-caret{
  margin-left:auto;display:inline-flex;align-items:center;justify-content:center;
  width:24px;height:24px;border:0;background:transparent;border-radius:6px;cursor:pointer;
  color:var(--app-muted);flex:0 0 auto;padding:0;
}
.lilyapp-caret .dashicons{font-size:15px;width:15px;height:15px;transition:transform .18s ease}
.lilyapp-caret.is-open .dashicons{transform:rotate(180deg)}
.lilyapp-caret:hover{background:color-mix(in srgb,var(--app-gold) 18%,transparent);color:var(--app-gold)}
/* Navigasi bawah (mobile) menumpuk ikon di atas label. Panah sub-menu adalah
   anak KETIGA di dalam tautan Client, sehingga ikut tertumpuk dan mendesak
   label "Client" keluar — item tersebut tampil tanpa teks dan tidak sejajar
   dengan item lain.
   Panah ini memang hanya berguna di desktop: sub-menu yang dibukanya
   disembunyikan di bawah 1024px. Jadi di mobile panahnya disembunyikan. */
@media (max-width:1023px){
  .lilyapp-caret{display:none}
}
@media (min-width:1024px){
  /* Sub-menu tersembunyi sampai panah ditekan (atau sedang berada di halamannya) */
  .lilyapp-navitem.lilyapp-subitem{display:none}
  .lilyapp-navitem.lilyapp-subitem.is-open{display:flex}
}

/* ---------- 31. PANEL PENGATURAN (desktop, di sidebar) ---------- */
.lilyapp-settings-panel{display:none}
@media (min-width:1024px){
  .lilyapp-nav{overflow-y:auto}
  .lilyapp-settings-panel.is-open{display:block;margin-top:6px;padding-top:8px;border-top:1px solid var(--app-line)}
  .lilyapp-settings-panel h4{
    margin:10px 0 4px;padding:0 12px;font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;
    color:var(--app-muted);font-weight:800;
  }
  .lilyapp-settings-links{display:flex;flex-direction:column}
  .lilyapp-settings-links a{
    display:block;padding:7px 12px;border-radius:8px;font-size:.8rem;font-weight:600;
    color:var(--app-ink);text-decoration:none;line-height:1.3;
  }
  .lilyapp-settings-links a:hover{background:color-mix(in srgb,var(--app-gold) 12%,transparent);color:var(--app-gold)}
}

/* ---------- 32. DIAGRAM BATANG KEUANGAN ---------- */
body.lily-dash-host .lily-chart-legend{display:flex;gap:16px;margin:0 0 10px;font-size:.78rem;color:var(--app-muted)}
body.lily-dash-host .lily-chart-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-1px}
body.lily-dash-host .lily-chart-legend .is-in{background:#2e9e5b}
body.lily-dash-host .lily-chart-legend .is-out{background:#d1493f}
body.lily-dash-host .lily-chart-scroll{padding:8px 10px}
body.lily-dash-host .lily-bar-chart{display:flex;gap:10px;min-width:max-content;align-items:stretch}
body.lily-dash-host .lily-chart-axis{
  display:flex;flex-direction:column;justify-content:space-between;height:240px;
  padding-right:8px;border-right:1px solid var(--app-line);flex:0 0 auto;
}
body.lily-dash-host .lily-chart-axis span{font-size:.64rem;color:var(--app-muted);white-space:nowrap;line-height:1;transform:translateY(-50%)}
body.lily-dash-host .lily-chart-axis span:first-child{transform:none}
body.lily-dash-host .lily-chart-axis span:last-child{transform:translateY(-100%)}
body.lily-dash-host .lily-chart-plot{display:flex;gap:20px;align-items:flex-end;height:240px;padding:0 6px}
body.lily-dash-host .lily-bar-group{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;min-width:74px}
body.lily-dash-host .lily-bars{display:flex;align-items:flex-end;gap:6px;height:240px}
body.lily-dash-host .lily-bar{
  width:26px;border-radius:3px 3px 0 0;position:relative;cursor:pointer;
  transition:filter .15s ease;align-self:flex-end;
}
body.lily-dash-host .lily-bar.is-in{background:#2e9e5b}
body.lily-dash-host .lily-bar.is-out{background:#d1493f}
body.lily-dash-host .lily-bar:hover,body.lily-dash-host .lily-bar:focus{filter:brightness(1.15);outline:none}
/* Nominal hanya muncul saat kursor diarahkan / batang disentuh */
body.lily-dash-host .lily-bar::after{
  content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);
  background:var(--app-ink);color:var(--app-bg);font-size:.7rem;font-weight:700;line-height:1.3;
  padding:6px 9px;border-radius:8px;white-space:nowrap;opacity:0;pointer-events:none;
  transition:opacity .15s ease;z-index:5;box-shadow:0 4px 14px rgba(0,0,0,.25);
}
body.lily-dash-host .lily-bar:hover::after,body.lily-dash-host .lily-bar:focus::after{opacity:1}
body.lily-dash-host .lily-bar-label{
  font-size:.72rem;font-weight:600;color:var(--app-ink);text-align:center;
  max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
@media (max-width:767px){
  body.lily-dash-host .lily-chart-axis,body.lily-dash-host .lily-chart-plot,body.lily-dash-host .lily-bars{height:190px}
  body.lily-dash-host .lily-bar{width:20px}
  body.lily-dash-host .lily-bar-group{min-width:64px}
}

/* ---------- 33. BANTUAN GESER TABEL (semua perangkat) ---------- */
body.lily-dash-host .lily-scroll-help{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  margin:0 0 6px;padding:4px 2px;
}
body.lily-dash-host .lily-scroll-hint{
  flex:1 1 auto;text-align:center;font-size:.72rem;color:var(--app-muted);margin:0;
}
body.lily-dash-host .lily-scroll-btn{
  flex:0 0 auto;width:34px;height:34px;border-radius:9px;cursor:pointer;
  border:1px solid var(--app-line);background:var(--app-surface);color:var(--app-ink);
  font-size:20px;line-height:1;display:inline-flex;align-items:center;justify-content:center;
}
body.lily-dash-host .lily-scroll-btn:hover{border-color:var(--app-gold);color:var(--app-gold)}
/* Bayangan tepi sebagai petunjuk masih ada kolom tersembunyi.
   Wajib disertai .is-scrollable: tanpa itu, tabel yang sebenarnya MUAT pun
   ikut diredupkan tepi kanannya dan terbaca seolah-olah terpotong. */
body.lily-dash-host .lily-scroll-x{position:relative}
body.lily-dash-host .lily-scroll-x.is-scrollable.has-right,
body.lily-dash-host .lily-table-scroll.is-scrollable.has-right{
  -webkit-mask-image:linear-gradient(to right,#000 88%,rgba(0,0,0,.35) 100%);
  mask-image:linear-gradient(to right,#000 88%,rgba(0,0,0,.35) 100%);
}

/* ---------- 34. AKUN KLIEN: data sumber 3 baris, aksi 2 baris ---------- */
body.lily-dash-host .lily-src-cell{white-space:normal!important;min-width:150px}
body.lily-dash-host .lily-src-line{display:block;font-size:.8rem;line-height:1.5}
body.lily-dash-host .lily-src-line.is-muted{color:var(--app-muted);font-size:.74rem}
/* Kolom Edit/Hapus dibuat 2 baris agar tidak terpotong */
body.lily-dash-host .lily-client-manage-cell{white-space:normal!important;min-width:190px}
body.lily-dash-host .lily-client-manage-cell form,
body.lily-dash-host .lily-client-manage-cell > div{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 6px}
body.lily-dash-host .lily-client-manage-cell input[type=text]{flex:1 1 120px;min-width:0;min-height:34px;font-size:.78rem}
body.lily-dash-host .lily-client-manage-cell .button{min-height:34px}
body.lily-dash-host .lily-manage-row{display:flex;gap:6px;margin:0 0 6px}
body.lily-dash-host .lily-client-manage-cell > form{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 6px;align-items:center}

/* ---------- 35. ANTI-TERPOTONG MENYELURUH (tanpa bergantung JavaScript) ----------
   Setiap panel/kartu yang isinya lebih lebar dari layar kini bisa digeser
   sendiri. Ini jaring pengaman bila pembungkus tabel via JS tidak terpasang. */
body.lily-dash-host .lily-admin-panel,
body.lily-dash-host .lily-card,
body.lily-dash-host .postbox,
body.lily-dash-host .lily-hub-card{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
/* Tabel mengisi penuh lebar container (tidak menyisakan area kosong di kanan).
   `width:auto` dipulihkan untuk tabel DI DALAM wadah geser: dengan
   `white-space:nowrap` pada setiap sel, memaksa `width:100%` membuat kolom
   diperas sampai isinya terpotong alih-alih membiarkan tabel melebar lalu
   digeser. `min-width:100%` sudah cukup untuk menutup sisa ruang di kanan
   ketika kolomnya memang sedikit. */
body.lily-dash-host .lily-scroll-x > table,
body.lily-dash-host .lily-table-scroll > table{width:auto;min-width:100%}
body.lily-dash-host .lily-admin-panel > table,
body.lily-dash-host table.widefat{width:100%;min-width:100%}
/* Bilah geser dibuat jelas terlihat (bukan tipis samar) */
body.lily-dash-host .lily-scroll-x::-webkit-scrollbar,
body.lily-dash-host .lily-admin-panel::-webkit-scrollbar{height:12px;width:12px}
body.lily-dash-host .lily-scroll-x::-webkit-scrollbar-thumb,
body.lily-dash-host .lily-admin-panel::-webkit-scrollbar-thumb{
  background:var(--app-muted);border-radius:99px;border:3px solid var(--app-surface);
}
body.lily-dash-host .lily-scroll-x::-webkit-scrollbar-track,
body.lily-dash-host .lily-admin-panel::-webkit-scrollbar-track{background:var(--app-bg);border-radius:99px}
body.lily-dash-host .lily-scroll-x,
body.lily-dash-host .lily-admin-panel{scrollbar-width:auto;scrollbar-color:var(--app-muted) var(--app-bg)}
/* Sel tabel: kolom aksi boleh membungkus agar tombol tidak terpotong */
body.lily-dash-host .lily-scroll-x td:last-child,
body.lily-dash-host .lily-table-scroll td:last-child{white-space:normal}

/* ============================================================
   MODE GELAP: KARTU & TEKS YANG LATARNYA DIPAKU TERANG
   Sejumlah kartu memakai background:#fff dan warna teks tetap,
   sehingga saat tema gelap aktif teksnya menjadi terang di atas
   latar putih — rasio kontras serendah 1,1 alias tidak terbaca.
   Diperbaiki memakai variabel tema yang sudah ada agar warnanya
   konsisten dengan seluruh dashboard.
   !important diperlukan karena nilai yang ditimpa memang ditulis
   langsung pada aturan dasarnya.
   ============================================================ */

/* --- Ringkasan: kartu Akses Cepat --- */
[data-lily-admin-theme="dark"].lily-dash-host .lily-quick-action{
  background:var(--app-surface,#1f2223)!important;
  border-color:var(--app-line,#3a3f40)!important;
  color:var(--app-ink,#f2eee7)!important;
  box-shadow:none!important;
}
[data-lily-admin-theme="dark"].lily-dash-host .lily-quick-action strong{color:var(--app-gold,#c9ad76)!important}
[data-lily-admin-theme="dark"].lily-dash-host .lily-quick-action span{color:var(--app-muted,#b0a99e)!important}
[data-lily-admin-theme="dark"].lily-dash-host .lily-quick-action:hover{border-color:var(--app-gold,#c9ad76)!important}

/* --- Data Klien: tanggal sesi pada kartu --- */
[data-lily-admin-theme="dark"].lily-dash-host .lily-client-date{color:var(--app-muted,#b0a99e)!important}

/* --- Akun Klien: blok kredensial aktif --- */
[data-lily-admin-theme="dark"].lily-dash-host .lily-active-credential{
  background:var(--app-surface,#1f2223)!important;
  border-color:var(--app-line,#3a3f40)!important;
  color:var(--app-ink,#f2eee7)!important;
}

/* --- Portal & Project: judul tebal, keterangan kecil, sel kartu --- */
[data-lily-admin-theme="dark"].lily-dash-host .widefat strong,
[data-lily-admin-theme="dark"].lily-dash-host .lily-cell-more,
[data-lily-admin-theme="dark"].lily-dash-host .lily-cell-more strong{color:var(--app-ink,#f2eee7)!important}
[data-lily-admin-theme="dark"].lily-dash-host .widefat small,
[data-lily-admin-theme="dark"].lily-dash-host .lily-cell-more small{color:var(--app-muted,#b0a99e)!important}

/* --- Analisis: judul panel dan baris grafik --- */
[data-lily-admin-theme="dark"].lily-dash-host .lily-panel-heading span{color:var(--app-muted,#b0a99e)!important}
[data-lily-admin-theme="dark"].lily-dash-host .lily-finance-chart-row{
  background:var(--app-surface,#1f2223)!important;
  border-color:var(--app-line,#3a3f40)!important;
  color:var(--app-ink,#f2eee7)!important;
}
[data-lily-admin-theme="dark"].lily-dash-host .lily-chart-line,
[data-lily-admin-theme="dark"].lily-dash-host .lily-chart-line small,
[data-lily-admin-theme="dark"].lily-dash-host .lily-bar-row small{color:var(--app-muted,#b0a99e)!important}

/* --- Buat Invoice: pratinjau kertas A4 tetap TERANG dengan tulisan gelap.
       Lembar invoice memang meniru kertas cetak, jadi yang diperbaiki
       adalah teksnya agar tetap gelap di atas kertas putih. --- */
[data-lily-admin-theme="dark"].lily-dash-host .lily-a4,
[data-lily-admin-theme="dark"].lily-dash-host .lily-a4 *{color:#1d2327!important}
[data-lily-admin-theme="dark"].lily-dash-host .lily-a4__meta,
[data-lily-admin-theme="dark"].lily-dash-host .lily-a4__notes,
[data-lily-admin-theme="dark"].lily-dash-host .lily-a4 small{color:#4a4a4a!important}

/* --- Pengaturan: keterangan bantuan dan penekanan --- */
[data-lily-admin-theme="dark"].lily-dash-host .description{color:var(--app-muted,#b0a99e)!important}
[data-lily-admin-theme="dark"].lily-dash-host .lily-setting-field strong,
[data-lily-admin-theme="dark"].lily-dash-host .lily-editor-section strong{color:var(--app-ink,#f2eee7)!important}

/* --- Bantuan geser tabel & bar kalender --- */
[data-lily-admin-theme="dark"].lily-dash-host .lily-scroll-hint{color:var(--app-muted,#b0a99e)!important}
[data-lily-admin-theme="dark"].lily-dash-host .lily-cal-bar{color:#fff!important}

/* ---------- 36. ELEMEN STICKY WARISAN wp-admin ----------
   .lily-app-toolbar dan .lily-pricelist-jump-nav memakai `top:32px`, yaitu
   tinggi admin bar WordPress. Pada host dashboard admin bar dimatikan dan
   digantikan header aplikasi setinggi --app-top, sehingga keduanya menempel
   di belakang header dan tertutup. Offsetnya disamakan di sini. */
body.lily-dash-host .lily-app-toolbar,
body.lily-dash-host .lily-pricelist-jump-nav{top:calc(var(--app-top,54px) + 8px)}

/* ---------- 37. PORTAL & PROJECT: GAP RAKSASA DI KOLOM PORTAL & DRIVE ----------
   Aturan `white-space:nowrap` pada setiap sel (bagian 7) IKUT DIWARISI oleh
   blok prosa di dalam sel. Satu baris peringatan seperti
   "⚠ Folder Google Drive masih Restricted. Preview cepat mungkin lambat…"
   karena itu direntangkan menjadi SATU baris sepanjang ~1200px, dan lebar itu
   menjadi lebar kolomnya untuk SELURUH tabel — walau hanya satu baris yang
   memuatnya. Hasilnya kolom Portal & Drive melebar jauh dan menyisakan area
   kosong besar sebelum kolom berikutnya.

   nowrap tetap dipertahankan untuk teks pendek satu baris (status, tanggal,
   nominal) karena memang itu tujuannya. Yang dikecualikan hanya blok prosa. */
body.lily-dash-host .lily-scroll-x td .lily-project-warning,
body.lily-dash-host .lily-table-scroll td .lily-project-warning,
body.lily-dash-host .lily-scroll-x td p,
body.lily-dash-host .lily-table-scroll td p,
body.lily-dash-host .lily-scroll-x td .description,
body.lily-dash-host .lily-table-scroll td .description{
  white-space:normal!important;
  max-width:min(300px,42vw);
  overflow-wrap:anywhere;
}
body.lily-dash-host .lily-scroll-x td .lily-project-warning li,
body.lily-dash-host .lily-table-scroll td .lily-project-warning li{white-space:normal!important}

/* Kolom yang isinya memang prosa diberi batas lebar supaya tabel enam kolom
   ini muat tanpa digeser pada layar desktop biasa. */
body.lily-dash-host .lily-scroll-x td,
body.lily-dash-host .lily-table-scroll td{max-width:340px}
