.bottom{grid-template-columns:repeat(6,minmax(0,1fr))}
.map-content{padding:10px!important;overflow:hidden;display:flex;min-height:0}
.shell:has(.map-content){max-width:none}
.map-screen{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0;gap:8px}
.map-toolbar{display:flex;flex-direction:column;gap:6px}.map-halls,.map-tools{display:flex;gap:6px;flex-wrap:wrap}.map-tools button,.map-halls button{font-size:.75rem;padding:6px 10px;min-height:36px}
.map-workspace{flex:1;position:relative;min-height:220px;overflow:hidden;border:1px solid #efd8cb;border-radius:24px;background:#fffdf7}
.map-viewport{position:absolute;inset:0;touch-action:none;overflow:hidden;outline-offset:-3px;background:radial-gradient(#dfc5b775 1px,transparent 1px) 0 0/18px 18px;user-select:none}
.map-plane{position:absolute;left:50%;top:50%;transform-origin:center;will-change:transform}
.map-image{display:block;width:100%;height:100%;pointer-events:none}.map-pins{position:absolute;inset:0;pointer-events:none}
.map-pin{position:absolute;transform:translate(-50%,-50%) scale(var(--inverse,1));transform-origin:center;pointer-events:auto;min-height:32px;min-width:40px;border:2px solid #fff;border-radius:12px;padding:5px 8px;background:var(--pin-color);color:#fff;box-shadow:0 3px 10px #482c3240;font-size:12px;line-height:1.3;white-space:nowrap;touch-action:manipulation;transition:none}
.map-pin.own{border:3px solid #fff;outline:3px solid #c9354b;box-shadow:0 0 0 7px #ffccba85;font-weight:800;z-index:2}
.map-pin:active{transform:translate(-50%,-50%) scale(var(--inverse,1))}
.map-pin small{display:block;font-size:10px}.map-pin.active{outline:3px solid #684d45;z-index:3}.map-pin.visited:not(.own){opacity:.55}
.map-zoom{position:absolute;right:10px;top:10px;display:flex;gap:4px;z-index:4;background:#fffffff0;border-radius:15px;box-shadow:0 4px 18px #8f634120;padding:3px}
.map-zoom button{padding:5px 10px;font-size:.8rem;min-height:36px;background:transparent}.map-zoom button:first-child,.map-zoom button:last-child{font-size:22px;min-width:36px}
.map-empty{position:absolute;inset:50px 20px auto;text-align:center;max-width:460px;margin:auto}.map-empty h2{font-size:1.1rem}.map-empty p{font-size:.82rem}.map-empty button{display:block;margin:10px auto;font-size:.82rem}
.map-panel{position:absolute;z-index:5;left:8px;right:8px;bottom:8px;background:#fffaf7f5;border:1px solid #efdacf;border-radius:23px;box-shadow:0 8px 30px #8f63412b;overflow:hidden;display:flex;flex-direction:column;max-height:52%;backdrop-filter:blur(8px)}
.map-panel-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:transparent;padding:12px 16px;flex-shrink:0;font-size:.85rem;min-height:46px}.map-panel-toggle small{color:#956d60;font-weight:400}.map-panel-body{display:flex;flex-direction:column;min-height:0;padding:0 10px 10px}.map-panel-body[hidden]{display:none}
.map-search-label{margin:0 2px 6px;font-size:.7rem;gap:4px}.map-search-label input{min-height:38px;font-size:.8rem;padding:8px 12px}.map-filter{display:flex;align-items:center;gap:8px;font-size:.75rem;margin:0 2px 7px}.map-filter input{width:20px;height:20px}
#map-circle-list{overflow:auto;min-height:0;overscroll-behavior:contain}.map-list-row{display:flex;gap:5px;align-items:center;border-top:1px solid #f1e1d6;border-radius:12px}.map-list-row.own{background:#ffe1d7}.map-list-row.active{box-shadow:inset 3px 0 #c24c61}.map-list-row>button{font-size:.75rem;background:transparent;padding:8px}.map-list-focus{display:flex;flex-direction:column;gap:3px;text-align:left;flex:1;min-width:0}.map-list-focus strong{overflow-wrap:anywhere;line-height:1.4}.map-list-space,.map-list-focus small{font-size:.65rem;font-weight:400;color:#886358}
.map-demo-note{margin:0;color:#a64250;background:#ffe6dc;border-radius:10px;padding:5px 10px;font-size:.7rem}.map-hint{margin:0;font-size:.66rem;color:#8b7065}
.map-place-note{position:absolute;left:10px;right:10px;top:58px;z-index:6;background:#fff2c9eF;border:1px solid #e2bf70;border-radius:15px;padding:8px;font-size:.78rem}.map-place-note button{padding:4px 8px;min-height:32px;font-size:.7rem}
.map-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.map-detail-grid>label:first-child{grid-column:1/-1}.map-detail-flags{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:.8rem}.map-detail-flags input[type=color]{padding:4px;width:70px;height:42px}.map-status{display:flex;gap:10px;flex-wrap:wrap;border:1px solid #eddbd0;border-radius:16px}.map-status label{display:flex;align-items:center;gap:4px;font-size:.8rem}.map-status input[type=radio]{width:18px;min-width:18px}
.map-link{display:block;font-size:.8rem;overflow-wrap:anywhere;margin:6px 0}.map-menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.map-menu-grid button{width:100%;padding:0}.map-menu-grid img{width:100%;max-height:220px;object-fit:contain}.map-menu-grid label{display:flex;align-items:center;gap:6px;font-size:.8rem}.map-menu-full{width:100%;height:auto;display:block}.map-detail-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.map-detail-actions button{font-size:.8rem}
.map-want-row{display:grid;grid-template-columns:minmax(0,1fr) 78px 60px;gap:6px;margin:10px 0;padding:10px;background:#fff0e7;border-radius:16px}.map-want-row input{padding:8px;font-size:.8rem;min-height:38px}.map-want-row label{grid-column:1/-1;display:flex;gap:8px;margin:0;font-size:.75rem}.map-want-row input[type=checkbox]{width:20px;min-height:20px;height:20px}
.catalog-status{font-size:.78rem;color:#8a685e;margin:8px 0}.catalog-toolbar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.catalog-toolbar button{font-size:.75rem;min-height:36px}.catalog-event{width:100%;display:flex;align-items:flex-start;flex-direction:column;gap:5px;text-align:left;margin:8px 0;background:linear-gradient(120deg,#ffe3cc,#ffedf0);border:1px solid #f3d6c9}.catalog-event small{font-size:.8rem;font-weight:400;color:#835f53}.catalog-event .catalog-registered{font-size:.7rem;color:#a83d51}.catalog-past{margin-top:18px;border-top:1px solid #efddd2;padding-top:12px}.catalog-past summary{font-size:.8rem;color:#8c756a;cursor:pointer}.catalog-past .catalog-event{background:#faf1eb;box-shadow:none;padding:8px 12px;min-height:40px;font-size:.78rem}.catalog-past .catalog-event small{font-size:.7rem}.catalog-group-title{font-size:.85rem;margin:18px 0 6px}.catalog-error{color:#a33147;font-size:.8rem}
@media(min-width:900px) and (min-height:551px){.map-toolbar{flex-direction:row;justify-content:space-between}.map-panel{left:auto;top:8px;bottom:8px;right:8px;width:310px;max-height:none}.map-panel.collapsed{top:auto;width:230px}.map-panel.expanded .map-panel-body{flex:1}.map-zoom{left:10px;right:auto}.map-empty{right:330px;left:20px}.map-place-note{right:330px}}
@media(orientation:landscape) and (max-height:550px){.map-content{padding:5px!important}.map-toolbar{flex-direction:row;gap:4px}.map-toolbar button{min-height:28px;font-size:.65rem;padding:4px 7px}.map-workspace{min-height:120px;border-radius:15px}.map-panel{top:5px;bottom:5px;right:5px;left:auto;width:260px;max-height:none;border-radius:16px}.map-panel.collapsed{top:auto;width:210px}.map-panel-toggle{min-height:34px;padding:7px 12px;font-size:.75rem}.map-panel-body{flex:1}.map-zoom{left:7px;right:auto;top:7px}.map-hint{display:none}.map-empty{inset:46px 280px 0 12px}.map-empty h2{font-size:.9rem;margin:6px 0}.map-empty p{font-size:.65rem;margin:4px 0}.map-empty button{min-height:30px;margin:5px auto;font-size:.7rem;padding:5px 9px}.map-empty .muted{display:none}.map-place-note{right:280px;top:51px}.map-demo-note{font-size:.6rem;padding:3px 6px}.map-search-label{font-size:.65rem}.map-search-label input{min-height:30px}.map-filter{font-size:.65rem}}

.map-annotations{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none}.map-annotations>*{pointer-events:stroke}.map-annotations rect,.map-annotations text{pointer-events:all}
.map-edit-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:5px;max-height:32vh;overflow:auto;padding:8px;background:#fff0e6;border-radius:14px;flex-shrink:0}.map-edit-toolbar button{min-height:40px;font-size:.8rem;padding:7px 10px}.map-edit-toolbar button[aria-pressed=true]{background:#b94735;color:white}.map-edit-toolbar label{display:flex;align-items:center;gap:4px;margin:0;font-size:.75rem}.map-edit-toolbar input[type=color]{width:40px;height:38px;padding:3px}.map-edit-toolbar select{width:64px;min-height:38px;padding:4px}.map-edit-toolbar p{width:100%;font-size:.7rem;margin:2px;color:#755c50}.map-pin{min-height:40px}.map-pin span{max-width:180px;overflow:hidden;text-overflow:ellipsis;display:block}

.map-viewport.editing .map-pins{visibility:hidden}

.map-edit-toolbar{position:absolute;z-index:8;top:64px;left:8px;right:8px;width:fit-content;max-width:calc(100% - 16px);max-height:45%;background:#fffaf5ed;border:1px solid #efd8cb;box-shadow:0 3px 18px #54301c22;border-radius:26px;gap:5px;padding:6px;backdrop-filter:blur(8px)}
.map-round,.map-edit-toolbar button.map-round{border-radius:50%;width:44px;height:44px;min-width:44px;min-height:44px;padding:11px;display:inline-grid;place-items:center;background:#fff;box-shadow:0 2px 7px #63381b18}.map-round img{width:22px;height:22px;display:block}.map-edit-toolbar button[aria-pressed=true]{background:#ffd29c;outline:2px solid #b94735}.map-edit-toolbar .flip-icon img{transform:scaleX(-1)}.map-edit-toolbar #map-draw-width{width:48px;border-radius:20px;font-size:12px}.map-color-control input[type=color]{border-radius:50%;width:40px;height:40px}.map-manage>div{display:flex;align-items:center;gap:6px;margin:10px 0;flex-wrap:wrap}.map-manage strong{flex:1;overflow-wrap:anywhere}.map-viewport.editing .map-empty{pointer-events:none}
@media(orientation:landscape) and (max-height:550px){.map-edit-toolbar{top:54px;max-height:calc(100% - 66px);right:auto;width:104px}.map-edit-toolbar button.map-round{width:38px;height:38px;min-width:38px;min-height:38px;padding:9px}.map-edit-toolbar .map-round img{width:20px;height:20px}}

.map-view-tabs{display:flex;flex-shrink:0;border-radius:24px;background:#f7e6dc;padding:4px;gap:4px}.map-view-tabs button{flex:1;border-radius:20px;background:transparent;min-height:44px}.map-view-tabs button[aria-selected=true]{background:#d86266;color:white;box-shadow:0 3px 10px #b6573922}.map-list-add{display:none}.map-list-hidden{display:none!important}
.map-panel-heading{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;min-height:44px;padding:4px 8px 4px 12px;gap:5px}.map-panel-drag{flex:1;font-weight:700;font-size:.85rem;cursor:move;touch-action:none;padding:9px 0}.map-panel-drag small{font-weight:400;color:#89695e}.map-panel-controls{display:flex;gap:4px}.map-panel-controls .map-round{width:36px;height:36px;min-width:36px;min-height:36px;padding:9px}.map-close-list img{transform:rotate(45deg)}
.map-panel.map-list-floating{width:min(340px,calc(100% - 16px));left:auto;right:8px;top:auto;bottom:8px;max-height:68%;border-radius:20px}.map-panel.map-list-floating.collapsed{width:min(280px,calc(100% - 16px))}.map-panel-body{flex:1;overflow:hidden}.map-circle-check{display:grid;place-items:center;padding:8px;margin:0;flex:none}.map-circle-check input{width:24px;height:24px;min-height:24px;margin:0;accent-color:#cc5b61}.map-list-count{font-size:.72rem;margin:0 4px 5px;color:#89695e}.map-list-row>button{min-height:48px}.map-list-space,.map-list-focus small{font-size:.75rem}.map-list-focus strong{font-size:.9rem}
.circle-list-mode .map-toolbar,.circle-list-mode>.map-demo-note,.circle-list-mode .map-viewport,.circle-list-mode .map-edit-toolbar,.circle-list-mode .map-hint{display:none}.circle-list-mode .map-list-add{display:block}.circle-list-mode .map-workspace{background:#fffaf6;min-height:0}.map-panel.map-list-full{position:absolute;inset:0;width:auto;max-height:none;box-shadow:none;border:0;border-radius:0;background:transparent}.map-list-full .map-panel-controls{display:none}.map-list-full .map-panel-drag{cursor:default}.map-list-full .map-panel-body{padding:4px 12px 12px}.map-list-full .map-search-label input{font-size:1rem;min-height:44px}.map-list-full .map-filter{font-size:.9rem;margin:8px 2px 12px}
@media(orientation:landscape) and (max-height:550px){.map-view-tabs button{min-height:34px;padding:5px}.map-panel.map-list-floating{max-height:90%;width:min(300px,calc(100% - 16px))}.map-panel-heading{min-height:36px}.map-panel-drag{padding:5px 0}.map-list-full .map-panel-heading{display:none}}

.map-close-list img{transform:none}

.map-onboarding{position:absolute;inset:12px;overflow:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px;gap:9px;user-select:text}.map-onboarding .map-step-number{font-size:clamp(32px,7vw,54px);font-weight:850;letter-spacing:.08em;color:#cc5b61;margin:0}.map-onboarding h2{font-size:clamp(22px,4vw,34px);margin:0}.map-onboarding p{font-size:.9rem;line-height:1.6;max-width:36em;margin:0}.map-onboarding .primary{min-height:52px;font-size:1.05rem;margin:10px 0}.map-step-next{display:flex;flex-direction:column;gap:7px;font-size:.85rem;align-items:start;margin:12px 0}.map-step-summary.done{color:#816b60;font-size:.75rem}.map-step-strip{flex-shrink:0;max-height:25vh;overflow:auto}.map-step-guide{background:#fff2df;border:1px solid #edd4b8;border-radius:14px;padding:10px 13px;font-size:.85rem}.map-step-guide summary{cursor:pointer}.map-step-guide summary b{color:#b74745;margin-right:6px}.map-step-guide summary small{opacity:.65;margin-left:8px}.map-step-guide>div{padding:10px 0}.map-step-guide p{margin:7px 0;line-height:1.6}.map-step-complete{display:flex;gap:8px;flex-wrap:wrap}.circle-list-mode .map-step-strip{display:none}.pdf-page-options{max-height:140px;overflow:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:5px;margin:12px 0}.pdf-page-options label{display:flex;align-items:center;gap:6px;margin:0;padding:8px;background:#fff0e7;border-radius:10px;font-size:.9rem}.pdf-page-options input{width:22px;height:22px;min-height:22px}.pdf-preview-image{display:block;max-width:100%;max-height:260px;object-fit:contain;margin:10px auto}.pdf-import-status{font-size:.9rem;line-height:1.5;color:#aa4947}
@media(orientation:landscape) and (max-height:550px){.map-onboarding{justify-content:flex-start;gap:4px;padding:8px}.map-onboarding .map-step-number{font-size:28px}.map-onboarding h2{font-size:21px}.map-onboarding p{font-size:.75rem}.map-onboarding .primary{min-height:38px;margin:4px 0}.map-step-next{flex-direction:row;margin:5px 0;flex-wrap:wrap}.map-step-guide{padding:5px 10px;font-size:.75rem}}

.map-viewport:has(.map-onboarding){touch-action:pan-y}.map-list-onboarding{text-align:center;padding:24px;line-height:1.7}.map-list-onboarding .map-step-number{font-size:42px;font-weight:850;color:#cc5b61;margin:10px}.map-step-guide summary b{font-size:1.4rem}.map-step-guide summary{font-size:1rem}

.map-completed-row{display:flex;gap:8px;flex-wrap:wrap;margin:3px 6px 6px}

.map-source-note{margin:0;padding:2px 5px;font-size:.68rem;line-height:1.5;color:#8c756c;overflow-wrap:anywhere}.map-source-note a{color:inherit;text-decoration:underline}.catalog-map-note{font-size:.68rem!important;color:#8c756c!important}

.map-list-row{gap:0;align-items:stretch}.map-list-select{display:flex;align-items:center;gap:10px;flex:1;min-width:0;margin:0;padding:12px 10px;cursor:pointer;min-height:64px}.map-list-select input{flex:none;margin:0}.map-list-select:has(input:checked){background:#ffe9df;border-radius:12px}.map-list-row>.map-list-detail{flex:none;min-width:68px;min-height:56px;align-self:center;margin:4px 6px;font-size:.9rem;padding:12px;background:#fff0e8;border:1px solid #edc5b6;border-radius:14px;color:#79473e}.bottom button[data-tab=map]>span:last-child{font-size:.58rem;line-height:1.3}

.map-header{display:flex;align-items:center;gap:10px;justify-content:space-between}.map-header .map-view-tabs{flex:1;margin:0}.map-settings-button{flex:none}.map-settings-menu{display:grid;gap:10px}.map-settings-menu h3{font-size:1rem;margin:14px 0 0}.map-settings-menu h3:first-child{margin-top:0}.map-settings-menu button{width:100%;min-height:52px;text-align:left;padding:14px 16px;background:#fff0e8;border:1px solid #edcfc1;border-radius:14px;font-size:1rem}
.map-own-form{padding:12px;border:1px solid #edcfc1;border-radius:16px;background:#fff9f4}.map-own-form h3{margin:0;font-size:1rem}.map-own-form label{margin:10px 0;font-size:.85rem}.map-own-form p{font-size:.8rem;margin:8px 0}.map-own-form input{min-height:48px}.map-own-form button{min-height:48px}.map-step-optional{margin:8px 0}.map-pin.map-circle-marker,.map-pin.map-circle-marker:active{aspect-ratio:1;height:auto;min-width:0;min-height:0;padding:0;border:3px solid var(--pin-color);border-radius:50%;background:transparent;color:var(--pin-color);box-shadow:none;outline:none;transform:translate(-50%,-50%);overflow:visible}.map-pin.map-circle-marker.own{border-width:4px;outline:none;background:transparent;box-shadow:none}.map-pin.map-circle-marker span{position:absolute;top:calc(100% + 5px);left:50%;transform:translateX(-50%) scale(var(--inverse,1));transform-origin:top center;max-width:180px;color:#633a36;background:#fff9;border-radius:5px;padding:2px 4px;font-size:12px}.map-marker-editor{position:absolute;aspect-ratio:1;border:4px solid #d74755;border-radius:50%;transform:translate(-50%,-50%);touch-action:none;cursor:move;z-index:5;background:transparent}.map-marker-resize{position:absolute;right:0;top:50%;transform:translate(50%,-50%);width:44px;height:44px;min-width:44px;min-height:44px;border-radius:50%;background:transparent;padding:0;touch-action:none;cursor:ew-resize}.map-marker-resize:after{content:'';position:absolute;inset:13px;background:white;border:3px solid #d74755;border-radius:50%;box-shadow:0 1px 6px #6335}.map-marker-note{position:absolute;z-index:6;top:8px;left:8px;right:8px;background:#fff8f2ed;border:1px solid #efb9a8;border-radius:14px;padding:10px;pointer-events:auto}.map-marker-note p{font-size:.8rem;margin:3px 0 8px}.map-marker-note button{min-height:44px;margin-right:8px}

/* Steps stay stationary; never put instructions inside a nested scroller. */
.map-step-strip{max-height:none;overflow:visible;min-width:0}.map-step-strip:empty{display:none}
.map-own-form{padding:8px 10px;border-radius:12px}.map-own-form h3{font-size:.85rem;line-height:1.4;margin:0 0 6px;overflow-wrap:anywhere}.map-own-form h3 b{color:#b74745;margin-right:8px}.map-own-input-row{display:flex;align-items:center;gap:8px}.map-own-input-row input{flex:1;min-width:0;min-height:44px;padding:9px 12px}.map-own-input-row button{flex:none;min-height:44px;padding:9px 14px;font-size:.85rem}.map-own-form .error{margin:4px 0 0}.map-own-form .error:empty{display:none}
.map-onboarding{overflow:visible;gap:6px;padding:12px}.map-onboarding .map-step-number{font-size:22px}.map-onboarding h2{font-size:20px}.map-onboarding p{font-size:.8rem}.map-onboarding .primary{min-height:44px;margin:4px 0;font-size:.9rem}.map-onboarding .map-step-next,.map-onboarding>.muted{display:none}.map-list-onboarding{padding:12px}.map-list-onboarding .map-step-number{font-size:22px;margin:4px}.map-list-onboarding h2{font-size:20px;margin:6px 0}
@media(orientation:landscape) and (max-height:550px){.map-own-form{display:flex;align-items:center;gap:10px;padding:6px 10px;flex-wrap:wrap}.map-own-form h3{margin:0;flex:0 1 auto;font-size:.8rem}.map-own-input-row{flex:1;min-width:170px}.map-own-form .error{flex-basis:100%}}

.map-edit-button{flex:none}.map-edit-button[aria-pressed=true]{background:#ffd29c;outline:2px solid #b94735}.map-step-summary button{margin-left:10px;min-height:40px}.map-edit-toolbar{max-height:40%}

/* Editing owns input: prevent browser selection and background actions. */
body:has(.map-viewport.editing),body:has(.map-viewport.editing) *{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.map-viewport.editing,.map-viewport.editing *{-webkit-user-drag:none}
.map-viewport.editing .map-zoom{visibility:hidden;pointer-events:none}
body:has(.map-viewport.editing) .map-header,body:has(.map-viewport.editing) .map-toolbar{opacity:.45}
