:root{--color-primary: #4F46E5;--color-primary-hover: #4338CA;--color-brand-dark: #0F172A;--color-brand-muted: #475569;--bg-page: #FAFAFA;--bg-card: #FFFFFF;--bg-card-hover: #F8FAFC;--bg-card-subtle: #F1F5F9;--bg-input: #F8FAFC;--bg-elevated: #FFFFFF;--border-subtle: #E2E8F0;--border-medium: #CBD5E1;--border-active: #4F46E5;--text-primary: #0F172A;--text-secondary: #475569;--text-muted: #64748B;--text-inverse: #FFFFFF;--brand-primary: #4F46E5;--brand-primary-hover: #4338CA;--brand-primary-light: rgba(79, 70, 229, .08);--brand-glow: rgba(79, 70, 229, .25);--accent-emerald: #10B981;--accent-emerald-subtle: rgba(16, 185, 129, .1);--accent-amber: #D97706;--accent-amber-subtle: rgba(217, 119, 6, .1);--accent-rose: #EF4444;--accent-rose-subtle: rgba(239, 68, 68, .1);--accent-blue: #2563EB;--accent-blue-subtle: rgba(37, 99, 235, .1);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", monospace;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px 0 rgba(0, 0, 0, .06);--shadow-lg: 0 12px 32px -4px rgba(15, 23, 42, .08);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-page);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;display:flex;flex-direction:column}#root{display:flex;flex-direction:column;min-height:100vh;width:100%}a{color:var(--brand-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--brand-primary-hover)}.app-container{max-width:1080px;margin:0 auto;padding:0 1.25rem;width:100%}.main-content{flex:1;padding:1.5rem 0 3.5rem}h1,h2,h3,h4{color:var(--color-brand-dark);font-weight:700;letter-spacing:-.025em;line-height:1.2}h1{font-size:2.5rem}h2{font-size:1.75rem}h3{font-size:1.25rem}h4{font-size:1.05rem}p{color:var(--color-brand-muted);font-size:1rem}.mono{font-family:var(--font-mono);letter-spacing:.04em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-sans);font-size:.95rem;font-weight:600;padding:.65rem 1.25rem;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none}.btn-primary{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary);box-shadow:0 1px 3px #4f46e54d}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:0 4px 14px #4f46e559;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-secondary{background-color:#fff;color:var(--color-brand-dark);border-color:var(--border-medium);box-shadow:0 1px 2px #0000000a}.btn-secondary:hover:not(:disabled){background-color:var(--bg-card-hover);border-color:var(--color-primary);color:var(--color-primary)}.btn-outline{background-color:transparent;color:var(--color-brand-dark);border-color:var(--border-medium)}.btn-outline:hover:not(:disabled){background-color:var(--bg-card-subtle);border-color:var(--color-primary);color:var(--color-primary)}.btn-danger{background-color:var(--accent-rose-subtle);color:var(--accent-rose);border-color:#ef444440}.btn-danger:hover:not(:disabled){background-color:var(--accent-rose);color:#fff}.btn-sm{padding:.4rem .8rem;font-size:.85rem;border-radius:var(--radius-sm)}.btn-lg{padding:.95rem 2rem;font-size:1.1rem;border-radius:var(--radius-lg)}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background-color:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:1.75rem;box-shadow:var(--shadow-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.card:hover{border-color:var(--border-medium);box-shadow:var(--shadow-md)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;gap:1rem}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .65rem;border-radius:var(--radius-full);font-size:.775rem;font-weight:600;letter-spacing:.02em}.badge-emerald{background-color:var(--accent-emerald-subtle);color:#047857;border:1px solid rgba(16,185,129,.3)}.badge-amber{background-color:var(--accent-amber-subtle);color:#b45309;border:1px solid rgba(217,119,6,.3)}.badge-rose{background-color:var(--accent-rose-subtle);color:#b91c1c;border:1px solid rgba(239,68,68,.3)}.badge-blue{background-color:var(--brand-primary-light);color:var(--color-primary);border:1px solid rgba(79,70,229,.25)}.badge-neutral{background-color:var(--bg-card-subtle);color:var(--text-secondary);border:1px solid var(--border-subtle)}.pulse-dot{width:7px;height:7px;border-radius:50%;background-color:currentColor;animation:pulse-animation 2s infinite ease-in-out}@keyframes pulse-animation{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.form-group{margin-bottom:1.25rem;display:flex;flex-direction:column;gap:.4rem}.form-label{font-size:.875rem;font-weight:600;color:var(--color-brand-dark);display:flex;justify-content:space-between;align-items:center}.form-input,.form-select,.form-textarea{width:100%;padding:.75rem 1rem;background-color:#fff;border:1px solid var(--border-medium);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-sans);font-size:.95rem;transition:all var(--transition-fast);box-shadow:0 1px 2px #00000005}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--brand-primary-light)}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-hint{font-size:.8rem;color:var(--text-muted);font-weight:400}.navbar{border-bottom:1px solid var(--border-subtle);background-color:#ffffffeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:40}.navbar-inner{display:flex;align-items:center;justify-content:space-between;height:68px}.brand-logo{display:flex;align-items:center;gap:.65rem;font-weight:700;font-size:1.25rem;color:var(--color-brand-dark);letter-spacing:-.03em}.nav-links{display:flex;align-items:center;gap:.4rem}.nav-btn{padding:.45rem .85rem;font-size:.9rem;font-weight:500;color:var(--color-brand-muted);border-radius:var(--radius-md);transition:all var(--transition-fast);background:transparent;border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem}.nav-btn:hover{color:var(--color-brand-dark);background-color:var(--bg-card-subtle)}.nav-btn.active{color:var(--color-primary);background-color:var(--brand-primary-light);border-color:#4f46e533;font-weight:600}.pairing-code-box{background-color:#fff;border:2px dashed var(--color-primary);border-radius:var(--radius-xl);padding:1.75rem 1.25rem;text-align:center;margin:1.5rem 0;box-shadow:0 4px 16px #4f46e514}.pairing-code-display{font-family:var(--font-mono);font-size:2.4rem;font-weight:800;color:var(--color-primary);letter-spacing:.08em;margin:.5rem 0}.chat-container{display:flex;flex-direction:column;height:calc(100vh - 180px);max-height:750px;background-color:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-sm)}.chat-header{padding:1rem 1.25rem;border-bottom:1px solid var(--border-subtle);background-color:#fff;display:flex;align-items:center;justify-content:space-between}.chat-messages{flex:1;overflow-y:auto;padding:1.25rem;display:flex;flex-direction:column;gap:.85rem;background-color:#fafafa}.chat-bubble{max-width:75%;padding:.75rem 1rem;border-radius:var(--radius-lg);font-size:.925rem;line-height:1.45;position:relative;word-break:break-word}.chat-bubble.mine{align-self:flex-end;background-color:var(--color-primary);color:#fff;border-bottom-right-radius:var(--radius-sm);box-shadow:0 1px 4px #4f46e540}.chat-bubble.theirs{align-self:flex-start;background-color:#fff;color:var(--text-primary);border:1px solid var(--border-subtle);border-bottom-left-radius:var(--radius-sm);box-shadow:0 1px 3px #0000000a}.chat-bubble.system{align-self:center;background-color:#fff;color:var(--color-brand-muted);border:1px dashed var(--border-medium);font-size:.825rem;text-align:center;max-width:90%;border-radius:var(--radius-md);padding:.5rem 1rem}.chat-meta{font-size:.7rem;margin-top:.35rem;display:flex;align-items:center;gap:.4rem;opacity:.75}.chat-input-bar{padding:.85rem 1.25rem;border-top:1px solid var(--border-subtle);background-color:#fff;display:flex;gap:.75rem;align-items:center}.simulator-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:1.5rem}@media(max-width:840px){.simulator-grid{grid-template-columns:1fr}}.persona-col{background-color:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-sm)}.persona-header{padding:.85rem 1.25rem;border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0f172a99;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:50;padding:1rem}.modal-card{background-color:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-xl);width:100%;max-width:480px;padding:1.75rem;box-shadow:var(--shadow-lg);animation:modal-enter .2s cubic-bezier(.16,1,.3,1)}@keyframes modal-enter{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.toast-container{position:fixed;bottom:1.5rem;right:1.5rem;z-index:60;display:flex;flex-direction:column;gap:.5rem}.toast{background-color:var(--color-brand-dark);border:1px solid var(--color-brand-dark);color:#fff;padding:.75rem 1rem;border-radius:var(--radius-md);font-size:.875rem;display:flex;align-items:center;gap:.5rem;box-shadow:var(--shadow-md);animation:toast-in .2s ease-out}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:640px){h1{font-size:2rem}h2{font-size:1.45rem}.chat-container{height:calc(100vh - 140px)}.pairing-code-display{font-size:1.8rem}}
