:root{--ms-blue:#0078d4;--ms-blue-dark:#106ebe;--ms-blue-light:#2b88d8;--ms-green:#107c10;--ms-green-light:#159118;--ms-yellow:#ffb900;--ms-orange:#d83b01;--ms-purple:#5c2d91;--ms-cyan:#00a9e0;--ms-red:#e81123;--bg-primary:#1b1b1b;--bg-secondary:#2d2d2d;--bg-tertiary:#3d3d3d;--bg-elevated:#323232;--text-primary:#fff;--text-secondary:#b3b3b3;--text-tertiary:#a0a0a0;--border-color:#404040;--border-subtle:#333;--on-accent:#fff;--stat-blue:#5cb0f2;--stat-green:#3fb950;--stat-purple:#c4a2f0;--ms-yellow-fg:#ffb900;--progress-from:#4da6ff;--progress-to:#b98ee6;--success:#107c10;--warning:#ffb900;--error:#e81123;--info:#0078d4;--shadow-sm:0 2px 4px #0003;--shadow-md:0 4px 8px #00000040;--shadow-lg:0 8px 16px #0000004d;--shadow-glow:0 0 20px #0078d44d;--transition-fast:.15s ease-out;--transition-normal:.25s ease-out;--transition-slow:.4s ease-out;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--font-primary:"Segoe UI", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"Cascadia Code", "Fira Code", monospace;--graph-bg:#1e1e1e;--graph-node-text:#b3b3b3;--graph-edge-color:#6e6e6e;--graph-edge-text:#9ca0a8;--graph-edge-label-bg:#15161d;--chess-square-dark:#141e32d9;--chess-square-light:#1e3250a6;--about-link-color:#9fd6ff;--about-link-hover-color:#c8e8ff}.light-theme{--bg-primary:#f5f5f5;--bg-secondary:#fff;--bg-tertiary:#e8e8e8;--bg-elevated:#fff;--text-primary:#1a1a1a;--text-secondary:#444;--text-tertiary:#666;--border-color:silver;--border-subtle:#d8d8d8;--stat-blue:#0067c0;--stat-green:#107c10;--stat-purple:#7a3fbf;--ms-yellow-fg:#8a6a00;--progress-from:#0078d4;--progress-to:#5c2d91;--shadow-sm:0 2px 4px #00000014;--shadow-md:0 4px 8px #0000001a;--shadow-lg:0 8px 16px #0000001f;--graph-bg:#fcfcfc;--graph-node-text:#2a2a2a;--graph-edge-color:#888;--graph-edge-text:#555;--graph-edge-label-bg:#f2f2f2;--chess-square-dark:#dce6f5cc;--chess-square-light:#f0f5ffe6;--about-link-color:#004578;--about-link-hover-color:#003a63}.theme-aurora{--ms-blue:#2aaa92;--ms-blue-dark:#1f8d78;--ms-blue-light:#3fd0b4;--info:#2aaa92;--ms-cyan:#6ad6f9;--progress-from:#2aaa92;--bg-primary:#0e2b27;--bg-secondary:#14352f;--bg-tertiary:#1c463e;--bg-elevated:#173e37;--text-primary:#eafbf6;--text-secondary:#a6d2c8;--text-tertiary:#8ab0a6;--border-color:#265c53;--border-subtle:#1c4640;--on-accent:#08221d;--shadow-glow:0 0 20px #2aaa9259;--graph-bg:#0f2d28;--graph-node-text:#c2e6dc;--graph-edge-color:#4f8c7f;--graph-edge-text:#8fbdb2;--graph-edge-label-bg:#0c2622;--chess-square-dark:#082824d9;--chess-square-light:#10403a99;--about-link-color:#6de9bb;--about-link-hover-color:#abe88e}.theme-crimson{--ms-blue:#d6002a;--ms-blue-dark:#a8001f;--ms-blue-light:#e63956;--info:#d6002a;--progress-from:#d6002a;--bg-primary:#f8f9fa;--bg-secondary:#fff;--bg-tertiary:#eef0f2;--bg-elevated:#fff;--text-primary:#1b1f24;--text-secondary:#495057;--text-tertiary:#656d75;--border-color:#d6dae0;--border-subtle:#e3e6ea;--shadow-glow:0 0 20px #d6002a38;--graph-bg:#fff;--graph-node-text:#1b1f24;--graph-edge-color:#8a9198;--graph-edge-text:#646b72;--graph-edge-label-bg:#fbf7f8;--chess-square-dark:#d6002a12;--chess-square-light:#fbf7f8;--about-link-color:#a8001f;--about-link-hover-color:#d6002a}.theme-picker{display:inline-flex;position:relative}.theme-menu{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);min-width:172px;box-shadow:var(--shadow-lg);z-index:1000;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.theme-menu-item{width:100%;color:var(--text-primary);font:inherit;cursor:pointer;border-radius:var(--radius-sm);text-align:left;transition:background var(--transition-fast);background:0 0;border:none;align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:flex}.theme-menu-item:hover{background:var(--bg-tertiary)}.theme-menu-item.active{color:var(--ms-blue);font-weight:600}.theme-menu-item .theme-check{margin-left:auto}.theme-swatch{border:1px solid var(--border-color);border-radius:4px;flex-shrink:0;width:14px;height:14px}.mobile-menu-themes{border-top:1px solid var(--border-subtle);flex-direction:column;gap:2px;margin-top:4px;padding-top:4px;display:flex}.mobile-menu-themes .theme-check{margin-left:auto}.mobile-menu-item.active{color:var(--ms-blue);font-weight:600}.about-link{color:var(--about-link-color);text-underline-offset:2px;font-weight:600;text-decoration:underline}.about-link:hover{color:var(--about-link-hover-color)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;font-family:var(--font-primary)}body{background:var(--bg-primary);color:var(--text-primary);overflow:hidden}.app-container{grid-template-rows:64px 1fr;grid-template-columns:280px 1fr 360px;gap:0;height:100dvh;display:grid}.header{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);z-index:100;grid-column:1/-1;justify-content:space-between;align-items:center;padding:0 24px;display:flex}.header-logo{align-items:center;gap:12px;display:flex}.header-logo>div{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.header-logo svg{width:32px;height:32px}.header-title{color:var(--text-primary);font-size:20px;font-weight:700}.header-title-preview{color:var(--text-secondary);margin-left:6px;font-size:12px;font-weight:500}.header-context{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:240px;font-size:12px;overflow:hidden}.header-stats{align-items:center;gap:24px;display:flex}.stat-item{color:var(--text-secondary);align-items:center;gap:8px;font-size:14px;display:flex}.stat-value{color:var(--ms-yellow-fg);font-weight:600}.header-actions{align-items:center;gap:12px;display:flex}.icon-btn{width:40px;height:40px;color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:relative}.icon-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.icon-btn[data-tooltip]:after{content:attr(data-tooltip);background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);white-space:nowrap;pointer-events:none;opacity:0;z-index:1000;padding:5px 10px;font-size:12px;transition:opacity .15s;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 2px 8px #00000040}.icon-btn[data-tooltip]:hover:after{opacity:1}.header-text-btn{border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-primary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:500;display:flex}.header-text-btn:hover{background:var(--ms-blue);border-color:var(--ms-blue);color:var(--on-accent)}.quest-panel{background:var(--bg-secondary);border-right:1px solid var(--border-color);color:var(--text-primary);flex-direction:column;display:flex;overflow:hidden}.panel-header{border-bottom:1px solid var(--border-color);padding:16px 20px}.panel-title{color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px;font-size:14px;font-weight:600}.quest-list{flex:1;padding:12px;overflow-y:auto}.quest-card{background:var(--bg-elevated);border-radius:var(--radius-lg);cursor:pointer;border:1px solid var(--border-subtle);transition:all var(--transition-fast);margin-bottom:12px;padding:16px}.quest-card:hover{border-color:var(--ms-blue);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.quest-card.active{border-color:var(--ms-blue);background:#0078d41a}.quest-card.completed{border-color:var(--ms-green);opacity:.8}.quest-header{justify-content:space-between;align-items:flex-start;margin-bottom:8px;display:flex}.quest-title{color:var(--text-primary);font-size:15px;font-weight:600}.quest-badge{border-radius:var(--radius-sm);text-transform:uppercase;padding:2px 8px;font-size:10px;font-weight:600}.quest-badge.beginner{background:var(--ms-green);color:#fff}.quest-badge.intermediate{background:var(--ms-yellow);color:#000}.quest-badge.advanced{background:var(--ms-purple);color:#fff}.quest-description{color:var(--text-secondary);margin-bottom:12px;font-size:13px;line-height:1.5}.quest-reward{color:#9a9a9a;align-items:center;gap:8px;font-size:12px;display:flex}.quest-points{color:var(--ms-yellow-fg);font-weight:600}.active-quest-panel{border-radius:var(--radius-lg);border:1px solid var(--ms-blue);background:linear-gradient(135deg,#0078d41a,#5c2d911a);margin:12px;padding:20px}.active-quest-title{color:var(--ms-blue);align-items:center;gap:8px;margin-bottom:16px;font-size:16px;font-weight:600;display:flex}.quest-progress{align-items:center;gap:8px;margin-bottom:16px;display:flex}.progress-bar{background:var(--bg-tertiary);border-radius:3px;flex:1;height:6px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--progress-from), var(--progress-to));height:100%;transition:width var(--transition-normal)}.progress-text{color:var(--text-secondary);font-size:12px}.current-step{background:var(--bg-elevated);border-radius:var(--radius-md);border-left:3px solid var(--ms-blue);padding:16px}.step-instruction{color:var(--text-primary);margin-bottom:8px;font-size:14px}.step-hint{color:var(--text-tertiary);font-size:12px;font-style:italic}.quest-actions{gap:8px;margin-top:16px;display:flex}.btn{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);border:none;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;display:flex}.btn-primary{background:var(--ms-blue);color:var(--on-accent)}.btn-primary:hover{background:var(--ms-blue-dark);box-shadow:var(--shadow-md)}.btn-secondary{color:var(--text-secondary);border:1px solid var(--border-color);background:0 0}.btn-secondary:hover{background:var(--bg-tertiary);color:var(--text-primary)}.btn-success{background:var(--ms-green);color:#fff}.graph-container{background:var(--bg-primary);background-image:linear-gradient(45deg, var(--chess-square-dark) 25%, transparent 25%), linear-gradient(-45deg, var(--chess-square-dark) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--chess-square-dark) 75%), linear-gradient(-45deg, transparent 75%, var(--chess-square-dark) 75%);background-position:0 0,0 20px,20px -20px,-20px 0;background-size:40px 40px;background-color:var(--chess-square-light);position:relative;overflow:hidden}.graph-canvas{width:100%;height:100%}.graph-controls{gap:8px;display:flex;position:absolute;bottom:24px;left:24px}.graph-control-btn{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);width:40px;height:40px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.graph-control-btn:hover{background:var(--ms-blue);color:var(--on-accent);border-color:var(--ms-blue)}.graph-focus-badge{color:#fff;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0078d4eb;border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0000004d}.graph-focus-exit{color:#fff;cursor:pointer;pointer-events:all;background:#fff3;border:none;border-radius:10px;padding:2px 8px;font-family:inherit;font-size:11px}.graph-focus-exit:hover{background:#ffffff59}.graph-legend{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-lg);min-width:180px;padding:16px;position:absolute;bottom:24px;right:24px}.legend-title{color:var(--text-secondary);text-transform:uppercase;margin-bottom:12px;font-size:12px;font-weight:600}.legend-item{color:var(--text-primary);align-items:center;gap:10px;padding:6px 0;font-size:13px;display:flex}.legend-dot{border-radius:50%;width:12px;height:12px}.right-sidebar{background:var(--bg-secondary);border-left:1px solid var(--border-color);flex-direction:column;display:flex;overflow-y:auto}.search-filter-section{border-bottom:1px solid var(--border-subtle);flex-shrink:0;padding:16px}.inspector-panel{background:var(--bg-secondary);color:var(--text-primary);flex-direction:column;flex-shrink:0;display:flex}.inspector-empty{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:40px;display:flex}.inspector-empty-icon{margin-bottom:16px;font-size:48px}.inspector-empty-title{color:var(--text-primary);margin-bottom:8px;font-size:16px;font-weight:600}.inspector-empty-text{color:var(--text-secondary);font-size:14px;line-height:1.5}.inspector-content{padding:20px}.entity-header{align-items:center;gap:16px;margin-bottom:24px;display:flex}.entity-icon{border-radius:var(--radius-lg);background:var(--bg-tertiary);justify-content:center;align-items:center;width:56px;height:56px;font-size:28px;display:flex}.entity-info h2{color:var(--text-primary);margin-bottom:4px;font-size:20px;font-weight:600}.entity-info p{color:var(--text-secondary);font-size:13px}.inspector-section{margin-bottom:24px}.section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:8px;margin-bottom:12px;font-size:12px;font-weight:600;display:flex}.property-list{flex-direction:column;gap:8px;display:flex}.property-item{background:var(--bg-elevated);border-radius:var(--radius-md);border:1px solid var(--border-subtle);color:var(--text-primary);justify-content:space-between;align-items:flex-start;padding:12px;display:flex}.rel-item{flex-direction:column;gap:4px}.rel-item-row{flex-wrap:nowrap;align-items:center;gap:6px;display:flex;overflow:hidden}.rel-item-arrow{color:var(--ms-blue);flex-shrink:0}.rel-item-entity{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.rel-item-cardinality{color:var(--ms-blue);font-size:11px;font-family:var(--font-mono)}.property-name{color:var(--text-primary);font-size:14px;font-weight:500}.property-type{color:var(--ms-blue);font-size:12px;font-family:var(--font-mono)}.property-identifier{background:var(--ms-yellow);color:#000;border-radius:var(--radius-sm);margin-left:8px;padding:2px 6px;font-size:10px;font-weight:600}.query-section{border-top:1px solid var(--border-color);background:var(--bg-secondary);padding:20px}.query-input-container{gap:8px;margin-bottom:16px;display:flex}.query-input{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:14px;font-family:var(--font-primary);flex:1;padding:12px 16px}.query-input:focus{border-color:var(--ms-blue);outline:none;box-shadow:0 0 0 3px #0078d433}.query-input::placeholder{color:var(--text-tertiary)}.query-result{background:var(--bg-elevated);border-radius:var(--radius-md);border-left:3px solid var(--ms-green);color:var(--text-primary);white-space:pre-wrap;padding:16px;font-size:14px;line-height:1.6}.badges-panel{border-top:1px solid var(--border-color);padding:12px}.badges-grid{flex-wrap:wrap;gap:8px;display:flex}.badge-item{background:var(--bg-elevated);border-radius:var(--radius-md);color:var(--text-primary);border:1px solid var(--border-subtle);align-items:center;gap:6px;padding:6px 12px;font-size:12px;display:flex}.badge-locked{opacity:.4;filter:grayscale()}.binding-card{background:var(--bg-elevated);border-radius:var(--radius-md);border:1px solid var(--border-subtle);color:var(--text-primary);margin-bottom:12px;padding:16px}.binding-source{align-items:center;gap:8px;margin-bottom:12px;display:flex}.binding-source-icon{background:var(--ms-blue);border-radius:var(--radius-sm);width:32px;height:32px;color:var(--on-accent);justify-content:center;align-items:center;font-size:16px;display:flex}.binding-source-info{flex:1}.binding-source-name{color:var(--text-primary);font-size:14px;font-weight:600}.binding-source-table{color:var(--ms-cyan);font-size:12px;font-family:var(--font-mono)}.column-mapping{border-bottom:1px solid var(--border-subtle);align-items:center;gap:12px;padding:8px 0;font-size:13px;display:flex}.column-mapping:last-child{border-bottom:none}.column-property{color:var(--text-primary);flex:1}.column-arrow{color:var(--text-tertiary)}.column-source{color:var(--ms-cyan);font-family:var(--font-mono);text-align:right;flex:1}.relationship-header{align-items:center;gap:16px;margin-bottom:24px;display:flex}.relationship-icon{border-radius:var(--radius-lg);background:linear-gradient(135deg, var(--ms-blue), var(--ms-purple));color:#fff;justify-content:center;align-items:center;width:56px;height:56px;font-size:24px;display:flex}.relationship-flow{background:var(--bg-elevated);border-radius:var(--radius-lg);justify-content:center;align-items:center;gap:16px;margin-bottom:16px;padding:24px;display:flex}.relationship-entity{background:var(--bg-secondary);border-radius:var(--radius-md);text-align:center;padding:12px 20px}.relationship-entity-icon{margin-bottom:4px;font-size:24px}.relationship-entity-name{color:var(--text-primary);font-size:14px;font-weight:600}.relationship-arrow{color:var(--ms-blue);flex-direction:column;align-items:center;gap:4px;display:flex}.relationship-arrow-name{font-size:12px;font-weight:600}.relationship-arrow-icon{font-size:20px}.cardinality-badge{background:var(--bg-tertiary);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:12px;font-family:var(--font-mono);padding:4px 12px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes glow{0%,to{box-shadow:0 0 5px var(--ms-blue)}50%{box-shadow:0 0 20px var(--ms-blue), 0 0 30px var(--ms-blue)}}.highlight-pulse{animation:1.5s ease-in-out infinite pulse}.highlight-glow{animation:2s ease-in-out infinite glow}.modal-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-close{color:var(--text-secondary);cursor:pointer;z-index:1;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex;position:absolute;top:16px;right:16px}.modal-close:hover{color:var(--text-primary);background:var(--bg-tertiary)}.modal-content{background:var(--bg-secondary);border-radius:var(--radius-xl);border:1px solid var(--border-color);width:90%;max-width:600px;box-shadow:var(--shadow-lg);color:var(--text-primary);padding:40px;position:relative}.modal-content h2{color:var(--text-primary)}.modal-content p{color:var(--text-secondary)}.modal-header{text-align:center;margin-bottom:32px}.modal-logo{margin-bottom:16px;font-size:64px}.modal-title{color:var(--text-primary);margin-bottom:8px;font-size:28px;font-weight:600}.modal-subtitle{color:var(--text-secondary);font-size:16px}.modal-features{grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:32px;display:grid}.feature-card{background:var(--bg-elevated);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);color:var(--text-primary);padding:20px}.feature-icon{margin-bottom:8px;font-size:24px}.feature-title{color:var(--text-primary);margin-bottom:4px;font-size:15px;font-weight:600}.feature-text{color:var(--text-secondary);font-size:13px;line-height:1.5}.modal-actions{justify-content:center;gap:16px;display:flex}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-color)}.toast{background:var(--ms-green);color:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:1000;align-items:center;gap:12px;padding:16px 24px;font-size:14px;font-weight:600;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast-icon{font-size:20px}@media (width<=1200px){.app-container{grid-template-columns:260px 1fr 320px}.app-container .app-footer{left:260px;right:320px}}@media (width<=900px){.app-container .app-footer{display:none}.app-container{flex-direction:column;height:100dvh;display:flex}.header{flex-shrink:0;height:56px;padding:0 12px}.quest-panel,.right-sidebar,.header-stats,.header-actions{display:none}.header-mobile-menu{display:flex}.graph-container{flex:1;min-height:0;overflow:hidden}.mobile-panel-tabs{padding-bottom:calc(4px + env(safe-area-inset-bottom,0px));flex-shrink:0;display:flex}.graph-legend{display:none}.graph-controls{bottom:12px;left:12px}}@media (width<=480px){.header-logo svg{width:28px;height:28px}.header-title{text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-size:15px;overflow:hidden}.header-context{display:none}.modal-content{border-radius:0;width:100%;max-width:100%;height:100%;max-height:100%;padding:20px}.modal-overlay{padding:0}.modal-features{grid-template-columns:1fr}.modal-logo{font-size:48px}.modal-title{font-size:22px}}.nl-builder-modal{width:90vw;max-width:700px}.nl-builder-modal .modal-header{text-align:left;justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.nl-builder-modal .modal-header h2{margin:0;font-size:18px}.nl-input-textarea{border:1px solid var(--border-color);background:var(--bg-tertiary);width:100%;min-height:120px;color:var(--text-primary);resize:vertical;border-radius:8px;padding:16px;font-family:inherit;font-size:14px}.nl-input-textarea:focus{border-color:var(--accent);outline:none}.nl-input-wrapper{position:relative}.nl-input-wrapper .nl-input-textarea{padding-right:56px}.voice-btn{background:var(--bg-secondary);width:40px;height:40px;color:var(--text-secondary);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;top:12px;right:12px}.voice-btn:hover{background:var(--accent);color:#fff}.voice-btn.recording{color:#fff;background:#e81123;animation:1.5s ease-in-out infinite pulse-recording}@keyframes pulse-recording{0%,to{box-shadow:0 0 #e8112366}50%{box-shadow:0 0 0 12px #e8112300}}.recording-indicator{color:#e81123;background:#e811231a;border-radius:8px;align-items:center;gap:8px;margin-top:12px;padding:8px 12px;font-size:13px;display:flex}.recording-dot{background:#e81123;border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.example-prompts{margin-top:16px}.example-prompts h4{color:var(--text-secondary);margin-bottom:8px;font-size:12px}.example-chips{flex-wrap:wrap;gap:8px;display:flex}.example-chip{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;border-radius:16px;padding:6px 12px;font-size:12px;transition:all .2s}.example-chip:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.nl-generate-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:20px;padding:12px 24px;font-size:14px;font-weight:600;transition:all .2s;display:flex}.nl-generate-btn:hover:not(:disabled){background:#106ebe}.nl-generate-btn:disabled{opacity:.5;cursor:not-allowed}.nl-loading{color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:40px;display:flex}.nl-preview{max-height:60vh;overflow-y:auto}.preview-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.preview-header h3{color:var(--text-primary);margin:0}.preview-section{margin-bottom:20px}.preview-section h4{color:var(--text-secondary);text-transform:uppercase;margin-bottom:8px;font-size:12px}.preview-items{flex-wrap:wrap;gap:8px;display:flex}.preview-item{background:var(--bg-tertiary);color:var(--text-primary);border-radius:8px;align-items:center;gap:6px;padding:8px 12px;font-size:13px;display:flex}.json-editor{border:1px solid var(--border-color);background:var(--bg-tertiary);width:100%;min-height:200px;max-height:300px;color:var(--text-primary);resize:vertical;border-radius:8px;padding:12px;font-family:Cascadia Code,Fira Code,monospace;font-size:12px}.json-editor:focus{border-color:var(--accent);outline:none}.preview-actions{gap:12px;margin-top:20px;display:flex}.preview-actions .btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;flex:1;padding:12px 24px;font-size:14px;font-weight:600}.preview-actions .btn-primary:hover{background:#106ebe}.preview-actions .btn-secondary{color:var(--text-primary);border:1px solid var(--border-color);cursor:pointer;background:0 0;border-radius:8px;flex:1;padding:12px 24px;font-size:14px}.preview-actions .btn-secondary:hover{background:var(--bg-tertiary)}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:1s linear infinite spin}.ontology-summary-modal{flex-direction:column;width:90vw;max-width:800px;max-height:85vh;display:flex}.ontology-summary-modal .modal-header{text-align:left;flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.ontology-summary-modal .modal-header h2{margin:0;font-size:18px}.summary-content{flex:1;padding-right:8px;overflow-y:auto}.summary-section{margin-bottom:24px}.summary-section h3{color:var(--text-primary);margin-bottom:8px;font-size:20px}.summary-section h4{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-subtle);margin-bottom:12px;padding-bottom:8px;font-size:14px}.summary-description{color:var(--text-secondary);font-size:14px;line-height:1.6}.summary-entities{flex-direction:column;gap:12px;display:flex}.summary-entity-card{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:12px;padding:16px}.entity-card-header{align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.entity-icon-large{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;display:flex}.entity-card-header strong{color:var(--text-primary);margin-bottom:4px;font-size:16px;display:block}.entity-card-header p{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.4}.entity-properties{border-top:1px solid var(--border-subtle);flex-wrap:wrap;gap:8px;padding-top:12px;display:flex}.property-row{background:var(--bg-tertiary);border-radius:6px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:flex}.prop-name{color:var(--text-primary);font-weight:500}.prop-type{color:var(--ms-cyan);font-family:var(--font-mono);font-size:11px}.prop-id-badge{background:var(--ms-yellow);color:#000;border-radius:3px;padding:2px 5px;font-size:9px;font-weight:600}.summary-relationships{flex-direction:column;gap:10px;display:flex}.summary-relationship-card{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:10px;padding:14px}.relationship-flow-row{align-items:center;gap:12px;margin-bottom:8px;display:flex}.rel-entity{color:var(--text-primary);font-size:14px;font-weight:500}.rel-arrow{color:var(--ms-blue);align-items:center;gap:8px;font-size:16px;display:flex}.rel-label{color:var(--ms-blue);font-size:12px;font-weight:600}.relationship-meta{align-items:center;gap:10px;display:flex}.rel-description{color:var(--text-tertiary);font-size:12px}.designer-page{background:var(--bg-primary);height:100dvh;color:var(--text-primary);flex-direction:column;display:flex}.designer-topbar{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0;align-items:center;gap:12px;padding:8px 16px;display:flex}.designer-back-btn{border:1px solid var(--border-color);color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);background:0 0;align-items:center;gap:6px;padding:6px 12px;font-size:13px;display:flex}.designer-back-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.designer-meta-fields{flex:1;gap:12px;display:flex}.designer-meta-name{color:var(--text-primary);border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;width:260px;padding:4px 8px;font-size:16px;font-weight:600}.designer-meta-name:focus{border-color:var(--ms-blue);outline:none}.designer-meta-desc{color:var(--text-secondary);border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;flex:1;padding:4px 8px;font-size:13px}.designer-meta-desc:focus{border-color:var(--ms-blue);outline:none}.designer-split{flex:1;display:flex;overflow:hidden}.designer-sidebar{border-right:1px solid var(--border-color);background:var(--bg-secondary);flex-direction:column;gap:20px;width:380px;min-width:320px;padding:16px;display:flex;overflow-y:auto}.template-picker{flex-direction:column;gap:16px;display:flex}.template-picker-header h3{color:var(--text-primary);margin:0 0 4px;font-size:16px;font-weight:600}.template-picker-header p{color:var(--text-secondary);margin:0;font-size:13px}.template-picker-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.template-card{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);cursor:pointer;text-align:center;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;transition:border-color .15s,box-shadow .15s;display:flex}.template-card:hover{border-color:var(--ms-blue);box-shadow:0 0 0 2px #0078d426}.template-card-icon{font-size:24px;line-height:1}.template-card-label{color:var(--text-primary);font-size:14px;font-weight:600}.template-card-desc{color:var(--text-tertiary);font-size:11px;line-height:1.3}.designer-preview{background:var(--bg-primary);flex-direction:column;flex:1;display:flex}.designer-preview-tabs{border-bottom:1px solid var(--border-color);background:var(--bg-secondary);flex-shrink:0;gap:0;display:flex}.designer-tab{color:var(--text-secondary);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 24px;font-size:13px;font-weight:500}.designer-tab:hover{color:var(--text-primary)}.designer-tab.active{color:var(--ms-blue);border-bottom-color:var(--ms-blue)}.designer-graph-container{flex:1;min-height:200px}.designer-rdf-container{flex-direction:column;flex:1;display:flex;overflow:hidden}.designer-rdf-toolbar{border-bottom:1px solid var(--border-color);justify-content:flex-end;gap:8px;padding:8px 12px;display:flex}.designer-rdf-source{font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;color:var(--text-secondary);flex:1;margin:0;padding:16px;font-size:12px;line-height:1.6;overflow:auto}.designer-rdf-textarea{resize:none;background:var(--bg-primary);color:var(--text-primary);border:none;outline:none}.designer-rdf-textarea::placeholder{color:var(--text-tertiary,#999)}.designer-import-error{color:#d83b01;border-bottom:1px solid var(--border-color);background:#d83b0114;padding:6px 12px;font-size:12px}.designer-add-btn.small.secondary{background:var(--bg-tertiary,#e0e0e0);color:var(--text-primary)}.designer-section-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.designer-section-header h3{color:var(--text-primary);font-size:14px;font-weight:600}.designer-section-header span{color:var(--text-secondary);font-size:12px;font-weight:600}.designer-add-btn{background:var(--ms-blue);color:var(--on-accent);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);border:none;align-items:center;gap:4px;padding:4px 10px;font-size:12px;display:inline-flex}.designer-add-btn:hover{background:var(--ms-blue-dark)}.designer-add-btn:disabled{opacity:.4;cursor:not-allowed}.designer-add-btn.small{padding:2px 8px;font-size:11px}.designer-empty{color:var(--text-tertiary);text-align:center;padding:12px;font-size:13px}.designer-entity-card{border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color var(--transition-fast);margin-bottom:8px;overflow:hidden}.designer-entity-card.selected{border-color:var(--ms-blue)}.designer-entity-header{cursor:pointer;background:var(--bg-tertiary);transition:background var(--transition-fast);align-items:center;gap:8px;padding:8px 10px;display:flex}.designer-entity-header:hover{background:var(--bg-elevated)}.designer-expand-btn{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;padding:0;display:flex}.designer-entity-icon{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;display:flex}.designer-entity-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:600;overflow:hidden}.designer-entity-badge{color:var(--text-tertiary);background:var(--bg-primary);border-radius:100px;padding:2px 8px;font-size:11px}.designer-delete-btn{color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;padding:4px;display:flex}.designer-delete-btn:hover{color:var(--ms-red);background:#e811231a}.designer-delete-btn.small{padding:2px}.designer-entity-body{border-top:1px solid var(--border-color);flex-direction:column;gap:10px;padding:12px;display:flex}.designer-field{flex-direction:column;gap:4px;display:flex}.designer-field>span{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.designer-field input[type=text],.designer-field textarea,.designer-field select{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;font-family:var(--font-primary);resize:vertical;padding:6px 8px}.designer-field input:focus,.designer-field textarea:focus,.designer-field select:focus{border-color:var(--ms-blue);outline:none}.designer-field-row{gap:8px;display:flex}.designer-field-row .designer-field{flex:1}.designer-field-hint{margin-top:2px;padding:0 2px;font-size:11px;line-height:1.3;display:block}.designer-field-hint.error{color:var(--color-error,#e81123)}.designer-id-btn.warning{color:var(--color-error,#e81123);border-color:var(--color-error,#e81123)}.designer-icon-grid{flex-wrap:wrap;gap:4px;display:flex}.designer-icon-btn{border-radius:var(--radius-sm);background:var(--bg-primary);cursor:pointer;width:32px;height:32px;transition:border-color var(--transition-fast);border:1px solid #0000;justify-content:center;align-items:center;font-size:16px;display:flex}.designer-icon-btn.active,.designer-icon-btn:hover{border-color:var(--ms-blue)}.designer-color-grid{flex-wrap:wrap;gap:6px;display:flex}.designer-color-btn{cursor:pointer;width:24px;height:24px;transition:border-color var(--transition-fast), transform var(--transition-fast);border:2px solid #0000;border-radius:50%}.designer-color-btn.active{border-color:var(--text-primary);transform:scale(1.2)}.designer-color-btn:hover{transform:scale(1.15)}.designer-property-list{flex-direction:column;gap:4px;display:flex}.designer-property-row{align-items:center;gap:4px;display:flex}.designer-grip{color:var(--text-tertiary);cursor:grab;padding:2px;display:flex}.designer-prop-name{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);min-width:0;color:var(--text-primary);flex:1;padding:4px 6px;font-size:12px}.designer-prop-name:focus{border-color:var(--ms-blue);outline:none}.designer-prop-type{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);width:90px;color:var(--text-secondary);padding:4px 6px;font-size:12px}.designer-prop-type:focus{border-color:var(--ms-blue);outline:none}.designer-id-btn{border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast);background:0 0;padding:3px;display:flex}.designer-id-btn.active{color:var(--ms-yellow-fg);border-color:var(--ms-yellow-fg);background:#ffb9001a}.designer-rel-card{border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition-fast);margin-bottom:8px;overflow:hidden}.designer-rel-card.selected{border-color:var(--ms-blue)}.designer-rel-header{background:var(--bg-tertiary);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.designer-rel-header:hover{background:var(--bg-elevated)}.designer-rel-flow{color:var(--text-primary);align-items:center;gap:4px;font-size:13px;display:flex}.designer-rel-arrow{color:var(--ms-blue);margin:0 4px;font-weight:600}.designer-rel-body{border-top:1px solid var(--border-color);flex-direction:column;gap:10px;padding:12px;display:flex}.designer-toolbar{flex-shrink:0;align-items:center;gap:4px;margin-left:auto;display:flex}.designer-toolbar-sep{background:var(--border-color);width:1px;height:20px;margin:0 4px}.designer-toolbar-btn{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text-primary);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast), color var(--transition-fast);align-items:center;gap:5px;padding:6px 12px;font-size:12px;font-weight:500;display:inline-flex}.designer-toolbar-btn:hover{background:var(--ms-blue);color:var(--on-accent);border-color:var(--ms-blue)}.designer-toolbar-btn:disabled{opacity:.35;cursor:default;pointer-events:none}.designer-toolbar-btn.submit{color:#fff;background:#24292e;border-color:#24292e}.designer-toolbar-btn.submit:hover{background:#2f363d;border-color:#2f363d}.designer-validation-errors{border-radius:var(--radius-md);background:#e8112314;border:1px solid #e811234d;margin-top:10px;padding:10px 12px}.designer-validation-success{border-radius:var(--radius-md);background:#16c60c14;border:1px solid #16c60c4d;margin-top:10px;padding:10px 12px;animation:.2s ease-out designer-fade-in}@keyframes designer-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.designer-validation-header{color:var(--ms-red);align-items:center;gap:6px;margin-bottom:6px;font-size:13px;font-weight:600;display:flex}.designer-validation-errors ul{padding:0;list-style:none}.designer-validation-errors li{color:var(--text-secondary);padding:2px 0;font-size:12px}.designer-validation-errors li:before{content:"• ";color:var(--ms-red)}.designer-error-link{cursor:pointer;text-underline-offset:2px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.designer-error-link:hover{color:var(--text-primary)}.designer-success-msg{color:var(--ms-green);align-items:center;gap:6px;margin-top:10px;font-size:13px;display:flex}.designer-action-btn{border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);border:none;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.designer-action-btn.primary{background:var(--ms-blue);color:var(--on-accent)}.designer-action-btn.primary:hover{background:var(--ms-blue-dark)}.designer-action-btn.secondary{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color)}.designer-action-btn.secondary:hover{background:var(--bg-elevated);color:var(--text-primary)}.submit-catalogue-modal{max-width:480px}.submit-step{flex-direction:column;gap:12px;margin-top:8px;display:flex}.submit-description{color:var(--text-secondary);font-size:14px;line-height:1.5}.submit-description a{color:var(--ms-blue)}.device-code-display{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:12px;display:flex}.device-code{letter-spacing:2px;color:var(--text-primary);font-family:Cascadia Code,Fira Code,monospace;font-size:22px;font-weight:600}.submit-user-info{color:var(--text-secondary);border-bottom:1px solid var(--border-color);align-items:center;gap:8px;padding:8px 0;font-size:13px;display:flex}.submit-avatar{border-radius:50%}.submit-form{flex-direction:column;gap:10px;display:flex}.submit-label{color:var(--text-secondary);flex-direction:column;gap:4px;font-size:13px;font-weight:500;display:flex}.submit-label input,.submit-label textarea,.submit-label select{border:1px solid var(--border-color);background:var(--bg-elevated);color:var(--text-primary);resize:vertical;border-radius:6px;padding:6px 10px;font-family:inherit;font-size:13px}.submit-label input:focus,.submit-label textarea:focus,.submit-label select:focus{border-color:var(--ms-blue);outline:none;box-shadow:0 0 0 2px #0078d426}.submit-form-row{gap:12px;display:flex}.submit-form-row .submit-label{flex:1}.submit-icon-input{text-align:center;width:48px!important;font-size:18px!important}.submit-hint-inline{color:var(--text-tertiary);font-weight:400}.submit-form-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.submit-center{text-align:center;align-items:center}.submit-success-icon{color:var(--ms-green)}.submit-success-text{color:var(--ms-green);font-size:16px;font-weight:600}.submit-error-icon{color:var(--ms-red)}.submit-error-text{color:var(--ms-red);font-size:14px}.submit-instructions{margin-top:4px}.submit-instructions h3{color:var(--text-primary);margin-bottom:8px;font-size:14px;font-weight:600}.submit-instructions ol{color:var(--text-secondary);padding-left:20px;font-size:13px;line-height:1.8}.submit-instructions ol a{color:var(--ms-blue)}.submit-instructions code{background:var(--bg-elevated);border-radius:4px;padding:1px 5px;font-family:Cascadia Code,Fira Code,monospace;font-size:12px}.submit-download-actions{gap:8px;margin-top:4px;display:flex}.submit-fallback{border-top:1px solid var(--border-color);color:var(--text-tertiary);margin-top:12px;padding-top:12px;font-size:13px}.submit-hint{color:var(--text-tertiary);text-align:center;font-size:13px}.designer-action-btn.submit{color:#fff;background:#24292e;border:none}.designer-action-btn.submit:hover{background:#2f363d}.designer-action-btn.small{min-width:unset;padding:4px 8px;font-size:12px}.spinner{animation:1s linear infinite spin}.learn-page{background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-primary);flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto}.learn-header{border-bottom:1px solid var(--border-color);background:var(--bg-secondary);z-index:10;justify-content:space-between;align-items:center;padding:12px 24px;display:flex;position:sticky;top:0}.learn-back-btn{color:var(--ms-blue);font:500 14px/1 var(--font-primary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;gap:6px;padding:6px 10px;display:flex}.learn-back-btn:hover{background:var(--bg-tertiary)}.learn-header-title{font:600 16px/1 var(--font-primary);color:var(--text-primary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;gap:8px;padding:4px 8px;display:flex}.learn-header-title:hover{background:var(--bg-tertiary)}.learn-loading,.learn-error{min-height:60vh;color:var(--text-secondary);justify-content:center;align-items:center;font-size:15px;display:flex}.learn-error{color:var(--error)}.learn-index{width:100%;max-width:960px;margin:0 auto;padding:48px 24px 80px}.learn-index-hero{text-align:center;margin-bottom:48px}.learn-index-hero h1{color:var(--text-primary);margin:0 0 12px;font-size:32px;font-weight:700}.learn-index-hero p{color:var(--text-secondary);max-width:520px;margin:0 auto;font-size:16px;line-height:1.6}.learn-card-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.learn-card{text-align:left;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);cursor:pointer;color:var(--text-primary);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;align-items:flex-start;padding:24px;display:flex}.learn-card:hover{border-color:var(--ms-blue);box-shadow:var(--shadow-md)}.learn-card-order{background:var(--ms-blue);min-width:28px;height:28px;color:var(--on-accent);font:700 12px/1 var(--font-primary);white-space:nowrap;border-radius:14px;justify-content:center;align-items:center;margin-bottom:12px;padding:0 10px;display:inline-flex}.learn-card h2{color:var(--text-primary);margin:0 0 8px;font-size:17px;font-weight:600}.learn-card p{color:var(--text-secondary);margin:0 0 auto;padding-bottom:16px;font-size:13px;line-height:1.55}.learn-card-header{justify-content:space-between;align-items:center;width:100%;margin-bottom:12px;display:flex}.learn-card-icon{font-size:28px;line-height:1}.learn-card-badge{font:600 11px/1 var(--font-primary);text-transform:uppercase;letter-spacing:.04em;border-radius:var(--radius-sm);align-items:center;gap:4px;padding:4px 8px;display:inline-flex}.learn-card-badge--lab{color:#b4009e;background:#b4009e1f}.learn-card-badge--path{color:var(--ms-blue);background:#0078d41f}.learn-card-meta{color:var(--text-tertiary);margin-bottom:4px;font-size:12px}.learn-card-cta{color:var(--ms-blue);font:500 13px/1 var(--font-primary);align-items:center;gap:4px;margin-top:8px;display:flex}.learn-card-review-badge{font:500 11px/1 var(--font-primary);color:#92400e;background:#fef3c7;border:1px solid #fde68a;border-radius:4px;align-items:center;gap:4px;margin-bottom:4px;padding:3px 8px;display:inline-flex}[data-theme=dark] .learn-card-review-badge{color:#fde68a;background:#fef3c71f;border-color:#fde68a40}.app-footer{font:400 13px/1 var(--font-primary);color:var(--text-tertiary);justify-content:center;align-items:center;gap:8px;padding:32px 24px 48px;display:flex}.app-container .app-footer{z-index:50;pointer-events:none;justify-content:center;padding:6px 12px;position:fixed;bottom:4px;left:280px;right:360px}.app-container .app-footer a,.app-container .app-footer span{pointer-events:auto}.app-footer a{color:var(--text-tertiary);transition:color var(--transition-fast);align-items:center;gap:5px;text-decoration:none;display:inline-flex}.app-footer a:hover{color:var(--ms-blue)}.app-footer-sep{color:var(--text-tertiary)}.learn-course-header{justify-content:center;align-items:center;gap:12px;margin-bottom:12px;display:flex}.learn-course-icon{font-size:36px;line-height:1}.learn-article{width:100%;max-width:760px;margin:0 auto;padding:40px 24px 80px}.learn-article-content h1{color:var(--text-primary);margin:0 0 24px;font-size:30px;font-weight:700;line-height:1.3}.learn-article-content h2{color:var(--text-primary);margin:32px 0 12px;font-size:22px;font-weight:600;line-height:1.3}.learn-article-content h3{color:var(--text-primary);margin:24px 0 8px;font-size:17px;font-weight:600}.learn-article-content p{color:var(--text-primary);margin:0 0 16px;font-size:15px;line-height:1.7}.learn-article-content a{color:var(--ms-blue);text-decoration:none}.learn-article-content a:hover{text-decoration:underline}.learn-article-content strong{font-weight:600}.learn-article-content em{color:var(--text-secondary)}.learn-article-content ul,.learn-article-content ol{margin:0 0 16px;padding-left:24px}.learn-article-content li{color:var(--text-primary);margin-bottom:4px;font-size:15px;line-height:1.7}.learn-article-content table{border-collapse:collapse;width:100%;margin:0 0 20px;font-size:14px}.learn-article-content th,.learn-article-content td{text-align:left;border:1px solid var(--border-color);color:var(--text-primary);padding:8px 12px}.learn-article-content th{background:var(--bg-tertiary);font-weight:600}.learn-article-content pre{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);margin:0 0 20px;padding:16px;overflow-x:auto}.learn-article-content code{font-family:var(--font-mono);color:var(--text-primary);font-size:13px}.learn-article-content p code{background:var(--bg-tertiary);border-radius:3px;padding:2px 6px;font-size:13px}.learn-embed-slot{border-radius:var(--radius-md);margin:20px 0;overflow:hidden}.learn-embed-fullscreen{z-index:1500;border:none!important;border-radius:0!important;width:100vw!important;height:100vh!important;margin:0!important;position:fixed!important;inset:0!important}.presentation-overlay .learn-embed-fullscreen{z-index:2100}.learn-embed-error{height:100%;color:var(--text-tertiary);justify-content:center;align-items:center;font-size:13px;display:flex}.learn-article-toolbar{justify-content:flex-end;padding:0 0 12px;display:flex}.learn-present-btn{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast);align-items:center;gap:6px;padding:7px 16px;font:500 13px/1 Segoe UI,sans-serif;display:inline-flex}.learn-present-btn:hover{border-color:var(--ms-blue);background:var(--ms-blue);color:var(--on-accent)}.presentation-overlay{z-index:2000;color:#e6e6e6;background:#0d1117;flex-direction:column;font-family:Segoe UI,system-ui,sans-serif;display:flex;position:fixed;inset:0}.presentation-overlay.light-theme{color:#1f2328;background:#fafbfc}.presentation-chrome{z-index:2200;gap:8px;display:flex;position:absolute;top:56px;right:20px}.presentation-close,.presentation-theme-toggle{cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:background .15s;display:flex}.presentation-close{color:#ccc;background:#ffffff1a}.light-theme .presentation-close{color:#555;background:#0000000f}.presentation-close:hover{background:#fff3}.light-theme .presentation-close:hover{background:#0000001f}.presentation-theme-toggle{color:#ccc;background:#ffffff1a}.light-theme .presentation-theme-toggle{color:#555;background:#0000000f}.presentation-theme-toggle:hover{background:#fff3}.light-theme .presentation-theme-toggle:hover{background:#0000001f}.presentation-stage{flex:1;justify-content:center;align-items:center;gap:16px;min-height:0;padding:60px 24px 24px;display:flex}.presentation-nav{color:#999;cursor:pointer;background:#ffffff14;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;transition:background .15s,color .15s;display:flex}.light-theme .presentation-nav{color:#888;background:#0000000d}.presentation-nav:hover:not(:disabled){color:#fff;background:#ffffff29}.light-theme .presentation-nav:hover:not(:disabled){color:#333;background:#0000001a}.presentation-nav:disabled{opacity:.25;cursor:default}.presentation-slide-wrapper{flex:1;justify-content:center;align-items:flex-start;max-width:900px;max-height:100%;display:flex;overflow-y:auto}.presentation-slide{width:100%;padding:40px 48px;animation:.25s ease-out slideIn}.presentation-slide h1{margin-bottom:24px;font-size:2.4em}.presentation-slide h2{margin-bottom:20px;font-size:1.8em}.presentation-slide p,.presentation-slide li{font-size:1.15em;line-height:1.7}.presentation-slide table{font-size:1em}@keyframes slideIn{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}.presentation-footer{flex-shrink:0;align-items:center;gap:16px;padding:12px 24px 16px;display:flex}.presentation-progress{background:#ffffff1a;border-radius:2px;flex:1;height:3px;overflow:hidden}.light-theme .presentation-progress{background:#00000014}.presentation-progress-bar{background:#0078d4;border-radius:2px;height:100%;transition:width .3s}.presentation-counter{color:#888;white-space:nowrap;font:500 13px/1 Segoe UI,sans-serif}.presentation-next-hint{color:#0078d4;font-weight:400}.quiz-block{border:2px solid #0078d4;border-radius:12px;max-width:700px;min-height:50px;margin:24px auto;padding:16px}.quiz-interactive{background:#161b22;border:1px solid #30363d;border-radius:12px;max-width:700px;margin:24px auto;padding:32px}.light-theme .quiz-interactive{background:#f6f8fa;border-color:#d0d7de}.quiz-fallback{color:#8b949e;text-align:center;padding:24px;font:600 1.2em/1.6 Segoe UI,sans-serif}.quiz-header{align-items:flex-start;gap:12px;margin-bottom:24px;display:flex}.quiz-icon{color:#0078d4;flex-shrink:0;margin-top:2px}.quiz-question{color:#e6edf3;font:600 1.3em/1.4 Segoe UI,sans-serif}.light-theme .quiz-question{color:#1f2328}.quiz-options{flex-direction:column;gap:10px;display:flex}.quiz-option{cursor:pointer;text-align:left;background:#0d1117;border:1.5px solid #30363d;border-radius:10px;align-items:center;gap:14px;width:100%;padding:14px 18px;transition:border-color .15s,background .15s,transform .1s;display:flex}.light-theme .quiz-option{background:#fff;border-color:#d0d7de}.quiz-option:hover:not(:disabled){background:#0d1117;border-color:#0078d4;transform:translate(4px)}.light-theme .quiz-option:hover:not(:disabled){background:#eff6ff}.quiz-option-letter{color:#8b949e;text-align:center;background:#21262d;border-radius:50%;flex-shrink:0;width:30px;height:30px;font:700 13px/30px Segoe UI,sans-serif}.light-theme .quiz-option-letter{color:#57606a;background:#e1e7ed}.quiz-option-text{color:#c9d1d9;font:400 1.05em/1.4 Segoe UI,sans-serif}.light-theme .quiz-option-text{color:#1f2328}.quiz-option:disabled{cursor:default;transform:none}.quiz-option--correct{background:#2ea0431f!important;border-color:#2ea043!important}.quiz-option--correct .quiz-option-letter{color:#fff;background:#2ea043}.quiz-option--wrong{background:#da36331f!important;border-color:#da3633!important}.quiz-option--wrong .quiz-option-letter{color:#fff;background:#da3633}.quiz-option--dimmed{opacity:.4}.quiz-result{align-items:center;gap:8px;margin-top:16px;font:600 1em/1 Segoe UI,sans-serif;animation:.3s slideIn;display:flex}.quiz-result--correct{color:#2ea043}.quiz-result--wrong{color:#da3633}.quiz-explanation{color:#8b949e;background:#21262d;border-radius:8px;margin-top:12px;padding:14px 16px;font:400 .95em/1.6 Segoe UI,sans-serif;animation:.3s slideIn}.light-theme .quiz-explanation{color:#57606a;background:#e1e7ed}.presentation-slide .quiz-interactive{max-width:720px;margin:auto}.learn-article-nav{border-top:1px solid var(--border-color);justify-content:space-between;gap:16px;margin-top:48px;padding-top:24px;display:flex}.learn-nav-btn{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;color:var(--text-primary);max-width:48%;transition:border-color var(--transition-fast);align-items:center;gap:10px;padding:12px 16px;display:flex}.learn-nav-btn:hover{border-color:var(--ms-blue)}.learn-nav-next{text-align:right;margin-left:auto}.learn-nav-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px;font-size:11px;display:block}.learn-nav-title{font:500 14px/1.3 var(--font-primary);color:var(--ms-blue);display:block}.header-mobile-menu{display:none;position:relative}.header-hamburger{width:40px;height:40px}.command-palette-overlay{z-index:2000;background:#00000080;justify-content:center;align-items:flex-start;padding-top:min(20vh,160px);display:flex;position:fixed;inset:0}.command-palette{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);flex-direction:column;width:90%;max-width:520px;display:flex;overflow:hidden;box-shadow:0 16px 48px #00000059}.command-palette-input-row{border-bottom:1px solid var(--border-color);align-items:center;gap:10px;padding:12px 16px;display:flex}.command-palette-search-icon{color:var(--text-tertiary);flex-shrink:0}.stats-panel{border-bottom:1px solid var(--border-subtle);flex-shrink:0}.stats-panel-header{width:100%;color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast);background:0 0;border:none;justify-content:space-between;align-items:center;padding:10px 16px;font-family:inherit;display:flex}.stats-panel-header:hover{background:var(--bg-tertiary)}.stats-panel-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.stats-panel-body{flex-direction:column;gap:10px;padding:12px 16px 16px;display:flex}.stats-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stat-card{border-radius:var(--radius-md);border:1px solid #0000;flex-direction:column;align-items:center;gap:4px;padding:10px 8px 8px;display:flex}.stat-card--blue{background:#0078d41f;border-color:#0078d440}.stat-card--purple{background:#5c2d911f;border-color:#5c2d9140}.stat-card--green{background:#107c101f;border-color:#107c1040}.stat-card-icon{opacity:1}.stat-card--blue .stat-card-icon{color:var(--stat-blue)}.stat-card--purple .stat-card-icon{color:var(--stat-purple)}.stat-card--green .stat-card-icon{color:var(--stat-green)}.stat-card-value{font-size:22px;font-weight:700;line-height:1}.stat-card--blue .stat-card-value{color:var(--stat-blue)}.stat-card--purple .stat-card-value{color:var(--stat-purple)}.stat-card--green .stat-card-value{color:var(--stat-green)}.stat-card-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.4px;font-size:10px;font-weight:500}.light-theme .stat-card--blue{background:#0078d414}.light-theme .stat-card--purple{background:#5c2d9114}.light-theme .stat-card--green{background:#107c1014}.command-palette-input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:15px}.command-palette-input::placeholder{color:var(--text-tertiary)}.command-palette-kbd{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-tertiary);border-radius:4px;padding:2px 6px;font-family:inherit;font-size:11px;line-height:1.4}.command-palette-list{max-height:320px;padding:6px;overflow-y:auto}.command-palette-empty{text-align:center;color:var(--text-tertiary);padding:24px 16px;font-size:14px}.command-palette-item{border-radius:var(--radius-md);width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:12px;padding:10px 12px;font-size:14px;transition:background .1s;display:flex}.command-palette-item:hover,.command-palette-item.selected{background:var(--bg-hover)}.command-palette-item-icon{color:var(--text-secondary);flex-shrink:0;align-items:center;display:flex}.command-palette-item-label{flex:1}.command-palette-shortcut{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-tertiary);border-radius:4px;margin-left:auto;padding:2px 6px;font-family:inherit;font-size:11px;line-height:1.4}.command-palette-footer{border-top:1px solid var(--border-color);color:var(--text-tertiary);gap:16px;padding:8px 16px;font-size:11px;display:flex}.command-palette-footer span{align-items:center;gap:4px;display:flex}.help-kbd{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-tertiary);text-align:center;border-radius:4px;width:fit-content;padding:2px 8px;font-family:inherit;font-size:12px;line-height:1.6}.tour-overlay{z-index:3000;pointer-events:auto;background:#0000008c;transition:clip-path .35s;position:fixed;inset:0}.tour-tooltip{z-index:3001;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);min-width:260px;padding:16px 20px;position:fixed;box-shadow:0 8px 32px #0000004d}.tour-tooltip-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.tour-tooltip-step{color:var(--ms-blue);font-size:11px;font-weight:600}.tour-tooltip-close{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px;display:flex}.tour-tooltip-close:hover{color:var(--text-primary);background:var(--bg-hover)}.tour-tooltip-title{color:var(--text-primary);margin:0 0 6px;font-size:15px;font-weight:600}.tour-tooltip-desc{color:var(--text-secondary);margin:0 0 14px;font-size:13px;line-height:1.5}.tour-tooltip-actions{gap:8px;margin-bottom:10px;display:flex}.tour-btn{border-radius:var(--radius-md);cursor:pointer;border:none;align-items:center;gap:4px;padding:6px 14px;font-size:13px;font-weight:500;transition:background .15s;display:inline-flex}.tour-btn-primary{background:var(--ms-blue);color:var(--on-accent)}.tour-btn-primary:hover{background:#106ebe}.tour-btn-secondary{background:var(--bg-tertiary);color:var(--text-secondary)}.tour-btn-secondary:hover{background:var(--bg-hover)}.tour-skip{text-align:center;width:100%;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;padding:4px 0 0;font-size:11px;display:block}.tour-skip:hover{color:var(--text-secondary);text-decoration:underline}.mobile-menu-dropdown{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:1001;flex-direction:column;gap:2px;min-width:220px;padding:8px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.mobile-menu-stats{color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);align-items:center;gap:6px;margin-bottom:4px;padding:8px 12px;font-size:13px;display:flex}.mobile-menu-item{color:var(--text-primary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:10px 12px;font-family:inherit;font-size:14px;display:flex}.mobile-menu-item:hover{background:var(--bg-tertiary)}.mobile-panel-tabs{background:var(--bg-secondary);border-top:1px solid var(--border-color);gap:4px;padding:4px 8px;display:none}.mobile-tab{color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--transition-fast);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 4px;font-family:inherit;font-size:10px;display:flex}.mobile-tab.active{color:var(--ms-blue)}.mobile-tab:hover{color:var(--text-primary)}.mobile-panel-drawer{display:none}@media (width<=900px){.mobile-panel-drawer{bottom:calc(48px + env(safe-area-inset-bottom,0px));background:var(--bg-secondary);z-index:500;border-top:1px solid var(--border-color);flex-direction:column;display:flex;position:fixed;top:56px;left:0;right:0;overflow-y:auto}.mobile-panel-close{background:var(--bg-tertiary);border:none;border-bottom:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;padding:10px;font-family:inherit;font-size:13px;display:flex}.mobile-panel-close:hover{color:var(--text-primary)}.mobile-panel-drawer .quest-panel,.mobile-panel-drawer .inspector-panel{flex:1;min-height:0;display:flex}.mobile-panel-drawer .search-filter-section{flex-shrink:0}.header-mobile-menu{display:flex}.mobile-panel-tabs{padding-bottom:calc(4px + env(safe-area-inset-bottom,0px));flex-shrink:0;display:flex}}@media (width<=600px){.modal-content{border-radius:var(--radius-lg);width:95%;max-height:90vh;padding:16px}}@media (width<=900px){.designer-topbar{flex-wrap:wrap;gap:8px;padding:8px 12px}.designer-meta-fields{flex-direction:column;gap:6px;width:100%}.designer-meta-name,.designer-meta-desc{width:100%}.designer-split{flex-direction:column}.designer-sidebar{width:100%;min-width:unset;border-right:none;border-bottom:1px solid var(--border-color);max-height:50vh}.designer-preview{min-height:40vh}}@media (width<=600px){.learn-card-grid{grid-template-columns:1fr}.learn-header,.learn-index{padding-left:16px;padding-right:16px}.learn-article{padding:16px}.learn-nav-btn{flex:1}.learn-article-nav{flex-direction:column}}.pathfinder-panel{border-bottom:1px solid var(--border-subtle);flex-shrink:0}.pathfinder-header{width:100%;color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast);background:0 0;border:none;justify-content:space-between;align-items:center;padding:10px 16px;font-family:inherit;display:flex}.pathfinder-header:hover{background:var(--bg-tertiary)}.pathfinder-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.pathfinder-body{flex-direction:column;gap:10px;padding:12px 16px 16px;display:flex}.pathfinder-selects{align-items:flex-end;gap:6px;display:flex}.pathfinder-select-group{flex-direction:column;flex:1;gap:4px;display:flex}.pathfinder-label{text-transform:uppercase;letter-spacing:.4px;color:var(--text-tertiary);font-size:10px;font-weight:600}.pathfinder-select{background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);cursor:pointer;padding:6px 8px;font-family:inherit;font-size:12px}.pathfinder-select:focus{border-color:var(--ms-blue);outline:none}.pathfinder-arrow-icon{color:var(--text-tertiary);flex-shrink:0;margin-bottom:4px}.pathfinder-actions{gap:6px;display:flex}.pathfinder-btn-find{background:var(--ms-blue);color:var(--on-accent);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);border:none;flex:1;justify-content:center;align-items:center;gap:5px;padding:7px 12px;font-family:inherit;font-size:12px;font-weight:600;display:flex}.pathfinder-btn-find:hover:not(:disabled){background:var(--ms-blue-dark)}.pathfinder-btn-find:disabled{opacity:.4;cursor:not-allowed}.pathfinder-btn-clear{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);justify-content:center;align-items:center;gap:4px;padding:7px 10px;font-family:inherit;font-size:12px;display:flex}.pathfinder-btn-clear:hover{background:var(--bg-elevated);color:var(--text-primary)}.pathfinder-message{border-radius:var(--radius-sm);padding:8px 10px;font-size:12px}.pathfinder-message--warn{color:var(--ms-yellow-fg);background:#ffb9001a;border:1px solid #ffb9004d}.pathfinder-result{flex-direction:column;gap:8px;display:flex}.pathfinder-result-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.4px;font-size:11px;font-weight:600}.pathfinder-chain{flex-direction:column;gap:0;display:flex}.pathfinder-chain-item{flex-direction:column;align-items:flex-start;display:flex}.pathfinder-chain-rel{align-items:center;gap:6px;padding:2px 0 2px 20px;display:flex}.pathfinder-chain-rel-arrow{background:var(--ms-blue);width:1px;height:16px;position:relative}.pathfinder-chain-rel-arrow:after{content:"";border-left:4px solid #0000;border-right:4px solid #0000;border-top:5px solid var(--ms-blue);position:absolute;bottom:-4px;left:-3px}.pathfinder-chain-rel-name{color:var(--ms-blue);font-size:10px;font-style:italic;font-weight:500}.pathfinder-chain-node{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-tertiary);align-items:center;gap:8px;width:100%;padding:6px 10px;display:flex}.pathfinder-chain-node--start{border-color:var(--ms-green);background:#107c101a}.pathfinder-chain-node--end{border-color:var(--ms-orange);background:#d83b011a}.pathfinder-chain-icon{font-size:16px;line-height:1}.pathfinder-chain-name{color:var(--text-primary);font-size:12px;font-weight:600}
