:root{--font-sans:Arial,Helvetica,sans-serif;--font-ui:sans-serif;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-pill:999px;--shadow-xs:0 1px 3px var(--color-shadow-20);--shadow-sm:0 1px 4px var(--color-ink-alpha-25);--shadow-md:0 2px 8px var(--color-shadow-30);--shadow-lg:0 2px 10px var(--color-shadow-30);--shadow-card:0 2px 12px var(--color-shadow-20);--shadow-card-strong:var(--shadow-card);--shadow-dialog:0 20px 60px var(--color-shadow-30);--shadow-focus-ring:0 0 0 2px var(--color-white-alpha-90);--shadow-focus-ring-strong:var(--shadow-focus-ring);--shadow-live-card:0 4px 18px oklch(from var(--color-success) l c h/.3);--color-black:oklch(0% 0 0);--color-white:oklch(100% 0 0);--color-white-alpha-80:oklch(from var(--color-white) l c h/.8);--color-white-alpha-90:oklch(from var(--color-white) l c h/.9);--color-ink:oklch(21% .032 264.7);--color-ink-alpha-25:oklch(from var(--color-ink) l c h/.25);--color-ink-alpha-50:oklch(from var(--color-ink) l c h/.5);--color-ink-alpha-60:oklch(from var(--color-ink) l c h/.6);--color-text-strong:oklch(25.2% 0 0);--color-control-ink:oklch(27.8% .03 256.8);--color-heading:oklch(32.1% 0 0);--color-muted:oklch(37.3% .031 259.7);--color-muted-strong:oklch(44.6% .026 256.8);--color-text-soft:oklch(45% 0 0);--color-neutral:oklch(51% 0 0);--color-neutral-strong:oklch(55.1% .023 264.4);--color-neutral-soft:oklch(71.4% .019 261.3);--color-border-strong:oklch(84.5% 0 0);--color-border:oklch(87.2% .009 258.3);--color-border-neutral:oklch(89.8% 0 0);--color-track:oklch(92.8% .006 264.5);--color-surface-muted:oklch(95.3% .021 261.8);--color-surface-soft:oklch(96.7% .003 264.5);--color-page:oklch(96.7% 0 0);--color-surface-row:oklch(97% .015 251.2);--color-surface-blue-soft:oklch(96.2% .018 272.3);--color-surface:oklch(98.5% .002 247.8);--color-surface-solid:oklch(98.5% 0 0);--color-panel:oklch(97% 0 0);--color-overlay-surface:var(--color-white-alpha-90);--color-shadow-20:oklch(from var(--color-black) l c h/.2);--color-shadow-30:oklch(from var(--color-black) l c h/.3);--color-blue:oklch(48.8% .217 264.4);--color-blue-dark:oklch(from var(--color-blue) 42% c h);--color-blue-muted:oklch(from var(--color-blue) l .163 h);--color-blue-light:oklch(from var(--color-blue) 58% c h);--color-blue-vivid:var(--color-blue);--color-success:oklch(62.7% .17 149.2);--color-success-dark:oklch(from var(--color-success) 45% c h);--color-success-form:oklch(from var(--color-success) 52% c h);--color-success-control:var(--color-success-form);--color-success-soft:oklch(from var(--color-success) 96% .026 h);--color-success-row:oklch(from var(--color-success) 98% .017 h);--color-success-panel:oklch(from var(--color-success-row) l c h/.98);--color-success-border:oklch(from var(--color-success) 92% .085 h);--color-danger:oklch(57.7% .215 27.3);--color-danger-dark:oklch(from var(--color-danger) 50% c h);--color-danger-deep:oklch(from var(--color-danger) 44% c h);--color-danger-text:oklch(from var(--color-danger) 40% c h);--color-danger-warning:var(--color-danger);--color-danger-soft:oklch(from var(--color-danger) 97% .022 h);--color-danger-panel:oklch(from var(--color-danger) 98% .011 h);--color-danger-border:oklch(from var(--color-danger) 88% .065 h);--color-danger-border-soft:var(--color-danger-border);--color-danger-photo:oklch(from var(--color-danger) 94% .032 h);--color-gender-male:var(--color-blue);--color-gender-female:oklch(.644 .268 314.165);--color-warning:oklch(76.9% .165 70.1);--color-warning-dark:oklch(from var(--color-warning) 48% c h);--color-warning-route:oklch(from var(--color-warning) 68% c h);--color-warning-soft:oklch(from var(--color-warning) 96% .058 h);--color-warning-panel:oklch(from var(--color-warning) 98% .025 h);--color-warning-row:oklch(from var(--color-warning) 98% .017 h);--color-warning-dot:oklch(from var(--color-warning) 84% c h);--color-own-location:oklch(from var(--color-warning) 86% c h);--color-fullscreen:var(--color-warning)}.gender-marker{inline-size:var(--gender-marker-size,22px);block-size:var(--gender-marker-size,22px);display:inline-grid;place-items:center;flex:0 0 auto;border-radius:var(--radius-pill);color:var(--color-white);background:var(--gender-marker-background,var(--color-neutral-strong));font-size:var(--gender-marker-font-size,12px);font-weight:800;line-height:1}.gender-marker-m{--gender-marker-background:var(--color-gender-male)}.gender-marker-f{--gender-marker-background:var(--color-gender-female)}.gender-marker-empty{--gender-marker-background:linear-gradient(to bottom right,var(--color-gender-male),var(--color-gender-male) 50%,var(--color-gender-female) 0)}.mandatory-change-icons{display:inline-flex;gap:2px;align-items:center;color:var(--mandatory-change-color,var(--color-neutral-strong));font-size:var(--mandatory-change-size,18px);line-height:1}.icon-control{position:relative;inline-size:34px;block-size:34px;display:inline-grid;place-items:center;padding:0;border-radius:var(--radius-pill);cursor:pointer;font-size:18px;text-decoration:none}.icon-control svg{inline-size:1em;block-size:1em;display:block;color:currentColor}.neutral-control{color:var(--color-heading);background:var(--color-white);border:2px solid var(--color-shadow-20)}.neutral-control:hover:not(:disabled){background:var(--color-page)}:root{--heading:0deg}.bicycle-icon,.broom-icon,.bus-icon,.finish-icon,.kilometer-marker-icon,.own-location-icon,.start-icon{background:none!important;border:none!important}.broom-marker-shell,.marker-shell{display:grid;place-items:center}.bicycle-marker,.broom-marker,.bus-marker,.own-location-marker{inline-size:28px;block-size:28px;display:grid;place-items:center;position:relative;color:var(--color-white);background:var(--color-blue);border-radius:var(--radius-pill);box-shadow:var(--shadow-lg)}.bus-marker{background:var(--color-black)}.bicycle-marker{background:var(--color-success)}.own-location-marker{color:var(--color-ink);background:var(--color-own-location)}.finish-marker{display:block;border:2px solid var(--color-ink);border-radius:var(--radius-pill);background-color:var(--color-white);background-image:repeating-conic-gradient(var(--color-ink) 0 25%,var(--color-white) 0 50%);background-size:8px 8px}.finish-marker,.start-marker{inline-size:24px;block-size:24px;box-shadow:var(--shadow-md)}.start-marker{display:grid;place-items:center;border:2px solid var(--color-ink);border-radius:var(--radius-pill);background:var(--color-success)}.start-marker:before{content:"";inline-size:0;block-size:0;margin-inline-start:2px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:10px solid var(--color-white)}.kilometer-marker{min-inline-size:22px;block-size:18px;display:inline-grid;place-items:center;padding:0 5px;border:1px solid var(--color-ink-alpha-60);border-radius:var(--radius-pill);color:var(--color-ink);background:var(--color-white-alpha-80);box-shadow:var(--shadow-sm);font-family:var(--font-ui),sans-serif;font-size:10px;font-weight:900;line-height:1}.bus-heading-point,.own-location-heading-point{--heading:0deg;inline-size:0;block-size:0;position:absolute;inset-block-start:50%;inset-inline-start:50%;border-right:5px solid transparent;border-bottom:8px solid var(--color-ink);border-left:5px solid transparent;filter:drop-shadow(0 0 1px var(--color-white));opacity:.9;transform:translate(-50%,-50%) rotate(var(--heading,0deg)) translateY(-19px);transform-origin:center}.own-location-heading-point{border-bottom-color:var(--color-warning-route)}.bicycle-marker-svg,.broom-marker-svg,.bus-marker-svg,.own-location-marker-svg{inline-size:25px;block-size:25px;display:block;position:absolute;inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%)}.broom-marker-svg{transform:translate(-50%,-50%) scale(.75)}.bicycle-marker-fallback,.bicycle-marker-svg-fallback,.broom-marker-fallback,.broom-marker-svg-fallback,.bus-marker-fallback,.bus-marker-svg-fallback,.own-location-marker-fallback,.own-location-marker-svg-fallback{font-size:18px;font-weight:800;line-height:1}.access-modal[data-v-5e2af527]{position:fixed;inset:0;z-index:3000;inline-size:min(360px,calc(100% - 32px));max-inline-size:360px;padding:18px;background:var(--color-white);border:0;border-radius:var(--radius-md);box-shadow:var(--shadow-dialog);font-family:var(--font-sans),sans-serif}.access-modal[data-v-5e2af527]::backdrop{background:var(--color-ink-alpha-60)}.access-header[data-v-5e2af527]{display:flex;gap:12px;align-items:flex-start}.access-header h2[data-v-5e2af527]{margin:0;color:var(--color-ink);font-size:20px}.access-header p[data-v-5e2af527]{margin:4px 0 0;color:var(--color-muted-strong);font-size:14px;line-height:1.4}.access-icon[data-v-5e2af527]{inline-size:36px;block-size:36px;display:grid;flex:0 0 auto;place-items:center;color:var(--color-ink);background:var(--color-surface-muted);border-radius:var(--radius-md)}.access-icon[data-v-5e2af527] svg{inline-size:20px;block-size:20px}.access-digits[data-v-5e2af527]{display:flex;justify-content:center;gap:12px;margin:20px 0 12px}.access-digit[data-v-5e2af527]{inline-size:16px;block-size:16px;background:var(--color-track);border:2px solid var(--color-border-strong);border-radius:var(--radius-pill)}.access-digit-filled[data-v-5e2af527]{background:var(--color-ink);border-color:var(--color-ink)}.access-error[data-v-5e2af527]{margin:0 0 12px;color:var(--color-danger-dark);font-size:13px;font-weight:800;text-align:center}.access-keypad[data-v-5e2af527]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.access-keypad button[data-v-5e2af527]{min-block-size:48px;display:grid;place-items:center;color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font:inherit;font-size:18px;font-weight:900}.access-keypad button[data-v-5e2af527]:disabled{opacity:.45;cursor:not-allowed}.access-keypad button[data-v-5e2af527] svg{inline-size:18px;block-size:18px}.access-actions[data-v-5e2af527]{display:flex;justify-content:flex-end;margin-block-start:12px}.access-cancel[data-v-5e2af527]{padding:8px 14px;color:var(--color-ink);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;font:inherit;font-weight:800}.access-cancel[data-v-5e2af527]:disabled{opacity:.6;cursor:not-allowed}.offline-status[data-v-4ac1c17c]{position:fixed;z-index:2000;inset-block-start:10px;inset-inline-start:50%;display:flex;align-items:center;gap:8px;max-inline-size:min(90vw,520px);padding-block:8px;padding-inline:12px;color:var(--color-heading);background:var(--color-warning-soft);border:1px solid var(--color-warning);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);font-family:var(--font-sans),sans-serif;font-size:13px;font-weight:700;transform:translate(-50%)}.offline-status.is-error[data-v-4ac1c17c]{color:var(--color-danger-text);background:var(--color-danger-soft);border-color:var(--color-danger-border)}.offline-status button[data-v-4ac1c17c]{padding:2px 4px;color:inherit;background:transparent;border:0;font:inherit;text-decoration:underline;cursor:pointer}@media(max-width:680px){.offline-status[data-v-4ac1c17c]{inset-block-start:48px;font-size:12px}}.test-mode-bar{z-index:2500;display:grid;gap:8px;min-inline-size:0;padding-block:10px;padding-inline:12px;color:var(--color-heading);background:var(--color-warning-soft);border:2px solid var(--color-warning-dark);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);font-family:var(--font-sans),sans-serif}.test-mode-bar-map{position:relative}.test-clock-step-buttons,.test-mode-header,.test-mode-header-actions,.test-reference-buttons{display:flex;align-items:center}.test-mode-header{justify-content:space-between;gap:10px}.test-mode-title{display:grid;gap:1px}.test-mode-title small{font-size:11px;font-weight:600}.test-clock-step-buttons,.test-mode-header-actions,.test-reference-buttons{gap:6px}.test-clock-step-buttons button,.test-icon-button,.test-reference-button,.test-time-form button{display:inline-grid;place-items:center;inline-size:34px;block-size:34px;padding:0;border:0;border-radius:var(--radius-pill);color:var(--color-heading);background:var(--color-white-alpha-80);font:700 13px var(--font-sans),sans-serif;cursor:pointer}:is(.test-clock-step-buttons button,.test-icon-button,.test-reference-button,.test-time-form button):disabled{opacity:.4;cursor:not-allowed}:is(.test-clock-step-buttons button,.test-icon-button,.test-reference-button,.test-time-form button) svg{inline-size:18px;block-size:18px}.test-clock-row{display:grid;grid-template-columns:minmax(76px,1fr) auto minmax(76px,1fr);align-items:center;gap:10px}.test-clock-step-buttons-back{justify-content:end}.test-clock-step-buttons-forward{justify-content:start}.test-clock-value{min-inline-size:104px;color:var(--color-heading);font-size:30px;font-weight:900;line-height:1;text-align:center;font-variant-numeric:tabular-nums}.test-time-form{display:flex;justify-content:center;align-items:center;gap:6px}.test-time-form label{display:contents}.test-time-form input{min-block-size:34px;inline-size:126px;padding-inline:8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font:15px var(--font-sans),sans-serif}@media(max-height:520px)and (orientation:landscape),(max-width:680px){.test-mode-bar-global,.test-mode-bar-map{position:fixed;inset-block-start:4px;inset-inline-start:50%;inline-size:calc(100vw - 16px);padding-block:6px;padding-inline:8px;transform:translate(-50%)}.test-mode-bar{grid-template-columns:auto 1fr auto;align-items:center;gap:6px;border-radius:var(--radius-sm)}.test-mode-bar>.test-time-form input,.test-mode-title small{display:none}.test-mode-header{display:contents}.test-mode-header-actions{grid-column:3;grid-row:1}.test-clock-row{grid-column:2;grid-row:1;grid-template-columns:1fr auto 1fr;gap:4px}.test-clock-value{min-inline-size:64px;font-size:22px}.test-clock-step-buttons{gap:2px}.test-clock-step-buttons button,.test-icon-button,.test-time-form button{inline-size:30px;block-size:30px}.test-mode-bar>.test-time-form{display:none}}@media(min-width:681px)and (max-height:520px)and (orientation:landscape){.test-mode-bar-map{inset-inline-start:8px;inline-size:calc(50vw - 16px);transform:none}}.test-mode-dialog,.test-mode-popover{inline-size:min(92vw,440px);max-block-size:calc(100dvh - 80px);padding:18px;overflow:auto;color:var(--color-heading);background:var(--color-surface-solid);border:1px solid var(--color-warning-dark);border-radius:var(--radius-md);box-shadow:var(--shadow-dialog);font-family:var(--font-sans),sans-serif}.test-mode-popover{position:fixed;inset-block-start:60px;inset-inline-start:50%;margin:0;transform:translate(-50%)}.test-mode-popover h2{margin-block:0 12px;font-size:18px}.test-time-form-popover{display:none}.test-mode-bar-global .test-time-form-popover{display:flex;margin-block-end:14px}.test-mode-dialog::backdrop{background:var(--color-ink-alpha-60)}.test-dialog-actions{display:flex;justify-content:space-between;gap:8px}.test-mode-dialog label{display:grid;gap:6px;margin-block:14px}.test-mode-dialog input{min-block-size:40px;padding-inline:8px;font:16px var(--font-sans),sans-serif}.test-wide-button{inline-size:100%;margin-block-start:8px;padding:9px}.test-location-controls h2{display:none}.test-location-source{display:grid;gap:10px;padding-block:12px;border-block-start:1px solid var(--color-border)}.test-reference-row,.test-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.test-reference-button-active{color:var(--color-white);background:var(--color-blue);box-shadow:var(--shadow-focus-ring-strong)}.test-slider-row{display:grid;grid-template-columns:1fr auto;gap:5px 10px}.test-slider-row input{grid-column:1/-1;inline-size:100%}.test-primary{color:var(--color-white);background:var(--color-blue)}.test-danger{color:var(--color-white);background:var(--color-danger)}.test-mode-error{color:var(--color-danger-text);font-weight:700}.test-visually-hidden{position:absolute;inline-size:1px;block-size:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-height:520px)and (orientation:landscape),(max-width:680px){.test-time-form-popover{display:flex;margin-block-end:14px}.test-time-form-popover input{display:block}}.test-mode-bar-global{position:fixed;inset-block-start:8px;inset-inline-start:50%;grid-template-columns:auto 1fr auto;align-items:center;inline-size:min(92vw,560px);padding-block:6px;transform:translate(-50%)}.test-mode-bar-global .test-mode-header{display:contents}.test-mode-bar-global .test-mode-title small{display:none}.test-mode-bar-global .test-mode-header-actions{grid-column:3;grid-row:1}.test-mode-bar-global .test-clock-row{grid-column:2;grid-row:1}.test-mode-bar-global .test-clock-value{min-inline-size:72px;font-size:22px}.test-mode-bar-global>.test-time-form{display:none}
