/* DCM Booking: dayos grammar in brand navy/gold. Fills only: no borders, shadows or gradients. */
.dcm-book { --canvas:#e5e5e5; --paper:#fff; --navy:#1e263b; --mist:#f3f3f3; --ash:#c6c6c6; --smoke:#9aa3b8; --slate:#444; --gold:#c9a464; --gold-pale:#efe2bd;
  --ease:cubic-bezier(.23,1,.32,1); --cond:Anton,Impact,'Arial Narrow',sans-serif; --body:Inter,ui-sans-serif,system-ui,sans-serif; --mono:'JetBrains Mono',ui-monospace,Menlo,monospace; font-family:var(--body); color:var(--navy); }
.dcm-book *, .dcm-book *::before, .dcm-book *::after { box-sizing:border-box; }
:where(.dcm-book) button { font:inherit; color:inherit; background:none; border:0; padding:0; cursor:pointer; border-radius:8px; transition:transform 160ms var(--ease), background-color 200ms var(--ease), color 200ms var(--ease); }
.dcm-book button:active { transform:scale(.97); }
.dcm-book button:focus-visible, .dcm-book input:focus-visible, .dcm-book textarea:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.dcm-book .dcm-mono { font-family:var(--mono); font-size:12px; line-height:1.6; letter-spacing:-.03em; text-transform:uppercase; font-weight:500; }
.dcm-book .dcm-muted { color:var(--slate); }

.dcm-card { background:var(--paper); border-radius:32px; padding:24px; }
.dcm-head { display:flex; justify-content:space-between; align-items:baseline; gap:16px; flex-wrap:wrap; margin-bottom:16px; }
.dcm-head .dcm-mono { color:var(--slate); }
.dcm-pick, .dcm-pane { min-width:0; }
.dcm-body { display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:32px 48px; align-items:start; }
.dcm-pane { min-height:220px; }
.dcm-pane > * { animation:dcmIn 220ms var(--ease) both; }
@keyframes dcmIn { from { opacity:0; transform:translateY(8px); } }
.dcm-empty { display:flex; flex-direction:column; justify-content:center; min-height:220px; gap:10px; background:var(--mist); border-radius:24px; padding:24px; }
.dcm-empty .dcm-big { font-family:var(--cond); font-size:32px; line-height:.95; text-transform:uppercase; }

