.app-footer[data-v-f0a8ba36]{width:100%;max-width:100%;min-height:34px;display:flex;align-items:center;justify-content:center;padding:8px 12px;overflow-wrap:anywhere;border-top:1px solid var(--border-color);color:var(--text-muted);font-size:11px;line-height:1.5;text-align:center;background:color-mix(in srgb,var(--bg-primary) 88%,transparent)}.app-footer a[data-v-f0a8ba36]{max-width:100%;color:inherit;text-decoration:none;border-radius:4px;transition:color .16s ease,text-decoration-color .16s ease}.app-footer a[data-v-f0a8ba36]:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.app-footer a[data-v-f0a8ba36]:focus-visible{color:var(--accent);outline:2px solid var(--accent);outline-offset:3px}*,*:before,*:after{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{min-width:320px;background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased}button,input,select{color:inherit;font:inherit}button,select{cursor:pointer}button:disabled,select:disabled,input:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3,p{margin:0}a{color:inherit}:root{color-scheme:dark;--bg-primary: #07101d;--bg-secondary: #0b1627;--bg-elevated: #111f34;--panel-bg: rgba(14, 27, 46, .88);--panel-bg-hover: rgba(21, 39, 64, .96);--border-color: rgba(148, 163, 184, .15);--border-strong: rgba(94, 208, 255, .28);--text-primary: #f3f8ff;--text-secondary: #91a4be;--text-muted: #62748d;--accent: #43c7f4;--accent-strong: #19aee4;--accent-secondary: #818cf8;--success: #35d399;--warning: #fbbf24;--danger: #fb7185;--grid-background: #071321;--grid-cell: rgba(15, 29, 48, .72);--grid-line: rgba(132, 157, 188, .22);--grid-line-strong: rgba(148, 181, 219, .36);--grid-hover: rgba(67, 199, 244, .7);--grid-coordinate-text: rgba(226, 232, 240, .78);--obstacle-fill: #34455d;--obstacle-border: #223148;--terrain-2: rgba(251, 191, 36, .2);--terrain-4: rgba(249, 115, 22, .26);--terrain-8: rgba(244, 63, 94, .3);--start-fill: #35d399;--start-text: #06131d;--goal-fill: #fb7185;--goal-text: #06131d;--path-core: #5ed9ff;--path-glow: rgba(67, 199, 244, .42);--path-width: 3px;--trace-visited: rgba(129, 140, 248, .22);--trace-frontier: rgba(251, 191, 36, .38);--trace-expanded: rgba(67, 199, 244, .28);--trace-current: #fbbf24;--trace-current-ring: rgba(251, 191, 36, .56);--import-drop-bg: rgba(67, 199, 244, .04);--import-drop-active: rgba(67, 199, 244, .14);--import-preview-bg: #091624;--import-checker-light: #46596d;--import-checker-dark: #2b3b4e;--import-error-bg: rgba(251, 113, 133, .1);--shadow-panel: 0 22px 60px rgba(1, 8, 20, .28);--radius-sm: 8px;--radius-md: 13px;--radius-lg: 18px;--header-height: 68px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif}:root[data-theme=light]{color-scheme:light;--bg-primary: #edf4fb;--bg-secondary: #f7fafc;--bg-elevated: #ffffff;--panel-bg: rgba(255, 255, 255, .88);--panel-bg-hover: rgba(255, 255, 255, .98);--border-color: rgba(51, 65, 85, .14);--border-strong: rgba(2, 132, 199, .3);--text-primary: #122033;--text-secondary: #52637a;--text-muted: #7b899c;--accent: #0284c7;--accent-strong: #0369a1;--grid-background: #f8fafc;--grid-cell: rgba(255, 255, 255, .9);--grid-line: rgba(71, 85, 105, .18);--grid-line-strong: rgba(51, 65, 85, .3);--grid-hover: rgba(2, 132, 199, .76);--grid-coordinate-text: rgba(30, 41, 59, .8);--obstacle-fill: #64748b;--obstacle-border: #475569;--terrain-2: rgba(234, 179, 8, .28);--terrain-4: rgba(234, 88, 12, .3);--terrain-8: rgba(225, 29, 72, .27);--start-fill: #059669;--start-text: #ffffff;--goal-fill: #e11d48;--goal-text: #ffffff;--path-core: #0284c7;--path-glow: rgba(2, 132, 199, .28);--trace-visited: rgba(99, 102, 241, .22);--trace-frontier: rgba(202, 138, 4, .38);--trace-expanded: rgba(2, 132, 199, .3);--trace-current: #f59e0b;--trace-current-ring: rgba(245, 158, 11, .52);--import-drop-bg: rgba(2, 132, 199, .04);--import-drop-active: rgba(2, 132, 199, .12);--import-preview-bg: #eef4f8;--import-checker-light: #e6edf3;--import-checker-dark: #cbd7e1;--import-error-bg: rgba(225, 29, 72, .08);--shadow-panel: 0 22px 60px rgba(62, 86, 116, .16)}@keyframes panel-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes path-draw{0%{stroke-dashoffset:1;opacity:.2}to{stroke-dashoffset:0;opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes radar{0%{transform:scale(.5);opacity:1}to{transform:scale(1.8);opacity:0}}.spinning,.button-spinner{animation:spin .9s linear infinite}.toast-enter-active,.toast-leave-active{transition:opacity .18s ease,transform .18s ease}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(16px)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.path-core{animation:none!important;stroke-dasharray:none;stroke-dashoffset:0}}body{background:radial-gradient(circle at 49% 4%,rgba(40,133,193,.12),transparent 33rem),linear-gradient(135deg,var(--bg-primary),var(--bg-secondary));overflow-x:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 22px;border-bottom:1px solid var(--border-color);background:color-mix(in srgb,var(--bg-primary) 86%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);position:sticky;top:0;z-index:40;animation:panel-in .3s ease both}.brand,.brand>div:last-child,.header-actions,.section-heading,.panel-title,.planner-status,.canvas-status span,.engine-badge{display:flex;align-items:center}.brand{gap:11px}.brand-mark{width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(67,199,244,.28);border-radius:12px;color:var(--accent);background:linear-gradient(145deg,#43c7f424,#818cf814);box-shadow:inset 0 1px #ffffff14}.brand>div:last-child{align-items:flex-start;flex-direction:column;gap:2px}.brand strong{font-size:15px;letter-spacing:.015em}.brand span,.panel-title span,.section-heading span{color:var(--text-secondary);font-size:11px}.header-actions{gap:9px}.engine-badge{gap:7px;height:30px;padding:0 11px;color:var(--text-secondary);font-size:11px;border:1px solid var(--border-color);border-radius:999px;background:#ffffff06}.engine-badge i{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 10px color-mix(in srgb,var(--success) 65%,transparent)}.icon-button{width:36px;height:36px;display:grid;place-items:center;padding:0;border:1px solid var(--border-color);border-radius:10px;color:var(--text-secondary);background:#ffffff06;text-decoration:none;transition:transform .18s ease,color .18s ease,border-color .18s ease,background .18s ease}.icon-button:hover{transform:translateY(-1px);color:var(--text-primary);border-color:var(--border-strong);background:#43c7f414}.workspace{width:100%;min-height:calc(100vh - var(--header-height));display:grid;grid-template-columns:284px minmax(460px,1fr) 286px;gap:14px;padding:14px}.side-panel,.map-workspace{border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--panel-bg);box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);animation:panel-in .38s ease both}.side-panel{min-width:0;padding:15px}.left-panel{display:flex;flex-direction:column;gap:14px;max-height:calc(100vh - var(--header-height) - 28px);overflow-y:auto}.right-panel{animation-delay:70ms}.map-workspace{min-width:0;display:grid;grid-template-rows:auto minmax(390px,1fr) auto auto;overflow:hidden;animation-delay:.11s}.panel-section{flex:0 0 auto;padding-bottom:14px;border-bottom:1px solid var(--border-color)}.panel-section--grow{min-height:260px}.section-heading,.panel-title{gap:9px;margin-bottom:11px;color:var(--accent)}.section-heading>div,.panel-title>div{display:flex;flex-direction:column;gap:2px}.section-heading h2,.panel-title h2{color:var(--text-primary);font-size:12px;font-weight:650}.section-heading.compact{margin-bottom:9px}.panel-title{padding-bottom:14px;border-bottom:1px solid var(--border-color)}.size-controls{display:grid;grid-template-columns:1fr auto 1fr auto;align-items:end;gap:7px;margin-bottom:10px}.size-controls label,.select-label{display:flex;flex-direction:column;gap:5px;color:var(--text-secondary);font-size:10px}.size-controls input,.select-label select,.example-row select,.terrain-select{width:100%;height:34px;border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);background:color-mix(in srgb,var(--bg-primary) 64%,transparent)}.size-controls input{padding:0 8px}.size-controls>span{align-self:center;padding-top:13px;color:var(--text-muted)}.size-controls>button,.example-row button{height:34px;border:1px solid var(--border-strong);border-radius:8px;color:var(--accent);background:#43c7f412}.select-label select,.example-row select,.terrain-select{padding:0 8px}.grid-toolbar{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.tool-button{min-height:38px;display:flex;align-items:center;justify-content:center;gap:6px;padding:7px 6px;border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);font-size:10px;background:#ffffff05;transition:transform .18s ease,color .18s ease,border-color .18s ease,background .18s ease}.tool-button:hover:not(:disabled){transform:translateY(-1px);color:var(--text-primary);border-color:var(--border-strong);background:#43c7f412}.tool-button.active{color:var(--accent);border-color:#43c7f46b;background:linear-gradient(145deg,#43c7f424,#818cf812);box-shadow:inset 0 0 0 1px #43c7f412}.tool-button--quiet{color:var(--danger)}.terrain-select{grid-column:span 2;height:38px;font-size:10px}.algorithm-groups{display:flex;flex-direction:column;gap:10px}.algorithm-group h3{margin:0 0 5px 6px;color:var(--text-muted);font-size:9px;font-weight:600;letter-spacing:.11em}.algorithm-list{display:grid;grid-template-columns:repeat(2,1fr);gap:5px}.algorithm-option{position:relative;min-width:0;min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:4px;padding:7px 8px 7px 11px;overflow:hidden;border:1px solid transparent;border-radius:8px;color:var(--text-secondary);font-size:10px;text-align:left;background:#ffffff05;transition:transform .18s ease,color .18s ease,border-color .18s ease,background .18s ease}.algorithm-option:before{content:"";position:absolute;inset:7px auto 7px 0;width:2px;border-radius:3px;background:var(--accent);transform:scaleY(0);transition:transform .18s ease}.algorithm-option:hover:not(:disabled){transform:translateY(-1px);color:var(--text-primary);border-color:var(--border-color);background:#43c7f40e}.algorithm-option:hover:before,.algorithm-option.selected:before{transform:scaleY(1)}.algorithm-option:hover>svg{transform:translate(2px)}.algorithm-option>svg{flex:0 0 auto;transition:transform .18s ease}.algorithm-option.selected{color:var(--accent);border-color:#43c7f442;background:#43c7f41b}.algorithm-option span{min-width:0}.algorithm-option small{display:flex;align-items:center;gap:3px;margin-top:2px;color:var(--warning);font-size:7px}.example-row{display:grid;grid-template-columns:1fr auto;gap:6px}.example-row select{min-width:0;font-size:10px}.file-actions,.secondary-controls{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px}.base-button{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 13px;border:1px solid var(--border-color);border-radius:9px;font-size:11px;font-weight:600;white-space:nowrap;background:#ffffff06;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease}.base-button:hover:not(:disabled){transform:translateY(-1px);border-color:var(--border-strong);box-shadow:0 8px 22px #0108143d}.base-button:active:not(:disabled){transform:translateY(0) scale(.98)}.base-button--primary{color:#02131c;border-color:#5ddaffb3;background:linear-gradient(135deg,#5ad7fb,#37b8ee);box-shadow:0 8px 22px #16ade12e}.base-button--primary:hover:not(:disabled){box-shadow:0 10px 26px #16ade147}.base-button--ghost{color:var(--text-secondary);background:transparent}.button-spinner{width:15px;height:15px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%}.planner-controls>.base-button{width:100%;min-height:44px}.workspace-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:20px 22px 17px;border-bottom:1px solid var(--border-color)}.eyebrow{display:inline-flex;align-items:center;gap:6px;margin-bottom:5px;color:var(--accent);font-size:9px;font-weight:700;letter-spacing:.14em}.workspace-header h1{margin-bottom:4px;font-size:clamp(20px,2vw,28px);font-weight:650;letter-spacing:-.035em}.workspace-header p{color:var(--text-secondary);font-size:11px}.grid-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px 13px;max-width:250px}.grid-legend span{display:inline-flex;align-items:center;gap:5px;color:var(--text-secondary);font-size:9px}.grid-legend i{width:8px;height:8px;border-radius:2px}.legend-start{background:var(--start-fill)}.legend-goal{background:var(--goal-fill)}.legend-obstacle{background:var(--obstacle-fill)}.legend-terrain{background:var(--terrain-4)}.legend-frontier{background:var(--trace-frontier)}.legend-expanded{background:var(--trace-expanded)}.legend-path{background:var(--path-core);box-shadow:0 0 7px var(--path-glow)}.editor-frame{min-width:0;min-height:0;padding:18px;overflow:hidden;background:linear-gradient(#ffffff03,#ffffff03),radial-gradient(circle at center,rgba(67,199,244,.05),transparent 65%)}.grid-stage{width:100%;height:100%;min-height:410px;position:relative;display:flex;align-items:center;justify-content:center;overflow:auto;border:1px solid var(--border-color);border-radius:14px;background:linear-gradient(45deg,rgba(255,255,255,.008) 25%,transparent 25%) 0 0 / 22px 22px,var(--grid-background);box-shadow:inset 0 0 40px #01081438}.grid-stage.has-no-path{border-color:#fb718547}.grid-canvas{flex:0 0 auto;position:relative;display:grid;border-top:1px solid var(--grid-line-strong);border-left:1px solid var(--grid-line-strong);touch-action:none;-webkit-user-select:none;user-select:none}.grid-cell{width:var(--cell-size);height:var(--cell-size);position:relative;display:grid;place-items:center;border:0;border-right:1px solid var(--grid-line);border-bottom:1px solid var(--grid-line);background:var(--grid-cell);transition:background .11s ease,box-shadow .11s ease}.grid-cell.is-hovered{box-shadow:inset 0 0 0 1px var(--grid-hover),inset 0 0 12px color-mix(in srgb,var(--grid-hover) 22%,transparent);z-index:5}.grid-cell.is-terrain-2{background:var(--terrain-2)}.grid-cell.is-terrain-4{background:var(--terrain-4)}.grid-cell.is-terrain-8{background:var(--terrain-8)}.grid-cell.is-visited{background:var(--trace-visited)}.grid-cell.is-expanded{background:var(--trace-expanded)}.grid-cell.is-frontier{background:var(--trace-frontier);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--warning) 72%,transparent)}.grid-cell.is-obstacle{z-index:6;border-color:var(--obstacle-border);background:linear-gradient(145deg,var(--obstacle-fill),var(--obstacle-border));box-shadow:inset 0 1px #ffffff14,inset 0 -2px #0000002e}.grid-cell.is-start,.grid-cell.is-goal{z-index:10;border-radius:30%;transform:scale(.82);font-weight:800;box-shadow:0 0 18px currentColor}.grid-cell.is-start{color:var(--start-text);background:var(--start-fill)}.grid-cell.is-goal{color:var(--goal-text);background:var(--goal-fill)}.grid-cell.is-current:not(.is-start,.is-goal,.is-obstacle):after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;z-index:11;border:2px solid var(--trace-current);border-radius:35%;box-shadow:0 0 9px var(--trace-current-ring);pointer-events:none}.endpoint-label{font-size:clamp(7px,calc(var(--cell-size) * .42),13px)}.cost-label{color:var(--grid-coordinate-text);font-size:clamp(6px,calc(var(--cell-size) * .32),10px)}.path-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:8;overflow:visible;pointer-events:none}.path-glow,.path-core{fill:none;stroke-linecap:round;stroke-linejoin:round}.path-glow{stroke:var(--path-glow);stroke-width:8;filter:blur(4px)}.path-core{stroke:var(--path-core);stroke-width:var(--path-width);stroke-dasharray:1;stroke-dashoffset:1;animation:path-draw .52s ease-out both}.grid-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;background:color-mix(in srgb,var(--bg-primary) 78%,transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.grid-loading strong{font-size:13px}.grid-loading small{color:var(--text-secondary);font-size:10px}.radar-loader{width:38px;height:38px;position:relative;border:2px solid var(--accent);border-radius:50%}.radar-loader:after{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border:1px solid var(--accent);border-radius:50%;animation:radar 1.25s ease-out infinite}.no-path-badge{position:absolute;top:12px;left:50%;z-index:21;transform:translate(-50%);padding:6px 10px;border:1px solid rgba(251,113,133,.28);border-radius:999px;color:var(--danger);font-size:10px;background:color-mix(in srgb,var(--bg-primary) 86%,transparent)}.canvas-status{min-height:42px;display:flex;align-items:center;gap:19px;padding:0 18px;border-top:1px solid var(--border-color);color:var(--text-secondary);font-size:10px}.canvas-status span{gap:6px}.canvas-status span:first-child{margin-right:auto;color:var(--accent)}.playback-panel{display:grid;gap:9px;padding:10px 18px;border-top:1px solid var(--border-color);background:color-mix(in srgb,var(--bg-elevated) 46%,transparent)}.playback-heading,.playback-controls,.playback-heading>div,.path-visibility-toggle,.playback-speeds{display:flex;align-items:center}.playback-heading{justify-content:space-between;gap:14px}.playback-heading>div{min-width:0;gap:9px}.playback-heading strong{color:var(--text-primary);font-size:11px}.playback-heading span,.path-visibility-toggle{color:var(--text-secondary);font-size:9px}.path-visibility-toggle{flex:0 0 auto;gap:5px;cursor:pointer}.playback-controls{gap:7px}.playback-controls button{min-width:29px;height:27px;display:grid;place-items:center;padding:0 7px;border:1px solid var(--border-color);border-radius:7px;color:var(--text-secondary);background:var(--bg-elevated);cursor:pointer}.playback-controls button:hover,.playback-controls button.active{color:var(--accent);border-color:var(--border-strong)}.playback-controls .playback-primary{color:var(--endpoint-text);border-color:transparent;background:var(--accent-strong)}.playback-range{min-width:80px;flex:1;accent-color:var(--accent)}.playback-speeds{gap:3px}.playback-speeds button{min-width:30px;height:23px;padding:0 4px;font-size:8px}.result-panel-content{display:flex;flex-direction:column;gap:14px}.planner-status{gap:11px;min-height:62px;padding:12px;border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);background:#ffffff05}.planner-status>div{display:flex;flex-direction:column;gap:3px}.planner-status strong{color:var(--text-primary);font-size:12px}.planner-status span{color:var(--text-secondary);font-size:9px;line-height:1.4}.status--found{color:var(--success);border-color:#35d3993b;background:#35d3990e}.status--running{color:var(--accent);border-color:#43c7f43b;background:#43c7f40e}.status--no_path,.status--error,.status--invalid_input{color:var(--danger);border-color:#fb71853b;background:#fb71850e}.status--stale{color:var(--warning);border-color:#fbbf243b;background:#fbbf240e}.metrics-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.metric-card{min-height:82px;display:flex;flex-direction:column;justify-content:center;padding:12px;overflow:hidden;border:1px solid var(--border-color);border-radius:11px;background:#ffffff05;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.metric-card:hover{transform:translateY(-2px);border-color:var(--border-strong);background:#43c7f409;box-shadow:0 12px 32px #0108142e}.metric-card span,.metric-card small{overflow:hidden;color:var(--text-secondary);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.metric-card strong{margin:4px 0 3px;overflow:hidden;color:var(--text-primary);font-size:18px;font-weight:650;letter-spacing:-.03em;text-overflow:ellipsis}.metric-card small{color:var(--text-muted);font-size:8px}.result-note{padding:13px;border:1px solid rgba(129,140,248,.15);border-radius:11px;background:#818cf80a}.result-note strong{color:var(--accent-secondary);font-size:10px}.result-note p{margin-top:5px;color:var(--text-secondary);font-size:9px;line-height:1.55}.toast-stack{position:fixed;top:82px;right:18px;z-index:100;display:flex;flex-direction:column;gap:8px}.toast{min-width:250px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:11px 12px;border:1px solid var(--border-color);border-radius:11px;color:var(--text-secondary);font-size:11px;background:var(--panel-bg-hover);box-shadow:0 14px 36px #01081447;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.toast--success>svg{color:var(--success)}.toast--error>svg{color:var(--danger)}.toast--info>svg{color:var(--accent)}.toast button{padding:0;border:0;color:var(--text-muted);background:transparent}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:20px;background:#020812b8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal-card{width:min(500px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:18px;border:1px solid var(--border-color);border-radius:16px;background:var(--bg-elevated)}.modal-card--wide{width:min(1080px,100%)}.modal-card header{display:flex;justify-content:space-between;align-items:center}.map-import-modal{min-width:0;display:grid;gap:14px;margin-top:14px}.import-kind-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px;border:1px solid var(--border-color);border-radius:11px;background:color-mix(in srgb,var(--bg-primary) 60%,transparent)}.import-kind-tabs button,.image-transform-controls button{min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;border:1px solid transparent;border-radius:8px;color:var(--text-secondary);background:transparent;transition:color .15s ease,border-color .15s ease,background .15s ease,transform .15s ease}.import-kind-tabs button:hover,.image-transform-controls button:hover:not(:disabled){color:var(--text-primary);border-color:var(--border-strong)}.import-kind-tabs button.active,.image-transform-controls button.active{color:var(--accent);border-color:var(--border-strong);background:color-mix(in srgb,var(--accent) 10%,transparent)}.import-json-panel{display:grid;gap:12px}.import-json-panel>p,.future-format-note{color:var(--text-secondary);font-size:11px}.file-drop-zone{min-height:134px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;padding:18px;border:1px dashed var(--border-strong);border-radius:13px;color:var(--accent);text-align:center;background:var(--import-drop-bg);cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease}.file-drop-zone:hover,.file-drop-zone.is-dragging{transform:translateY(-1px);border-color:var(--accent);background:var(--import-drop-active)}.file-drop-zone.is-disabled{opacity:.55;cursor:wait}.file-drop-zone strong{color:var(--text-primary);font-size:12px}.file-drop-zone span{max-width:360px;color:var(--text-secondary);font-size:10px;line-height:1.5}.import-image-layout{min-width:0;display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:14px}.import-image-sidebar,.import-image-main{min-width:0;display:flex;flex-direction:column;gap:10px}.future-format-note{display:flex;align-items:flex-start;gap:7px;padding:9px 10px;border:1px solid var(--border-color);border-radius:9px}.future-format-note svg{flex:0 0 auto;color:var(--accent-secondary)}.import-error-card{display:grid;gap:3px;padding:10px 11px;border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);border-radius:9px;color:var(--danger);font-size:10px;line-height:1.5;background:var(--import-error-bg)}.image-source-preview{min-width:0;display:grid;gap:10px}.image-metadata{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0}.image-metadata>div{min-width:0;padding:7px 8px;border:1px solid var(--border-color);border-radius:8px;background:color-mix(in srgb,var(--bg-primary) 54%,transparent)}.image-metadata dt{color:var(--text-muted);font-size:8px}.image-metadata dd{overflow:hidden;margin:2px 0 0;color:var(--text-primary);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.image-preview-surface{min-width:0;min-height:330px;display:grid;place-items:center;padding:16px;overflow:hidden;border:1px solid var(--border-color);border-radius:12px;background:var(--import-preview-bg)}.image-preview-surface canvas{display:block;max-width:100%;max-height:460px;border:1px solid var(--border-color);box-shadow:0 14px 34px #01081438}.image-preview-empty,.image-preview-loading{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px;color:var(--text-secondary);font-size:11px;text-align:center}.image-transform-controls{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.image-transform-controls button{min-width:0;padding:5px;border-color:var(--border-color);font-size:9px;background:color-mix(in srgb,var(--bg-primary) 45%,transparent)}.image-transform-controls button:active:not(:disabled){transform:scale(.98)}.import-modal-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding-top:12px;border-top:1px solid var(--border-color)}.import-next-step{display:flex;align-items:flex-end;flex-direction:column;gap:4px}.import-next-step span{color:var(--text-muted);font-size:9px}.import-analysis-layout,.import-result-layout{min-width:0;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);align-items:start;gap:14px}.import-analysis-preview,.maze-analysis-result{min-width:0;display:grid;gap:10px}.maze-import-result-panel,.maze-import-confirmation{min-width:0;display:grid;gap:12px}.maze-import-capability,.import-application-message,.maze-import-confirmation{padding:14px;border:1px solid var(--border-color);border-radius:12px;background:color-mix(in srgb,var(--bg-primary) 72%,transparent)}.maze-import-capability{display:grid;gap:5px;color:var(--text-secondary);font-size:10px}.maze-import-capability strong{color:var(--text-primary);font-size:12px}.maze-import-capability:not(.is-blocked) span{color:var(--success)}.maze-import-capability.is-blocked{border-color:color-mix(in srgb,var(--warning) 45%,var(--border-color))}.maze-import-capability code,.import-application-message strong{overflow-wrap:anywhere;color:var(--warning)}.import-application-message{display:grid;gap:5px;color:var(--text-secondary);font-size:10px}.import-application-message.is-warning{border-color:color-mix(in srgb,var(--warning) 45%,var(--border-color))}.import-application-message.is-danger{border-color:color-mix(in srgb,var(--danger) 45%,var(--border-color))}.import-application-message.is-danger strong{color:var(--danger)}.maze-import-confirmation{border-color:color-mix(in srgb,var(--warning) 40%,var(--border-color))}.maze-import-confirmation__heading{min-width:0;display:flex;align-items:flex-start;gap:10px}.maze-import-confirmation__heading>svg{flex:0 0 auto;color:var(--warning)}.maze-import-confirmation__heading h3,.maze-import-confirmation__heading p{margin:0}.maze-import-confirmation__heading h3{color:var(--text-primary);font-size:14px}.maze-import-confirmation__heading p{margin-top:4px;color:var(--text-secondary);font-size:10px}.maze-import-confirmation__summary{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0}.maze-import-confirmation__summary>div{min-width:0;display:grid;gap:2px;padding:8px;border:1px solid var(--border-color);border-radius:8px}.maze-import-confirmation__summary dt,.maze-import-confirmation__effects small{color:var(--text-muted);font-size:9px}.maze-import-confirmation__summary dd{margin:0;overflow-wrap:anywhere;color:var(--text-primary);font-size:11px}.maze-import-confirmation__effects{min-width:0;display:grid;gap:6px;color:var(--text-secondary);font-size:10px}.maze-import-confirmation__effects strong{display:inline-flex;align-items:center;gap:5px;color:var(--text-primary)}.maze-import-confirmation__effects ul{display:grid;gap:4px;margin:0;padding-left:18px}.maze-import-confirmation__actions,.result-import-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}.maze-analysis-progress{min-width:0;display:grid;gap:12px;padding:16px;border:1px solid var(--border-strong);border-radius:12px;background:color-mix(in srgb,var(--accent) 5%,var(--bg-primary))}.analysis-progress-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.analysis-progress-heading>div{min-width:0;display:grid;gap:4px}.analysis-progress-heading span,.maze-analysis-progress p,.footer-status,.readonly-preview-note{color:var(--text-secondary);font-size:10px}.analysis-progress-heading strong{color:var(--text-primary);font-size:13px}.maze-analysis-progress progress{width:100%;height:8px;overflow:hidden;border:0;border-radius:999px;color:var(--accent);background:var(--border-color)}.maze-analysis-progress progress::-webkit-progress-bar{border-radius:inherit;background:var(--border-color)}.maze-analysis-progress progress::-webkit-progress-value{border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-secondary))}.maze-analysis-progress progress::-moz-progress-bar{border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-secondary))}.analysis-result-hero{min-width:0;display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--border-color);border-radius:11px;background:color-mix(in srgb,var(--bg-primary) 58%,transparent)}.analysis-result-hero>svg{flex:0 0 auto}.analysis-result-hero.is-success>svg{color:var(--success)}.analysis-result-hero.is-warning>svg{color:var(--warning)}.analysis-result-hero.is-danger>svg{color:var(--danger)}.analysis-result-hero h3,.maze-diagnostic-summary h3,.maze-analysis-warnings h3,.candidate-list-heading h3{margin:0;color:var(--text-primary);font-size:12px}.analysis-result-hero p{margin-top:4px;color:var(--text-secondary);font-size:10px;line-height:1.55}.analysis-result-hero code,.maze-analysis-warnings code,.candidate-title code{color:var(--text-muted);font-size:8px;overflow-wrap:anywhere}.maze-diagnostic-summary,.maze-analysis-warnings,.entrance-candidate-list{min-width:0;display:grid;gap:8px;padding:11px;border:1px solid var(--border-color);border-radius:11px;background:color-mix(in srgb,var(--bg-primary) 48%,transparent)}.maze-diagnostic-summary dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:0}.maze-diagnostic-summary dl>div{min-width:0;display:flex;justify-content:space-between;gap:7px;padding:6px 7px;border-radius:7px;background:color-mix(in srgb,var(--bg-elevated) 68%,transparent)}.maze-diagnostic-summary dt,.maze-diagnostic-summary dd{min-width:0;margin:0;font-size:9px}.maze-diagnostic-summary dt{color:var(--text-muted)}.maze-diagnostic-summary dd{color:var(--text-primary);text-align:right;overflow-wrap:anywhere}.maze-analysis-warnings h3 span,.candidate-list-heading span{color:var(--text-muted);font-size:9px;font-weight:400}.maze-analysis-warnings details{min-width:0;color:var(--text-secondary);font-size:9px}.maze-analysis-warnings summary{cursor:pointer}.warning-groups{max-height:210px;display:grid;gap:8px;margin-top:8px;overflow:auto}.warning-groups h4{margin:0 0 4px;color:var(--warning);font-size:9px}.warning-groups ul,.entrance-candidate-list ul{display:grid;gap:5px;margin:0;padding:0;list-style:none}.warning-groups li{min-width:0;display:grid;gap:2px;padding:6px;border-radius:7px;line-height:1.45;background:color-mix(in srgb,var(--warning) 7%,transparent);overflow-wrap:anywhere}.candidate-list-heading,.candidate-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.entrance-candidate-list ul{max-height:240px;overflow:auto}.entrance-candidate-list li{min-width:0;display:grid;gap:4px;padding:8px;border:1px solid var(--border-color);border-radius:8px}.candidate-role-options{display:flex;flex-wrap:wrap;gap:6px}.candidate-role-options label{min-height:28px;display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border:1px solid var(--border-color);border-radius:7px;color:var(--text-secondary);font-size:9px;cursor:pointer}.candidate-role-options label:has(input:checked){color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,transparent)}.candidate-role-options label:has(input:disabled){opacity:.48;cursor:not-allowed}.manual-entrance-actions,.entrance-result-summary{display:grid;gap:8px;padding:10px;border:1px solid var(--border-color);border-radius:10px;background:color-mix(in srgb,var(--bg-primary) 48%,transparent)}.manual-selection-summary,.entrance-result-summary>div{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;color:var(--text-secondary);font-size:9px}.manual-selection-summary code,.entrance-result-summary code{color:var(--text-primary)}.manual-selection-buttons,.low-confidence-confirmation>div{display:flex;flex-wrap:wrap;gap:7px}.manual-selection-warning,.low-confidence-confirmation p{margin:0;color:var(--warning);font-size:9px;line-height:1.5}.low-confidence-confirmation{display:grid;gap:8px;padding:9px;border:1px solid color-mix(in srgb,var(--warning) 45%,transparent);border-radius:8px;background:color-mix(in srgb,var(--warning) 8%,transparent)}.entrance-result-summary{grid-template-columns:minmax(0,1fr) auto;align-items:center}.entrance-result-summary strong{color:var(--accent)}.candidate-title strong{color:var(--accent);font-size:8px}.entrance-candidate-list li>span{color:var(--text-primary);font-size:9px}.entrance-candidate-list small,.empty-diagnostic{color:var(--text-secondary);font-size:8px;line-height:1.5}.analysis-next-stage-note,.analysis-duration{margin:0;padding:8px 9px;border-radius:8px;color:var(--text-secondary);font-size:9px;background:color-mix(in srgb,var(--accent) 7%,transparent)}.analysis-duration{color:var(--text-muted);background:transparent;text-align:right}.maze-detection-preview{min-width:0;display:grid;gap:8px}.detection-preview-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.detection-preview-tabs button{min-width:0;min-height:34px;border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);background:color-mix(in srgb,var(--bg-primary) 54%,transparent)}.detection-preview-tabs button.active{color:var(--accent);border-color:var(--border-strong);background:color-mix(in srgb,var(--accent) 9%,transparent)}.detection-preview-surface,.result-preview-unavailable{min-width:0;height:min(44vh,430px);min-height:280px;display:grid;place-items:center;overflow:hidden;border:1px solid var(--border-color);border-radius:11px;color:var(--text-secondary);background:var(--import-preview-bg)}.detection-preview-surface canvas{display:block;max-width:100%;max-height:100%}.detection-preview-legend{display:flex;flex-wrap:wrap;gap:5px 10px;color:var(--text-secondary);font-size:8px}.detection-preview-legend span:before{width:8px;height:8px;display:inline-block;margin-right:4px;border-radius:2px;background:currentColor;content:""}.detection-preview-legend .wall{color:var(--obstacle-fill)}.detection-preview-legend .open{color:var(--success)}.detection-preview-legend .uncertain{color:var(--warning)}.detection-preview-legend .entrance{color:var(--accent)}.detection-preview-legend .start{color:var(--start-fill)}.detection-preview-legend .goal{color:var(--goal-fill)}.readonly-preview-note{margin:0}.result-footer-actions{display:flex;flex-wrap:wrap;gap:7px}@media(max-width:1180px){.workspace{grid-template-columns:260px minmax(420px,1fr)}.right-panel{grid-column:1 / -1}.right-panel .result-panel-content{display:grid;grid-template-columns:260px 1fr 230px;align-items:start}.right-panel .metrics-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:820px){:root{--header-height: 60px}.app-header{padding:0 13px}.brand span,.engine-badge{display:none}.workspace{display:flex;flex-direction:column;padding:9px;gap:9px}.side-panel,.map-workspace{border-radius:14px}.left-panel{max-height:none;order:2}.map-workspace{order:1;min-height:600px;grid-template-rows:auto minmax(430px,1fr) auto auto}.right-panel{order:3}.workspace-header{align-items:flex-start;flex-direction:column;padding:15px}.grid-legend{justify-content:flex-start;max-width:none}.editor-frame{padding:10px}.grid-stage{min-height:410px;justify-content:flex-start;align-items:flex-start}.canvas-status{gap:10px;overflow-x:auto}.canvas-status span{flex:0 0 auto}.playback-heading{align-items:flex-start;flex-direction:column;gap:6px}.playback-controls{flex-wrap:wrap}.playback-range{order:2;flex-basis:100%}.right-panel .result-panel-content{display:flex}.right-panel .metrics-grid{grid-template-columns:repeat(2,1fr)}.modal-backdrop{padding:8px}.modal-card{max-height:calc(100vh - 16px);padding:14px}.import-image-layout,.import-analysis-layout,.import-result-layout{grid-template-columns:1fr}.image-preview-surface{min-height:260px}.detection-preview-surface{height:min(42vh,380px)}.image-transform-controls{grid-template-columns:repeat(3,1fr)}.import-modal-footer{align-items:stretch;flex-direction:column}.import-modal-footer>.base-button{align-self:flex-start}.import-next-step{align-items:stretch}}@media(max-width:460px){.brand strong{font-size:13px}.workspace-header h1{font-size:21px}.grid-toolbar,.algorithm-list{grid-template-columns:repeat(2,1fr)}.toast-stack{inset:auto 10px 10px}.toast{min-width:0;width:100%}.image-metadata{grid-template-columns:repeat(2,minmax(0,1fr))}.maze-diagnostic-summary dl{grid-template-columns:1fr}.image-transform-controls{grid-template-columns:repeat(2,1fr)}.modal-card,.map-import-modal,.import-image-panel,.import-result-layout,.maze-analysis-result{max-width:100%}.detection-preview-surface{height:300px;min-height:220px}.result-footer-actions{display:grid;grid-template-columns:1fr 1fr}}
