@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800&family=Besley:wght@600;700;800;900&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

:root {
  --paper: #f7f7f3;
  --paper-deep: #eeeeea;
  --paper-soft: #ffffff;
  --ink: #202124;
  --ink-soft: #66645f;
  --ink-faint: #aaa7a0;
  --print-blue: #19386f;
  --print-blue-soft: #e9eef8;
  --print-red: #bb3029;
  --print-red-soft: #fff0ea;
  --print-green: #2e6d48;
  --print-yellow: #efc34d;
  --rule: #d7d4cc;
  --rule-light: #ebe9e3;
  --shadow-ink: rgba(30, 33, 32, 0.08);

  --bg: var(--paper);
  --surface: #ffffff;
  --surface2: #f5f5f1;
  --border: var(--rule);
  --border-light: var(--rule-light);
  --text: var(--ink);
  --text-dim: var(--ink-soft);
  --text-dimmer: var(--ink-faint);
  --accent: var(--print-blue);
  --yellow: var(--print-yellow);
  --yellow-dim: rgba(239, 195, 77, 0.2);
  --draft-bg: #fff5cf;
  --draft-text: #8a6010;
  --sched-bg: #eaf0ff;
  --sched-text: var(--print-blue);
  --posted-bg: #f7f5ef;
  --posted-text: var(--ink-soft);
  --good: #2d8d53;
  --bad: var(--print-red);
  --sun: var(--print-red);
  --sat: #2d6997;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bot: env(safe-area-inset-bottom, 0px);
}

*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html,body{height:100%;overflow:hidden;}
body{
  background:
    repeating-linear-gradient(0deg, rgba(30,33,32,0.012) 0 1px, transparent 1px 6px),
    var(--paper);
  color:var(--text);
  font-family:'Plus Jakarta Sans',system-ui,sans-serif;
  font-size:15px;
  display:flex;
  flex-direction:column;
  color-scheme:light;
}
button, select, input, textarea { font: inherit; }
button:focus-visible, select:focus-visible, input:focus-visible, textarea:focus-visible {
  outline:2px solid var(--print-blue); outline-offset:2px;
}

/* ===================== MOBILE LAYOUT ===================== */
.mobile-shell { display:flex; flex-direction:column; height:100%; min-height:100dvh; background:transparent; }

