/* Standalone MCP: Microsite Admin is the shared design foundation. */
:root{--max:1480px;--line:var(--border)}
.pmcp main{width:min(var(--max),calc(100% - 2 * var(--page-gutter)));margin-inline:auto;padding-block:36px 48px}
.pmcp .primary-nav{padding-inline:max(var(--page-gutter),calc((100vw - var(--max))/2))}
.pmcp .primary-nav{overflow:visible}
.pmcp .primary-nav-links{display:flex;flex:1;min-width:0;overflow-x:auto}
.pmcp .primary-nav .nav-settings{display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:auto}
.calendar-controls{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px;margin-left:auto;flex-shrink:0}
.pmcp .calendar-heading{flex-wrap:wrap}
.pmcp .calendar-week-view .calendar-week{min-height:320px}
.card-vans{display:flex;flex-direction:column;gap:4px;margin-top:6px}
.card-van{display:block;align-self:flex-start;max-width:100%;padding:3px 5px;border:1px solid #0002;border-radius:3px;background:#ffffff80;color:var(--ink);font-size:var(--text-micro);line-height:1.4;overflow-wrap:anywhere}
@media(max-width:700px){.calendar-controls{width:100%;justify-content:space-between}}
.pmcp .pinned-bar{display:flex;align-items:center;padding:12px max(32px,calc((100vw - var(--max))/2));background:var(--paper);border-bottom:1px solid var(--border);min-height:56px}
.pmcp .pinned-bar[hidden]{display:none}
.pmcp .pinned-bar-label,.pmcp .pinned-bar-empty{color:var(--muted)}
.pmcp .pinned-job-tab{border-color:var(--border);background:var(--canvas);color:var(--ink);border-radius:var(--radius);text-decoration:none}
.pmcp .pinned-job-tab:hover{background:var(--accent-tint);color:var(--accent);border-color:var(--accent)}
.pmcp .pinned-job-tab.active{background:var(--accent);color:#fff}
.nav-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:3px;padding-inline:5px;margin-left:5px;background:#f1dfb5;color:#45391e;font-size:var(--text-small);font-weight:700}
.nav-count.is-zero{background:#ffffff20;color:#fff}
.pmcp .calendar-heading{margin-bottom:24px;align-items:flex-start}
.pmcp .calendar-heading h1{font-size:var(--text-page);letter-spacing:-.045em}
.pmcp .calendar-heading .muted{font-size:var(--section-copy-size);margin-top:var(--heading-copy-gap);color:var(--muted)}
.pmcp .calendar-title{gap:16px}
.pmcp .workspace-tag{background:var(--paper);border-color:var(--border);color:var(--muted);font-size:var(--text-small);padding:5px 8px}
.pmcp .calendar-filters{gap:12px;padding:18px;background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px}
.pmcp .calendar-filters input:not([type=checkbox]){min-height:40px;font-size:var(--text-body)}
.pmcp .calendar-filters input[type=search]{width:300px}
.pmcp .show-cancelled{font-size:var(--text-control);white-space:nowrap}
.pmcp .calendar-scroll{border-color:var(--border);border-radius:var(--radius)}
.pmcp .calendar-week{min-height:142px;border-color:var(--border)}
.pmcp .calendar-day{border-color:var(--border)}
.pmcp .outside-month{background:#faf7f1}
.pmcp .today{background:var(--accent-tint)}
.pmcp .calendar-date-header{background:#ebe4d7;border-color:var(--border);padding:8px;min-height:46px;gap:4px}
.pmcp .calendar-date-header.crew-booked{background:#d7e8dd}
.pmcp .calendar-date-header.crew-tentative{background:#f3e4bf}
.pmcp .calendar-date-header.crew-unknown{background:#e9e5dd}
.pmcp .calendar-date-header .day-crew-date,.pmcp .calendar-date-header time{color:var(--ink)}
.pmcp .outside-month .day-crew-date,.pmcp .outside-month time{color:var(--muted)}
.pmcp .calendar-date-header time[aria-current=date]{background:var(--accent);color:#fff}
.pmcp .day-add-job{background:var(--paper);border-color:#aa9c87;color:var(--accent);border-radius:3px;cursor:pointer}
.pmcp .day-add-job:hover{background:var(--accent);border-color:var(--accent);color:white}
.pmcp .day-crew-count{color:var(--accent);border-radius:3px;font-weight:600}
.pmcp .day-crew-trigger:hover .day-crew-count,.pmcp .day-crew-trigger[aria-expanded=true] .day-crew-count{background:var(--accent);color:white}
.pmcp .day-crew-legend,.pmcp .calendar-empty,.pmcp .crew-window-note,.pmcp .job-client-hint,.pmcp .muted{color:var(--muted)}
.pmcp .day-crew-legend{margin:14px 0;font-size:var(--text-small)}
.pmcp .job-card{font-size:var(--text-control);text-decoration:none;border-radius:3px}
.pmcp .job-card .card-crew{font-size:var(--text-small);font-weight:700}
.pmcp .job-card .card-missing{display:block;margin-top:5px;font-size:var(--text-micro);font-weight:700;line-height:1.4;color:#a11924;overflow-wrap:anywhere}
.pmcp [data-job-panel] .job-crew-days{margin-top:0}
.pmcp [data-job-panel] .job-vans{margin-top:0;padding-top:0;border-top:0}
.pmcp .job-info-form{display:grid;gap:10px}
.pmcp .job-info-form label{font-size:var(--text-body)}
.pmcp .job-info-form input,.pmcp .job-info-form textarea{width:100%;margin:0;font-size:var(--text-body)}
.pmcp .job-info-form textarea{resize:vertical;min-height:150px}
.pmcp .job-info-form .dialog-actions{margin-top:6px}
.pmcp dialog,.pmcp .day-crew-popup{border:1px solid var(--border);border-radius:var(--radius);color:var(--ink);box-shadow:0 16px 60px #18171526}
.pmcp dialog{padding:28px}
.pmcp dialog::backdrop{background:#18171570;backdrop-filter:blur(2px)}
.pmcp dialog h2{font-size:var(--text-section);line-height:1.3}
.pmcp .dialog-heading .eyebrow{margin:0}
.pmcp .job-create-form{gap:20px}
.pmcp .job-current-form{margin-block:18px}
.pmcp .job-create-form label,.pmcp .person-form label,.pmcp .client-note-form label{font-size:var(--text-control)}
.pmcp .job-create-form input,.pmcp .job-create-form textarea{margin-top:7px;font-size:var(--text-control)}
.pmcp .job-create-dates,.pmcp .person-form{grid-template-columns:minmax(0,1fr);gap:20px}
.pmcp .job-create-actions{gap:12px;flex-wrap:wrap;margin-top:6px}
.pmcp .calendar-title .month-arrow{width:40px;min-height:40px;padding:0}
.pmcp .close-dialog{width:32px;min-height:32px;padding:0;font-size:var(--text-section);flex-shrink:0}
.pmcp .work-task .task-status{min-height:30px;font-size:var(--text-small);padding:4px 10px;background:#fff1c5;color:#634809;border-color:#fff8df #cba854 #cba854 #fff8df}
.pmcp .work-task.done .task-status{background:var(--green-tint);color:var(--green);border-color:#f5fff8 #82ae90 #82ae90 #f5fff8}
.pmcp .work-task .task-status:hover{filter:brightness(.95);color:#634809}
.pmcp .work-task.done .task-status:hover{color:var(--green)}
.pmcp .panel{border-radius:var(--radius);border-color:var(--border)}
.pmcp .pmcp-settings,.pmcp .job-work,.pmcp .person-form,.pmcp .client-note-form,.pmcp .person-aliases p{max-width:none;width:100%}
.pmcp .client-panel{padding:0;overflow:hidden}
.pmcp .client-panel>p{padding:24px}
.pmcp th,.pmcp td{padding:12px 16px;font-size:var(--text-control)}
.pmcp .client-form:not(.client-search),.pmcp .workspace-choice,.pmcp .workload-settings{display:flex;flex-direction:column;align-items:stretch;gap:18px}
.pmcp .client-form:not(.client-search)>.button,.pmcp .workspace-choice>.button,.pmcp .workload-settings>.button{align-self:flex-start}
.pmcp .workload-settings fieldset{display:grid;grid-template-columns:1fr;gap:16px;padding:18px}
.pmcp .workload-settings input{width:100%;font-size:var(--text-subheading)}
.pmcp .workload-settings label,.pmcp .workspace-choice label{font-size:var(--text-control)}
.pmcp .client-search{flex-wrap:nowrap}
.pmcp .client-search input[type=search]{flex:1}
.pmcp .client-search .show-cancelled{flex-shrink:0}
.pmcp .client-search .button{flex-shrink:0}
.pmcp .pmcp-settings h2,.pmcp .client-jobs-title,.pmcp .client-resources h2{font-size:var(--text-section);margin-bottom:var(--heading-copy-gap)}
.pmcp .people-add>summary,.pmcp .new-client-note>summary{background:var(--accent);border-radius:2px;border:3px solid;border-color:var(--raised-edge);color:white}
.pmcp .people-add>summary:hover,.pmcp .new-client-note>summary:hover{background:var(--accent-hover)}
@media(max-width:900px){.pmcp .calendar-heading{gap:16px}.pmcp .calendar-title{gap:12px}.pmcp .client-search{flex-wrap:wrap}.pmcp .calendar-title h1{font-size:var(--text-page)}}
@media(max-width:700px){.pmcp main{width:calc(100% - 32px);padding-block:24px}.pmcp .primary-nav{padding-inline:16px}.pmcp .pinned-bar{padding:10px 16px}.pmcp .pinned-bar-empty{white-space:normal;line-height:1.5}.pmcp .calendar-filters{padding:14px;gap:10px}.pmcp .calendar-filters input[type=search]{width:100%;flex-basis:100%}.pmcp .calendar-heading{flex-wrap:wrap}.pmcp .calendar-heading h1{font-size:var(--text-page)}.pmcp .calendar-title .workspace-tag{order:3}.pmcp .calendar-heading>.button{margin-left:auto}.pmcp dialog{padding:20px}.pmcp .show-cancelled{margin-right:auto}}

/* Planning controls and forms. */
.pmcp .admin-label{border-left-width:3px}
.pmcp .calendar-controls>.month-nav{margin-left:auto;align-items:center;gap:10px;flex-shrink:0}
.pmcp .month-nav .month-arrow{width:40px;min-height:40px;padding:0}
.pmcp .calendar-filters input[type=search]{flex:1;min-width:160px}
.pmcp .add-client{margin:0 0 24px;padding:24px}
/* Only the current/upcoming job column takes spare directory width. */
.pmcp #client-directory th:not(:nth-child(5)),.pmcp #client-directory [data-client-row] td:not(:nth-child(5)){width:1%;white-space:nowrap;padding-inline:var(--space-5)}
.pmcp .client-filter{margin:0 0 16px}
.pmcp .client-filter{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-4)}
.pmcp .client-filter input[type=search]{flex:1;min-width:200px}
.pmcp .client-filter-groups{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-4)}
.pmcp .client-heading-actions{display:block}
.pmcp .client-rename{margin-top:24px}
.pmcp .client-form label+input{margin-top:-10px}
.pmcp .people-tools{display:block}
.pmcp .people-add{width:100%;padding:24px;margin:0}
.pmcp .people-add h3,.pmcp .person-profile>h3{font-size:var(--text-section);margin-bottom:10px}
.pmcp .person-metrics{margin-top:18px}
.pmcp .new-client-note,.pmcp .edit-client-note{margin-top:24px}
@media(max-width:700px){.pmcp .calendar-controls>.month-nav{gap:6px}.pmcp .add-client,.pmcp .people-add{padding:20px}.pmcp .crew-type-toggle span{padding-inline:18px}}
@media(max-width:700px){.pmcp .calendar-filters input[type=search]{flex-basis:100%;min-width:0}}

.pmcp .calendar-heading>.page-add{margin-left:auto;flex-shrink:0}
.pmcp .people-filters{display:flex;align-items:flex-end;gap:12px}
.pmcp .people-filters>label{flex:1 1 150px;min-width:140px;font-size:var(--text-body)}
.pmcp .people-filters input,.pmcp .people-filters select{width:100%;height:44px;min-height:44px;padding:10px 12px;font-size:var(--text-body);margin-top:7px}
.pmcp .people-filters>.button{height:44px;min-height:44px}
.pmcp .person-form input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.pmcp .person-form select{height:44px;min-height:44px}
.pmcp .person-categories{border:0;margin:0;padding:0;min-width:0}
.pmcp .person-categories legend{font-size:var(--text-control);font-weight:700;margin-bottom:10px}
.pmcp .category-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;padding:3px}
.pmcp .category-options label{display:flex;align-items:center;gap:8px;font-size:var(--text-control);font-weight:400}
.pmcp .category-options input{flex-shrink:0;width:18px;height:18px;min-height:0}
.pmcp .people-table .person-inactive td{background:#efefef;color:#686868}
.pmcp .people-table .person-inactive a{color:#686868}
.pmcp .category-add{display:flex;align-items:center;gap:12px;margin:10px 0 20px}
.pmcp .category-add input:not([type=hidden]){flex:1;min-width:0}
.pmcp .category-add .button{flex-shrink:0}
.pmcp .category-table{min-width:480px}
.pmcp .category-table th,.pmcp .category-table td{padding:8px 12px}
.pmcp .category-table th:first-child{width:100%}
.pmcp .category-actions .button{min-height:32px;padding:4px 10px}
.pmcp .category-actions .button+.button{margin-left:6px}
.pmcp .job-card.cancelled{background:#e6e6e6;color:#555;border-color:#aaa}
.pmcp .job-card.cancelled .card-crew{color:#666}
@media(max-width:500px){.pmcp .category-options{grid-template-columns:1fr}.pmcp .category-settings{padding:16px}}

@media(max-width:700px){.pmcp .people-filters>label{flex:0 0 calc(50% - 6px);min-width:0}}

/* Shared temporary notifications sit at the bottom, clear of navigation. */
@media(max-width:700px){.pmcp .site-notification{max-width:calc(100% - 32px);padding:14px 16px}}

.job-vans{margin-top:24px;padding-top:18px;border-top:1px solid var(--border)}
.job-vans-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.job-vans-heading h3{font-size:var(--text-section);margin:0}
.transport-requirement{display:flex;align-items:center;gap:10px;margin:0}
.transport-requirement label{display:flex;align-items:center;gap:6px;font-size:var(--text-control)}
.pmcp .transport-requirement input{width:16px;height:16px;min-height:16px;margin:0}
.van-booking-hint{font-size:var(--text-control);color:var(--muted);margin:8px 0 12px}
.pmcp .job-vans .button{min-height:32px;padding:5px 8px;border-width:2px;font-size:var(--text-small);white-space:nowrap}
.pmcp .van-booking-table{width:100%;min-width:860px}
.pmcp .van-booking-table th,.pmcp .van-booking-table td{padding:8px 6px;font-size:var(--text-control)}
.pmcp .van-booking-table input,.pmcp .van-booking-table select{height:34px;min-height:34px;font-size:var(--text-control);padding:5px 8px;margin:0}
.van-booking-table th:first-child{width:28%}
.van-booking-actions{white-space:nowrap}
.van-booking-actions .button+.button{margin-left:6px}
.pmcp #job-detail{width:min(1120px,calc(100vw - 40px));max-height:90vh}
.pmcp .job-detail-heading{align-items:flex-start}
.pmcp .job-detail-heading h2{margin:0;font-size:var(--text-section)}
.pmcp .job-detail-title{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 16px;min-width:0;overflow-wrap:anywhere}
.pmcp .job-detail-client{font-size:var(--text-section);color:var(--muted)}
.pmcp .job-detail-controls{display:flex;align-items:center;gap:8px;flex-shrink:0}
.pmcp .job-detail-controls form{margin:0}
.pmcp #job-detail .job-pin,.pmcp #job-detail .close-dialog{width:28px;height:28px;min-height:28px;padding:4px;border-width:2px}
.pmcp #job-detail .close-dialog{font-size:var(--text-detail);padding:0}
.pmcp #job-detail .job-dates{font-size:var(--text-detail);font-weight:700}
.pmcp .job-pin svg{width:16px;height:16px;display:block}
.pmcp .job-crew-days{margin-top:18px;--crew-label-width:150px;--crew-action-width:84px;--crew-gap:10px}
.pmcp .crew-day{border-top:1px solid var(--border);padding:14px 16px;background:#fff}
.pmcp .crew-day:nth-child(even){background:#f3efe7}
.pmcp .crew-day .button{min-height:32px;height:32px;padding:4px 8px;border-width:2px;font-size:var(--text-small)}
.pmcp .crew-day-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:10px}
.pmcp .crew-day-heading h3{font-size:var(--text-section);font-weight:700;margin:0;color:var(--ink)}
.pmcp .crew-day-heading form{margin:0}
.pmcp .crew-day-copy-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;margin-left:auto}
.pmcp .crew-slot{display:grid;grid-template-columns:var(--crew-label-width) minmax(0,1fr) var(--crew-action-width);align-items:center;gap:var(--crew-gap);margin:8px 0}
.pmcp .crew-slot-category{font-size:var(--text-control)}
.pmcp .crew-slot-assignment{display:flex;align-items:center;gap:8px;flex:1;min-width:0;margin:0}
.pmcp .crew-slot-delete{margin:0}
.pmcp .crew-slot-delete .button{width:100%}
.pmcp .crew-slot-add{display:grid;grid-template-columns:minmax(0,1fr) var(--crew-action-width);align-items:center;gap:var(--crew-gap);margin:10px 0 0 calc(var(--crew-label-width) + var(--crew-gap))}
.pmcp .crew-slot-add select,.pmcp .crew-slot-assignment select{flex:1;min-width:0;min-height:32px;height:32px;font-size:var(--text-control);padding:5px 8px}
.pmcp .crew-slot-add .button,.pmcp .crew-slot-assignment .button{flex-shrink:0}
.pmcp .crew-slot-assignment option:disabled{color:#888;background:#eee}
.pmcp #job-detail[data-enhanced] .crew-assign-save{display:none}
.pmcp .crew-slot-assignment select[hidden]{display:none}
.pmcp .crew-day .crew-picker-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-width:0;height:32px;padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius);background:#fff;color:var(--ink);font:inherit;font-size:var(--text-control);text-align:left;cursor:pointer;box-shadow:none}
.crew-picker-trigger span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crew-picker-trigger svg{width:16px;height:16px;flex-shrink:0}
.pmcp .allocation-picker{width:min(560px,calc(100vw - 32px));max-height:85vh;padding:22px}
.pmcp .allocation-picker .dialog-heading{margin-bottom:4px;align-items:flex-start}
.pmcp .allocation-picker h2{margin:0;font-size:var(--text-section)}
.pmcp .allocation-picker .close-dialog{flex-shrink:0;width:28px;height:28px;min-height:28px;padding:0;font-size:var(--text-detail);border-width:2px}
.crew-picker-date{margin:0 0 16px;font-size:var(--text-body);color:var(--muted)}
.pmcp .crew-picker-search{min-height:38px;font-size:var(--text-subheading);margin-bottom:14px}
.crew-picker-group h3{margin:16px 0 8px;font-size:var(--text-control);color:var(--muted)}
.pmcp .crew-person{display:flex;align-items:center;gap:12px;width:100%;margin:6px 0;padding:12px;border:1px solid var(--border);border-radius:4px;background:#fff;color:var(--ink);text-align:left;font:inherit;cursor:pointer;box-shadow:none}
.pmcp .crew-person:hover:not(:disabled){border-color:var(--accent);background:var(--accent-tint)}
.pmcp .crew-person[aria-pressed=true]{border-color:var(--accent);background:var(--accent-tint)}
.crew-person-avatar{display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;border-radius:50%;background:var(--canvas);font-size:var(--text-body);font-weight:700}
.crew-person-details{flex:1;min-width:0}
.crew-person strong,.crew-person small{display:block;overflow-wrap:anywhere}
.crew-person strong{font-size:var(--text-subheading)}
.crew-person small{font-size:var(--text-control);line-height:1.5;margin-top:3px;color:var(--muted)}
.pmcp .crew-person:disabled{background:#efefec;color:#777;cursor:not-allowed;opacity:1}
.crew-person-selected{font-size:var(--text-control);color:var(--accent)}
.crew-picker-empty{font-size:var(--text-body);color:var(--muted);margin:18px 0}
.pmcp .crew-picker-clear{margin-top:16px;min-height:32px;padding:5px 10px;border-width:2px;font-size:var(--text-control)}
.crew-person[hidden],.crew-picker-group[hidden],.crew-picker-empty[hidden]{display:none}
@media(max-width:650px){.pmcp #job-detail{width:calc(100vw - 24px);padding:16px}.pmcp .crew-day{padding:12px 10px}.pmcp .crew-day-heading{flex-wrap:wrap}.pmcp .crew-day-heading form{margin-left:auto}.pmcp .crew-slot{grid-template-columns:minmax(0,1fr) var(--crew-action-width)}.pmcp .crew-slot-category{grid-column:1/-1}.pmcp .crew-slot-add{margin-left:0}}

.pmcp .people-crew-filter{border:0;padding:0;margin:0;min-width:0}
.pmcp .people-crew-filter legend{font-size:var(--text-body);margin-bottom:7px}
.pmcp .people-crew-filter .crew-type-toggle{display:flex;height:44px}
.pmcp .people-crew-filter .crew-type-toggle span{padding:12px 16px;font-size:var(--text-body)}
.pmcp .people-crew-filter .crew-type-toggle input{width:1px;height:1px;min-height:0;margin:0;padding:0}
.people-table tr[hidden]{display:none}

.pmcp :is(#reset-confirm,#planning-reset-confirm){width:min(640px,calc(100vw - 32px))}

.pmcp .login-panel{max-width:440px;margin:32px auto}
.pmcp .nav-signout{display:flex;margin:0;flex-shrink:0}
.pmcp .nav-signout .nav-action{cursor:pointer;font:inherit;font-size:var(--text-control)}

/* Contact details and history use the existing compact directory layout. */
#client-locations h3{margin:24px 0 16px}
#client-locations .table-scroll,.crew-history .table-scroll{margin-top:18px}
.crew-history td:last-child{max-width:none;overflow:visible;text-overflow:clip}
.job-location{margin-bottom:18px;font-size:var(--text-body);line-height:1.6}

.van-defaults{margin-bottom:20px}
.van-defaults p{color:var(--muted)}
.style-guide{display:grid;gap:24px}
.style-guide h2{margin-bottom:12px}
.style-guide p{margin-block:8px}
.style-guide-fields{display:grid;gap:12px;max-width:640px}
.style-guide-colours{display:flex;flex-wrap:wrap;gap:12px;list-style:none;padding:0;margin:0}
.style-guide-colours li{display:flex;align-items:center;gap:8px;font-size:var(--text-control)}
.style-guide-colours span{width:24px;height:24px;border:1px solid var(--border);background:var(--swatch)}

.pmcp .tabbed-content .client-rename{margin-top:0}
.pmcp .tabbed-content .client-heading-actions{margin-bottom:0}
