*{box-sizing:border-box}:root{--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--text-title: clamp(24px, 2.4vw, 34px);--text-section: 18px;--text-body: 14px;--text-small: 12px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--color-bg: #f8f2ea;--color-surface: #fffaf5;--color-surface-strong: #ffffff;--color-border: #e4d7c9;--color-text: #2b231b;--color-muted: #6f6457;--color-accent: #c46b36;--color-accent-strong: #a3532b;--color-accent-soft: #f1d5c6;--color-shadow: rgba(43, 35, 27, .12)}body{margin:0;font-family:Space Grotesk,IBM Plex Sans,Segoe UI,sans-serif;font-size:var(--text-body);color:var(--color-text);background:linear-gradient(135deg,#f8f1e6,#f2e9de 45%,#fbf7f1)}html,body,#root{height:100%}button,input,select,textarea{font-family:inherit}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.page{min-height:100vh}.container{max-width:1100px;margin:0 auto;padding:var(--space-xl);width:100%}.page-title{font-size:var(--text-title);margin:0 0 var(--space-lg);letter-spacing:-.02em}.page-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:var(--space-md);row-gap:var(--space-sm);width:100%}.page-header .page-title{margin:0;min-width:0;overflow-wrap:anywhere}@media (max-width: 720px){.page-header{grid-template-columns:1fr;justify-items:start}}.page-subtitle{margin-top:0;margin-bottom:var(--space-lg);color:var(--color-muted)}.section{margin-bottom:var(--space-lg)}.card{background:var(--color-surface-strong);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 10px 24px -18px var(--color-shadow);padding:var(--space-md)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm)}.section-title{margin:0;font-size:var(--text-section)}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-accent-soft);font-size:var(--text-small);color:var(--color-text)}.btn{border:1px solid transparent;border-radius:var(--radius-sm);padding:8px 14px;font-weight:600;font-size:14px;cursor:pointer;text-decoration:none;transition:background .15s ease,border-color .15s ease,color .15s ease}.btn-primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn-primary:hover:not(:disabled){background:var(--color-accent-strong);border-color:var(--color-accent-strong)}.btn-secondary{background:var(--color-surface-strong);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent-strong)}.btn:disabled{cursor:not-allowed;opacity:.6}.btn:disabled.btn-primary{background:#d7b19c;border-color:#d7b19c}.btn:disabled.btn-secondary{background:#f2ebe3;border-color:#e3d6c8;color:var(--color-muted)}.btn[data-loading=true]{opacity:.7}.btn[data-loading=true]:after{content:" •••";letter-spacing:2px}.input,.select,.textarea{width:100%;padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;font-size:14px}.textarea{resize:vertical}.text-small{font-size:var(--text-small)}.text-muted{color:var(--color-muted)}.text-error{color:#b02a21}.field{display:flex;flex-direction:column;gap:6px;font-size:var(--text-small);color:var(--color-muted)}.stack-sm{margin-top:var(--space-sm)}.checkbox{margin-right:6px}.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-sm)}.role-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-md)}.role-card{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);background:var(--color-surface);text-align:left;display:flex;flex-direction:column;gap:var(--space-xs);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.role-card:hover:not(:disabled){border-color:var(--color-accent);box-shadow:0 10px 20px -18px var(--color-shadow);transform:translateY(-1px)}.role-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.role-card.is-selected{border-color:var(--color-accent);background:#fff3ea;box-shadow:0 12px 24px -18px var(--color-shadow)}.role-card:disabled{cursor:not-allowed;opacity:.6;background:#f5efe8}.role-card-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.role-name{font-size:16px;font-weight:600}.role-desc{font-size:var(--text-small);color:var(--color-muted);margin-top:var(--space-xs)}.start-game-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-md)}.start-game-copy{margin:var(--space-xs) 0 0}.your-games-list{display:flex;flex-direction:column;gap:var(--space-sm)}.your-game-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);padding:var(--space-sm)}.your-game-main{display:flex;min-width:0;flex-direction:column;gap:var(--space-xs)}.your-game-title{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;font-weight:600}.your-game-meta{font-size:var(--text-small);color:var(--color-muted);overflow-wrap:anywhere}.your-games-state{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}@media (max-width: 720px){.start-game-card,.your-game-row{grid-template-columns:1fr;justify-items:start}}.badge-muted{background:#f4ede6}.login-card{max-width:420px;margin:8vh auto 0;display:flex;flex-direction:column;gap:var(--space-sm)}.login-brand{font-size:var(--text-title);font-weight:700;letter-spacing:-.02em}.login-title{margin-bottom:var(--space-sm)}.choice{display:flex;align-items:center;gap:var(--space-sm);padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.game-shell{min-height:100vh;height:100vh;display:flex;flex-direction:column}.game-header{border-bottom:1px solid var(--color-border);background:#fffaf5d9;padding:var(--space-md) var(--space-lg)}.header-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap}.header-actions{display:flex;align-items:center;gap:var(--space-sm)}.header-title{font-size:18px;font-weight:600}.header-save-note{margin-top:2px;font-size:var(--text-small);color:var(--color-muted)}.header-meta{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-top:var(--space-xs);font-size:var(--text-small);color:var(--color-muted)}.game-body{display:flex;flex:1 1 auto;min-height:0;gap:var(--space-lg);padding:var(--space-lg);overflow:hidden}.game-main{flex:1 1 auto;min-height:0;min-width:0;display:flex;flex-direction:column}.game-panel{width:360px;min-width:280px;min-height:0;overflow-y:auto}.panel-card{height:100%;overflow-y:auto}.panel-stack{display:flex;flex-direction:column;gap:var(--space-md)}.action-bar{border-top:1px solid var(--color-border);background:#fffaf5d9;padding:var(--space-md) var(--space-lg)}.action-status{font-size:var(--text-small);color:var(--color-muted);margin-bottom:var(--space-sm)}.action-stack{display:flex;flex-direction:column;gap:var(--space-sm)}.action-row{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.transcript-panel{display:flex;flex-direction:column;height:100%;min-height:0;flex:1 1 auto;position:relative}.transcript-list{flex:1 1 auto;min-height:0;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm);background:var(--color-surface-strong);position:relative}.transcript-group{padding:var(--space-sm);border-radius:var(--radius-md);border:1px solid transparent;background:#fffdfb;display:flex;flex-direction:column;gap:var(--space-sm)}.transcript-group+.transcript-group{margin-top:var(--space-md)}.transcript-group-header{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.role-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:var(--color-accent-soft);border:1px solid var(--color-border);font-size:var(--text-small);font-weight:600}.phase-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:#f7f1ea;border:1px solid var(--color-border);font-size:var(--text-small);color:var(--color-muted)}.transcript-group-body{display:flex;flex-direction:column;gap:var(--space-sm)}.transcript-message{line-height:1.5;white-space:pre-wrap}.transcript-group.is-player{border-color:#e0c0a9;background:#fff7f0}.transcript-group.is-ai{border-color:#eadfd4;background:#fffdfb}.transcript-group.is-system{border-color:#d6dbe3;background:#f6f8fb}.transcript-group.is-current{box-shadow:inset 3px 0 0 0 var(--color-accent)}.transcript-jump{position:absolute;right:var(--space-md);bottom:var(--space-md);box-shadow:0 6px 16px -10px var(--color-shadow)}.review-shell{height:100vh}.review-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:var(--space-lg)}.review-stack{display:flex;flex-direction:column;gap:var(--space-lg)}.review-summary-card,.review-issue-card,.review-transcript{max-width:1100px;margin:0 auto var(--space-lg);width:100%}.review-title{margin:0 0 var(--space-sm);font-size:var(--text-title);letter-spacing:0}.review-lede,.review-result{margin:var(--space-xs) 0 0;color:var(--color-muted)}.review-result{color:var(--color-text);font-weight:600}.review-issue-header{align-items:flex-start;gap:var(--space-md)}.review-outcome{white-space:nowrap}.review-outcome.is-passed,.review-vote.is-yes{background:#e7f3e8;border-color:#b9d8bd;color:#245d2f}.review-outcome.is-failed,.review-vote.is-no{background:#f8e8e5;border-color:#e7b9b2;color:#8b241d}.review-proposal{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);padding:var(--space-md);margin:var(--space-md) 0}.review-proposal-title{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-xs);font-weight:700}.review-option-id{font-size:var(--text-small);color:var(--color-muted);font-weight:500}.review-proposal-description{margin:var(--space-sm) 0 0;color:var(--color-muted);line-height:1.5;white-space:pre-wrap}.review-table-wrap{width:100%;overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.review-table{width:100%;min-width:680px;border-collapse:collapse;background:var(--color-surface-strong)}.review-table th,.review-table td{text-align:left;vertical-align:top;padding:10px 12px;border-bottom:1px solid var(--color-border)}.review-table th{font-size:var(--text-small);color:var(--color-muted);background:#fbf7f1;font-weight:700}.review-table tr:last-child td{border-bottom:0}.review-table tr.is-human-role td{background:#fff8f2}.review-country-cell{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;font-weight:600}.review-transcript .transcript-panel{height:min(58vh,560px);min-height:360px}.info-list{display:flex;flex-direction:column;gap:var(--space-sm)}.info-row{display:flex;justify-content:space-between;gap:var(--space-sm)}.turn-list{display:flex;flex-direction:column;gap:var(--space-xs);font-family:IBM Plex Mono,Space Grotesk,monospace;font-size:var(--text-small)}.turn-item{display:flex;align-items:center;gap:var(--space-xs)}.turn-icon{width:16px;display:inline-flex;justify-content:center;color:var(--color-muted)}.turn-icon.is-current{color:var(--color-accent-strong)}.turn-icon.is-done{color:#2a7a3b}.issue-title{font-size:16px;font-weight:600;margin-bottom:var(--space-xs)}.issue-framing{font-size:var(--text-small);color:var(--color-muted);margin-bottom:var(--space-sm);white-space:pre-wrap}.issue-options{display:flex;flex-direction:column;gap:var(--space-sm)}.issue-option{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-sm);background:var(--color-surface)}.issue-option-title{font-weight:600;font-size:var(--text-small)}.issue-option-desc{font-size:var(--text-small);color:var(--color-muted);margin-top:4px;white-space:pre-wrap}@media (max-width: 960px){.container{padding:var(--space-lg)}.game-body{flex-direction:column}.game-panel{width:100%}.review-body{padding:var(--space-md)}}@media (max-width: 720px){.review-issue-header{flex-direction:column}.review-table{min-width:600px}.review-transcript .transcript-panel{height:460px}}
