/* Shared application styling, based on the approved administration preview. */
.dp {
  --occupancy-full:#26724d; --occupancy-partial:#bb8615; --occupancy-empty:#ad343d;
  --bg:#f5f6f8; --paper:#fff; --ink:#20262e; --muted:#66717e;
  --line:#dfe3e8; --soft:#f7f8fa; --blue:#24518a; --blue-soft:#edf3fa;
  --green:#2b6b49; --red:#a12c35;
  font:14px/1.45 Arial,Helvetica,sans-serif; font-synthesis:none;
  color:var(--ink); background:var(--bg); max-width:1240px;
  margin:auto; padding:0 32px 32px; box-sizing:border-box;
}
.dp * { box-sizing:border-box; }
.dp [hidden] { display:none!important; }
.dp h1,.dp h2,.dp h3,.dp p { margin:0; }
.dp h1 { font-size:16px; font-weight:400; line-height:1.4; }
.dp h2 { font-size:18px; font-weight:500; line-height:1.4; }
.dp h3 { font-size:16px; font-weight:500; }
.dp p { color:var(--muted); }
.dp button,.dp input,.dp select,.dp textarea { font:inherit; }
.dp button,.dp .dp-link {
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  min-height:36px; padding:7px 12px; border:1px solid var(--blue);
  border-radius:4px; background:var(--blue); color:#fff; font-weight:400;
  line-height:1.35; text-decoration:none; cursor:pointer;
}
.dp button:hover,.dp .dp-link:hover { filter:brightness(.95); }
.dp button.secondary,.dp .dp-link.secondary { color:var(--ink); background:var(--paper); border-color:var(--line); }
.dp button.text { background:transparent; border-color:transparent; color:var(--muted); }
.dp button.danger { background:var(--paper); border-color:var(--line); color:var(--red); }
.dp button.small { font-size:13px; min-height:34px; padding:6px 10px; }
.dp button:disabled { opacity:.5; cursor:default; filter:none; }
.dp button:focus-visible,.dp a:focus-visible,.dp summary:focus-visible,
.dp input:focus-visible,.dp select:focus-visible,.dp textarea:focus-visible {
  outline:2px solid var(--blue); outline-offset:3px;
}
.dp header {
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:19px 32px 17px; margin:0 -32px; background:var(--paper);
}
.dp .brand { display:flex; align-items:baseline; flex-wrap:wrap; gap:14px; }
.dp .brand strong { font-size:16px; font-weight:600; letter-spacing:.4px; }
.dp .brand h1 { border-left:1px solid var(--line); padding-left:14px; }
.dp .row { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.dp .account { font-size:13px; }
.dp .tabs {
  display:flex; align-items:center; flex-wrap:wrap; gap:0 25px;
  margin:0 -32px 28px; padding:0 32px; border-bottom:1px solid var(--line);
  background:var(--paper);
}
.dp .tabs button {
  color:var(--muted); background:transparent; border:0; border-bottom:2px solid transparent;
  border-radius:0; padding:13px 0 12px; font-size:14px; min-height:45px;
}
.dp .tabs button.active { color:var(--ink); border-bottom-color:var(--blue); }
.dp .tabs button.nav-action {
  border:1px solid var(--line); border-radius:4px; min-height:32px;
  margin:5px 0; padding:5px 9px; font-size:13px;
}
.dp .page-heading { margin:30px 0 24px; }
.dp .page-heading h2 { font-size:25px; font-weight:500; margin-bottom:7px; }
.dp .event-list { display:grid; gap:12px; }
.dp .card { background:var(--paper); border:1px solid var(--line); border-radius:5px; padding:20px; }
.dp .event { display:grid; grid-template-columns:minmax(170px,1fr) auto 175px 170px; gap:20px; align-items:center; }
.dp .event-summary h2 { font-size:18px; }
.dp .event-summary p { font-size:13px; margin-top:4px; }
.dp .event-progress p { font-size:12px; margin-bottom:5px; }
.dp .progress { width:100%; height:5px; appearance:none; border:0; background:var(--line); border-radius:2px; overflow:hidden; }
.dp progress::-webkit-progress-bar { background:var(--line); }
.dp progress::-webkit-progress-value { background:var(--blue); }
.dp progress::-moz-progress-bar { background:var(--blue); }
.dp .tag { display:inline-flex; align-items:center; width:fit-content; font-size:12px; font-weight:400; line-height:1.4; padding:3px 7px; border:1px solid var(--line); border-radius:3px; color:var(--green); background:var(--paper); }
.dp .tag.gray { color:var(--muted); }
.dp .breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:8px; color:var(--muted); font-size:13px; margin:0 0 18px; }
.dp .breadcrumb button { padding:0; min-height:28px; font-size:13px; }
.dp .event-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.dp .title-line { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.dp .event-heading h2 { font-size:26px; font-weight:500; line-height:1.25; letter-spacing:-.35px; overflow-wrap:anywhere; }
.dp .event-meta { margin-top:9px; }
.dp .event-description { margin-top:10px; max-width:760px; }
.dp .event-heading>button { font-size:13px; flex-shrink:0; }
.dp .event-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:25px 0 28px; padding-bottom:24px; border-bottom:1px solid var(--line); }
.dp .actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:16px; }
.dp .event-toolbar>.actions { margin:0; }
.dp .event-tools { display:flex; align-items:center; gap:12px; }
.dp .minor { font-size:13px; }
.dp .days { display:flex; flex-wrap:wrap; margin:25px 0; }
.dp .days button { color:var(--ink); background:var(--paper); border-color:var(--line); border-radius:0; margin-left:-1px; min-height:38px; padding:8px 15px; }
.dp .days button:first-child { border-radius:4px 0 0 4px; margin-left:0; }
.dp .days button:last-child { border-radius:0 4px 4px 0; }
.dp .days button.active { position:relative; color:var(--blue); border-color:var(--blue); background:var(--blue-soft); z-index:1; }
.dp .plan { display:grid; gap:24px; }
.dp .station { border:1px solid var(--line); border-radius:5px; background:var(--paper); min-width:0; }
.dp .station-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 20px 16px; }
.dp .station-title { flex:1; min-width:0; }
.dp .station-title h2 { font-size:17px; font-weight:500; overflow-wrap:anywhere; }
.dp .station-detail { font-size:13px; margin-top:4px; line-height:1.5; overflow-wrap:anywhere; }
.dp .station-detail-label { font-size:13px; }
.dp .station-actions { display:flex; align-items:center; gap:6px; flex-shrink:0; }
.dp .station-slots { min-width:0; }
.dp .table-heading,.dp .duty-row { display:grid; grid-template-columns:155px minmax(160px,1fr) 110px 190px; align-items:center; gap:18px; padding:12px 20px; }
.dp .table-heading { border-block:1px solid var(--line); background:var(--soft); font-size:12px; color:var(--muted); }
.dp .table-heading>span:last-child { text-align:right; }
.dp .duty-row { min-height:68px; border-bottom:1px solid var(--line); }
.dp .duty-row:last-child { border-bottom:0; }
.dp .time { font-size:15px; font-weight:400; font-variant-numeric:tabular-nums; color:var(--ink); }
.dp .duty-time { display:flex; flex-direction:column; align-items:flex-start; gap:4px; }
.dp .names { display:flex; align-items:center; flex-wrap:wrap; gap:4px 10px; }
.dp .name { display:inline-flex; align-items:center; justify-content:space-between; gap:4px; color:var(--ink); font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
.dp .name button { color:var(--muted); min-height:28px; min-width:24px; font-size:16px; padding:0 3px; }
.dp .unassigned { color:var(--muted); }
.dp .slot-note { font-size:13px; margin-top:5px; overflow-wrap:anywhere; }
.dp .duty-count { color:var(--muted); font-size:13px; font-variant-numeric:tabular-nums; }
.dp .duty-count>span { display:block; margin-top:3px; }
.dp .duty-actions { display:flex; align-items:center; justify-content:flex-end; gap:7px; }
.dp .duty-actions>button { color:var(--blue); }
.dp .station-empty { padding:0 20px 20px; font-size:14px; }
.dp .plan-summary { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; color:var(--muted); font-size:12px; margin:18px 0 24px; }
.dp .contact { margin-top:18px; }
.dp .action-menu { position:relative; }
.dp .action-menu>summary { display:flex; align-items:center; justify-content:center; list-style:none; cursor:pointer; min-height:34px; min-width:34px; padding:4px 10px; border:1px solid var(--line); border-radius:4px; color:var(--ink); background:var(--paper); font-size:20px; line-height:1; }
.dp .action-menu>summary::-webkit-details-marker { display:none; }
.dp .menu-panel { display:none; position:fixed; left:0; top:0; visibility:hidden; width:200px; max-width:calc(100vw - 16px); max-height:calc(100dvh - 16px); overflow:auto; padding:4px; border:1px solid var(--line); border-radius:4px; background:var(--paper); box-shadow:0 5px 16px #00000016; z-index:200; }
.dp .action-menu[open]>.menu-panel { display:block; }
.dp .menu-panel button { display:block; width:100%; border:0; border-radius:2px; padding:9px 10px; text-align:left; color:var(--ink); background:var(--paper); font-size:13px; }
.dp .menu-panel button:hover { background:var(--soft); filter:none; }
.dp .menu-panel button.danger { color:var(--red); }
.dp .station-slots:not([role=table]) { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); }
.dp .helper-slot { padding:18px 20px; border-top:1px solid var(--line); min-width:0; }
.dp .helper-slot .row { justify-content:space-between; margin-bottom:8px; }
.dp .helper-slot .meta { font-size:13px; margin:5px 0; }
.dp .helper-slot>button { margin-top:10px; }
.dp .helper-roster { margin:12px 0; color:var(--ink); overflow-wrap:anywhere; }
.dp .helper-roster ul { margin:4px 0 0; padding-left:20px; font-size:14px; line-height:1.6; }
.dp .helper-slot.locked { background:var(--soft); }
.dp .empty { padding:30px 20px; border:1px solid var(--line); border-radius:5px; background:var(--paper); text-align:center; }
.dp .empty h2 { margin-bottom:8px; }
.dp .empty .actions { justify-content:center; }
.dp .symbol { display:none; }
.dp .grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:20px; }
.dp .stack { display:grid; gap:16px; }
.dp .stack>.card { display:grid; gap:10px; }
.dp .setup,.dp .notice,.dp .preview-notice { border:1px solid var(--line); border-left:3px solid var(--blue); border-radius:4px; background:var(--paper); padding:12px 16px; margin:18px 0; }
.dp .preview-notice strong { font-size:14px; font-weight:500; }
.dp .preview-notice p { margin-top:4px; }
.dp .message { color:var(--green); background:var(--paper); border:1px solid var(--line); border-radius:4px; padding:12px 16px; margin-bottom:18px; line-height:1.5; }
.dp .message.error { color:var(--red); }
.dp .meta { font-size:13px; color:var(--muted); }
.dp dialog { color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:5px; padding:24px; width:min(620px,calc(100% - 32px)); max-height:90dvh; box-shadow:0 12px 36px #00000025; }
.dp dialog::backdrop { background:#17212c66; }
.dp dialog>h2 { font-size:20px; font-weight:500; margin-bottom:14px; }
.dp dialog>p { margin:0 0 18px; }
.dp form { display:flex; flex-direction:column; gap:14px; }
.dp label { display:flex; flex-direction:column; gap:6px; font-size:13px; font-weight:400; color:var(--muted); }
.dp input,.dp select,.dp textarea { width:100%; min-width:0; min-height:38px; border:1px solid var(--line); border-radius:4px; padding:8px 10px; background:var(--paper); color:var(--ink); }
.dp input[type=checkbox] { width:auto; min-height:0; }
.dp .check { flex-direction:row; align-items:center; gap:8px; }
.dp .fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.dp dialog .actions { margin-top:4px; }
.dp form>.actions:last-child { justify-content:flex-end; margin-top:10px; }
.dp .more { margin:8px 0; }
.dp .more>summary { color:var(--muted); font-size:13px; min-height:32px; padding:6px 0; cursor:pointer; }
.dp .more>.stack { margin-top:12px; }
.dp .slot-preview { border:1px solid var(--line); border-radius:4px; background:var(--soft); padding:14px; }
.dp .slot-preview strong { font-weight:500; }
.dp .slot-preview ul { padding-left:19px; margin:8px 0 0; }
.dp .slot-preview li { margin-top:5px; }
.dp .preview-error { color:var(--red); margin-top:8px; }
.dp .repeat-date { display:flex; align-items:end; gap:8px; }
.dp .repeat-date label { flex:1; }
.dp .planning-dialog form>.actions:last-child { position:sticky; bottom:-24px; background:var(--paper); padding:12px 0 0; box-shadow:0 -8px 12px var(--paper); }
.dp .sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.dp.compact .event { grid-template-columns:minmax(0,1fr) auto; gap:14px; }
.dp.compact .event>button { justify-self:end; }
.dp.compact .table-heading { display:none; }
.dp.compact .duty-row { grid-template-columns:minmax(0,1fr) auto; gap:10px 12px; padding:16px; }
.dp.compact .duty-time { grid-column:1; grid-row:1; }
.dp.compact .duty-count { grid-column:2; grid-row:1; text-align:right; }
.dp.compact .duty-people { grid-column:1/-1; grid-row:2; }
.dp.compact .duty-actions { grid-column:1/-1; grid-row:3; justify-content:flex-start; }
.dp.compact .station-heading { padding:16px; align-items:flex-start; }
.dp.compact .station-title h2 { font-size:17px; }
.dp.compact .event-toolbar { align-items:flex-start; flex-direction:column; }
.dp.compact .event-tools { align-self:stretch; justify-content:space-between; }
@media(max-width:540px) {
  .dp { padding:0 20px 24px; }
  .dp header { padding:16px 20px; margin:0 -20px; align-items:flex-start; }
  .dp .brand { gap:10px; }
  .dp .brand strong { font-size:14px; }
  .dp .brand h1 { font-size:15px; padding-left:10px; }
  .dp .account { display:none; }
  .dp .tabs { padding:0 20px; margin:0 -20px 22px; gap:0 18px; }
  .dp .tabs button { font-size:13px; }
  .dp .event-heading h2 { font-size:23px; }
  .dp .event-heading>button { display:none; }
  .dp .days button { font-size:13px; padding:8px 12px; }
  .dp .fields { grid-template-columns:1fr; }
  .dp .fields.times { grid-template-columns:1fr 1fr; }
  .dp .station-actions>button { font-size:12px; padding:5px 2px; }
  .dp .plan-summary { display:block; line-height:1.7; }
  .dp .plan-summary>span { display:block; }
  .dp .time { font-size:16px; }
}
@media(pointer:coarse) { .dp button,.dp .dp-link,.dp .action-menu>summary { min-height:42px; } }
@media(prefers-color-scheme:dark) {
  .dp { --occupancy-full:#92c6a9; --occupancy-partial:#edc36b; --occupancy-empty:#ec9da5; }
  .dp { --bg:#181b20; --paper:#20242a; --ink:#e1e5e9; --muted:#a3acb7; --line:#363d46; --soft:#252a31; --blue:#497db8; --blue-soft:#25374b; --green:#92c6a9; --red:#ec9da5; }
  .dp button,.dp .dp-link { background:#3266a4; border-color:#3266a4; }
  .dp button.secondary,.dp button.text,.dp button.danger { background:var(--paper); border-color:var(--line); }
  .dp button.text { background:transparent; border-color:transparent; }
  .dp .days button { background:var(--paper); border-color:var(--line); }
  .dp .days button.active { color:#bad2f1; border-color:#789ac4; background:var(--blue-soft); }
  .dp .duty-actions>button { color:#a5c7ed; }
}
/* Month overview and the selected day's real duty list share one selection. */
.dp .duty-calendar { margin:24px 0; padding:18px; background:var(--paper); border:1px solid var(--line); border-radius:5px; }
.dp .calendar-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.dp .calendar-toolbar h3 { font-size:18px; font-weight:500; }
.dp .calendar-toolbar button { min-width:36px; font-size:20px; }
.dp .calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; }
.dp .calendar-weekday { padding:3px 0 7px; text-align:center; color:var(--muted); font-size:12px; }
.dp button.calendar-date,.dp span.calendar-date { min-width:0; min-height:87px; padding:9px; border-radius:4px; font-size:13px; }
.dp button.calendar-date { display:grid; grid-template-columns:1fr auto; align-content:start; align-items:start; justify-content:stretch; gap:6px 3px; text-align:left; color:var(--ink); background:var(--paper); border:1px solid var(--line); }
.dp button.calendar-date.active { outline:2px solid var(--blue); outline-offset:0; position:relative; z-index:1; background:var(--blue-soft); }
.dp .calendar-number { font-size:17px; font-weight:500; font-variant-numeric:tabular-nums; }
.dp .calendar-occupancy { font-size:12px; color:var(--muted); font-variant-numeric:tabular-nums; }
.dp .calendar-state { grid-column:1/-1; display:flex; align-items:flex-start; gap:5px; color:var(--muted); font-size:11px; line-height:1.4; }
.dp .calendar-state span { overflow-wrap:anywhere; }
.dp span.calendar-date { display:block; border:1px solid transparent; background:var(--soft); color:var(--muted); }
.dp .calendar-date.outside { opacity:.45; background:transparent; }
.dp .occupancy-dot { display:inline-block; width:8px; height:8px; flex:0 0 8px; border-radius:50%; background:var(--muted); margin-top:3px; }
.dp .occupancy-dot.status-full { background:var(--occupancy-full); }
.dp .occupancy-dot.status-partial { background:var(--occupancy-partial); }
.dp .occupancy-dot.status-empty { background:var(--occupancy-empty); }
.dp .calendar-legend { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:16px; color:var(--muted); font-size:12px; }
.dp .calendar-legend>span,.dp .occupancy-label { display:flex; align-items:flex-start; gap:6px; }
.dp .calendar-day-heading { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:12px; margin:24px 0 16px; }
.dp .calendar-day-heading h3 { font-size:20px; font-weight:500; margin-bottom:5px; }
.dp .calendar-day-heading p { font-size:13px; }
.dp .calendar-filter { font-size:13px; margin:0; color:var(--muted); }
.dp .occupancy-label { font-size:12px; color:var(--muted); margin:5px 0; }
.dp .slot.occupancy-full { border-left:3px solid var(--occupancy-full); }
.dp .slot.occupancy-partial { border-left:3px solid var(--occupancy-partial); }
.dp .slot.occupancy-empty { border-left:3px solid var(--occupancy-empty); }
.dp .slot.occupancy-locked { border-left:3px solid var(--muted); }
@media(max-width:650px) {
  .dp .duty-calendar { padding:12px; }
  .dp button.calendar-date,.dp span.calendar-date { min-height:66px; padding:6px 3px; }
  .dp button.calendar-date { grid-template-columns:1fr; gap:3px; justify-items:center; }
  .dp .calendar-number { font-size:15px; }
  .dp .calendar-occupancy { font-size:11px; }
  .dp .calendar-state { grid-column:1; }
  .dp .calendar-state span { display:none; }
  .dp .calendar-grid { gap:3px; }
}
body:has(>main#duties) { margin:0; background:#f5f6f8; }
@media(prefers-color-scheme:dark) { body:has(>main#duties) { background:#181b20; } }
/* Apply the narrow layout immediately on viewport changes, before observation. */
@media(max-width:900px) {
  .dp .event { grid-template-columns:minmax(0,1fr) auto; gap:14px; }
  .dp .table-heading { display:none; }
  .dp .duty-row { grid-template-columns:minmax(0,1fr) auto; gap:10px 12px; padding:16px; }
  .dp .duty-time { grid-column:1; grid-row:1; }
  .dp .duty-count { grid-column:2; grid-row:1; text-align:right; }
  .dp .duty-people { grid-column:1/-1; grid-row:2; }
  .dp .duty-actions { grid-column:1/-1; grid-row:3; justify-content:flex-start; }
  .dp .event-toolbar { align-items:flex-start; flex-direction:column; }
}

/* Restricted cashbook; uses the same quiet visual hierarchy as duty planning. */
.dp .cash-entry-link { margin:18px 0; }
.dp .cash-toolbar { display:flex; align-items:end; justify-content:space-between; gap:20px; margin:24px 0; }
.dp .cash-toolbar label { max-width:220px; }
.dp .cash-toolbar .actions { margin:0; }
.dp .cash-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:18px; }
.dp .cash-metrics h3 { font-size:23px; margin:7px 0; }
.dp .cash-explanation { margin-bottom:20px; max-width:900px; }
.dp .cash-table { border:1px solid var(--line); border-radius:5px; background:var(--paper); }
.dp .cash-row { display:grid; grid-template-columns:minmax(150px,1fr) 110px 110px 120px 175px; gap:15px; align-items:center; padding:14px 18px; border-bottom:1px solid var(--line); }
.dp .cash-row:last-child { border-bottom:0; }
.dp .cash-heading { background:var(--soft); color:var(--muted); font-size:12px; }
.dp .cash-row strong { font-weight:500; overflow-wrap:anywhere; }
.dp .cash-actions { display:flex; justify-content:end; flex-wrap:wrap; gap:6px; }
.dp .cash-negative { color:var(--red); }
.dp .cash-summary-title { margin:28px 0 12px; }
.dp .cash-summary { max-width:660px; background:var(--paper); border:1px solid var(--line); border-radius:4px; margin-bottom:12px; }
.dp .cash-summary>[role=row] { display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px; padding:12px 16px; border-bottom:1px solid var(--line); }
.dp .cash-summary>[role=row]:last-child { border-bottom:0; }
.dp .cash-role-list { display:grid; gap:10px; margin:18px 0; }
.dp.compact .cash-row { grid-template-columns:1fr 1fr; gap:12px; }
.dp.compact .cash-heading { display:none; }
.dp.compact .cash-row>[role=cell]:first-child,.dp.compact .cash-actions { grid-column:1/-1; }
.dp.compact .cash-row [data-label]::before { content:attr(data-label); display:block; font-size:12px; color:var(--muted); margin-bottom:3px; }
.dp.compact .cash-actions { justify-content:start; }
@media(max-width:600px){.dp .cash-toolbar { align-items:stretch; flex-direction:column; }.dp .cash-metrics { grid-template-columns:1fr; }}

.dp.compact .cash-heading-bar>button { display:inline-flex; }
.dp.compact .cash-heading-bar { flex-wrap:wrap; }

.dp .calendar-day-tools { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.dp .station-empty button { margin-top:10px; }

.dp .signup-info { margin:0 0 24px; padding:20px; border:1px solid var(--line); border-left:3px solid var(--blue); border-radius:4px; background:var(--paper); }
.dp .signup-info>h2 { font-size:19px; margin-bottom:16px; }
.dp .signup-info-columns { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.dp .signup-info-columns>div { min-width:0; }
.dp .signup-info h3 { font-size:15px; margin-bottom:8px; }
.dp .signup-info p,.dp .signup-info li { font-size:13px; line-height:1.55; }
.dp .signup-info p+p { margin-top:8px; }
.dp .signup-info ul { margin:0 0 8px; padding-left:18px; color:var(--muted); }
.dp .signup-info li+li { margin-top:5px; }
.dp .signup-info .actions { margin-top:10px; }
.dp .signup-info .signup-info-note { margin-top:16px; padding-top:12px; border-top:1px solid var(--line); font-size:12px; color:var(--muted); }
.dp .signup-info-note summary { cursor:pointer; }
.dp .signup-info-note p { margin-top:8px; font-size:12px; }
@media(max-width:650px) { .dp .signup-info { padding:16px; }.dp .signup-info-columns { grid-template-columns:1fr; gap:16px; } }

/* Day boundaries remain visible across locations and in the direct editor. */
.dp .plan-days { display:grid; gap:32px; }
.dp .plan-day { border:1px solid var(--line); border-radius:5px; background:var(--paper); overflow:hidden; }
.dp .plan-day-heading { padding:16px 20px; background:var(--blue-soft); border-bottom:1px solid var(--line); border-left:4px solid var(--blue); }
.dp .plan-day-heading h3 { font-size:19px; font-weight:500; }
.dp .plan-day-heading p { margin-top:4px; font-size:13px; }
.dp .plan-day>.plan { gap:16px; padding:18px; }
.dp .plan-day .station { border-radius:4px; }
.dp .day-empty { padding:8px 0; font-size:13px; }
.dp .empty-stations { margin-top:28px; }
.dp .empty-stations>h3 { margin-bottom:12px; }
.dp .plan-view-tabs { display:flex; gap:0; margin:0 0 24px; border-bottom:1px solid var(--line); }
.dp .plan-view-tabs button { border:0; border-bottom:3px solid transparent; border-radius:0; background:transparent; color:var(--muted); padding:10px 18px; }
.dp .plan-view-tabs button.active { border-bottom-color:var(--blue); color:var(--ink); }
.dp .plan-editor { display:grid; gap:20px; }
.dp .edit-intro { font-size:13px; }
.dp .edit-section-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-top:12px; }
.dp .edit-stations { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.dp .plan-edit-form { padding:20px; background:var(--paper); border:1px solid var(--line); border-radius:4px; min-width:0; }
.dp .plan-edit-form>h3 { margin-bottom:16px; font-size:17px; overflow-wrap:anywhere; }
.dp .plan-edit-form .fields { margin:0; }
.dp .plan-edit-form .draft-status { color:var(--blue); min-height:18px; margin-top:12px; }
.dp .edit-slots { display:grid; gap:16px; padding:18px; }
.dp .edit-slots .plan-edit-form { background:var(--soft); }
@media(max-width:650px) {
  .dp .plan-day>.plan,.dp .edit-slots { padding:12px; }
  .dp .plan-day-heading { padding:14px; }
  .dp .plan-day-heading h3 { font-size:17px; }
  .dp .edit-stations { grid-template-columns:1fr; }
  .dp .plan-edit-form { padding:16px; }
}
.dp .plan-calendar { margin:20px 0; border:1px solid var(--line); border-radius:4px; background:var(--paper); }
.dp .plan-calendar>summary { padding:12px 16px; color:var(--muted); cursor:pointer; font-size:13px; }
.dp .plan-calendar .duty-calendar { margin:0; border:0; }
.dp .draft-count { align-self:center; margin-left:16px; color:var(--blue); font-size:12px; }

/* Place tabs filter the same plan/editor; comparison keeps both huts aligned. */
.dp .station-tabs { display:flex; flex-wrap:wrap; align-items:stretch; gap:6px; padding:4px 0 12px; margin:0 0 20px; }
.dp .station-tabs button { flex:0 0 auto; max-width:260px; white-space:normal; overflow-wrap:anywhere; text-align:left; }
.dp .station-tabs button.active { background:var(--blue-soft); color:var(--ink); border-color:var(--blue); }
.dp .station-grid { display:grid; grid-template-columns:minmax(0,1fr); align-items:start; }
.dp .station-grid>.station,.dp .edit-place-column { min-width:0; }
.dp .edit-place-column>h4 { margin:0 0 12px; font-size:16px; font-weight:500; overflow-wrap:anywhere; }
.dp .edit-place-column>.plan-edit-form+.plan-edit-form { margin-top:16px; }
@media(min-width:1050px) {
  .dp .station-grid.compare-places { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dp .compare-places .table-heading { display:none; }
  .dp .compare-places .duty-row { grid-template-columns:minmax(0,1fr) auto; gap:10px 12px; padding:16px; }
  .dp .compare-places .duty-time { grid-column:1; grid-row:1; }
  .dp .compare-places .duty-count { grid-column:2; grid-row:1; text-align:right; }
  .dp .compare-places .duty-people { grid-column:1/-1; grid-row:2; }
  .dp .compare-places .duty-actions { grid-column:1/-1; grid-row:3; justify-content:flex-start; }
  .dp .compare-places .station-heading { align-items:flex-start; flex-wrap:wrap; padding:16px; }
}
.dp .edit-stations:has(>form:only-child) { grid-template-columns:minmax(0,1fr); }

/* Each place owns its day navigation and its complete duty list. */
.dp .place-board { display:grid; grid-template-columns:minmax(0,1fr); align-items:start; gap:24px; }
.dp .place-column { overflow:hidden; }
.dp .place-column .station-heading { background:var(--paper); }
.dp .place-column .station-title h2 { font-size:21px; }
.dp .place-board-tools { justify-content:space-between; margin:0 0 16px; }
.dp .place-day-tabs { display:flex; flex-wrap:wrap; gap:4px; padding:0 16px 12px; border-bottom:1px solid var(--line); }
.dp .place-day-tabs button { flex:0 0 auto; min-height:36px; padding:7px 11px; font-size:13px; background:transparent; border-color:transparent; color:var(--muted); }
.dp .place-day-tabs button.active { background:var(--blue-soft); color:var(--blue); border-color:var(--blue); }
.dp .place-date-picker { margin:12px 16px; max-width:220px; font-size:12px; }
.dp .place-duty-day+.place-duty-day { border-top:4px solid var(--line); }
.dp .place-duty-date { display:flex; flex-wrap:wrap; align-items:center; gap:4px 12px; padding:14px 16px; background:var(--soft); border-bottom:1px solid var(--line); }
.dp .place-duty-date h3 { flex-basis:100%; font-size:15px; font-weight:500; }
.dp .place-duty-date p { flex:1; font-size:12px; }
.dp .place-duty-date button { font-size:12px; padding:4px 0; min-height:28px; }
.dp .place-duty-day .day-empty { padding:18px 16px; }
.dp .place-column .station-empty { padding:20px 16px; }
.dp .place-summary { padding:12px 16px; border-top:1px solid var(--line); font-size:12px; }
.dp .column-edit-slots { display:grid; gap:12px; padding:16px; }
.dp .column-edit-slots .plan-edit-form { background:var(--paper); }
.dp .column-place-settings { padding:16px; border-top:1px solid var(--line); background:var(--soft); }
@media(min-width:1050px) {
  .dp:not(.compact) .place-board.compare-places { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:650px) {
  .dp .place-column .station-title h2 { font-size:20px; }
  .dp .place-column .station-heading { flex-wrap:wrap; gap:8px; }
  .dp .column-edit-slots,.dp .column-place-settings { padding:12px; }
}

.dp .place-date-controls { display:flex; flex-wrap:wrap; gap:12px; align-items:end; padding:0 16px 16px; border-bottom:1px solid var(--line); }
.dp .place-date-controls label { flex:1 1 180px; margin:0; max-width:260px; font-size:12px; }
.dp .place-date-controls input { min-width:0; }
.dp .place-date-controls .active { background:var(--blue-soft); color:var(--blue); border-color:var(--blue); }
.dp .place-select { max-width:320px; margin-bottom:20px; font-size:13px; }
.dp .group-settings summary { cursor:pointer; font-size:13px; color:var(--blue); }
.dp .group-settings>p { margin:12px 0; }
.dp .group-settings .plan-edit-form+.plan-edit-form { margin-top:12px; }
.dp .slot-context { color:var(--muted); font-size:12px; }
.dp .plan-view-tabs { flex-wrap:wrap; }
.dp .draft-count { overflow-wrap:anywhere; }
@media(max-width:650px) { .dp .draft-count { flex-basis:100%; margin:6px 0; } }
