@charset "UTF-8";:root{--surface-0: #141414;--surface-1: #1e1e1e;--surface-2: #252526;--surface-3: #2f2f33;--surface-4: #3a3a40;--border-default: #3e3e42;--border-strong: #55555c;--text-primary: #e6e6e6;--text-secondary: #a9a9b0;--text-disabled: #6b6b72;--accent: #7c5cff;--accent-hover: #6a4be6;--focus: #66b3ff;--focus-strong: #007acc;--gold: #d4a94f;--danger: #ef4444;--success: #10b981;--warning: #f59e0b;--talk: #2fd0d0;--talk-strong: #178c8c;--selected-bg: #37373d;--canvas-margin: #1e1e1e;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--radius-1: 4px;--radius-2: 8px;--radius-3: 12px;--hit-target: 32px;--font-ui: "Segoe UI", "Hiragino Sans", "Noto Sans JP", sans-serif;--fs-xs: .75rem;--fs-sm: .85rem;--fs-md: 1rem;--fs-lg: 1.15rem;--dur-fast: .12s;--dur-med: .2s;--ease: cubic-bezier(.2, .8, .2, 1);--z-panel: 100;--z-float: 1000;--z-modal: 2000;--z-toast: 3000;--z-tour: 100000}:root[data-theme=sepia]{--surface-0: #efe6d8;--surface-1: #f5ecdd;--surface-2: #eadfca;--surface-3: #e0d3b8;--surface-4: #d5c6a8;--border-default: #c2b299;--border-strong: #a08e6f;--text-primary: #3a3226;--text-secondary: #6b5f4b;--text-disabled: #a09173;--selected-bg: #d5c6a8;--canvas-margin: #d8c6ae}.waypoint-panel{position:absolute;bottom:30px;right:30px;left:auto;background-color:#1e1e1ef2;padding:var(--space-4);border-radius:var(--radius-2);border:1px solid var(--focus-strong);box-shadow:0 4px 20px #0009;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);z-index:var(--z-panel);min-width:240px;max-width:300px}.waypoint-panel.is-saved{border-color:var(--success)}.waypoint-panel--bottom{position:absolute;left:8px;right:8px;bottom:8px;max-width:none;max-height:45vh;overflow-y:auto}.waypoint-panel--bottom.is-collapsed{max-height:none}.waypoint-panel--dock{position:static;flex:0 0 auto;max-height:48%;overflow-y:auto;max-width:none;border-radius:0;border-left:none;border-right:none;border-bottom:none}.waypoint-panel--dock.is-collapsed{max-height:none}.waypoint-panel input[type=number]::-webkit-inner-spin-button,.waypoint-panel input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.waypoint-panel input[type=number]{-moz-appearance:textfield}.waypoint-panel__header{display:flex;align-items:center;gap:var(--space-2);width:100%}.waypoint-panel__collapse-btn{background:none;border:1px solid var(--border-strong);color:var(--text-secondary);border-radius:var(--radius-1);width:22px;height:22px;cursor:pointer;font-size:var(--fs-xs);flex-shrink:0;display:flex;align-items:center;justify-content:center}.waypoint-panel__summary{font-size:var(--fs-sm);color:var(--text-secondary);flex:1}.waypoint-panel__body{width:100%;display:flex;flex-direction:column;gap:5px;max-height:300px;overflow-y:auto}.waypoint-panel__start-condition{display:flex;flex-direction:column;gap:5px;padding-bottom:var(--space-2);margin-bottom:var(--space-2);border-bottom:1px solid var(--border-default)}.waypoint-panel__start-condition-title{font-size:var(--fs-xs);color:var(--text-secondary)}.waypoint-panel__start-condition-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.waypoint-panel__start-condition-text{font-size:var(--fs-xs);color:var(--text-primary)}.waypoint-panel__select{background:var(--surface-3);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-1);padding:3px 6px;font-size:var(--fs-xs);max-width:120px}.waypoint-panel__delay-input{width:52px;background:var(--surface-2);border:1px solid var(--border-default);color:var(--text-primary);padding:4px;border-radius:var(--radius-1);text-align:right}.waypoint-panel__delay-unit{font-size:.7rem;color:var(--text-disabled)}.waypoint-panel__show-before-start{display:flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--text-primary);cursor:pointer}.waypoint-panel__row{display:flex;align-items:center;gap:5px}.waypoint-panel__row-segment{width:4px;height:24px;border-radius:2px;background-color:var(--seg-color, transparent);margin-right:2px}.waypoint-panel__row-index{font-size:var(--fs-sm);color:var(--text-secondary);width:20px;text-align:center}.waypoint-panel__row-input{flex:1;background:var(--surface-4);color:var(--text-primary);padding:4px;border-radius:var(--radius-1);font-size:.9rem;border:1px solid var(--border-strong);box-shadow:none}.waypoint-panel__row-input.is-target{border-color:var(--focus);box-shadow:0 0 0 2px #66b3ff40}.waypoint-panel__row-actions{display:flex;align-items:center;gap:3px;width:80px;justify-content:flex-end}.waypoint-panel__row-actions-spacer{width:24px}.waypoint-panel__row-actions-spacer--stay{width:30px}.waypoint-panel__row-actions-spacer--remove{width:20px}.waypoint-panel__sync-btn{background:var(--surface-3);border:1px solid var(--border-strong);color:var(--gold);width:24px;height:24px;border-radius:var(--radius-1);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.9rem}.waypoint-panel__stay-input{width:30px;background:var(--surface-3);border:1px solid var(--border-strong);color:var(--success);padding:4px;border-radius:var(--radius-1);font-size:var(--fs-xs);text-align:right}.waypoint-panel__remove-btn{background:var(--surface-4);border:none;color:var(--text-secondary);width:20px;height:20px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs)}.waypoint-panel__add-stop{margin-top:5px;background:none;border:1px dashed var(--border-strong);color:var(--text-secondary);padding:4px;border-radius:var(--radius-1);cursor:pointer;font-size:var(--fs-xs);width:100%}.waypoint-panel__candidates{width:100%;border-top:1px solid var(--border-default)}.waypoint-panel__candidates-head{display:flex;align-items:center;justify-content:space-between;padding:4px 0}.waypoint-panel__candidates-title{font-size:var(--fs-xs);color:var(--text-secondary)}.waypoint-panel__candidates-close{background:none;border:1px solid var(--border-strong);border-radius:var(--radius-1);color:var(--text-secondary);width:28px;height:28px;cursor:pointer}.waypoint-panel__candidates-body{max-height:30vh;overflow-y:auto}.waypoint-panel__sync-constraints{border-top:1px solid var(--border-default);padding-top:var(--space-2);margin-top:4px;display:flex;flex-direction:column;gap:3px;width:100%}.waypoint-panel__sync-constraints-title{font-size:.7rem;color:var(--text-disabled);margin-bottom:2px}.waypoint-panel__sync-item{display:flex;align-items:center;gap:5px;padding:3px 6px;border-radius:var(--radius-1);background:#ffffff08;border:1px solid transparent}.waypoint-panel__sync-item.is-anchor{background:#d4a94f1a;border-color:#d4a94f4d}.waypoint-panel__sync-icon{color:var(--gold);font-size:.85rem}.waypoint-panel__sync-info{flex:1;min-width:0}.waypoint-panel__sync-name{color:var(--text-primary);font-size:.78rem;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.waypoint-panel__sync-meta{color:var(--text-disabled);font-size:.68rem}.waypoint-panel__sync-anchor-badge{font-size:.62rem;color:var(--focus-strong);white-space:nowrap}.waypoint-panel__sync-remove{background:none;border:none;color:var(--text-disabled);cursor:pointer;font-size:var(--fs-xs);line-height:1;padding:0 2px;flex-shrink:0}.waypoint-panel__status{color:var(--text-primary);font-size:.9rem;text-align:center}.waypoint-panel__status-empty{color:var(--text-disabled)}.waypoint-panel__status-value--saved{color:var(--success)}.waypoint-panel__status-value--path{color:#fff}.waypoint-panel__actions{display:flex;align-items:center;gap:var(--space-2)}.waypoint-panel__icons{display:flex}.waypoint-panel__icon{border-radius:50%;object-fit:cover}.waypoint-panel__icon--saved{width:40px;height:40px;border:2px solid var(--success)}.waypoint-panel__icon--pending{width:36px;height:36px;border:2px solid var(--focus-strong)}.waypoint-panel__icon-placeholder{width:36px;height:36px;border-radius:50%;border:2px dashed var(--text-disabled);display:flex;align-items:center;justify-content:center;color:var(--text-disabled)}.waypoint-panel__btn{border:none;padding:8px 12px;border-radius:var(--radius-1);cursor:pointer;font-weight:700;font-size:.9rem;color:#fff}.waypoint-panel__btn--edit{background-color:var(--warning)}.waypoint-panel__btn--delete{background-color:var(--danger)}.waypoint-panel__btn--save{background-color:var(--accent);padding:8px 16px;font-size:.85rem}.waypoint-panel__btn--save:disabled{background-color:var(--surface-4);cursor:not-allowed}.waypoint-panel__btn--delete-lg{background-color:var(--danger);padding:8px 16px;font-size:.85rem}@media(pointer:coarse){.waypoint-panel__collapse-btn{width:40px;height:40px;font-size:var(--fs-sm)}.waypoint-panel__sync-btn{width:40px;height:40px}.waypoint-panel__remove-btn{width:36px;height:36px}.waypoint-panel__stay-input{width:48px;min-height:36px;font-size:16px}.waypoint-panel__delay-input{min-height:36px;font-size:16px}.waypoint-panel__row-input{min-height:40px;font-size:16px}.waypoint-panel__select{min-height:36px}.waypoint-panel__add-stop{min-height:40px}.waypoint-panel__row-actions{width:auto}.waypoint-panel__btn{min-height:44px}.node-candidate-list__item{min-height:40px}.floor-segment button{min-height:44px}}.route-dock{position:relative;width:300px;flex-shrink:0;height:100%;background-color:var(--surface-1);border-left:1px solid var(--border-strong);display:flex;flex-direction:column;z-index:var(--z-panel);overflow:hidden}.route-dock.is-saved{border-left-color:var(--success)}.route-dock--collapsed{width:24px}.route-dock__expand-btn{width:100%;height:100%;background:var(--surface-2);border:none;color:var(--text-secondary);cursor:pointer;font-size:var(--fs-sm)}.route-dock input[type=number]::-webkit-inner-spin-button,.route-dock input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.route-dock input[type=number]{-moz-appearance:textfield}.route-dock__header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);border-bottom:1px solid var(--border-default);flex-shrink:0}.route-dock__title{font-size:var(--fs-sm);color:var(--text-secondary);flex:1}.route-dock__collapse-btn{background:none;border:1px solid var(--border-strong);color:var(--text-secondary);border-radius:var(--radius-1);width:22px;height:22px;cursor:pointer;font-size:var(--fs-xs);flex-shrink:0}.route-dock__body{flex:1;min-height:0;overflow-y:auto;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-3)}.route-dock__section{display:flex;flex-direction:column;gap:5px;padding-bottom:var(--space-2);border-bottom:1px solid var(--border-default)}.route-dock__section:last-child{border-bottom:none;padding-bottom:0}.route-dock__section-title{font-size:var(--fs-xs);color:var(--text-secondary)}.route-dock__section-title-row{display:flex;align-items:center;justify-content:space-between}.route-dock__candidates{background:var(--surface-2);border-radius:var(--radius-1);padding:var(--space-2);margin:0 calc(var(--space-2) * -1)}.route-dock__candidates-close{background:none;border:none;color:var(--text-disabled);cursor:pointer;font-size:1.1rem;line-height:1}.route-dock__start-condition-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.route-dock__start-condition-text{font-size:var(--fs-xs);color:var(--text-primary)}.route-dock__select{background:var(--surface-3);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-1);padding:3px 6px;font-size:var(--fs-xs);max-width:120px}.route-dock__delay-input{width:52px;background:var(--surface-2);border:1px solid var(--border-default);color:var(--text-primary);padding:4px;border-radius:var(--radius-1);text-align:right}.route-dock__delay-unit{font-size:.7rem;color:var(--text-disabled)}.route-dock__show-before-start{display:flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--text-primary);cursor:pointer}.route-dock__row{display:flex;align-items:center;gap:5px}.route-dock__row-segment{width:4px;height:24px;border-radius:2px;background-color:var(--seg-color, transparent);margin-right:2px}.route-dock__row-index{font-size:var(--fs-sm);color:var(--text-secondary);width:20px;text-align:center}.route-dock__row-input{flex:1;min-width:0;background:var(--surface-4);color:var(--text-primary);padding:4px;border-radius:var(--radius-1);font-size:.9rem;border:1px solid var(--border-strong);box-shadow:none}.route-dock__row-input.is-target{border-color:var(--focus);box-shadow:0 0 0 2px #66b3ff40}.route-dock__row-actions{display:flex;align-items:center;gap:3px;width:80px;flex-shrink:0;justify-content:flex-end}.route-dock__row-actions-spacer{width:24px}.route-dock__row-actions-spacer--stay{width:30px}.route-dock__row-actions-spacer--remove{width:20px}.route-dock__sync-btn{background:var(--surface-3);border:1px solid var(--border-strong);color:var(--gold);width:24px;height:24px;border-radius:var(--radius-1);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.9rem}.route-dock__stay-input{width:30px;background:var(--surface-3);border:1px solid var(--border-strong);color:var(--success);padding:4px;border-radius:var(--radius-1);font-size:var(--fs-xs);text-align:right}.route-dock__remove-btn{background:var(--surface-4);border:none;color:var(--text-secondary);width:20px;height:20px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs)}.route-dock__add-stop{margin-top:5px;background:none;border:1px dashed var(--border-strong);color:var(--text-secondary);padding:4px;border-radius:var(--radius-1);cursor:pointer;font-size:var(--fs-xs);width:100%}.route-dock__sync-item{display:flex;align-items:center;gap:5px;padding:3px 6px;border-radius:var(--radius-1);background:#ffffff08;border:1px solid transparent;margin-top:3px}.route-dock__sync-item.is-anchor{background:#d4a94f1a;border-color:#d4a94f4d}.route-dock__sync-icon{color:var(--gold);font-size:.85rem}.route-dock__sync-info{flex:1;min-width:0}.route-dock__sync-name{color:var(--text-primary);font-size:.78rem;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.route-dock__sync-meta{color:var(--text-disabled);font-size:.68rem}.route-dock__sync-anchor-badge{font-size:.62rem;color:var(--focus-strong);white-space:nowrap}.route-dock__sync-remove{background:none;border:none;color:var(--text-disabled);cursor:pointer;font-size:var(--fs-xs);line-height:1;padding:0 2px;flex-shrink:0}.route-dock__footer{flex-shrink:0;padding:var(--space-3);border-top:1px solid var(--border-default);display:flex;flex-direction:column;gap:var(--space-2);align-items:center}.route-dock__status{color:var(--text-primary);font-size:.9rem;text-align:center}.route-dock__status-empty{color:var(--text-disabled)}.route-dock__status-value--saved{color:var(--success)}.route-dock__status-value--path{color:#fff}.route-dock__actions{display:flex;align-items:center;gap:var(--space-2)}.route-dock__icons{display:flex}.route-dock__icon{border-radius:50%;object-fit:cover}.route-dock__icon--saved{width:40px;height:40px;border:2px solid var(--success)}.route-dock__icon--pending{width:36px;height:36px;border:2px solid var(--focus-strong)}.route-dock__icon-placeholder{width:36px;height:36px;border-radius:50%;border:2px dashed var(--text-disabled);display:flex;align-items:center;justify-content:center;color:var(--text-disabled)}.route-dock__btn{border:none;padding:8px 12px;border-radius:var(--radius-1);cursor:pointer;font-weight:700;font-size:.9rem;color:#fff}.route-dock__btn--edit{background-color:var(--warning)}.route-dock__btn--delete{background-color:var(--danger)}.route-dock__btn--save{background-color:var(--accent);padding:8px 16px;font-size:.85rem}.route-dock__btn--save:disabled{background-color:var(--surface-4);cursor:not-allowed}.route-dock__btn--delete-lg{background-color:var(--danger);padding:8px 16px;font-size:.85rem}.node-candidate-list{display:flex;flex-direction:column;gap:4px;max-height:240px;overflow-y:auto}.node-candidate-list__empty{color:var(--text-disabled);font-size:.85rem;text-align:center;padding:var(--space-3) 0}.node-candidate-list__divider{color:var(--text-disabled);text-align:center;margin:6px 0;font-size:.75rem}.node-candidate-list__item{padding:6px 10px;border-radius:var(--radius-1);cursor:pointer;background:var(--surface-3);color:var(--text-primary);font-size:.85rem;display:flex;justify-content:space-between;align-items:center}.node-candidate-list__item.is-selected{background:var(--focus-strong);color:#fff}.node-candidate-list__item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-candidate-list__item-floor{font-size:.7rem;color:var(--text-disabled);background:var(--surface-1);padding:2px 6px;border-radius:10px;margin-left:8px;flex-shrink:0}@font-face{font-family:Yomogi;src:url(/fonts/Yomogi-Regular.ttf) format("truetype");font-display:swap}*{scrollbar-width:none;-ms-overflow-style:none}*::-webkit-scrollbar{display:none}*{caret-color:transparent;user-select:none;-webkit-user-select:none}input,textarea,[contenteditable=true],[contenteditable=""]{caret-color:auto;user-select:text;-webkit-user-select:text}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible,[role=button]:focus-visible{outline:2px solid var(--focus, #66b3ff);outline-offset:1px;border-radius:3px}html,body{overscroll-behavior:none}body{margin:0;padding:0;background-color:var(--surface-1);color:var(--text-secondary);font-family:Segoe UI,sans-serif;overflow:hidden}.konvajs-content{touch-action:none}.app-container{display:flex;height:100vh;width:100vw;--sidebar-width: 250px;--scale-factor: calc(var(--sidebar-width) / 250)}.app-container .nav-rail{width:64px;flex-shrink:0;background-color:var(--surface-2);border-right:1px solid var(--border-default);display:flex;flex-direction:column;align-items:center;padding:8px 0 64px;gap:6px;user-select:none;-webkit-user-select:none}.app-container .nav-rail .nav-rail-logo{width:46px;margin-bottom:6px;display:flex;align-items:center;justify-content:center}.app-container .nav-rail .nav-rail-logo img{width:100%;height:auto;object-fit:contain;display:block}.app-container .nav-rail .nav-rail-pages{display:flex;flex-direction:column;gap:4px;width:100%;align-items:center}.app-container .nav-rail .nav-rail-item{width:56px;background:transparent;border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;padding:8px 0 6px;display:flex;flex-direction:column;align-items:center;gap:3px;transition:all .15s}.app-container .nav-rail .nav-rail-item .nav-rail-icon{font-size:1.15rem;line-height:1}.app-container .nav-rail .nav-rail-item .nav-rail-label{font-size:.62rem;letter-spacing:.02em}.app-container .nav-rail .nav-rail-item:hover{background:var(--surface-4);color:var(--text-primary)}.app-container .nav-rail .nav-rail-item.active{background:#7c5cff26;color:var(--text-primary);box-shadow:inset 3px 0 0 var(--accent)}.app-container .context-panel{background-color:var(--surface-2);border-right:1px solid var(--border-default);display:flex;flex-direction:row;position:relative;flex-shrink:0;user-select:none;-webkit-user-select:none}.app-container .context-panel .context-panel-content{flex:1;display:flex;flex-direction:column;padding:10px;overflow-y:auto;overflow-x:hidden;--dynamic-font-size-base: clamp(12px, calc(14px * var(--scale-factor)), 14px);--dynamic-font-size-small: clamp(10px, calc(12px * var(--scale-factor)), 12px)}.app-container .context-panel .context-panel-content .context-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border-default)}.app-container .context-panel .context-panel-content .context-panel-header .context-panel-title{font-size:.8rem;font-weight:700;color:var(--text-secondary)}.app-container .context-panel .context-panel-content .context-panel-header .collapse-btn{background:transparent;border:1px solid var(--border-strong);border-radius:4px;color:var(--text-secondary);cursor:pointer;padding:2px 7px;font-size:.75rem;line-height:1}.app-container .context-panel .context-panel-content .context-panel-header .collapse-btn:hover{color:var(--text-primary);background:var(--surface-4)}.app-container .context-panel .context-panel-content .section-title{font-size:var(--dynamic-font-size-small);font-weight:700;margin-top:20px;margin-bottom:10px;text-transform:uppercase;color:var(--text-secondary);white-space:nowrap}.app-container .context-panel .context-panel-content .menu-item{padding:8px 12px;cursor:pointer;border-radius:4px;margin-bottom:2px;display:flex;align-items:center;transition:background-color .2s;font-size:var(--dynamic-font-size-base);white-space:nowrap}.app-container .context-panel .context-panel-content .menu-item:hover{background-color:var(--surface-4)}.app-container .context-panel .context-panel-content .menu-item.active{background-color:var(--selected-bg);color:var(--text-primary);border-left:3px solid var(--focus-strong)}.app-container .context-panel .context-panel-content .sub-menu-container{display:flex;flex-direction:column;margin-left:20px;border-left:1px solid var(--border-strong);margin-bottom:10px}.app-container .context-panel .context-panel-content .sub-menu-container .sub-menu-item{position:relative;padding:6px 10px 6px 15px;font-size:var(--dynamic-font-size-base);color:var(--text-secondary);cursor:pointer;transition:all .2s;white-space:nowrap}.app-container .context-panel .context-panel-content .sub-menu-container .sub-menu-item:before{content:"";position:absolute;top:50%;left:0;width:10px;height:1px;background-color:var(--border-strong)}.app-container .context-panel .context-panel-content .sub-menu-container .sub-menu-item:hover{color:var(--text-primary);background-color:#ffffff0d}.app-container .context-panel .context-panel-content .sub-menu-container .sub-menu-item.active{color:var(--focus-strong);font-weight:700;background-color:#007acc1a}.app-container .context-panel .context-panel-content .icon-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1px,8px * var(--scale-factor),8px);padding:clamp(1px,4px * var(--scale-factor),4px)}.app-container .context-panel .context-panel-content .icon-grid .icon-item{aspect-ratio:1/1;background-color:var(--surface-4);border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px;transition:transform .2s}.app-container .context-panel .context-panel-content .icon-grid .icon-item:hover{background-color:var(--selected-bg);transform:scale(1.05)}.app-container .context-panel .context-panel-content .icon-grid .icon-item.selected{background-color:var(--selected-bg);border:2px solid var(--focus-strong);box-shadow:0 0 8px #007acc80}.app-container .context-panel .context-panel-content .icon-grid .icon-item img{width:100%;height:100%;object-fit:contain}.app-container .context-panel .resizer{width:5px;height:100%;background-color:transparent;cursor:col-resize;position:absolute;top:0;right:0;z-index:10;transition:background-color .2s}.app-container .context-panel .resizer:hover{background-color:var(--focus-strong)}.app-container .main-content{flex:1;display:flex;flex-direction:column;background-color:var(--surface-1);overflow:hidden}.app-container .main-content .context-bar{height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px;border-bottom:1px solid var(--border-default);background-color:var(--surface-2);flex-shrink:0;user-select:none;-webkit-user-select:none}.app-container .main-content .context-bar .context-bar-left{display:flex;align-items:center;gap:8px;flex-shrink:0}.app-container .main-content .context-bar .context-bar-left .expand-btn{background:transparent;border:1px solid var(--border-strong);border-radius:4px;color:var(--text-secondary);cursor:pointer;padding:2px 7px;font-size:.75rem;line-height:1}.app-container .main-content .context-bar .context-bar-left .expand-btn:hover{color:var(--text-primary);background:var(--surface-4)}.app-container .main-content .context-bar .context-bar-left .context-bar-title{font-size:.9rem;font-weight:700;color:var(--text-primary);white-space:nowrap}.app-container .main-content .context-bar .context-bar-center{display:flex;align-items:center;gap:12px;flex:1;min-width:0;overflow-x:auto}.app-container .main-content .context-bar .context-bar-selection{flex:1;min-width:0;display:flex;align-items:center;overflow-x:auto;overflow-y:hidden}.app-container .main-content .context-bar .context-bar-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.app-container .main-content .context-bar .progress-chip{display:flex;align-items:center;gap:5px;padding:2px 8px;border-radius:15px;flex-shrink:0}.app-container .main-content .context-bar .progress-chip .chip-label{font-size:.7rem;font-weight:700}.app-container .main-content .context-bar .progress-chip.done{background:#1e3a2f;border:1px solid var(--success, #10b981)}.app-container .main-content .context-bar .progress-chip.done .chip-label{color:var(--success, #10b981)}.app-container .main-content .context-bar .progress-chip.todo{background:var(--surface-3);border:1px solid var(--border-strong)}.app-container .main-content .context-bar .progress-chip.todo .chip-label{color:var(--text-secondary)}.app-container .main-content .workspace{flex:1;position:relative;background-color:var(--surface-0);overflow:hidden}.app-container .main-content .workspace .konvajs-content{background-color:#111}.app-container.mobile{display:block}.mobile-shell{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden;background-color:var(--surface-1)}.mobile-shell .mobile-appbar{height:44px;flex-shrink:0;display:flex;align-items:center;gap:10px;padding:0 12px;background:var(--surface-2);border-bottom:1px solid var(--border-default);-webkit-user-select:none;user-select:none}.mobile-shell .mobile-appbar .appbar-menu{background:transparent;border:1px solid var(--border-strong);border-radius:6px;color:var(--text-secondary);font-size:1.15rem;cursor:pointer;padding:4px 11px;line-height:1;min-height:34px}.mobile-shell .mobile-appbar .appbar-title{font-weight:700;color:var(--text-primary);font-size:.95rem;flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-shell .mobile-appbar .appbar-slot{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:6px;overflow-x:auto}.mobile-shell .mobile-appbar .appbar-slot::-webkit-scrollbar{height:0}.mobile-shell .mobile-appbar .appbar-floor-segment{display:flex;gap:4px;flex-shrink:0}.mobile-shell .mobile-appbar .appbar-floor-segment button{background:var(--surface-3);border:1px solid var(--border-strong);color:var(--text-secondary);border-radius:6px;padding:4px 10px;font-size:.8rem;min-height:30px;cursor:pointer}.mobile-shell .mobile-appbar .appbar-floor-segment button.active{background:#7c5cff26;border-color:var(--accent);color:var(--text-primary)}.mobile-shell .mobile-appbar .appbar-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.mobile-shell .note-viewseg{display:flex;align-items:center;gap:2px;flex-shrink:0;background:#1e1e1ed9;border:1px solid var(--border-default, #444);border-radius:8px;padding:2px}.mobile-shell .mobile-workspace{flex:1;position:relative;overflow:hidden;background:#111}.mobile-shell .mobile-workspace .konvajs-content{background:#111}.mobile-shell .mobile-tabbar{flex-shrink:0;display:flex;background:var(--surface-2);border-top:1px solid var(--border-default);padding-bottom:env(safe-area-inset-bottom);-webkit-user-select:none;user-select:none}.mobile-shell .mobile-tabbar .tab{flex:1;background:transparent;border:none;cursor:pointer;color:var(--text-secondary);display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 10px;min-height:56px}.mobile-shell .mobile-tabbar .tab .tab-icon{font-size:1.3rem;line-height:1}.mobile-shell .mobile-tabbar .tab .tab-label{font-size:.68rem}.mobile-shell .mobile-tabbar .tab.active{color:var(--text-primary)}.mobile-shell .mobile-tabbar .tab.active .tab-icon{filter:drop-shadow(0 0 6px var(--accent, #7c5cff))}.mobile-shell .mobile-tabbar .tab:disabled{opacity:.6}.floor-segment{flex-shrink:0;display:flex;gap:4px;padding:6px 8px;background:var(--surface-2);border-bottom:1px solid var(--border-default)}.floor-segment button{flex:1;background:var(--surface-3);border:1px solid var(--border-strong);color:var(--text-secondary);border-radius:6px;padding:8px 0;font-size:.9rem;cursor:pointer;min-height:36px}.floor-segment button.active{background:#7c5cff26;border-color:var(--accent);color:var(--text-primary)}.animate-mobile{display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden;background:#111}.animate-mobile .animate-mobile-map{flex:0 1 auto;min-height:80px;position:relative;overflow:hidden}.animate-mobile .animate-mobile-note{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;border-top:1px solid var(--border-default)}.animate-mobile .animate-mobile-note.collapsed{flex:0 0 36px}.animate-mobile .animate-mobile-note .note-collapse-row{flex:0 0 36px;display:flex;align-items:stretch;min-width:0;background:var(--surface-2)}.animate-mobile .animate-mobile-note .note-collapse-bar{flex:0 0 auto;background:var(--surface-2);border:none;color:var(--text-secondary);font-size:.8rem;text-align:left;padding:0 12px;cursor:pointer;white-space:nowrap}.animate-mobile .animate-mobile-note .note-viewseg-slot{flex:0 0 auto;display:flex;align-items:center;padding:0 6px}.animate-mobile .animate-mobile-note .note-selection-slot{flex:1;min-width:0;display:flex;align-items:center;overflow-x:auto;-webkit-overflow-scrolling:touch}.animate-mobile .animate-mobile-note .note-body{flex:1;min-height:0;position:relative;overflow:hidden}.animate-mobile .animate-mobile-playbar{flex-shrink:0;background:var(--surface-3);border-top:1px solid var(--border-default);max-height:34vh;overflow-y:auto}@media(pointer:coarse){.char-sidebar .shapes-grid button,.char-sidebar .tool-buttons>button{min-height:40px}.note-selection-slot button,.note-selection-slot input[type=color]{min-height:32px;min-width:32px}input[type=range]{min-height:32px}}.event-list-item{padding:5px 8px;border-radius:4px;cursor:pointer;font-size:.78rem;color:var(--text-primary)}.event-list-item:hover{background:var(--surface-4)}.floorpane-zoom-reset{position:absolute;top:6px;right:6px;z-index:5;min-width:40px;min-height:40px;border-radius:8px;background:#0009;border:1px solid var(--border-strong);color:#fff;font-size:1.1rem;cursor:pointer}.mobile-editbar{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:4px 8px;background:#007acc26;border-bottom:1px solid var(--focus-strong)}.mobile-editbar__label{flex:1;min-width:0;font-size:.78rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-editbar__btn{min-height:40px;min-width:64px;background:var(--surface-3);border:1px solid var(--border-strong);border-radius:6px;color:var(--text-primary);font-size:.85rem;cursor:pointer}.mobile-editbar__btn--done{background:var(--accent);border-color:var(--accent);color:#fff}.bottom-sheet{max-height:90vh;max-height:90dvh}.bottom-sheet--half{height:55vh;height:55dvh}.bottom-sheet--full{height:90vh;height:90dvh}.bottom-sheet--auto{height:auto}.waypoint-panel--dock,.waypoint-panel__body,.bottom-sheet,.animate-mobile-playbar,.node-candidate-list,.mobile-workspace{overscroll-behavior:contain}button,a,select,label,input,[role=button],[tabindex]{touch-action:manipulation}.modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#0009;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background-color:var(--surface-1, #1e1e1e);border:1px solid var(--border-default, #333);border-radius:8px;width:320px;padding:20px;box-shadow:0 10px 25px #00000080;color:var(--text-primary, #e0e0e0);font-family:sans-serif}.modal-content h3{margin-top:0;margin-bottom:20px;font-size:1.1rem;color:var(--text-primary, #fff);border-bottom:1px solid var(--border-default, #333);padding-bottom:10px}.modal-content .form-group{margin-bottom:15px}.modal-content .form-group label{display:block;margin-bottom:5px;font-size:.85rem;color:var(--text-secondary, #aaa)}.modal-content .form-group select,.modal-content .form-group input{width:100%;padding:8px;background-color:var(--surface-3, #2d2d2d);border:1px solid var(--border-strong, #444);border-radius:4px;color:var(--text-primary, #fff);font-size:.9rem;box-sizing:border-box}.modal-content .form-group select:focus,.modal-content .form-group input:focus{outline:none;border-color:#007acc}.modal-content .modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.modal-content .modal-actions button{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.modal-content .modal-actions button.btn-cancel{background-color:transparent;color:var(--text-secondary, #aaa)}.modal-content .modal-actions button.btn-cancel:hover{color:var(--text-primary, #fff)}.modal-content .modal-actions button.btn-save{background-color:#007acc;color:#fff;font-weight:700}.modal-content .modal-actions button.btn-save:hover{background-color:#0063a5}.modal-content .modal-actions button.btn-delete{background-color:#ef4444;color:#fff;margin-right:auto}.modal-content .modal-actions button.btn-delete:hover{background-color:#dc2626}
