@import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&family=Outfit:wght@300;400;500;600;700&display=swap");:root{--bg-primary:#0a0e17;--bg-secondary:#111827;--bg-tertiary:#1a2234;--bg-elevated:#232d42;--bg-hover:#2a3650;--accent-primary:#3b82f6;--accent-secondary:#8b5cf6;--accent-success:#10b981;--accent-warning:#f59e0b;--accent-danger:#ef4444;--accent-info:#06b6d4;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--text-accent:#60a5fa;--board-light:#e8dcc8;--board-dark:#b58863;--board-highlight:rgba(255,235,59,.5);--board-threat:rgba(239,68,68,.4);--board-opportunity:rgba(16,185,129,.4);--gradient-primary:linear-gradient(135deg,#3b82f6,#8b5cf6);--gradient-dark:linear-gradient(180deg,#111827,#0a0e17);--gradient-card:linear-gradient(145deg,#1a2234,#111827);--shadow-sm:0 2px 8px rgba(0,0,0,.3);--shadow-md:0 4px 20px rgba(0,0,0,.4);--shadow-lg:0 10px 40px rgba(0,0,0,.5);--shadow-glow:0 0 30px rgba(59,130,246,.3);--border-subtle:1px solid rgba(148,163,184,.1);--border-accent:1px solid rgba(59,130,246,.3);--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--font-primary:"Outfit",-apple-system,BlinkMacSystemFont,sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--transition-fast:150ms ease;--transition-normal:250ms ease;--transition-slow:400ms cubic-bezier(0.4,0,0.2,1)}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;width:100%}body{font-family:var(--font-primary);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}.App{min-height:100vh;background:var(--gradient-dark);position:relative}.App:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(ellipse at 20% 20%,rgba(59,130,246,.08) 0,transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(139,92,246,.06) 0,transparent 50%);pointer-events:none;z-index:0}.app-container{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column}.app-header{padding:var(--spacing-md) var(--spacing-xl);justify-content:space-between;border-bottom:var(--border-subtle);background:rgba(17,24,39,.8);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.app-header,.app-logo{display:flex;align-items:center}.app-logo{gap:var(--spacing-md)}.logo-icon{width:42px;height:42px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:24px;box-shadow:var(--shadow-glow)}.logo-icon,.logo-text{background:var(--gradient-primary)}.logo-text{font-size:1.5rem;font-weight:700;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em}.logo-subtitle{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em}.header-controls{gap:var(--spacing-sm)}.main-content{flex:1 1;display:grid;grid-template-columns:300px 1fr 340px;grid-gap:var(--spacing-lg);gap:var(--spacing-lg);padding:var(--spacing-xl);max-width:1600px;margin:0 auto;width:100%}@media (max-width:1400px){.main-content{grid-template-columns:260px 1fr 300px;gap:var(--spacing-md);padding:var(--spacing-md)}}@media (max-width:1100px){.main-content{grid-template-columns:1fr;max-width:600px}.analysis-panel,.move-history-panel{order:2}.board-section{order:1}}.panel-card{background:var(--gradient-card);border-radius:var(--radius-lg);border:var(--border-subtle);overflow:hidden;box-shadow:var(--shadow-md)}.panel-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:var(--border-subtle);justify-content:space-between;background:hsla(0,0%,100%,.02)}.panel-header,.panel-title{display:flex;align-items:center}.panel-title{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);gap:var(--spacing-sm)}.panel-title-icon{font-size:1rem}.panel-content{padding:var(--spacing-md);max-height:calc(100vh - 200px);overflow-y:auto}.panel-content::-webkit-scrollbar{width:6px}.panel-content::-webkit-scrollbar-track{background:transparent}.panel-content::-webkit-scrollbar-thumb{background:var(--bg-hover);border-radius:3px}.panel-content::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.board-section{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg)}.board-wrapper{position:relative;padding:var(--spacing-md);background:var(--gradient-card);border-radius:var(--radius-xl);border:var(--border-subtle);box-shadow:var(--shadow-lg)}.board-wrapper:before{content:"";position:absolute;inset:-2px;border-radius:calc(var(--radius-xl) + 2px);background:var(--gradient-primary);opacity:.2;z-index:-1}.turn-indicator{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-lg);background:var(--bg-tertiary);border-radius:var(--radius-md);border:var(--border-subtle)}.turn-dot{width:12px;height:12px;border-radius:50%;transition:var(--transition-normal)}.turn-dot.white{background:#fff;box-shadow:0 0 12px hsla(0,0%,100%,.5)}.turn-dot.black{background:#1a1a1a;border:2px solid var(--text-muted)}.turn-text{font-size:.875rem;font-weight:500;color:var(--text-secondary)}.move-history-panel .panel-content{padding:0}.move-list{display:flex;flex-direction:column}.move-row{display:grid;grid-template-columns:40px 1fr 1fr;grid-gap:var(--spacing-xs);gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);transition:var(--transition-fast)}.move-row:hover{background:var(--bg-hover)}.move-number{font-size:.75rem;font-weight:500}.move-notation,.move-number{font-family:var(--font-mono)}.move-notation{font-size:.875rem;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-fast)}.move-notation:hover{background:var(--bg-elevated)}.move-notation.white-move{color:var(--text-primary)}.move-notation.black-move{color:var(--text-secondary)}.move-notation.current{background:rgba(59,130,246,.2);color:var(--accent-primary)}.empty-history{padding:var(--spacing-xl);text-align:center;color:var(--text-muted);font-style:italic}.analysis-section{margin-bottom:var(--spacing-md)}.analysis-section:last-child{margin-bottom:0}.analysis-section-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:var(--spacing-sm);padding-left:var(--spacing-xs)}.analysis-moves{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.analysis-move-chip{font-family:var(--font-mono);font-size:.8rem;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-fast);border:1px solid transparent}.analysis-move-chip:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.level-1{background:rgba(239,68,68,.15);color:#f87171;border-color:rgba(239,68,68,.3)}.level-1:hover{background:rgba(239,68,68,.25)}.level-2{background:rgba(249,115,22,.15);color:#fb923c;border-color:rgba(249,115,22,.3)}.level-2:hover{background:rgba(249,115,22,.25)}.level-3{background:rgba(245,158,11,.15);color:#fbbf24;border-color:rgba(245,158,11,.3)}.level-3:hover{background:rgba(245,158,11,.25)}.level-4{background:rgba(59,130,246,.15);color:#60a5fa;border-color:rgba(59,130,246,.3)}.level-4:hover{background:rgba(59,130,246,.25)}.level-5{background:rgba(139,92,246,.15);color:#a78bfa;border-color:rgba(139,92,246,.3)}.level-5:hover{background:rgba(139,92,246,.25)}.capture{background:rgba(16,185,129,.15);color:#34d399;border-color:rgba(16,185,129,.3)}.capture:hover{background:rgba(16,185,129,.25)}.analysis-empty{padding:var(--spacing-lg);text-align:center;color:var(--text-muted);font-size:.875rem}.analysis-empty.safe-message{color:var(--accent-success);background:rgba(16,185,129,.1);border-radius:var(--radius-md);border:1px solid rgba(16,185,129,.2)}.analysis-toggle{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-md);background:var(--bg-secondary);padding:var(--spacing-xs);border-radius:var(--radius-md)}.toggle-btn{flex:1 1;padding:var(--spacing-sm) var(--spacing-md);border:none;background:transparent;color:var(--text-muted);font-family:var(--font-primary);font-size:.8rem;font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-fast)}.toggle-btn:hover{background:var(--bg-hover);color:var(--text-secondary)}.toggle-btn.active{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-sm)}.move-details{background:var(--bg-secondary);border-radius:var(--radius-md);border:var(--border-accent);margin-bottom:var(--spacing-md);overflow:hidden}.move-details-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background:rgba(59,130,246,.1);border-bottom:var(--border-subtle)}.move-details-san{font-family:var(--font-mono);font-size:1.1rem;font-weight:600;color:var(--accent-primary)}.close-btn{width:24px;height:24px;border:none;background:transparent;color:var(--text-muted);font-size:1.2rem;cursor:pointer;border-radius:var(--radius-sm);transition:var(--transition-fast);display:flex;align-items:center;justify-content:center}.close-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.move-details-body{padding:var(--spacing-md)}.detail-row{display:flex;justify-content:space-between;padding:var(--spacing-xs) 0;border-bottom:1px solid rgba(148,163,184,.05)}.detail-row:last-child{border-bottom:none}.detail-row.danger{background:rgba(239,68,68,.1);margin:var(--spacing-xs) calc(-1 * var(--spacing-md));padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm)}.detail-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.detail-value{font-family:var(--font-mono);font-size:.875rem;color:var(--text-primary)}.detail-value.threats{color:var(--accent-warning)}.detail-row.multi-chain{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.threat-chains-list{display:flex;flex-direction:column;gap:var(--spacing-xs);width:100%;margin-top:var(--spacing-xs)}.threat-chain-item{display:flex;align-items:center;gap:var(--spacing-xs);font-family:var(--font-mono);font-size:.8rem;padding:var(--spacing-xs) var(--spacing-sm);background:rgba(148,163,184,.08);border-radius:var(--radius-sm);flex-wrap:wrap}.chain-intermediate{color:var(--accent-primary);font-weight:500}.chain-arrow{font-size:.7rem}.chain-finals{color:var(--accent-warning);font-weight:500}.threat-indicator{font-size:.65rem;margin-left:var(--spacing-xs);opacity:.7}.threat-indicator.multi{background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff;padding:1px 4px;border-radius:var(--radius-sm);font-weight:700;opacity:1}.analysis-move-chip.fork{position:relative;background:linear-gradient(135deg,rgba(245,158,11,.15),rgba(239,68,68,.15));border-color:#f59e0b}.analysis-move-chip.fork:before{content:"⚔️";position:absolute;top:-6px;right:-6px;font-size:.65rem}.analysis-move-chip.trade-free{background:linear-gradient(135deg,rgba(34,197,94,.25),rgba(16,185,129,.15));border-color:#22c55e}.analysis-move-chip.trade-winning{background:linear-gradient(135deg,rgba(59,130,246,.2),rgba(34,197,94,.15));border-color:#3b82f6}.analysis-move-chip.trade-equal{background:rgba(148,163,184,.15);border-color:#94a3b8}.analysis-move-chip.trade-losing{background:linear-gradient(135deg,rgba(239,68,68,.2),rgba(245,158,11,.15));border-color:#ef4444}.threat-indicator.free{background:linear-gradient(135deg,#22c55e,#10b981)}.threat-indicator.free,.threat-indicator.winning{color:#fff;padding:1px 4px;border-radius:var(--radius-sm);font-weight:700;opacity:1}.threat-indicator.winning{background:linear-gradient(135deg,#3b82f6,#22c55e)}.threat-indicator.equal{background:rgba(148,163,184,.6)}.threat-indicator.equal,.threat-indicator.losing{color:#fff;padding:1px 4px;border-radius:var(--radius-sm);opacity:1}.threat-indicator.losing{background:linear-gradient(135deg,#ef4444,#f59e0b)}.threat-target-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);margin-bottom:var(--spacing-xs);border-radius:var(--radius-sm);background:rgba(148,163,184,.08)}.threat-target-item:last-child{margin-bottom:0}.threat-target-item.trade-free{background:linear-gradient(90deg,rgba(34,197,94,.2),rgba(34,197,94,.05));border-left:3px solid #22c55e}.threat-target-item.trade-winning{background:linear-gradient(90deg,rgba(59,130,246,.15),rgba(59,130,246,.05));border-left:3px solid #3b82f6}.threat-target-item.trade-equal{background:rgba(148,163,184,.1);border-left:3px solid #94a3b8}.threat-target-item.trade-losing{background:linear-gradient(90deg,rgba(239,68,68,.15),rgba(239,68,68,.05));border-left:3px solid #ef4444}.target-main,.target-quality{display:flex;align-items:center;gap:var(--spacing-xs)}.quality-badge{font-size:.7rem;padding:2px 6px;border-radius:var(--radius-sm);font-weight:600;white-space:nowrap}.quality-badge.undefended{background:linear-gradient(135deg,#22c55e,#10b981);color:#fff;animation:pulse-glow 2s ease-in-out infinite}.quality-badge.defended{background:rgba(148,163,184,.3);color:var(--text-secondary)}.quality-badge.trade-quality.trade-winning{background:linear-gradient(135deg,#3b82f6,#22c55e);color:#fff}.quality-badge.trade-quality.trade-equal{background:rgba(148,163,184,.4);color:var(--text-primary)}.quality-badge.trade-quality.trade-losing{background:linear-gradient(135deg,#ef4444,#f59e0b);color:#fff}.threat-targets-list{flex-direction:column;margin-top:var(--spacing-xs)}.danger-indicator,.warning-indicator{font-size:.7rem;margin-left:var(--spacing-xs)}.analysis-move-chip.danger{background:rgba(239,68,68,.2);color:#f87171;border-color:rgba(239,68,68,.4)}.analysis-move-chip.danger:hover{background:rgba(239,68,68,.3)}.analysis-move-chip.warning{background:rgba(245,158,11,.2);color:#fbbf24;border-color:rgba(245,158,11,.4)}.analysis-move-chip.warning:hover{background:rgba(245,158,11,.3)}.analysis-move-chip.selected{transform:scale(1.05);box-shadow:0 0 0 2px var(--accent-primary)}.danger-title{color:#f87171!important}.warning-title{color:#fbbf24!important}.level-legend{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.legend-item{display:flex;align-items:center;gap:var(--spacing-xs);font-size:.7rem;color:var(--text-secondary)}.legend-dot{width:8px;height:8px;border-radius:50%}.legend-dot.l1{background:#ef4444}.legend-dot.l2{background:#f97316}.legend-dot.l3{background:#f59e0b}.legend-dot.l4{background:#3b82f6}.legend-dot.l5{background:#8b5cf6}.legend-dot.cap{background:#10b981}.btn{font-family:var(--font-primary);font-size:.875rem;font-weight:500;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);border:none;cursor:pointer;transition:var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs)}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-md),var(--shadow-glow)}.btn-secondary{background:var(--bg-elevated);color:var(--text-secondary);border:var(--border-subtle)}.btn-secondary:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-view-toggle{background:linear-gradient(135deg,rgba(99,102,241,.3),rgba(139,92,246,.3));color:#c7d2fe;border:1px solid rgba(99,102,241,.4);text-decoration:none}.btn-view-toggle:hover{background:linear-gradient(135deg,rgba(99,102,241,.5),rgba(139,92,246,.5));color:#e0e7ff;transform:translateY(-1px)}.btn-icon{width:36px;height:36px;padding:0;border-radius:var(--radius-sm)}.btn:disabled{opacity:.5;cursor:not-allowed}.control-bar{display:flex;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-md);border:var(--border-subtle)}.control-bar .btn{flex:1 1}.status-badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.status-check{background:rgba(245,158,11,.15);color:var(--accent-warning);border:1px solid rgba(245,158,11,.3)}.status-checkmate{background:rgba(239,68,68,.15);color:var(--accent-danger);border:1px solid rgba(239,68,68,.3)}.status-draw{background:rgba(148,163,184,.15);color:var(--text-secondary);border:1px solid rgba(148,163,184,.3)}.threat-count{gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.threat-count,.threat-stat{display:flex;align-items:center}.threat-stat{flex-direction:column;flex:1 1}.threat-stat-value{font-size:1.5rem;font-weight:700;font-family:var(--font-mono)}.threat-stat-label{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.loading-spinner{width:24px;height:24px;border:3px solid var(--bg-elevated);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.fade-in{animation:fadeIn .3s ease-out}.defense-panel{background:linear-gradient(145deg,#1e3a5f,#0f2744);border-radius:var(--radius-md);border:1px solid rgba(6,182,212,.3);margin-bottom:var(--spacing-md);overflow:hidden;box-shadow:0 4px 20px rgba(6,182,212,.15)}.defense-header{justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background:rgba(6,182,212,.15);border-bottom:1px solid rgba(6,182,212,.2)}.defense-header,.defense-title{display:flex;align-items:center}.defense-title{font-size:.8rem;font-weight:600;color:var(--accent-info);gap:var(--spacing-xs)}.defense-title .threat-san{font-family:var(--font-mono);background:rgba(6,182,212,.2);padding:2px 6px;border-radius:var(--radius-sm);color:#67e8f9}.defense-count{font-size:.7rem;color:var(--text-muted);background:var(--bg-secondary);padding:2px 8px;border-radius:var(--radius-sm)}.defense-body{padding:var(--spacing-md)}.defense-legend{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);flex-wrap:wrap}.legend-tag{font-size:.65rem;padding:2px 6px;border-radius:var(--radius-sm);display:flex;align-items:center;gap:2px}.legend-tag.capture{background:rgba(239,68,68,.15);color:#f87171;border:1px solid rgba(239,68,68,.3)}.legend-tag.avoid{background:rgba(245,158,11,.15);color:#fbbf24;border:1px solid rgba(245,158,11,.3)}.legend-tag.block{background:rgba(16,185,129,.15);color:#34d399;border:1px solid rgba(16,185,129,.3)}.defense-moves{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.defense-move-chip{display:flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:.75rem;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-fast);border:1px solid transparent}.defense-move-chip:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.defense-move-chip.capture{background:rgba(239,68,68,.15);color:#f87171;border-color:rgba(239,68,68,.3)}.defense-move-chip.capture:hover{background:rgba(239,68,68,.25);box-shadow:0 0 12px rgba(239,68,68,.3)}.defense-move-chip.avoid{background:rgba(245,158,11,.15);color:#fbbf24;border-color:rgba(245,158,11,.3)}.defense-move-chip.avoid:hover{background:rgba(245,158,11,.25);box-shadow:0 0 12px rgba(245,158,11,.3)}.defense-move-chip.block{background:rgba(16,185,129,.15);color:#34d399;border-color:rgba(16,185,129,.3)}.defense-move-chip.block:hover{background:rgba(16,185,129,.25);box-shadow:0 0 12px rgba(16,185,129,.3)}.defense-move-chip.tempo{background:rgba(168,85,247,.15);color:#c084fc;border-color:rgba(168,85,247,.3)}.defense-move-chip.tempo:hover{background:rgba(168,85,247,.25);box-shadow:0 0 12px rgba(168,85,247,.3)}.defense-move-chip.other{background:rgba(148,163,184,.15);color:#94a3b8;border-color:rgba(148,163,184,.3)}.defense-move-chip.other:hover{background:rgba(148,163,184,.25);box-shadow:0 0 12px rgba(148,163,184,.3)}.defense-move-chip.protect{background:rgba(6,182,212,.15);color:#22d3ee;border-color:rgba(6,182,212,.3)}.defense-move-chip.protect:hover{background:rgba(6,182,212,.25);box-shadow:0 0 12px rgba(6,182,212,.3)}.defense-move-chip.deflect{background:rgba(249,115,22,.15);color:#fb923c;border-color:rgba(249,115,22,.3)}.defense-move-chip.deflect:hover{background:rgba(249,115,22,.25);box-shadow:0 0 12px rgba(249,115,22,.3)}.defense-move-chip.pin-king{background:rgba(236,72,153,.15);color:#f472b6;border-color:rgba(236,72,153,.3)}.defense-move-chip.pin-king:hover{background:rgba(236,72,153,.25);box-shadow:0 0 12px rgba(236,72,153,.3)}.defense-move-chip.pin-material{background:rgba(139,92,246,.15);color:#a78bfa;border-color:rgba(139,92,246,.3)}.defense-move-chip.pin-material:hover{background:rgba(139,92,246,.25);box-shadow:0 0 12px rgba(139,92,246,.3)}.defense-move-chip.counter-attack{background:rgba(234,179,8,.15);color:#facc15;border-color:rgba(234,179,8,.3)}.defense-move-chip.counter-attack:hover{background:rgba(234,179,8,.25);box-shadow:0 0 12px rgba(234,179,8,.3)}.legend-tag.protect{background:rgba(6,182,212,.15);color:#22d3ee;border:1px solid rgba(6,182,212,.3)}.legend-tag.deflect{background:rgba(249,115,22,.15);color:#fb923c;border:1px solid rgba(249,115,22,.3)}.legend-tag.pin-king{background:rgba(236,72,153,.15);color:#f472b6;border:1px solid rgba(236,72,153,.3)}.legend-tag.pin-material{background:rgba(139,92,246,.15);color:#a78bfa;border:1px solid rgba(139,92,246,.3)}.legend-tag.counter-attack{background:rgba(234,179,8,.15);color:#facc15;border:1px solid rgba(234,179,8,.3)}.threat-target-info{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);background:rgba(251,191,36,.1);border-bottom:1px solid rgba(251,191,36,.2);font-size:.75rem}.threat-target-info .threat-label{color:#fbbf24;font-weight:600}.threat-target-info .threat-target{font-family:var(--font-mono);background:rgba(251,191,36,.15);padding:2px 8px;border-radius:var(--radius-sm);color:#fde68a;text-transform:capitalize}.legend-tag.tempo{background:rgba(168,85,247,.15);color:#c084fc;border:1px solid rgba(168,85,247,.3);padding:2px 6px;border-radius:var(--radius-sm);font-size:.65rem}.def-san{font-weight:500}.def-type-icon{font-size:.65rem;opacity:.8}.defense-more{font-size:.7rem;color:var(--text-muted);padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-secondary);border-radius:var(--radius-sm)}.defense-panel-v2{background:linear-gradient(180deg,rgba(15,23,42,.98),rgba(10,18,36,.98));border:1px solid rgba(59,130,246,.3);border-radius:var(--radius-md);margin:var(--spacing-md) 0;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,.4),inset 0 1px 0 hsla(0,0%,100%,.05)}.defense-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);background:linear-gradient(135deg,rgba(59,130,246,.12),rgba(139,92,246,.08));border-bottom:1px solid rgba(59,130,246,.25);position:relative}.defense-panel-header:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(59,130,246,.4),transparent)}.defense-panel-title{display:flex;align-items:center;gap:var(--spacing-sm);font-weight:600;color:var(--text-primary);font-size:.95rem}.defense-icon{font-size:1.2rem;filter:drop-shadow(0 0 4px rgba(59,130,246,.4))}.defense-target-move{font-family:var(--font-mono);background:linear-gradient(135deg,rgba(59,130,246,.25),rgba(139,92,246,.2));padding:4px 12px;border-radius:var(--radius-md);color:#93c5fd;font-weight:700;letter-spacing:.5px;border:1px solid rgba(59,130,246,.3);box-shadow:0 2px 8px rgba(59,130,246,.15)}.defense-panel-count{font-size:.75rem;color:#93c5fd;background:rgba(59,130,246,.12);padding:6px 14px;border-radius:var(--radius-full);font-weight:600;border:1px solid rgba(59,130,246,.25);text-transform:uppercase;letter-spacing:.5px}.defense-threat-row{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:linear-gradient(90deg,rgba(251,191,36,.06),transparent);border-bottom:1px solid rgba(251,191,36,.12)}.defense-threat-label{font-size:.7rem;color:#d97706;font-weight:700;text-transform:uppercase;letter-spacing:1px;display:flex;align-items:center;gap:4px}.defense-threat-label:before{content:"⚡";font-size:.8rem}.defense-threat-targets{display:flex;gap:var(--spacing-xs);flex-wrap:wrap}.defense-threat-piece{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:.8rem;background:linear-gradient(135deg,rgba(251,191,36,.15),rgba(217,119,6,.1));padding:5px 12px;border-radius:var(--radius-md);border:1px solid rgba(251,191,36,.3);box-shadow:0 2px 6px rgba(251,191,36,.1)}.threat-square{color:#fde68a;font-weight:700;text-transform:uppercase;font-size:.85rem}.threat-piece-name{color:#fbbf24;text-transform:capitalize;font-weight:500;padding-left:6px;border-left:1px solid rgba(251,191,36,.3)}.defense-moves-section{padding:var(--spacing-md);background:rgba(0,0,0,.2)}.defense-section-label{font-size:.7rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:var(--spacing-sm);display:flex;align-items:center;gap:var(--spacing-xs)}.defense-section-label:after{content:"";flex:1 1;height:1px;background:linear-gradient(90deg,rgba(100,116,139,.3),transparent)}.defense-moves-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));grid-gap:6px;gap:6px}.defense-move-v2{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-family:var(--font-mono);font-size:.85rem;padding:10px 6px;border-radius:var(--radius-md);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);border:1px solid transparent;position:relative;overflow:hidden}.defense-move-v2:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,hsla(0,0%,100%,.08),transparent 50%);opacity:0;transition:opacity .2s ease}.defense-move-v2:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 6px 20px rgba(0,0,0,.4)}.defense-move-v2:hover:before{opacity:1}.defense-move-san{font-weight:700;letter-spacing:.3px;z-index:1}.defense-move-type-icon{font-size:.7rem;opacity:.85;z-index:1}.defense-move-more{display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:500;color:var(--text-muted);background:rgba(100,116,139,.08);border-radius:var(--radius-md);border:1px dashed rgba(100,116,139,.3);padding:10px 6px;cursor:pointer;transition:all .2s ease}.defense-move-more:hover{background:rgba(100,116,139,.15);color:var(--text-secondary);border-color:rgba(100,116,139,.4)}.defense-move-v2.capture{background:rgba(239,68,68,.15);color:#f87171;border-color:rgba(239,68,68,.3)}.defense-move-v2.capture:hover{background:rgba(239,68,68,.25);box-shadow:0 0 20px rgba(239,68,68,.25)}.defense-move-v2.avoid{background:rgba(245,158,11,.15);color:#fbbf24;border-color:rgba(245,158,11,.3)}.defense-move-v2.avoid:hover{background:rgba(245,158,11,.25);box-shadow:0 0 20px rgba(245,158,11,.25)}.defense-move-v2.block{background:rgba(16,185,129,.15);color:#34d399;border-color:rgba(16,185,129,.3)}.defense-move-v2.block:hover{background:rgba(16,185,129,.25);box-shadow:0 0 20px rgba(16,185,129,.25)}.defense-move-v2.tempo{background:rgba(168,85,247,.15);color:#c084fc;border-color:rgba(168,85,247,.3)}.defense-move-v2.tempo:hover{background:rgba(168,85,247,.25);box-shadow:0 0 20px rgba(168,85,247,.25)}.defense-move-v2.protect{background:rgba(6,182,212,.15);color:#22d3ee;border-color:rgba(6,182,212,.3)}.defense-move-v2.protect:hover{background:rgba(6,182,212,.25);box-shadow:0 0 20px rgba(6,182,212,.25)}.defense-move-v2.deflect{background:rgba(249,115,22,.15);color:#fb923c;border-color:rgba(249,115,22,.3)}.defense-move-v2.deflect:hover{background:rgba(249,115,22,.25);box-shadow:0 0 20px rgba(249,115,22,.25)}.defense-move-v2.pin-king{background:rgba(236,72,153,.15);color:#f472b6;border-color:rgba(236,72,153,.3)}.defense-move-v2.pin-king:hover{background:rgba(236,72,153,.25);box-shadow:0 0 20px rgba(236,72,153,.25)}.defense-move-v2.pin-material{background:rgba(139,92,246,.15);color:#a78bfa;border-color:rgba(139,92,246,.3)}.defense-move-v2.pin-material:hover{background:rgba(139,92,246,.25);box-shadow:0 0 20px rgba(139,92,246,.25)}.defense-move-v2.counter-attack{background:rgba(234,179,8,.15);color:#facc15;border-color:rgba(234,179,8,.3)}.defense-move-v2.counter-attack:hover{background:rgba(234,179,8,.25);box-shadow:0 0 20px rgba(234,179,8,.25)}.defense-move-v2.other{background:rgba(100,116,139,.1);color:#94a3b8;border-color:rgba(100,116,139,.2)}.defense-move-v2.other:hover{background:rgba(100,116,139,.2)}.defense-legend-footer{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;padding:var(--spacing-md);background:linear-gradient(180deg,rgba(15,23,42,.95),rgba(10,18,32,.98));border-top:2px solid rgba(59,130,246,.2);position:relative}.defense-legend-footer:before{content:"DEFENSE TYPES";position:absolute;top:-9px;left:50%;transform:translateX(-50%);font-size:.6rem;font-weight:600;letter-spacing:1.5px;color:rgba(59,130,246,.7);background:#0a1220;padding:2px 12px;border-radius:10px;border:1px solid rgba(59,130,246,.2)}.legend-item-v2{display:flex;align-items:center;gap:6px;font-size:.7rem;color:var(--text-secondary);text-transform:capitalize;letter-spacing:.3px;padding:4px 10px;border-radius:var(--radius-sm);background:rgba(100,116,139,.08);border:1px solid rgba(100,116,139,.12);transition:all .2s ease}.legend-item-v2:hover{background:rgba(100,116,139,.15);transform:translateY(-1px)}.legend-dot-v2{width:10px;height:10px;border-radius:3px;box-shadow:0 0 6px currentColor}.legend-item-v2.capture{color:#f87171;background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.2)}.legend-item-v2.capture .legend-dot-v2{background:#f87171}.legend-item-v2.avoid{color:#fbbf24;background:rgba(245,158,11,.08);border-color:rgba(245,158,11,.2)}.legend-item-v2.avoid .legend-dot-v2{background:#fbbf24}.legend-item-v2.block{color:#34d399;background:rgba(16,185,129,.08);border-color:rgba(16,185,129,.2)}.legend-item-v2.block .legend-dot-v2{background:#34d399}.legend-item-v2.tempo{color:#c084fc;background:rgba(168,85,247,.08);border-color:rgba(168,85,247,.2)}.legend-item-v2.tempo .legend-dot-v2{background:#c084fc}.legend-item-v2.protect{color:#22d3ee;background:rgba(6,182,212,.08);border-color:rgba(6,182,212,.2)}.legend-item-v2.protect .legend-dot-v2{background:#22d3ee}.legend-item-v2.counter-attack{color:#facc15;background:rgba(234,179,8,.08);border-color:rgba(234,179,8,.2)}.legend-item-v2.counter-attack .legend-dot-v2{background:#facc15}.defense-panel-v3{margin-top:var(--spacing-md);background:linear-gradient(145deg,rgba(15,23,42,.98),rgba(8,15,28,.99));border:1px solid rgba(59,130,246,.2);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.4),inset 0 0 0 1px hsla(0,0%,100%,.03),0 0 60px rgba(59,130,246,.05)}.defense-v3-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background:linear-gradient(135deg,rgba(59,130,246,.12),rgba(59,130,246,.05));border-bottom:1px solid rgba(59,130,246,.15)}.defense-v3-title-row{display:flex;align-items:center;gap:var(--spacing-xs)}.defense-v3-icon{font-size:1rem;filter:drop-shadow(0 0 6px rgba(59,130,246,.4))}.defense-v3-label{font-size:.8rem;font-weight:500;color:var(--text-secondary);letter-spacing:.3px}.defense-v3-target{font-size:.95rem;background:rgba(59,130,246,.15);border-radius:var(--radius-sm);border:1px solid rgba(59,130,246,.25);letter-spacing:.5px}.defense-v3-count,.defense-v3-target{font-family:var(--font-mono);font-weight:700;color:#60a5fa;padding:4px 10px}.defense-v3-count{font-size:.85rem;background:rgba(59,130,246,.2);border-radius:var(--radius-full);border:1px solid rgba(59,130,246,.3);min-width:32px;text-align:center}.defense-v3-threat-info{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:rgba(251,191,36,.06);border-bottom:1px solid rgba(251,191,36,.1)}.defense-v3-threat-info.fork-threat{background:linear-gradient(135deg,rgba(245,158,11,.12),rgba(239,68,68,.08));border-bottom:1px solid rgba(245,158,11,.2)}.threat-info-label{font-size:.72rem;font-weight:600;color:#fbbf24;text-transform:uppercase;letter-spacing:.8px;display:flex;align-items:center;gap:var(--spacing-xs);flex-wrap:wrap}.fork-badge{background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff;padding:2px 8px;border-radius:var(--radius-sm);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;animation:pulse-fork 2s infinite}@keyframes pulse-fork{0%,to{opacity:1}50%{opacity:.8}}.threat-targets-list{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.threat-info-target{display:flex;align-items:center;gap:4px;background:rgba(251,191,36,.12);padding:3px 8px;border-radius:var(--radius-sm);border:1px solid rgba(251,191,36,.2)}.target-square{font-family:var(--font-mono);font-size:.75rem;font-weight:700;color:#fde68a;letter-spacing:.5px}.target-piece{font-size:.7rem;color:#fcd34d;font-weight:500}.defense-v3-moves{display:grid;grid-template-columns:repeat(auto-fill,minmax(70px,1fr));grid-gap:6px;gap:6px;padding:var(--spacing-md);background:rgba(0,0,0,.15)}.defense-v3-chip{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-mono);font-size:.82rem;padding:8px 10px;border-radius:var(--radius-md);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);border:1px solid transparent;position:relative;overflow:hidden}.defense-v3-chip:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,hsla(0,0%,100%,.1),transparent 60%);opacity:0;transition:opacity .2s ease}.defense-v3-chip:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 4px 16px rgba(0,0,0,.4)}.defense-v3-chip:hover:before{opacity:1}.chip-san{font-weight:600;letter-spacing:.3px;z-index:1}.chip-icon{font-size:.65rem;opacity:.9;z-index:1}.defense-v3-more{display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;color:var(--text-muted);background:rgba(100,116,139,.1);border-radius:var(--radius-md);border:1px dashed rgba(100,116,139,.3);padding:8px 10px;cursor:pointer;transition:all .2s ease}.defense-v3-more:hover{background:rgba(100,116,139,.2);color:var(--text-secondary)}.defense-v3-chip.capture{background:rgba(239,68,68,.15);color:#f87171;border-color:rgba(239,68,68,.3)}.defense-v3-chip.capture:hover{background:rgba(239,68,68,.25);box-shadow:0 0 20px rgba(239,68,68,.2)}.defense-v3-chip.avoid{background:rgba(245,158,11,.15);color:#fbbf24;border-color:rgba(245,158,11,.3)}.defense-v3-chip.avoid:hover{background:rgba(245,158,11,.25);box-shadow:0 0 20px rgba(245,158,11,.2)}.defense-v3-chip.block{background:rgba(16,185,129,.15);color:#34d399;border-color:rgba(16,185,129,.3)}.defense-v3-chip.block:hover{background:rgba(16,185,129,.25);box-shadow:0 0 20px rgba(16,185,129,.2)}.defense-v3-chip.tempo{background:rgba(168,85,247,.15);color:#c084fc;border-color:rgba(168,85,247,.3)}.defense-v3-chip.tempo:hover{background:rgba(168,85,247,.25);box-shadow:0 0 20px rgba(168,85,247,.2)}.defense-v3-chip.protect{background:rgba(6,182,212,.15);color:#22d3ee;border-color:rgba(6,182,212,.3)}.defense-v3-chip.protect:hover{background:rgba(6,182,212,.25);box-shadow:0 0 20px rgba(6,182,212,.2)}.defense-v3-chip.deflect{background:rgba(249,115,22,.15);color:#fb923c;border-color:rgba(249,115,22,.3)}.defense-v3-chip.deflect:hover{background:rgba(249,115,22,.25);box-shadow:0 0 20px rgba(249,115,22,.2)}.defense-v3-chip.pin-king{background:rgba(236,72,153,.15);color:#f472b6;border-color:rgba(236,72,153,.3)}.defense-v3-chip.pin-king:hover{background:rgba(236,72,153,.25);box-shadow:0 0 20px rgba(236,72,153,.2)}.defense-v3-chip.pin-material{background:rgba(139,92,246,.15);color:#a78bfa;border-color:rgba(139,92,246,.3)}.defense-v3-chip.pin-material:hover{background:rgba(139,92,246,.25);box-shadow:0 0 20px rgba(139,92,246,.2)}.defense-v3-chip.counter-attack{background:rgba(234,179,8,.15);color:#facc15;border-color:rgba(234,179,8,.3)}.defense-v3-chip.counter-attack:hover{background:rgba(234,179,8,.25);box-shadow:0 0 20px rgba(234,179,8,.2)}.defense-v3-chip.other{background:rgba(100,116,139,.1);color:#94a3b8;border-color:rgba(100,116,139,.2)}.defense-v3-chip.other:hover{background:rgba(100,116,139,.2)}.defense-v3-legend{padding:var(--spacing-sm) var(--spacing-md);background:linear-gradient(180deg,rgba(30,41,59,.8),rgba(15,23,42,.95));border-top:2px solid rgba(100,116,139,.15);display:flex;flex-direction:column;gap:6px}.legend-v3-row{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.legend-v3-item{display:inline-flex;align-items:center;gap:5px;font-size:.62rem;font-weight:600;padding:3px 8px;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.5px;background:rgba(0,0,0,.3);border:1px solid hsla(0,0%,100%,.06);transition:all .15s ease}.legend-v3-item:hover{transform:translateY(-1px);background:rgba(0,0,0,.4)}.legend-v3-dot{width:8px;height:8px;border-radius:2px}.legend-v3-text{opacity:.9}.legend-v3-item.capture{color:#f87171}.legend-v3-item.capture .legend-v3-dot{background:#f87171;box-shadow:0 0 6px #f87171}.legend-v3-item.avoid{color:#fbbf24}.legend-v3-item.avoid .legend-v3-dot{background:#fbbf24;box-shadow:0 0 6px #fbbf24}.legend-v3-item.block{color:#34d399}.legend-v3-item.block .legend-v3-dot{background:#34d399;box-shadow:0 0 6px #34d399}.legend-v3-item.tempo{color:#c084fc}.legend-v3-item.tempo .legend-v3-dot{background:#c084fc;box-shadow:0 0 6px #c084fc}.legend-v3-item.protect{color:#22d3ee}.legend-v3-item.protect .legend-v3-dot{background:#22d3ee;box-shadow:0 0 6px #22d3ee}.legend-v3-item.counter-attack{color:#facc15}.legend-v3-item.counter-attack .legend-v3-dot{background:#facc15;box-shadow:0 0 6px #facc15}.danger-defense-panel{margin-top:var(--spacing-md);background:linear-gradient(135deg,rgba(239,68,68,.08),rgba(220,38,38,.04));border:1px solid rgba(239,68,68,.25);border-radius:var(--radius-lg);overflow:hidden}.danger-defense-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background:rgba(239,68,68,.1);border-bottom:1px solid rgba(239,68,68,.2)}.danger-defense-title{font-size:.85rem;font-weight:600;color:#fca5a5}.danger-defense-title .move-highlight{font-family:var(--font-mono);background:rgba(239,68,68,.2);padding:2px 8px;border-radius:var(--radius-sm);color:#fecaca}.danger-defense-loading{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);color:var(--text-muted);font-size:.8rem}.mini-spinner{width:14px;height:14px;border:2px solid rgba(239,68,68,.2);border-top-color:#f87171;border-radius:50%;animation:spin .8s linear infinite}.danger-defense-body{padding:var(--spacing-sm);display:flex;flex-direction:column;gap:var(--spacing-sm)}.threat-response-block{background:rgba(0,0,0,.2);border-radius:var(--radius-md);overflow:hidden}.threat-response-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);background:rgba(239,68,68,.1);border-bottom:1px solid rgba(239,68,68,.15)}.threat-move-label{font-size:.7rem;color:#fca5a5}.threat-move-san{font-family:var(--font-mono);font-weight:600;font-size:.85rem;color:#fecaca;display:flex;align-items:center;gap:var(--spacing-xs)}.threat-move-san.checkmate{color:#f87171}.mate-badge{font-size:.55rem;font-weight:700;letter-spacing:.5px;background:rgba(220,38,38,.3);color:#fca5a5;padding:1px 5px;border-radius:3px;border:1px solid rgba(239,68,68,.4)}.checkmate-warning{text-align:center;color:#f87171;font-size:.8rem;font-weight:600;background:rgba(220,38,38,.1)}.checkmate-warning,.defense-options{padding:var(--spacing-sm)}.defense-options-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-xs)}.defense-count-label{font-size:.7rem;color:#86efac;font-weight:500}.defense-count-badge{font-size:.65rem;font-weight:700;background:rgba(34,197,94,.2);color:#86efac;padding:2px 6px;border-radius:var(--radius-full);border:1px solid rgba(34,197,94,.3)}.defense-chips-grid{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:var(--spacing-xs)}.mini-defense-chip{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;border-radius:var(--radius-sm);font-size:.72rem;cursor:default;transition:all .15s ease}.mini-defense-chip.recapture{background:rgba(34,197,94,.2);color:#86efac;border:1px solid rgba(34,197,94,.3)}.mini-defense-chip.counter-check{background:rgba(168,85,247,.2);color:#c084fc;border:1px solid rgba(168,85,247,.3)}.mini-defense-chip.block-check{background:rgba(59,130,246,.2);color:#93c5fd;border:1px solid rgba(59,130,246,.3)}.mini-defense-chip.counter-capture{background:rgba(251,191,36,.2);color:#fde68a;border:1px solid rgba(251,191,36,.3)}.mini-defense-chip.king-move{background:rgba(148,163,184,.2);color:#cbd5e1;border:1px solid rgba(148,163,184,.3)}.mini-defense-chip.develop{background:rgba(100,116,139,.2);color:#94a3b8;border:1px solid rgba(100,116,139,.3)}.mini-defense-chip:hover{transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.3)}.mini-def-san{font-family:var(--font-mono);font-weight:500}.mini-def-icon{font-size:.6rem;opacity:.9}.more-defenses{font-size:.65rem;color:var(--text-muted);padding:3px 6px;background:rgba(0,0,0,.2);border-radius:var(--radius-sm)}.defense-type-legend{display:flex;flex-wrap:wrap;gap:4px;padding-top:var(--spacing-xs);border-top:1px solid hsla(0,0%,100%,.05)}.legend-mini{font-size:.55rem;padding:2px 5px;border-radius:3px;opacity:.7}.legend-mini.recapture{background:rgba(34,197,94,.1);color:#86efac}.legend-mini.counter-check{background:rgba(168,85,247,.1);color:#c084fc}.legend-mini.block-check{background:rgba(59,130,246,.1);color:#93c5fd}.legend-mini.king-move{background:rgba(148,163,184,.1);color:#cbd5e1}.danger-defense-empty{padding:var(--spacing-md);font-size:.8rem}.danger-defense-empty,.no-direct-defense{text-align:center;color:var(--text-muted)}.no-direct-defense{padding:var(--spacing-sm) var(--spacing-md);font-size:.75rem;font-style:italic;background:rgba(251,191,36,.05);border-radius:var(--radius-sm);margin:var(--spacing-xs)}.analysis-move-chip.danger.hovered,.analysis-move-chip.warning.hovered{transform:translateY(-2px);box-shadow:0 4px 16px rgba(239,68,68,.4)}@media (max-width:768px){.app-header{padding:var(--spacing-sm) var(--spacing-md)}.logo-text{font-size:1.25rem}.logo-subtitle{display:none}.main-content{padding:var(--spacing-md);gap:var(--spacing-md)}}.analysis-toggle.triple{grid-template-columns:1fr 1fr 1fr}.analysis-toggle.triple .toggle-btn{font-size:.75rem;padding:var(--spacing-xs) var(--spacing-sm)}.analysis-toggle.quad{grid-template-columns:1fr 1fr 1fr 1fr}.analysis-toggle.quad .toggle-btn{font-size:.68rem;padding:var(--spacing-xs) 4px}.analysis-toggle.quint{grid-template-columns:repeat(5,1fr)}.analysis-toggle.quint .toggle-btn{font-size:.62rem;padding:var(--spacing-xs) 3px}.threat-chain-panel{margin:var(--spacing-md) 0;background:linear-gradient(145deg,rgba(30,41,59,.95),rgba(15,23,42,.98));border:1px solid rgba(139,92,246,.3);border-radius:var(--radius-lg);padding:var(--spacing-md);box-shadow:0 4px 20px rgba(0,0,0,.3),inset 0 0 40px rgba(139,92,246,.1)}.threat-chain-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid rgba(139,92,246,.2)}.chain-icon{font-size:1.2rem}.chain-title{font-weight:600;color:#c4b5fd;font-size:.9rem;text-transform:uppercase;letter-spacing:.05em}.threat-chain-nodes{flex-wrap:wrap;justify-content:center}.threat-chain-node-wrapper,.threat-chain-nodes{display:flex;align-items:center;gap:var(--spacing-xs)}.threat-chain-node{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);min-width:70px;transition:all var(--transition-fast)}.threat-chain-node.level-0{background:linear-gradient(135deg,rgba(239,68,68,.3),rgba(185,28,28,.2));border:1px solid rgba(239,68,68,.5)}.threat-chain-node.level-1{background:linear-gradient(135deg,hsla(0,91%,71%,.25),rgba(239,68,68,.15));border:1px solid hsla(0,91%,71%,.4)}.threat-chain-node.level-2{background:linear-gradient(135deg,rgba(251,146,60,.25),rgba(234,88,12,.15));border:1px solid rgba(251,146,60,.4)}.threat-chain-node.level-3{background:linear-gradient(135deg,rgba(250,204,21,.2),rgba(202,138,4,.1));border:1px solid rgba(250,204,21,.3)}.threat-chain-node.level-4{background:linear-gradient(135deg,rgba(59,130,246,.2),rgba(29,78,216,.1));border:1px solid rgba(59,130,246,.3)}.threat-chain-node.theoretical{opacity:.6;border-style:dashed}.node-level{font-size:.65rem;font-weight:700;color:hsla(0,0%,100%,.5);text-transform:uppercase;letter-spacing:.1em}.node-san{font-size:1rem;font-weight:600;color:#f8fafc;font-family:JetBrains Mono,monospace}.node-desc{font-size:.65rem;color:hsla(0,0%,100%,.6);text-align:center;max-width:80px;line-height:1.2}.node-cab-badge{margin-top:4px;padding:2px 6px;background:rgba(34,197,94,.2);border:1px solid rgba(34,197,94,.4);border-radius:var(--radius-sm);font-size:.6rem;font-weight:600;color:#86efac}.chain-connector{font-size:1.2rem;color:rgba(139,92,246,.6);font-weight:700}.threat-chain-summary{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);margin-top:var(--spacing-md);padding-top:var(--spacing-sm);border-top:1px solid rgba(139,92,246,.2)}.forced-badge{padding:2px 8px;background:linear-gradient(135deg,rgba(239,68,68,.3),rgba(185,28,28,.2));border:1px solid rgba(239,68,68,.5);border-radius:var(--radius-sm);font-size:.7rem;font-weight:600;color:#fca5a5;text-transform:uppercase;letter-spacing:.05em}.chain-ends{font-size:.75rem;color:hsla(0,0%,100%,.6)}.opponent-title{display:flex;align-items:center;gap:var(--spacing-sm);color:#c084fc}.opp-icon{font-size:.9rem}.analysis-move-chip.opponent-move{background:rgba(168,85,247,.1);border:1px solid rgba(168,85,247,.3);color:#e9d5ff}.analysis-move-chip.opponent-move:hover{background:rgba(168,85,247,.2);border-color:rgba(168,85,247,.5);transform:translateY(-1px)}.analysis-move-chip.opponent-move.level-1{background:linear-gradient(135deg,hsla(0,91%,71%,.15),rgba(239,68,68,.1));border-color:hsla(0,91%,71%,.4);color:#fca5a5}.analysis-move-chip.opponent-move.level-2{background:linear-gradient(135deg,rgba(251,146,60,.15),rgba(234,88,12,.1));border-color:rgba(251,146,60,.4);color:#fed7aa}.analysis-move-chip.opponent-move.level-3{background:linear-gradient(135deg,rgba(250,204,21,.12),rgba(202,138,4,.08));border-color:rgba(250,204,21,.3);color:#fef08a}.in-check-alert{margin-bottom:var(--spacing-md)}.in-check-banner{background:linear-gradient(135deg,rgba(239,68,68,.25),rgba(185,28,28,.15));border:1px solid rgba(239,68,68,.5);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);font-weight:600;color:#fca5a5;text-align:center;animation:pulse-glow 2s infinite}.opponent-threat-panel{margin-top:var(--spacing-md);background:linear-gradient(145deg,rgba(139,92,246,.08),rgba(15,23,42,.98));border:1px solid rgba(139,92,246,.3);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,.4),inset 0 0 0 1px rgba(139,92,246,.1),0 0 60px rgba(139,92,246,.08)}.opponent-threat-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);background:rgba(139,92,246,.1);border-bottom:1px solid rgba(139,92,246,.2)}.opponent-threat-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--text-color-light)}.opponent-threat-title .move-highlight{color:#c4b5fd;background:rgba(139,92,246,.2);padding:2px 8px;border-radius:var(--radius-sm);font-weight:var(--font-weight-bold)}.opponent-threat-level{background:var(--color-purple-600);color:var(--text-color-white);padding:4px 10px;border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold)}.opponent-threat-loading{padding:var(--spacing-lg);text-align:center;color:var(--text-color-muted);display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.opponent-threat-body,.opponent-threat-empty{padding:var(--spacing-md)}.opponent-threat-empty{color:var(--text-color-muted);font-size:var(--font-size-sm);text-align:center}.quick-defense-info{padding:var(--spacing-sm);background:rgba(139,92,246,.05);border-radius:var(--radius-md);border:1px dashed rgba(139,92,246,.2)}.threat-chain-viz{margin-bottom:var(--spacing-md);padding:var(--spacing-md);background:rgba(0,0,0,.2);border-radius:var(--radius-md);border:1px solid rgba(139,92,246,.1)}.chain-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-sm);font-weight:var(--font-weight-semibold);color:var(--text-color-light)}.chain-length{background:rgba(139,92,246,.2);color:#c4b5fd;padding:2px 8px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold)}.chain-nodes{display:flex;flex-direction:column;gap:var(--spacing-xs)}.chain-node{padding:var(--spacing-sm);background:rgba(139,92,246,.05);border:1px solid rgba(139,92,246,.15);border-radius:var(--radius-md);position:relative}.chain-node.terminal{background:linear-gradient(135deg,rgba(239,68,68,.1),rgba(139,92,246,.05));border-color:rgba(239,68,68,.3)}.chain-node-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:4px}.chain-node-san{color:var(--text-color-white);font-size:var(--font-size-md)}.chain-node-level,.chain-node-san{font-weight:var(--font-weight-bold)}.chain-node-level{padding:2px 6px;border-radius:var(--radius-sm);font-size:var(--font-size-xs)}.chain-node-level.level-1{background:hsla(0,91%,71%,.2);color:#fca5a5}.chain-node-level.level-2{background:rgba(251,146,60,.2);color:#fed7aa}.chain-node-level.level-3{background:rgba(250,204,21,.15);color:#fef08a}.chain-node-level.level-0{background:rgba(239,68,68,.3);color:#fca5a5}.chain-node-target{font-size:var(--font-size-sm);color:var(--color-yellow-300);margin-bottom:4px}.chain-node-desc{font-size:var(--font-size-xs);color:var(--text-color-muted);font-style:italic}.chain-cab-counts{display:flex;gap:6px;margin-top:6px}.cab-count{padding:2px 6px;border-radius:var(--radius-sm);font-size:10px;font-weight:var(--font-weight-bold)}.cab-count.capture{background:hsla(0,91%,71%,.2);color:#fca5a5}.cab-count.avoid{background:rgba(168,85,247,.2);color:#d8b4fe}.cab-count.block{background:rgba(59,130,246,.2);color:#93c5fd}.cab-count.tempo{background:rgba(251,191,36,.2);color:#fde68a}.chain-arrow{text-align:center;color:rgba(139,92,246,.5);font-size:var(--font-size-md);padding:4px 0}.chain-defenses-section{padding:var(--spacing-md);background:rgba(34,197,94,.03);border:1px solid rgba(34,197,94,.15);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.chain-defenses-title{font-weight:var(--font-weight-semibold);color:var(--color-green-300);margin-bottom:var(--spacing-sm);display:flex;align-items:center;gap:var(--spacing-xs)}.chain-defense-categories{display:flex;flex-direction:column;gap:var(--spacing-sm)}.chain-defense-category{display:flex;flex-direction:column;gap:6px}.chain-defense-type{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-color-light)}.chain-defense-type.capture{color:#f87171}.chain-defense-type.avoid{color:#a78bfa}.chain-defense-type.block{color:#60a5fa}.chain-defense-type.tempo{color:#fbbf24}.chain-defense-type.protect{color:#22d3ee}.chain-defense-type.deflect{color:#fbbf24}.chain-defense-type.pin-king{color:#a78bfa}.chain-defense-type.pin-material{color:#ec4899}.chain-defense-type.counter-attack{color:#22c55e}.chain-defense-moves{display:flex;flex-wrap:wrap;gap:6px;padding-left:var(--spacing-md)}.chain-def-chip{padding:4px 8px;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--text-color-white)}.chain-def-chip.capture{background:hsla(0,91%,71%,.2);border:1px solid hsla(0,91%,71%,.4)}.chain-def-chip.avoid{background:rgba(168,85,247,.2);border:1px solid rgba(168,85,247,.4)}.chain-def-chip.block{background:rgba(59,130,246,.2);border:1px solid rgba(59,130,246,.4)}.chain-def-chip.tempo{background:rgba(251,191,36,.2);border:1px solid rgba(251,191,36,.4)}.chain-def-chip.protect{background:rgba(6,182,212,.2);border:1px solid rgba(6,182,212,.4)}.chain-def-chip.deflect{background:rgba(251,191,36,.2);border:1px solid rgba(251,191,36,.4)}.chain-def-chip.pin-king{background:rgba(168,85,247,.2);border:1px solid rgba(168,85,247,.4)}.chain-def-chip.pin-material{background:rgba(236,72,153,.2);border:1px solid rgba(236,72,153,.4)}.chain-def-chip.counter-attack{background:rgba(34,197,94,.2);border:1px solid rgba(34,197,94,.4)}.chain-def-more{font-size:var(--font-size-xs);color:var(--text-color-muted);padding:4px 6px}.chain-summary{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background:rgba(0,0,0,.2);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.chain-forced{font-weight:var(--font-weight-bold)}.chain-forced.yes{color:#f87171}.chain-forced.no{color:#22c55e}.chain-ends-in{color:var(--text-color-muted)}.hover-hint{font-size:10px;margin-left:4px;opacity:0;transition:opacity .2s ease;color:hsla(0,0%,100%,.5)}.analysis-move-chip.opponent-move:hover .hover-hint{opacity:1}.analysis-move-chip.opponent-move.hovered{background:rgba(139,92,246,.3)!important;border-color:rgba(139,92,246,.6)!important;transform:translateY(-2px);box-shadow:0 4px 12px rgba(139,92,246,.3)}.analysis-move-chip.clickable{cursor:pointer;transition:all .2s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.analysis-move-chip.clickable:hover{transform:translateY(-2px);filter:brightness(1.1)}.analysis-move-chip.clickable:active{transform:translateY(0);filter:brightness(.95)}.analysis-move-chip.clickable.selected{transform:scale(1.08);box-shadow:0 0 0 2px var(--accent-primary),0 4px 16px rgba(59,130,246,.4);z-index:10;position:relative}.analysis-move-chip.level-1.clickable.selected{box-shadow:0 0 0 2px #f87171,0 4px 16px hsla(0,91%,71%,.5)}.analysis-move-chip.level-2.clickable.selected{box-shadow:0 0 0 2px #fb923c,0 4px 16px rgba(251,146,60,.5)}.analysis-move-chip.level-3.clickable.selected{box-shadow:0 0 0 2px #fbbf24,0 4px 16px rgba(251,191,36,.5)}.analysis-move-chip.level-4.clickable.selected{box-shadow:0 0 0 2px #a78bfa,0 4px 16px rgba(167,139,250,.5)}.analysis-move-chip.level-5.clickable.selected{box-shadow:0 0 0 2px #8b5cf6,0 4px 16px rgba(139,92,246,.5)}.analysis-move-chip.danger.clickable.selected{box-shadow:0 0 0 2px #ef4444,0 4px 16px rgba(239,68,68,.5)}.analysis-move-chip.warning.clickable.selected{box-shadow:0 0 0 2px #f59e0b,0 4px 16px rgba(245,158,11,.5)}.analysis-move-chip.opponent-move.clickable.selected{box-shadow:0 0 0 2px #a855f7,0 4px 16px rgba(168,85,247,.5)}.detail-value.level-badge{padding:2px 8px;border-radius:var(--radius-sm);font-weight:600;font-size:.85em}.detail-value.level-badge.level-1{background:hsla(0,91%,71%,.2);color:#f87171}.detail-value.level-badge.level-2{background:rgba(251,146,60,.2);color:#fb923c}.detail-value.level-badge.level-3{background:rgba(251,191,36,.2);color:#fbbf24}.detail-value.level-badge.level-4{background:rgba(167,139,250,.2);color:#a78bfa}.detail-value.level-badge.level-5{background:rgba(139,92,246,.2);color:#8b5cf6}.relationships-page{min-height:100vh;background:linear-gradient(145deg,#0a0e17,#0f1729 50%,#0a0e17);color:var(--text-primary)}.rel-header{background:linear-gradient(180deg,rgba(15,23,42,.9),rgba(10,14,23,.9));border-bottom:1px solid rgba(148,163,184,.1);padding:1.5rem 2rem}.rel-header-content{max-width:1600px;margin:0 auto}.rel-title{font-family:JetBrains Mono,SF Mono,monospace;font-size:1.75rem;font-weight:700;background:linear-gradient(135deg,#e2e8f0,#94a3b8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 .25rem}.rel-subtitle{font-size:.9rem;color:var(--text-muted);margin:0 0 .75rem}.back-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--accent-primary);text-decoration:none;font-size:.85rem;transition:color .2s ease}.back-link:hover{color:var(--accent-secondary)}.rel-main{padding:2rem;max-width:1600px;margin:0 auto}.rel-layout{display:grid;grid-template-columns:1fr auto 1fr;grid-gap:2rem;gap:2rem;align-items:start}.grid-container{background:linear-gradient(145deg,rgba(15,23,42,.8),rgba(10,14,23,.95));border-radius:12px;border:1px solid rgba(148,163,184,.1);overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.3)}.grid-container.white-side{border-left:3px solid hsla(0,0%,100%,.3)}.grid-container.black-side{border-left:3px solid rgba(30,30,30,.8)}.grid-header{padding:1rem 1.25rem;background:rgba(15,23,42,.6);border-bottom:1px solid rgba(148,163,184,.1)}.grid-title{font-family:JetBrains Mono,monospace;font-size:1.1rem;font-weight:600}.grid-title.white{color:#f8fafc}.grid-title.black{color:#94a3b8}.grid-levels{padding:.75rem}.level-row{margin-bottom:.5rem}.level-cell{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-radius:8px;cursor:pointer;transition:all .2s ease;background:rgba(30,41,59,.4);border:1px solid transparent}.level-cell.empty{opacity:.4;cursor:default}.level-cell.has-chains:hover{background:rgba(30,41,59,.8);border-color:rgba(148,163,184,.2)}.level-cell.selected{background:rgba(99,102,241,.2);border-color:rgba(99,102,241,.5)}.level-cell.king-target .level-name{color:#f87171}.level-cell.piece-target .level-name{color:#fbbf24}.level-name{font-size:.95rem;font-weight:700}.level-count,.level-name{font-family:JetBrains Mono,monospace}.level-count{font-size:.9rem;padding:.25rem .75rem;border-radius:12px;background:rgba(15,23,42,.6);color:var(--text-secondary);min-width:2rem;text-align:center}.level-cell.has-chains .level-count{background:rgba(99,102,241,.3);color:#c7d2fe}.chains-panel{margin-top:.5rem;padding:.75rem;background:rgba(15,23,42,.5);border-radius:8px;border:1px solid rgba(148,163,184,.1)}.chains-title{font-size:.75rem;color:var(--text-muted);margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid rgba(148,163,184,.1)}.chains-list{display:flex;flex-direction:column;gap:.35rem}.chain-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:6px;background:rgba(30,41,59,.5);cursor:pointer;transition:all .15s ease;font-size:.8rem}.chain-item:hover{background:rgba(99,102,241,.2)}.chain-item.expanded{background:rgba(99,102,241,.3);border:1px solid rgba(99,102,241,.5)}.chain-move{font-family:JetBrains Mono,monospace;font-weight:600;color:var(--text-primary)}.chain-arrow{color:var(--text-muted)}.chain-node{font-family:JetBrains Mono,monospace;color:var(--text-secondary);font-size:.75rem}.chain-more,.chains-overflow{color:var(--text-muted);font-style:italic}.chains-overflow{font-size:.75rem;text-align:center;padding:.5rem}.board-container{display:flex;flex-direction:column;align-items:center;gap:1rem}.board-controls{gap:.75rem}.control-btn{padding:.5rem 1rem;border-radius:6px;border:1px solid rgba(148,163,184,.2);background:rgba(30,41,59,.6);color:var(--text-secondary);font-size:.85rem;cursor:pointer;transition:all .2s ease}.control-btn:hover:not(:disabled){background:rgba(99,102,241,.3);border-color:rgba(99,102,241,.5);color:var(--text-primary)}.control-btn:disabled{opacity:.4;cursor:not-allowed}.position-info{display:flex;align-items:center;gap:1rem;font-size:.9rem}.turn-indicator{font-family:JetBrains Mono,monospace;color:var(--text-secondary)}.loading-indicator{color:var(--accent-primary);font-size:.8rem;animation:pulse-glow 1.5s ease-in-out infinite}.grid-loading-overlay{flex-direction:column;padding:2.5rem 1rem;gap:1.25rem}.chess-loader,.grid-loading-overlay{display:flex;align-items:center;justify-content:center}.chess-loader{position:relative;width:64px;height:64px}.loader-piece{font-size:2rem;animation:loader-float 2s ease-in-out infinite;filter:drop-shadow(0 0 12px rgba(99,102,241,.5));z-index:1}.loader-squares{position:absolute;inset:0;animation:loader-rotate 3s linear infinite}.loader-sq{position:absolute;width:10px;height:10px;border-radius:2px;animation:loader-sq-pulse 1.5s ease-in-out infinite}.loader-sq.sq-1{top:0;left:50%;transform:translateX(-50%);background:#f87171;animation-delay:0s}.loader-sq.sq-2{top:50%;right:0;transform:translateY(-50%);background:#fb923c;animation-delay:.375s}.loader-sq.sq-3{bottom:0;left:50%;transform:translateX(-50%);background:#6366f1;animation-delay:.75s}.loader-sq.sq-4{top:50%;left:0;transform:translateY(-50%);background:#34d399;animation-delay:1.125s}.loader-text{font-family:JetBrains Mono,monospace;font-size:.75rem;color:#94a3b8;letter-spacing:.05em;animation:pulse-glow 1.5s ease-in-out infinite}@keyframes loader-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes loader-rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes loader-sq-pulse{0%,to{opacity:.3;transform-origin:center;scale:.8}50%{opacity:1;scale:1.2}}@keyframes pulse-glow{0%,to{opacity:.6}50%{opacity:1}}.move-history-mini{display:flex;flex-wrap:wrap;gap:.5rem;max-width:400px;padding:.75rem;background:rgba(15,23,42,.5);border-radius:8px;font-size:.8rem}.history-move{font-family:JetBrains Mono,monospace;color:var(--text-secondary)}.move-number{color:var(--text-muted);margin-right:.25rem}.chain-detail-panel{margin-top:2rem;background:linear-gradient(145deg,rgba(15,23,42,.8),rgba(10,14,23,.95));border-radius:12px;border:1px solid rgba(99,102,241,.3);overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.3)}.chain-detail-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:rgba(99,102,241,.1);border-bottom:1px solid rgba(99,102,241,.2)}.chain-detail-title{font-size:1rem}.chain-detail-title,.chain-level-badge{font-family:JetBrains Mono,monospace;font-weight:600}.chain-level-badge{padding:.25rem .75rem;border-radius:12px;font-size:.8rem}.chain-level-badge.L1{background:rgba(239,68,68,.3);color:#fca5a5}.chain-level-badge.L2{background:rgba(251,146,60,.3);color:#fdba74}.chain-level-badge.L3{background:rgba(251,191,36,.3);color:#fcd34d}.chain-level-badge.L4{background:rgba(167,139,250,.3);color:#c4b5fd}.chain-level-badge.L5{background:rgba(139,92,246,.3);color:#a78bfa}.chain-level-badge.L6{background:rgba(99,102,241,.3);color:#a5b4fc}.chain-level-badge.L7{background:rgba(59,130,246,.3);color:#93c5fd}.chain-detail-body{padding:1.25rem}.paths-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:1rem;gap:1rem}.path-card{background:rgba(30,41,59,.5);border:1px solid rgba(148,163,184,.15);border-radius:10px;overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}.path-card:hover{border-color:rgba(99,102,241,.4);box-shadow:0 4px 16px rgba(0,0,0,.2)}.path-card-header{font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:600;color:var(--text-secondary);padding:.5rem .75rem;background:rgba(99,102,241,.1);border-bottom:1px solid rgba(148,163,184,.1)}.path-card-body{padding:.75rem}.path-squares{gap:.25rem}.path-squares,.square-step{display:flex;flex-direction:column;align-items:center}.square-box{font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:600;color:var(--text-primary);background:rgba(14,165,233,.15);border:1px solid rgba(14,165,233,.4);border-radius:6px;padding:.35rem .6rem;min-width:40px;text-align:center}.square-box.theoretical{background:rgba(234,179,8,.15);border-color:rgba(234,179,8,.5);color:#fcd34d;font-style:italic}.step-arrow{font-size:.85rem;color:var(--text-muted);line-height:1;margin:.15rem 0}.chain-flow{flex-wrap:wrap;margin-bottom:1rem}.chain-flow,.chain-flow-node{display:flex;align-items:center;gap:.5rem}.flow-node-box{display:flex;flex-direction:column;align-items:center;padding:.75rem 1rem;border-radius:8px;background:rgba(30,41,59,.6);border:1px solid rgba(148,163,184,.2);min-width:70px}.flow-node-box.L0{border-color:rgba(16,185,129,.5);background:rgba(16,185,129,.15)}.flow-node-box.L1{border-color:rgba(239,68,68,.5);background:rgba(239,68,68,.15)}.flow-node-box.L2{border-color:rgba(251,146,60,.5);background:rgba(251,146,60,.15)}.flow-node-box.L3{border-color:rgba(251,191,36,.5);background:rgba(251,191,36,.15)}.flow-node-box.L4{border-color:rgba(167,139,250,.5);background:rgba(167,139,250,.15)}.flow-node-box.L5{border-color:rgba(139,92,246,.5);background:rgba(139,92,246,.15)}.flow-node-box.L6{border-color:rgba(99,102,241,.5);background:rgba(99,102,241,.15)}.flow-node-box.L7{border-color:rgba(59,130,246,.5);background:rgba(59,130,246,.15)}.flow-san{font-size:.95rem;font-weight:600;color:var(--text-primary)}.flow-level,.flow-san{font-family:JetBrains Mono,monospace}.flow-level{font-size:.7rem;color:var(--text-muted);margin-top:.25rem}.flow-arrow{font-size:1.25rem;color:var(--text-muted)}.chain-meta{display:flex;gap:1.5rem;padding-top:1rem;border-top:1px solid rgba(148,163,184,.1)}.meta-item{display:flex;gap:.5rem;align-items:center}.meta-label{font-size:.8rem;color:var(--text-muted)}.meta-value{font-family:JetBrains Mono,monospace;font-size:.9rem;color:var(--text-secondary);padding:.25rem .5rem;background:rgba(30,41,59,.5);border-radius:4px}.meta-value.target{background:rgba(239,68,68,.2);color:#fca5a5}.relationships-legend{margin-top:2rem;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1.5rem;gap:1.5rem;padding:1.25rem;background:rgba(15,23,42,.5);border-radius:12px;border:1px solid rgba(148,163,184,.1)}.legend-section{padding:0 1rem}.legend-section:not(:last-child){border-right:1px solid rgba(148,163,184,.1)}.legend-title{display:block;font-size:.85rem;font-weight:600;color:var(--text-secondary);margin-bottom:.75rem}.legend-items{display:flex;flex-direction:column;gap:.4rem}.legend-item{font-family:JetBrains Mono,monospace;font-size:.75rem;padding:.3rem .6rem;border-radius:4px}.legend-item.L1{background:rgba(239,68,68,.15);color:#fca5a5}.legend-item.L2{background:rgba(251,146,60,.15);color:#fdba74}.legend-item.L3{background:rgba(251,191,36,.15);color:#fcd34d}.legend-item.L4{background:rgba(167,139,250,.15);color:#c4b5fd}.legend-item.L5{background:rgba(139,92,246,.15);color:#a78bfa}.legend-item.L6{background:rgba(99,102,241,.15);color:#a5b4fc}.legend-item.L7{background:rgba(59,130,246,.15);color:#93c5fd}.legend-concept{font-size:.8rem;color:var(--text-muted);line-height:1.5;margin:0}.relationship-group{margin-bottom:.75rem}.relationship-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:rgba(30,41,59,.4);border:1px solid rgba(148,163,184,.2);border-radius:8px;cursor:pointer;transition:all .2s ease}.relationship-header:hover{background:rgba(30,41,59,.6);border-color:rgba(148,163,184,.3)}.relationship-header.expanded{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent}.rel-piece{font-family:JetBrains Mono,monospace;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:.25rem}.piece-symbol{font-size:1.1rem;line-height:1}.rel-arrow{color:var(--text-muted);font-size:.9rem}.rel-target{font-family:JetBrains Mono,monospace;font-weight:600;color:#fca5a5}.rel-target-piece{font-weight:400;font-size:.75rem;color:#94a3b8}.rel-path-count{font-size:.75rem;color:var(--text-muted);margin-left:.25rem}.expand-icon{margin-left:auto;color:var(--text-muted);font-size:.8rem}.paths-detail{background:rgba(15,23,42,.6);border:1px solid rgba(148,163,184,.2);border-top:none;border-bottom-left-radius:8px;border-bottom-right-radius:8px;padding:1rem}.path-item{margin-bottom:1rem;padding:.75rem;background:rgba(30,41,59,.3);border:1px solid rgba(148,163,184,.15);border-radius:6px}.path-item:last-child{margin-bottom:0}.path-header{font-size:.75rem;color:var(--text-muted);margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}.path-via{font-family:JetBrains Mono,monospace;color:var(--text-secondary)}.move-path,.square-path{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem;margin-bottom:.5rem;font-size:.85rem}.move-path{margin-bottom:0}.path-label{font-size:.75rem;color:var(--text-muted);margin-right:.5rem;min-width:55px}.move-node-group,.square-node-group{display:flex;align-items:center;gap:.25rem}.move-node,.square-node{font-family:JetBrains Mono,monospace;padding:.25rem .5rem;background:rgba(30,41,59,.6);border:1px solid rgba(148,163,184,.2);border-radius:4px;color:var(--text-secondary);font-size:.8rem}.square-node.square-start{border-color:rgba(99,102,241,.6);background:rgba(99,102,241,.15);color:#a5b4fc}.square-node.square-obstruction{border-color:rgba(245,158,11,.6);background:rgba(245,158,11,.15);color:#fcd34d}.square-node.square-enemy-capture{border-color:rgba(245,158,11,.7);background:rgba(245,158,11,.2);color:#fcd34d}.square-node.square-intermediate{border-color:rgba(14,165,233,.5);background:rgba(14,165,233,.12);color:#7dd3fc}.square-node.square-check,.square-node.square-target{border-color:rgba(16,185,129,.6);background:rgba(16,185,129,.15);color:#6ee7b7}.move-node.move-theoretical,.square-node.square-theoretical{border-color:rgba(234,179,8,.5);background:rgba(234,179,8,.12);color:#fde047}.move-node.move-start{border-color:rgba(99,102,241,.6);background:rgba(99,102,241,.15);color:#a5b4fc;font-size:.6rem;padding:.2rem .4rem}.move-node.move-clearing{border-color:rgba(245,158,11,.6);background:rgba(245,158,11,.15);color:#fcd34d;font-style:italic}.move-node.move-move{border-color:rgba(14,165,233,.5);background:rgba(14,165,233,.12);color:#7dd3fc}.move-node.move-capture{border-color:rgba(16,185,129,.6);background:rgba(16,185,129,.15);color:#6ee7b7}.node-arrow{color:var(--text-muted);font-size:.75rem}.paths-overflow{text-align:center;padding:.5rem;color:var(--text-muted);font-size:.8rem}.obstructions-section{margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(148,163,184,.1)}.obstruction-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:4px;margin-bottom:.4rem;font-size:.8rem}.obstruction-item:last-child{margin-bottom:0}.obstruction-square{font-family:JetBrains Mono,monospace;font-weight:600;color:#fca5a5}.obstruction-piece{font-family:JetBrains Mono,monospace;padding:.2rem .4rem;border-radius:3px;font-size:.75rem}.obstruction-piece.own-piece{background:rgba(59,130,246,.2);border:1px solid rgba(59,130,246,.4);color:#93c5fd}.obstruction-piece.enemy-piece{background:rgba(239,68,68,.2);border:1px solid rgba(239,68,68,.4);color:#fca5a5}.clearing-moves{font-family:JetBrains Mono,monospace;font-size:.7rem;color:var(--text-muted);margin-left:auto}@media (max-width:1400px){.rel-layout{grid-template-columns:1fr;gap:1.5rem}.board-container{order:-1}.grid-container{max-width:500px;margin:0 auto}.relationships-legend{grid-template-columns:1fr}.legend-section{border-right:none;border-bottom:1px solid rgba(148,163,184,.1);padding-bottom:1rem;margin-bottom:0}.legend-section:last-child{border-bottom:none;padding-bottom:0}}.fen-toggle-btn{font-size:.75rem;padding:.35rem .6rem;background:rgba(99,102,241,.15);border:1px solid rgba(99,102,241,.3);color:#a5b4fc;transition:all .2s ease}.fen-toggle-btn:hover{background:rgba(99,102,241,.25);border-color:rgba(99,102,241,.5);color:#c7d2fe}.fen-input-container{display:flex;flex-direction:column;gap:.5rem;padding:.5rem;background:rgba(15,23,42,.6);border:1px solid rgba(148,163,184,.15);border-radius:8px;min-width:280px}.fen-input-wrapper{display:flex;gap:.35rem;align-items:center}.fen-input{flex:1 1;padding:.5rem .75rem;background:rgba(30,41,59,.8);border:1px solid rgba(148,163,184,.2);border-radius:6px;color:#e2e8f0;font-size:.8rem;font-family:SF Mono,Monaco,Cascadia Code,monospace;transition:all .2s ease}.fen-input:focus{outline:none;border-color:rgba(99,102,241,.5);box-shadow:0 0 0 2px rgba(99,102,241,.15)}.fen-input::placeholder{color:#64748b}.fen-input-error{border-color:rgba(239,68,68,.5)}.fen-input-error:focus{border-color:rgba(239,68,68,.7);box-shadow:0 0 0 2px rgba(239,68,68,.15)}.fen-apply-btn{padding:.5rem .75rem;background:rgba(16,185,129,.2);border:1px solid rgba(16,185,129,.3);border-radius:6px;color:#6ee7b7;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s ease}.fen-apply-btn:hover{background:rgba(16,185,129,.3);border-color:rgba(16,185,129,.5)}.fen-cancel-btn{padding:.35rem .5rem;background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.25);border-radius:6px;color:#fca5a5;font-size:1rem;line-height:1;cursor:pointer;transition:all .2s ease}.fen-cancel-btn:hover{background:rgba(239,68,68,.25);border-color:rgba(239,68,68,.4)}.fen-error{font-size:.7rem;color:#f87171;padding-left:.25rem}.fen-copy-btn{padding:.35rem .6rem;background:rgba(148,163,184,.1);border:1px solid rgba(148,163,184,.2);border-radius:4px;color:#94a3b8;font-size:.7rem;cursor:pointer;transition:all .2s ease;align-self:flex-start}.fen-copy-btn:hover{background:rgba(148,163,184,.2);color:#cbd5e1}.fen-demos-btn{padding:.5rem .6rem;background:rgba(99,102,241,.15);border:1px solid rgba(99,102,241,.3);border-radius:6px;color:#a5b4fc;font-size:.72rem;font-weight:500;white-space:nowrap;cursor:pointer;transition:all .2s ease}.fen-demos-btn.active,.fen-demos-btn:hover{background:rgba(99,102,241,.28);border-color:rgba(99,102,241,.5);color:#c7d2fe}.fen-demos-panel{gap:.5rem;max-height:320px;overflow-y:auto;padding:.25rem;border-top:1px solid rgba(148,163,184,.12)}.fen-demos-group,.fen-demos-panel{display:flex;flex-direction:column}.fen-demos-group{gap:.2rem}.fen-demos-category{font-size:.62rem;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:#818cf8;padding:.25rem .25rem .1rem}.fen-demo-item{display:flex;flex-direction:column;align-items:flex-start;gap:.05rem;text-align:left;width:100%;padding:.35rem .5rem;background:rgba(30,41,59,.6);border:1px solid rgba(148,163,184,.12);border-radius:5px;cursor:pointer;transition:all .15s ease}.fen-demo-item:hover{background:rgba(99,102,241,.15);border-color:rgba(99,102,241,.4)}.fen-demo-label{font-size:.74rem;color:#e2e8f0;font-weight:600}.fen-demo-note{font-size:.64rem;color:#94a3b8}.board-controls,.header-controls{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.board-controls{margin-bottom:.75rem}.delta-prompt{text-align:center;color:var(--text-muted);font-size:.85rem;padding:var(--spacing-lg) var(--spacing-md);font-style:italic}.delta-move-selector{display:flex;flex-wrap:wrap;gap:4px;padding:var(--spacing-sm) 0;max-height:120px;overflow-y:auto;margin-bottom:var(--spacing-sm)}.delta-move-chip{padding:3px 8px;border-radius:var(--radius-sm);font-size:.72rem;font-family:var(--font-mono);cursor:pointer;border:1px solid rgba(148,163,184,.15);background:var(--bg-secondary);color:var(--text-secondary);transition:var(--transition-fast)}.delta-move-chip:hover{background:var(--bg-hover);color:var(--text-primary)}.delta-move-chip.selected{background:rgba(59,130,246,.2);border-color:rgba(59,130,246,.5);color:var(--text-accent)}.delta-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background:linear-gradient(145deg,rgba(30,41,59,.9),rgba(15,23,42,.95));border:1px solid rgba(59,130,246,.2);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.delta-header-move{font-size:.95rem;color:var(--text-primary)}.delta-header-move,.delta-score{font-family:var(--font-mono);font-weight:600}.delta-score{padding:3px 10px;border-radius:12px;font-size:.75rem}.delta-score.positive{background:rgba(16,185,129,.15);color:#34d399;border:1px solid rgba(16,185,129,.3)}.delta-score.negative{background:rgba(239,68,68,.15);color:#f87171;border:1px solid rgba(239,68,68,.3)}.delta-score.neutral{background:rgba(148,163,184,.1);color:var(--text-secondary);border:1px solid rgba(148,163,184,.2)}.delta-phase-note{font-size:.72rem;font-style:italic;color:var(--text-muted);padding:2px 0 var(--spacing-sm)}.delta-section{margin-bottom:var(--spacing-md)}.delta-section-title{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--spacing-xs);display:flex;align-items:center;gap:6px}.delta-section-title.upgrade{color:#34d399}.delta-section-title.downgrade{color:#f87171}.delta-section-title.created{color:#22d3ee}.delta-section-title.severed{color:#94a3b8}.delta-section-count{font-size:.65rem;padding:1px 6px;border-radius:8px;background:rgba(148,163,184,.1)}.delta-entry{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border-radius:var(--radius-sm);margin-bottom:2px;font-size:.75rem;font-family:var(--font-mono);transition:var(--transition-fast)}.delta-entry:hover{background:var(--bg-hover)}.delta-entry.upgrade{border-left:2px solid rgba(16,185,129,.5)}.delta-entry.downgrade{border-left:2px solid rgba(239,68,68,.5)}.delta-entry.created{border-left:2px solid rgba(6,182,212,.5)}.delta-entry.severed{border-left:2px solid rgba(148,163,184,.3)}.delta-entry.severed .delta-entry-label{text-decoration:line-through;opacity:.6}.delta-entry-label{display:flex;align-items:center;gap:4px;color:var(--text-secondary)}.delta-entry-icon{font-size:.7rem}.delta-entry-piece{color:var(--text-primary);font-weight:500}.delta-entry-arrow{color:var(--text-muted);font-size:.65rem}.delta-entry-target{color:var(--text-secondary)}.delta-king-target{color:#fbbf24}.delta-level-change{text-align:right;font-weight:600;font-size:.72rem;min-width:60px}.delta-level-change.improved{color:#34d399}.delta-level-change.worsened{color:#f87171}.delta-level-change.new{color:#22d3ee}.delta-level-change.lost{color:#94a3b8}.delta-path-change{font-size:.65rem;color:var(--text-muted);margin-left:4px}.convergence-meter{margin-top:var(--spacing-md);padding:var(--spacing-md);border:1px solid rgba(59,130,246,.2);border-radius:var(--radius-md);background:linear-gradient(145deg,rgba(30,41,59,.6),rgba(15,23,42,.8))}.convergence-title{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:var(--spacing-sm);display:flex;align-items:center;gap:6px}.convergence-body{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.convergence-levels{font-family:var(--font-mono);font-size:.8rem;color:var(--text-primary)}.convergence-paths{font-size:.72rem;color:var(--text-muted)}.convergence-health{padding:2px 8px;border-radius:10px;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.convergence-health.healthy{background:rgba(16,185,129,.15);color:#34d399;border:1px solid rgba(16,185,129,.3)}.convergence-health.cautious{background:rgba(245,158,11,.15);color:#fbbf24;border:1px solid rgba(245,158,11,.3)}.convergence-health.fragile{background:rgba(239,68,68,.15);color:#f87171;border:1px solid rgba(239,68,68,.3)}.convergence-health.stagnant{background:rgba(148,163,184,.1);color:#94a3b8;border:1px solid rgba(148,163,184,.2)}.delta-loading{text-align:center;padding:var(--spacing-lg);color:var(--text-muted);font-size:.8rem;display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.delta-empty-section{font-size:.75rem;color:var(--text-muted);font-style:italic;padding:4px 8px}.selected-piece-info{display:flex;align-items:center;gap:8px;padding:6px 12px;background:rgba(99,102,241,.15);border:1px solid rgba(99,102,241,.3);border-radius:6px;font-size:.8rem;color:#c4b5fd;margin-top:8px}.clear-selection-btn{background:rgba(99,102,241,.2);border:1px solid rgba(99,102,241,.4);color:#a5b4fc;padding:2px 8px;border-radius:4px;font-size:.7rem;cursor:pointer;margin-left:auto}.clear-selection-btn:hover{background:rgba(99,102,241,.35)}