.planner-content{padding:20px 29px 28px;max-width:1800px;margin:0 auto}.ts-page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:8px 0 25px}.ts-page-title{display:flex;align-items:center;gap:13px}.ts-page-title h1{font-size:25px;line-height:1.3;font-weight:650;margin:0 0 5px}.ts-page-title p{font-size:11px;color:#8b96a5;margin:0;letter-spacing:.02px}.ts-section-icon{height:43px;width:43px;display:grid;place-items:center;border-radius:11px;background:#edf4ff;border:1px solid #dbe8fb;color:#468cda;box-shadow:0 1px 2px #447ac207}.ts-heading-actions{display:flex;align-items:center;gap:10px}.ts-view-navigation{display:flex;align-items:center;gap:25px;border-bottom:1px solid var(--ts-line);margin-bottom:20px;height:42px}.ts-view-navigation>button{height:42px;display:flex;gap:7px;align-items:center;background:transparent;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:0;color:#8a94a3;font-size:11px;font-weight:520;padding:0 0 11px}.ts-view-navigation>button svg{width:15px;height:15px}.ts-view-navigation>button[aria-pressed=true]{color:#256db5;border-bottom-color:#3883d0;font-weight:610}.ts-tab-count{background:#edf2fa;color:#7392b7;padding:1px 5px;border-radius:4px;font-size:9px;margin-left:1px}.ts-workshop-health{display:flex;align-items:center;gap:6px;font-size:9px;color:#9aa4b1;margin-left:auto;margin-bottom:9px}.ts-calendar-metrics{display:flex;align-items:center;border:1px solid var(--ts-line);border-radius:10px;margin:0 0 23px;background:#fff;box-shadow:0 2px 5px #1b2f4502}.ts-calendar-metrics>div{display:flex;align-items:center;gap:12px;flex:1;min-width:0;margin:16px 0;padding:0 20px;border-right:1px solid #edf0f4}.ts-calendar-metrics>div:nth-child(4){border:0}.ts-metric-icon{height:33px;width:33px;border-radius:9px;display:grid;place-items:center;flex-shrink:0}.ts-metric-icon.blue{background:#edf3ff;color:#6a98d6}.ts-metric-icon.lavender{background:#f0ecfb;color:#9d88ce}.ts-metric-icon.amber{background:#fff3e1;color:#ccaa68}.ts-metric-icon.mint{background:#eaf6ef;color:#79ae91}.ts-calendar-metrics small{display:block;font-size:10px;color:#939dac;margin-bottom:3px;white-space:nowrap}.ts-calendar-metrics strong{display:block;font-size:23px;letter-spacing:-.7px;line-height:1.1;font-weight:610}.ts-calendar-metrics>p{font-size:9px;line-height:1.9;color:#a2acb8;margin:0;padding:0 18px;text-align:right;white-space:nowrap}.ts-calendar-metrics>p span{color:#76869b}.planner-layout{display:block;min-width:0}.planner-calendar,.planner-jobs{min-width:0}.planner-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px}.ts-calendar-navigation{display:flex;align-items:center;gap:15px;min-width:0}.ts-period-title{display:flex;align-items:center;gap:4px;position:relative}.ts-period-title h2{font-size:15px;font-weight:580;letter-spacing:-.4px;margin:0;white-space:nowrap}.ts-period-arrows{display:flex;gap:0}.ts-period-arrows button{width:25px;min-width:25px;height:28px}.ts-period-arrows svg{width:14px;height:14px}.ts-date-picker{position:relative;width:20px;height:25px;cursor:pointer;display:grid;place-items:center;color:#98a6b7}.ts-date-picker input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer;padding:0!important;min-height:0!important}.ts-date-picker input::-webkit-calendar-picker-indicator{cursor:pointer;position:absolute;inset:0;width:100%;height:100%;margin:0}.ts-staff-filter{display:flex;align-items:center;position:relative;gap:6px;height:33px;border:1px solid #dfe5ed;border-radius:7px;padding:0 9px;min-width:138px;background:#fff}.ts-small-avatar{display:inline-grid;place-items:center;border-radius:50%;width:20px;height:20px;background:#e5edf8;color:#6d8db7;font-size:9px;font-weight:600;flex-shrink:0}.ts-staff-filter select{appearance:none;border:0;box-shadow:none;background:none;padding:5px 16px 5px 0;min-height:0;font-size:10px;width:100%;color:#708197;max-width:120px}.ts-staff-filter>span:last-child{position:absolute;right:7px;pointer-events:none;color:#99a5b3}.planner-filters{display:flex;align-items:center;gap:8px;margin:0 0 13px;min-width:0}.planner-search{display:flex;align-items:center;gap:8px;flex:1;min-width:180px;max-width:440px;border:1px solid #e2e7ef;border-radius:7px;background:#fff;padding:0 10px;height:34px;color:#a0adbd}.planner-search>span>svg{width:15px;height:15px}.planner-search input{min-width:0;width:100%;border:0!important;box-shadow:none!important;padding:7px 0!important;font-size:11px;background:transparent;color:#55677d;min-height:0!important}.planner-search input::placeholder{color:#a0adbb;font-size:11px}.planner-search:focus-within{border-color:#8cb7e4;box-shadow:0 0 0 3px #edf5ff}.planner-search kbd{margin-left:auto}.ts-filter-menu>.ts-menu-panel{width:260px}.ts-display-menu>.ts-menu-panel{width:230px}.ts-filter-count{display:inline-grid;place-items:center;min-width:16px;height:16px;font-size:9px;border-radius:4px;background:#e9f1fc;color:#5781b0;padding:0 4px}#jobsCount{margin-left:auto;font-size:10px;color:#98a2af;white-space:nowrap}.ts-status-tabs{display:flex;align-items:center;gap:23px;border-bottom:1px solid var(--ts-line);margin:19px 0 0;padding:0 0 0 1px;overflow-x:auto;scrollbar-width:none}.ts-status-tabs button{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;border:0;border-bottom:2px solid transparent;background:transparent;color:#8b96a7;border-radius:0;font-size:10px;font-weight:520;padding:0 0 12px;min-height:30px}.ts-status-tabs button[aria-pressed=true]{border-bottom-color:#4b8ed7;color:#3474b5;font-weight:610}.ts-status-tabs button span{font-size:9px;background:#f1f4f8;border-radius:4px;padding:0 4px;color:#91a0b3}.ts-status-tabs button[aria-pressed=true] span{background:#e7f0fe;color:#5f8dc0}.ts-empty{padding:35px 20px 46px;text-align:center;border:1px solid #e7edf3;border-top:0;border-radius:0 0 10px 10px}.ts-empty-art svg{width:155px;height:auto}.ts-empty h3{font-size:15px;margin:10px 0 6px;color:#53677f;font-weight:590}.ts-empty p{font-size:11px;color:#96a3b5;margin:0 0 17px}.ts-job-scroll{overflow-x:auto;border:1px solid #e4e9f0;border-top:0;border-radius:0 0 9px 9px}.ts-job-table{border-collapse:collapse;width:100%;font-size:11px;table-layout:auto;min-width:800px;text-align:left}.ts-job-table thead{height:35px;background:#fafbfc;border-bottom:1px solid #e8edf2}.ts-job-table th{font-weight:500;font-size:9px;color:#96a1b1;padding:8px 13px;white-space:nowrap}.ts-job-table th:first-child{padding-left:18px}.ts-job-table .ts-col-name{width:30%;min-width:235px}.ts-job-table .ts-col-reference{width:11%}.ts-job-table .ts-col-stage{width:18%;min-width:155px}.ts-job-table .ts-col-mechanic{width:10%}.ts-job-table .ts-col-appointment{width:18%;min-width:135px}.ts-job-table .ts-col-actions{width:13%;text-align:right;white-space:nowrap}.ts-job-table tbody .ts-job-group th{padding:0;background:#f7f9fc;border-bottom:1px solid #e5eaf1;border-top:1px solid #e5eaf1}.ts-group-toggle{display:flex;align-items:center;gap:9px;min-height:33px;padding:7px 15px;width:100%;border:0;background:transparent;font-size:10px;font-weight:570;text-align:left;color:#78889d}.ts-group-toggle>svg:first-child{width:12px;height:12px;color:#9ca9bb;transition:transform .12s;transform:rotate(0)}.ts-group-toggle[aria-expanded=false]>svg:first-child{transform:rotate(-90deg)}.ts-group-toggle .ts-group-count{font-size:9px;color:#9cabc0;background:#edf1f7;border:1px solid #e4eaf2;border-radius:4px;padding:0 4px;line-height:15px}.ts-stage-dot{display:inline-block;border:1.5px solid currentColor;width:8px;height:8px;border-radius:50%;color:#7aa4df}.ts-stage-dot.lavender{color:#9e8bc4;background:#e1d9f4}.ts-stage-dot.amber{color:#d3ab63;background:#fff2d6}.ts-stage-dot.mint{color:#79ae94;background:#bde1cc}.ts-stage-dot.rose{color:#d0989b;background:#f5dddd}.ts-stage-dot.neutral{color:#9ba9b8;background:#e7ecf3}.ts-job-row{border-bottom:1px solid #edf0f5;background:#fff}.ts-job-row:last-child{border-bottom:0}.ts-job-row:hover{background:#fafcff}.ts-job-row td{padding:14px 13px;vertical-align:middle;position:relative}.ts-job-row td:first-child{padding-left:17px}.planner-job-link{display:flex;gap:11px;align-items:center;min-width:0}.ts-job-avatar{width:31px;height:33px;display:grid;place-items:center;background:#f1f4f8;border:1px solid #e9edf3;border-radius:8px;flex-shrink:0;color:#879cb6}.ts-job-avatar svg{width:17px;height:17px}.ts-job-avatar.internal{background:#f3effb;border-color:#eae1f5;color:#a291bc}.ts-job-copy{display:block;min-width:0}.ts-job-copy strong{font-size:11px;font-weight:570;display:block;color:#3a4b61;line-height:1.6}.ts-job-copy small{display:block;font-size:10px;color:#a0acbc;font-weight:400;margin-top:2px;max-width:290px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ts-row-reference{font-size:9px;color:#a0abbb;font-weight:450;letter-spacing:.1px}.ts-stage-shell{display:inline-flex;align-items:center;position:relative;background:#eef4fd;border:1px solid #e1eafb;border-radius:6px;min-height:26px;max-width:165px;color:#6b94c5}.ts-stage-shell:before{content:'';width:5px;height:5px;position:absolute;left:9px;top:50%;transform:translateY(-50%);border-radius:50%;background:currentColor;pointer-events:none}.ts-stage-shell select{appearance:none;background:transparent;border:0;box-shadow:none!important;font-size:9px;font-weight:500;padding:4px 21px 4px 21px;min-height:25px;max-width:165px;width:100%;color:inherit}.ts-stage-shell>svg{position:absolute;right:6px;width:10px;height:10px;pointer-events:none}.ts-stage-shell.lavender{background:#f1edfa;border-color:#e7e0f6;color:#9b86c2}.ts-stage-shell.amber{background:#fff7e9;border-color:#f6ebd5;color:#bd9a59}.ts-stage-shell.mint{background:#edf8f2;border-color:#dcefe4;color:#72a48a}.ts-stage-shell.rose{background:#fbefef;border-color:#f3dfdf;color:#bd858d}.ts-stage-shell.neutral{background:#f2f5f8;border-color:#e6ebf1;color:#91a0b0}.ts-stage-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;font-size:9px;border-radius:5px;background:#f1f4f8;color:#98a5b7}.ts-stage-pill.mint{background:#edf7f1;color:#73a38a}.ts-mechanic{display:flex;align-items:center;gap:6px;font-size:10px;color:#8b9bb0}.ts-mechanic .ts-small-avatar{width:21px;height:21px;font-size:9px}.ts-appointment{display:flex;gap:7px;align-items:center;color:#9aa8b9}.ts-appointment svg{width:13px;height:13px}.ts-appointment strong{display:block;font-size:10px;color:#7b8ca2;font-weight:450;white-space:nowrap}.ts-appointment small{display:block;font-size:9px;color:#a7b3c2;margin-top:2px}.ts-row-actions{display:flex;justify-content:flex-end;align-items:center;gap:7px}.ts-row-actions .ts-button{min-height:28px;padding:5px 9px;font-size:9px}.ts-row-actions .ts-button svg{width:12px;height:12px}.ts-row-actions .ts-icon-button{width:26px;min-width:26px;height:28px}.ts-row-actions .ts-icon-button svg{width:13px;height:13px}.v19-card-feedback:not(:empty){display:block;position:absolute;right:10px;top:100%;font-size:9px;color:#c18472;background:#fff9f6;border:1px solid #f2d6cb;border-radius:5px;padding:4px 7px;z-index:5}.cal-page[data-row-density=compact] .ts-job-row td{padding-top:8px;padding-bottom:8px}.cal-page[data-hide-reference=true] .ts-col-reference,.cal-page[data-hide-mechanic=true] .ts-col-mechanic,.cal-page[data-hide-appointment=true] .ts-col-appointment{display:none}.cal-page[data-workshop-mode=calendar] .planner-jobs,.cal-page[data-workshop-mode=calendar] .ts-status-tabs,.cal-page[data-workshop-mode=calendar] .ts-display-menu,.cal-page[data-workshop-mode=calendar] #jobsCount{display:none}.cal-page[data-workshop-mode=jobs] :is(.planner-toolbar,#calendarMetrics,#calendarGrid,.ts-calendar-footer,.v17-calendar-help,#otherTimes){display:none!important}.cal-page[data-workshop-mode=jobs] .ts-view-navigation{margin-bottom:19px}.cal-page[data-workshop-mode=jobs] .planner-filters{margin-bottom:0}.cal-page[data-workshop-mode=jobs] .planner-search{max-width:none;flex:1}.cal-page[data-workshop-mode=both] .planner-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,1fr);gap:20px}.cal-page[data-workshop-mode=both] .ts-col-reference,.cal-page[data-workshop-mode=both] .ts-col-mechanic,.cal-page[data-workshop-mode=both] .ts-col-appointment{display:none}.cal-page[data-workshop-mode=both] .ts-job-table{min-width:0}.cal-page[data-workshop-mode=both] .ts-job-table .ts-col-name{min-width:130px}.cal-page[data-workshop-mode=both] .ts-job-table .ts-col-stage{min-width:110px}.cal-page[data-workshop-mode=both] .ts-job-avatar{display:none}.cal-page[data-workshop-mode=both] .ts-job-row td{padding:12px 8px}.cal-page[data-workshop-mode=both] .ts-row-actions .ts-button{font-size:0;width:25px;padding:5px}.cal-page[data-workshop-mode=both] .planner-toolbar{flex-wrap:wrap}.cal-page[data-workshop-mode=both] .ts-calendar-navigation{flex:1 1 100%}.cal-page[data-workshop-mode=both] .ts-status-tabs{display:none}.cal-page[data-workshop-mode=both] .ts-display-menu{display:none}
/* Scheduler: one continuous time canvas, with restrained semantic appointment colour. */
.planner-scroll{overflow:auto;border:1px solid #e3e8ef;border-radius:10px;background:#fff;scrollbar-color:#d4deea transparent;scrollbar-width:thin}.planner-timetable{display:grid;grid-template-columns:53px minmax(0,1fr);grid-template-rows:60px auto auto;min-width:calc(var(--days)*110px + 53px);background:#fff}.p-time-heading{display:flex;align-items:flex-end;justify-content:center;padding:0 0 13px;font-size:8px;letter-spacing:.2px;color:#a9b4c2;border-bottom:1px solid #e6ebf2}.p-day-headings{display:grid;grid-template-columns:repeat(var(--days),minmax(0,1fr));border-bottom:1px solid #e6ebf2}.p-day-headings>button{display:flex;align-items:center;gap:8px;justify-content:center;flex-wrap:wrap;padding:10px 5px;border:0;border-left:1px solid #edf0f5;border-radius:0;background:white;color:#8b99ac}.p-day-headings>button:hover{background:#f6f9fd}.p-day-headings span{font-size:9px;text-transform:uppercase;letter-spacing:.4px}.p-day-headings strong{font-size:18px;font-weight:550;letter-spacing:-.7px;color:#52647b;min-width:27px;height:28px;display:grid;place-items:center;border-radius:7px}.p-day-headings .today{background:#f7faff;color:#4b88c9}.p-day-headings .today strong{background:#3587d5;color:#fff}.p-due-heading{font-size:8px;color:#a3b0c2;display:flex;align-items:center;justify-content:center;line-height:1.5;text-align:center;padding:8px 6px;border-bottom:1px solid #e5ebf2;background:#fdfefe}.p-due-days{display:grid;grid-template-columns:repeat(var(--days),minmax(0,1fr));border-bottom:1px solid #e5ebf2;min-height:35px;background:#fdfefe}.p-due-cell{padding:5px 4px;min-width:0;border-left:1px solid #edf1f6;display:flex;flex-direction:column;gap:4px}.p-due-empty{color:#d2dce8;font-size:10px;text-align:center}.p-time-axis{position:relative;background:#fff}.p-time-axis>span{position:absolute;left:0;right:0;font-size:9px;color:#a7b2c1;text-align:center;transform:translateY(-4px);line-height:1;padding-right:3px}.p-time-days{display:grid;grid-template-columns:repeat(var(--days),minmax(0,1fr));background:white}.p-time-day{position:relative;border-left:1px solid #e9edf3;min-width:0;background-image:linear-gradient(to bottom,#e9eef5 1px,transparent 1px);background-size:100% var(--calendar-hour)}.p-time-day.is-today{background-color:#fcfdff}.p-time-day:before{content:'';position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(to bottom,#f4f6f9 1px,transparent 1px);background-size:100% var(--calendar-hour);background-position:0 calc(var(--calendar-hour)/2)}.p-time-slot{position:absolute;left:0;right:0;display:block;z-index:0}.p-time-slot:hover{background:#eef5fd99}.p-time-slot:hover:before{content:'+';position:absolute;right:8px;top:3px;color:#97b7dd;font-size:16px}.p-event-wrap{position:absolute;border:1px solid #d2dff2;border-left:3px solid #7fa7df;border-radius:5px;background:#edf3ff;overflow:hidden;z-index:2;min-width:0;transition:box-shadow .15s,border-color .15s}.p-event-wrap:hover{box-shadow:0 3px 12px #284c7912;border-color:#7c9fc7;z-index:5}.p-event{display:block;padding:7px 7px;color:#5c7fae;min-width:0;height:100%;text-decoration:none;overflow:hidden}.p-event-time{font-size:8px;font-weight:550;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.05px;opacity:.9}.p-event-name{display:block;font-size:10px;font-weight:620;line-height:1.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px;letter-spacing:-.05px}.p-event-bike{display:block;font-size:9px;line-height:1.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.85;margin-top:1px}.p-event-status{display:block;font-size:8px;margin-top:8px;opacity:.7;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-event-wrap[data-event-kind=workshop]{background:#f0edfc;border-color:#e0d8f3;border-left-color:#b298dd}.p-event-wrap[data-event-kind=workshop] .p-event{color:#8a76ad}.p-event-wrap[data-event-kind=collection]{background:#eaf6ef;border-color:#d4ebdd;border-left-color:#87b89f}.p-event-wrap[data-event-kind=collection] .p-event{color:#63907b}.p-event-wrap[data-internal=true]{background:#fff5e4;border-color:#f1e3ca;border-left-color:#d9b372}.p-event-wrap[data-internal=true] .p-event{color:#a4895e}.p-event-wrap.cancelled,.p-event-wrap.collected{background:#f1f4f8;border-color:#e2e8ef;border-left-color:#b5c1d0}.p-event-wrap.cancelled .p-event,.p-event-wrap.collected .p-event{color:#8d9aaa}.p-event-wrap.all-day,.p-event-wrap.month-event,.p-event-wrap.other{position:relative;min-height:25px}.p-event-wrap.all-day .p-event{padding:5px 6px}.p-event-wrap.all-day .p-event-time,.p-event-wrap.all-day .p-event-bike,.p-event-wrap.all-day .p-event-status{display:none}.p-event-wrap.all-day .p-event-name{font-size:9px;line-height:1.5;margin:0}.p-event-wrap.compact .p-event{padding:4px 6px}.p-event-wrap.compact .p-event-time{font-size:7.5px}.p-event-wrap.compact .p-event-name{margin-top:0;font-size:9px;line-height:1.5}.p-event-wrap.compact .p-event-bike,.p-event-wrap.compact .p-event-status{display:none}.p-event-wrap.tiny .p-event{padding:2px 4px}.p-event-wrap.tiny .p-event-time{display:none}.p-event-wrap.tiny .p-event-name{font-size:8px}.p-quick-status{position:absolute;right:4px;bottom:4px;width:20px;height:19px;padding:0;border:1px solid #ffffffa3;border-radius:4px;background:#ffffff85;color:#738bad;display:grid;place-items:center;z-index:7;opacity:0}.p-quick-status svg{width:11px;height:11px}.p-event-wrap:hover .p-quick-status,.p-event-wrap:focus-within .p-quick-status{opacity:1}.v17-drag-handle{position:absolute;top:2px;right:2px;z-index:8;width:17px;height:17px;padding:0;background:transparent;border:0;color:#8fa4bc;cursor:grab;opacity:0;display:grid;place-items:center;touch-action:none}.v17-drag-handle svg{width:11px;height:11px}.p-event-wrap:hover .v17-drag-handle,.v17-drag-handle:focus-visible{opacity:1}.v23-resize-handle{position:absolute;left:22%;right:22%;height:6px;z-index:9;border:0;padding:0;background:transparent;color:#93a8c1;display:grid;place-items:center;cursor:ns-resize;opacity:0;touch-action:none}.v23-resize-handle:after{content:'';display:block;width:18px;border-top:2px solid currentColor;border-radius:3px}.v23-resize-handle.top{top:0}.v23-resize-handle.bottom{bottom:0}.v23-resize-handle svg{display:none}.p-event-wrap:hover .v23-resize-handle,.v23-resize-handle:focus-visible{opacity:.8}.v17-is-dragging,.v23-resize-active{user-select:none}.v17-dragging{opacity:.45}.v17-drop-hover{background:#e3efff!important;box-shadow:inset 0 0 0 2px #80b1e8}.v23-resizing{opacity:.8;box-shadow:0 0 0 2px #78a7da;overflow:visible}.v23-resize-preview{position:absolute;top:-28px;left:0;white-space:nowrap;border-radius:5px;background:#3a5a7d;color:#fff;font-size:9px;padding:4px 7px;box-shadow:var(--ts-shadow)}.ts-calendar-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:13px}.ts-legend{display:flex;align-items:center;gap:6px;font-size:8px;color:#9aa9bb}.ts-legend i{width:6px;height:6px;border-radius:2px;display:inline-block;margin-left:8px}.ts-legend i:first-child{margin-left:0}.ts-legend .blue{background:#94b3e5}.ts-legend .lavender{background:#b39ed7}.ts-legend .mint{background:#9bc7af}.ts-legend .amber{background:#dfc08e}#calendarSummary{font-size:9px;color:#9eacbd;margin:0}.v17-calendar-help{font-size:9px;color:#aab5c3;margin:9px 0 0}.planner-other{margin-top:17px;border:1px solid #e5ebf3;border-radius:9px;padding:14px}.planner-other h3{font-size:11px;color:#899bb1;margin:0 0 12px}.other-row{display:flex;align-items:center;gap:12px;margin-top:5px}.other-row>small{font-size:10px;color:#8196af;min-width:80px}.other-row .p-event-wrap{flex:1}.other-row .p-event-status,.other-row .p-event-bike{display:none}.other-row .p-event{display:flex;gap:10px;align-items:center;padding:7px}.planner-month{border:1px solid #e3e9f1;border-radius:9px;overflow:hidden}.month-headings{display:grid;grid-template-columns:repeat(7,1fr);background:#fafbfd;border-bottom:1px solid #e7edf4}.month-headings span{text-align:center;font-size:10px;padding:10px 0;color:#8596aa}.month-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.month-day{min-height:120px;padding:8px 6px;border-right:1px solid #e8edf4;border-bottom:1px solid #e8edf4;min-width:0;display:flex;flex-direction:column;gap:4px}.month-day:nth-child(7n){border-right:0}.month-day.outside{background:#fafbfd;opacity:.45}.month-day.today{background:#fafcff}.month-date{border:0;background:none;display:flex;justify-content:space-between;align-items:center;padding:1px 3px 5px;color:#8b9cb0}.month-date strong{font-size:11px;font-weight:520;display:grid;place-items:center;width:22px;height:22px;border-radius:6px}.month-day.today .month-date strong{background:#2d85d7;color:#fff}.month-date small{font-size:8px;color:#a3afbe}.month-event .p-event{padding:4px}.month-event .p-event-time{font-size:7px}.month-event .p-event-name{font-size:8px;line-height:1.5;margin:0}.month-event .p-event-bike,.month-event .p-event-status{display:none}.month-event .p-quick-status,.month-event .v17-drag-handle{display:none}
/* Appointment details remain the existing working editor, presented as a deliberate side sheet. */
dialog.v17-edit-dialog{position:fixed;inset:0 0 0 auto;margin:0;width:440px;height:100dvh;max-height:100dvh;max-width:100%;border:0;border-left:1px solid #e1e7ef;border-radius:0;padding:0;overflow-y:auto;box-shadow:-14px 0 60px #1c3a501c;background:#fff}.v17-edit-dialog::backdrop{background:#23364b1a;backdrop-filter:none}.v17-edit-dialog #quickEditForm{padding:0 24px 20px}.v17-edit-dialog .v23-dialog-eyebrow{margin:0 -24px;padding:15px 24px 0;background:#f5f9ff;color:#729ac5;font-size:9px}.v23-dialog-title{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:11px 24px 20px;margin:0 -24px 15px;background:#f5f9ff;border-bottom:1px solid #e4ecf6;position:relative}.v23-dialog-title h2{font-size:20px;margin:0 0 5px;letter-spacing:-.5px}.v23-dialog-title p{font-size:10px;line-height:1.6;color:#86a0bd;margin:0}.v23-dialog-title button{border:1px solid #dde7f3;border-radius:6px;background:#ffffffc4;width:29px;height:29px;color:#8ca1ba;padding:0;display:grid;place-items:center}.v23-dialog-title button svg{width:15px}.v23-edit-section{border:0;padding:0;margin:0 0 25px;min-width:0}.v23-edit-section legend{font-size:11px;font-weight:620;color:#60758e;letter-spacing:-.1px;width:100%;padding:7px 0 7px;display:flex;align-items:center;gap:8px}.v23-edit-section legend svg{color:#839fbe;width:14px;height:14px}.v23-edit-section label{font-size:10px;color:#8a9cb1;font-weight:470;margin:8px 0 0}.v23-edit-section :is(input:not([type=checkbox]),textarea,select){font-size:11px;border-color:#e1e8f0;min-height:33px;padding:7px 10px;border-radius:6px;color:#657c96;box-shadow:0 1px 1px #243e5702}.v23-edit-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.v23-edit-section .v23-check-row{display:flex;align-items:center;gap:8px;margin-top:13px;font-size:10px}.v23-check-row input{display:inline-grid!important;width:14px!important;margin:0!important}.v23-inline-help{font-size:9px!important;color:#a4b0c0!important;margin:9px 0 0}.v23-edit-links{border-top:1px solid #e7edf4;padding-top:15px;display:flex;gap:7px;flex-wrap:wrap}.v23-edit-links a,.v23-edit-links button{display:inline-flex;gap:6px;align-items:center;font-size:9px;border:1px solid #e0e8f1;background:#fff;padding:6px 9px;border-radius:6px;color:#7b92aa;min-height:30px}.v23-edit-links a:hover,.v23-edit-links button:hover{background:#f2f7fd;color:#4a7eb3}.v23-edit-links svg{width:12px;height:12px}.v23-edit-links #editOpenJob{background:#eef5fe;color:#5988bc;border-color:#dce9fa}.v17-edit-dialog .v17-dialog-actions{position:sticky;bottom:-20px;margin:20px -24px -20px;padding:15px 24px 16px;border-top:1px solid #e4eaf2;background:#ffffffef;backdrop-filter:blur(6px);z-index:4}.v17-edit-dialog .v17-dialog-actions button{font-size:11px;min-height:35px}.v17-move-dialog{width:410px}.v17-move-dialog p{font-size:12px}.v23-safe-message{padding:9px 11px;background:#f6f9fd;border-radius:7px;font-size:10px!important;color:#8da0b8!important}.ts-feedback:not(:empty){position:fixed;right:25px;bottom:23px;z-index:100;max-width:450px;padding:13px 13px 13px 16px;background:#fff;border:1px solid #d9e9df;box-shadow:var(--ts-shadow);border-radius:10px;display:flex;align-items:center;gap:11px;color:#5a8d72;font-size:11px}.ts-feedback>span{flex:1;line-height:1.6;color:#607a6e}.ts-feedback .ts-icon-button{height:25px;width:25px;min-width:25px}.ts-feedback.is-error{border-color:#f0d3ce;color:#bf786b}.ts-feedback.is-error>span{color:#a66f65}.is-loading>svg{animation:ts-spin 1s linear infinite}@keyframes ts-spin{to{transform:rotate(360deg)}}.v35-deleted-panel{padding:10px;font-size:11px;border-top:1px solid #e7edf4}.v35-deleted-panel>summary{font-weight:550;color:#8595a9;cursor:pointer}.v35-deleted-panel p{font-size:10px;color:#9aa8ba;margin:10px 0 0}.job-tag:empty,.cal-toast:empty{display:none}
@media(max-width:1100px){.planner-content{padding:18px 23px 25px}.ts-calendar-metrics>div{padding:0 15px;gap:10px}.ts-calendar-metrics>p{display:none}.ts-job-table{min-width:750px}.ts-job-table .ts-col-name{min-width:210px}.ts-status-tabs{gap:18px}.ts-calendar-navigation{gap:10px}.planner-toolbar{gap:9px}.ts-period-title h2{font-size:13px}.ts-staff-filter{min-width:125px}.planner-view button{padding:5px 9px}.ts-period-arrows{gap:0}.ts-calendar-footer{flex-wrap:wrap}}
@media(max-width:900px){.ts-job-table{min-width:0}.ts-col-reference,.ts-col-mechanic{display:none}.ts-job-table .ts-col-name{width:37%;min-width:160px}.ts-job-table .ts-col-stage{min-width:130px}.ts-job-table .ts-col-actions{min-width:90px}.ts-job-row td{padding:12px 10px}.ts-job-avatar{width:25px;height:29px}.ts-job-copy small{max-width:190px}.planner-toolbar{flex-wrap:wrap}.ts-calendar-navigation{flex:1}.ts-staff-filter{min-width:125px}.ts-calendar-metrics strong{font-size:20px}.ts-metric-icon{height:28px;width:28px}.ts-calendar-metrics>div{padding:0 12px;gap:8px}.ts-calendar-metrics small{font-size:9px}.ts-status-tabs{gap:19px}.ts-page-title h1{font-size:23px}.ts-page-title p{font-size:10px}.ts-view-navigation{gap:23px}.cal-page[data-workshop-mode=both] .planner-layout{display:block}.cal-page[data-workshop-mode=both] .planner-jobs{margin-top:25px}.planner-filters .ts-button{padding:7px 10px}.ts-calendar-navigation{gap:9px}}
@media(max-width:700px){.planner-content{padding:15px 16px 24px}.ts-page-heading{margin:6px 0 21px;align-items:flex-start;gap:12px}.ts-page-title{gap:10px}.ts-section-icon{width:35px;height:37px;border-radius:9px}.ts-section-icon svg{width:20px}.ts-page-title h1{font-size:21px;margin-bottom:4px}.ts-page-title p{font-size:10px;max-width:210px}.ts-heading-actions{gap:5px}.ts-heading-actions>#refreshPlanner{display:none}.ts-heading-actions .planner-tools{display:none}.ts-split-button>.primary{font-size:11px;padding:7px 10px;min-height:35px}.ts-new-menu>summary{height:35px;width:24px}.ts-view-navigation{gap:22px;height:39px;margin-bottom:17px}.ts-view-navigation>button{height:39px;padding-bottom:10px;font-size:11px}.ts-workshop-health{display:none}.ts-calendar-metrics{border-radius:8px;margin-bottom:18px}.ts-calendar-metrics>div{display:block;padding:0 11px;margin:13px 0}.ts-metric-icon{display:none}.ts-calendar-metrics small{font-size:8px;margin-bottom:5px}.ts-calendar-metrics strong{font-size:21px}.planner-toolbar{gap:12px;margin-bottom:13px}.ts-calendar-navigation{flex:1 1 100%;gap:9px}.ts-calendar-navigation #todayBtn{min-height:31px;padding:5px 9px;font-size:10px}.ts-period-title h2{font-size:13px}.ts-period-arrows{margin-left:auto}.ts-period-arrows .ts-icon-button{min-height:30px}.planner-view{margin-right:auto}.planner-view button{min-height:29px;font-size:11px}.ts-staff-filter{height:35px}.ts-staff-filter select{font-size:11px!important}.planner-filters{flex-wrap:wrap;gap:7px;margin-bottom:12px}.planner-search{flex:1 1 100%;max-width:none;height:38px}.planner-search input{font-size:12px!important}.planner-search input::placeholder{font-size:11px}.planner-filters .ts-button{min-height:33px;font-size:10px;padding:6px 9px}.planner-filters .ts-icon-button{min-height:33px}#jobsCount{font-size:9px}.ts-status-tabs{margin-top:17px;gap:20px}.ts-job-table thead{display:none}.ts-job-table,.ts-job-table tbody{display:block;width:100%}.ts-job-group{display:block;width:100%}.ts-job-group>th{display:block!important;width:100%}.ts-job-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:12px 0}.ts-job-row td{display:block;padding:0 12px!important}.ts-job-row td.ts-col-name{width:auto;min-width:0;grid-column:1;grid-row:1}.ts-job-row td.ts-col-stage{min-width:0;grid-column:2;grid-row:1;max-width:143px}.ts-job-row td.ts-col-appointment{grid-column:1;grid-row:2;margin-top:11px;padding-left:47px!important}.ts-job-row td.ts-col-actions{grid-column:2;grid-row:2;margin-top:10px;min-width:0}.ts-job-row td.ts-col-reference,.ts-job-row td.ts-col-mechanic{display:none}.ts-job-copy strong{font-size:11px}.ts-job-copy small{font-size:9px;max-width:170px}.ts-job-avatar{width:24px;height:29px}.planner-job-link{gap:10px}.ts-stage-shell select{font-size:9px!important;max-width:138px;min-height:26px}.ts-stage-shell{max-width:138px}.ts-appointment>svg{display:none}.ts-appointment strong{font-size:9px}.ts-appointment small{font-size:8px}.ts-row-actions .ts-button{min-height:27px;font-size:9px}.ts-row-actions .ts-icon-button{min-height:27px}.ts-job-scroll{overflow:hidden}.ts-group-toggle{font-size:10px;min-height:34px;padding-left:11px}.ts-job-row[hidden]{display:none!important}.ts-calendar-footer{gap:9px}.ts-legend{font-size:8px}.planner-timetable{min-width:calc(var(--days)*130px + 43px);grid-template-columns:43px minmax(0,1fr)}.planner-timetable.single-day{min-width:0}.p-day-headings strong{font-size:19px}.p-day-headings span{font-size:10px}.p-event-name{font-size:12px}.p-event-time{font-size:10px}.p-event-bike{font-size:11px}.p-event-status{font-size:9px}.p-event-wrap.compact .p-event-name{font-size:11px}.p-event-wrap.compact .p-event-time{font-size:9px}.p-quick-status{opacity:1;width:23px;height:23px}.v17-calendar-help{font-size:9px;line-height:1.7}.month-day{padding:5px 3px;min-height:95px}.month-date small{display:none}.month-event .p-event-name{font-size:7px}.month-event .p-event-time{display:none}.month-headings span{font-size:8px}.month-event .p-event{padding:3px 2px}.month-date strong{font-size:10px}dialog.v17-edit-dialog{width:100%;max-width:100%;height:100dvh}.v17-edit-dialog #quickEditForm{padding-left:20px;padding-right:20px}.v23-dialog-title{margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px}.v17-edit-dialog .v23-dialog-eyebrow{margin-left:-20px;margin-right:-20px;padding-left:20px}.v23-edit-section :is(input:not([type=checkbox]),textarea,select){font-size:16px;min-height:40px}.v23-edit-section label{font-size:11px}.v23-edit-section legend{font-size:12px}.v17-edit-dialog .v17-dialog-actions{margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px}.v17-edit-dialog .v17-dialog-actions button{min-height:40px}.ts-feedback:not(:empty){left:12px;right:12px;bottom:13px;max-width:none}}
/* Content remains readable at real working density, rather than thumbnail scale. */
.ts-job-copy strong{font-size:12px;color:#2e4058}.ts-job-copy small{font-size:11px}.ts-stage-shell select{font-size:10px}.ts-group-toggle{font-size:11px}.ts-row-reference{font-size:10px}.ts-job-table th{font-size:10px}.ts-appointment strong{font-size:11px}.ts-appointment small{font-size:10px}.ts-row-actions .ts-button{font-size:10px}.ts-mechanic{font-size:11px}.ts-status-tabs button{font-size:11px}.ts-job-copy small,.ts-row-reference,.ts-appointment strong,.ts-mechanic,.ts-group-toggle,.ts-job-table th{color:#68788f}.ts-appointment small{color:#7e8da3}
.ts-page-title p,.ts-view-navigation>button,.ts-workshop-health,.ts-calendar-metrics small,.ts-calendar-metrics>p,.ts-calendar-metrics>p span,.ts-status-tabs button,#jobsCount,.planner-search,.planner-search input::placeholder,.ts-staff-filter select,.ts-appointment small,.ts-legend,#calendarSummary,.v17-calendar-help,.ts-period-title h2,.p-time-heading,.p-time-axis>span,.p-due-heading,.month-date,.month-headings span{color:#5f7088}.ts-page-title p{font-size:12px}.ts-button,.planner-search input,.planner-filters .ts-button{font-size:12px}.ts-view-navigation>button,.ts-status-tabs button{font-size:12px}.ts-job-copy strong{font-size:13px;color:#22344d}.ts-job-copy small,.ts-row-reference,.ts-job-table th,.ts-group-toggle,.ts-mechanic,.ts-appointment strong{color:#5d6f88}.ts-job-copy small{font-size:11px}.ts-stage-shell{color:#315e96}.ts-stage-shell select{font-size:11px}.ts-stage-shell.lavender{color:#69508e}.ts-stage-shell.amber{color:#805f26}.ts-stage-shell.mint{color:#316d50}.ts-stage-shell.rose{color:#974f5c}.ts-stage-shell.neutral{color:#5e6d80}.ts-stage-pill{color:#5e6d80}.ts-stage-pill.mint{color:#316d50}.ts-status-tabs button span{color:#63758d}.ts-status-tabs button[aria-pressed=true]{color:#2366b0}.ts-status-tabs button[aria-pressed=true] span{color:#346ca8}.ts-tab-count,.ts-nav-count{color:#356ba6}.ts-group-toggle .ts-group-count{color:#5e7088}.ts-empty p{color:#63758d}.p-event{color:#315d91}.p-event-wrap[data-event-kind=workshop] .p-event{color:#624981}.p-event-wrap[data-event-kind=collection] .p-event{color:#31674c}.p-event-wrap[data-internal=true] .p-event{color:#7c5d28}.p-event-name{font-size:11px}.p-event-time{font-size:9px;opacity:1}.p-event-bike{font-size:10px;opacity:1}.p-event-status{font-size:9px;opacity:1}.p-event-wrap.compact .p-event-name{font-size:10px}.p-event-wrap.compact .p-event-time{font-size:8px}.p-day-headings span{color:#61748e}.p-day-headings .today span{color:#3a6a9e}.v23-dialog-title p,.v23-edit-section label,.v23-edit-section :is(input:not([type=checkbox]),textarea,select),.v23-edit-links a,.v23-edit-links button{color:#5b7089}.v23-dialog-title #editVehicle{font-size:12px;color:#526f8b;margin:5px 0}.v23-dialog-title #editRef{color:#647a95;font-size:10px}.v23-edit-section label{font-size:11px}.v23-edit-section :is(input:not([type=checkbox]),textarea,select){font-size:12px}.v23-edit-section legend{font-size:12px;color:#465e7b}.v23-inline-help{color:#64758d!important;font-size:10px!important}.v23-edit-links a,.v23-edit-links button{font-size:10px}.v23-safe-message{color:#5d738e!important}.ts-stage-shell select:focus-visible{outline:3px solid #72b6ff;outline-offset:2px}.ts-period-title h2{color:#273e59}
@media(max-width:700px){.ts-page-title p{font-size:10px}.ts-job-copy strong{font-size:12px}.ts-stage-shell select{font-size:10px!important}.ts-status-tabs button{font-size:11px}.v23-edit-section :is(input:not([type=checkbox]),textarea,select){font-size:16px}.p-event-name{font-size:12px}.p-event-time{font-size:10px}.p-event-wrap.compact .p-event-name{font-size:11px}.p-event-wrap.compact .p-event-time{font-size:9px}}

/* Keep contextual tooltips within the table viewport. */
.ts-row-actions [data-tooltip]:is(:hover,:focus-visible)::after{left:auto;right:0;top:auto;bottom:calc(100% + 7px);transform:none}

/* Stable table tracks keep long bike names and references in their own columns. */
.ts-job-table{table-layout:fixed}.ts-job-table .ts-col-name{width:27%}.ts-job-table .ts-col-reference{width:12%}.ts-job-table .ts-col-mechanic{width:9%}.ts-job-table .ts-col-actions{width:16%}.ts-row-reference{white-space:nowrap}.ts-job-copy{flex:1;overflow:hidden}.ts-job-copy :is(strong,small){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
@media(min-width:701px) and (max-width:900px){.ts-job-table .ts-col-name{width:35%}.ts-job-table .ts-col-stage{width:24%}.ts-job-table .ts-col-appointment{width:23%}.ts-job-table .ts-col-actions{width:18%;padding-left:6px;padding-right:6px}.ts-row-actions{gap:4px}.ts-row-actions .ts-button{padding-left:5px;padding-right:5px}}

@media(max-width:700px){.ts-job-row td{width:auto!important}.ts-job-row td.ts-col-stage{max-width:138px}.ts-stage-shell select{min-width:118px;min-height:34px;font-size:11px!important}.ts-row-actions .ts-button,.ts-row-actions .ts-icon-button{min-height:34px}.ts-job-row td.ts-col-appointment{padding-left:47px!important}.ts-appointment{gap:0}.ts-appointment small{white-space:nowrap}.ts-row-actions{gap:3px}.ts-job-copy strong{font-size:12px}.ts-job-copy small{font-size:10px}}

#plannerInitialSkeleton{border-radius:8px;overflow:hidden;margin-top:18px}.cal-page[data-workshop-mode=calendar] #plannerInitialSkeleton .ts-skeleton-list,.cal-page[data-workshop-mode=jobs] #plannerInitialSkeleton .ts-skeleton-calendar{display:none}

.ts-internal-preview{width:520px}.ts-internal-preview-heading{display:flex;align-items:center;justify-content:space-between}.ts-internal-preview-heading button{border:0;background:#f5f8fc;border-radius:6px;padding:6px}.ts-internal-preview-heading svg{width:17px;height:17px}.ts-internal-preview h3{font-size:13px;margin-top:24px}
.ts-internal-preview .ts-preview-check{display:flex;align-items:center;gap:9px;line-height:1.6}.ts-internal-preview .ts-preview-check svg{flex:none}
