@import"https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;600;700&family=IBM+Plex+Mono:wght@300;400;500;600&display=swap";:root{--void: #050508;--deep: #0a0c14;--night: #0e1018;--dusk: #141822;--sand-dark: #1c2030;--sand-mid: #252a3a;--sand-light: #333950;--accent: #c0392b;--accent-bright: #e74c3c;--accent-glow: rgba(192, 57, 43, .12);--accent-glow-strong: rgba(192, 57, 43, .25);--gold: #c8a84a;--sand: #8a8a9a;--cream: #c8c4d0;--bone: #e0dce8;--saber: #ff1a1a;--saber-glow: rgba(255, 26, 26, .3);--particle-color: #ff4444;--text-primary: #c0bcd0;--text-secondary: #7a7890;--text-tertiary: #4a485a;--text-ghost: #2a2838;--c-source: #e74c3c;--c-source-dim: #c0392b;--c-source-glow: rgba(231, 76, 60, .15);--c-source-border: rgba(231, 76, 60, .25);--c-target: #3498db;--c-target-dim: #2980b9;--c-target-glow: rgba(52, 152, 219, .15);--c-target-border: rgba(52, 152, 219, .25);--c-mapping: #9b59b6;--c-mapping-glow: rgba(155, 89, 182, .2);--radius: 8px;--radius-lg: 12px;--transition: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--shadow-ambient: rgba(0, 0, 0, .5);--shadow-deep: rgba(0, 0, 0, .6);--shadow-node: rgba(0, 0, 0, .25);--dot-color: #1a2030;--mm-bg: #050508;--mm-link: #1a2030;--field-hover: rgba(255, 255, 255, .03);--field-port-bg: #1c2030}[data-theme=light]{--void: #e8e4dc;--deep: #f0ece4;--night: #e0dcd4;--dusk: #d4d0c8;--sand-dark: #c4c0b4;--sand-mid: #b4b0a4;--sand-light: #9a9688;--accent: #2980b9;--accent-bright: #3498db;--accent-glow: rgba(41, 128, 185, .15);--accent-glow-strong: rgba(41, 128, 185, .25);--gold: #c8a84a;--sand: #6a6458;--cream: #2a2418;--bone: #1a1408;--saber: #4a9eff;--saber-glow: rgba(74, 158, 255, .3);--particle-color: #6ab4ff;--text-primary: #1a1408;--text-secondary: #4a4030;--text-tertiary: #7a7060;--text-ghost: #b0a490;--c-source: #c0392b;--c-source-dim: #922b21;--c-source-glow: rgba(192, 57, 43, .15);--c-source-border: rgba(192, 57, 43, .25);--c-target: #2471a3;--c-target-dim: #1a5276;--c-target-glow: rgba(36, 113, 163, .15);--c-target-border: rgba(36, 113, 163, .25);--c-mapping: #7d3c98;--c-mapping-glow: rgba(125, 60, 152, .2);--shadow-ambient: rgba(80, 60, 30, .12);--shadow-deep: rgba(80, 60, 30, .18);--shadow-node: rgba(80, 60, 30, .1);--dot-color: #c4b8a0;--mm-bg: #e8e4dc;--mm-link: #c4c0b4;--field-hover: rgba(0, 0, 0, .03);--field-port-bg: #d4d0c8}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{background:var(--void);color:var(--text-primary);font-family:IBM Plex Mono,monospace;height:100vh;height:100dvh;overflow:hidden;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;transition:background .6s ease,color .6s ease}#atmosphere{position:fixed;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse 80% 60% at 50% 35%,rgba(15,10,25,.06) 0%,transparent 70%),radial-gradient(ellipse 40% 50% at 15% 50%,rgba(231,76,60,.025) 0%,transparent 70%),radial-gradient(ellipse 40% 50% at 85% 50%,rgba(52,152,219,.025) 0%,transparent 70%);transition:background .6s ease}[data-theme=light] #atmosphere{background:radial-gradient(ellipse 80% 60% at 50% 35%,rgba(200,180,140,.08) 0%,transparent 70%),radial-gradient(ellipse 40% 50% at 15% 50%,rgba(192,57,43,.03) 0%,transparent 70%),radial-gradient(ellipse 40% 50% at 85% 50%,rgba(41,128,185,.03) 0%,transparent 70%)}#grain{position:fixed;inset:0;pointer-events:none;z-index:999;opacity:.022;mix-blend-mode:overlay}[data-theme=light] #grain{opacity:.012;mix-blend-mode:multiply}#dots{position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.3}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--sand-dark);border-radius:3px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.mapper-divider{position:fixed;top:0;bottom:0;left:50%;width:1px;background:repeating-linear-gradient(to bottom,var(--sand-mid, #444) 0px,var(--sand-mid, #444) 6px,transparent 6px,transparent 12px);opacity:.3;pointer-events:none;z-index:5;display:none}@media(max-width:768px){#header{top:12px;left:12px;bottom:auto}.header-sub,.header-sep{display:none}.header-title{font-size:12px}#view-tabs{top:40px;padding:2px;gap:1px}.view-tab{padding:4px 10px;height:26px;font-size:9px}.view-tab span{display:none}.view-tab svg{width:16px;height:16px}#toolbar{top:auto;bottom:10px;border-radius:14px;padding:4px 6px;gap:0}.tb{padding:0 7px;height:38px;min-width:38px}.tb-label{display:none}.tb-group{margin:0 2px}.tb-desktop{display:none!important}.panel{width:calc(100vw - 24px)!important;left:12px!important;right:12px!important;top:70px!important;margin-left:0!important;max-height:calc(100dvh - 120px);overflow-y:auto}.fld input,.fld textarea,.fld select{font-size:16px;padding:12px}.btn{height:40px;font-size:12px}.ctx-i{padding:11px;font-size:13px}#minimap{width:120px;height:80px;bottom:58px;right:8px}#legend{bottom:60px;left:8px;max-width:180px;padding:4px 5px}.leg{font-size:8px;padding:2px 4px}.leg-dot{width:5px;height:5px}#status{display:none}#toasts{top:14px;right:8px;left:8px}#zoom-ind{top:auto;bottom:58px}.db-table{min-width:200px}.db-field{padding:6px 12px;height:34px;font-size:12px}.db-table-add-field{height:40px;font-size:11px}}@media(min-width:769px){.tb-mobile,#panel-backdrop{display:none!important}}@media(pointer:coarse){.db-table:active .db-table-body{filter:brightness(1.1)}.field-port{width:22px;height:22px;border-width:2px}.field-port-l{left:-11px;margin-top:-11px}.field-port-r{right:-11px;margin-top:-11px}.db-table.is-selected .field-port{opacity:1;transform:scale(1);background:var(--sand-dark);border-color:var(--accent);box-shadow:0 0 6px var(--accent-glow)}.link-hit{stroke-width:28!important}#tip{display:none!important}.ctx-i .ctx-hint{display:none}}#header{position:fixed;top:18px;left:22px;z-index:900;display:flex;align-items:baseline;gap:12px;opacity:0;animation:fadeSlideIn .6s .1s ease-out forwards}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.header-title{font-family:Orbitron,sans-serif;font-weight:700;font-size:14px;letter-spacing:.14em;color:var(--bone);text-transform:uppercase}.header-sep{width:1px;height:14px;background:var(--text-ghost);display:inline-block;vertical-align:middle;margin-bottom:-2px}.header-sub{font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:400;letter-spacing:.06em;color:var(--text-tertiary)}#toolbar{position:fixed;top:14px;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:6px;background:var(--deep);border:1px solid var(--sand-dark);border-radius:10px;padding:4px 5px;box-shadow:0 8px 32px var(--shadow-ambient),inset 0 1px #ffffff05;opacity:0;animation:fadeSlideIn .5s .2s ease-out forwards;max-width:calc(100vw - 24px);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}[data-theme=light] #toolbar{box-shadow:0 4px 20px var(--shadow-ambient),inset 0 1px #ffffff80}#toolbar::-webkit-scrollbar{display:none}.tb-group{display:flex;align-items:center;gap:2px;background:var(--sand-dark);border-radius:6px;padding:2px;flex-shrink:0}.tb{display:flex;align-items:center;justify-content:center;gap:5px;height:28px;padding:0 8px;border:none;background:transparent;color:var(--text-tertiary);font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:400;letter-spacing:.03em;border-radius:5px;cursor:pointer;transition:background .2s ease,color .2s ease;white-space:nowrap;flex-shrink:0;-webkit-tap-highlight-color:transparent}.tb:hover{background:var(--dusk);color:var(--text-secondary)}.tb:active{transform:scale(.96)}.tb.active{background:var(--night);color:var(--accent)}.tb svg{width:14px;height:14px;flex-shrink:0}.tb[disabled]{opacity:.2;pointer-events:none}.ctx-dialect-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}.panel{position:fixed;z-index:1001;background:var(--deep);border:1px solid var(--sand-dark);border-radius:var(--radius-lg);box-shadow:0 24px 64px var(--shadow-deep),inset 0 1px #ffffff05;padding:22px;display:none;width:280px}[data-theme=light] .panel{box-shadow:0 12px 40px var(--shadow-deep),inset 0 1px #ffffff80}.panel.open{display:block;animation:panelIn .25s ease-out}@keyframes panelIn{0%{opacity:0;transform:translateY(-8px)}}#panel-backdrop{display:none;position:fixed;inset:0;z-index:1000;background:#0000004d;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}#panel-backdrop.show{display:block;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.panel-head{font-family:Orbitron,sans-serif;font-size:11px;font-weight:600;letter-spacing:.12em;color:var(--sand);text-transform:uppercase;margin-bottom:18px;padding-bottom:10px;border-bottom:1px solid var(--sand-dark)}.fld{margin-bottom:14px}.fld label{display:block;font-size:9.5px;font-weight:500;letter-spacing:.06em;color:var(--text-tertiary);margin-bottom:5px;text-transform:uppercase}.fld input,.fld textarea,.fld select{width:100%;background:var(--night);border:1px solid var(--sand-dark);border-radius:6px;padding:8px 10px;color:var(--text-primary);font-family:IBM Plex Mono,monospace;font-size:12px;outline:none;transition:border-color var(--transition)}.fld input:focus,.fld textarea:focus,.fld select:focus{border-color:var(--accent)}.fld textarea{resize:vertical;min-height:56px}.fld select{cursor:pointer;-webkit-appearance:none}.btn-row{display:flex;gap:8px;margin-top:18px}.btn{flex:1;height:32px;border:none;border-radius:6px;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.04em;cursor:pointer;transition:background .2s ease,color .2s ease;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.btn-accent{background:var(--accent-glow);color:var(--accent)}.btn-accent:hover{background:var(--accent-glow-strong)}.btn-err{background:#e74c3c1a;color:var(--c-source)}.btn-err:hover{background:#e74c3c2e}.btn-ghost{background:transparent;color:var(--text-tertiary);border:1px solid var(--sand-dark)}.btn-ghost:hover{background:var(--dusk);color:var(--text-secondary)}#ctx{position:fixed;z-index:2000;background:var(--deep);border:1px solid var(--sand-dark);border-radius:var(--radius);padding:4px;min-width:172px;display:none;box-shadow:0 16px 48px var(--shadow-deep);animation:panelIn .15s ease-out}[data-theme=light] #ctx{box-shadow:0 8px 30px var(--shadow-deep),inset 0 1px #fff6}.ctx-i{display:flex;align-items:center;gap:8px;padding:7px 11px;border-radius:5px;font-size:11px;font-weight:400;color:var(--text-secondary);cursor:pointer;transition:background .1s;-webkit-tap-highlight-color:transparent}.ctx-i:hover{background:var(--dusk)}.ctx-i.err{color:var(--c-source)}.ctx-i svg{width:13px;height:13px;flex-shrink:0;opacity:.5}.ctx-s{height:1px;background:var(--sand-dark);margin:3px 8px}.ctx-i .ctx-hint{margin-left:auto;font-size:9px;color:var(--text-ghost)}#minimap{position:fixed;bottom:14px;right:14px;width:180px;height:120px;background:var(--deep);border:1px solid var(--sand-dark);border-radius:var(--radius);z-index:900;overflow:hidden;box-shadow:0 6px 20px var(--shadow-ambient);cursor:pointer;opacity:0;animation:fadeSlideIn .5s .6s ease-out forwards}#minimap canvas{width:100%;height:100%;display:block}#mm-vp{position:absolute;border:1px solid rgba(192,57,43,.3);border-radius:1px;background:#c0392b08;pointer-events:none}[data-theme=light] #mm-vp{border-color:#2980b959;background:#2980b90d}#legend{position:fixed;bottom:14px;left:14px;z-index:900;display:flex;gap:2px;flex-wrap:wrap;background:var(--deep);border:1px solid var(--sand-dark);border-radius:var(--radius);padding:5px 6px;box-shadow:0 6px 20px var(--shadow-ambient);opacity:0;animation:fadeSlideIn .5s .5s ease-out forwards}.leg{display:flex;align-items:center;gap:5px;font-size:9.5px;font-weight:400;color:var(--text-tertiary);cursor:pointer;padding:3px 7px;border-radius:5px;transition:background .2s ease,color .2s ease,opacity .2s ease;letter-spacing:.02em}.leg:hover{background:var(--dusk);color:var(--text-secondary)}.leg.dim{opacity:.2}.leg-dot{width:6px;height:6px;border-radius:2px;flex-shrink:0}#status{position:fixed;bottom:14px;left:50%;transform:translate(-50%);z-index:900;font-size:9.5px;font-weight:400;color:var(--text-ghost);letter-spacing:.04em;background:var(--deep);border:1px solid var(--sand-dark);padding:5px 14px;border-radius:var(--radius);display:flex;gap:10px;align-items:center;box-shadow:0 4px 16px var(--shadow-ambient);opacity:0;animation:fadeSlideIn .5s .7s ease-out forwards}.s-dot{width:4px;height:4px;border-radius:50%;background:var(--accent);opacity:.6}#status span{color:var(--text-tertiary)}#tip{position:fixed;pointer-events:none;background:var(--deep);border:1px solid var(--sand-dark);border-radius:7px;padding:10px 13px;font-size:10.5px;font-weight:400;color:var(--text-tertiary);opacity:0;transition:opacity .12s;z-index:2000;max-width:220px;line-height:1.5;box-shadow:0 10px 30px var(--shadow-deep)}#tip b{color:var(--cream);display:block;margin-bottom:3px;font-family:Orbitron,sans-serif;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}#toasts{position:fixed;top:56px;right:14px;z-index:3000;display:flex;flex-direction:column;gap:6px}.toast{background:var(--deep);border:1px solid var(--sand-dark);border-left:2px solid var(--accent);border-radius:6px;padding:8px 14px;font-size:10.5px;color:var(--text-secondary);box-shadow:0 6px 20px var(--shadow-ambient);animation:toastIn .3s cubic-bezier(.4,0,.2,1)}.toast.exit{animation:toastOut .25s ease-in forwards}@keyframes toastIn{0%{opacity:0;transform:translate(16px)}}@keyframes toastOut{to{opacity:0;transform:translate(16px)}}#zoom-ind{position:fixed;top:52px;left:50%;transform:translate(-50%);font-size:10px;color:var(--text-ghost);background:var(--deep);padding:3px 10px;border-radius:5px;border:1px solid var(--sand-dark);opacity:0;transition:opacity .2s;z-index:998;pointer-events:none}#theme-indicator{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);font-family:Orbitron,sans-serif;font-size:16px;font-weight:700;letter-spacing:.18em;color:var(--accent);background:var(--deep);border:1px solid var(--sand-dark);border-radius:var(--radius-lg);padding:14px 32px;text-transform:uppercase;box-shadow:0 16px 48px var(--shadow-deep);opacity:0;pointer-events:none;z-index:5000}#theme-indicator.show{animation:themeFlash 1.2s ease-out forwards}@keyframes themeFlash{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}15%{opacity:1;transform:translate(-50%,-50%) scale(1)}70%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) scale(1)}}.sc-list{display:flex;flex-direction:column;gap:7px}.sc-row{display:flex;align-items:center;justify-content:space-between}.sc-label{font-size:11px;color:var(--text-secondary);font-family:IBM Plex Mono,monospace;font-weight:400}.sc-keys{display:flex;gap:3px}.kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 5px;background:var(--night);border:1px solid var(--sand-dark);border-radius:3px;font-size:9px;color:var(--text-tertiary);line-height:1}#canvas-wrap{position:absolute;inset:0;overflow:hidden;cursor:grab;z-index:1;touch-action:none}#canvas-wrap.is-grabbing{cursor:grabbing}#canvas-wrap.is-linking{cursor:crosshair}#canvas-wrap.is-space{cursor:grab}#canvas{position:absolute;transform-origin:0 0;will-change:transform}#link-svg{position:absolute;top:0;left:0;width:10000px;height:8000px;pointer-events:none;overflow:visible;z-index:2}.link-hit{pointer-events:stroke;cursor:pointer}.link-vis{pointer-events:none;transition:stroke-opacity .2s}.link-vis.selected{stroke-opacity:1!important;stroke-width:2.5!important;animation:linkPulse 2s ease-in-out infinite}.temp-link{pointer-events:none}@keyframes forceFlow{to{stroke-dashoffset:-18}}.link-animated{animation:forceFlow 1.6s linear infinite}@keyframes linkPulse{0%,to{stroke-opacity:.85}50%{stroke-opacity:1}}.snap-g{position:absolute;pointer-events:none;z-index:5}.snap-g.h{height:1px;left:0;width:10000px;background:#c0392b1f}.snap-g.v{width:1px;top:0;height:8000px;background:#c0392b1f}[data-theme=light] .snap-g.h,[data-theme=light] .snap-g.v{background:#2980b92e}#sel-box{position:absolute;border:1px solid rgba(192,57,43,.25);background:#c0392b08;border-radius:2px;pointer-events:none;z-index:50;display:none}[data-theme=light] #sel-box{border-color:#2980b940;background:#2980b908}.db-table{position:absolute;cursor:grab;z-index:10;contain:layout style;min-width:180px}.db-table:active{cursor:grabbing}.db-table.is-selected{z-index:20}.db-table-body{border-radius:var(--radius);background:var(--night);overflow:hidden;transition:box-shadow .3s ease,border-color .3s ease}.db-table:hover .db-table-body{filter:brightness(1.05)}.db-table-header{display:flex;align-items:center;gap:8px;padding:8px 12px;height:46px;cursor:grab;user-select:none;position:relative}.db-table-header:active{cursor:grabbing}.db-table-side-tag{font-family:Orbitron,sans-serif;font-size:8px;font-weight:700;letter-spacing:.1em;color:#fff9;background:#00000040;padding:2px 5px;border-radius:3px;text-transform:uppercase}.db-table-name{font-family:Orbitron,sans-serif;font-weight:600;font-size:12px;letter-spacing:.04em;color:#fff;text-transform:uppercase;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 3px rgba(0,0,0,.3)}.db-table-count{font-family:IBM Plex Mono,monospace;font-size:9px;color:#ffffff80;background:#0003;padding:1px 5px;border-radius:8px}.db-table-collapse{background:none;border:none;cursor:pointer;color:#ffffff80;padding:2px;border-radius:3px;display:flex;align-items:center;transition:color .2s,background .2s}.db-table-collapse:hover{color:#ffffffe6;background:#ffffff1a}.db-table-fields{max-height:600px;overflow-y:auto}.db-field{display:flex;align-items:center;gap:6px;padding:4px 12px;height:28px;font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--text-primary);border-top:1px solid var(--sand-dark);cursor:pointer;position:relative;transition:background .15s}.db-field:hover{background:var(--dusk)}.field-icons{display:flex;gap:3px;flex-shrink:0;min-width:28px}.field-pk{font-size:8px;font-weight:700;color:var(--gold);background:#c8a84a26;padding:1px 3px;border-radius:2px;letter-spacing:.04em}.field-fk{font-size:8px;font-weight:700;color:var(--c-target);background:var(--c-target-glow);padding:1px 3px;border-radius:2px;letter-spacing:.04em}.field-nn{font-size:11px;font-weight:700;color:var(--c-source);margin-left:-1px}.field-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.field-type{font-size:9.5px;color:var(--text-tertiary);font-weight:400;letter-spacing:.02em;flex-shrink:0}.db-table-add-field{display:flex;align-items:center;justify-content:center;height:36px;padding:4px 12px;font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--text-ghost);border-top:1px solid var(--sand-dark);cursor:pointer;transition:background .15s,color .15s;letter-spacing:.03em}.db-table-add-field:hover{background:var(--dusk);color:var(--text-tertiary)}.field-port{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--dusk);border:1.5px solid var(--sand-light);z-index:15;cursor:crosshair;opacity:0;transform:scale(.5);transition:opacity .2s,transform .2s,border-color .15s,background .15s}.db-field:hover .field-port,.db-table.is-selected .field-port,.is-linking .field-port{opacity:1;transform:scale(1)}.side-source .field-port:hover{border-color:var(--c-source);background:var(--sand-dark);transform:scale(1.35)!important;box-shadow:0 0 8px var(--c-source-glow)}.side-target .field-port:hover{border-color:var(--c-target);background:var(--sand-dark);transform:scale(1.35)!important;box-shadow:0 0 8px var(--c-target-glow)}.field-port-l{left:-5px;top:50%;margin-top:-5px}.field-port-r{right:-5px;top:50%;margin-top:-5px}.side-source .db-table-body{border:1px solid var(--c-source-border);border-left:3px solid var(--c-source)}.side-target .db-table-body{border:1px solid var(--c-target-border);border-left:3px solid var(--c-target)}.is-selected.side-source .db-table-body{border-color:var(--c-source);box-shadow:0 0 0 1.5px #e74c3c26,0 4px 16px #e74c3c0f}.is-selected.side-target .db-table-body{border-color:var(--c-target);box-shadow:0 0 0 1.5px #3498db26,0 4px 16px #3498db0f}.field-rel-badge,.field-arr-badge,.field-opt-badge{font-size:8px;font-weight:600;letter-spacing:.02em;color:var(--c-target);opacity:.7}.field-rel-badge{color:var(--c-mapping)}#view-tabs{position:fixed;top:48px;left:50%;transform:translate(-50%);z-index:999;display:flex;gap:2px;background:var(--deep);border:1px solid var(--sand-dark);border-radius:8px;padding:3px;box-shadow:0 4px 16px var(--shadow-ambient);opacity:0;animation:fadeSlideIn .5s .15s ease-out forwards}[data-theme=light] #view-tabs{box-shadow:0 2px 12px var(--shadow-ambient),inset 0 1px #fff6}.view-tab{display:flex;align-items:center;gap:5px;padding:5px 14px;height:28px;border:none;background:transparent;color:var(--text-tertiary);font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.04em;border-radius:6px;cursor:pointer;transition:background .2s,color .2s;-webkit-tap-highlight-color:transparent}.view-tab:hover{background:var(--dusk);color:var(--text-secondary)}.view-tab.active{background:var(--accent-glow);color:var(--accent)}.view-tab[data-view=source].active{background:var(--c-source-glow);color:var(--c-source)}.view-tab[data-view=target].active{background:var(--c-target-glow);color:var(--c-target)}.view-tab[data-view=mapper].active{background:var(--c-mapping-glow);color:var(--c-mapping)}.view-tab svg{width:14px;height:14px;flex-shrink:0}.mapping-badge{pointer-events:none;font-family:IBM Plex Mono,monospace}.validation-warning{display:flex;align-items:center;gap:6px;padding:6px 10px;margin-top:8px;background:#c8a84a14;border:1px solid rgba(200,168,74,.2);border-radius:6px;font-size:10px;color:var(--gold)}.fld-row{display:flex;gap:16px;margin-bottom:14px}.fld-check{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:500;color:var(--text-secondary);cursor:pointer;letter-spacing:.03em}.fld-check input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent);cursor:pointer}.import-format-selector{display:flex;gap:4px;margin-bottom:12px;background:var(--sand-dark);border-radius:6px;padding:3px}.import-format-btn{flex:1;padding:6px 10px;border:none;background:transparent;border-radius:4px;color:var(--text-tertiary);cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.03em;transition:all .2s}.import-format-btn:hover{color:var(--text-secondary)}.import-format-btn.active{background:var(--night);color:var(--text-primary);box-shadow:0 1px 3px #0003}.import-side-selector{display:flex;gap:6px;margin-bottom:16px}.import-side-btn{flex:1;padding:8px;border:1px solid var(--sand-dark);background:transparent;border-radius:6px;color:var(--text-tertiary);cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:10px;display:flex;align-items:center;gap:6px;justify-content:center;transition:all .2s}.import-side-btn:hover{background:var(--dusk);color:var(--text-secondary)}.import-side-btn.active{border-color:var(--accent);color:var(--text-primary);background:var(--accent-glow)}.import-side-btn[data-side=source].active{border-color:var(--c-source);color:var(--c-source);background:var(--c-source-glow)}.import-side-btn[data-side=target].active{border-color:var(--c-target);color:var(--c-target);background:var(--c-target-glow)}.import-side-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.import-divider{text-align:center;margin:16px 0 12px;position:relative;font-size:9px;color:var(--text-ghost);letter-spacing:.08em}.import-divider:before,.import-divider:after{content:"";position:absolute;top:50%;width:calc(50% - 50px);height:1px;background:var(--sand-dark)}.import-divider:before{left:0}.import-divider:after{right:0}.import-drop-zone{border:2px dashed var(--sand-dark);border-radius:8px;padding:18px 12px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;margin-bottom:10px;display:flex;flex-direction:column;align-items:center;gap:6px}.import-drop-zone:hover,.import-drop-zone.drag-over{border-color:var(--c-source);background:#e74c3c0f}.import-drop-icon{opacity:.5}.import-drop-label{font-size:10px;color:var(--text-ghost);letter-spacing:.04em}.import-file-row{display:flex;gap:8px}.import-file-row .btn{flex:1}.export-list{display:flex;flex-direction:column;gap:4px}.export-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--sand-dark);background:transparent;border-radius:6px;cursor:pointer;transition:all .15s;text-align:left}.export-item:hover{background:var(--dusk);border-color:var(--sand-mid)}.export-icon{font-family:Orbitron,sans-serif;font-size:10px;font-weight:700;color:var(--accent);min-width:32px;text-align:center;letter-spacing:.04em}.export-info{display:flex;flex-direction:column;gap:2px}.export-info b{font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;color:var(--text-primary)}.export-info small{font-family:IBM Plex Mono,monospace;font-size:9px;color:var(--text-tertiary)}.char-container{position:absolute;z-index:25;pointer-events:none}.char-container.idle{transition:left .4s cubic-bezier(.4,0,.2,1),top .4s cubic-bezier(.4,0,.2,1)}#char-anakin .char-figure{position:relative;width:36px;height:60px;filter:drop-shadow(0 2px 10px var(--saber-glow))}#char-yoda .char-figure{position:relative;width:36px;height:60px;filter:drop-shadow(0 2px 10px var(--saber-glow));transition:width .3s ease,height .3s ease}[data-theme=light] #char-yoda .char-figure{width:30px;height:48px}.char-figure svg{width:100%;height:100%}#char-yoda{--saber: #4a9eff;--saber-glow: rgba(74, 158, 255, .35)}[data-theme=light] #char-yoda{--saber: #2ecc71;--saber-glow: rgba(46, 204, 113, .35)}#char-anakin{--saber: #ff1a1a;--saber-glow: rgba(255, 26, 26, .35)}[data-theme=light] #char-anakin{--saber: #4a9eff;--saber-glow: rgba(74, 158, 255, .35)}.char-glow{position:absolute;bottom:-4px;left:50%;transform:translate(-50%);width:20px;height:6px;background:radial-gradient(ellipse,var(--saber-glow) 0%,transparent 70%);border-radius:50%;animation:charGlow 2s ease-in-out infinite}@keyframes charGlow{0%,to{opacity:.5;transform:translate(-50%) scale(1)}50%{opacity:1;transform:translate(-50%) scale(1.3)}}@keyframes charBob{0%,to{transform:translateY(0)}25%{transform:translateY(-2px) rotate(1deg)}75%{transform:translateY(-2px) rotate(-1deg)}}.char-container.walking .char-figure{animation:charBob .35s ease-in-out infinite}@keyframes charBreathe{0%,to{transform:translateY(0)}50%{transform:translateY(-1px)}}.char-container.idle .char-figure{animation:charBreathe 3s ease-in-out infinite}@keyframes eyeGlow{0%,to{opacity:.6}50%{opacity:1}}.char-eyes{animation:eyeGlow 2.5s ease-in-out infinite}.char-container.hidden{opacity:0;transition:opacity .3s ease-out}.force-particle{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--particle-color);pointer-events:none;z-index:24;opacity:0}@keyframes particleFade{0%{opacity:.6;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(0) translateY(-12px)}}.saber-blade{filter:drop-shadow(0 0 4px var(--saber)) drop-shadow(0 0 8px var(--saber-glow))}
