:root{--cream:#f6efe0;--cream-deep:#ecdfc4;--paper:#fffaf0;--ink:#2a1a16;--ink-soft:#5c4a42;--burgundy:#6b1d24;--burgundy-soft:#8e3a40;--route:#0d6b6b;--ghost:#6f6a8f;--warning:#8a5a00;--warning-bg:#fbefd2;--blocked:#8f1d1d;--blocked-bg:#f8dedb;--ok-bg:#dcefe9;--carpet-base:#6a2f1f;--carpet-ring:#c46a2a;--carpet-core:#9b2f22;--focus:#1b5fd1;--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased;font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,textarea{font:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.page{max-width:1360px;margin:0 auto;padding:24px 20px 40px}.masthead{border-bottom:3px double var(--burgundy);margin-bottom:20px;padding-bottom:16px}.masthead__hotel{letter-spacing:.2em;text-transform:uppercase;color:var(--burgundy);margin:0;font-size:.85rem}.masthead__title{color:var(--burgundy);letter-spacing:.02em;margin:2px 0 6px;font-size:clamp(2.2rem,5vw,3.4rem);line-height:1}.masthead__lead{max-width:62ch;margin:0 0 10px;font-size:1.08rem}.masthead__steps{color:var(--ink-soft);flex-wrap:wrap;gap:6px 22px;margin:0;padding-left:1.2em;font-size:.95rem;display:flex}.masthead__steps li{padding-right:4px}.layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"controls""maps""directions";gap:18px;display:grid}.layout__controls{grid-area:controls;align-content:start;gap:14px;display:grid}.layout__maps{grid-area:maps;align-content:start;gap:14px;display:grid}.layout__directions{grid-area:directions}@media (width>=960px){.layout{grid-template:"maps controls""maps directions"1fr/minmax(0,1fr) 380px}}.card{background:var(--paper);border:2px solid var(--burgundy);border-radius:var(--radius);min-width:0;margin:0;padding:14px 16px}.card__title{color:var(--burgundy);margin:0 0 8px;padding:0;font-size:1.15rem}fieldset.card>legend.card__title{float:left;width:100%}fieldset.card>legend+*{clear:both}.profile-option{border:1.5px solid var(--cream-deep);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;margin-top:8px;padding:10px;display:flex}.profile-option.is-selected{border-color:var(--route);background:#eef6f3}.profile-option input{width:18px;height:18px;accent-color:var(--route);margin-top:5px}.profile-option__body{display:grid}.profile-option__name{font-weight:700}.profile-option__hint{color:var(--ink-soft);font-size:.88rem}.profile-option__route{color:var(--route);font-size:.92rem;font-weight:600}.profile-option__route.is-blocked{color:var(--blocked)}.actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.button,.toggle{border:2px solid var(--burgundy);background:var(--paper);color:var(--burgundy);cursor:pointer;border-radius:999px;min-height:44px;padding:9px 16px;font-weight:700}.button:hover,.toggle:hover{background:var(--cream)}.button--primary{background:var(--burgundy);color:var(--paper)}.button--primary:hover{background:var(--burgundy-soft)}.button--quiet{border-color:var(--ink-soft);color:var(--ink-soft)}.toggle{align-items:center;gap:10px;display:inline-flex}.toggle__track{background:var(--cream-deep);border-radius:999px;width:40px;height:22px;transition:background .15s;position:relative}.toggle__thumb{background:var(--paper);border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0000004d}.toggle.is-on{background:var(--blocked-bg);border-color:var(--blocked);color:var(--blocked)}.toggle.is-on .toggle__track{background:var(--blocked)}.toggle.is-on .toggle__thumb{transform:translate(18px)}.status{border-radius:10px;margin:0;padding:10px 12px;font-weight:700}.status--ok{background:var(--ok-bg);color:#0b4f45}.status--warning{background:var(--warning-bg);color:var(--warning)}.status--blocked{background:var(--blocked-bg);color:var(--blocked)}.ghost-note{color:var(--ghost);align-items:center;gap:8px;margin:10px 0 0;font-size:.95rem;display:flex}.ghost-note__swatch{border-top:4px dashed var(--ghost);flex:none;width:28px}.proposal{border-top:1px solid var(--cream-deep);margin-top:12px;padding-top:10px}.proposal__title{color:var(--burgundy);margin:0 0 4px;font-size:1.05rem}.proposal__lead{color:var(--ink-soft);margin:0 0 6px;font-size:.92rem}.proposal__list{gap:4px;margin:0 0 12px;padding:0;list-style:none;display:grid}.proposal__list .is-ok{color:#0b4f45;font-weight:600}.proposal__list .is-rejected{color:var(--blocked)}.proposal__none{color:var(--blocked);margin:0;font-weight:700}.directions__meta{color:var(--ink-soft);margin:-4px 0 8px;font-size:.92rem}.directions__steps{gap:6px;margin:0 0 14px;padding-left:1.4em;display:grid}.directions__copy-status{color:#0b4f45;min-height:1.5em;margin:8px 0 0;font-size:.92rem}.directions__fallback{width:100%;font-family:ui-monospace,Menlo,monospace;font-size:.85rem}.directions__empty{color:var(--blocked);margin:0}#directions-title:focus-visible{outline-offset:4px}.floor{background:var(--cream);border:2px solid var(--burgundy);border-radius:var(--radius);margin:0;padding:10px 10px 4px}.floor__title{color:var(--burgundy);padding:0 4px 4px;font-size:1.1rem;font-weight:700}.floor__svg{width:100%;height:auto;display:block}.outdoor__paving{fill:#e4dccb}.outdoor__label{fill:var(--ink-soft);font-size:13px;font-style:italic}.front-step{stroke:var(--burgundy-soft);stroke-width:2px}.ramp{fill:#d8ceb8;stroke:var(--burgundy-soft);stroke-width:1.5px}.ramp__chevron{fill:none;stroke:var(--burgundy-soft);stroke-width:2px}.corridor{opacity:.55}.room rect{fill:var(--paper);stroke:var(--burgundy);stroke-width:3px}.room--carpet rect{opacity:.55}.room--service rect{fill:var(--cream-deep)}.room--stairs rect{fill:#efe5d0}.room--lift rect{fill:#e9e1ef}.room--target rect{fill:#fff3c9;stroke-width:5px}.room--moved-from rect{fill:#f2e8e8}.stair-tread{stroke:var(--burgundy-soft);stroke-width:2px}.room-number{fill:var(--burgundy);font-size:38px;font-weight:700}.room-name{fill:var(--ink-soft);font-size:14px}.room-name--on-carpet{fill:var(--burgundy);font-size:18px;font-weight:700}.outer-wall{fill:none;stroke:var(--burgundy);stroke-width:7px}.door-gap{stroke:var(--cream);stroke-width:9px}.route-casing{fill:none;stroke:var(--paper);stroke-width:13px;stroke-linecap:round;stroke-linejoin:round}.route{fill:none;stroke:var(--route);stroke-width:7px;stroke-linecap:round;stroke-linejoin:round}.ghost-trail{fill:none;stroke:var(--ghost);stroke-width:6px;stroke-dasharray:3 11;stroke-linecap:round;stroke-linejoin:round;opacity:.9}.ghost-icon path{fill:#f4f2fb;stroke:var(--ghost);stroke-width:2px}.ghost-icon__eye{fill:var(--ghost)}.lock__badge{fill:var(--blocked)}.lock__shackle{fill:none;stroke:var(--paper);stroke-width:3px}.lock__body{fill:var(--paper)}.lock__label{fill:var(--blocked);paint-order:stroke;stroke:var(--paper);stroke-width:3px;font-size:12px;font-weight:700}.floor-change rect{fill:var(--route)}.floor-change text{fill:var(--paper);font-size:13px;font-weight:700}.marker--start circle{fill:var(--route);stroke:var(--paper);stroke-width:3px}.marker--start text{fill:var(--route);font-size:14px;font-weight:700}.marker--target path{fill:var(--burgundy);stroke:var(--paper);stroke-width:2px}.marker__dot{fill:var(--paper)}.legend{color:var(--ink-soft);flex-wrap:wrap;gap:6px 20px;margin:0;padding:0 4px;font-size:.92rem;list-style:none;display:flex}.legend li{align-items:center;gap:8px;display:flex}.legend__swatch{width:30px;height:12px;display:inline-block}.legend__swatch--route{border-top:6px solid var(--route);height:0}.legend__swatch--ghost{border-top:5px dashed var(--ghost);height:0}.legend__swatch--carpet{background:repeating-linear-gradient(60deg, var(--carpet-ring) 0 4px, var(--carpet-base) 4px 8px);border-radius:3px}.footer{color:var(--ink-soft);text-align:center;margin-top:28px;font-size:.88rem}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
