.service-summary{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:18px;font-size:12px}.service-summary b{font-size:18px;margin-right:5px}.service-summary .concept-status{margin-left:auto}.service-summary .healthy{color:#1aaf8a}.service-summary .repair{color:#ec5774}.service-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:18px;align-items:start}.service-map-panel{min-width:0;overflow:visible}.service-map-panel>header,.service-queue>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px}.service-map-panel h2,.service-queue h2{font-size:16px;margin:0}.service-map-panel header small{display:block;font-size:10px;margin-top:5px}.service-map-tools{display:flex;gap:5px;align-items:center}.service-map-tools input{max-width:180px;font-size:11px;padding:8px}.service-map-tools button{font-size:11px;padding:6px 10px}.service-map-scroll{overflow:auto;border-block:1px solid var(--line);background:#fff;max-height:70vh;scrollbar-width:thin}.service-map{position:relative;max-width:none;min-width:640px;aspect-ratio:1672/941;margin:0 auto;transition:width .15s}.service-map>img{display:block;width:100%;height:100%;object-fit:contain}.service-pins{position:absolute;inset:0;pointer-events:none}.service-pin{position:absolute;transform:translate(-50%,-50%);padding:0;width:2.03%;min-width:21px;max-width:40px;aspect-ratio:1;border:0;background:transparent;border-radius:50%;pointer-events:auto;overflow:visible;z-index:1;transition:opacity .15s,filter .15s}.service-pin.healthy{--seat:#21b892}.service-pin.repair{--seat:#f24165}.service-pin.working{--seat:#ecab33}.seat-indicator{position:absolute;inset:0;border:3px solid var(--seat);border-radius:50%;box-shadow:0 0 0 2px #ffffffb0,0 3px 8px #0002;background:transparent;transition:transform .15s,box-shadow .15s}.service-pin.senior .seat-indicator{border-style:double;border-width:4px}.seat-indicator b{position:absolute;right:-7px;top:-8px;min-width:14px;height:14px;border-radius:8px;display:grid;place-items:center;font-size:9px;line-height:1;background:var(--seat);color:white;border:1px solid white}.service-pin:hover,.service-pin:focus-visible,.service-pin.selected{z-index:5;outline:none}.service-pin:hover .seat-indicator,.service-pin:focus-visible .seat-indicator,.service-pin.selected .seat-indicator{transform:scale(1.18);box-shadow:0 0 0 4px #ffffffca,0 0 16px var(--seat)}.service-pin.dimmed{opacity:.25}.service-pin:hover{opacity:1}.seat-tooltip{position:absolute;left:50%;bottom:calc(100% + 9px);transform:translateX(-50%) translateY(4px);width:max-content;min-width:170px;max-width:270px;padding:10px 13px;background:#102038f5;color:#fff;border:1px solid #486485;border-radius:10px;box-shadow:0 9px 30px #0003;text-align:left;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .12s,transform .12s;white-space:normal}.seat-tooltip:after{content:'';position:absolute;bottom:-5px;left:calc(50% - 5px);height:8px;width:8px;background:#102038;border-right:1px solid #486485;border-bottom:1px solid #486485;transform:rotate(45deg)}.seat-tooltip strong{display:block;font-size:12px}.seat-tooltip small{display:block;font-size:10px;color:#afc4df;margin-top:5px}.seat-tooltip em{display:block;font-style:normal;font-size:10px;color:var(--seat);margin-top:6px}.service-pin:hover .seat-tooltip,.service-pin:focus-visible .seat-tooltip{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}.service-map-panel>footer{display:flex;flex-wrap:wrap;gap:20px;padding:13px 16px;color:var(--muted);font-size:11px}.service-map-panel footer span{display:flex;align-items:center;gap:7px}.service-map-panel footer i{width:8px;height:8px;border-radius:50%}.service-map-panel footer .healthy{background:#21b892}.service-map-panel footer .repair{background:#f24165}.service-map-panel footer .working{background:#ecab33}.service-queue{padding-bottom:12px;overflow:hidden}.service-queue>header button{padding:5px 9px}.service-queue>select{margin:0 14px 12px;width:calc(100% - 28px);font-size:11px;padding:8px}.service-ticket-list{max-height:55vh;overflow:auto;padding:0 12px;scrollbar-width:thin}.service-ticket{display:block;width:100%;text-align:left;padding:12px;margin-bottom:8px;background:var(--bg);border:1px solid var(--line);font-size:11px}.service-ticket>div{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-bottom:7px}.service-ticket>small{display:block;line-height:1.5}.service-ticket>span{display:block;overflow-wrap:anywhere;line-height:1.5;margin:7px 0}.service-ticket>time{font-size:9px;color:var(--muted)}.service-state{border-radius:5px;padding:3px 5px;font-size:9px;white-space:nowrap}.service-state.healthy{color:#20a987;background:#20b58c20}.service-state.repair{color:#ec5774;background:#ec57741a}.service-state.working{color:#c59425;background:#eca8291a}.service-access{font-size:10px;color:var(--muted);line-height:1.5;margin:12px 15px 0}.service-selected{display:grid;gap:6px;padding:10px 14px;background:var(--subtle);margin-bottom:10px;font-size:11px}.service-selected button{padding:5px;font-size:10px}.service-seat-state{padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:20px;background:var(--subtle)}.service-seat-state.healthy{border-left:3px solid #21b892}.service-seat-state.repair{border-left:3px solid #f24165}.service-seat-state.working{border-left:3px solid #ecab33}.service-equipment{display:grid;grid-template-columns:1fr 1fr;gap:8px}.service-equipment label{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;color:var(--text);cursor:pointer}.service-equipment input{margin:0;width:auto;padding:0}.service-equipment label:has(input:checked){border-color:var(--blue);background:var(--accent-soft)}.service-heading{margin:22px 0 10px}.service-assignment{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.service-assignment summary{font-size:12px;cursor:pointer;color:var(--blue);margin-bottom:15px}.service-place-tickets{display:grid;gap:6px}.service-place-tickets button{font-size:11px;text-align:left}.service-history{display:grid;gap:10px;max-height:220px;overflow:auto}.service-history>div{border-left:2px solid var(--line);padding:4px 12px;font-size:11px}.service-history small{display:block;color:var(--muted);margin-top:5px;font-size:10px}.service-history p{white-space:pre-wrap;overflow-wrap:anywhere;margin:7px 0 0}.service-found{padding:18px;margin-top:16px}.service-found button{font-size:11px;margin:4px}.service-map-panel+.service-queue .empty{padding:24px 8px;font-size:11px}@media(max-width:1200px){.service-layout{grid-template-columns:1fr}.service-ticket-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:350px}.service-map-panel>header{flex-wrap:wrap}.service-map-tools{flex:1;justify-content:flex-end}}@media(max-width:650px){.service-ticket-list{grid-template-columns:1fr}.service-summary{gap:10px;font-size:10px}.service-summary .concept-status{margin-left:0}.service-map-tools input{max-width:160px}.service-pin{min-width:24px}.service-map-scroll{max-height:65vh}.service-map-panel>header{padding:12px}.service-equipment{grid-template-columns:1fr 1fr}.service-map-panel>footer{gap:12px;font-size:10px}}@media(prefers-reduced-motion:reduce){.service-map,.service-pin,.seat-indicator,.seat-tooltip{transition:none}}

.service-pin .seat-tooltip.below{bottom:auto;top:calc(100% + 9px)}.service-pin .seat-tooltip.below:after{top:-5px;bottom:auto;transform:rotate(225deg)}.service-pin.left-edge .seat-tooltip{left:0;transform:translateY(4px)}.service-pin.left-edge:hover .seat-tooltip,.service-pin.left-edge:focus-visible .seat-tooltip{transform:translateY(0)}.service-pin.left-edge .seat-tooltip:after{left:8px}.service-map{max-width:1672px}

/* Theme treatment keeps the original plan and hotspot coordinates unchanged. */
:root[data-theme=dark] .service-map-scroll,
:root[data-theme=dark] .service-map{background:#101c2b}
:root[data-theme=dark] .service-map>img,
:root[data-theme=dark] .concept-reference img[src^="/maintenance-map.png"]{
 filter:invert(1) hue-rotate(180deg) saturate(.8) brightness(.78) contrast(.9);
 mix-blend-mode:screen;
}
:root[data-theme=dark] .concept-reference:has(img[src^="/maintenance-map.png"]){background:#101c2b;border-radius:10px;overflow:hidden}
:root[data-theme=dark] .service-pin.healthy{--seat:#28c9a3}
:root[data-theme=dark] .service-pin.repair{--seat:#ff6281}
:root[data-theme=dark] .service-pin.working{--seat:#e9b54b}
:root[data-theme=dark] .seat-indicator{box-shadow:0 0 0 2px #14263b,0 3px 9px #0008}
:root[data-theme=dark] .seat-indicator b{border-color:#14263b;color:#071624}
:root[data-theme=dark] .service-pin:hover .seat-indicator,
:root[data-theme=dark] .service-pin:focus-visible .seat-indicator,
:root[data-theme=dark] .service-pin.selected .seat-indicator{box-shadow:0 0 0 4px #182c45,0 0 12px color-mix(in srgb,var(--seat) 55%,transparent)}
:root[data-theme=dark] .service-map-panel>footer{background:#0d1927;border-radius:0 0 12px 12px}

/* Keep the map anchor when the theme applies its generic button press effect. */
.service-pin:active:not(:disabled){transform:translate(-50%,-50%)}
