:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{width:100%;min-height:100vh;margin:0;padding:0}:root{--bg-primary:#fff;--bg-secondary:#f8f9fa;--bg-tertiary:#f1f3f5;--bg-code:#1e1e1e;--text-main:#111;--text-muted:#555;--text-subtle:#777;--text-inverse:#fff;--accent-green:#1b5e20;--accent-green-hover:#2e7d32;--accent-green-light:#e8f5e9;--accent-blue:#0d47a1;--accent-blue-hover:#1565c0;--accent-blue-light:#e3f2fd;--border-color:#d1d5db;--border-dark:#111;--font-family:"Comic Sans MS", "Comic Sans", "Comic Neue", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}*{box-sizing:border-box;border-radius:0;margin:0;padding:0}.btn,button.btn,button.segmented-btn,button.toggle-btn-compact,button.remove-tag-btn,.delete-room-btn{border-radius:4px!important}.disc,.disc-dot-large,.last-move-dot,.cell.valid-move:after,.help-btn{border-radius:50%!important}.help-tooltip,.copy-url-tooltip{border-radius:6px!important}body,button,input,select,textarea,h1,h2,h3,h4,h5,h6{font-family:var(--font-family)}body{background-color:var(--bg-secondary);color:var(--text-main);-webkit-font-smoothing:antialiased;line-height:1.5}.app-container,.lobby-container,.game-container,.history-page-container{background-color:var(--bg-secondary);flex-direction:column;min-height:100vh;display:flex}.app-header{background-color:var(--bg-primary);border-bottom:2px solid var(--border-dark);justify-content:space-between;align-items:center;height:60px;padding:0 24px;display:flex}.logo{letter-spacing:.5px;color:var(--text-main);align-items:center;gap:10px;font-size:1.25rem;font-weight:800;display:flex}.logo-text .highlight{color:var(--accent-green)}.proxy-info-banner-simple{background-color:var(--accent-green-light);border-bottom:1px solid var(--accent-green);color:var(--accent-green);text-align:center;padding:12px 24px;font-size:.85rem}.proxy-banner-content{flex-direction:column;justify-content:center;align-items:center;gap:6px;max-width:1200px;margin:0 auto;display:flex}.proxy-banner-title{text-align:center;font-size:.875rem}.proxy-banner-commands{color:#111;text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;font-size:.825rem;display:flex}.proxy-banner-commands code{background-color:var(--bg-code);color:#a5d6a7;font-family:var(--font-mono);border-radius:4px;padding:2px 6px;font-size:.8rem}.lobby-main{flex:1;padding:24px}.lobby-three-column-layout{grid-template-columns:repeat(3,1fr);align-items:start;gap:20px;display:grid}@media (width<=1024px){.lobby-three-column-layout{grid-template-columns:1fr}}.lobby-column{flex-direction:column;gap:20px;display:flex}.card{background-color:var(--bg-primary);border:1px solid var(--border-color);padding:20px;box-shadow:none!important}.card h2{color:var(--text-main);border-bottom:2px solid var(--accent-green);align-items:center;gap:8px;margin-bottom:6px;padding-bottom:6px;font-size:1.1rem;font-weight:700;display:flex}.help-btn-wrapper{align-items:center;display:inline-flex;position:relative}.help-btn{border:1px solid var(--border-dark);background-color:var(--bg-tertiary);width:18px;height:18px;color:var(--text-main);cursor:pointer;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;line-height:1;display:inline-flex}.help-tooltip{visibility:hidden;opacity:0;color:#111;white-space:normal;z-index:200;pointer-events:none;background-color:#fffde7;border:1px solid #111;width:230px;padding:8px 12px;font-size:.8rem;font-weight:500;line-height:1.4;transition:opacity .15s,visibility .15s;position:absolute;bottom:130%;left:50%;transform:translate(-50%)}.help-tooltip:after{content:"";border:6px solid #0000;border-top-color:#111;position:absolute;top:100%;left:50%;transform:translate(-50%)}.help-btn-wrapper:hover .help-tooltip{visibility:visible;opacity:1}.copy-btn-tooltip-wrapper{display:inline-flex;position:relative}.copy-url-tooltip{visibility:hidden;opacity:0;color:#111;font-size:.775rem;font-weight:600;font-family:var(--font-mono);white-space:nowrap;z-index:250;pointer-events:none;background-color:#fffde7;border:1px solid #111;padding:4px 8px;transition:opacity .15s,visibility .15s;position:absolute;bottom:125%;left:50%;transform:translate(-50%);box-shadow:none!important}.copy-url-tooltip:after{content:"";border:5px solid #0000;border-top-color:#111;position:absolute;top:100%;left:50%;transform:translate(-50%)}.copy-btn-tooltip-wrapper:hover .copy-url-tooltip{visibility:visible;opacity:1}.sub-desc-text{color:var(--text-muted);margin-bottom:12px;font-size:.825rem}.btn{cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-size:.875rem;font-weight:600;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex;box-shadow:none!important}.btn-primary{background-color:var(--accent-green);color:var(--text-inverse);border-color:var(--accent-green)}.btn-primary:hover{background-color:var(--accent-green-hover);border-color:var(--accent-green-hover)}.btn-blue-copy,.copy-url-btn,.btn-copy-blue{background-color:var(--accent-blue)!important;color:var(--text-inverse)!important;border-color:var(--accent-blue)!important;text-wrap:balance!important;white-space:normal!important}.btn-blue-copy:hover,.copy-url-btn:hover,.btn-copy-blue:hover{background-color:var(--accent-blue-hover)!important;border-color:var(--accent-blue-hover)!important}.btn-outline{border-color:var(--border-color);color:var(--text-main);background-color:#0000}.btn-outline:hover{background-color:var(--bg-tertiary);border-color:var(--border-dark)}.btn-small{padding:4px 10px;font-size:.8rem}.btn-full{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.delete-room-btn{border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:3px 8px;font-size:.85rem;font-weight:700;transition:color .15s,border-color .15s,background-color .15s;display:inline-flex;border-radius:4px!important}.delete-room-btn:hover{color:#d32f2f!important;background-color:#ffebee!important;border-color:#d32f2f!important}.room-header-actions{align-items:center;gap:6px;display:flex}.segmented-control{background-color:var(--bg-tertiary);border:1px solid var(--border-color);gap:3px;padding:3px;display:flex}.segmented-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:1;padding:6px 12px;font-size:.825rem;font-weight:600}.segmented-btn.active{background-color:var(--accent-green);color:var(--text-inverse)}.input-group{margin-bottom:14px}.input-group label{color:var(--text-main);margin-bottom:4px;font-size:.825rem;font-weight:600;display:block}.input-group input[type=text],.input-group input[type=number]{border:1px solid var(--border-color);background-color:var(--bg-primary);width:100%;color:var(--text-main);outline:none;padding:8px 12px;font-size:.9rem}.input-group input:focus{border-color:var(--accent-green)}.tags-flex{flex-wrap:wrap;gap:6px;display:flex}.client-tag,.ai-tag{border:1px solid var(--border-color);background-color:var(--bg-tertiary);color:var(--text-main);align-items:center;gap:4px;padding:3px 8px;font-size:.775rem;font-weight:600;display:inline-flex}.ai-tag{background-color:var(--accent-green-light);border-color:var(--accent-green);color:var(--accent-green)}.remove-tag-btn{color:var(--accent-green);cursor:pointer;background:0 0;border:none;padding:0 2px;font-weight:700}.room-card-advanced{border:1px solid var(--border-color);background-color:var(--bg-primary);margin-top:12px;margin-bottom:12px;padding:12px}.room-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:6px;display:flex}.room-id-title{font-size:.95rem;font-weight:700}.room-time-badge{background-color:var(--bg-tertiary);margin-left:6px;padding:2px 6px;font-size:.75rem}.room-actions-bar{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.client-wait-card{border:1px solid var(--border-color);background-color:var(--bg-primary);justify-content:space-between;align-items:center;margin-bottom:8px;padding:10px;display:flex}.client-name{color:var(--text-main);font-weight:700}.client-time{color:var(--text-muted);margin-left:8px;font-size:.8rem}.match-detail-card{border:1px solid var(--border-color);background-color:var(--bg-primary);margin-bottom:8px;padding:10px 12px}.match-card-header{color:var(--text-muted);justify-content:flex-end;margin-bottom:4px;font-size:.775rem;display:flex}.match-vs-row{justify-content:space-between;font-size:.9rem;font-weight:700;display:flex}.player-name-black{color:#000}.player-name-white{color:#444}.vs-symbol{color:var(--text-subtle);font-size:.8rem}.history-match-card-horizontal{border:1px solid var(--border-color);background-color:var(--bg-primary);justify-content:space-between;align-items:center;margin-bottom:6px;padding:8px 12px;font-size:.85rem;display:flex}.hm-left-info{align-items:center;gap:12px;display:flex}.hm-versus-text{align-items:center;gap:6px;font-weight:700;display:flex}.hm-player.black{color:#000}.hm-player.white{color:#444}.hm-separator{color:var(--text-subtle)}.modal-match-item-horizontal{border:1px solid var(--border-color);background-color:var(--bg-tertiary);justify-content:space-between;align-items:center;margin-bottom:8px;padding:8px 12px;font-size:.875rem;display:flex}.m-versus-row{align-items:center;gap:8px;font-weight:700;display:flex}.m-versus-row .p-name.black{color:#000}.m-versus-row .p-name.white{color:#444}.m-sep{color:var(--text-subtle)}.tournament-card{border:1px solid var(--border-color);background-color:var(--bg-primary);margin-bottom:12px;padding:12px}.tournament-header{justify-content:space-between;align-items:center;margin-bottom:8px;font-weight:700;display:flex}.tournament-table,.matrix-table{border-collapse:collapse;width:100%;font-size:.825rem}.tournament-table th,.tournament-table td,.matrix-table th,.matrix-table td{border:1px solid var(--border-color);text-align:center;padding:6px 8px}.tournament-table th,.matrix-table th{background-color:var(--bg-tertiary);font-weight:700}.matrix-cell.clickable{cursor:pointer;background-color:var(--accent-green-light);color:var(--accent-green);font-weight:700}.matrix-cell.clickable:hover{background-color:#c8e6c9}.empty-state{color:var(--text-subtle);text-align:center;border:1px dashed var(--border-color);margin-top:10px;padding:16px;font-size:.825rem}.modal-overlay{z-index:1000;background-color:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background-color:var(--bg-primary);border:2px solid var(--border-dark);width:100%;max-width:440px;padding:24px;box-shadow:none!important}.modal-card-wide{max-width:600px}.modal-card h3{border-bottom:2px solid var(--accent-green);margin-bottom:16px;padding-bottom:6px;font-size:1.15rem;font-weight:700}.modal-button-group{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.url-copy-btn-wrapper{justify-content:center;align-items:center;width:100%;display:flex}.ai-copy-urls-group{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;width:100%;margin-bottom:8px;display:flex}.margin-top-small{margin-top:10px}.game-main.game-layout-split{flex:1;grid-template-columns:1fr 340px;align-items:start;gap:24px;width:100%;max-width:1200px;margin:0 auto;padding:24px;display:grid}.game-main.replay-full-width{grid-template-columns:1fr;max-width:800px}.game-board-section{flex-direction:column;align-items:center;gap:16px;width:100%;display:flex}.match-status-panel-vertical{background-color:var(--bg-primary);border:1px solid var(--border-color);width:100%;max-width:520px;padding:14px}.status-header-text{text-align:center;color:var(--accent-green);margin-bottom:10px;font-size:.95rem;font-weight:700}.player-row-pill{border:1px solid var(--border-color);background-color:var(--bg-tertiary);justify-content:space-between;align-items:center;margin-bottom:6px;padding:8px 12px;display:flex}.player-row-pill.active-turn{border:2px solid var(--accent-green);background-color:var(--accent-green-light)}.p-left{align-items:center;gap:8px;font-weight:700;display:flex}.disc-dot-large{width:16px;height:16px;display:inline-block}.disc-dot-large.black{background-color:#000}.disc-dot-large.white{background-color:#fff;border:1px solid #777}.p-score-huge{font-size:1.25rem;font-weight:800}.you-badge{color:var(--accent-green);font-size:.75rem}.board-wrapper{background-color:var(--bg-primary);border:2px solid var(--border-dark);flex-direction:column;align-items:center;padding:16px;display:flex}.board-labels.cols{text-align:center;color:var(--text-muted);grid-template-columns:repeat(8,56px);margin-bottom:4px;margin-left:24px;font-size:.85rem;font-weight:700;display:grid}.board-middle{align-items:center;display:flex}.board-labels.rows{color:var(--text-muted);text-align:center;grid-template-rows:repeat(8,56px);align-items:center;width:24px;font-size:.85rem;font-weight:700;display:grid}.board-grid{background-color:#111;border:3px solid #111;grid-template-rows:repeat(8,56px);grid-template-columns:repeat(8,56px);gap:1px;display:grid}.cell{cursor:pointer;background-color:#2e7d32;justify-content:center;align-items:center;width:56px;height:56px;display:flex;position:relative}.cell:hover{background-color:#388e3c}.cell.valid-move:after{content:"";background-color:#ffffff73;width:14px;height:14px}.disc{justify-content:center;align-items:center;width:44px;height:44px;display:flex;position:relative}.disc.black{background:radial-gradient(circle at 35% 35%,#444,#000);border:1px solid #000}.disc.white{background:radial-gradient(circle at 35% 35%,#fff,#e0e0e0);border:1px solid #999}.last-move-dot{background-color:#e53935;width:8px;height:8px}.playback-controls{background-color:var(--bg-primary);border:1px solid var(--border-color);width:100%;max-width:520px;padding:12px 16px}.kifu-controls{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.step-indicator{font-size:.875rem;font-weight:700}.seekbar-wrapper input[type=range]{width:100%;accent-color:var(--accent-green);cursor:pointer}.game-sidebar-log{width:100%}.log-card{height:100%}.log-console-sidebar{background-color:var(--bg-code);color:#a5d6a7;font-family:var(--font-mono);border:1px solid var(--border-dark);height:440px;padding:12px;font-size:.775rem;overflow-y:auto}.log-entry{word-break:break-all;margin-bottom:4px}.log-entry.out{color:#81d4fa}.log-entry.in{color:#c8e6c9}.log-entry.err{color:#ff8a80}.log-entry.sys{color:#ffe082}