/* A · month grid + slot rail */
.dcm-nav { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.dcm-nav h3 { margin:0; font-family:var(--cond); font-weight:400; font-size:28px; line-height:1; text-transform:uppercase; }
.dcm-nav button { width:44px; height:44px; background:var(--mist); font-size:20px; }
.dcm-nav button:hover:not(:disabled) { background:var(--navy); color:var(--paper); }
.dcm-nav button:disabled { color:var(--ash); cursor:default; }
.dcm-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.dcm-grid .dcm-dow { text-align:center; color:var(--slate); padding:6px 0; }
.dcm-day { position:relative; aspect-ratio:1; min-height:44px; display:flex; align-items:center; justify-content:center; font-weight:500; font-size:15px; color:var(--ash); }
.dcm-day.is-open { color:var(--navy); background:var(--mist); }
.dcm-day.is-open::after { content:""; position:absolute; left:50%; bottom:6px; width:5px; height:5px; margin-left:-2.5px; border-radius:50%; background:var(--gold); }
.dcm-day.is-open:hover { background:var(--gold-pale); }
.dcm-day.is-sel { background:var(--navy); color:var(--paper); }
.dcm-day.is-sel::after { background:var(--gold); }
.dcm-day.is-today { text-decoration:underline; text-decoration-color:var(--gold); text-underline-offset:4px; }
.dcm-rail { display:grid; grid-template-columns:repeat(auto-fill,minmax(112px,1fr)); gap:8px; }
.dcm-slot { min-height:36px; background:var(--mist); font-weight:500; font-size:13px; font-variant-numeric:tabular-nums; }
.dcm-slot:hover { background:var(--navy); color:var(--paper); }
.dcm-pane h4 { margin:0 0 4px; font-family:var(--cond); font-weight:400; font-size:28px; line-height:1; text-transform:uppercase; }

/* B · next-days strip + chips */
.dcm-snav { flex-wrap:wrap; gap:8px 12px; }
.dcm-snav h3 { flex:1; text-align:center; }
.dcm-snav .dcm-wk { flex-basis:100%; text-align:center; }
.dcm-strip { display:flex; flex-wrap:wrap; gap:8px; }
.dcm-tile { flex:1 1 calc((100% - 32px) / 5); max-width:calc((100% - 32px) / 5); min-height:112px; display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; padding:14px 14px 12px; background:var(--mist); text-align:left; }
.dcm-tile .dcm-num { font-family:var(--cond); font-size:44px; line-height:.9; }
.dcm-tile .dcm-n { color:var(--slate); }
.dcm-tile:hover { background:var(--gold-pale); }
.dcm-tile.is-sel { background:var(--navy); color:var(--paper); }
.dcm-tile.is-sel .dcm-n { color:var(--gold); }
.dcm-chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.dcm-chips .dcm-slot { min-width:0; padding:0 12px; }
.dcm-chips .dcm-slot.is-sel { background:var(--navy); color:var(--paper); }
/* list layout: days stacked, chips wrap, the pane follows on desktop so the form is beside whichever day they picked */
.dcm-list { display:grid; gap:16px; }
.dcm-lday { display:grid; gap:8px; }
.dcm-lhead { display:flex; align-items:baseline; gap:10px; }
.dcm-ldow { font-family:var(--cond); font-size:22px; line-height:1; text-transform:uppercase; }
.dcm-lhead .dcm-n { margin-left:auto; }
.dcm-list .dcm-chips { margin-top:0; }
.dcm-more { min-height:40px; background:var(--mist); font-weight:500; font-size:14px; padding:0 16px; justify-self:start; }
.dcm-more:hover { background:var(--navy); color:var(--paper); }
.dcm-book[data-layout="list"] .dcm-pane { position:sticky; top:24px; }

/* C · week timetable */
.dcm-week { display:grid; grid-template-columns:56px repeat(var(--cols,5),1fr); gap:4px; align-items:stretch; }
.dcm-week .dcm-tick { color:var(--slate); display:flex; align-items:center; padding-right:6px; font-variant-numeric:tabular-nums; }
.dcm-week .dcm-col { text-align:center; padding-bottom:6px; }
.dcm-week .dcm-col .dcm-num { display:block; font-family:var(--cond); font-size:28px; line-height:1; }
.dcm-week .dcm-slot { min-height:44px; font-size:0; }
.dcm-week .dcm-slot::before { content:""; display:block; width:8px; height:8px; margin:0 auto; border-radius:50%; background:var(--gold); }
.dcm-week .dcm-slot:hover::before, .dcm-week .dcm-slot.is-sel::before { background:var(--paper); }
.dcm-week .dcm-slot.is-sel { background:var(--navy); }
.dcm-week .dcm-blank { min-height:44px; background:var(--mist); opacity:.45; border-radius:8px; }

/* form + states */
.dcm-form { display:grid; gap:12px; margin-top:16px; }
.dcm-form label { display:grid; gap:6px; }
.dcm-form input, .dcm-form textarea { width:100%; font:inherit; font-size:16px; color:var(--navy); background:var(--mist); border:0; border-radius:8px; min-height:48px; padding:12px 14px; }
.dcm-form textarea { min-height:88px; resize:vertical; }
.dcm-form .dcm-hp { position:absolute; left:-9999px; }
.dcm-form .dcm-submit { min-height:56px; background:var(--gold); color:var(--navy); font-weight:500; font-size:16px; padding:0 28px; }
.dcm-form .dcm-submit:hover { background:var(--navy); color:var(--paper); }
.dcm-form .dcm-submit:disabled { opacity:.5; cursor:wait; transform:none; }
.dcm-change { color:var(--slate); text-decoration:underline; text-decoration-color:var(--gold); text-underline-offset:3px; }
.dcm-note { background:var(--gold-pale); border-radius:12px; padding:12px 14px; font-size:14px; line-height:1.4; }
.dcm-done { background:var(--navy); color:var(--paper); border-radius:24px; padding:24px; display:grid; gap:12px; }
.dcm-done h4 { font-size:36px; color:var(--gold); }
.dcm-done p { margin:0; color:var(--smoke); font-size:16px; line-height:1.4; }
.dcm-done strong { color:var(--paper); font-weight:500; }
.dcm-done a { color:var(--gold); }
.dcm-skel { height:280px; background:var(--mist); border-radius:24px; }

@media (max-width:900px) {
  .dcm-card { padding:20px 16px; border-radius:24px; }
  .dcm-body { grid-template-columns:minmax(0,1fr); gap:24px; }
  .dcm-chips .dcm-slot { min-width:0; flex:0 0 calc((100% - 18px) / 4); padding:0 4px; min-height:40px; }  /* four per row on a 310px pane */
  .dcm-pane { min-height:0; scroll-margin-top:24px; }
  .dcm-nav h3 { font-size:22px; }
  .dcm-tile { flex:1 1 calc((100% - 16px) / 3); max-width:calc((100% - 16px) / 3); min-height:96px; padding:12px 10px 10px; }
  .dcm-tile .dcm-num { font-size:36px; }
  .dcm-book[data-layout="list"] .dcm-pane { position:static; }
  .dcm-list { gap:14px; }
  .dcm-ldow { font-size:20px; }
  .dcm-empty { min-height:0; padding:20px; }
  .dcm-empty .dcm-big { font-size:28px; }
  .dcm-rail { grid-template-columns:repeat(3,1fr); }
  .dcm-week { grid-template-columns:48px repeat(var(--cols,5),1fr); }
  .dcm-week .dcm-col .dcm-num { font-size:22px; }
}
@media (prefers-reduced-motion:reduce) { .dcm-book button, .dcm-pane > * { transition:none; animation:none; } }