/* Top bar */
.topbar {
  background:linear-gradient(180deg,#ffffff 0%,#f7f7f2 100%);
  border-top:4px solid var(--print-red);
  border-bottom:3px solid var(--print-blue);
  padding: calc(var(--safe-top) + 10px) 14px 10px;
  display:flex; align-items:center; justify-content:space-between; gap:10px; flex-shrink:0;
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset, 0 2px 8px var(--shadow-ink);
}
.topbar-left { display:flex; align-items:center; gap:8px; min-width:0; }
.logo-pill {
  background:var(--print-blue); color:#fff8e8;
  font-family:'Barlow Condensed',sans-serif; font-size:13px; font-weight:800;
  letter-spacing:.12em; padding:5px 9px; border-radius:1px;
  border:1px solid #0e2650; box-shadow:3px 3px 0 rgba(187,48,41,.18);
}
.org-select-top {
  background:transparent; border:none; color:var(--ink);
  font-family:'Barlow Condensed',sans-serif; font-size:18px; font-weight:800;
  letter-spacing:.01em; outline:none; cursor:pointer; max-width:150px;
  text-overflow:ellipsis; white-space:nowrap; overflow:hidden;
}
.topbar-right { display:flex; align-items:center; gap:6px; flex-shrink:0; }
.icon-btn {
  background:#fff; border:1px solid var(--rule); color:var(--print-blue);
  width:34px; height:34px; border-radius:2px; cursor:pointer;
  display:flex; align-items:center; justify-content:center; font-size:18px;
  transition:transform .12s ease, background .12s ease, color .12s ease; flex-shrink:0;
  box-shadow:2px 2px 0 rgba(25,56,111,.08);
}
.btn-icon { width:17px; height:17px; display:block; flex-shrink:0; }
.icon-btn:active { background:var(--print-blue); color:#fff8ea; transform:translate(1px,1px); box-shadow:none; }

/* Month strip */
.month-strip-wrap {
  background:var(--paper-soft); border-bottom:1px solid var(--rule);
  flex-shrink:0; padding:0;
}
.month-nav-row {
  display:flex; align-items:center; justify-content:space-between;
  padding:8px 14px 2px;
}
.month-nav-label {
  font-family:'Barlow Condensed',sans-serif; font-size:18px; font-weight:800; line-height:1;
  color:var(--print-blue); letter-spacing:-.03em; text-transform:uppercase;
}
.month-nav-label::before { content:'BULAN '; font-size:10px; color:var(--print-red); letter-spacing:.14em; margin-right:6px; vertical-align:middle; }
.month-nav-btns { display:flex; gap:4px; }
.mnav {
  background:#fff; border:1px solid var(--rule); color:var(--print-blue);
  width:28px; height:28px; border-radius:1px; cursor:pointer;
  display:flex; align-items:center; justify-content:center; font-size:18px; font-weight:800;
}
.mnav:active { background:var(--print-red); color:#fff8ea; }

.day-strip {
  display:flex; overflow-x:auto; gap:5px; padding:8px 12px 10px;
  scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
}
.day-strip::-webkit-scrollbar { display:none; }
.day-chip {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  min-width:40px; padding:5px 4px 6px; border-radius:2px; cursor:pointer;
  scroll-snap-align:start; transition:transform .12s ease, background .12s ease, color .12s ease; flex-shrink:0;
  border:1px solid var(--rule); background:#fff;
  box-shadow:1px 2px 0 rgba(30,33,32,.06);
}
.day-chip:active { transform:translateY(1px); }
.day-chip.active { background:var(--print-blue); border-color:#0f2a57; }
.day-chip.active .dc-num, .day-chip.active .dc-dow { color:#fff8e8; }
.day-chip.today-chip:not(.active) { border-color:#d7a515; background:#fff2b8; }
.dc-dow {
  font-size:11px; font-family:'Barlow Condensed',sans-serif; font-weight:700;
  text-transform:uppercase; letter-spacing:.08em; color:var(--ink-soft);
}
.dc-num {
  font-family:'Besley',serif; font-size:20px; font-weight:800; line-height:.98; color:var(--ink);
  letter-spacing:-.06em;
}
.day-chip.today-chip:not(.active) .dc-num { color:var(--ink); }
.dc-dot { width:4px; height:4px; border-radius:50%; margin-top:2px; }
.dc-dot.has { background:var(--print-yellow); box-shadow:0 0 0 1px rgba(0,0,0,.08); }
.dc-dot.has.active { background:#fff8e8; opacity:.9; }
.day-chip.sun-chip { border-color:rgba(187,48,41,.32); }
.day-chip.sun-chip .dc-num, .day-chip.sun-chip .dc-dow { color:var(--sun); }
.day-chip.sat-chip .dc-num { color:var(--sat); }
.day-chip.active .dc-num, .day-chip.active .dc-dow { color:#fff8e8 !important; }

/* Day view */
.day-view {
  flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch;
  padding:0 0 calc(var(--safe-bot) + 18px);
}
.day-view-header {
  padding:18px 16px 10px;
  display:flex; align-items:flex-end; gap:10px;
}
.dvh-date {
  font-family:'Besley',serif; font-size:44px; font-weight:800; line-height:.82;
  letter-spacing:-.08em; color:var(--print-blue);
}
.dvh-day  {
  font-size:14px; color:var(--ink-soft); font-family:'Barlow Condensed',sans-serif;
  text-transform:uppercase; letter-spacing:.12em; font-weight:700;
  border-bottom:2px solid var(--print-red); padding-bottom:3px;
}
.dvh-date.sun { color:var(--sun); }
.dvh-date.sat { color:var(--sat); }

/* Swipe wrapper */
.swipe-wrap { position:relative; overflow:hidden; flex:1; display:flex; flex-direction:column; }

/* Slot cards */
.slot-cards { padding:0 12px; display:flex; flex-direction:column; gap:9px; }
.slot-card {
  background:#fff; border:1px solid var(--rule); border-radius:3px;
  overflow:hidden; cursor:pointer; transition:border-color .15s, transform .12s, box-shadow .12s;
  -webkit-tap-highlight-color:transparent;
  box-shadow:2px 2px 0 rgba(30,33,32,.035);
}
.slot-card:active { border-color:var(--print-blue); transform:translate(1px,1px); box-shadow:1px 2px 0 rgba(47,38,25,.07); }
.slot-card.status-draft    { background:var(--draft-bg); border-color:#d3ab44; }
.slot-card.status-scheduled{ background:var(--sched-bg); border-color:#8ea3cf; }
.slot-card.status-posted   { background:var(--posted-bg); border-color:var(--rule); }
.slot-card.perf-good       { box-shadow:inset 4px 0 0 var(--good), 2px 2px 0 rgba(30,33,32,.035); }
.slot-card.perf-bad        { box-shadow:inset 4px 0 0 var(--bad), 2px 2px 0 rgba(30,33,32,.035); }
.slot-card.status-posted.perf-good { background:rgba(45,141,83,.13); border-color:rgba(45,141,83,.35); }
.slot-card.status-posted.perf-bad  { background:rgba(187,48,41,.10); border-color:rgba(187,48,41,.34); }

.sc-head {
  padding:10px 13px 7px; border-bottom:1px solid var(--rule-light);
  display:flex; align-items:center; justify-content:space-between;
  background:linear-gradient(180deg, rgba(255,255,255,.38), transparent);
}
.sc-time {
  display:flex; align-items:center; gap:7px;
  font-family:'Barlow Condensed',sans-serif; font-size:14px; font-weight:800;
  text-transform:uppercase; letter-spacing:.11em; color:var(--ink-soft);
}
.slot-card.status-draft .sc-time     { color:var(--draft-text); }
.slot-card.status-scheduled .sc-time { color:var(--sched-text); }
.slot-card.status-posted .sc-time    { color:var(--posted-text); }
.slot-card.status-posted.perf-good .sc-time { color:var(--print-green); }
.slot-card.status-posted.perf-bad .sc-time  { color:var(--print-red); }
.sc-badges { display:flex; align-items:center; gap:4px; }
.badge-s {
  font-size:10px; font-family:'Barlow Condensed',sans-serif; padding:2px 7px;
  border-radius:1px; font-weight:800; text-transform:uppercase; letter-spacing:.08em;
  border:1px solid currentColor; background:rgba(255,250,240,.55);
}
.badge-s.draft     { color:var(--draft-text); }
.badge-s.scheduled { color:var(--sched-text); }
.badge-s.posted    { color:var(--posted-text); }
.perf-good .badge-s.posted { color:var(--print-green); }
.perf-bad .badge-s.posted  { color:var(--print-red); }

.sc-body { padding:10px 13px 13px; }
.sc-topic { font-size:15px; font-weight:800; line-height:1.35; color:var(--ink); }
.sc-caption { font-size:13px; color:var(--ink-soft); line-height:1.55; margin-top:5px; white-space:pre-wrap; word-break:break-word; }
.sc-empty { font-size:14px; color:var(--ink-faint); font-style:italic; padding:10px 13px 13px; }

/* Stats bar */
.stats-strip {
  background:linear-gradient(180deg,#ffffff,#f6f6f1); border-top:2px solid var(--print-blue);
  display:flex; gap:6px; padding:9px 12px calc(9px + var(--safe-bot));
  overflow-x:auto; flex-shrink:0; position:relative; z-index:20;
  box-shadow:0 -2px 8px rgba(30,33,32,.06);
}
.stats-strip::-webkit-scrollbar { display:none; }
.stat-pill {
  display:flex; align-items:center; gap:5px; background:#fff; border:1px solid var(--rule);
  border-radius:999px; padding:4px 10px; font-size:12px; white-space:nowrap;
  box-shadow:1px 1px 0 rgba(30,33,32,.05);
}
.stat-pill b { font-family:'Besley',serif; font-weight:900; line-height:1; }
.stat-dot  { width:7px; height:7px; border-radius:50%; }
.stat-dot.draft     { background:var(--draft-text); }
.stat-dot.scheduled { background:var(--sched-text); }
.stat-dot.posted    { background:var(--posted-text); }
.stat-dot.good      { background:var(--good); }
.stat-dot.bad       { background:var(--bad); }
.stat-count { font-weight:800; }

/* Filter strip */
.filter-strip {
  background:#fff; border-bottom:1px solid var(--rule);
  display:flex; gap:6px; padding:8px 12px;
  overflow-x:auto; flex-shrink:0; align-items:center;
}
.filter-strip::-webkit-scrollbar { display:none; }
.filter-btn {
  background:#fff; border:1px solid var(--rule); color:var(--ink-soft);
  padding:5px 12px; border-radius:2px; cursor:pointer; font-size:13px; font-weight:700;
  white-space:nowrap; transition:all .12s; flex-shrink:0;
}
.filter-btn.active {
  background:var(--print-yellow); border-color:#d7a515; color:var(--ink);
  box-shadow:inset 0 -2px 0 rgba(30,33,32,.12);
}
.filter-sep { width:1px; height:18px; background:var(--rule); flex-shrink:0; margin:0 2px; }

/* ===================== DESKTOP LAYOUT ===================== */
.desktop-shell { display:none; flex-direction:column; height:100%; overflow:auto; }

/* ===================== MODAL ===================== */
.modal-overlay {
  display:none; position:fixed; inset:0;
  background:rgba(30,24,17,0.55); z-index:200;
  align-items:flex-end; justify-content:center;
  padding:0;
}
@media (min-width:600px) {
  .modal-overlay { align-items:center; padding:24px; }
  .modal { border-radius:5px !important; max-height:88vh !important; }
}
.modal-overlay.open { display:flex; }
.modal {
  background:#fff; width:100%; max-width:560px;
  border-radius:12px 12px 0 0; padding:22px 22px calc(var(--safe-bot) + 20px);
  position:relative; display:flex; flex-direction:column; gap:14px;
  max-height:88vh; overflow-y:auto; border:1px solid var(--rule);
  box-shadow:0 18px 54px rgba(30,24,17,.26), inset 0 4px 0 var(--print-blue);
}
.modal-handle { width:40px; height:4px; background:#d9d6ce; border-radius:8px; margin:0 auto 10px; }
.modal-title {
  font-family:'Barlow Condensed',sans-serif; font-size:17px; font-weight:800; letter-spacing:.035em;
  display:flex; align-items:center; gap:10px; flex-wrap:wrap; text-transform:uppercase; color:var(--print-blue);
  padding-right:34px;
}
.modal-slot-label {
  font-family:'Barlow Condensed',sans-serif; font-size:11px; color:#fff; background:var(--print-red);
  padding:4px 8px 5px; border-radius:2px; letter-spacing:.08em; font-weight:800;
}

.form-group { display:flex; flex-direction:column; gap:7px; }
.form-label {
  font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.10em;
  color:#706d66; font-family:'Barlow Condensed',sans-serif;
}
.form-input, .form-textarea, .form-select {
  background:#fffef9; border:1px solid #d4d0c7; border-radius:3px;
  color:var(--ink); font-family:'Plus Jakarta Sans',sans-serif; font-size:15px;
  padding:11px 12px; outline:none; transition:border-color .15s, box-shadow .15s, background .15s; width:100%;
  -webkit-appearance:none; appearance:none;
}
.form-input:focus, .form-textarea:focus, .form-select:focus {
  border-color:var(--print-blue); box-shadow:0 0 0 1px var(--print-blue), 0 0 0 4px rgba(25,56,111,.06);
  background:#fff;
}
.form-textarea {
  resize:none; min-height:260px; line-height:1.62; overflow-y:hidden;
}

.perf-section { display:none; flex-direction:column; gap:7px; }
.perf-section.visible { display:flex; }
.perf-btns { display:flex; gap:8px; }
.perf-btn {
  flex:1; padding:8px 6px; border-radius:3px; border:1px solid #d4d0c7;
  background:#fff; color:var(--ink-soft); cursor:pointer; font-size:13px; font-weight:700;
  text-align:center; transition:all .12s;
}
.perf-btn.active-good    { background:rgba(45,141,83,.10);   border-color:var(--good); color:var(--good); }
.perf-btn.active-bad     { background:rgba(187,48,41,.10);   border-color:var(--bad);  color:var(--bad); }
.perf-btn.active-neutral { background:#f5f2eb; border-color:#8d806b; color:var(--ink); }

.modal-actions { display:grid; grid-template-columns:auto auto 1fr; gap:10px; padding-top:8px; }
.btn {
  padding:10px 18px; border-radius:3px; font-family:'Barlow Condensed',sans-serif; font-size:15px;
  font-weight:800; letter-spacing:.07em; cursor:pointer; transition:all .12s; border:none; text-transform:uppercase;
}
.btn-ghost  { background:#fff; border:1px solid #d4d0c7; color:var(--ink-soft); }
.btn-ghost:active { background:var(--paper-deep); }
.btn-danger { background:#fff; border:1px solid rgba(187,48,41,.35); color:var(--bad); margin-right:0; }
.btn-primary { background:var(--print-blue); color:#fff; }
.btn-primary:active { background:#102956; }
.close-btn {
  position:absolute; top:16px; right:16px; background:none; border:none; color:#6f6b63; cursor:pointer;
  font-size:24px; line-height:1; padding:4px; opacity:.85;
}
.close-btn:active { opacity:1; }

/* Mini-modals */
.mini-modal { display:none; position:fixed; inset:0; background:rgba(30,24,17,0.55); z-index:300; align-items:center; justify-content:center; padding:20px; }
.mini-modal.open { display:flex; }
.mini-inner { background:#fff; border-radius:3px; width:100%; max-width:340px; padding:20px; display:flex; flex-direction:column; gap:12px; border:1px solid var(--rule); box-shadow:0 12px 42px rgba(30,24,17,.25), inset 0 4px 0 var(--print-red); }
.mini-title { font-family:'Barlow Condensed',sans-serif; font-size:19px; font-weight:800; color:var(--print-blue); text-transform:uppercase; letter-spacing:.06em; }
.mini-actions { display:flex; gap:8px; justify-content:flex-end; }

/* Toast / org / export */
.org-item { display:flex; align-items:center; gap:6px; padding:8px 10px; background:#fff; border:1px solid var(--rule); border-radius:2px; }
.org-item.active-org { border-color:var(--print-blue); background:var(--print-blue-soft); }
.org-item-name { flex:1; font-size:13px; font-weight:800; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.org-item-btn { background:#fffdf6; border:1px solid var(--rule); color:var(--ink-soft); border-radius:2px; padding:3px 8px; font-size:11px; cursor:pointer; white-space:nowrap; transition:all .12s; flex-shrink:0; font-weight:800; }
.org-item-btn:active { background:var(--paper-deep); }
.org-item-btn.del { border-color:rgba(187,48,41,.4); color:var(--bad); }
.org-item-btn.del:active { background:rgba(187,48,41,.1); }
.maker-mark {
  border-top:1px dashed var(--rule);
  padding-top:10px;
  display:flex; justify-content:space-between; gap:10px;
  font-family:'Barlow Condensed',sans-serif;
  font-size:11px; font-weight:800; letter-spacing:.09em; text-transform:uppercase;
  color:var(--ink-faint);
}
.maker-mark span:first-child { color:var(--print-blue); }
.export-opt-btn { background:#fff; border:1px solid var(--rule); border-radius:2px; padding:12px 14px; cursor:pointer; text-align:left; width:100%; transition:all .12s; }
.export-opt-btn:active { border-color:var(--print-blue); background:var(--print-blue-soft); }
.toast { position:fixed; bottom:calc(var(--safe-bot) + 16px); left:50%; transform:translateX(-50%) translateY(20px); background:var(--print-blue); color:#fff8e8; padding:9px 18px; border-radius:2px; font-size:13px; font-weight:800; opacity:0; transition:all .2s; pointer-events:none; z-index:500; white-space:nowrap; box-shadow:4px 4px 0 rgba(187,48,41,.25); }
.toast.show { opacity:1; transform:translateX(-50%) translateY(0); }

/* ===================== DESKTOP STYLES ===================== */
@media (min-width:768px) {
  .mobile-shell { display:none; }
  .desktop-shell { display:flex; }
  html,body { overflow:auto; height:auto; }

  .d-header {
    background:
      linear-gradient(90deg, rgba(187,48,41,.08), transparent 22%, rgba(25,56,111,.08)),
      linear-gradient(180deg,#fffaf2 0%,#efe5d4 100%);
    border-top:5px solid var(--print-red); border-bottom:5px solid var(--print-blue);
    padding:12px 28px 11px; display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap;
    box-shadow:0 1px 0 rgba(255,255,255,.9) inset, 0 3px 10px rgba(30,33,32,.07);
    position:sticky; top:0; z-index:20;
  }
  .d-header-left { display:flex; align-items:center; gap:13px; }
  .d-logo { font-family:'Barlow Condensed',sans-serif; font-weight:800; font-size:15px; color:#fff8e8; background:var(--print-red); padding:6px 10px; border-radius:1px; letter-spacing:.14em; border:1px solid #92231e; box-shadow:4px 4px 0 rgba(25,56,111,.12); }
  .d-title { font-family:'Barlow Condensed',sans-serif; font-size:24px; line-height:.9; font-weight:800; letter-spacing:.01em; text-transform:uppercase; color:var(--print-blue); }
  .d-subtitle { font-size:12px; color:var(--ink-soft); margin-top:6px; font-weight:700; }
  .d-subtitle::before { content:'CATATAN: '; color:var(--print-red); font-family:'Barlow Condensed',sans-serif; letter-spacing:.08em; font-weight:800; }
  .d-header-right { display:flex; align-items:center; gap:9px; flex-wrap:wrap; justify-content:flex-end; }
  .d-org-wrap { display:flex; align-items:center; gap:6px; }
  .d-org-select { background:#fff; border:1px solid var(--rule); color:var(--ink); padding:9px 34px 9px 12px; border-radius:2px; font-family:'Plus Jakarta Sans',sans-serif; font-size:14px; cursor:pointer; outline:none; max-width:180px; font-weight:800; box-shadow:2px 2px 0 rgba(25,56,111,.06); }
  .d-add-org { background:#fff; border:1px solid var(--rule); color:var(--print-blue); width:36px; height:36px; border-radius:2px; cursor:pointer; font-size:20px; display:flex; align-items:center; justify-content:center; transition:all .15s; font-weight:800; box-shadow:2px 2px 0 rgba(25,56,111,.06); }
  .d-add-org:hover { background:var(--print-blue); color:#fff8e8; border-color:var(--print-blue); }
  .d-month-nav { display:flex; align-items:center; gap:8px; margin-left:8px; }
  .d-month-label { font-family:'Besley',serif; font-size:30px; font-weight:800; min-width:180px; text-align:center; line-height:.9; letter-spacing:-.06em; color:var(--print-red); text-shadow:2px 2px 0 rgba(25,56,111,.10); }
  .d-nav-btn { background:#fff; border:1px solid var(--rule); color:var(--print-blue); width:36px; height:36px; border-radius:2px; cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:23px; transition:all .15s; font-weight:800; box-shadow:2px 2px 0 rgba(25,56,111,.06); }
  .d-nav-btn:hover { background:var(--print-red); color:#fff8e8; border-color:var(--print-red); }
  .d-btn-export { background:#fff; border:1px solid var(--rule); color:var(--ink-soft); padding:9px 13px; border-radius:2px; cursor:pointer; font-family:'Barlow Condensed',sans-serif; font-size:14px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; transition:all .15s; box-shadow:2px 2px 0 rgba(25,56,111,.06); display:inline-flex; align-items:center; gap:7px; }
  .d-btn-export .btn-icon { width:16px; height:16px; color:var(--print-blue); }
  .d-btn-export:hover { background:var(--print-blue); color:#fff8e8; border-color:var(--print-blue); }
  .d-btn-export:hover .btn-icon { color:#fff8e8; }

  .d-stats { background:#fff; border-bottom:1px solid var(--rule); display:flex; gap:7px; padding:10px 28px; overflow-x:auto; }
  .d-filter { background:#f8f8f4; border-bottom:3px double var(--rule); display:flex; gap:6px; padding:9px 28px; overflow-x:auto; align-items:center; flex-wrap:wrap; }
  .d-filter > span { font-family:'Barlow Condensed',sans-serif !important; font-size:13px !important; font-weight:800; color:var(--print-blue) !important; }

  .d-cal-wrap { padding:20px 28px 46px; }
  .d-dow-header { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; margin-bottom:6px; }
  .d-dow-cell { text-align:center; font-family:'Barlow Condensed',sans-serif; font-size:13px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; padding:6px 0 6px; color:#fff8e8; background:var(--print-blue); border:1px solid #102956; border-radius:1px; box-shadow:2px 3px 0 rgba(48,38,21,.08); }
  .d-dow-cell.sun { color:#fff8e8; background:var(--print-red); border-color:#92231e; }
  .d-dow-cell.sat { color:#fff8e8; background:#2d6997; border-color:#235276; }
  .d-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
  .d-day-tile { background:#fff; border:1px solid var(--rule); border-radius:2px; overflow:hidden; min-height:150px; display:flex; flex-direction:column; box-shadow:2px 2px 0 rgba(30,33,32,.035); }
  .d-day-tile.empty-tile { background:transparent; border-color:transparent; box-shadow:none; }
  .d-day-tile.today { border-color:#d7a515; box-shadow:0 0 0 2px rgba(239,195,77,.32), 2px 2px 0 rgba(30,33,32,.035); }
  .d-day-tile.today .d-tile-head { background:#fff2b8; }
  .d-tile-head { padding:7px 9px 6px; border-bottom:1px solid var(--rule-light); display:flex; align-items:flex-start; gap:7px; background:linear-gradient(180deg,#fffdf6,#f6f0e6); }
  .d-tile-date { font-family:'Besley',serif; font-size:28px; font-weight:800; line-height:.78; color:var(--ink); letter-spacing:-.08em; }
  .d-tile-date.sunday { color:var(--sun); }
  .d-tile-date.saturday { color:var(--sat); }
  .d-tile-wday { font-size:11px; font-family:'Barlow Condensed',sans-serif; text-transform:uppercase; letter-spacing:.12em; color:var(--ink-soft); font-weight:800; padding-top:2px; }
  .d-tile-slots { display:flex; flex-direction:column; flex:1; }
  .d-slot-row { display:flex; flex-direction:column; padding:5px 8px 5px; border-bottom:1px solid var(--rule-light); cursor:pointer; transition:background .12s, color .12s; min-height:28px; background:rgba(255,253,246,.52); }
  .d-slot-row:last-child { border-bottom:none; }
  .d-slot-row:hover { background:#fff1d1; }
  .d-slot-row.status-draft    { background:var(--draft-bg); }
  .d-slot-row.status-scheduled{ background:var(--sched-bg); }
  .d-slot-row.status-posted   { background:var(--posted-bg); }
  .d-slot-row.perf-good       { box-shadow:inset 4px 0 0 var(--good); }
  .d-slot-row.perf-bad        { box-shadow:inset 4px 0 0 var(--bad); }
  .d-slot-row.status-posted.perf-good { background:rgba(45,141,83,.13); }
  .d-slot-row.status-posted.perf-bad  { background:rgba(187,48,41,.10); }
  .d-slot-row.filtered-out { opacity:.18; pointer-events:none; filter:grayscale(.8); }
  .d-slot-time { font-family:'Barlow Condensed',sans-serif; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.12em; color:var(--ink-faint); line-height:1.05; margin-bottom:2px; }
  .d-slot-row.status-draft .d-slot-time    { color:var(--draft-text); }
  .d-slot-row.status-scheduled .d-slot-time{ color:var(--sched-text); }
  .d-slot-row.status-posted .d-slot-time   { color:var(--posted-text); }
  .d-slot-row.status-posted.perf-good .d-slot-time { color:var(--print-green); }
  .d-slot-row.status-posted.perf-bad .d-slot-time  { color:var(--print-red); }
  .d-slot-content { font-size:11px; font-weight:800; color:var(--ink); line-height:1.35; word-break:break-word; }
  .d-slot-empty { font-size:11px; color:var(--ink-faint); font-style:italic; line-height:1.15; }
  .d-slot-badges { display:flex; align-items:center; gap:3px; margin-top:3px; flex-wrap:wrap; }
}

@media (max-width:420px) {
  .org-select-top { max-width:112px; font-size:18px; }
  .logo-pill { font-size:12px; padding-inline:7px; }
  .icon-btn { width:31px; height:31px; }
  .dvh-date { font-size:40px; }
}
