/* Scoped calendar surfaces preserve all other module and calendar colors. */
.calendar-grid-module{--grid-hour:76px;min-width:0;color:#f4f8ff;background:#000}
.calendar-grid-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px}
.calendar-grid-heading h2{font-size:1.25rem;line-height:1.4;margin:0}
.calendar-grid-heading button,.calendar-grid-toolbar button{padding:6px 10px;min-height:36px;font-size:.85em;line-height:1.2}
.calendar-grid-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.grid-date-nav,.grid-view-toggle{display:flex;gap:4px;align-items:center}
.grid-view-toggle button[aria-pressed=true]{background:#234e85;border-color:#75aff0}
.grid-date-label{font-weight:600;margin:8px 0 4px;font-size:.95em}
.grid-status:empty{display:none}.grid-status{font-size:.85em;color:#ffdc9c;margin:6px 0}
.grid-legend{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:.72em;color:#c5d2e0}
.grid-legend>span:first-child::before,.grid-legend>span:nth-child(2)::before{content:'';display:inline-block;width:8px;height:8px;border-radius:2px;background:#5badeb;margin-right:5px}
.grid-legend>span:nth-child(2)::before{background:#e77979}
.grid-help{font-size:.72em;color:#b1c4dc;margin:6px 0 10px}
.calendar-grid-scroll{overflow:auto;max-height:78vh;border:1px solid #254e7c;border-radius:8px;background:#000;overscroll-behavior:contain}
.calendar-grid-table{display:grid;grid-template-columns:44px repeat(var(--grid-days),minmax(0,1fr));min-width:0;position:relative;align-items:stretch}
.grid-corner,.grid-day-label{position:sticky;top:0;z-index:5;background:#0b1626;border-bottom:1px solid #254e7c;min-height:42px}
.grid-day-label{text-align:center;padding:10px 2px;font-size:.78em;font-weight:600;border-left:1px solid #254e7c;white-space:normal}
.grid-today{color:#9dccff;box-shadow:inset 0 3px #5badeb}
.grid-outside-label{font-size:.6em;color:#adbed1;padding:8px 2px;align-self:stretch;border-bottom:1px solid #254e7c}
.grid-outside{padding:3px 2px;border-left:1px solid #254e7c;border-bottom:1px solid #254e7c;min-width:0;max-height:160px;overflow:auto}
.grid-outside .calendar-grid-job{position:relative;display:block;width:100%;height:auto;min-height:40px;margin:2px 0}
.grid-time-axis,.grid-day-column{height:calc(var(--grid-hour)*10);position:relative;min-width:0}
.grid-time-axis>span{position:absolute;right:4px;transform:translateY(-50%);font-size:.6em;white-space:nowrap;color:#c5d2e0}
.grid-time-axis>span:first-child{transform:none}.grid-time-axis>span:last-child{transform:translateY(-100%)}
.grid-day-column{border-left:1px solid #254e7c;background:repeating-linear-gradient(to bottom,#000 0,#000 calc(var(--grid-hour)/2 - 1px),#152438 calc(var(--grid-hour)/2 - 1px),#152438 calc(var(--grid-hour)/2),#000 calc(var(--grid-hour)/2),#000 calc(var(--grid-hour) - 1px),#254e7c calc(var(--grid-hour) - 1px),#254e7c var(--grid-hour))}
button.calendar-grid-job{position:absolute;z-index:1;display:flex;flex-direction:column;gap:2px;overflow:hidden;min-height:0;padding:4px 5px;margin:0;border:1px solid;border-left-width:3px;border-radius:5px;text-align:left;font:inherit;font-size:.73em;line-height:1.2;color:#f6f8fc;touch-action:pan-y;user-select:none;cursor:pointer;box-sizing:border-box}
button.calendar-grid-job.calendar-plumbing{background:#172d3d;border-color:#5badeb}
button.calendar-grid-job.calendar-water{background:#30252e;border-color:#e77979}
.calendar-grid-job strong,.calendar-grid-job span{display:block;max-width:100%;overflow:hidden;overflow-wrap:normal;word-break:normal}
.calendar-grid-job strong{font-size:1em;font-weight:600}.grid-job-time{font-size:.88em;flex-shrink:0}.grid-job-address{font-size:.9em;color:#d0dae5}
button.calendar-grid-job:focus-visible{outline:3px solid #fff;outline-offset:-3px;z-index:4}
button.calendar-grid-job.grid-completed{opacity:.65}
.grid-empty{display:block;text-align:center;font-size:.72em;color:#7286a0;margin-top:20px}
.grid-dragging{opacity:.35}.grid-drag-ghost{position:fixed;z-index:10001;pointer-events:none;background:#193d66;border:2px solid #95c7ff;border-radius:5px;color:#fff;padding:8px;max-width:190px;font-size:14px}
.grid-is-dragging{user-select:none;cursor:grabbing}.grid-drop-label{position:absolute;left:0;right:0;border-top:3px solid #a3d6ff;background:#133653;color:#fff;pointer-events:none;z-index:4;font-size:13px;line-height:20px;text-align:center}
#calendarGridResult{position:fixed;bottom:15px;left:50%;transform:translateX(-50%);width:max-content;max-width:94vw;display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#102640;border:2px solid #5badeb;border-radius:9px;padding:10px 12px;color:#fff;z-index:10002;box-shadow:0 4px 20px #0009;font-size:15px}
#calendarGridResult button{padding:4px 9px;min-height:32px;font-size:14px}
.grid-reschedule-tools{margin:10px 0}.grid-reschedule-form{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin-top:8px}.grid-reschedule-form label{display:grid;gap:6px}.grid-reschedule-form span{font-size:.8em;color:#b1c4dc}
html[data-display-size=standard] .calendar-grid-module{--grid-hour:90px}
html[data-display-size=large] .calendar-grid-module{--grid-hour:125px}
html[data-display-size=extra-large] .calendar-grid-module{--grid-hour:180px}
html[data-display-size] button.calendar-grid-job{min-height:0;padding:4px 5px}
@media(max-width:650px){.calendar-grid-module{--grid-hour:85px}.grid-job-address{display:none}.calendar-grid-table{grid-template-columns:36px repeat(var(--grid-days),minmax(0,1fr))}button.calendar-grid-job{font-size:.68em;padding:4px 3px}.calendar-grid-module[data-grid-days="1"] .grid-job-address{display:block}.grid-day-label{font-size:.72em}.grid-help{font-size:.7em}}
