*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f1117;--surface: #1a1d27;--surface2: #22263a;--border: #2e3350;--accent: #4f8ef7;--accent2: #7c5df7;--green: #3ecf8e;--red: #f7565a;--amber: #f7a94f;--text: #e2e6f0;--text-muted: #7a82a6;--radius: 8px;--font: "Inter", system-ui, sans-serif}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;min-height:100vh}.app{max-width:1280px;margin:0 auto;padding:24px 16px}.app-header{margin-bottom:24px}.app-header h1{font-size:28px;font-weight:700;color:var(--accent);letter-spacing:-.5px}.app-header .subtitle{color:var(--text-muted);font-size:13px;margin-top:4px}.app-footer{margin-top:32px;padding-top:16px;border-top:1px solid var(--border)}.app-footer p{color:var(--text-muted);font-size:13px}.app-footer a{color:var(--accent)}.tab-nav{display:flex;gap:4px;margin-bottom:20px;border-bottom:1px solid var(--border);padding-bottom:0}.tab-btn{padding:8px 20px;background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.matrix-tab{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}@media (max-width: 900px){.matrix-tab{grid-template-columns:1fr}}.ipd-tab{display:grid;grid-template-columns:1fr}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.panel h2{font-size:16px;font-weight:600;margin-bottom:16px;color:var(--text);border-bottom:1px solid var(--border);padding-bottom:10px}.editor-controls{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:12px;align-items:center}.preset-selector,.size-controls{display:flex;align-items:center;gap:8px}.preset-selector label,.size-controls label{color:var(--text-muted);font-size:12px;white-space:nowrap}select,input[type=number]{background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:4px 8px;font-size:13px;outline:none}select:focus,input[type=number]:focus{border-color:var(--accent)}.matrix-hint{font-size:11px;color:var(--text-muted);margin-bottom:10px}.matrix-hint strong{color:var(--text)}.matrix-grid{gap:2px;width:100%;overflow-x:auto}.matrix-cell{border-radius:4px;padding:6px;min-width:60px}.matrix-cell.header{background:var(--surface2)}.matrix-cell.corner{display:flex;align-items:center;justify-content:center}.matrix-cell.corner span{font-size:10px;color:var(--text-muted);text-align:center}.matrix-cell.col-header,.matrix-cell.row-header{display:flex;align-items:center;justify-content:center}.matrix-cell.data-cell{background:var(--bg);border:1px solid var(--border)}.strategy-label{background:transparent;border:none;border-bottom:1px dashed var(--border);color:var(--text);width:100%;text-align:center;font-weight:600;font-size:12px;padding:2px 4px;outline:none}.strategy-label:focus{border-bottom-color:var(--accent)}.payoff-pair{display:flex;align-items:center;gap:2px;justify-content:center}.payoff-input{width:44px;padding:3px 4px;text-align:center;font-size:13px;border-radius:3px}.row-payoff{border-color:var(--accent)!important}.col-payoff{border-color:var(--accent2)!important}.comma{color:var(--text-muted)}.result-section{margin-bottom:20px}.result-section h3{font-size:14px;font-weight:600;color:var(--accent);margin-bottom:10px}.no-result{color:var(--text-muted);font-style:italic;font-size:13px}.ne-list{list-style:none;display:flex;flex-direction:column;gap:6px}.ne-item{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ne-badge{background:var(--accent);color:#fff;border-radius:3px;padding:1px 6px;font-size:11px;font-weight:700;flex-shrink:0}.ne-strategies{font-weight:600}.ne-payoffs{color:var(--text-muted);font-size:12px}.mixed-ne{display:flex;flex-direction:column;gap:8px}.mixed-row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.player-label{font-weight:600;color:var(--accent);min-width:80px}.expected-payoff{color:var(--text-muted);font-size:12px}.dominance-block{margin-top:12px}.dominance-block h4{font-size:13px;font-weight:600;color:var(--text-muted);margin-bottom:8px}.dominated-list{list-style:none;display:flex;flex-direction:column;gap:4px}.dominated-list li{display:flex;align-items:center;gap:6px;font-size:13px}.player-badge{font-size:10px;font-weight:700;padding:1px 5px;border-radius:3px;text-transform:uppercase}.player-badge.row{background:var(--accent);color:#fff}.player-badge.col{background:var(--accent2);color:#fff}.surviving{margin-top:6px;font-size:12px;color:var(--green)}.tournament-controls{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:20px;align-items:center}.tournament-controls label{display:flex;align-items:center;gap:8px;color:var(--text-muted)}.tournament-controls input[type=number]{width:80px}.run-btn{padding:8px 20px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s}.run-btn:hover{opacity:.85}.run-btn:disabled{opacity:.5;cursor:not-allowed}.payoff-legend{margin-bottom:20px}.payoff-legend h4{font-size:13px;color:var(--text-muted);margin-bottom:8px}.legend-table{border-collapse:collapse;font-size:12px}.legend-table th,.legend-table td{border:1px solid var(--border);padding:5px 10px;text-align:center}.legend-table th{background:var(--surface2)}.tournament-results h3{font-size:15px;font-weight:600;color:var(--accent);margin-bottom:12px}.results-table{width:100%;border-collapse:collapse;font-size:13px;margin-bottom:16px}.results-table th{background:var(--surface2);padding:8px 12px;text-align:left;font-weight:600;color:var(--text-muted);border-bottom:1px solid var(--border)}.results-table td{padding:8px 12px;border-bottom:1px solid var(--border)}.results-table tbody tr:hover{background:var(--surface2)}.winner-row td{color:var(--green)}.winner-badge{margin-left:4px}.match-details{margin-top:16px}.match-details summary{cursor:pointer;color:var(--text-muted);font-size:13px;padding:6px 0}.match-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:8px}.match-table th,.match-table td{border:1px solid var(--border);padding:5px 10px;text-align:center}.match-table th{background:var(--surface2)}.win{color:var(--green);font-weight:600}.loss{color:var(--red)}.draw{color:var(--amber)}.region-nav{display:flex;gap:8px;margin-bottom:16px}.region-btn{padding:6px 14px;border:1px solid var(--border, #ccc);background:transparent;border-radius:6px;cursor:pointer}.region-btn.active{background:#2e6bc4;color:#fff;border-color:#2e6bc4}.poles-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}@media (max-width: 900px){.poles-layout{grid-template-columns:1fr}}.profile-bar{display:flex;width:100%;border-radius:3px;overflow:hidden;background:#eee2}.profile-seg{height:100%}.holon-row{display:flex;align-items:center;gap:8px;padding:3px 0;flex-wrap:wrap}.holon-toggle{background:none;border:none;cursor:pointer;width:20px}.holon-name{font-weight:600}.level-chip{font-size:11px;padding:1px 6px;border-radius:8px;background:#8882}.illustrative-badge{font-size:11px;padding:1px 6px;border-radius:8px;background:#e88fb733;color:#b0568a}.coherence-badge{font-size:11px;font-variant-numeric:tabular-nums;opacity:.8}.holon-bar-row{margin:2px 0 6px}.holon-sources{font-size:12px;opacity:.85;margin-bottom:6px}.holon-sources ul{margin:4px 0 4px 18px}.poles-hint{font-size:13px;opacity:.8}.pole-card{border:1px solid #8883;border-radius:8px;padding:10px;margin-bottom:10px}.pole-card.selected{border-color:#2e6bc4;box-shadow:0 0 0 1px #2e6bc4}.pole-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.pole-power{margin-left:auto;font-size:12px;opacity:.8}.pole-members{font-size:12px;opacity:.8;margin-top:6px}.pole-game{margin-top:16px;border-top:1px solid #8883;padding-top:12px}.pole-game-meta{font-size:13px;opacity:.85}.pole-game-matrix{border-collapse:collapse;margin:10px 0}.pole-game-matrix th,.pole-game-matrix td{border:1px solid #8884;padding:6px 12px;text-align:center}.methodology{margin-top:20px;font-size:14px}.methodology summary{cursor:pointer;font-weight:600}.models-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.models-tab-btn{padding:5px 12px;border:1px solid #8884;background:transparent;border-radius:6px;cursor:pointer}.models-tab-btn.active{background:#00808a;color:#fff;border-color:#00808a}.models-table-wrap{overflow-x:auto}.models-table{border-collapse:collapse;font-size:13px}.models-table th,.models-table td{border:1px solid #8883;padding:4px 10px;vertical-align:top;min-width:110px}.palette-chip{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;border:1px solid #8886;vertical-align:middle}.models-credit{font-size:13px;opacity:.85;margin:8px 0 2px}
