:root{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;color:#29343a;background:#f7f6f2;font-size:17px}*{box-sizing:border-box}body{margin:0}header{background:#d66b1f;color:white;padding:16px max(18px,calc((100vw - 1180px)/2));display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap}header a{color:white;text-decoration:none}.brand a{font-size:1.5rem;font-weight:800}.brand small{display:block;font-size:.75rem;font-weight:400}nav{display:flex;gap:14px;align-items:center;flex-wrap:wrap}nav form{margin:0}main{max-width:1180px;margin:auto;padding:26px 18px 50px}h1{font-size:2rem;margin:12px 0}h2{font-size:1.4rem;margin:25px 0 12px}h3{font-size:1.1rem;margin:8px 0}.muted,small{color:#67727a}.stats,.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:20px 0}.metric,.card,.panel{background:white;border:1px solid #e7e2dc;border-radius:16px;padding:22px;box-shadow:0 3px 12px #00000008}.metric{display:block;text-decoration:none;color:#29343a}.metric strong{display:block;font-size:2rem;color:#b54c0d}.card{text-decoration:none;color:inherit;transition:transform .15s}.card:hover{transform:translateY(-2px);border-color:#d66b1f}.card p{min-height:46px;color:#5f6970}.number{display:inline-block;color:#b54c0d;font-weight:800}.tag{display:inline-block;background:#f6e8db;color:#8c480f;padding:5px 10px;border-radius:12px;font-size:.75rem;margin:3px}.panel{margin:18px 0}.narrow{max-width:480px;margin:50px auto}.notice,.flash{background:#fff1da;padding:16px;border-radius:12px;margin:18px 0}label{display:block;font-weight:600;margin:10px 0}input,textarea,select{display:block;width:100%;font:inherit;padding:11px;border:1px solid #b9c0c4;border-radius:8px;margin-top:5px}button{background:#cf641c;border:0;border-radius:9px;padding:11px 17px;color:white;font:inherit;cursor:pointer;font-weight:700}button.secondary{background:#eae6e1;color:#333}.inline{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.inline>label,.inline>input{flex:1;min-width:170px}.line{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid #e6e6e6}.line p{margin:3px 0}.list{margin:16px 0}.check{display:flex;align-items:center;gap:12px;padding:11px;border-bottom:1px solid #eee}.check input{width:23px;height:23px;margin:0}.entry{border-bottom:1px solid #ddd;padding:15px 0}.entry p{white-space:pre-wrap}table{width:100%;border-collapse:collapse}td,th{padding:13px;text-align:left;border-bottom:1px solid #ddd}footer{text-align:center;padding:24px;color:#788087;font-size:.8rem}@media(max-width:640px){header{padding:15px}main{padding:15px}h1{font-size:1.6rem}.line{align-items:start;flex-direction:column}}

/* V1.2: readable navigation, responsive original logo and visible focus. */
:root{font-size:18px;color:#243139}body{line-height:1.6}header{background:#fff;color:#243139;border-bottom:3px solid #bd5315;display:block}.brand{max-width:800px;margin:0 auto 18px}.brand a{display:block}.brand-logo{display:block;width:100%;height:auto}.brand-caption{display:block;color:#39464f;font-size:1rem;text-align:center;margin-top:8px;font-weight:600}nav{gap:10px}nav>a{color:#253943;background:#f0f3f6;border:1px solid #c9d2d9;border-radius:8px;padding:10px 14px;font-weight:650;min-height:46px}nav>a:hover{background:#e1e8f0;text-decoration:underline}button{background:#a74712;min-height:46px}a{color:#224ca1;text-underline-offset:3px}.muted,small,footer{color:#505e67}.metric strong,.number{color:#a74712}.tag{font-size:.88rem}fieldset{border:1px solid #c3ccd2;border-radius:10px;padding:16px;min-width:0}fieldset:disabled{opacity:.8}button:disabled{cursor:not-allowed}.check{min-height:52px}.check input{accent-color:#a74712;flex-shrink:0}.panel{overflow-x:auto}td,th{vertical-align:top}th{background:#f0f3f6}tbody tr:nth-child(even){background:#fafbfc}input,textarea,select{color:#243139;background:#fff}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #244fc0;outline-offset:3px}h1,h2,h3{line-height:1.3}p{overflow-wrap:anywhere}.selected-date{font-size:1.1rem}@media(max-width:640px){nav>a{flex:1 1 140px;text-align:center}.brand-caption{font-size:.9rem}.panel{padding:16px}td,th{padding:10px}h1{font-size:1.6rem}}

/* V1.4: weekly capacity and printable monthly attendance. */
.week-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}.week-day{margin:0;min-width:0}.week-day h2{margin-top:0}.week-navigation{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.guest-summary{padding-left:22px}.guest-summary li{padding:6px 0;border-bottom:1px solid #e3e7eb}.capacity-warning{background:#fff0ed;color:#8d2118;padding:12px;border:2px solid #a62c21;border-radius:8px}.capacity-free{background:#edf5ef;color:#205630;padding:12px;border:1px solid #8ab797;border-radius:8px}.record-table-wrap{overflow-x:auto}.record-table{table-layout:fixed;min-width:850px;font-size:14px}.record-table th:first-child{width:200px;text-align:left;overflow-wrap:anywhere}.record-table td,.record-table th{padding:8px 3px;text-align:center;border:1px solid #a3adb4}.record-table th:last-child{width:65px}.record-table .closed-cell{background:#e2e5e8}.record-legend,.record-closures{font-size:.9rem}.record-signature{margin-top:24px}.record-sheet h2{margin-top:0}
@page{size:A4 landscape;margin:12mm}
@media print{body{background:white;color:#000;font-size:11pt;line-height:1.35}header{padding:0 0 3mm;border-bottom:1px solid #777}.brand{max-width:135mm;margin:0 auto}.brand-caption{font-size:9pt;margin:0}nav,footer,.no-print,.flash{display:none!important}main{max-width:none;padding:0;margin:0}.record-sheet{border:0;border-radius:0;padding:0;box-shadow:none;margin:5mm 0 0;overflow:visible;break-before:page}.record-sheet:first-of-type{break-before:auto}.record-sheet h2{font-size:15pt;margin:0 0 3mm}.record-sheet p{margin:2mm 0}.record-table-wrap{overflow:visible}.record-table{min-width:0;width:100%;font-size:10.5pt}.record-table th:first-child{width:48mm}.record-table th:last-child{width:16mm}.record-table td,.record-table th{padding:2mm 1mm;color:#000;background:white;border:1px solid #777}.record-table .closed-cell{background:#eee;print-color-adjust:exact}.record-table thead{display:table-header-group}.record-table tr{break-inside:avoid}.record-legend,.record-closures,.record-sheet .muted{font-size:9pt;color:#222}.record-signature{margin-top:7mm;break-inside:avoid}}
@media print{.brand{max-width:110mm}.record-table{font-size:10pt;line-height:1.2}.record-table td,.record-table th{padding:1mm .8mm}.record-legend,.record-closures,.record-sheet .muted{font-size:8.5pt;line-height:1.2}.record-signature{margin-top:4mm}.record-sheet h2{margin-bottom:2mm}}

/* V1.7 master data and contacts */
.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.contact-card{padding:16px 0;border-bottom:1px solid #cbd2d8}.contact-card:last-child{border-bottom:0}.contact-details{display:grid;grid-template-columns:110px minmax(0,1fr);gap:6px 16px}.contact-details dt{font-weight:650}.contact-details dd{margin:0;overflow-wrap:anywhere}.contact-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.contact-actions form{margin:0}.pre-wrap{white-space:pre-wrap}@media(max-width:640px){.profile-grid{grid-template-columns:1fr}.contact-details{grid-template-columns:1fr;gap:2px}.contact-details dd{margin-bottom:9px}}

/* V1.8 manual transport */
.ride-card h3{font-size:1.2rem}.transport-table{table-layout:fixed}.transport-table th:nth-child(1){width:5%}.transport-table th:nth-child(2){width:9%}.transport-table th:nth-child(3){width:17%}.transport-table th:nth-child(4){width:26%}.transport-table th:nth-child(5){width:18%}.transport-table td,.transport-table th{overflow-wrap:anywhere}.transport-sheet{overflow-x:auto}.transport-table{min-width:850px}@media print{.transport-sheet{overflow:visible}.transport-table{min-width:0;font-size:10pt;line-height:1.3}.transport-table td,.transport-table th{padding:2mm;border:1px solid #777}.transport-table thead{display:table-header-group}.transport-table tr{break-inside:avoid}.transport-sheet h3{break-after:avoid}.transport-sheet .capacity-warning{color:#000;border:2px solid #000;background:#fff}.transport-sheet .muted{font-size:9pt}}
.transport-table th:nth-child(2){width:12%;white-space:nowrap}.transport-table th:nth-child(3){width:16%}.transport-table th:nth-child(4){width:24%}

/* V1.13 tour overview */
.overview-actions{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:18px}
.tour-stop{display:grid;grid-template-columns:145px minmax(0,1fr) minmax(0,1fr);gap:22px;padding:20px 0;border-top:1px solid #a3adb4;overflow-wrap:anywhere}
.tour-stop h3{font-size:1.05rem;margin:0 0 8px}.tour-stop p{margin:0 0 10px}.tour-overview h2{overflow-wrap:anywhere}
@media(max-width:700px){.tour-stop{grid-template-columns:1fr;gap:12px}.overview-actions{align-items:start}}
@media print{.tour-overview{border:0;box-shadow:none;padding:0;margin:7mm 0}.tour-overview h2{break-after:avoid}.tour-stop{grid-template-columns:30mm minmax(0,1fr) minmax(0,1fr);gap:5mm;padding:4mm 0;break-inside:avoid}.tour-overview .capacity-warning,.tour-overview .capacity-free{background:white;color:black;border:1px solid black;padding:2mm}.tour-stop h3{font-size:11pt}.tour-overview .muted{color:#222}}

/* V1.14 quick assignment */
.bulk-actions{display:flex;gap:12px;flex-wrap:wrap}.ride-card.ride-selected{border:2px solid #275a86;box-shadow:0 0 0 2px #dcebf7}.bulk-panel{border:2px solid #a6bdce}#bulk-count{font-weight:700}#bulk-message{padding:12px;background:#edf3f7;border-radius:6px;color:#173750}
@media print{.bulk-panel,.ride-pick{display:none}}

.transport-week-day{overflow-wrap:anywhere}.transport-week-day h2{font-size:1.2rem}.transport-week-day .capacity-warning{margin:10px 0}

/* V1.16 unsaved form edits */
.unsaved-notice{position:sticky;top:8px;z-index:10;background:#fff6d9;color:#543900;border:2px solid #a97908;border-radius:8px;padding:12px 16px;box-shadow:0 2px 8px #0002}.unsaved-notice[hidden]{display:none}.has-unsaved-changes{border-left:3px solid #a97908;padding-left:12px}

.guest-result{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #cbd2d8;padding:18px 0;overflow-wrap:anywhere}.guest-result h3{margin:0 0 8px}.guest-result p{margin:6px 0}.guest-result form{flex-shrink:0}@media(max-width:640px){.guest-result{display:block}.guest-result form{margin-top:12px}}

.led-preview{display:flex;align-items:center;gap:12px}.led-dot{display:inline-block;width:24px;height:24px;border-radius:50%;border:2px solid #39434a;flex:0 0 24px}.led-green{background:#138342}.led-yellow{background:#f0bb25}.led-red{background:#bd3028}.led-off{background:#d5dadd}

.temperature-coverage-table{min-width:850px}.temperature-coverage-table th,.temperature-coverage-table td{vertical-align:top;min-width:150px}.temperature-coverage-table th:first-child{min-width:120px}.temperature-coverage-table .capacity-warning{display:inline-block;padding:4px 7px;margin-top:4px;font-size:.85rem}

/* V1.80: menu groups from the uploaded V13 cockpit. */
.mainnav{gap:8px;align-items:flex-start;position:relative;z-index:20}.navgroup{position:relative}
.navgroup summary{list-style-position:inside;cursor:pointer;color:#253943;background:#f0f3f6;border:1px solid #aebdc8;border-radius:8px;padding:10px 14px;font-weight:650;min-height:48px}
.navgroup[open] summary{background:#dae7f2;border-color:#244fc0}.navmenu{position:absolute;left:0;top:calc(100% + 5px);min-width:260px;max-width:340px;background:#fff;border:1px solid #aebdc8;border-radius:10px;padding:8px;box-shadow:0 8px 24px #0003;z-index:30}
.navmenu a{display:block;color:#253943;padding:10px 12px;border-radius:6px;min-height:46px;overflow-wrap:anywhere}
.navmenu a:hover,.navmenu a[aria-current=page]{background:#e3edf6;color:#153d80}.userbar{font-size:.9rem;color:#475761;margin:14px 0 0}
summary:focus-visible{outline:3px solid #244fc0;outline-offset:3px}.backup-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:16px}.backup-list .panel{margin:0}.backup-path,.backup-list small{overflow-wrap:anywhere}
@media(max-width:760px){.mainnav{display:block}.navgroup{margin:6px 0}.navmenu{position:static;max-width:none;min-width:0;margin:4px 0 8px;box-shadow:none}.mainnav>form{margin-top:10px}}
@media print{.userbar{display:none}}

/* V1.86: local flyer distribution planning. */
.marketing-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.marketing-eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;font-weight:750;color:#8d411b;margin:4px 0}
.marketing-heading h1{margin:0}.marketing-heading p{margin:6px 0}
.marketing-button{display:inline-block;background:#a74712;color:white!important;padding:12px 18px;border-radius:9px;text-decoration:none;font-weight:700}
.marketing-intro{border-left:5px solid #a74712}.marketing-intro h2{margin-top:0}
.marketing-stats .metric{box-shadow:none}.marketing-stats small{display:block}
.marketing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.marketing-grid .marketing-location{padding:0;margin:0;overflow:hidden;display:flex;flex-direction:column}
.marketing-photo{height:210px;background:#e9ede9;border-bottom:1px solid #d3dbd3}
.marketing-photo img{width:100%;height:100%;object-fit:contain;background:#e9ede9}
.marketing-photo-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#425348}
.marketing-photo-empty>span:first-child{font-size:2.4rem;line-height:1.2;color:#62776a}
.marketing-photo-empty a{font-size:.88rem}.marketing-location-body{padding:22px;display:flex;flex-direction:column;flex:1;overflow-wrap:anywhere}
.marketing-location-body h3{font-size:1.35rem;line-height:1.3;margin:4px 0 12px}
.marketing-tags{margin:0 0 8px}.marketing-tags .tag{margin-left:0;background:#edf2ee;color:#304f39}
.marketing-address{margin:0 0 8px}.marketing-quantity{display:flex;gap:14px;align-items:center;padding:14px 0;margin-top:14px;border-top:1px solid #e1e5df}
.marketing-quantity>strong{font-size:2.2rem;line-height:1;color:#91400f}.marketing-quantity span{line-height:1.3}
.marketing-permission{font-weight:650;background:#fff1d9;border:1px solid #d6b976;color:#5c4313;border-radius:8px;padding:7px 10px;margin:4px 0 12px;align-self:flex-start}
.marketing-approved{background:#e7f4e9;color:#21522c;border-color:#9abda1}.marketing-extra{white-space:pre-wrap;margin:0 0 10px}
.marketing-actions{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:auto;padding-top:18px;border-top:1px solid #e1e5df}
.marketing-actions form{margin:0}.marketing-edit-photo{max-width:100%;max-height:320px;object-fit:contain;border-radius:10px}
@media(max-width:720px){.marketing-grid{grid-template-columns:minmax(0,1fr)}.marketing-photo{height:180px}.marketing-location-body{padding:18px}}
@media print{.marketing-actions,.marketing-button,.marketing-photo-empty a{display:none}.marketing-grid{display:block}.marketing-location{break-inside:avoid;margin-bottom:16px!important}.marketing-photo{height:100px}}

.marketing-due{padding:10px 14px;background:#edf3f7;border-left:4px solid #3a627e;border-radius:5px;color:#263f51}
.marketing-overdue{background:#fff0e9;border-color:#aa431b;color:#793112}
.marketing-followup{border-top:4px solid #3a627e}.marketing-complete{margin-top:16px}
.marketing-visit{border-top:1px solid #cad2d6;padding:20px 0}.marketing-visit h3{margin:0}
.marketing-void{border-left:4px solid #a45c40;padding-left:16px;background:#faf5f2}
.tv-post h2{margin-top:4px}.tv-post{margin:0}.tv-clip video{display:block;width:100%;max-height:560px;background:#15232c;border-radius:10px;margin:16px 0}
.tv-clip{overflow-wrap:anywhere}.tv-playback-error[hidden],[data-upload-status][hidden]{display:none}
button:disabled{opacity:.6;cursor:wait}
.tv-post-poster{display:block;width:100%;height:220px;object-fit:contain;background:#15232c;border-radius:9px;margin-bottom:16px}
.tv-poster-preview{display:block;max-width:100%;max-height:260px;object-fit:contain;margin:16px 0;border:1px solid #c1ccd3;border-radius:8px}
.tv-poster-preview[hidden]{display:none}.tv-rights-hint{color:#794019;border-left:3px solid #a86229;padding-left:12px}
.tv-keywords{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0}.tv-keywords a{margin:0;text-decoration:underline}
.newspaper-ad-stats small{display:block}
.tv-print-filters,.tv-print-snapshot{padding:12px 16px;border:1px solid #becbd4;border-radius:8px;background:#f0f4f6}
.tv-print-entry{border-top:2px solid #647987;margin-top:24px;padding-top:12px;overflow-wrap:anywhere}
.tv-print-link{overflow-wrap:anywhere}.tv-print-review{border-left:4px solid #a45c28;padding-left:14px}
@media print{
  .tv-print-report{font-size:10pt;line-height:1.4;color:#000}
  .tv-print-report h1{font-size:17pt}.tv-print-entry h2{font-size:12pt;break-after:avoid}
  .tv-print-entry h3{font-size:10.5pt;break-after:avoid}
  .tv-print-entry p{margin:2mm 0}.tv-print-entry{break-inside:auto;margin-top:5mm;padding-top:3mm}
  .tv-print-filters,.tv-print-snapshot{background:white;border:1px solid #777;padding:3mm;border-radius:0}
  .tv-print-note,.tv-print-report .muted{color:#222;font-size:9pt}
  .tv-print-review{border-color:#333}.tv-print-review ul{margin-top:1mm}
}

.newspaper-upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start}.newspaper-upload-grid>.panel{min-width:0}.newspaper-file{overflow-wrap:anywhere}.newspaper-file-preview{display:block;width:100%;max-height:360px;object-fit:contain;background:#f2f4f6;border:1px solid #cbd5e1;border-radius:8px;margin:.75rem 0}.newspaper-upload-grid input[type=file]{max-width:100%}@media(max-width:800px){.newspaper-upload-grid{grid-template-columns:1fr}}

.press-selection-tools{position:sticky;top:0;z-index:5;background:#f8fafc;border:1px solid #94a3b8;border-radius:8px;padding:12px 16px;margin:20px 0}.press-selection-tools h2{margin:0;font-size:1.15rem}.press-selection-tools p{margin:8px 0}.press-selection-tools .overview-actions{margin-bottom:0}.press-pick{display:flex;align-items:center;gap:8px;font-weight:700;margin-bottom:16px}.press-pick input[type=checkbox]{width:20px;height:20px;margin:0;flex:0 0 auto}@media print{.press-selection-tools,.press-pick{display:none}}

.press-review-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.press-review-count{display:block;padding:14px;border:1px solid #a3adb4;border-radius:8px;color:#173b65;background:#f1f5f9;text-decoration:none}.press-review-count strong{display:block;font-size:1.8rem;margin-bottom:8px}.press-review-count:hover{text-decoration:underline}.press-review-note{border-left:3px solid #a76527;padding-left:12px;color:#704311}@media(max-width:800px){.press-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:420px){.press-review-grid{grid-template-columns:1fr}}

/* Direct links from the daily review keep complete, versioned forms. */
.line:target,.ride-card:target{outline:3px solid #244fc0;outline-offset:4px;scroll-margin-top:24px}.line:target{background:#f0f5fc;padding:16px}
