:root{color:#f8fafc;background:#0f172a;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{width:100%;height:100%;min-height:100%;overscroll-behavior:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh;overflow:hidden}#root{width:100%;min-height:100vh;min-height:100dvh}#root,.app-shell,.bridge-table-canvas,.bridge-table-canvas canvas{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.bridge-table-canvas canvas{-webkit-user-drag:none}button,select,textarea{font:inherit}.app-shell{min-height:100vh;padding:22px}.connection-shell{display:grid;place-items:center;background:radial-gradient(circle at top left,rgba(125,211,199,.2),transparent 34%),linear-gradient(135deg,#071612,#0f172a 62%,#111827)}.connection-panel{display:grid;gap:18px;width:min(720px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;border:1px solid rgba(125,211,199,.38);border-radius:18px;background:#071210eb;box-shadow:0 22px 90px #0000006b;padding:24px}.connection-eyebrow{margin:0 0 8px;color:#7dd3c7;font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.connection-panel h1{margin:0;font-size:30px}.connection-copy{margin:8px 0 0;color:#cbd5e1}.connection-form{display:grid;gap:12px}.connection-form label{display:grid;gap:8px;color:#dbeafe;font-size:13px;font-weight:800}.connection-form select,.connection-form textarea{border:1px solid #334155;border-radius:10px;background:#020617;color:#f8fafc}.connection-form select{height:42px;padding:0 12px}.connection-form textarea{min-height:132px;resize:vertical;padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:1.45}.connection-server-details{display:flex;flex-wrap:wrap;gap:8px}.connection-server-details span{border:1px solid rgba(125,211,199,.3);border-radius:999px;background:#0d94881f;color:#cbd5e1;padding:5px 9px;font-size:12px;font-weight:800}.connection-actions{display:grid;grid-template-columns:1fr 140px;gap:10px}.connection-actions button,.sfs-log-header button{height:40px;border:1px solid #1f6f63;border-radius:10px;background:#1f6f63;color:#fff;cursor:pointer;font-weight:900}.connection-actions button:disabled,.sfs-log-header button:disabled{cursor:default;opacity:.48}.connection-status{display:grid;gap:4px;border:1px solid rgba(148,163,184,.28);border-radius:12px;background:#0f172ab8;padding:12px}.connection-status strong{text-transform:uppercase;font-size:12px;letter-spacing:.08em}.connection-status span{color:#dbeafe}.connection-status-connected strong{color:#86efac}.connection-status-connecting strong,.connection-status-registering strong{color:#fde68a}.connection-status-error strong{color:#fca5a5}.connection-room-status{border:1px solid rgba(125,211,199,.34);border-radius:12px;background:#0d948824;padding:12px}.connection-room-status h2{margin:0 0 6px;color:#ccfbf1;font-size:15px}.connection-room-status p{margin:0;color:#dbeafe}.connection-room-status-game{border-color:#86efac80;background:#1665343d}.connection-notification{display:grid;gap:6px;border:1px solid rgba(248,113,113,.74);border-radius:12px;background:#7f1d1d61;padding:14px}.connection-notification h2{margin:0 0 6px;color:#fecaca;font-size:17px}.connection-notification p{margin:0;color:#fee2e2}.connection-notification code{display:block;margin-top:8px;color:#fecaca;font-size:12px;line-height:1.35;white-space:normal}.runtime-error-stack{max-height:52vh;overflow:auto;border:1px solid rgba(248,113,113,.45);border-radius:10px;background:#0f172ae6;color:#fecaca;padding:12px;white-space:pre-wrap;word-break:break-word}.connection-help{border:1px solid rgba(51,65,85,.9);border-radius:12px;background:#02061770;padding:12px}.connection-help h2{margin:0 0 8px;font-size:14px}.connection-help ul{display:grid;gap:6px;margin:0;padding-left:18px}.connection-help li{color:#cbd5e1;font-size:12px}.toolbar{display:flex;gap:18px;justify-content:space-between;align-items:center;margin-bottom:18px}.toolbar h1{margin:0 0 4px;font-size:24px}.toolbar p,.event-panel p{margin:0;color:#cbd5e1}.controls{display:flex;gap:12px;align-items:end}.controls label{display:grid;gap:6px;color:#cbd5e1;font-size:13px}.controls select,.controls button{height:38px;border:1px solid #334155;border-radius:10px;background:#1e293b;color:#f8fafc;padding:0 12px}.controls button{cursor:pointer;background:#2563eb;border-color:#2563eb;font-weight:700}.layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;min-height:calc(100vh - 116px)}.table-workspace{display:grid;gap:18px;min-width:0}.table-workspace-single{grid-template-columns:minmax(0,1fr)}.table-workspace-sideBySide{grid-template-columns:repeat(2,minmax(0,1fr))}.bridge-table-canvas{height:min(78vh,820px);min-height:680px;border-radius:24px;overflow:hidden;background:radial-gradient(circle at center,#ffffff14,#00000026);box-shadow:0 20px 80px #00000059}.bridge-table-canvas canvas{display:block;width:100%;height:100%}.event-panel{border:1px solid #334155;background:#0f172abf;border-radius:18px;padding:18px}.event-panel h2{margin:0 0 8px;font-size:18px}.learning-instruction{margin-top:14px;border:1px solid #7dd3c7;border-radius:10px;background:#0d948838;padding:10px;color:#f8fafc;font-weight:800}.sfs-inline-status{margin-top:12px;border:1px solid rgba(125,211,199,.38);border-radius:10px;background:#0d948829;padding:10px;color:#dbeafe;font-weight:800}.bridge-stream{display:grid;gap:10px;border:1px solid rgba(125,211,199,.34);border-radius:12px;background:#0d94881f;padding:12px}.bridge-stream-compact{margin-top:12px}.bridge-stream h2{margin:0;color:#ccfbf1;font-size:16px}.bridge-stream p{margin:0;color:#94a3b8}.bridge-stream ol{display:grid;gap:7px;margin:0;padding:0;list-style:none}.bridge-stream li{display:grid;gap:3px;border:1px solid rgba(51,65,85,.72);border-radius:8px;background:#0f172ac2;padding:8px}.bridge-stream li strong{color:#f8fafc;font-size:12px}.bridge-stream li span,.bridge-stream li em{color:#cbd5e1;font-size:11px;font-style:normal}.bridge-current-deal-dump{display:grid;gap:8px;margin-top:4px}.bridge-current-deal-dump summary{cursor:pointer;color:#7dd3c7;font-size:12px;font-weight:900}.bridge-current-deal-dump p{margin:0;color:#cbd5e1;font-size:11px}.bridge-current-deal-dump textarea{width:100%;min-height:160px;resize:vertical;border:1px solid rgba(51,65,85,.9);border-radius:8px;background:#020617;color:#dbeafe;padding:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;line-height:1.45}.sfs-log{display:grid;gap:10px;border:1px solid rgba(51,65,85,.9);border-radius:12px;background:#020617b8;padding:12px}.sfs-log-compact{margin-top:12px}.sfs-log-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.sfs-log h2{margin:0;font-size:16px}.sfs-log-header button{width:74px;height:30px;border-radius:8px;font-size:12px}.sfs-log p{margin:0;color:#94a3b8}.sfs-log ol{display:grid;gap:8px;padding:0;margin:0;list-style:none}.sfs-log li{display:grid;grid-template-columns:48px 150px minmax(0,1fr);gap:8px;align-items:start;border:1px solid rgba(51,65,85,.72);border-radius:8px;background:#0f172ad1;padding:8px}.sfs-log li span{color:#7dd3c7;font-size:11px;font-weight:900;text-transform:uppercase}.sfs-log li strong{color:#f8fafc;font-size:12px}.sfs-log li code{min-width:0;overflow:hidden;color:#cbd5e1;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.sfs-tape-details{display:grid;gap:8px}.sfs-tape-details summary{cursor:pointer;color:#7dd3c7;font-size:12px;font-weight:900}.sfs-tape-details textarea{width:100%;min-height:240px;resize:vertical;border:1px solid rgba(51,65,85,.9);border-radius:8px;background:#020617;color:#dbeafe;padding:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;line-height:1.45}.event-panel ul{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:10px}.event-panel li{border:1px solid #334155;border-radius:12px;background:#111827;padding:10px;color:#dbeafe;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px}@media (max-width: 960px){.toolbar,.controls{align-items:stretch;flex-direction:column}.layout,.table-workspace-sideBySide{grid-template-columns:1fr}.bridge-table-canvas{height:62vh;min-height:560px}}@media (max-width: 560px){#root{height:100vh;height:100dvh;min-height:0}.app-shell{padding:0;height:100%;min-height:0;overflow:hidden}.toolbar{display:none}.toolbar h1{font-size:16px}.toolbar p{display:none}.controls{display:grid;grid-template-columns:1fr;gap:8px}.desktop-action{display:none}.controls select,.controls button{height:34px;border-radius:4px;padding:0 10px}.layout{gap:0;min-height:auto;height:100%}.table-workspace,.table-workspace-sideBySide{grid-template-columns:1fr;gap:0;height:100%;min-height:0}.table-workspace-sideBySide .bridge-table-canvas:not(:first-child){display:none}.bridge-table-canvas{height:100%;min-height:0;border-radius:0;box-shadow:none}.event-panel{display:none}.connection-shell{padding:12px}.connection-panel{width:100%;max-height:100%;border-radius:12px;padding:16px}.connection-panel h1{font-size:24px}.connection-actions{grid-template-columns:1fr}.sfs-log li{grid-template-columns:42px minmax(78px,.45fr) minmax(0,1fr)}}@media (orientation: landscape) and (max-height: 560px){#root{height:100vh;height:100dvh;min-height:0}.app-shell{padding:0;height:100%;min-height:0;overflow:hidden}.toolbar,.event-panel{display:none}.layout{gap:0;min-height:auto;height:100%;grid-template-columns:1fr}.table-workspace,.table-workspace-sideBySide{grid-template-columns:1fr;gap:0;height:100%;min-height:0}.table-workspace-sideBySide .bridge-table-canvas:not(:first-child){display:none}.bridge-table-canvas{height:100%;min-height:0;border-radius:0}}
