:root{--bg:#fff;--text:#1b1d1f;--muted:#777d83;--field:#8c9298;--soft:#b4b9be;--hair:#e7e9eb;--hover:#f6f7f8;--danger:#b3261e;--plate:#fff;--plate-text:#2a2d30;--plate-muted:#8a9096;--plate-line:#c5c9cd;--chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%231b1d1f'/%3E%3C/svg%3E");--sans:"Helvetica Neue", Helvetica, Arial, "Liberation Sans", sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--pad:clamp(18px, 4vw, 56px);--gap:clamp(28px, 5vw, 80px);--space:clamp(32px, 4.5vw, 56px);--width:1320px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#101214;--text:#e8eaeb;--muted:#878e95;--field:#636a71;--soft:#4b5157;--hair:#24282c;--hover:#171a1d;--danger:#f2817a;--chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23e8eaeb'/%3E%3C/svg%3E");--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html,body{background:var(--bg);color:var(--text);font:400 15px/1.5 var(--sans);-webkit-font-smoothing:antialiased;margin:0}img{max-width:100%}a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--soft);text-decoration-color:var(--soft);text-underline-offset:4px}a:hover{-webkit-text-decoration-color:var(--text);text-decoration-color:var(--text)}h1{letter-spacing:-.025em;margin:0 0 var(--space);overflow-wrap:anywhere;font-size:clamp(30px,5.2vw,52px);font-weight:300;line-height:1.08}h2{letter-spacing:-.01em;margin:0 0 24px;font-size:clamp(18px,2vw,21px);font-weight:300}p{margin:0 0 16px}.mono{font-family:var(--mono);font-size:.9em}h1 .mono{letter-spacing:0;white-space:nowrap;font-size:.6em}.muted{color:var(--muted)}.hint{color:var(--muted);margin:4px 0 20px;font-size:14px}.lead{color:var(--muted);max-width:72ch;margin-bottom:var(--space)}h1:has(+.lead){margin-bottom:16px}.head:has(+.lead){margin-bottom:16px}.topbar{border-bottom:1px solid var(--soft)}.topbar-inner{min-height:68px;max-width:var(--width);padding:0 var(--pad);flex-wrap:wrap;align-items:center;gap:0 36px;margin:0 auto;display:flex}.brand{letter-spacing:-.01em;font-size:18px;font-weight:400;text-decoration:none}.menu{flex:1;align-items:center;gap:36px;min-width:0;display:flex}.menu nav{scrollbar-width:none;flex:1;gap:26px;min-width:0;display:flex;overflow-x:auto}.menu nav::-webkit-scrollbar{display:none}.menu nav a{color:var(--muted);white-space:nowrap;padding:6px 0;font-size:14px;text-decoration:none}.menu nav a:hover,.menu nav a[aria-current=page]{color:var(--text)}.menu .user{color:var(--muted);white-space:nowrap;flex:none;align-items:center;gap:20px;font-size:14px;display:flex}.menu .user .name{text-overflow:ellipsis;max-width:18ch;color:inherit;text-decoration:none;overflow:hidden}.menu .user .name:hover,.menu .user .name[aria-current=page]{color:var(--text)}.menu-toggle{display:none}main{max-width:var(--width);padding:var(--space) var(--pad) 120px;margin:0 auto}.panel{border-top:1px solid var(--soft);padding:32px 0 var(--space);min-width:0;container-type:inline-size}.grid{gap:0 var(--gap);align-items:start;display:grid}.grid>*{min-width:0}.cols-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}.stats{grid-template-columns:repeat(3,1fr);gap:0 clamp(24px,4vw,56px)}.stat .value{letter-spacing:-.025em;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:clamp(24px,15cqw,46px);font-weight:300;line-height:1.1}.stat .label{color:var(--muted);margin-top:10px;font-size:14px}.head{margin-bottom:var(--space);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.head h1{margin:0}.head.sub{align-items:baseline;margin-bottom:24px}.head.sub h2{margin:0}.actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.filter{flex-wrap:nowrap}.filter select{flex:1;width:auto;min-width:190px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--muted);border-bottom:1px solid var(--hair);white-space:nowrap;padding:10px 16px 10px 0;font-size:13px;font-weight:400}td{border-bottom:1px solid var(--hair);vertical-align:top;padding:13px 16px 13px 0}tr:last-child td{border-bottom:0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}th:last-child,td:last-child{padding-right:0}dl.kv{grid-template-columns:minmax(110px,40%) 1fr;margin:0;display:grid}dl.kv dt{color:var(--muted);border-bottom:1px solid var(--hair);overflow-wrap:anywhere;padding:12px 12px 12px 0}dl.kv dd{border-bottom:1px solid var(--hair);overflow-wrap:anywhere;margin:0;padding:12px 0}dl.kv+.table-wrap{margin-top:var(--space)}.tag{color:var(--muted);margin-left:10px;font-size:12px;display:inline-block}a.mono{white-space:nowrap}ul.rows{margin:0;padding:0;list-style:none}ul.rows li{border-bottom:1px solid var(--hair);padding:12px 0}ul.rows li:last-child{border-bottom:0}.meta{color:var(--muted);margin-top:3px;font-size:13px}label{color:var(--muted);margin-bottom:2px;font-size:13px;display:block}input,select,textarea{width:100%;color:var(--text);border:0;border-bottom:1px solid var(--field);font:inherit;background:0 0;border-radius:0;padding:8px 0}input:not([type=checkbox]):not([type=file]),select{height:40px}select{appearance:none;background:transparent var(--chevron) no-repeat right 2px center / 10px 6px;text-overflow:ellipsis;cursor:pointer;padding-right:22px}textarea{resize:vertical;display:block}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.6}input::-webkit-date-and-time-value{text-align:left}input:hover,select:hover,textarea:hover{border-bottom-color:var(--text)}input:focus,select:focus,textarea:focus{border-bottom-color:var(--text);box-shadow:0 1px 0 var(--text);outline:none}input:disabled,select:disabled{border-bottom-color:var(--hair);color:var(--muted);cursor:default}select:disabled{opacity:.55}input[type=checkbox]{appearance:none;border:1px solid var(--field);cursor:pointer;width:16px;height:16px;box-shadow:none;flex:none;place-content:center;margin:0 12px 0 0;padding:0;display:inline-grid}input[type=checkbox]:checked{border-color:var(--text)}input[type=checkbox]:checked:after{content:"";background:var(--text);width:8px;height:8px}input[type=checkbox]:focus-visible{outline:1px solid var(--text);outline-offset:3px}input[type=file]{color:var(--muted);box-shadow:none;border:0;padding:6px 0;font-size:14px}input[type=file]::file-selector-button{font:inherit;color:var(--text);border:1px solid var(--soft);cursor:pointer;background:0 0;margin-right:12px;padding:5px 12px}label.check{color:var(--text);cursor:pointer;align-items:center;margin:0;padding:8px 0;font-size:15px;display:flex}.field{min-width:0;margin-bottom:24px}.fields{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));align-items:end;gap:0 28px;display:grid}button,.btn{color:var(--text);border:1px solid var(--soft);font:inherit;cursor:pointer;text-align:center;background:0 0;border-radius:0;padding:8px 20px;font-size:14px;text-decoration:none;transition:border-color .15s,background .15s,color .15s,opacity .15s;display:inline-block}button:hover,.btn:hover{border-color:var(--text)}button:focus-visible,.btn:focus-visible,a:focus-visible{outline:1px solid var(--text);outline-offset:3px}button.primary,.btn.primary{background:var(--text);border-color:var(--text);color:var(--bg)}button.primary:hover,.btn.primary:hover{opacity:.82}button.danger{color:var(--danger)}button.danger:hover{border-color:var(--danger)}button.link{color:var(--muted);border:0;padding:0;font-size:14px}button.link:hover{color:var(--text)}button:disabled{opacity:.35;cursor:default;pointer-events:none}.error{border-left:1px solid var(--danger);color:var(--danger);margin-bottom:var(--space);padding:4px 0 4px 16px}.notice{border-left:1px solid var(--text);margin-bottom:var(--space);padding:4px 0 4px 16px}.notice p:last-child{margin-bottom:0}.notice input{font-family:var(--mono);margin-bottom:8px;font-size:13px}.empty{color:var(--muted);padding:8px 0}.login{min-height:100dvh;padding:var(--pad);place-items:center;display:grid;position:relative}.login .corner{top:24px;right:var(--pad);position:absolute}.login .box{width:100%;max-width:360px}.login .brand{letter-spacing:-.025em;margin-bottom:40px;font-size:clamp(36px,9vw,48px);font-weight:300;display:block}.login .panel{padding-bottom:8px}.login .error,.login .notice{margin-bottom:24px}.login button[type=submit]{width:100%;margin-top:8px;padding:11px 20px}.login p{margin:20px 0 0;font-size:14px}.graphic{border-bottom:1px solid var(--hair);background:var(--plate);scrollbar-width:thin;scrollbar-color:var(--plate-line) transparent;margin-bottom:16px;padding:16px;overflow-x:auto}.graphic img{width:auto;max-width:none;height:96px;image-rendering:pixelated;display:block}img.photo{max-height:380px;margin-bottom:16px;display:block}.inline-upload{flex-wrap:wrap;align-items:center;gap:12px;min-width:0;display:flex}.inline-upload input{flex:180px;width:auto;min-width:0}ol.timeline,ul.defects,ul.liveries,ul.wishes{margin:0;padding:0;list-style:none}ul.liveries{margin-bottom:var(--space)}.add-form{margin-top:var(--space)}.move{row-gap:16px;margin-top:28px}.move .field{margin-bottom:0}.check-col{width:40px}img.thumb{background:var(--plate);width:auto;max-width:180px;height:22px;image-rendering:pixelated;padding:2px;display:block}.consist{background:var(--plate);border-bottom:1px solid var(--hair);scrollbar-width:thin;scrollbar-color:var(--plate-line) transparent;align-items:flex-end;gap:3px;min-height:78px;margin-bottom:12px;padding:16px;display:flex;overflow-x:auto}.consist.drop{outline-offset:-1px;outline:1px dashed #0000}.consist.over{outline-color:var(--plate-text)}.consist-empty{color:var(--plate-text);opacity:.6;align-self:center;font-size:14px}.car{flex-direction:column;flex:none;text-decoration:none;display:flex}.car[draggable=true],ul.vehicles li[draggable=true]{cursor:grab}.car img{width:auto;max-width:none;height:48px;image-rendering:pixelated;display:block}.car-box{border:1px solid var(--plate-line);min-width:120px;height:48px;color:var(--plate-text);white-space:nowrap;place-items:center;padding:0 12px;font-size:12px;display:grid}.consist.large .car img,.consist.large .car-box{height:96px}.car-label{text-overflow:ellipsis;white-space:nowrap;text-align:center;width:0;min-width:100%;color:var(--plate-text);font-variant-numeric:tabular-nums;margin-top:8px;font-size:12px;line-height:16px;overflow:hidden}.car.dim img,.car.dim .car-box{opacity:.22;filter:grayscale();transition:opacity .15s,filter .15s}.car.dim .car-label{color:var(--plate-muted);transition:color .15s}.car.dim:hover img,.car.dim:hover .car-box,.car.dim:focus-visible img,.car.dim:focus-visible .car-box{opacity:.7;filter:none}.car.dim:hover .car-label,.car.dim:focus-visible .car-label{color:var(--plate-text)}.consist-foot{justify-content:space-between;align-items:baseline;gap:8px 24px;display:flex}.consist-foot .meta{margin-top:0}.consist-nav{flex:none;gap:4px;display:flex}.consist-nav button.link{color:var(--text);padding:2px 10px;font-size:17px;line-height:1}.drop-marker{background:var(--plate-text);flex:none;align-self:stretch;width:2px;min-height:48px}.car.busy{opacity:.4}.car.busy:hover{opacity:.7}.car-box.missing{border-style:dashed}.plan-summary{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;display:flex}ol.reihung{margin:24px 0 0;padding:0;list-style:none}ol.reihung li{border-bottom:1px solid var(--hair);grid-template-columns:28px minmax(0,1fr) auto;align-items:baseline;gap:4px 16px;padding:12px 0;display:grid}ol.reihung li:last-child{border-bottom:0}ol.reihung .pos{color:var(--muted);font-variant-numeric:tabular-nums}.who{overflow-wrap:anywhere;flex-direction:column;min-width:0;display:flex}ol.reihung .actions{justify-content:flex-end;gap:4px 20px}ul.vehicles{gap:0 var(--gap);grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));margin:0;padding:0;list-style:none;display:grid}ul.vehicles li{border-bottom:1px solid var(--hair);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 12px;padding:16px 0;display:grid}ul.vehicles .vehicle-graphic{background:var(--plate);grid-column:1/-1;padding:8px;display:block;overflow:hidden}ul.vehicles .vehicle-graphic img{object-fit:contain;object-position:left center;width:auto;max-width:100%;height:28px;image-rendering:pixelated;display:block}ul.vehicles .car-box{min-width:0;height:28px;display:inline-grid}#vehicle-filter{flex:0 240px;width:auto;min-width:0}@container (max-width:560px){ol.reihung li{grid-template-columns:28px minmax(0,1fr)}ol.reihung .actions{grid-column:2;justify-content:flex-start}}@container (max-width:640px){.consist.large .car img,.consist.large .car-box,.graphic img{height:48px}}ul.defects li,ul.liveries li,ul.wishes li{border-bottom:1px solid var(--hair);padding:18px 0}ul.defects li:first-child,ul.liveries li:first-child,ul.wishes li:first-child{padding-top:0}ul.wishes li:last-child{border-bottom:0;padding-bottom:0}ul.liveries .head{margin-bottom:12px}ol.timeline li{border-left:1px solid var(--soft);padding:0 0 22px 20px}ol.timeline li:last-child{padding-bottom:4px}ol.timeline .when{color:var(--muted);font-size:13px}ul.defects li.resolved,ul.wishes li.resolved{color:var(--muted)}ul.defects .actions,ul.wishes .actions{gap:4px 20px;margin-top:6px}@media (max-width:1240px){.topbar-inner{min-height:60px}.menu-toggle{color:var(--text);border:0;margin-left:auto;padding:10px 0;font-size:15px;display:block}.menu{flex-direction:column;flex:0 0 100%;align-items:stretch;gap:0;padding:4px 0 20px;display:none}.menu.open{display:flex}.menu nav{flex-direction:column;gap:0;overflow:visible}.menu nav a{letter-spacing:-.01em;border-bottom:1px solid var(--hair);color:var(--text);padding:13px 0;font-size:22px;font-weight:300}.menu .user{flex-wrap:wrap;justify-content:space-between;padding-top:20px;font-size:15px}.menu .user button.link{padding:6px 0;font-size:15px}}@media (max-width:720px){input,select,textarea{font-size:16px}input:not([type=checkbox]):not([type=file]),select{height:44px}button,.btn{padding:11px 20px}button.link{padding:6px 0}.field:has(>label.check){margin-bottom:8px}.head .actions{width:100%}.head .actions>.btn,.head .actions>form,.head .actions>form>button:not(.link){flex:1}.head .actions>form>button:not(.link){width:100%}}@media (max-width:600px){.stats{grid-template-columns:1fr 1fr;gap:0 24px}}@container (max-width:480px){dl.kv{grid-template-columns:1fr}dl.kv dt{border-bottom:0;padding:12px 0 0;font-size:13px}dl.kv dd{padding:2px 0 12px}}@container (max-width:1000px){table.stack .opt{display:none}}@container (max-width:640px){table.stack thead{display:none}table.stack tr{border-bottom:1px solid var(--hair);padding:16px 0;display:block}table.stack tr:first-child{padding-top:0}table.stack tr:last-child{border-bottom:0}table.stack td{text-align:right;overflow-wrap:anywhere;border:0;justify-content:space-between;align-items:center;gap:20px;width:auto;padding:4px 0;display:flex}table.stack td input[type=checkbox]{margin:0}table.stack td:before{content:attr(data-label);font-family:var(--sans);color:var(--muted);text-align:left;flex:none;font-size:15px}table.stack td.m-hide{display:none}}@media (hover:hover){tbody tr:hover td{background:var(--hover)}}
