@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');
:root{font-family:'DM Sans',system-ui,sans-serif;color:#202e36;background:#f5f7f8;font-size:14px;--teal:#007c9f;--line:#dae2e6;--muted:#61727d}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer;background:white;color:#263a47;border:1px solid #d2dde2;border-radius:7px;padding:10px 14px;font-weight:500}button:hover{background:#f0f6f8;border-color:#94b6c4}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #49b8d5;outline-offset:3px}a{color:var(--teal)}.primary{background:#007c9f;color:white;border-color:#007c9f}.primary:hover{background:#00637f;color:white}.app-header{display:flex;align-items:center;gap:24px;padding:20px 32px;background:#fff;border-bottom:1px solid var(--line)}.brand{text-decoration:none;display:flex;align-items:center;gap:13px;letter-spacing:1.5px;color:#152b38;font-size:15px;font-weight:700}.brand b{color:var(--teal)}.brand small{display:block;font-size:11px;letter-spacing:.6px;font-weight:400;margin-top:4px;color:var(--muted)}.brand-mark{position:relative;background:#102f40;color:white;display:grid;place-items:center;width:44px;height:44px;border-radius:9px;font-size:26px;font-style:italic}.brand-mark span{font-size:18px;color:#63d7f5;position:absolute;right:3px;top:0}.prototype{margin-left:auto;font-size:10px;font-weight:700;letter-spacing:1.3px;color:#637680;background:#f0f4f5;padding:7px 10px;border-radius:4px}.app-shell{max-width:1800px;margin:auto;padding:0 32px}.main-nav{display:flex;gap:30px;border-bottom:1px solid var(--line);overflow-x:auto}.main-nav button{white-space:nowrap;border:0;border-radius:0;background:transparent;padding:21px 0 17px;color:#667680;border-bottom:3px solid transparent}.main-nav button[aria-pressed=true]{color:var(--teal);border-bottom-color:var(--teal);font-weight:700}.notice{display:flex;align-items:center;gap:10px;background:#eaf3f6;border:1px solid #d3e5ec;border-radius:7px;padding:10px 14px;margin-top:20px;font-size:12px;color:#365967}.notice-dot{height:7px;width:7px;flex:none;border-radius:50%;background:var(--teal)}.notice button{margin-left:auto;font-size:12px;background:transparent;border:0;padding:5px;white-space:nowrap}.section-heading{display:flex;gap:20px;justify-content:space-between;align-items:end;margin:30px 0 24px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.8px;color:var(--teal);margin:0 0 8px}h1{font-size:29px;letter-spacing:-.8px;line-height:1.15;margin:0}h2{font-size:20px;letter-spacing:-.4px;margin:0 0 12px}.muted{color:var(--muted);margin:9px 0 0;font-size:13px}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:#647682}.tentative{color:#966817}.confirmed{color:#167454}.week-toolbar{display:flex;gap:20px;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap}.week-switch{display:flex;align-items:center;gap:16px}.week-switch button{padding:8px 12px}.week-switch strong{font-size:19px}.week-switch small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.week-controls{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.week-controls label{font-size:10px;color:var(--muted);display:grid;gap:4px}.week-controls input,.week-controls select{padding:8px 10px;background:white;border:1px solid #d2dde2;border-radius:6px;color:#263a47;font-size:12px;max-width:160px}.week-controls button{font-size:12px;padding:8px 12px}.board-wrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:9px}.board{width:100%;min-width:1300px;table-layout:fixed;border-collapse:separate;border-spacing:0}.board th,.board td{border-right:1px solid #e5ebee;border-bottom:1px solid #e5ebee;vertical-align:top;padding:9px}.board th{background:#f2f6f7;font-size:12px;color:#647582;font-weight:500;padding:14px 10px}.board th:first-child{width:166px}.board th small{display:block;font-size:19px;font-weight:600;color:#293e4b;margin-top:4px}.board .vehicle{position:sticky;left:0;background:white;z-index:2;padding:17px 13px}.vehicle strong{font-size:15px;display:block}.vehicle small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.vehicle span{font-size:10px;color:#86949d;display:block;margin-top:10px}.board thead th:first-child{position:sticky;left:0;z-index:3}.board th.current-day{background:#e4f3f8;color:var(--teal);box-shadow:inset 0 3px 0 var(--teal)}.board .group-row td{background:#f2f5f6;color:#64747e;font-size:10px;font-weight:700;letter-spacing:1.2px;padding:8px 14px}.booking{display:block;width:100%;text-align:left;padding:11px;margin-bottom:7px;border:1px solid #d7e5eb;border-left:3px solid #8aa7b5;border-radius:5px;background:#f7fafb;white-space:normal}.booking:hover{background:#edf6f9}.booking strong{display:block;font-size:14px;line-height:1.3;color:#193b4c}.booking .job-number{display:block;color:var(--teal);font-size:11px;font-weight:600;margin:4px 0 9px;letter-spacing:.2px}.booking .job-number.missing{color:#966817}.booking .movement{display:block;font-size:12px;color:#435e6b;line-height:1.4}.booking .driver{display:block;font-size:12px;margin-top:7px;color:#526b79}.booking .state{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.6px;margin-top:9px;color:#657a86}.booking[data-status=Confirmed]{background:#eef8f3;border-left-color:#228761}.booking[data-status=Tentative]{background:#fffbf0;border-left-color:#bf8a2c}.booking.maintenance{background:#f3f3f5;border-left-color:#8d8a9b}.add-slot{display:block;color:#9aacb7;background:transparent;border:1px dashed transparent;font-size:11px;padding:8px;width:100%;text-align:center;font-weight:400}.add-slot:hover{border-color:#a8c5d0;color:var(--teal)}.board-footer{display:flex;justify-content:space-between;gap:12px;margin-top:12px;font-size:11px;color:#70808b;flex-wrap:wrap}.compact .booking{padding:8px}.compact .booking .driver,.compact .booking .state{display:none}.compact .board td{padding:6px}.list-toolbar{display:flex;gap:20px;align-items:end;margin:20px 0;flex-wrap:wrap}label{display:grid;gap:7px;color:#3d535f;font-size:12px}input,select,textarea{border:1px solid #cdd9df;border-radius:6px;padding:10px 11px;color:#1d3644;background:white;min-width:0}input[type=checkbox]{accent-color:var(--teal);width:16px;height:16px}.check{display:flex;align-items:center;gap:9px;font-size:12px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px;background:white}.data-table{border-collapse:collapse;width:100%;min-width:900px}.data-table th,.data-table td{text-align:left;padding:16px;border-bottom:1px solid var(--line);font-size:13px;vertical-align:top}.data-table th{background:#f1f5f6;font-size:11px;color:var(--muted)}.data-table small{display:block;margin-top:4px;color:var(--muted);font-size:11px}.data-table .edit{padding:6px 10px;font-size:12px}.status{display:inline-block;padding:4px 8px;background:#edf3f6;font-size:11px;border-radius:4px}.status.Confirmed{background:#e1f1e8;color:#21674c}.status.Tentative{background:#fff1cf;color:#82601b}.status.Cancelled{background:#f2e7e7;color:#874747}.integration-strip{display:flex;gap:12px;flex-wrap:wrap;background:#eaf2f5;border-radius:7px;padding:15px 18px;color:#426473;font-size:12px;margin-bottom:20px}.book-head{background:white;border:1px solid var(--line);padding:24px;border-radius:8px 8px 0 0}.book-head p{margin:0 0 5px;color:var(--teal);font-size:12px;font-weight:600}.book-head h2{margin:0}.empty{padding:40px 20px;text-align:center;color:var(--muted);background:white}.connections{display:grid;grid-template-columns:1fr 1fr;gap:20px}.connections article{padding:24px;background:white;border:1px solid var(--line);border-radius:8px}.connection-status{display:block;font-size:10px;letter-spacing:1px;color:#687d89;margin-bottom:14px}.connections p{font-size:13px;line-height:1.7;color:#5f7480}.connections a{font-size:13px}.dialog-heading{display:flex;justify-content:space-between;align-items:start}.dialog-heading h2{margin:0}.dialog-heading button{border:0;padding:6px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}.wide{grid-column:1/-1}.field-help{font-size:11px;line-height:1.6;color:var(--muted)}dialog{border:1px solid #cad9e1;border-radius:12px;padding:28px;max-width:680px;width:calc(100% - 32px);max-height:90vh;color:#243d4b;box-shadow:0 24px 80px #172c4433}dialog::backdrop{background:#112f4266;backdrop-filter:blur(2px)}.dialog-actions{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:20px;margin-top:22px;flex-wrap:wrap}.dialog-actions span{flex:1}.danger{color:#a14949;background:#fff;border-color:#ead7d7}#form-errors:not(:empty){background:#fff0ed;color:#9a3e2a;padding:12px;border-radius:6px;margin:12px 0;font-size:12px}#conflicts:not(:empty){background:#fff7e7;color:#805b16;padding:12px;border-radius:6px;margin:12px 0;font-size:12px}#conflicts ul{padding-left:18px}footer{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1px;color:#7b8d97;padding:30px 0 24px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#143c4e;color:white;padding:14px 22px;border-radius:7px;z-index:100;max-width:90vw;font-size:13px;box-shadow:0 5px 20px #183a4233}[hidden]{display:none!important}
@media(min-width:1600px){.board{min-width:1400px}.booking strong{font-size:15px}}
@media(max-width:850px){.app-header{padding:18px;gap:12px;flex-wrap:wrap}.prototype{display:none}.app-header .primary{margin-left:auto}.app-shell{padding:0 16px}.main-nav{gap:22px}.section-heading{align-items:start;flex-direction:column}.notice{align-items:start;flex-wrap:wrap}.notice button{margin-left:17px}.legend{gap:12px}.connections{grid-template-columns:1fr}h1{font-size:25px}.board-wrap{max-height:70vh}.board thead th{position:sticky;top:0;z-index:3}.board thead th:first-child{z-index:4}.board th:first-child{width:140px}.board-footer{font-size:10px}.week-controls label{flex:1}input,select,textarea{font-size:16px}.week-controls input,.week-controls select{font-size:16px;max-width:180px}.week-switch strong{font-size:17px}.form-grid{gap:12px}dialog{padding:20px}.dialog-actions button{padding:10px}.brand{font-size:12px;letter-spacing:1px}.brand small{font-size:10px}.brand-mark{width:36px;height:36px}}
@media(max-width:440px){.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.brand-mark{display:none}.brand{font-size:11px}.app-header .primary{font-size:12px;padding:10px}.list-toolbar>label{width:100%}.week-controls{gap:8px}.week-controls label{max-width:145px}.dialog-actions .danger{width:100%}.dialog-actions span{display:none}}
/* Showtime Production Book theme. Brand web colors from retained Showtime brand reference. */
:root{color-scheme:dark;--teal:#0095c8;--brand-gray:#b7b6b8;--line:#353a44;--muted:#b7b6b8;color:#fff;background:#08090b;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
.app-header{background:#08090b;border-bottom-color:#353a44;padding-top:22px;padding-bottom:22px}.brand{gap:24px;color:white;letter-spacing:1px}.showtime-logo{width:190px;height:auto;display:block}.brand-title{border-left:1px solid #414650;padding:12px 0 12px 24px;font-size:20px;color:#fff;letter-spacing:2px}.brand small{color:var(--brand-gray);font-size:11px;letter-spacing:.4px;margin-top:7px}.prototype{color:#b7b6b8;background:#191c21;border:1px solid #353a44}
button{background:#191c21;border-color:#414650;color:white;border-radius:9px}button:hover{background:#252b32;border-color:#80d1ef}.primary{background:#0095c8;border-color:#0095c8;color:#fff}.primary:hover{background:#0086b4;color:#fff}a{color:#80d1ef}.main-nav button{color:#b7b6b8;font-size:15px;padding:22px 0 19px}.main-nav button[aria-pressed=true]{color:#80d1ef;border-bottom-color:#0095c8}.notice{background:#15212c;border-color:#384451;color:#c7d8df}.notice-dot{background:#0095c8}.notice button{color:#80d1ef}.eyebrow{color:#80d1ef}.muted{color:#b7b6b8}.section-heading h1{font-size:32px;letter-spacing:-.5px}.legend{color:#b7b6b8}.legend .tentative{color:#eac27c}.legend .confirmed{color:#99d6bd}.week-switch small{color:#b7b6b8}.week-controls label{color:#b7b6b8}.week-controls input,.week-controls select{background:#12151a;border-color:#4b505a;color:#fff}.board-wrap{background:#101318;border-color:#414650}.board th,.board td{border-color:#303640}.board th{background:#191c21;color:#b7b6b8}.board th small{color:#fff}.board .vehicle{background:#101318}.vehicle small{color:#b7b6b8}.vehicle span{color:#a3a9b4}.board .group-row td{background:#20242b;color:#b7b6b8}.board th.current-day{background:#123344;color:#80d1ef;box-shadow:inset 0 3px 0 #0095c8}.booking{background:#17212a;border-color:#364d5b;border-left-color:#0095c8}.booking:hover{background:#1d3442;border-color:#80d1ef}.booking strong{color:#fff}.booking .job-number{color:#80d1ef}.booking .job-number.missing{color:#eac27c}.booking .movement{color:#d5dce2}.booking .driver{color:#b7b6b8}.booking .state{color:#a3b5c0}.booking[data-status=Confirmed]{background:#142d26;border-left-color:#65b99a}.booking[data-status=Tentative]{background:#2d2719;border-left-color:#d1ab63}.booking.maintenance{background:#25262d;border-left-color:#b7b6b8}.add-slot{color:#8b9ca8}.add-slot:hover{color:#80d1ef;background:#172b37}.board-footer{color:#b7b6b8}.table-wrap{background:#12151a}.data-table th{background:#191c21;color:#b7b6b8}.data-table small{color:#b7b6b8}.status{background:#243542;color:#d4e4ee}.status.Confirmed{background:#1b3a2f;color:#a7e6cb}.status.Tentative{background:#43351b;color:#f1d296}.status.Cancelled{background:#42262b;color:#e5a9b4}.integration-strip{background:#15212c;color:#c7d8df}.book-head{background:#12151a}.book-head p{color:#80d1ef}.empty{background:#12151a;color:#b7b6b8}.connections article{background:#14171c}.connection-status{color:#80d1ef}.connections p{color:#b7b6b8}label{color:#e0e3e7}input,select,textarea{background:#12151a;color:#fff;border-color:#4b505a}.field-help{color:#b7b6b8}dialog{background:#11151b;color:#fff;border-color:#4b505a;box-shadow:0 24px 80px #0009}dialog::backdrop{background:#000b}.danger{color:#ffbbb4;background:#382326;border-color:#68434a}#form-errors:not(:empty){background:#3a2426;color:#ffb8ad}#conflicts:not(:empty){background:#352c1b;color:#f1d296}.toast{background:#123b50;color:#fff;border:1px solid #0095c8}footer{color:#b7b6b8;border-top:1px solid #353a44;margin-top:26px}
@media(max-width:850px){.showtime-logo{width:145px}.brand{gap:15px}.brand-title{font-size:16px;padding-left:15px}.brand small{font-size:10px}.section-heading h1{font-size:27px}}
@media(max-width:500px){.app-header .primary{margin-left:0}.app-header{justify-content:space-between}.showtime-logo{width:125px}.brand-title{font-size:13px}.brand small{max-width:105px;line-height:1.5}.main-nav button{font-size:13px}.section-heading h1{font-size:25px}}
.showtime-logo{width:230px;filter:invert(1);mix-blend-mode:screen}.brand-title{font-size:16px;letter-spacing:1.5px}
.role-picker{margin-left:auto;font-size:10px;gap:4px;color:#b7b6b8}.role-picker select{padding:7px 12px;font-size:12px}.prototype{margin-left:auto}.role-note{font-size:11px;color:#b7b6b8;padding:12px 0 0}.driver-preview{display:inline-flex;align-items:center;gap:12px;margin:14px 20px 0 0}.driver-preview select{font-size:13px}.access-plan{margin-bottom:24px;padding:24px;background:#14171c;border:1px solid #353a44;border-radius:8px}.access-plan p{color:#b7b6b8;font-size:13px;line-height:1.6}
@media(max-width:850px){.showtime-logo{width:175px}}
@media(max-width:500px){.showtime-logo{width:150px}.brand-title{font-size:12px}}
.board .vehicle{text-align:left}.board .vehicle strong{font-size:16px;color:#fff}.board .vehicle small{font-size:12px;font-weight:400;color:#b7b6b8}.board-wrap{max-height:72vh}.board thead th{position:sticky;top:0;z-index:3}.board thead th:first-child{z-index:4}
.flex-lookup{border:1px solid #384451;border-radius:8px;background:#15212c;padding:14px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}.flex-lookup span{font-size:11px;color:#b7b6b8}.flex-lookup #flex-result{flex-basis:100%;font-size:12px;line-height:1.6;color:#d3e8f1}.flex-lookup button:disabled{opacity:.6;cursor:wait}

.company-login-screen{max-width:470px;margin:8vh auto;padding:30px}.company-login-screen .showtime-logo{width:260px;max-width:100%;margin-bottom:32px}.company-login-screen h1{font-size:30px}.company-login-screen form{display:grid;gap:20px;margin:28px 0}.company-login-screen p{line-height:1.7}.company-login-screen .primary{min-height:46px}.company-login-screen #login-message{color:#ffb8ad;font-size:13px}.company-ready #company-login-screen{display:none}#company-account{font-size:12px;color:#b7b6b8;overflow-wrap:anywhere}.role-picker,.role-note,#driver-preview-wrap{display:none!important}

.catalog-form{display:grid;gap:12px;margin:16px 0}.catalog-form label{display:grid;gap:6px}.catalog-form input,.catalog-form select{width:100%}#shared-status{color:var(--teal,#0095C8)}

.roster-person{padding:10px 0;border-bottom:1px solid #34383e}.roster-person strong,.roster-person small{display:block}.roster-person small{margin-top:4px;color:#B7B6B8;overflow-wrap:anywhere}#roster-import-summary li{margin:8px 0}

.production-book-phone{max-width:390px;width:100%;background:#0c0e12;color:#f1f2f4;border:1px solid #353a44;border-radius:18px;padding:16px;margin:20px auto;box-sizing:border-box;font:16px/1.45 system-ui;text-align:left}.production-book-phone *{box-sizing:border-box}.production-book-phone .phone-book-header{display:grid;gap:6px;padding:8px 0 18px;border-bottom:2px solid #0095c8}.production-book-phone .phone-book-header span{color:#80d1ef;font-size:13px}.production-book-phone .row{border:1px solid #353a44;border-radius:12px;padding:18px;margin:14px 0;background:#12151a}.production-book-phone h3{font-size:19px;margin:8px 0 16px}.production-book-phone h4{font-size:15px}.production-book-phone dl{display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;line-height:1.45}.production-book-phone dt{color:#a3a9b4;font-size:14px}.production-book-phone dd{margin:0;overflow-wrap:anywhere;min-width:0}.production-book-phone a{color:#80d1ef;text-decoration:underline;overflow-wrap:anywhere}.production-book-phone .notes,.production-book-phone .movement-instructions{white-space:pre-wrap;overflow-wrap:anywhere}.production-book-phone .movement-time{font-weight:750;color:#80d1ef}.production-book-phone .driver-name{font-weight:750}.production-book-phone .leg-start{border-top:1px solid #353a44;padding-top:16px;margin-top:4px}.production-book-phone .crew-day{padding-top:18px}.production-book-phone .crew-day>h3{color:#80d1ef}.production-book-phone .crew-day>p{font-size:14px;color:#a3a9b4}

.movement-response{margin:18px 0;padding:14px;border:1px solid var(--border,#343c49);border-radius:10px}.movement-response:empty{display:none}.notification-preview{margin-top:14px;padding:14px;border:1px solid #3d4856;border-radius:8px}.notification-preview small{display:block;margin-top:7px;overflow-wrap:anywhere}.notification-preview pre{white-space:pre-wrap;font:inherit;line-height:1.55;overflow-wrap:anywhere}.ack-state{font-size:11px;color:#92d5e7;text-transform:none;letter-spacing:0}

#auto-book-status{padding:12px;border-left:4px solid #0095c8;background:#15232b;font-weight:650}#auto-book-status[data-status="Current"]{border-color:#61c4a4}#auto-book-status[data-status="Needs attention"],#auto-book-status[data-status="Check overdue"]{border-color:#efb24f;background:#2b2317}

/* Month schedule: seven columns on larger screens, readable daily cards on phones. */
.month-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:20px 0}.month-weekday{padding:10px;color:var(--muted,#b7b6b8);font-weight:700}.month-day{min-width:0;background:#15181e;border:1px solid #343b45;border-radius:10px;padding:8px;min-height:150px}.month-day.outside-month{opacity:.48}.month-day.current-day{border:2px solid #0095c8}.month-date{width:100%;text-align:left;font-weight:700;padding:8px;margin-bottom:8px}.month-entries{max-height:380px;overflow:auto}.month-booking{width:100%;text-align:left;box-sizing:border-box;margin:0 0 8px;padding:10px;min-width:0}.month-booking strong,.month-booking span,.month-booking small{display:block;overflow-wrap:anywhere}.month-booking strong{font-size:14px;line-height:1.35}.month-booking .movement,.month-booking .driver,.month-booking .month-vehicle{font-size:13px;line-height:1.4}.month-empty{display:block;padding:10px 4px;color:#939ba6;font-size:13px}.month-vehicle{font-weight:700;color:#7dd3eb}
@media(max-width:1000px) and (min-width:701px){.month-calendar{gap:4px}.month-day{padding:4px}.month-booking{padding:6px}.month-booking strong{font-size:13px}.month-date{font-size:12px;padding:5px}}
@media(max-width:700px){.month-calendar{grid-template-columns:1fr}.month-weekday,.month-day.outside-month{display:none}.month-day{min-height:0}.month-entries{max-height:none}.month-booking strong{font-size:16px}.month-booking .movement,.month-booking .driver,.month-booking .month-vehicle{font-size:15px}}

/* Busy-day summaries affect Month view only. */
#month-calendar .month-entries{max-height:none;overflow:visible}#month-calendar .month-compact{padding:8px;margin-bottom:6px}#month-calendar .month-compact strong{font-size:13px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}#month-calendar .month-compact .month-vehicle{font-size:13px}#month-calendar .month-compact-detail{font-size:11px;line-height:1.4}#month-calendar .month-compact-time{font-size:12px;color:#b7b6b8}.month-day-count,.month-more{width:100%;text-align:left;background:#12323f;border:1px solid #24647c;color:#9ee0f3;border-radius:6px;font-size:12px;padding:8px;margin:0 0 8px;white-space:normal}.month-more{font-weight:700}.month-day-dialog{width:min(1200px,96vw);max-width:96vw;max-height:90vh;overflow:auto;border:1px solid #465361;border-radius:14px;padding:24px;background:#101319;color:#f0f2f5}.month-day-dialog::backdrop{background:#000a}.month-day-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.month-day-header h2{margin:5px 0;font-size:24px}.month-day-list{display:grid;gap:10px}.month-full-row{display:grid;grid-template-columns:110px minmax(180px,2fr) minmax(150px,1.4fr) minmax(120px,1fr) 110px;gap:16px;width:100%;text-align:left;align-items:start;padding:16px;border:1px solid #3c4652;border-left:4px solid #0095c8;border-radius:8px;background:#191e27;color:#f0f2f5}.month-full-row:hover{background:#222c38}.month-full-row>div{min-width:0}.month-full-row span,.month-full-row small,.month-full-row strong{display:block;overflow-wrap:anywhere;line-height:1.5}.month-full-row small{font-size:11px}.month-full-row strong{font-size:15px}.month-full-row span{font-size:14px}.month-day-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
@media(max-width:850px){.month-full-row{grid-template-columns:1fr 2fr}.month-day-dialog{padding:16px}.month-day-header h2{font-size:20px}}
@media(max-width:500px){.month-full-row{grid-template-columns:1fr}.month-day-footer{flex-wrap:wrap}}

/* Weekly cards show authorized movement notes; full text remains in Trip details. */
#board .booking .booking-notes{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;overflow-wrap:anywhere;white-space:pre-line;font-size:12px;line-height:1.5;color:#e0e3e7;border-top:1px solid #52616b;margin-top:9px;padding-top:7px;font-weight:400}

.fleet-roster-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #353a44}.fleet-roster-row span{overflow-wrap:anywhere}.fleet-roster-row button{flex:none;padding:7px 12px}#fleet-edit-status{grid-column:1/-1}

/* Alternative schedule layouts keep the existing desktop grid intact. */
.schedule-layout-help{margin:0 0 16px}.schedule-day-picker{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:22px}.schedule-day-button{padding:10px 2px;min-width:0;min-height:62px;text-align:center}.schedule-day-button span,.schedule-day-button strong{display:block}.schedule-day-button span{font-size:12px;color:#b7b6b8}.schedule-day-button strong{font-size:20px;margin-top:4px}.schedule-day-button[aria-pressed=true]{background:#123344;border-color:#0095c8;box-shadow:inset 0 -3px #0095c8}.schedule-day-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.schedule-day-heading h2{margin:0;font-size:21px}.schedule-day-heading .muted{margin:0;white-space:nowrap}.schedule-day-section{margin-bottom:26px}.schedule-card-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));gap:12px}.schedule-card{margin:0;padding:18px;min-width:0;border-radius:10px;border-left-width:4px}.schedule-card strong{font-size:19px;line-height:1.4}.schedule-card .job-number{font-size:15px;margin:8px 0 12px}.schedule-card .movement,.schedule-card .driver{display:block;font-size:16px;line-height:1.5}.schedule-card .state{display:block;font-size:12px;margin-top:14px}.schedule-card-vehicle{display:block;font-size:15px;font-weight:700;color:#80d1ef;margin-bottom:10px;overflow-wrap:anywhere}.schedule-card-dates{display:block;color:#b7b6b8;margin-top:8px}.schedule-card .booking-notes{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;white-space:pre-line;overflow-wrap:anywhere;font-size:15px;line-height:1.5;color:#e0e3e7;border-top:1px solid #52616b;margin-top:12px;padding-top:10px}.schedule-card>*{overflow-wrap:anywhere}.schedule-add{margin-top:12px;min-height:44px}.schedule-empty{border:1px dashed #414650;border-radius:10px;padding:20px;color:#b7b6b8;margin:0}.schedule-card .ack-state{display:block;font-size:13px;margin-top:10px}
@media(max-width:1100px){#weekly .week-toolbar{align-items:stretch}#weekly .week-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:10px}#weekly .week-controls label{min-width:0;max-width:none;font-size:12px}#weekly .week-controls input,#weekly .week-controls select{width:100%;max-width:none;min-width:0;font-size:16px;min-height:44px}#weekly .week-controls>button{min-height:44px}#weekly .week-switch{justify-content:space-between;width:100%}#weekly .week-switch button{min-width:44px;min-height:44px}}
@media(max-width:700px){.schedule-card-list{grid-template-columns:1fr}.schedule-day-heading h2{font-size:19px}.schedule-day-picker{gap:4px}.schedule-day-button span{font-size:11px}.schedule-day-button strong{font-size:18px}.app-header .showtime-logo{width:130px}.brand-title{font-size:12px}.brand small{font-size:10px}.app-header{gap:10px}.app-header .brand{gap:10px}.app-header .brand-title{padding-left:10px}.app-header #company-account{font-size:12px;overflow-wrap:anywhere}.main-nav{gap:18px}.main-nav button{min-height:44px}.schedule-card{padding:16px}.schedule-card .driver{display:block!important}.schedule-card .state{display:block!important}#weekly .section-heading{margin-top:22px}#weekly .legend{font-size:12px}.board-footer{font-size:12px;line-height:1.5}footer{flex-wrap:wrap;gap:12px;line-height:1.5}}

/* Give native phone date controls their own row; their intrinsic width varies in Safari. */
@media(max-width:700px){#weekly .week-controls .schedule-date-control{grid-column:1/-1;width:100%;overflow:hidden}#weekly .week-controls #jump{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-inline-size:0;max-inline-size:100%;overflow:hidden;text-align:left}#weekly .week-controls #jump::-webkit-date-and-time-value{text-align:left;min-width:0}#weekly .week-controls>button{width:100%;min-width:0;white-space:normal}#weekly .week-controls>label{overflow:hidden}#weekly .week-controls select{box-sizing:border-box;min-inline-size:0;max-inline-size:100%}}

/* Compact weekly list: one movement per row, with vehicle separated from job details. */
.schedule-agenda-list{grid-template-columns:1fr}.schedule-agenda-card{display:grid;grid-template-columns:120px minmax(0,1fr);gap:4px 16px;padding:14px;align-content:start}.schedule-agenda-card .schedule-card-vehicle{grid-column:1;grid-row:1/9;margin:0;font-size:14px}.schedule-agenda-card>strong,.schedule-agenda-card>.job-number,.schedule-agenda-card>.movement,.schedule-agenda-card>.driver,.schedule-agenda-card>.schedule-card-dates,.schedule-agenda-card>.booking-notes,.schedule-agenda-card>.state,.schedule-agenda-card>.ack-state{grid-column:2;margin:0}.schedule-agenda-card>strong{font-size:16px}.schedule-agenda-card>.job-number{font-size:13px}.schedule-agenda-card>.movement,.schedule-agenda-card>.driver,.schedule-agenda-card>.booking-notes{font-size:14px}.schedule-agenda-card>.booking-notes{padding-top:6px;margin-top:4px}.schedule-agenda-card>.state,.schedule-agenda-card>.ack-state{font-size:11px}.schedule-agenda-section{margin-bottom:18px}.schedule-agenda-section .schedule-day-heading{margin-bottom:8px;align-items:center}.schedule-agenda-section .schedule-day-heading h2{font-size:18px}.schedule-agenda-section .schedule-day-heading>.muted{margin-left:auto;font-size:12px}.schedule-agenda-section .schedule-add{margin:0;padding:6px;min-width:44px}.schedule-agenda-section.schedule-day-empty{border-bottom:1px solid #303640;margin-bottom:10px;padding-bottom:8px}
@media(max-width:700px){.schedule-agenda-card{grid-template-columns:82px minmax(0,1fr);gap:4px 10px;padding:12px}.schedule-agenda-card .schedule-card-vehicle{font-size:12px}.schedule-agenda-section .schedule-day-heading h2{font-size:16px}.schedule-agenda-section .schedule-day-heading>.muted{font-size:11px}#weekly #board{min-width:1150px}#weekly #board.compact{min-width:940px}#weekly #board th:first-child{width:100px}#weekly #board .vehicle{padding:12px 8px}#weekly #board .vehicle strong{font-size:14px}#weekly #board .vehicle small{font-size:11px}#weekly #board th small{font-size:16px}#weekly #board td{padding:6px}#weekly #board.compact .booking .driver,#weekly #board.compact .booking .state{display:block}#weekly #board.compact .booking strong{font-size:13px}#weekly #board.compact .booking .job-number{margin-bottom:6px}}

@media(min-width:701px){.schedule-settings,.schedule-settings-fields{display:contents}.schedule-settings>summary{display:none}}
@media(max-width:700px){#weekly .week-controls .schedule-layout-control,#weekly .week-controls .schedule-settings{grid-column:1/-1;min-width:0;width:100%}.schedule-settings>summary{cursor:pointer;font-size:14px;min-height:44px;padding:12px;border:1px solid #414650;border-radius:8px;background:#191c21;color:#e0e3e7}.schedule-settings-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:12px}.schedule-settings-fields label{min-width:0}#weekly .week-controls .schedule-settings[open]>summary{border-color:#0095c8}}

/* Maintenance is a dated scheduling block, not a fleet-record edit. */
.maintenance-help{background:#342817;border:1px solid #8b6933;border-radius:8px;padding:12px;line-height:1.6;color:#f3d498}.fleet-row-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.fleet-row-actions button{min-height:40px}.booking.maintenance,.booking.maintenance[data-status=Confirmed]{background:#4a171d;border-color:#a84954;border-left-color:#ff727e}.booking.maintenance .state{color:#ffd5d8;font-weight:700}.schedule-settings-fields #maintenance-new{min-height:44px}.schedule-settings-fields #maintenance-new{grid-column:1/-1}
@media(max-width:500px){.fleet-roster-row{align-items:flex-start;flex-direction:column}.fleet-row-actions{justify-content:flex-start;width:100%}}

.month-full-row.month-maintenance{background:#4a171d;border-left-color:#ff727e}.month-full-row.month-maintenance .status{background:#651f29;color:#ffd5d8}

/* Keep the calendar close to the navigation without shrinking assignment text. */
.app-header{padding:10px 28px;gap:18px;min-height:88px;flex-wrap:wrap}
.app-header .showtime-logo{width:160px}
.app-header .brand{gap:18px;flex:none}
.app-header .brand-title{padding:8px 0 8px 18px;font-size:14px}
.app-header .brand small{margin-top:4px}
.app-header #company-account{margin-left:0;max-width:360px}
.main-nav{gap:26px}.main-nav button{padding:13px 0 11px;min-height:44px;font-size:14px}
.notice{margin-top:10px;padding:5px 12px;min-height:34px;line-height:1.4}
.notice button{min-height:28px;padding:4px}
#weekly .section-heading{margin:18px 0 14px;align-items:center;gap:12px}
#weekly .section-heading .eyebrow{display:none}
#weekly .section-heading h1{font-size:27px}
#weekly .section-heading .muted{margin-top:5px;font-size:12px}
#weekly .week-toolbar{gap:12px;margin-bottom:10px;align-items:end}
#weekly .week-controls{gap:8px;align-items:end}
#weekly .week-controls button,#weekly .week-controls input,#weekly .week-controls select{min-height:40px}
#weekly .schedule-layout-help{font-size:12px;margin-bottom:10px}
@media(min-width:1101px){
 #weekly .week-toolbar{display:grid;grid-template-columns:1fr}
 #weekly .week-switch{justify-content:flex-start;gap:12px}
 #weekly .week-controls{display:flex;flex-wrap:wrap;width:100%}
 #weekly .week-controls .schedule-date-control{width:150px}
 #weekly .week-controls .schedule-layout-control{width:135px}
 #weekly .week-controls input,#weekly .week-controls select{width:100%;max-width:none}
 #weekly .schedule-settings{display:block;margin-left:auto;min-width:0}
 #weekly .schedule-settings-fields{display:flex;align-items:end;gap:8px}
 #weekly .schedule-settings-fields label{width:145px;min-width:0}
 #weekly .schedule-settings-fields #maintenance-new{white-space:nowrap}
}
@media(min-width:701px) and (max-width:1100px){
 #weekly .week-controls{display:flex;flex-wrap:wrap;gap:8px}
 #weekly .week-controls>label{flex:1 1 150px}
 #weekly .week-controls>button{flex:0 0 auto;min-height:44px}
 #weekly .schedule-settings{display:block;flex:1 1 100%}
 #weekly .schedule-settings-fields{display:flex;gap:8px;align-items:end}
 #weekly .schedule-settings-fields label{flex:1;min-width:0}
 #weekly .schedule-settings-fields #maintenance-new{min-height:44px}
}
@media(max-width:700px){
 .app-header{padding:8px 16px;gap:8px;min-height:0}
 .app-header .brand{gap:10px}.app-header .showtime-logo{width:108px}
 .app-header .brand-title{font-size:11px;padding-left:10px}
 .app-header .brand small{font-size:9px}
 .app-header #company-account{flex:1 1 100%;font-size:11px}
 .app-header #company-signout,.app-header #new{min-height:40px;padding:8px 12px}
 .main-nav{gap:18px}.main-nav button{font-size:13px}
 .notice{font-size:11px;gap:6px;margin-top:8px;padding:6px 10px}
 .notice button{margin-left:auto}
 #weekly .section-heading{margin:14px 0 12px;gap:8px;align-items:start}
 #weekly .section-heading h1{font-size:24px}
 #weekly .legend{font-size:11px;gap:10px}
 #weekly .week-toolbar{gap:10px}
 #weekly .week-controls{gap:8px}
}

.workspace-notice{display:block;padding:0 12px}
.workspace-notice>summary{cursor:pointer;min-height:34px;padding:8px 0;font-size:12px;font-weight:600;color:#c7d8df}
.workspace-notice>summary span{font-weight:400;color:#b7b6b8}
.workspace-notice-content{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:0 0 8px;font-size:12px}
.workspace-notice-content button{margin-left:auto}
@media(max-width:700px){.workspace-notice>summary{font-size:11px}.workspace-notice-content{font-size:11px}#weekly .week-controls button,#weekly .week-controls input,#weekly .week-controls select{min-height:44px}}

@media(min-width:701px) and (max-width:850px){#weekly .section-heading{align-items:flex-start}}

.driver-row-actions{display:flex;gap:8px;margin-top:10px}.driver-row-actions button{min-height:40px;padding:7px 12px}#driver-delete-error{color:#ffb8ad}#driver-delete-dialog p{line-height:1.6}

.catalog-form label.check{display:flex;align-items:center;gap:9px}.catalog-form label.check input{width:16px;flex:none}#rental-fields{grid-template-columns:repeat(2,minmax(0,1fr))}#rental-fields>p{grid-column:1/-1}@media(max-width:700px){#rental-fields{grid-template-columns:1fr}}

.booking.tour-reservation{background:#26203c;border-left-color:#b09aef}.booking.tour-reservation:hover{background:#33294d}.tour-movement-row{display:block;width:100%;text-align:left;margin:8px 0;line-height:1.5}#tour-movement-panel{margin-top:20px;padding:16px;border:1px solid #645184;border-radius:10px}#tour-add-movement{margin-top:10px}#tour-cancel-label{margin-top:14px}#tour-new{min-height:44px}

/* Keep all scheduling entry actions together in the header. */
.header-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-left:auto;max-width:100%}
.app-header .header-actions .primary{margin-left:0;min-height:44px;padding:10px 14px;white-space:nowrap}
.header-actions:has(>button[hidden]):not(:has(>button:not([hidden]))){display:none}
@media(max-width:1100px){.header-actions{flex-basis:100%}}
@media(max-width:600px){.header-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:8px}.header-actions #maintenance-new{grid-column:1/-1}.app-header .header-actions .primary{width:100%;font-size:13px;padding:10px}}

/* Account controls stay together at the upper right. */
.app-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:18px;row-gap:6px}
.app-header .brand{grid-column:1;grid-row:1/3}
.app-header .prototype{grid-column:2;grid-row:1;justify-self:end;margin-left:0}
.header-account{grid-column:3;grid-row:1;display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0;max-width:100%}
.app-header .header-account #company-account{flex:initial;min-width:0;max-width:360px}
.header-account #company-signout{flex:none;white-space:nowrap;min-height:40px;padding:8px 12px}
.app-header .header-actions{grid-column:2/4;grid-row:2;justify-self:end;margin-left:0}
@media(max-width:1100px){.app-header{grid-template-columns:auto minmax(0,1fr)}.app-header .prototype{display:none}.header-account{grid-column:2}.app-header .header-actions{grid-column:2}}
@media(max-width:700px){.app-header{display:flex;flex-wrap:wrap}.header-account{flex:1 1 100%;margin-left:auto}.app-header .header-actions{flex-basis:100%;width:100%}.app-header .header-account #company-account{flex:1 1 auto;text-align:right}}

.venue-section{padding:14px;border:1px solid #414650;border-radius:8px;min-width:0}.venue-section h3{margin:0 0 12px}.venue-section p{line-height:1.6}.venue-section a{overflow-wrap:anywhere}.venue-section summary{cursor:pointer;padding:10px 0}.venue-section button{margin:8px 0}.venue-result{border-top:1px solid #414650;padding:12px 0}.venue-result p{margin:6px 0}.maps-attribution{font-weight:700;color:white}

.invite-access-panel{margin:20px 0;padding:20px;border:1px solid var(--line,#353d47);border-radius:12px}.invite-person-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.invite-row-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0}.invite-member-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.invite-member{border:1px solid #353d47;border-radius:9px;padding:14px;overflow-wrap:anywhere}.invite-member p{margin:7px 0}.invite-member button{font-size:14px;min-height:44px}#invite-access-status{overflow-wrap:anywhere}@media(max-width:650px){.invite-person-form,.invite-member-list{grid-template-columns:minmax(0,1fr)}.invite-access-panel{padding:14px}}
