/* Operational calendar, using the same surfaces and contrast as tickets/offers. */
.calendar-workspace { min-width:0; }
.cal-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:20px; }
.cal-toolbar h2 { margin:0 auto 0 0; font-size:24px; overflow-wrap:anywhere; }
.cal-period { display:flex; gap:6px; }
.cal-period .btn { min-width:40px; }
.cal-view-switch { display:flex; gap:4px; padding:4px; border:1px solid var(--line); border-radius:6px; background:var(--surface); }
.cal-view-switch button { background:transparent; border:0; border-radius:4px; color:var(--ink); padding:10px 16px; }
.cal-view-switch button[aria-pressed=true] { color:var(--section-header-ink); background:var(--section-header-bg); }
.cal-filters { display:grid; grid-template-columns:minmax(180px,1fr) minmax(150px,240px) minmax(140px,180px) auto; gap:12px; align-items:end; }
.cal-filters label,.cal-options label,.cal-form label { display:grid; gap:6px; color:var(--muted); font-size:13px; min-width:0; margin:0; }
.cal-filters input,.cal-filters select,.cal-options input,.cal-options select,.cal-form input,.cal-form select,.cal-form textarea { width:100%; min-width:0; color:var(--ink); background:var(--surface); border:1px solid var(--line-strong); border-radius:5px; min-height:44px; padding:10px 12px; }
.cal-quick { display:flex; flex-wrap:wrap; gap:8px; margin:14px 0 20px; }
.cal-quick button { border:0; background:transparent; color:var(--muted); padding:9px 12px; border-radius:5px; }
.cal-quick button[aria-pressed=true] { color:var(--action); background:#e6f2f0; }
.cal-quick button[data-cal-action=overdue] { color:var(--danger); }
.cal-options { display:flex; flex-wrap:wrap; align-items:end; gap:18px; border:1px solid var(--line); border-radius:6px; background:var(--surface); padding:18px; margin-bottom:18px; }
.cal-options label { max-width:220px; }
.cal-options input[type=number] { max-width:90px; }
.cal-check { display:flex!important; align-items:center; gap:8px!important; color:var(--ink)!important; min-height:44px; }
.cal-check input[type=checkbox] { width:18px; height:18px; min-height:18px; accent-color:var(--action); margin:0; }
.cal-board { display:grid; grid-template-columns:minmax(0,1fr); gap:20px; align-items:start; }
.cal-board-main { min-width:0; }
.cal-side-agenda .cal-board { grid-template-columns:minmax(0,1fr) 320px; }
.cal-calendar,.cal-agenda { min-width:0; background:var(--surface); border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.cal-month-heading { display:grid; grid-template-columns:repeat(var(--cal-days),minmax(0,1fr)); background:var(--section-header-bg); color:var(--section-header-ink); }
.cal-month-heading span { padding:14px 8px; font-weight:650; text-align:center; }
.cal-month-grid { display:grid; grid-template-columns:repeat(var(--cal-days),minmax(0,1fr)); }
.cal-cell { position:relative; min-width:0; min-height:138px; padding:8px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.cal-compact .cal-cell { min-height:105px; }
.cal-cell.is-weekend { background:var(--surface-muted); }
.cal-cell.is-other-month .cal-date { color:var(--muted); }
.cal-cell.is-selected { box-shadow:inset 0 0 0 2px var(--action); background:#f0f7f6; }
.cal-cell.is-range { background:#e4f2ef; }
.cal-date-line { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.cal-date { min-width:32px; height:32px; border:0; border-radius:50%; background:transparent; color:var(--ink); font-weight:650; }
.cal-date.is-today { background:var(--action); color:#fff; }
.cal-day-add { width:32px; height:32px; border:0; color:var(--muted); background:transparent; border-radius:4px; }
.cal-day-add:hover,.cal-date:hover { background:var(--surface-muted); }
.cal-date.is-today:hover { background:var(--action-dark); }
.cal-blue { --cal-color:#286b95; --cal-fill:#eaf2f8; }
.cal-green { --cal-color:#176b48; --cal-fill:#eaf4ee; }
.cal-purple { --cal-color:#77589e; --cal-fill:#f1edf7; }
.cal-amber { --cal-color:#946200; --cal-fill:#faf3e7; }
.cal-event { display:flex; align-items:center; gap:5px; min-width:0; width:100%; margin:0 0 5px; border:0; border-left:3px solid var(--cal-color); border-radius:3px; padding:6px; text-align:left; color:var(--ink); background:var(--cal-fill); font-size:12px; }
.cal-event:hover,.cal-time-event:hover { filter:brightness(.97); }
.cal-event-title { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.cal-event time { flex:none; font-size:11px; }
.cal-event > span:first-child { color:var(--cal-color); flex:none; }
.cal-muted-indicator { margin-left:auto; flex:none; color:var(--muted); }
.cal-event.is-completed .cal-event-title,.cal-agenda-row.is-completed .cal-agenda-title,.cal-time-event.is-completed > span { text-decoration:line-through; color:var(--muted); }
.cal-more { border:0; background:transparent; color:var(--action); padding:4px; font-size:12px; }
.cal-week-number { position:absolute; bottom:4px; right:6px; color:var(--muted); font-size:11px; }
.cal-legend { display:flex; flex-wrap:wrap; gap:18px; padding:14px 2px; color:var(--muted); font-size:13px; }
.cal-legend span { color:var(--cal-color); }
.cal-agenda header { display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding:18px; border-bottom:1px solid var(--line); }
.cal-agenda h2 { margin:0; flex:1; font-size:19px; }
.cal-agenda-list { padding:0 18px; }
.calendar-workspace:not(.cal-side-agenda) .cal-agenda-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:24px; }
.cal-agenda-row { display:grid; grid-template-columns:22px minmax(0,1fr) auto; gap:10px; align-items:start; padding:18px 0; border-bottom:1px solid var(--line-soft); }
.cal-agenda-row input { margin:4px 0 0; width:18px; height:18px; accent-color:var(--action); }
.cal-agenda-title { background:transparent; border:0; padding:0; text-align:left; color:var(--ink); font-weight:650; line-height:1.5; overflow-wrap:anywhere; }
.cal-agenda-title:hover { color:var(--action); }
.cal-agenda-row small { display:block; color:var(--muted); margin-top:5px; font-size:12px; overflow-wrap:anywhere; }
.cal-status { font-size:11px; background:var(--surface-muted); color:var(--muted); padding:4px 6px; border-radius:4px; }
.cal-side-agenda .cal-agenda-row { grid-template-columns:22px minmax(0,1fr); }
.cal-side-agenda .cal-status { grid-column:2; justify-self:start; }
.cal-time-grid { display:grid; grid-template-columns:52px repeat(var(--cal-days),minmax(0,1fr)); }
.cal-time-head { background:var(--section-header-bg); color:var(--section-header-ink); border:0; border-radius:0; padding:14px 6px; text-align:center; font-size:13px; font-weight:600; }
.cal-all-label { color:var(--muted); background:var(--surface-muted); padding:6px; font-size:11px; border-bottom:1px solid var(--line); }
.cal-all-day { min-width:0; padding:5px; min-height:58px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.cal-hour-labels { display:flex; flex-direction:column; background:var(--surface-muted); }
.cal-hour-labels span { height:64px; flex:none; padding:4px; color:var(--muted); font-size:11px; border-bottom:1px solid var(--line); }
.cal-time-column { position:relative; min-width:0; border-right:1px solid var(--line); background:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,var(--line-soft) 31px,var(--line-soft) 32px,transparent 32px,transparent 63px,var(--line) 63px,var(--line) 64px); }
.cal-time-event { display:flex; flex-direction:column; gap:4px; position:absolute; min-width:0; border:0; border-left:3px solid var(--cal-color); border-radius:4px; padding:6px; color:var(--ink); background:var(--cal-fill); text-align:left; overflow:hidden; font-size:12px; z-index:1; }
.cal-time-event span { width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cal-time-event time,.cal-time-event small { font-size:11px; }
.cal-hours-note { margin:0; padding:12px; color:var(--muted); font-size:12px; }
.cal-footer { color:var(--muted); font-size:12px; margin:16px 0; }
.cal-modal { max-width:780px; }
.cal-modal .modal-header { background:var(--section-header-bg); color:var(--section-header-ink); padding:20px 24px; }
.cal-modal .modal-header h2 { color:var(--section-header-ink); overflow-wrap:anywhere; }
.cal-modal .modal-header .icon-btn { color:var(--section-header-ink); }
.cal-modal-body { padding:24px; }
.cal-modal .modal-actions { padding:18px 24px; }
.cal-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.cal-form-wide { grid-column:1/-1; }
.cal-form small { color:var(--muted); line-height:1.5; }
.cal-form-error { color:var(--danger); }
.cal-modal [hidden] { display:none!important; }
.cal-detail { display:grid; grid-template-columns:150px minmax(0,1fr); gap:16px; margin:0 0 20px; }
.cal-detail dt { color:var(--muted); }
.cal-detail dd { margin:0; overflow-wrap:anywhere; }
.cal-notes { white-space:pre-wrap; }
.cal-source-workflow { border-top:1px solid var(--line); padding-top:14px; margin-top:16px; }
.cal-notification { display:flex; flex-wrap:wrap; gap:10px; align-items:center; border-bottom:1px solid var(--line); padding:18px 0; }
.cal-notification > div { flex:1; min-width:150px; }
.cal-notification small { display:block; color:var(--muted); margin-top:5px; }
.cal-live:empty { display:none; }
@media(max-width:1100px) { .cal-side-agenda .cal-board { grid-template-columns:minmax(0,1fr) 260px; } .cal-filters { grid-template-columns:minmax(150px,1fr) minmax(140px,180px) 140px auto; } }
@media(max-width:800px) { .cal-side-agenda .cal-board { grid-template-columns:1fr; } .cal-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } .cal-filters label:first-child { grid-column:1/-1; } .cal-cell { min-height:118px; padding:5px; } .cal-toolbar h2 { flex-basis:100%; } .calendar-workspace:not(.cal-side-agenda) .cal-agenda-list { grid-template-columns:1fr; } }
@media(max-width:520px) { .cal-toolbar { gap:9px; } .cal-toolbar h2 { font-size:22px; } .cal-view-switch button { padding:10px 12px; } .cal-toolbar > .btn { padding:10px 12px; } .cal-cell { padding:3px; min-height:110px; } .cal-day-add { display:none; } .cal-date-line { justify-content:center; } .cal-date { min-width:28px; height:36px; } .cal-month-heading span { padding:12px 2px; font-size:11px; } .cal-cell .cal-event { padding:4px 2px; gap:2px; font-size:11px; } .cal-cell .cal-event time,.cal-cell .cal-event > span:first-child,.cal-cell .cal-muted-indicator { display:none; } .cal-more { padding:3px 0; font-size:11px; } .cal-time-grid { grid-template-columns:38px repeat(var(--cal-days),minmax(0,1fr)); } .cal-time-head { padding:12px 2px; font-size:11px; } .cal-time-event { padding:4px 2px; font-size:11px; } .cal-all-day { padding:3px; } .cal-all-day .cal-event { padding:4px 2px; font-size:11px; } .cal-all-day .cal-event > span:first-child { display:none; } .cal-modal-body { padding:18px; } .cal-modal .modal-header,.cal-modal .modal-actions { padding:16px 18px; } .cal-form { grid-template-columns:1fr; } .cal-form-wide { grid-column:1; } .cal-detail { grid-template-columns:100px minmax(0,1fr); gap:12px; } .cal-agenda header { padding:14px; } .cal-agenda-list { padding:0 14px; } .cal-agenda-row { grid-template-columns:22px minmax(0,1fr); } .cal-status { grid-column:2; justify-self:start; } }
@media(pointer:coarse) { .cal-date { height:44px; } .cal-quick button,.cal-more { min-height:44px; } .cal-form input,.cal-form select,.cal-form textarea,.cal-filters input,.cal-filters select { font-size:16px; } }

.cal-modal .modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.cal-modal .modal-header h2{min-width:0;overflow-wrap:anywhere;flex:1}.cal-modal .modal-header .icon-btn{flex:none;width:42px;height:42px;background:transparent;border:1px solid #ffffff80;color:#fff;font-size:26px;line-height:1}.cal-modal .modal-header .icon-btn:hover{background:#ffffff20}.cal-modal .modal-header .icon-btn:focus-visible{outline:3px solid #ffd069;outline-offset:3px}
.cal-commerce{display:grid;gap:8px;padding:15px;background:#edf5f3;border-left:3px solid #0c7a75;margin:18px 0}.cal-commerce small{color:#526c72}.cal-commerce-actions{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px;margin:18px 0}.cal-commerce-actions label{display:grid;gap:5px;flex:1;min-width:180px}.cal-commerce-actions select{min-height:45px;max-width:100%}
