:root{--bg-base: #0f1115;--bg-elevated: #181b21;--bg-raised: #22262d;--bg-input: #1e2128;--bg-hover: #262a32;--text: #e5e7eb;--text-strong: #f3f4f6;--text-muted: #9ca3af;--text-faint: #6b7280;--text-on-accent: #ffffff;--border: #2a2f37;--border-strong: #3a4049;--border-focus: #a100ff;--accent: #a100ff;--accent-hover: #b833ff;--accent-strong: #7f00cc;--link: #8ab4ff;--link-hover: #a6c5ff;--info: #2196f3;--danger: #f87171;--danger-bg: #2a1517;--danger-border: #5b1f23;--success-bg: #16321c;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .5);--shadow-md: 0 4px 12px rgba(0, 0, 0, .55);--scrollbar-track: #1a1d23;--scrollbar-thumb: #3a4049;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:var(--text);background-color:var(--bg-base);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:var(--link);text-decoration:inherit}a:hover{color:var(--link-hover)}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh;background-color:var(--bg-base);color:var(--text)}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid var(--border);padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--bg-raised);color:var(--text);cursor:pointer;transition:border-color .15s ease,background-color .15s ease}button:hover{border-color:var(--border-strong);background-color:var(--bg-hover)}button:focus,button:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}input,textarea,select{background-color:var(--bg-input);color:var(--text);border:1px solid var(--border)}input::placeholder,textarea::placeholder{color:var(--text-faint)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:5px}#root{position:absolute;top:0;bottom:0;left:0;right:0;display:flex;overflow:hidden;background-color:var(--bg-base);color:var(--text);text-align:center}.app-shell-main{flex:1;position:relative;min-width:0;overflow:hidden}.cursor-pointer{cursor:pointer}.font-bold{font-weight:700}.font-muted{color:var(--text-muted)}.toaster{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;box-sizing:border-box;margin:0;list-style:none;outline:none;z-index:999999999;position:fixed;padding:5px}.toaster.bottom-right{bottom:20px;right:20px}.toaster.bottom-left{bottom:20px;left:20px}.toaster.top-right{top:20px;right:20px}.toaster.top-left{top:20px;left:20px}.toaster.bottom-center{bottom:20px;left:50%;transform:translate(-50%)}.toaster.top-center{top:20px;left:50%;transform:translate(-50%)}.toaster.top-center ol.rack,.toaster.top-left ol.rack,.toaster.top-right ol.rack{flex-direction:column-reverse}.toaster.bottom-center ol.rack,.toaster.bottom-left ol.rack,.toaster.bottom-right ol.rack{flex-direction:column}ol.rack{list-style:none;padding:0;margin:0;display:flex}ol.rack li{margin-bottom:16px}ol.rack.upperstack li{margin-bottom:-35px;transition:all .3s ease-in-out}ol.rack.upperstack li:hover{margin-bottom:16px;scale:1.03;transition:all .3s ease-in-out}ol.rack.lowerstack li{margin-top:-35px}ol.rack.lowerstack{margin-bottom:0}.butteruptoast{border-radius:8px;box-shadow:0 4px 12px #0000001a;font-size:13px;display:flex;padding:16px;border:1px solid hsl(0,0%,93%);background-color:#fff;gap:6px;color:#282828;width:325px}.butteruptoast.dismissable{cursor:pointer}.butteruptoast .icon{display:flex;align-items:start;flex-direction:column}.butteruptoast .icon svg{width:20px;height:20px;fill:#282828}.notif .desc{display:flex;flex-direction:column;gap:2px}.notif .desc .title{font-weight:600;line-height:1.5}.notif .desc .message{font-weight:400;line-height:1.4}.butteruptoast.success{background-color:#ebfef2;color:#008a2e;border:solid 1px hsl(145,92%,91%)}.butteruptoast.success .icon svg{fill:#008a2e}.butteruptoast.error .icon svg{fill:#8a0000}.butteruptoast.warning .icon svg{fill:#8a7300}.butteruptoast.info .icon svg{fill:#00458a}.butteruptoast.error{background-color:#fef0f0;color:#8a0000;border:solid 1px hsl(0,92%,91%)}.butteruptoast.warning{background-color:#fffdf0;color:#8a7300;border:solid 1px hsl(50,92%,91%)}.butteruptoast.info{background-color:#f0f8ff;color:#00458a;border:solid 1px hsl(210,92%,91%)}.toast-buttons{display:flex;gap:8px;width:100%;align-items:center;flex-direction:row;margin-top:16px}.toast-buttons .toast-button.primary{background-color:#282828;color:#fff;padding:8px 16px;border-radius:4px;cursor:pointer;border:none;width:100%}.toast-buttons .toast-button.secondary{background-color:#f0f8ff;color:#00458a;border:solid 1px hsl(210,92%,91%);padding:8px 16px;border-radius:4px;cursor:pointer;width:100%}.butteruptoast.success .toast-button.primary{background-color:#28af60;color:#fff}.butteruptoast.success .toast-button.secondary{background-color:#daf1e4;color:#1e8549;border:solid 1px hsl(145,63%,72%)}.butteruptoast.error .toast-button.primary{background-color:#dc3848;color:#fff}.butteruptoast.error .toast-button.secondary{background-color:#eddedf;color:#bf2231;border:solid 1px hsl(354,70%,74%)}.butteruptoast.warning .toast-button.primary{background-color:#ffc105;color:#4d3900}.butteruptoast.warning .toast-button.secondary{background-color:#fffaeb;color:#9e7700;border:solid 1px hsl(45,100%,76%)}.butteruptoast.info .toast-button.primary{background-color:#2094f3;color:#fff}.butteruptoast.info .toast-button.secondary{background-color:#e2f1fd;color:#095fa5;border:solid 1px hsl(207,90%,74%)}.toastUp{animation:slideUp .5s ease-in-out;animation-fill-mode:forwards}.toastDown{animation:slideDown .5s ease-in-out;animation-fill-mode:forwards}@keyframes slideDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.fadeOutToast{animation:fadeOut .3s ease-in-out;animation-fill-mode:forwards}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.butteruptoast.glass{background-color:#ffffff6b!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:none;box-shadow:0 4px 12px #0000001a;color:#282828}.butteruptoast.glass.success{background-color:#ebfef26b!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:none;box-shadow:0 4px 12px #0000001a;color:#008a2e}.butteruptoast.glass.error{background-color:#fef0f06b!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:none;box-shadow:0 4px 12px #0000001a;color:#8a0000}.butteruptoast.glass.warning{background-color:#fffdf06b!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:none;box-shadow:0 4px 12px #0000001a;color:#8a7300}.butteruptoast.glass.info{background-color:#f0f8ff6b!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:none;box-shadow:0 4px 12px #0000001a;color:#00458a}.butteruptoast.brutalist{border-radius:0;box-shadow:0 4px 12px #0000001a;border:solid 2px #282828;font-size:13px;align-items:center;display:flex;padding:16px;background-color:#fff;gap:6px;color:#282828;width:325px}.butteruptoast.brutalist.success{background-color:#ebfef2;color:#008a2e;border:solid 2px hsl(140,100%,27%)}.butteruptoast.brutalist.error{background-color:#fef0f0;color:#8a0000;border:solid 2px hsl(0,100%,27%)}.butteruptoast.brutalist.warning{background-color:#fffdf0;color:#8a7300;border:solid 2px hsl(50,100%,27%)}.butteruptoast.brutalist.info{background-color:#f0f8ff;color:#00458a;border:solid 2px hsl(210,100%,27%)}canvas{left:0;right:0;top:0;bottom:0}.header{display:flex;padding:10px;align-content:center;gap:5px;background-color:var(--bg-elevated);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm)}.header span{color:var(--text-strong);font-weight:600;align-self:center}.header-logo{height:30px;width:auto;align-self:center;display:block;filter:brightness(0) invert(1)}.view-switcher{display:flex}.graph-view-switcher{position:absolute;top:10px;right:10px;z-index:5}.view-toggle-button{width:72px}.view-toggle-button-active{background-color:var(--info);color:var(--text-strong)}.view-toggle-graph{border-top-right-radius:0;border-bottom-right-radius:0}.view-toggle-table{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none}.json-button{margin-left:auto}.json-button-indented{margin-right:300px}.app{width:100%;height:100%;position:relative;display:flex;flex-direction:column;background-color:var(--bg-base)}.graph{width:100%;height:100%;background-color:var(--bg-base)}.graph-wrapper{height:100%;max-width:100%;transition:max-width .15s ease-out;position:relative;background-color:var(--bg-base)}.graph-wrapper-shrunk{transition:max-width .15s ease-out;max-width:calc(100% - 300px)}.sidebar-switch{cursor:pointer;width:40px;height:40px;background-color:var(--bg-raised);color:var(--text);position:absolute;bottom:15px;right:0;z-index:2;border:1px solid var(--border);border-top-left-radius:10px;border-bottom-left-radius:10px;transition:right .15s ease-out}.sidebar-switch-open{right:300px;transition:bottom .15s ease-out}.skills-tab{cursor:pointer;position:absolute;margin-left:10px;bottom:0;border:1px solid var(--border);border-top-left-radius:6px;border-top-right-radius:6px;background-color:var(--bg-raised);border-bottom:none;height:40px;width:100px;z-index:3;color:var(--text);transition:bottom .25s ease-out;line-height:40px}.skills-tab-open{bottom:177px;transition:bottom .25s ease-out}.locate-tab{cursor:pointer;position:absolute;margin-left:10px;top:60px;border:1px solid var(--border);border-bottom-left-radius:6px;border-bottom-right-radius:6px;background-color:var(--bg-raised);border-top:none;height:40px;width:100px;z-index:3;color:var(--text);transition:top .25s ease-out;line-height:40px}.locate-tab-open{top:260px;transition:top .25s ease-out}.keys{padding:10px;position:absolute;top:48px;right:0}.locate{padding:10px;position:absolute;top:60px;left:0}.graph-key{border:1px solid var(--border);border-radius:10px;padding:8px;background-color:var(--bg-elevated);position:relative;z-index:1;box-shadow:var(--shadow-sm)}.graph-title{font-weight:600;font-size:20px;color:var(--text-strong);margin-bottom:.25rem}.graph-key-items{display:grid;gap:10px}.graph-row{display:flex;align-items:center;gap:10px}.item-color{border:1px solid var(--border);border-radius:10px;width:1rem;height:1rem}.item-type{color:var(--text)}.locate-wrap{position:absolute;display:flex;flex-direction:row;left:10px;top:0;z-index:1}.locate-section{position:relative;width:260px;height:210px;overflow:hidden}.locate-main{transition:top .25s ease-out;overflow:hidden;top:-203px;position:absolute}.locate-main-expanded{position:absolute;top:0;overflow:hidden;transition:top .25s ease-out}.locate-key{display:flex;flex-direction:column;position:relative;border:1px solid var(--border);border-bottom-right-radius:10px;border-top:none;gap:10px;background-color:var(--bg-elevated);overflow:hidden;z-index:1;padding:10px;box-shadow:var(--shadow-sm)}.locate-search-button-active{background-color:var(--info);color:var(--text-strong)}.locate-search-button{width:80px}.locate-search-id{border-top-right-radius:0;border-bottom-right-radius:0}.locate-search-fuzzy{border-top-left-radius:0;border-bottom-left-radius:0}.locate-title{font-weight:600;font-size:16px;vertical-align:center;text-align:center;align-items:center;color:var(--text-strong);display:flex;gap:10px}.locate-title-inactive{color:var(--text-faint)}.locate-row{display:flex;flex-direction:row;cursor:pointer;gap:10px}.locate-select,.locate-input{padding:.5rem;border:1px solid var(--border);background-color:var(--bg-input);color:var(--text);border-radius:.25rem;font-size:.875rem;cursor:pointer}.locate-button{padding:.5rem;background:var(--accent);color:var(--text-on-accent);border:none;border-radius:.25rem;cursor:pointer;font-size:.875rem;font-weight:600}.locate-button:disabled{background:var(--border-strong);color:var(--text-faint);cursor:not-allowed}.sidebar{position:absolute;right:0;bottom:0;top:0;background-color:var(--bg-elevated);color:var(--text);transition:max-width .15s ease-out;max-width:300px;width:300px;border-left:1px solid var(--border);z-index:3;display:flex;flex-direction:column;height:100%}.sidebar-collapsed{transition:max-width .15s ease-in;max-width:0px}.sidebar-header{font-weight:600;font-size:24px;color:var(--text-strong);position:relative;height:50px;display:flex;flex-direction:column;border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm)}.sidebar-header-text{font-size:18px;flex-grow:1;align-content:center}.sidebar-colorbar{width:100%;height:10px;background-color:var(--colorbar);align-self:flex-end}.sidebar-node{padding:0 20px}.sidebar-node ul{list-style-type:none;display:flex;flex-direction:column;gap:10px;text-align:left;padding:0}.sidebar-node-propKey{font-weight:600;cursor:default;color:var(--text-muted)}.sidebar-node-propValue{all:unset;resize:auto;width:100%;color:var(--text)}textarea.sidebar-node-propValue{border:1px solid transparent;background-color:var(--bg-input)}textarea.sidebar-node-propValue:focus{border:1px solid var(--colorbar)}.sidebar-content-link-icon{margin-left:8px;width:16px;height:16px}.sidebar-actions{margin-top:auto}.sidebar-actions-header{font-weight:600;font-size:18px;border-bottom:1px solid var(--border);margin-bottom:8px}.sidebar-actions-buttons{padding-bottom:10px;display:flex;justify-content:space-evenly}.sidebar-actions-buttons button{flex-shrink:0;position:relative}.sidebar-actions-buttons-create,.sidebar-actions-buttons-delete{border-radius:8px;color:var(--text-strong)}.sidebar-actions-buttons-create{background-color:var(--success-bg)}.sidebar-actions-buttons-delete{background-color:var(--danger-bg)}.table-explorer{flex:1;min-height:0;display:flex;background-color:var(--bg-base);color:var(--text);text-align:left}.skills-table-view{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;gap:16px;padding:24px 32px;overflow:auto}.taxonomy-nav{width:240px;flex-shrink:0;overflow:auto;padding:20px 12px;border-right:1px solid var(--border);background-color:var(--bg-elevated)}.taxonomy-nav-title{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:0 8px 10px}.taxonomy-nav-list,.taxonomy-nav-children{list-style:none;margin:0;padding:0}.taxonomy-nav-item{display:flex;align-items:center;border-radius:6px}.taxonomy-nav-item:hover{background-color:var(--bg-raised)}.taxonomy-nav-item-active,.taxonomy-nav-item-active:hover{background-color:var(--info)}.taxonomy-nav-item-active .taxonomy-nav-label{color:var(--text-strong)}.taxonomy-nav-caret,.taxonomy-nav-caret-spacer{width:22px;height:28px;flex-shrink:0}.taxonomy-nav-caret{display:inline-flex;align-items:center;justify-content:center;padding:0;background:transparent;border:none;color:var(--text-muted);cursor:pointer}.taxonomy-nav-caret-icon{width:14px;height:14px;transition:transform .12s ease-out}.taxonomy-nav-caret-open{transform:rotate(90deg)}.taxonomy-nav-label{flex:1;min-width:0;text-align:left;padding:6px 8px;font-size:13px;background:transparent;border:none;color:var(--text);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.taxonomy-nav-children{margin:2px 0 4px 22px;border-left:1px solid var(--border)}.taxonomy-nav-hint{padding:5px 10px;font-size:12px;color:var(--text-faint)}.skills-table-toolbar{display:flex;align-items:center;gap:16px}.skills-table-scope{font-size:15px;font-weight:600;color:var(--text-strong)}.skills-table-filter-tag{display:inline-flex;align-items:center;gap:6px;padding:4px 8px 4px 12px;font-size:13px;border-radius:999px;background-color:var(--info);color:var(--text-strong);border:1px solid var(--border);cursor:pointer}.skills-table-filter-tag-icon{width:14px;height:14px}.skills-table-search{flex:1;max-width:360px;padding:8px 12px;font-size:13px;border-radius:8px;background-color:var(--bg-input);color:var(--text);border:1px solid var(--border)}.skills-table-search:focus{outline:none;border-color:var(--border-focus)}.skills-table-count{font-size:13px;color:var(--text-muted)}.skills-table-actions{margin-left:auto}.skills-table{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px;overflow:hidden;background-color:var(--bg-elevated)}.skills-table-head,.skills-table-row{display:grid;grid-template-columns:2.4fr 1fr 1.4fr 1fr;column-gap:16px;padding:10px 16px;align-items:center}.skills-table--domain .skills-table-head,.skills-table--domain .skills-table-row{grid-template-columns:2.2fr .9fr 1.3fr 1.3fr 1fr}.skills-table-head>*,.skills-table-row>*{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skills-table-head{background-color:var(--bg-raised);font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-bottom:1px solid var(--border)}.skills-table-row{font-size:13px}.skills-table-row+.skills-table-row{border-top:1px solid var(--border)}.skills-table-row:hover{background-color:var(--bg-raised)}.skills-cell-name{color:var(--text-strong);font-weight:500}.skills-cell-type,.skills-cell-parent,.skills-cell-date{color:var(--text-muted)}.skills-table-empty{padding:24px 16px;text-align:center;color:var(--text-muted);font-size:13px}.skills-table-error{display:flex;flex-direction:column;gap:8px;padding:16px 20px;border:1px solid var(--danger-border);background-color:var(--danger-bg);border-radius:10px;font-size:13px;max-width:560px}.skills-table-error strong{color:var(--danger)}.skills-table-pager{display:flex;align-items:center;justify-content:flex-end;gap:12px;font-size:13px;color:var(--text-muted)}.skills-table-page-btn{padding:6px 14px;font-size:13px}.skills-table-page-btn:disabled{color:var(--text-faint);cursor:not-allowed}.skills-key{display:flex;flex-direction:column;border:1px solid var(--border);border-top-left-radius:10px;border-top-right-radius:10px;padding:20px;gap:10px;background-color:var(--bg-elevated);position:relative;z-index:1;box-shadow:var(--shadow-sm)}.skills-wrap{position:absolute;display:flex;flex-direction:row;left:10px;bottom:0;z-index:1}.skills-section{width:250px}.input-section{display:flex;gap:5px}.clear-button{width:25px;height:25px;padding:0;margin:0;background-color:var(--danger);color:var(--text-strong);border-color:var(--danger-border)}.skills-input{width:170px}.lessons-section{flex-wrap:nowrap;flex-direction:row;display:flex;transition:max-height .25s ease-out;max-height:184px;align-self:flex-end}.lessons-section-collapsed{flex-wrap:nowrap;flex-direction:row;transition:max-height .25s ease-out;display:flex;max-height:0px}.skills-main{position:relative;max-height:0px;transition:max-height .25s ease-out;overflow:hidden}.skills-main-expanded{max-height:184px;transition:max-height .25s ease-out;bottom:0}.skills-title{font-weight:600;font-size:20px;color:var(--text-strong)}.skills-row{display:flex;flex-direction:row;cursor:pointer;gap:10px}.skills-search-switch{display:flex;flex-direction:row;justify-content:space-between;color:var(--text)}button{background-color:var(--bg-raised);color:var(--text);border:1px solid var(--border)}.switch{position:relative;display:inline-block;width:60px;height:34px}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--border-strong);-webkit-transition:.4s;transition:.4s}.slider:before{position:absolute;content:"";height:26px;width:26px;left:4px;bottom:4px;background-color:var(--text-strong);-webkit-transition:.4s;transition:.4s}input:checked+.slider{background-color:var(--info)}input:focus+.slider{box-shadow:0 0 1px var(--info)}input:checked+.slider:before{-webkit-transform:translateX(26px);-ms-transform:translateX(26px);transform:translate(26px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}.lesson-wrap{display:flex;position:relative;cursor:pointer;flex-direction:column;background-color:var(--bg-elevated);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:10px;gap:5px;width:200px;height:162px;max-height:162px;transition:max-height .15s ease-out;align-self:flex-end}.lesson-wrap:hover{border:1px solid var(--accent)}.lesson-wrap-collapsed{position:relative;max-height:0px;transition:max-height .15s ease-out}.lesson-header{display:flex;justify-content:space-around;font-weight:400;font-size:12px;color:var(--text);gap:10px;width:100%;height:40px;line-height:18px}.lesson-separator{position:relative;width:100%;height:8px;background-color:var(--success-bg);border-radius:4px;border:1px solid var(--border)}.lesson-title{font-weight:600;color:var(--text-strong)}.lesson-duration{position:absolute;right:-1px;bottom:6px;height:10px;padding-left:2px;padding-right:2px;color:var(--text-strong);background-color:var(--success-bg);border-top-left-radius:4px;border-top-right-radius:4px;border-left:1px solid var(--border);border-right:1px solid var(--border);border-top:1px solid var(--border);border-bottom:none;font-weight:600;font-size:10px;align-self:flex-end}.lesson-description{display:flex;font-weight:400;font-size:10px;color:var(--text-muted);flex-direction:row;gap:10px}.lesson-match-section{position:absolute;width:100%;bottom:0;left:0;display:flex;flex-direction:column}.lesson-match-tab{cursor:pointer;position:relatve;margin-left:10px;border:1px solid var(--border);border-top-left-radius:6px;border-top-right-radius:6px;background-color:var(--bg-raised);border-bottom:none;height:20px;max-height:20px;width:20px;z-index:2;color:var(--text)}.lesson-match-tab-collapsed{max-height:0}.lesson-match-info{position:relative;color:var(--text);max-height:162px;height:162px;display:flex;flex-direction:column;border:1px solid var(--border);border-top-left-radius:10px;border-top-right-radius:10px;padding:20px;gap:10px;background-color:var(--bg-raised);font-size:11px;box-shadow:var(--shadow-md);transition:max-height .05s ease-out}.lesson-match-info-collapsed{max-height:0px;padding:0;transition:max-height .05s ease-out}.lesson-match-string span{font-weight:1000}.lesson-match-string div{font-weight:600}.lesson-match-score span{font-weight:1000}.lesson-match-score div{font-weight:600}.nav-sidebar{position:relative;height:100%;width:56px;flex-shrink:0;background-color:var(--bg-elevated);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:5;transition:width .15s ease-out}.nav-sidebar-expanded{width:200px}.nav-sidebar-items{list-style:none;padding:8px 0;margin:0;flex:1;overflow:hidden}.nav-sidebar-item{display:flex;align-items:center;gap:14px;width:100%;padding:10px 16px;background:transparent;border:none;border-left:3px solid transparent;border-radius:0;color:var(--text-muted);cursor:pointer;font-size:14px;font-weight:500;text-align:left;transition:background-color .1s ease,color .1s ease,border-color .1s ease}.nav-sidebar-item:hover{background-color:var(--bg-hover);color:var(--text)}.nav-sidebar-item:focus,.nav-sidebar-item:focus-visible{outline:2px solid var(--border-focus);outline-offset:-2px}.nav-sidebar-item-active{background-color:var(--bg-hover);color:var(--accent);border-left-color:var(--accent)}.nav-sidebar-icon{width:22px;height:22px;flex-shrink:0}.nav-sidebar-label{white-space:nowrap;opacity:0;transition:opacity .1s ease;pointer-events:none}.nav-sidebar-expanded .nav-sidebar-label{opacity:1;pointer-events:auto}.nav-sidebar-toggle{display:flex;align-items:center;justify-content:center;padding:10px;background:transparent;border:none;border-top:1px solid var(--border);color:var(--text-muted);cursor:pointer;transition:background-color .1s ease,color .1s ease}.nav-sidebar-toggle:hover{background-color:var(--bg-hover);color:var(--text)}.nav-sidebar-toggle:focus,.nav-sidebar-toggle:focus-visible{outline:2px solid var(--border-focus);outline-offset:-2px}.map-app{width:100%;height:100%;display:flex;flex-direction:column;background-color:var(--bg-base);color:var(--text);text-align:left}.map-app .header{display:flex;align-items:center;padding:10px;gap:10px;background-color:var(--bg-elevated);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm)}.map-title{color:var(--text-strong);font-weight:600}.map-filename{margin-left:12px;color:var(--text-muted);font-size:13px;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-reset{margin-left:auto;font-size:13px;padding:6px 12px}.map-body{flex:1;display:flex;flex-direction:column;overflow:auto;padding:32px}.map-upload-zone{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px 40px;border:2px dashed var(--border-strong);border-radius:16px;background-color:var(--bg-elevated);cursor:pointer;transition:border-color .15s ease,background-color .15s ease;text-align:center}.map-upload-zone:hover,.map-upload-zone-active{border-color:var(--accent);background-color:var(--bg-raised)}.map-upload-icon{width:64px;height:64px;color:var(--accent);opacity:.8}.map-upload-title{font-size:22px;font-weight:600;color:var(--text-strong);margin:8px 0 0}.map-upload-body{font-size:14px;color:var(--text-muted);max-width:480px;margin:0;line-height:1.5}.map-upload-formats{font-size:12px;color:var(--text-faint);margin:4px 0 0}.map-status{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:40px}.map-spinner{width:48px;height:48px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:map-spin .9s linear infinite}@keyframes map-spin{to{transform:rotate(360deg)}}.map-status-title{font-size:20px;font-weight:600;color:var(--text-strong);margin:0}.map-status-body{font-size:14px;color:var(--text-muted);margin:0;max-width:460px}.map-status-body strong{color:var(--text-strong);font-weight:500}.map-error{align-self:center;margin:auto;display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:20px 24px;border:1px solid var(--danger-border);background-color:var(--danger-bg);border-radius:10px;color:var(--text);max-width:560px}.map-error strong{color:var(--danger)}.map-review{display:flex;flex-direction:column;gap:16px}.map-review-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap}.map-review-title{font-size:20px;font-weight:600;color:var(--text-strong);margin:0}.map-review-subtitle{font-size:13px;color:var(--text-muted);margin:4px 0 0;max-width:560px;line-height:1.5}.map-review-actions{display:flex;gap:10px;flex-shrink:0}.map-btn-icon{width:16px;height:16px}.map-add-row,.map-primary{display:inline-flex;align-items:center;gap:6px;font-size:13px;padding:8px 14px}.map-primary{background-color:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.map-primary:hover:not(:disabled){background-color:var(--accent-hover);border-color:var(--accent-hover)}.map-primary:disabled{background-color:var(--bg-raised);border-color:var(--border);color:var(--text-faint);cursor:not-allowed}.map-table{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px;overflow:hidden;background-color:var(--bg-elevated)}.map-table-head,.map-table-row{display:grid;grid-template-columns:1.4fr 2.6fr 56px;column-gap:16px;padding:10px 14px;align-items:stretch}.map-table-head>*,.map-table-row>*{min-width:0}.map-table-head{background-color:var(--bg-raised);font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-bottom:1px solid var(--border);align-items:center}.map-table-row+.map-table-row{border-top:1px solid var(--border)}.map-cell-input,.map-cell-textarea{width:100%;padding:8px 10px;font-size:13px;border-radius:6px;background-color:var(--bg-input);color:var(--text);border:1px solid var(--border);font-family:inherit;resize:vertical}.map-cell-textarea{min-height:38px;line-height:1.4}.map-cell-input:focus,.map-cell-textarea:focus{outline:none;border-color:var(--border-focus)}.map-row-remove{width:36px;height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;align-self:center;background-color:transparent;color:var(--text-muted);border:1px solid var(--border)}.map-row-remove:hover{color:var(--danger);border-color:var(--danger-border);background-color:var(--danger-bg)}.map-review-footer{display:flex;justify-content:flex-end;font-size:12px;color:var(--text-muted)}
