:root{--ink: #212121;--muted: #737373;--line: #dbdbdb;--panel-fill: #f4f4f4;--canvas: #fafafa;--surface: #ffffff;--warn: #b86600;--warn-line: #edb34d;--warn-bg: #fff7e6;--tag-stroke: #8c8c8c;--bg: var(--canvas);--panel: var(--surface);--radius: 8px;--radius-ctl: 6px;--radius-tag: 4px;--gap: 24px;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:13px;line-height:1.4;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--canvas)}.hacs-app{max-width:1280px;margin:0 auto;padding:24px 32px 48px}.hacs-topbar{display:flex;align-items:center;gap:12px;padding:12px 16px;margin-bottom:24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.hacs-topbar h1{font-size:15px;margin:0;font-weight:600;letter-spacing:.01em}.hacs-seatchip{font-size:11px;font-weight:500;padding:2px 8px;border-radius:999px;background:var(--panel-fill);border:1px solid var(--line);color:var(--ink)}.hacs-conn{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:500;color:var(--muted)}.hacs-conn:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--line);flex:none}.hacs-conn[data-state=connected]:before{background:var(--ink)}.hacs-conn[data-state=connecting]:before{background:var(--muted);animation:hacs-pulse 1.2s ease-in-out infinite}.hacs-conn[data-state=disconnected]{color:var(--warn)}.hacs-conn[data-state=disconnected]:before{background:var(--warn-line)}@keyframes hacs-pulse{0%,to{opacity:1}50%{opacity:.3}}.hacs-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--gap);align-items:start}.hacs-col{display:flex;flex-direction:column;gap:var(--gap);min-width:0}.hacs-card{max-width:560px;margin:0 auto}@media(max-width:900px){.hacs-app{padding:16px}.hacs-grid{grid-template-columns:1fr}}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.panel h2{font-size:15px;font-weight:600;margin:8px 0 6px}.panel>h2{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 8px;font-weight:600}.hacs-card .panel>h2:first-child,.panel.hacs-card>h2:first-child{font-size:17px;text-transform:none;letter-spacing:0;color:var(--ink)}.empty{color:var(--muted);font-size:13px;padding:4px 0}.error{color:var(--warn);font-size:13px}.section-note{font-size:12px;color:var(--muted);margin-top:4px}.prompt{line-height:1.4}.brief{white-space:pre-wrap;line-height:1.4}.btn{font:inherit;font-weight:500;cursor:pointer;min-height:44px;min-width:44px;padding:8px 16px;border-radius:var(--radius-ctl);border:1px solid var(--line);background:var(--surface);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn:hover{border-color:var(--muted)}.btn.primary{background:var(--ink);color:var(--surface);border-color:var(--ink)}.btn.primary:hover{background:#000;border-color:#000}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.small{padding:6px 12px;font-size:12px}.btn:focus-visible,.input:focus-visible,.textarea:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.input,.textarea,select.input,label>input:not([type=checkbox]):not([type=radio]):not([type=range]){font:inherit;width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius-ctl);background:var(--surface);color:var(--ink)}.textarea{resize:vertical;min-height:44px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.badge{font-size:10px;font-weight:500;line-height:1.4;padding:1px 6px;border-radius:var(--radius-tag);background:var(--surface);color:var(--ink);border:1px solid var(--tag-stroke);white-space:nowrap;flex:none}.badge-ai{background:var(--ink);color:var(--surface);border-color:var(--ink)}.badge-ai_access,.badge-ai_assisted{background:var(--surface);color:var(--ink);border-color:var(--tag-stroke)}.roster{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.roster li{display:flex;align-items:center;gap:8px;min-height:24px}.roster .dot{width:8px;height:8px;border-radius:50%;background:var(--ink);flex:none}.roster .you{font-weight:600}.chat-log{display:flex;flex-direction:column;gap:8px;max-height:340px;overflow-y:auto;padding-right:4px}.msg{padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.msg.own{background:var(--panel-fill)}.msg .meta{font-size:12px;color:var(--muted);margin-bottom:2px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.msg .who{font-weight:600;color:var(--ink)}.msg .dm{color:var(--muted);font-style:italic}.typing-line{font-size:12px;color:var(--muted);min-height:18px;font-style:italic}.assistant .note{font-size:12px;color:var(--muted);margin:0 0 8px}.assistant .exchange{border:1px solid var(--line);border-radius:var(--radius);padding:12px;margin-bottom:8px;background:var(--surface)}.assistant .exchange .q{font-weight:600;margin-bottom:4px}.assistant .exchange .a{white-space:pre-wrap}.assistant .exchange.pending{background:var(--panel-fill)}.hacs-assistant-notice{padding:4px 0}.hacs-thinking{display:inline-flex;gap:4px;align-items:center;padding:4px 0}.hacs-thinking i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:hacs-think 1.2s ease-in-out infinite}.hacs-thinking i:nth-child(2){animation-delay:.2s}.hacs-thinking i:nth-child(3){animation-delay:.4s}@keyframes hacs-think{0%,60%,to{opacity:.25}30%{opacity:1}}.hacs-assistant-unavailable{border:1px solid var(--line);border-radius:var(--radius-ctl);background:var(--panel-fill);color:var(--muted);padding:8px 12px;margin-bottom:8px;font-size:12px}.hacs-task-heading{display:flex;align-items:baseline;gap:8px}.clues{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.clue{border:1px solid var(--line);border-radius:var(--radius-ctl);padding:8px 12px;background:var(--surface);display:flex;gap:8px;align-items:center;justify-content:space-between}.clue.shared{background:var(--panel-fill)}.answer-options{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.answer-state{font-size:13px;color:var(--muted)}.answer-state b{color:var(--ink)}.rank-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.rank-item{align-items:center}.rank-pos{color:var(--muted);font-variant-numeric:tabular-nums;min-width:22px;text-align:right}.rank-text{flex:1}.rank-controls{gap:4px;flex-shrink:0;flex-wrap:nowrap}.probe .prompt{margin-bottom:8px}.probe .scale{display:flex;gap:4px;flex-wrap:wrap;align-items:center}.probe .scale label{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:12px;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:var(--radius-ctl);background:var(--surface);cursor:pointer;padding:4px}.probe .scale label:hover{border-color:var(--muted)}.probe .privacy{font-size:12px;color:var(--muted);margin-top:8px}.slider-row{display:flex;gap:12px;align-items:center;min-height:44px}.slider-row input[type=range]{flex:1;min-height:44px}.slider-row output{min-width:24px;text-align:center;font-weight:600}.hacs-entry-field{display:block;margin:8px 0;font-weight:600}.hacs-entry-field input{margin-top:4px;font-weight:400}.hacs-entry-actions{margin-top:12px}.hacs-entry-error{color:var(--warn);font-size:13px;margin:8px 0 0}.hacs-lobby{max-width:560px;margin:0 auto}.hacs-lobby-you{color:var(--muted);font-size:13px;margin:0 0 12px}.hacs-lobby-seats{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:8px}.hacs-lobby-seat{display:flex;align-items:center;gap:8px;padding:8px 12px;min-height:44px;border:1px solid var(--line);border-radius:var(--radius-ctl);background:var(--surface)}.hacs-lobby-dot{width:8px;height:8px;border-radius:50%;background:var(--line);flex:none}.hacs-lobby-seat[data-occupied=true] .hacs-lobby-dot{background:var(--ink)}.hacs-lobby-name{font-weight:600}.hacs-lobby-status{margin-left:auto;font-size:12px;color:var(--muted)}.hacs-consent{max-width:560px;margin:0 auto}.hacs-consent-brief{line-height:1.5;margin:0 0 12px}.hacs-consent-doc{border:1px solid var(--line);border-radius:var(--radius-ctl);background:var(--surface);padding:12px 16px;max-height:280px;overflow-y:auto;white-space:pre-wrap;line-height:1.5;font-size:13px;margin-bottom:12px}.hacs-consent-affirm{display:flex;gap:8px;align-items:flex-start;font-size:13px;margin-bottom:12px;cursor:pointer;min-height:44px}.hacs-consent-affirm input{margin-top:2px;width:18px;height:18px;flex:none}.hacs-consent-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.hacs-consent-error{color:var(--warn);font-size:13px;margin:8px 0 0}.hacs-debrief{max-width:560px}.hacs-debrief>h2{font-size:17px;text-transform:none;letter-spacing:0;color:var(--ink)}.hacs-debrief-text{line-height:1.5;white-space:pre-wrap}.hacs-debrief-disclosure{border:1px solid var(--warn-line);border-radius:var(--radius-ctl);background:var(--warn-bg);padding:12px 16px;margin-top:12px}.hacs-debrief-disclosure h3{font-size:13px;margin:0 0 6px;color:var(--warn)}.hacs-debrief-disclosure p{margin:0;line-height:1.5;white-space:pre-wrap}.hacs-endpage-text{line-height:1.5;white-space:pre-wrap;margin:0}.hacs-redirect-countdown{font-weight:600;margin:0 0 8px}.hacs-redirect-fallback{overflow-wrap:anywhere}.hacs-redirect-fallback a{color:var(--ink)}.hacs-withdraw{text-align:center}.hacs-withdraw .row{justify-content:center}.hacs-withdraw-btn{color:var(--muted)}.hacs-phase-banner{padding:8px 16px}.hacs-phase-banner .section-note{margin-top:0;font-weight:500}.hacs-interstitial{max-width:560px;margin:0 auto}.hacs-interstitial h2{margin:8px 0;font-size:17px;text-transform:none;letter-spacing:0;color:var(--ink)}.hacs-interstitial .prompt{margin:8px 0 16px}.hacs-reconnect{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn);font-weight:500}.hacs-note-warn,.hacs-full-note{color:var(--warn);font-size:13px;line-height:1.5}.hacs-full-waitlist{margin:12px auto;max-width:24rem;display:flex;flex-direction:column;gap:8px}.hacs-spinner{width:20px;height:20px;margin:8px auto;border-radius:50%;border:2px solid var(--line);border-top-color:var(--ink);animation:hacs-spin .8s linear infinite}@keyframes hacs-spin{to{transform:rotate(360deg)}}.hacs-boundary{text-align:center}@media(prefers-reduced-motion:reduce){.hacs-spinner,.hacs-thinking i,.hacs-conn[data-state=connecting]:before{animation:none}}
