:root{color-scheme:light;--paper:#f5f1e9;--ink:#242321;--gold:#c49a3a}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 system-ui,Arial,sans-serif}a{color:inherit;text-underline-offset:3px}header{padding:20px 4%;background:var(--ink);color:var(--paper);display:flex;justify-content:space-between;align-items:center;gap:20px}header>a{font:italic 27px Georgia,serif;text-decoration:none}small{font-size:12px}header small{font:12px system-ui;display:block;color:#d6c49c}nav{display:flex;align-items:center;gap:22px}nav form{margin:0}main{max-width:1450px;padding:35px 4%;margin:auto}h1{font:40px/1.1 Georgia,serif;margin:0 0 24px}h2{font:25px/1.2 Georgia,serif;margin:0 0 20px}h3{font-size:17px}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:2px;color:#8c6a21}.login{max-width:430px;margin:5vh auto;background:white;padding:32px;border:1px solid #ddd4c5}.panel{background:white;border:1px solid #ddd4c5;padding:25px;margin:24px 0}label{display:flex;flex-direction:column;gap:7px;margin-bottom:17px;font-size:13px}input,select,textarea{width:100%;padding:11px;border:1px solid #b8b0a3;border-radius:3px;background:white;color:var(--ink);font:16px system-ui}textarea{resize:vertical}input[type=number]{min-width:0}button,.button{padding:11px 17px;border:1px solid #b8b0a3;background:transparent;cursor:pointer;font:14px system-ui;text-decoration:none;display:inline-block;color:inherit}button:hover,.button:hover{border-color:var(--gold);background:#eee5d2}.primary{background:var(--gold);border-color:var(--gold);color:#181714}.muted{font-size:12px;color:#6a6358}.error,.success,.hint{padding:16px 20px;background:#f6ded8;border:1px solid #a24632}.success{background:#e2efdf;border-color:#62835b}.hint{background:#f5eedf;border-color:#c7af75;margin:25px 0}.topline{display:flex;justify-content:space-between;align-items:center;gap:20px}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 25px}fieldset{padding:0;border:0;margin:0;min-width:0}fieldset:disabled{opacity:.75}.filters{display:flex;align-items:end;gap:20px;flex-wrap:wrap}.filters label{margin:0;flex:1;min-width:200px}.weeknav{display:flex;justify-content:space-between;gap:15px;margin:25px 0}.weekgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.day{background:#ebe5da;min-height:170px;padding:10px}.day h2{font:600 13px system-ui;margin:0 0 15px}.event{display:flex;flex-direction:column;gap:5px;padding:10px;margin-bottom:10px;background:white;border-top:3px solid var(--gold);text-decoration:none;overflow-wrap:anywhere}.event strong{font-size:14px}.event span,.event small{font-size:11px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap;text-align:left}td,th{padding:12px;border-bottom:1px solid #e2d9ca;font-size:13px}th{font-size:12px}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px}.admin-grid .panel{margin:0}.admin-grid .panel:last-child{margin-top:0}footer{padding:30px 4%;font-size:12px;color:#6a6358}details{margin-top:25px}summary{cursor:pointer}:focus-visible{outline:3px solid var(--gold);outline-offset:3px}@media(max-width:850px){.weekgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-grid{grid-template-columns:1fr}header{align-items:flex-start;flex-direction:column}nav{gap:15px;flex-wrap:wrap}.topline{align-items:flex-start;flex-direction:column}.weeknav{font-size:12px}.formgrid{grid-template-columns:1fr}.panel{padding:20px}.login{margin:15px auto;padding:24px}h1{font-size:34px}}
header>a.brand{display:flex;align-items:center;gap:15px;flex-shrink:0}header .brand img{width:92px;height:54px;object-fit:contain;display:block}header .brand span{display:block}@media(max-width:420px){header .brand img{width:76px;height:45px}header>a.brand{gap:12px}}
header .brand img{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:24px 0 0}.calendar-legend{display:flex;flex-wrap:wrap;gap:12px 22px;font-size:13px;font-weight:600}.calendar-legend>span{display:flex;align-items:center;gap:8px}.legend-in{color:#176b4c}.legend-out{color:#245da3}.fourweek-scroll{overflow-x:auto;padding:2px 2px 12px}.fourweek-grid{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));gap:10px;min-width:1070px}.calendar-day{min-height:170px;border:1px solid #ded6c8;border-radius:8px;background:#fdfbf7;padding:10px}.calendar-day.is-today{border:2px solid var(--gold);padding:9px;background:#fff9e9}.day-heading{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:13px}.day-heading h2{margin:0;display:flex;align-items:baseline;gap:7px;font:600 14px system-ui}.day-heading h2 span{font-weight:400;color:#6a6358}.today-label{font-size:10px;font-weight:700;text-transform:uppercase;color:#785815;background:#f0dfa9;border-radius:4px;padding:3px 5px}.day-empty{font-size:11px;color:#8b8478}.calendar-event{display:flex;flex-direction:column;gap:6px;border:1px solid;border-left-width:4px;border-radius:7px;padding:10px;margin-bottom:9px;text-decoration:none;overflow-wrap:anywhere;box-shadow:0 2px 4px #24232108}.event-in{background:#eef8f1;border-color:#b4d9c2;border-left-color:#24845f}.event-out{background:#eef4fc;border-color:#bed0e9;border-left-color:#3977be}.calendar-event:hover{filter:brightness(.97)}.event-kind{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:650}.event-in .event-kind{color:#176b4c}.event-out .event-kind{color:#245da3}.event-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:34px;height:34px;border-radius:7px;background:#fff}.event-kind time{display:block;font-size:17px;font-weight:750;font-variant-numeric:tabular-nums}.calendar-event>strong{font-size:13px;line-height:1.3}.event-customer{font-size:12px}.calendar-event>small{font-size:10px;color:#665f55}.calendar-scroll-hint{display:none;font-size:12px;color:#6a6358}@media(max-width:1150px){.calendar-scroll-hint{display:block}.fourweek-grid{min-width:1070px}}@media(max-width:650px){.calendar-toolbar{align-items:flex-start}.calendar-legend{gap:10px;font-size:12px}.weeknav{flex-wrap:wrap;align-items:center}.weeknav strong{order:-1;flex-basis:100%;text-align:center}}
.fourweek-focus{min-width:960px;--focus-columns:repeat(7,minmax(70px,1fr))}.focus-week{margin-bottom:20px;border:1px solid #dcd2c0;border-radius:9px;background:#eee8dd;padding:8px}.focus-days,.stay-track{display:grid;grid-template-columns:var(--focus-columns);gap:8px}.focus-days{align-items:stretch}.focus-days .calendar-day{min-width:0;min-height:150px;padding:9px 6px;border-color:#e4ded3;background:#f3f0ea}.focus-days .workday{padding:12px;background:#fffdf7;border-color:#d6bd81}.focus-days .day-heading h2{flex-wrap:wrap;font-size:12px;gap:3px}.focus-days .workday .day-heading h2{font-size:15px;gap:7px}.focus-days .quiet-day .day-heading{flex-wrap:wrap}.focus-days .calendar-day.is-today{border-color:var(--gold);background:#fff5d8}.quiet-day .calendar-event{padding:7px 4px;border-left-width:3px;gap:4px}.quiet-day .event-kind{flex-direction:column;align-items:flex-start;gap:4px}.quiet-day .event-icon{width:26px;height:26px}.quiet-day .event-icon img{width:23px;height:23px}.quiet-day .event-label{font-size:9px}.quiet-day .event-kind time{font-size:13px}.quiet-day .calendar-event>strong,.quiet-day .event-customer{font-size:10px;line-height:1.25}.quiet-day .calendar-event>small{font-size:9px}.week-stays{padding-top:7px}.stay-track{margin-top:5px;min-height:29px}.stay-line{display:flex;align-items:center;gap:7px;min-width:0;border-radius:15px;padding:5px 8px;text-decoration:none;color:var(--line-ink);background:var(--line-paper);border:1px solid var(--line-ink);box-shadow:inset 0 -3px 0 var(--line-ink);font-size:11px}.stay-line:hover{filter:brightness(.94)}.stay-caption{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;flex:1}.stay-start,.stay-end{font-size:13px;flex-shrink:0}.stay-line.continued{border-left-style:dashed;border-top-left-radius:3px;border-bottom-left-radius:3px}.stay-line.continues{border-right-style:dashed;border-top-right-radius:3px;border-bottom-right-radius:3px}.tone-0{--line-ink:#71548d;--line-paper:#f0e9f8}.tone-1{--line-ink:#8c6722;--line-paper:#faf0d7}.tone-2{--line-ink:#28766e;--line-paper:#e3f3ef}.tone-3{--line-ink:#516c99;--line-paper:#e8eef9}.tone-4{--line-ink:#95596a;--line-paper:#f8e9ee}.tone-5{--line-ink:#60723d;--line-paper:#edf2e2}
.starts-1{--focus-columns:minmax(70px,1fr) minmax(230px,3fr) minmax(70px,1fr) minmax(70px,1fr) minmax(230px,3fr) minmax(70px,1fr) minmax(70px,1fr)}
.starts-2{--focus-columns:minmax(230px,3fr) minmax(70px,1fr) minmax(70px,1fr) minmax(230px,3fr) minmax(70px,1fr) minmax(70px,1fr) minmax(70px,1fr)}
.starts-3{--focus-columns:minmax(70px,1fr) minmax(70px,1fr) minmax(230px,3fr) minmax(70px,1fr) minmax(70px,1fr) minmax(70px,1fr) minmax(230px,3fr)}
.starts-4{--focus-columns:minmax(70px,1fr) minmax(230px,3fr) minmax(70px,1fr) minmax(70px,1fr) minmax(70px,1fr) minmax(230px,3fr) minmax(70px,1fr)}
.starts-5{--focus-columns:minmax(230px,3fr) minmax(70px,1fr) minmax(70px,1fr) minmax(70px,1fr) minmax(230px,3fr) minmax(70px,1fr) minmax(70px,1fr)}
.starts-6{--focus-columns:minmax(70px,1fr) minmax(70px,1fr) minmax(70px,1fr) minmax(230px,3fr) minmax(70px,1fr) minmax(70px,1fr) minmax(230px,3fr)}
.starts-7{--focus-columns:minmax(70px,1fr) minmax(70px,1fr) minmax(230px,3fr) minmax(70px,1fr) minmax(70px,1fr) minmax(230px,3fr) minmax(70px,1fr)}
.from-1{grid-column-start:1}.through-1{grid-column-end:2}
.from-2{grid-column-start:2}.through-2{grid-column-end:3}
.from-3{grid-column-start:3}.through-3{grid-column-end:4}
.from-4{grid-column-start:4}.through-4{grid-column-end:5}
.from-5{grid-column-start:5}.through-5{grid-column-end:6}
.from-6{grid-column-start:6}.through-6{grid-column-end:7}
.from-7{grid-column-start:7}.through-7{grid-column-end:8}
.mobile-calendar{display:none}@media(max-width:700px){.fourweek-scroll,.calendar-scroll-hint,.desktop-calendar-note{display:none}.mobile-calendar{display:block}.mobile-week{background:#fffdf8;border:1px solid #ddd4c4;border-radius:12px;padding:14px;margin:0 0 18px}.mobile-week>h2{font:600 17px system-ui;margin:0 0 14px}.mobile-date-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:20px}.mobile-date-strip>span{display:flex;flex-direction:column;align-items:center;gap:4px;border-radius:7px;background:#efebe4;padding:7px 1px;font-size:10px;color:#746d62}.mobile-date-strip strong{font-size:13px}.mobile-date-strip .key-date{background:#f2e5c2;color:#674d17}.mobile-date-strip .current-date{outline:2px solid var(--gold);outline-offset:-2px}.mobile-day{margin:0 0 17px}.mobile-day>h3{font:600 13px system-ui;margin:0 0 9px;padding:0 0 0 9px;border-left:3px solid #c9c2b5}.key-mobile-day>h3{border-color:var(--gold)}.mobile-empty{font-size:12px;color:#7b7468;margin:0 0 0 12px}.mobile-event{display:flex;flex-direction:column;gap:7px;border:1px solid #c5d7cd;border-left-width:4px;border-radius:9px;padding:12px;margin-bottom:10px;text-decoration:none;min-width:0;overflow-wrap:anywhere}.mobile-event.event-out{border-color:#bed0e9;border-left-color:#3977be}.mobile-event.event-in{border-left-color:#24845f}.mobile-event-top{display:flex;align-items:center;gap:9px}.mobile-event-top>strong{font-size:13px}.mobile-event-top>time{font-size:23px;font-weight:750;margin-left:auto;font-variant-numeric:tabular-nums}.mobile-event.event-in .mobile-event-top{color:#176b4c}.mobile-event.event-out .mobile-event-top{color:#245da3}.mobile-vehicle{font-size:16px;line-height:1.3}.mobile-event>span{font-size:13px}.mobile-journey{display:flex;align-items:center;justify-content:space-between;gap:10px;border-radius:7px;background:var(--line-paper,#fff);color:var(--line-ink,#514c42);padding:10px;margin-top:3px;min-width:0}.mobile-journey>span:not(.journey-connection){display:flex;flex-direction:column;gap:3px;font-size:12px;font-variant-numeric:tabular-nums}.mobile-journey>span:last-child{text-align:right}.mobile-journey small{font-size:10px;font-weight:600}.mobile-journey b{font-size:13px}.journey-connection{flex:1;min-width:18px;height:2px;background:currentColor;position:relative;font-size:0}.journey-connection:before{content:'';position:absolute;width:6px;height:6px;border-radius:50%;background:currentColor;left:0;top:-2px}.journey-connection:after{content:'';position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg)}.mobile-status{font-size:11px;color:#6c655a}.mobile-ongoing{display:flex;flex-direction:column;gap:5px;border:1px solid var(--line-ink);background:var(--line-paper);color:var(--line-ink);border-radius:8px;padding:12px;margin-top:10px;text-decoration:none;font-size:12px}.mobile-ongoing>small{font-size:10px;text-transform:uppercase;letter-spacing:.5px}.mobile-ongoing>strong{font-size:14px}header{padding:15px 4%;gap:14px}header>a.brand{font-size:24px}header .brand img{width:76px;height:45px}nav{width:100%;gap:7px 12px;font-size:12px}nav form{margin-left:auto}nav button{padding:7px 10px;font-size:12px}main{padding:24px 4%}h1{font-size:30px}.topline{gap:0}.topline .button{margin-bottom:15px}.filters{gap:10px;align-items:stretch}.filters label{min-width:0;flex-basis:100%}.filters button{align-self:flex-start}.calendar-toolbar{gap:10px}.calendar-toolbar .button{white-space:nowrap;padding:8px 10px;font-size:12px}.calendar-legend{gap:8px;font-size:10px}.calendar-legend>span{gap:5px}.calendar-legend img{width:21px;height:21px}.weeknav{gap:12px;font-size:11px}.weeknav strong{font-size:14px}}
@media(max-width:700px){.filters label{flex:1 1 calc(50% - 5px);font-size:11px;gap:5px}.filters input{font-size:14px;padding:8px;min-width:0}.filters button{padding:8px 14px;font-size:12px}.calendar-toolbar{margin-top:16px}.weeknav{margin:18px 0}.topline h1{font-size:28px;margin-bottom:15px}.topline .button{padding:9px 13px;font-size:12px;margin-bottom:14px}}
