/* Calendar days stay in seven columns, including on phones. */
.calendar-shell{background:#fff;border:1px solid var(--line,#dfe7ef);border-radius:14px;overflow:hidden;box-shadow:0 3px 15px #203b5510}
.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 24px 18px}
.calendar-period{display:flex;gap:16px;align-items:center;min-width:0}.calendar-period h2{font-size:23px;letter-spacing:-.5px;margin:0;line-height:1.3}.calendar-navigation{display:flex;gap:4px;flex-shrink:0}.calendar-navigation button{font-size:27px;line-height:1;padding:0;width:34px;height:34px;min-height:34px;border:1px solid #dce5ee;background:white;color:#36516d;border-radius:8px}.calendar-navigation button:hover{background:#edf4fb}
.calendar-view-picker{display:flex;align-items:center;gap:8px;margin:0!important;flex-shrink:0}.calendar-view-picker>span{font-size:11px;color:var(--muted);margin:0!important}.calendar-view-picker select{min-width:104px;width:auto;margin:0;padding:8px 30px 8px 12px;font-size:12px}
.calendar-filters{display:flex;gap:14px;flex-wrap:wrap;align-items:center;padding:0 24px 18px}.calendar-filters>label{display:flex;gap:8px;align-items:center;margin:0;font-size:12px}.calendar-filters>label>span{margin:0;white-space:nowrap;font-size:11px;color:var(--muted)}.calendar-filters input[type=date]{width:140px;font-size:12px;min-height:35px;padding:7px 9px}.calendar-filters select{font-size:12px;min-height:35px;padding:7px 28px 7px 9px}.calendar-filters .check-label{font-size:11px;gap:6px}.calendar-filters .check-label input{margin:0;flex-shrink:0}.calendar-create{margin-left:auto;display:flex;gap:8px;align-items:center}.calendar-create button,.calendar-create .button{font-size:11px;min-height:35px}
.calendar-add-menu{position:relative}.calendar-add-menu summary{display:flex;gap:8px;align-items:center;cursor:pointer;list-style:none}.calendar-add-menu summary::-webkit-details-marker{display:none}.calendar-add-menu>div{position:absolute;right:0;top:calc(100% + 6px);z-index:10;width:190px;padding:6px;border:1px solid var(--line);border-radius:10px;background:white;box-shadow:0 10px 30px #1f38552b;display:grid;gap:3px}.calendar-add-menu>div button{text-align:left;justify-content:flex-start;border:0;background:white}.calendar-add-menu>div button:hover{background:#f0f5fb}
.calendar-legend{display:flex;flex-wrap:wrap;gap:10px 18px;padding:12px 24px;background:#f9fbfd;border-top:1px solid #edf1f5;border-bottom:1px solid var(--line);font-size:11px;color:#53667b}.calendar-legend>span{display:flex;align-items:center;gap:6px}.calendar-legend i{width:8px;height:8px;border-radius:3px;background:#0d9488}.calendar-legend .inspection{background:#8851d9}.calendar-legend .job_start{background:#3878d2}.calendar-legend .personal{background:#d68c20}.calendar-legend small{margin-left:auto;color:#718094;font-size:10px}
.calendar-grid-wrap{width:100%;min-width:0}.calendar-grid{width:100%;table-layout:fixed;border-collapse:collapse;margin:0}.calendar-grid th{text-align:center;background:white;color:#7a899a;font-size:11px;font-weight:600;letter-spacing:.04em;padding:13px 4px;text-transform:uppercase;border-bottom:1px solid var(--line)}.calendar-grid td.calendar-day{vertical-align:top;border-right:1px solid #e5ebf1;border-bottom:1px solid #e5ebf1;padding:8px 7px 7px;height:118px;max-width:0;background:white}.calendar-grid td:last-child{border-right:0}.calendar-grid td.weekend{background:#fcfdff}.calendar-grid td.outside-month{background:#f8fafc}.calendar-grid td.selected{background:#f0f6ff;box-shadow:inset 0 0 0 2px #a7c9f4}
.calendar-day-number{display:flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:50%;background:transparent;color:#34475d;font-size:12px;font-weight:600;min-height:28px;height:28px;width:28px;padding:0;margin:0 0 5px auto}.calendar-day-number:hover{background:#e0edfb}.outside-month .calendar-day-number{color:#96a3b3}.calendar-day-number.is-today{background:#1d64c1;color:#fff}.calendar-day-number small{font-size:10px;font-weight:400}.calendar-day-number:focus-visible,.calendar-event:focus-visible,.calendar-more:focus-visible{outline:2px solid #1d64c1;outline-offset:2px}
.calendar-day-events{display:grid;gap:4px}.calendar-event{display:flex;align-items:center;gap:5px;min-height:24px;min-width:0;width:100%;border:0;border-left:3px solid #15988b;border-radius:4px;text-align:left;text-decoration:none!important;background:#eaf7f3;color:#15655e;padding:4px 5px;font-size:10px;font-weight:500;line-height:1.4;cursor:pointer}.calendar-event:hover{filter:brightness(.96)}.calendar-event.inspection{background:#f1eafa;border-left-color:#8851d9;color:#6f3da6}.calendar-event.job_start{background:#eaf2ff;border-left-color:#3878d2;color:#285c9c}.calendar-event.personal{background:#fff3db;border-left-color:#d68c20;color:#986419}.calendar-event-time{font-size:9px;white-space:nowrap;flex-shrink:0}.calendar-event-title{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event.cancelled{text-decoration:line-through!important;opacity:.65}.calendar-event-cancelled{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.calendar-more{display:block;border:0;background:transparent;min-height:24px;font-size:10px;padding:5px 3px 0;color:#5c6d82}.calendar-more:hover{color:#185fb8;text-decoration:underline}
.calendar-week .calendar-grid td.calendar-day{height:300px;padding:10px 8px}.calendar-week .calendar-day-number{width:auto;max-width:74px;border-radius:14px;margin:0 auto 14px}.calendar-week .calendar-event{display:block;padding:8px 7px;min-height:56px}.calendar-week .calendar-event-time{display:block;margin-bottom:4px}.calendar-week .calendar-event-title{display:block;white-space:normal;overflow-wrap:anywhere;font-size:11px}.calendar-week .calendar-day-events{gap:8px}
.calendar-day-detail{padding:24px;background:#fbfcfe}.calendar-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.calendar-detail-heading .eyebrow{font-size:9px;letter-spacing:.09em;color:#7b8ca0}.calendar-detail-heading h2{font-size:17px;margin:5px 0 0}.calendar-detail-heading>span{font-size:11px;color:#7b8ca0}.calendar-day-detail .ops-timeline{margin:0;gap:10px}.calendar-day-detail .ops-visit{padding:16px 18px;gap:18px;box-shadow:none}.calendar-view .ops-visit-body h3{font-size:14px;margin:9px 0 4px}.calendar-day-detail .ops-time{min-width:100px}.calendar-day-detail .ops-time strong{font-size:15px}.calendar-empty-day{border:1px dashed #d4dfeb;border-radius:9px;padding:22px;text-align:center;color:#8290a2;font-size:12px}.calendar-agenda-list{padding:20px 24px}.calendar-agenda-list .calendar-day-heading:first-child{margin-top:0}.calendar-status{display:flex;align-items:flex-start;gap:10px;padding:16px 5px;margin-top:4px;color:#738297;font-size:11px}.calendar-status>div{flex:1;min-width:0}.calendar-status strong{color:#4f657c;font-size:11px}.calendar-status p{font-size:11px;margin:4px 0;overflow-wrap:anywhere}.calendar-status-dot{width:7px;height:7px;border-radius:50%;background:#8d9dad;flex-shrink:0;margin-top:5px}.calendar-status-dot.connected{background:#24a376}.calendar-status .notice{padding:9px;margin-top:9px}.calendar-status>.button,.calendar-status>button{font-size:11px;flex-shrink:0}.calendar-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:1050px){.calendar-period h2{font-size:20px}.calendar-create{margin-left:0}.calendar-event{display:block}.calendar-event-time{display:block;font-size:8px}.calendar-event-title{display:block}.calendar-grid td.calendar-day{height:130px}}
@media(max-width:700px){.calendar-toolbar{padding:16px 12px;align-items:flex-start;gap:8px}.calendar-period{gap:8px;flex-wrap:wrap}.calendar-period h2{font-size:17px;order:-1;width:100%;letter-spacing:-.3px}.calendar-navigation button{width:32px;height:32px;min-height:32px}.calendar-period>.small{font-size:11px;padding:7px 10px;min-height:32px}.calendar-view-picker{padding-top:3px}.calendar-view-picker>span{display:none}.calendar-view-picker select{font-size:12px;min-width:88px;padding:8px}.calendar-filters{padding:0 12px 13px;gap:10px 14px}.calendar-filters>label{align-items:flex-start;flex-direction:column;gap:4px;flex:1;min-width:0}.calendar-filters>label>span{font-size:10px}.calendar-filters input[type=date],.calendar-filters select{width:100%;font-size:12px;min-width:0}.calendar-filters>.check-label{flex-direction:row;align-items:center;flex-basis:100%}.calendar-create{width:100%}.calendar-create>button,.calendar-create>details{flex:1}.calendar-add-menu summary{justify-content:center}.calendar-create button,.calendar-create .button{font-size:11px}.calendar-legend{padding:10px 12px;gap:8px 11px;font-size:9px}.calendar-legend small{width:100%;margin:0;font-size:9px}.calendar-grid th{font-size:9px;padding:10px 2px}.calendar-grid td.calendar-day{padding:5px 3px;height:96px}.calendar-day-number{font-size:11px;width:24px;height:24px;min-height:24px;margin:0 auto 4px}.calendar-event{font-size:9px;padding:4px 3px;min-height:21px;border-left-width:2px;line-height:1.35;border-radius:3px}.calendar-month .calendar-event-time{display:none}.calendar-event-title{font-size:9px}.calendar-more{font-size:9px;min-height:23px;padding:4px 1px}.calendar-day-events{gap:3px}.calendar-day-detail{padding:18px 12px}.calendar-detail-heading h2{font-size:15px}.calendar-day-detail .ops-visit{padding:14px;gap:10px}.calendar-empty-day{padding:18px;font-size:11px}.calendar-status{flex-wrap:wrap;padding:14px 4px;gap:8px}.calendar-status>div{flex-basis:85%}.calendar-status>button,.calendar-status>.button{margin-left:15px}.calendar-agenda-list{padding:16px 12px}.calendar-week .calendar-grid td.calendar-day{padding:6px 3px;height:260px}.calendar-week .calendar-event{padding:5px 3px;min-height:52px}.calendar-week .calendar-event-title{font-size:9px}.calendar-week .calendar-event-time{font-size:8px;white-space:normal}.calendar-week .calendar-day-number{flex-direction:column;height:auto;min-height:40px;gap:1px;margin-bottom:8px}.calendar-week .calendar-day-number small{font-size:9px}.calendar-week .calendar-day-events{gap:5px}}
