.schedule-preview{--schedule-prep:#c7ad8b;--schedule-shoot:#be8881;--schedule-production:#8b6689;--schedule-review:#9e7cb0;--schedule-feedback:#c59a52;--schedule-delivery:#2e6965;--schedule-custom:#9a8b7d;color:var(--text)}
:root.dark .schedule-preview{--schedule-prep:#806b51;--schedule-shoot:#a96761;--schedule-production:#765475;--schedule-review:#8d6b9e;--schedule-feedback:#ad7f36;--schedule-delivery:#2e6965;--schedule-custom:#766c62}
.schedule-preview .type-0{--schedule-type:var(--schedule-shoot);--schedule-type-text:#fff}
.schedule-preview .type-1{--schedule-type:var(--schedule-prep);--schedule-type-text:#2c251f}
.schedule-preview .type-2{--schedule-type:var(--schedule-production);--schedule-type-text:#fff}
.schedule-preview .type-3{--schedule-type:var(--schedule-review);--schedule-type-text:#fff}
.schedule-preview .type-4{--schedule-type:var(--schedule-feedback);--schedule-type-text:#2c251f}
.schedule-preview .type-5{--schedule-type:var(--schedule-delivery);--schedule-type-text:#fff}
.schedule-preview .type-6{--schedule-type:var(--schedule-custom);--schedule-type-text:#fff}
:root.dark .schedule-preview .type-1,:root.dark .schedule-preview .type-4{--schedule-type-text:#fff}
.schedule-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:12px}
.schedule-kicker{margin:0 0 8px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.schedule-month-name{margin:0;color:var(--text);font-family:"Avenir Next","Century Gothic","Trebuchet MS",sans-serif;font-size:30px;font-weight:700;line-height:1;letter-spacing:.07em;text-transform:uppercase}
.schedule-year{display:block;margin-top:4px;font-size:12px;font-weight:650;letter-spacing:.16em}
.schedule-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.schedule-navigation,.schedule-views{display:inline-flex;overflow:hidden;border:1px solid var(--line);border-radius:9px;background:var(--surface)}
.schedule-navigation button,.schedule-views button{min-width:35px;min-height:35px;padding:0 11px;border:0;border-right:1px solid var(--line);color:var(--text);background:transparent;font-size:12px;font-weight:700}
.schedule-navigation button:last-child,.schedule-views button:last-child{border-right:0}
.schedule-views button.active{color:var(--accent-ink);background:var(--accent)}
.schedule-navigation button:hover:not(.active),.schedule-views button:hover:not(.active){background:var(--panel)}
.schedule-month-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.schedule-month{min-width:660px}.schedule-weekdays,.schedule-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.schedule-weekdays{min-height:36px;align-items:center;color:var(--muted);background:var(--surface);text-align:center;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.schedule-weekdays span:nth-last-child(-n+2){color:color-mix(in srgb,var(--muted) 75%,var(--accent))}
.schedule-grid{grid-template-rows:repeat(var(--schedule-weeks),minmax(105px,1fr));min-height:min(640px,calc(100dvh - 215px));border-top:1px solid var(--line)}
.schedule-day{min-width:0;min-height:105px;padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface)}
.schedule-day:nth-child(7n){border-right:0}.schedule-day:nth-last-child(-n+7){border-bottom:0}
.schedule-day.weekend{background:color-mix(in srgb,var(--panel) 38%,var(--surface))}
.schedule-day.outside{background:color-mix(in srgb,var(--panel) 48%,var(--surface))}
.schedule-day.past{color:color-mix(in srgb,var(--muted) 70%,var(--text))}
.schedule-day.past .schedule-chip{filter:saturate(.65);opacity:.75}
.schedule-day-number{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;font-size:10px;font-weight:750}
.schedule-day.today .schedule-day-number{color:#fff;background:#c84239}
.schedule-day-events{display:grid;align-content:start;gap:4px;margin-top:4px}
.schedule-chip{display:block;min-width:0;width:100%;min-height:23px;padding:3px 6px;overflow:hidden;border:1px solid transparent;border-radius:7px;color:var(--schedule-type-text);background:var(--schedule-type);font-size:10px;font-weight:700;line-height:1.35;text-align:left;text-overflow:ellipsis;white-space:nowrap}
.schedule-chip:focus-visible,.schedule-list-title:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.schedule-legend{display:grid;gap:9px;margin-top:16px;color:var(--muted);font-size:11px}.schedule-legend strong{font-size:10px;letter-spacing:.12em}.schedule-legend>div{display:flex;gap:10px 15px;flex-wrap:wrap}.schedule-legend>div span{display:inline-flex;align-items:center;gap:6px}.schedule-legend p{margin:0}
.schedule-type-dot{display:inline-block;flex:none;width:9px;height:9px;margin-right:5px;border-radius:50%;background:var(--schedule-type);vertical-align:middle}
.schedule-timeline-scroll,.schedule-list-scroll{overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.schedule-timeline{display:grid;grid-template-columns:210px minmax(900px,1fr);min-width:1120px}
.schedule-timeline-heading,.schedule-timeline-heading-days{min-height:44px;border-bottom:1px solid var(--line);background:var(--panel)}
.schedule-timeline-heading{display:flex;align-items:center;padding:0 13px;color:var(--muted);font-size:10px;letter-spacing:.1em;text-transform:uppercase}
.schedule-timeline-heading-days{display:grid;grid-template-columns:repeat(var(--schedule-days),minmax(0,1fr))}
.schedule-timeline-day{display:grid;place-items:center;border-left:1px solid var(--line);color:var(--muted);font-size:9px}.schedule-timeline-day.weekend{background:color-mix(in srgb,var(--accent) 6%,var(--panel))}
.schedule-timeline-label,.schedule-timeline-track{min-height:46px;border-bottom:1px solid var(--line)}
.schedule-timeline-label{display:grid;align-content:center;gap:3px;padding:6px 12px;font-size:11px}.schedule-timeline-label strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-timeline-label span{color:var(--muted);font-size:10px}
.schedule-timeline-track{display:grid;grid-template-columns:repeat(var(--schedule-days),minmax(0,1fr));align-items:center;background-image:linear-gradient(to right,var(--line) 1px,transparent 1px);background-size:calc(100% / var(--schedule-days)) 100%}
.schedule-timeline-bars{min-width:0;padding:0 2px}.schedule-timeline-bars .schedule-chip{min-height:27px}
.schedule-list{width:100%;min-width:690px;border-collapse:collapse;text-align:left;font-size:11px}.schedule-list th{padding:0;border-bottom:1px solid var(--line);background:var(--panel)}.schedule-list th button{width:100%;padding:13px 11px;border:0;color:var(--muted);background:transparent;text-align:left;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.schedule-list td{padding:12px 11px;border-bottom:1px solid var(--line);vertical-align:middle}.schedule-list tr:last-child td{border-bottom:0}.schedule-list tbody tr:hover{background:color-mix(in srgb,var(--accent) 5%,var(--surface))}.schedule-list-title{display:block;padding:0;border:0;color:var(--text);background:transparent;text-align:left;font-size:11px;font-weight:750}.schedule-list-title:hover{text-decoration:underline}.schedule-empty{margin:0;padding:20px;color:var(--muted);font-size:12px}
@media(max-width:800px){.schedule-head{align-items:start;flex-direction:column}.schedule-month-name{font-size:27px}.schedule-toolbar{width:100%;justify-content:space-between}.schedule-grid{min-height:0}.schedule-day{min-height:112px}.schedule-preview .schedule-month{min-width:760px}}
.schedule-chip[draggable="true"]{cursor:grab}.schedule-chip[draggable="true"]:active{cursor:grabbing}.schedule-day.drag-target,.schedule-timeline-track.drag-target{outline:2px solid var(--accent);outline-offset:-3px;background-color:color-mix(in srgb,var(--accent) 9%,var(--surface))}
.schedule-add{min-height:34px;padding:0 11px;border:1px solid var(--accent);border-radius:9px;color:var(--accent-ink);background:var(--accent);font-size:11px;font-weight:700;white-space:nowrap}

.schedule-chip,.schedule-chip span{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.schedule-chip[data-month-move]{touch-action:none;cursor:grab}.schedule-chip[data-month-move]:active{cursor:grabbing}.schedule-chip.is-moving{opacity:.4}.schedule-drag-ghost{position:fixed;z-index:1000;pointer-events:none;margin:0;opacity:.9;box-shadow:var(--shadow);background:var(--accent);color:var(--accent-ink)}

.schedule-more{padding:3px 6px;border:0;border-radius:6px;color:var(--accent);background:transparent;text-align:left;font:inherit;font-size:11px;font-weight:700;cursor:pointer}.schedule-more:hover{background:var(--panel)}
.schedule-day-dialog{width:min(440px,calc(100vw - 28px));max-height:calc(100dvh - 40px);padding:24px;border:1px solid var(--line);border-radius:18px;color:var(--text);background:var(--surface);box-shadow:var(--shadow)}.schedule-day-dialog::backdrop{background:rgba(37,29,23,.38);backdrop-filter:blur(3px)}.schedule-day-dialog header{display:flex;align-items:start;justify-content:space-between;gap:12px}.schedule-day-dialog .eyebrow{color:var(--accent)}.schedule-day-dialog h2{margin:7px 0 18px;font-size:23px}.schedule-day-dialog header button{width:32px;height:32px;border:0;border-radius:50%;color:var(--muted);background:transparent;font-size:23px}.schedule-day-list{display:grid}.schedule-day-list button{padding:13px 0;border:0;border-top:1px solid var(--line);background:transparent;color:var(--text);text-align:left;font:inherit}.schedule-day-list button:hover{background:var(--panel)}.schedule-day-list strong{display:block;font-size:12px}.schedule-day-list small{display:block;margin-top:5px;color:var(--muted);font-size:11px;line-height:1.5}

/* All solid calendar bars and legend dots share the category tokens. */
.schedule-preview{--schedule-prep:var(--category-assets-brief);--schedule-shoot:var(--category-photography);--schedule-production:var(--category-production);--schedule-review:var(--category-artwork-review);--schedule-feedback:var(--category-feedback);--schedule-delivery:var(--category-delivery);--schedule-custom:var(--category-custom)}
:root.dark .schedule-preview{--schedule-prep:var(--category-assets-brief);--schedule-shoot:var(--category-photography);--schedule-production:var(--category-production);--schedule-review:var(--category-artwork-review);--schedule-feedback:var(--category-feedback);--schedule-delivery:var(--category-delivery);--schedule-custom:var(--category-custom)}
.schedule-complete{font-size:.95em;font-weight:800}
