/* One module, with the existing host palette shared by the calendar and capture. */
:is(.mc-planning-overview,.mc-attendance-capture){--mc-plan-accent:#103751;--mc-plan-accent-text:#fff;--mc-plan-surface:#fff;--mc-plan-control:#f4f8fb;--mc-plan-muted:#edf3f8;--mc-plan-text:#19364c;--mc-plan-subtext:#455d70;--mc-plan-border:#738b9e;--mc-plan-focus:#194c72;--mc-plan-error:#9b1c2d;--mc-plan-error-bg:#fff0f1;--mc-plan-shadow:none;color-scheme:light}
.mc-planning-overview{box-sizing:border-box;width:100%;min-width:0;color:var(--mc-plan-text);font:inherit;line-height:1.5;container-type:inline-size;padding:8px 0 20px}
.mc-planning-theme-appstead{--mc-plan-accent:#103751;--mc-plan-accent-text:#fff;--mc-plan-focus:#8b672a}
.mc-planning-theme-teamo{--mc-plan-accent:var(--tm-brand,#ff8a65);--mc-plan-accent-text:#27150d;--mc-plan-surface:var(--tm-surface,#101010);--mc-plan-control:var(--tm-control,#202020);--mc-plan-muted:var(--tm-raised,#171717);--mc-plan-text:var(--tm-text,#f8f8f8);--mc-plan-subtext:#c7c7c7;--mc-plan-border:#737373;--mc-plan-focus:var(--tm-brand,#ff8a65);--mc-plan-error:#ffb5b5;--mc-plan-error-bg:#341b1c;color-scheme:dark}
.mc-planning-theme-plandero{--mc-plan-accent:var(--pld-blue,#126fae);--mc-plan-accent-text:#fff;--mc-plan-surface:var(--pld-surface,#fff);--mc-plan-text:var(--pld-navy,#142f48);--mc-plan-subtext:var(--pld-muted,#53677a);--mc-plan-focus:var(--pld-blue,#126fae)}
.mc-planning-overview *{box-sizing:border-box}
.mc-planning-overview button,.mc-planning-overview summary{font:inherit;touch-action:manipulation}
.mc-planning-overview button{cursor:pointer;color:inherit}
.mc-planning-overview button:focus-visible,.mc-planning-overview summary:focus-visible{outline:3px solid var(--mc-plan-focus);outline-offset:3px}
.mc-planning-month-header{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:10px;align-items:center;margin:0 0 16px}
.mc-planning-button{border:1px solid var(--mc-plan-border);border-radius:13px;background:var(--mc-plan-surface);min-height:44px;padding:8px 12px;line-height:1.25;white-space:normal}
.mc-planning-month-header>.mc-planning-button{font-size:1.7em;padding:2px}
.mc-planning-month-label{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;text-align:center;line-height:1.3;font-size:1.15em;min-width:0;overflow-wrap:anywhere}
.mc-planning-month-label>.mc-submission-light{position:static!important;transform:none!important;margin:0!important;flex:none}
.mc-planning-grid{display:grid;grid-template-columns:repeat(7,minmax(max(44px,2.75em),1fr));gap:5px;align-items:stretch;width:100%;min-width:0;overflow-x:auto;overscroll-behavior-inline:contain;touch-action:pan-x pan-y pinch-zoom;scrollbar-width:thin}
.mc-planning-weekday{padding:5px 0 9px;text-align:center;font-size:.85em;font-weight:700;min-width:0}
.mc-planning-day{display:flex;flex-direction:column;align-items:stretch;min-width:0;min-height:98px;padding:6px 4px;border:1px solid var(--mc-plan-border);border-radius:13px;background:var(--mc-plan-surface);text-align:start;gap:5px;box-shadow:var(--mc-plan-shadow);isolation:isolate}
.mc-planning-day-top{display:flex;align-items:center;justify-content:space-between;gap:2px;min-width:0;min-height:23px}
.mc-planning-day-top>b{font-size:1em;line-height:1.2}
.mc-planning-day-marker{display:flex;align-items:center;justify-content:flex-end;min-width:0;max-width:50%;position:relative}
.mc-planning-day-marker:empty{display:none}
.mc-planning-day-marker>*{position:static!important;transform:none!important;margin:0!important;max-width:100%}
.mc-planning-day.is-today{border-color:var(--mc-plan-accent);box-shadow:inset 0 0 0 1px var(--mc-plan-accent)}
.mc-planning-day.is-selected{background:var(--mc-plan-accent);color:var(--mc-plan-accent-text);border-color:var(--mc-plan-accent);box-shadow:0 0 0 2px var(--mc-plan-surface),0 0 0 4px var(--mc-plan-accent)}
.mc-planning-day-times{display:flex;flex-direction:column;align-items:stretch;gap:4px;min-width:0;margin-top:auto}
.mc-planning-time{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:3px;border:1px solid transparent;border-radius:5px;font-size:clamp(11px,2.6cqi,14px);font-weight:750;line-height:1.25;min-width:0;white-space:nowrap;letter-spacing:-.015em;font-variant-numeric:tabular-nums}
.mc-planning-time>span{display:block;min-width:0}
.mc-planning-more{font-size:.75em;text-align:end;line-height:1.3;min-width:0}
.mc-planning-planned{color:#334155;background:#f1f5f9;border-color:#cbd5e1}
.mc-planning-due{color:#854d0e;background:#fffbeb;border-color:#fcd34d}
.mc-planning-running{color:#166534;background:#f0fdf4;border-color:#86efac}
.mc-planning-done{color:#166534;background:#f0fdf4;border-color:#86efac}
.mc-planning-submitted{color:#1d4ed8;background:#eff6ff;border-color:#93c5fd}
.mc-planning-review{color:#854d0e;background:#fffbeb;border-color:#fcd34d}
.mc-planning-history{color:#334155;background:#f1f5f9;border-color:#cbd5e1}
.mc-planning-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:16px 0}
.mc-planning-toolbar>.mc-planning-button{font-size:.86em}
.mc-planning-toolbar>[aria-pressed=true]{border-color:var(--mc-plan-accent);box-shadow:inset 0 0 0 1px var(--mc-plan-accent)}
.mc-planning-legend{margin:12px 0;border:1px solid var(--mc-plan-border);border-radius:14px;background:var(--mc-plan-surface)}
.mc-planning-legend>summary{padding:13px;cursor:pointer;min-height:44px}
.mc-planning-legend>ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:0;padding:0 14px 14px;list-style:none}
.mc-planning-legend li{display:flex;align-items:center;gap:8px;line-height:1.35;font-size:.85em;overflow-wrap:anywhere}
.mc-planning-legend li>i{display:block;width:15px;height:15px;border:1px solid;flex:none;border-radius:4px}
.mc-planning-results{min-width:0;margin-top:20px}
.mc-planning-results>h3{font-size:1em;margin:0 0 10px}
.mc-planning-results-toggle{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:8px 0;min-height:44px;border:0;background:transparent;text-align:start;line-height:1.4;overflow-wrap:anywhere}
.mc-planning-results-content{display:grid;gap:12px;min-width:0}
.mc-planning-results-content[hidden]{display:none}
.mc-planning-message{padding:14px;margin:0;background:var(--mc-plan-muted);border-radius:12px;line-height:1.5;overflow-wrap:anywhere}
.mc-planning-error>p{margin:0 0 12px}
.mc-planning-shift{border:1px solid var(--mc-plan-border);border-radius:14px;overflow:hidden;min-width:0;background:var(--mc-plan-surface)}
.mc-planning-shift-header{padding:12px;border-bottom:1px solid;line-height:1.4}
.mc-planning-shift-header>div{display:flex;flex-direction:column;gap:3px}
.mc-planning-shift-header span{font-size:.8em}
.mc-planning-shift-body{padding:12px;overflow-wrap:anywhere}
.mc-planning-shift-body h4{margin:0 0 5px;font-size:1em}
.mc-planning-shift-body p{margin:0 0 10px;line-height:1.4}
.mc-planning-shift-body details{margin:10px 0}
.mc-planning-shift-body summary{cursor:pointer;padding:8px 0;min-height:44px}
.mc-planning-shift-body dl{margin:8px 0}
.mc-planning-shift-body dl>div{display:grid;grid-template-columns:minmax(90px,.4fr) minmax(0,1fr);gap:10px;margin:8px 0}
.mc-planning-shift-body dt{font-size:.9em;color:var(--mc-plan-subtext)}
.mc-planning-shift-body dd{margin:0;min-width:0}
@container(max-width:370px){.mc-planning-grid{gap:4px}.mc-planning-day{padding:5px 3px;min-height:89px;border-radius:10px}.mc-planning-day-top{min-height:21px}.mc-planning-day-top>b{font-size:.95em}.mc-planning-time{font-size:11px;padding:2px}.mc-planning-weekday{font-size:.8125em}.mc-planning-month-label{font-size:1em}}
@media(prefers-reduced-motion:no-preference){.mc-planning-overview button{transition:background-color .15s,border-color .15s}}
/* Status colours retain their meaning; controls follow the selected host. */
.mc-planning-automatic{color:#7e22ce;background:#faf5ff;border-color:#d8b4fe}
.mc-attendance-timer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;padding:.75rem .9rem;border:1px solid var(--mc-plan-border);border-radius:.7rem;background:var(--mc-plan-muted);color:var(--mc-plan-text);min-width:0;overflow-wrap:anywhere}
.mc-attendance-timer strong{font-size:1.4rem;font-variant-numeric:tabular-nums;letter-spacing:.025em}
.mc-attendance-notice{font-size:.9375rem;line-height:1.5;color:var(--mc-plan-subtext);overflow-wrap:anywhere}
.mc-attendance-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}
.mc-attendance-actions>button{min-height:44px;min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.mc-attendance-primary{background:var(--mc-plan-accent,#103751)!important;color:var(--mc-plan-accent-text,#fff)!important;border:1px solid var(--mc-plan-accent,#103751)!important;border-radius:.65rem;padding:.75rem 1rem;font:inherit;font-weight:650;line-height:1.4;min-height:44px;cursor:pointer}
.mc-attendance-primary:disabled{opacity:.55;cursor:not-allowed}
.mc-attendance-range{display:flex;flex-wrap:wrap;align-items:end;gap:.75rem;margin:.75rem 0;min-width:0}
.mc-attendance-range label{display:grid;gap:.35rem;flex:1 1 9rem;min-width:0;font-weight:600;color:var(--mc-plan-text)}
.mc-attendance-range input,.mc-attendance-range button{box-sizing:border-box;max-width:100%;min-width:0;min-height:44px;font:inherit;font-size:1rem;line-height:1.4;padding:.65rem .75rem;border:1px solid var(--mc-plan-border);border-radius:.65rem;background:var(--mc-plan-control);color:var(--mc-plan-text);color-scheme:inherit}
.mc-attendance-range input{width:100%}
.mc-attendance-range :is(input,button):focus-visible{outline:3px solid var(--mc-plan-focus);outline-offset:3px}

.mc-planning-company-filter{display:grid;gap:6px;margin:0 0 14px;font:inherit;color:var(--mc-plan-text)}
.mc-planning-company-filter select{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--mc-plan-border);border-radius:12px;background:var(--mc-plan-surface);color:var(--mc-plan-text);font:inherit}
.mc-planning-company-filter select:focus-visible{outline:3px solid var(--mc-plan-accent);outline-offset:3px}

.mc-planning-preplanned,.mc-planning-unknown{color:#334155;background:#f1f5f9;border-color:#cbd5e1}

/* The same camera/review/confirmation surface is used by all three apps. */
.mc-attendance-capture{box-sizing:border-box;position:fixed;inset:12px;margin:auto;width:min(34rem,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));overflow:auto;overscroll-behavior:contain;border:1px solid var(--mc-plan-border);border-radius:1rem;padding:1rem;background:var(--mc-plan-surface);color:var(--mc-plan-text);font-family:Lexend,Inter,ui-sans-serif,system-ui,sans-serif;font-size:1rem;line-height:1.5;box-shadow:0 1rem 4rem #0005}
.mc-attendance-capture *{box-sizing:border-box}
.mc-attendance-capture::backdrop{background:#0009}
.mc-attendance-capture form{min-width:0;margin:0}
.mc-attendance-capture header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}
.mc-attendance-capture header>div{min-width:0;overflow-wrap:anywhere}
.mc-attendance-capture :is(h2,h3){color:var(--mc-plan-text);line-height:1.4;overflow-wrap:anywhere}
.mc-attendance-capture h2{font-size:1.2rem;margin:0}
.mc-attendance-capture h3{font-size:1.05rem;margin:1rem 0 .5rem}
.mc-attendance-capture header p{font-size:.9375rem;line-height:1.5;margin:.35rem 0 .7rem;color:var(--mc-plan-subtext)}
.mc-attendance-capture button{font:inherit;font-weight:600;line-height:1.4;min-width:44px;min-height:44px;max-width:100%;padding:.65rem .9rem;border:1px solid var(--mc-plan-border);border-radius:.65rem;background:var(--mc-plan-control);color:var(--mc-plan-text);white-space:normal;overflow-wrap:anywhere;touch-action:manipulation;cursor:pointer}
.mc-attendance-capture button[data-capture-close]{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;font-size:1.6rem;line-height:1;background:transparent;border:0;padding:0;color:var(--mc-plan-text)}
.mc-attendance-capture button:disabled{opacity:.55;cursor:not-allowed}
.mc-attendance-capture :is(button,input,select,textarea):focus-visible{outline:3px solid var(--mc-plan-focus);outline-offset:3px}
.mc-attendance-capture .mc-capture-steps{display:flex;flex-wrap:wrap;gap:.75rem 1.75rem;padding:.75rem 1.75rem;background:var(--mc-plan-muted);border:1px solid var(--mc-plan-border);border-radius:.65rem;color:var(--mc-plan-subtext);font-size:.9375rem}
.mc-attendance-capture .mc-capture-steps [aria-current]{font-weight:750;color:var(--mc-plan-text);text-decoration:underline;text-decoration-color:var(--mc-plan-accent);text-underline-offset:4px}
.mc-attendance-capture :is(.mc-capture-hint,.mc-capture-field small,[data-capture-status],[data-capture-error]){font-size:.9375rem;line-height:1.5;overflow-wrap:anywhere}
.mc-attendance-capture :is(.mc-capture-hint,.mc-capture-field small,[data-capture-status]){color:var(--mc-plan-subtext)}
.mc-attendance-capture .mc-capture-field{display:flex;flex-direction:column;gap:.35rem;margin:.75rem 0;font-size:.9375rem;font-weight:600;min-width:0;color:var(--mc-plan-text)}
.mc-attendance-capture .mc-capture-field :is(input,select,textarea){width:100%;min-width:0;max-width:100%;min-height:44px;padding:.65rem .75rem;border:1px solid var(--mc-plan-border);border-radius:.65rem;font:inherit;font-size:1rem;font-weight:400;line-height:1.5;background:var(--mc-plan-control);color:var(--mc-plan-text);color-scheme:inherit}
.mc-attendance-capture .mc-capture-field textarea{min-height:6rem;resize:vertical}
.mc-attendance-capture input::file-selector-button{min-height:44px;margin-inline-end:.5rem;padding:.5rem .75rem;border:1px solid var(--mc-plan-border);border-radius:.5rem;background:var(--mc-plan-muted);color:var(--mc-plan-text);font:inherit;cursor:pointer}
.mc-attendance-capture :is(input,textarea)::placeholder{color:var(--mc-plan-subtext);opacity:1}
.mc-attendance-capture .mc-capture-preview{display:flex;justify-content:center;width:100%;height:auto;max-height:36dvh;aspect-ratio:4/3;margin-top:.75rem;overflow:hidden;border-radius:.7rem;background:#101010}
.mc-attendance-capture .mc-capture-preview :is(video,img){width:100%;height:100%;object-fit:contain;transform:none!important}
.mc-attendance-capture .mc-capture-controls{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}
.mc-attendance-capture [data-capture-error]{color:var(--mc-plan-error);background:var(--mc-plan-error-bg);border:1px solid currentColor;border-radius:.65rem;padding:.65rem .75rem}
.mc-attendance-capture footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:1rem;padding-bottom:env(safe-area-inset-bottom,0px)}
.mc-attendance-capture [hidden]{display:none!important}
@media(max-width:480px){.mc-attendance-capture{padding:.85rem}.mc-attendance-capture footer button{flex:1 1 100%}.mc-attendance-capture .mc-capture-preview{max-height:30dvh}}
@media(max-height:480px) and (orientation:landscape){.mc-attendance-capture{max-width:min(48rem,calc(100vw - 24px));width:100%}.mc-attendance-capture .mc-capture-preview{max-height:45dvh;max-width:25rem;margin-inline:auto}}

/* Absence status is explicit in data; pending never borrows approved fill. */
.mc-absence-chip,.mc-planning-overview .mc-planning-day[data-absence-category]{border:2px solid var(--absence-border);}
.mc-absence-chip{display:flex;align-items:center;justify-content:center;min-width:0;min-height:30px;padding:4px 6px;border-radius:8px;background:transparent;color:inherit;font:inherit;font-size:.78rem;font-weight:750;line-height:1.3;box-sizing:border-box;overflow-wrap:anywhere;}
button.mc-absence-chip{cursor:pointer;min-height:38px;width:100%;}
.mc-absence-chip[data-absence-status="approved"],.mc-planning-overview .mc-planning-day[data-absence-status="approved"]{background:var(--absence-fill);color:var(--absence-ink);border-color:var(--absence-fill);}
.mc-planning-overview .mc-planning-day[data-absence-status="approved"] .mc-planning-day-top{color:inherit;}
.mc-planning-overview .mc-planning-day[data-absence-status="pending"]{background:var(--mc-plan-surface,#fff);}
.mc-planning-theme-teamo .mc-absence-chip[data-absence-status="pending"],.mc-planning-theme-teamo .mc-planning-day[data-absence-status="pending"],html[data-hours-app="teamo"] .mc-absence-chip[data-absence-status="pending"]{border-color:var(--absence-dark-border);}
.mc-absence-chip:focus-visible,.mc-absence-legend summary:focus-visible{outline:3px solid var(--mc-plan-focus,#126fae);outline-offset:3px;}
.mc-absence-legend{margin:12px 0;color:inherit;}
.mc-absence-legend summary{cursor:pointer;min-height:44px;display:list-item;padding:10px 4px;font-weight:650;}
.mc-absence-legend ul{list-style:none;padding:4px 0;margin:0;display:flex;gap:12px 20px;flex-wrap:wrap;}
.mc-absence-legend li{display:flex;align-items:center;gap:8px;font-size:.9rem;}
.mc-absence-legend i{display:inline-block;flex:none;width:20px;height:20px;border-radius:5px;border:1px solid #6b7280;}
.mc-absence-legend p{font-size:.875rem;line-height:1.55;margin:10px 0;max-width:75ch;}
.mc-absence-detail{margin:12px 0;padding:14px 16px;border:1px solid var(--mc-plan-border,#c8d4df);border-inline-start:5px solid var(--absence-border);border-radius:12px;background:var(--mc-plan-surface,#fff);color:var(--mc-plan-text,#14283a);overflow-wrap:anywhere;}
.mc-planning-theme-teamo .mc-absence-detail{border-inline-start-color:var(--absence-dark-border);}
.mc-absence-detail header{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;}
.mc-absence-detail p{margin:9px 0 0;line-height:1.5;}
.pld-calendar-cell .mc-absence-chip{margin-bottom:6px;}
.pld-timeline-absence{position:absolute;min-height:42px;z-index:2;}
.pld-absence-details{scroll-margin-bottom:90px;}
@media print{[data-absence-category]{print-color-adjust:exact;-webkit-print-color-adjust:exact;}}
.mc-planning-overview .mc-planning-day[data-absence-status="pending"]{color:var(--mc-plan-text);}
.pld-calendar-cell.is-absent{background:var(--pld-surface,#fff);}
.pld-absence-neutral{display:block;min-height:28px;border:2px dashed var(--pld-muted,#53677a);border-radius:7px;margin-bottom:6px;}
.pld-project-absence-strip{display:grid;gap:12px;margin:14px 0;}
.pld-project-absence-strip>div{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.pld-project-absence-strip>div>strong{min-width:140px;max-width:240px;overflow-wrap:anywhere;}
.pld-project-absence-strip>div>div{display:grid;gap:4px;min-width:88px;text-align:center;font-size:.8rem;}
