:root{--color-background:#f7f7f5;--color-surface:#fff;--color-surface-subtle:#f3f3f0;--color-surface-hover:#ececea;--color-surface-inverse:#18181b;--color-text-primary:#18181b;--color-text-secondary:#52525b;--color-text-muted:#6b6b73;--color-text-inverse:#fff;--color-border:#e4e4e0;--color-border-subtle:#eeeeea;--color-border-strong:#d2d2cc;--color-primary:#4338ca;--color-primary-hover:#3730a3;--color-primary-active:#312e81;--color-primary-foreground:#fff;--color-primary-subtle:#eef0fb;--color-primary-ring:#4338ca47;--color-success:#15803d;--color-success-subtle:#effaf2;--color-success-border:#c7ebd2;--color-warning:#a15c07;--color-warning-subtle:#fdf8ec;--color-warning-border:#f0dcae;--color-error:#b42318;--color-error-subtle:#fdf3f2;--color-error-border:#f5cdc8;--color-info:#3f3f46;--color-info-subtle:#f3f3f0;--color-info-border:#e4e4e0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-pill:999px;--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "Cascadia Code", "SF Mono", Consolas, monospace;--text-title:22px;--text-section:15px;--text-card:14px;--text-body:14px;--text-secondary:13px;--text-caption:12px;--control-h:36px;--control-h-sm:28px;--shadow-sm:0 1px 2px #18181b0d;--shadow-md:0 4px 16px #18181b14;--ease:cubic-bezier(.2, 0, 0, 1);--dur:.14s;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-sans);font-size:var(--text-body);color:var(--color-text-primary);background:var(--color-background);-webkit-font-smoothing:antialiased;line-height:1.5}*{box-sizing:border-box}body{margin:0}h1,h2,h3{color:var(--color-text-primary);letter-spacing:-.01em}h1{font-size:var(--text-title);margin:0 0 var(--space-4);font-weight:600;line-height:1.3}h2{font-size:var(--text-section);margin:0 0 var(--space-3);font-weight:600;line-height:1.4}h3{font-size:var(--text-card);margin:var(--space-4) 0 var(--space-2);font-weight:600;line-height:1.4}h1 small,h2 small,h3 small{font-size:var(--text-secondary);letter-spacing:0;font-weight:400}p{margin:0 0 var(--space-3)}a{color:var(--color-primary);transition:color var(--dur) var(--ease);text-decoration:none}a:hover{color:var(--color-primary-hover);text-underline-offset:2px;text-decoration:underline}code,.mono{font-family:var(--font-mono);font-size:12.5px}code{background:var(--color-surface-subtle);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);padding:1px 5px}.muted{color:var(--color-text-muted)}.center{text-align:center;color:var(--color-text-muted);margin-top:20vh}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}::selection{background:var(--color-primary-subtle)}ul.plain{padding:0;list-style:none}.shell{grid-template-columns:240px minmax(0,1fr);min-height:100vh;display:grid}.side{background:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--space-5) var(--space-3);flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.brand{align-items:center;gap:var(--space-2);padding:0 var(--space-3);margin-bottom:var(--space-6);font-size:15px;font-weight:600;display:flex}.brand-mark{border-radius:var(--radius-sm);background:var(--color-surface-inverse);width:24px;height:24px;color:var(--color-text-inverse);place-items:center;font-size:13px;font-weight:700;display:grid}.brand-sub{color:var(--color-text-muted);font-weight:500}.side nav{flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.nav-group{font-size:var(--text-caption);color:var(--color-text-muted);padding:var(--space-4) var(--space-3) var(--space-1);font-weight:500}.nav-group:first-child{padding-top:0}.side nav a{align-items:center;gap:var(--space-3);color:var(--color-text-secondary);height:34px;padding:0 var(--space-3);border-radius:var(--radius-md);transition:background var(--dur) var(--ease), color var(--dur) var(--ease);font-weight:500;text-decoration:none;display:flex;position:relative}.side nav a svg{width:16px;height:16px;color:var(--color-text-muted);transition:color var(--dur) var(--ease);flex:none}.side nav a:hover{background:var(--color-surface-subtle);color:var(--color-text-primary);text-decoration:none}.side nav a.active{background:var(--color-surface-hover);color:var(--color-text-primary);font-weight:600}.side nav a.active svg{color:var(--color-primary)}.side nav a.active:before{content:"";background:var(--color-primary);border-radius:0 3px 3px 0;width:3px;position:absolute;top:9px;bottom:9px;left:0}.who{align-items:center;gap:var(--space-3);border-top:1px solid var(--color-border);padding:var(--space-4) var(--space-3) 0;display:flex}.who-avatar{border-radius:var(--radius-pill);background:var(--color-surface-hover);width:32px;height:32px;color:var(--color-text-secondary);flex:none;place-items:center;font-size:13px;font-weight:600;display:grid}.who-text{flex:1;min-width:0}.who-text div{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.who-text small{color:var(--color-text-muted);font-size:var(--text-caption);display:block}.topbar{display:none}.main{padding:var(--space-8) var(--space-10) var(--space-16);width:100%;max-width:1280px}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.page-header h1{align-items:baseline;gap:var(--space-2);flex-wrap:wrap;margin:0;display:flex}.page-header .desc{color:var(--color-text-secondary);margin:var(--space-1) 0 0;max-width:720px}.page-header .eyebrow{font-size:var(--text-caption);color:var(--color-text-muted);margin-bottom:var(--space-1)}.page-header .eyebrow a{color:var(--color-text-muted)}.page-actions{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.head{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.head h1,.head h2{margin:0}.section-title{justify-content:space-between;align-items:center;gap:var(--space-3);margin:var(--space-8) 0 var(--space-3);display:flex}.section-title h2{margin:0}.row{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.row+.row{margin-top:var(--space-2)}.grid2{gap:0 var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.grid3{gap:0 var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.grid4{gap:0 var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.stack>*+*{margin-top:var(--space-4)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);margin-bottom:var(--space-4)}.card>h2:first-child,.card>.head:first-child h2{margin-top:0}.card .card{background:0 0;border:none;margin:0;padding:0}.boxed{background:var(--color-surface-subtle);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-4);margin:var(--space-3) 0}.boxed .boxed{background:var(--color-surface)}.boxed>h3:first-child{margin-top:0}fieldset.boxed{margin:var(--space-3) 0 var(--space-4)}fieldset.boxed legend{padding:0 var(--space-1);font-size:var(--text-secondary);font-weight:600}details>summary{cursor:pointer;align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);flex-wrap:wrap;list-style:none;display:flex}details>summary::-webkit-details-marker{display:none}details>summary:before{content:"";border-right:1.5px solid var(--color-text-muted);border-bottom:1.5px solid var(--color-text-muted);width:6px;height:6px;transition:transform var(--dur) var(--ease);flex:none;margin-right:2px;transform:rotate(-45deg)}details[open]>summary:before{transform:rotate(45deg)}details.card>summary{font-size:var(--text-section)}details.boxed>summary{font-size:var(--text-body)}.savebar{bottom:var(--space-4);z-index:5;align-items:center;gap:var(--space-3);box-shadow:var(--shadow-md);padding:var(--space-3) var(--space-4);display:flex;position:sticky}button,.btn{font:inherit;font-size:var(--text-body);justify-content:center;align-items:center;gap:var(--space-2);height:var(--control-h);padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text-primary);cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-sm);transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);font-weight:500;line-height:1;display:inline-flex}button:hover:not(:disabled){background:var(--color-surface-subtle);border-color:var(--color-border-strong)}button:active:not(:disabled){background:var(--color-surface-hover)}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}button svg{width:16px;height:16px}button.primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-foreground)}button.primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}button.primary:active:not(:disabled){background:var(--color-primary-active)}button.danger{color:var(--color-error)}button.danger:hover:not(:disabled){background:var(--color-error-subtle);border-color:var(--color-error-border)}button.ghost,button.link{box-shadow:none;background:0 0;border-color:#0000}button.ghost{color:var(--color-text-secondary)}button.ghost:hover:not(:disabled){background:var(--color-surface-subtle);color:var(--color-text-primary);border-color:#0000}button.link{height:auto;padding:2px var(--space-1);color:var(--color-primary);border-radius:var(--radius-sm);font-weight:500}button.link:hover:not(:disabled){color:var(--color-primary-hover);text-underline-offset:2px;background:0 0;border-color:#0000;text-decoration:underline}button.link.danger{color:var(--color-error)}button.link.danger:hover:not(:disabled){color:var(--color-error);background:0 0}button.sm{height:var(--control-h-sm);padding:0 var(--space-3);font-size:var(--text-secondary)}button.icon{width:var(--control-h);padding:0}td button.link+button.link{margin-left:var(--space-2)}.field{margin-bottom:var(--space-4);flex-direction:column;gap:6px;min-width:0;display:flex}.field>label,.field>.label{font-weight:500;font-size:var(--text-secondary);color:var(--color-text-primary)}.hint{color:var(--color-text-muted);font-size:var(--text-caption);line-height:1.45}.error{color:var(--color-error);font-size:var(--text-caption)}input,select,textarea{font:inherit;font-size:var(--text-body);width:100%;color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:0 var(--space-3);height:var(--control-h);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), background var(--dur) var(--ease)}textarea{height:auto;padding:var(--space-2) var(--space-3);resize:vertical;line-height:1.5}textarea.mono{font-family:var(--font-mono);font-size:12.5px;line-height:1.45}select{appearance:none;padding-right:var(--space-8);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b6b73' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:#bdbdb6}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-ring);outline:none}input:disabled,select:disabled,textarea:disabled{background:var(--color-surface-subtle);color:var(--color-text-secondary);cursor:not-allowed}input::placeholder,textarea::placeholder{color:#a1a1a8}[aria-invalid=true]{border-color:var(--color-error)}input[type=checkbox],input[type=radio]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer;box-shadow:none;padding:0}input[type=range]{height:auto;accent-color:var(--color-primary);box-shadow:none;background:0 0;border:none;padding:0}.row input:not([type=checkbox]){flex:1;width:auto;min-width:160px}.check{align-items:center;gap:var(--space-2);margin:var(--space-1) 0 var(--space-4);min-height:24px;display:flex}.check label{font-size:var(--text-body);cursor:pointer}.inline-check{align-items:center;gap:6px;display:flex}.inline-check input{width:auto}form.card>button.primary,form.card>.row:last-child{margin-top:var(--space-1)}.chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.chips:empty{display:none}.chips li{background:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:2px 2px 2px var(--space-2);font-size:var(--text-secondary);align-items:center;gap:2px;max-width:100%;display:flex}.chips li span{overflow-wrap:anywhere}.chips li button{width:22px;height:22px;box-shadow:none;color:var(--color-text-muted);border-radius:var(--radius-sm);background:0 0;border:none;padding:0;font-size:15px}.chips li button:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text-primary)}.tabs{gap:var(--space-1);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-5);scrollbar-width:none;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs button{height:38px;padding:0 var(--space-3);box-shadow:none;color:var(--color-text-muted);background:0 0;border:none;border-radius:0;flex:none;font-weight:500;position:relative}.tabs button:after{content:"";left:var(--space-2);right:var(--space-2);height:2px;transition:background var(--dur) var(--ease);background:0 0;border-radius:2px;position:absolute;bottom:-1px}.tabs button:hover:not(:disabled){color:var(--color-text-primary);background:0 0}.tabs button.on{color:var(--color-text-primary)}.tabs button.on:after{background:var(--color-primary)}table{border-collapse:separate;border-spacing:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;margin:0 0 var(--space-6);font-size:var(--text-body);overflow:hidden}caption{text-align:left;padding:0 0 var(--space-2);font-weight:600}th,td{text-align:left;padding:10px var(--space-4);border-bottom:1px solid var(--color-border-subtle);vertical-align:middle}th{font-size:var(--text-caption);color:var(--color-text-muted);background:var(--color-surface-subtle);border-bottom:1px solid var(--color-border);white-space:nowrap;font-weight:500}tbody tr{transition:background var(--dur) var(--ease)}tbody tr:hover{background:#fafaf8}tbody tr:last-child td{border-bottom:none}td input,td select{height:var(--control-h-sm);min-width:4rem}.card table{margin:0 calc(var(--space-6) * -1);width:calc(100% + var(--space-6) * 2);border:none;border-radius:0}.card table th:first-child,.card table td:first-child{padding-left:var(--space-6)}.card table th:last-child,.card table td:last-child{padding-right:var(--space-6)}.boxed table,.card .boxed table{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;margin:0}.badge{height:22px;padding:0 var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-caption);white-space:nowrap;vertical-align:middle;background:var(--color-surface-subtle);color:var(--color-text-secondary);border:1px solid var(--color-border);margin:0 var(--space-1) var(--space-1) 0;align-items:center;gap:4px;font-weight:500;display:inline-flex}.badge.ok{background:var(--color-success-subtle);color:var(--color-success);border-color:var(--color-success-border)}.badge.warn{background:var(--color-warning-subtle);color:var(--color-warning);border-color:var(--color-warning-border)}.badge.bad{background:var(--color-error-subtle);color:var(--color-error);border-color:var(--color-error-border)}.badge.ok:before,.badge.warn:before,.badge.bad:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.notice{white-space:pre-wrap;border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);border:1px solid var(--color-info-border);background:var(--color-info-subtle);color:var(--color-info);font-size:var(--text-body);animation:fade-in .18s var(--ease)}.notice.ok{background:var(--color-success-subtle);border-color:var(--color-success-border);color:#14532d}.notice.warn{background:var(--color-warning-subtle);border-color:var(--color-warning-border);color:#713f12}.notice.error{background:var(--color-error-subtle);border-color:var(--color-error-border);color:#7a1d14}.spinner{opacity:.85;border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:14px;height:14px;animation:.7s linear infinite spin;display:inline-block}.loading{align-items:center;gap:var(--space-3);color:var(--color-text-muted);padding:var(--space-6) 0;display:flex}.skeleton{background:linear-gradient(90deg, var(--color-surface-subtle) 0%, var(--color-surface-hover) 50%, var(--color-surface-subtle) 100%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.4s ease-in-out infinite shimmer}.skeleton-line{height:12px;margin-bottom:var(--space-3)}.empty{text-align:center;padding:var(--space-10) var(--space-6);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface);margin-bottom:var(--space-6)}.empty-icon{width:40px;height:40px;margin:0 auto var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-subtle);color:var(--color-text-muted);place-items:center;display:grid}.empty-icon svg{width:20px;height:20px}.empty h3{margin:0 0 var(--space-1)}.empty p{color:var(--color-text-secondary);max-width:420px;margin:0 auto var(--space-4)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes fade-in{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:none}}.stats{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid;overflow:hidden}.stat{padding:var(--space-4) var(--space-5);border-right:1px solid var(--color-border-subtle)}.stat:last-child{border-right:none}.stat span{color:var(--color-text-muted);font-size:var(--text-secondary);margin-bottom:var(--space-1);display:block}.stat b{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:24px;font-weight:600;display:block}.type-list{gap:var(--space-2);flex-wrap:wrap;display:flex}.cards{gap:var(--space-4);margin-bottom:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.card.persona{gap:var(--space-4);color:inherit;padding:var(--space-5);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);margin:0;text-decoration:none;display:flex}.card.persona:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm);text-decoration:none}.card.persona h3{margin:0 0 2px}.card.persona p{margin:0 0 var(--space-2);font-size:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.card.persona img,.avatar{border-radius:var(--radius-pill);object-fit:cover;flex:none;width:48px;height:48px}.avatar{background:var(--color-surface-hover);color:var(--color-text-secondary);place-items:center;font-size:18px;font-weight:600;display:grid}pre.scroll{background:var(--color-surface-subtle);border:1px solid var(--color-border-subtle);max-height:520px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin:var(--space-3) 0;overflow:auto}code.wrap{white-space:pre-wrap;word-break:break-word;color:var(--color-text-secondary);background:0 0;border:none;padding:0}.bar{align-items:center;gap:var(--space-2);font-size:var(--text-secondary);grid-template-columns:96px 1fr 40px;margin:6px 0;display:grid}.bar div{background:var(--color-primary);border-radius:var(--radius-pill);min-width:2px;height:8px}.login{min-height:100vh;padding:var(--space-6);place-items:center;display:grid}.login-panel{width:min(380px,100%)}.login-panel .brand{margin-bottom:var(--space-8);justify-content:center;padding:0}.login .card{padding:var(--space-8);box-shadow:var(--shadow-sm)}.login .card h1{margin-bottom:var(--space-1);font-size:20px}.login .card p.muted{margin-bottom:var(--space-6)}.login button.primary{width:100%;margin-top:var(--space-2)}.lab{gap:var(--space-4);margin-bottom:var(--space-4);grid-template-columns:minmax(340px,420px) minmax(0,1fr);align-items:start;display:grid}.phone{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;height:70vh;min-height:480px;display:flex;overflow:hidden}.phone-head{background:var(--color-surface);color:var(--color-text-primary);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;font-weight:600;display:flex}.phone-head small{color:var(--color-text-muted);font-weight:400}.thread{padding:var(--space-4);gap:var(--space-2);background:var(--color-surface-subtle);flex-direction:column;flex:1;display:flex;overflow-y:auto}.bubble{max-width:82%;padding:var(--space-2) var(--space-3);white-space:pre-wrap;animation:fade-in .16s var(--ease);overflow-wrap:anywhere;border-radius:14px;line-height:1.45}.bubble.user{background:var(--color-primary);color:var(--color-primary-foreground);border-bottom-right-radius:4px;align-self:flex-end}.bubble.persona{background:var(--color-surface);border:1px solid var(--color-border);border-bottom-left-radius:4px;align-self:flex-start}.bubble img{border-radius:var(--radius-md);max-width:100%;margin-top:6px;display:block}.bubble audio{width:100%;margin-top:6px}.bubble .safety{font-size:var(--text-caption);background:var(--color-error-subtle);color:var(--color-error);border:1px solid var(--color-error-border);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);margin-bottom:6px}.offer{margin-top:var(--space-2);flex-direction:column;gap:6px;display:flex}.offer button{align-self:flex-start}.offer-lock{border-radius:var(--radius-md);background:var(--color-surface-hover);border:1px solid var(--color-border);place-items:center;min-height:64px;display:grid;position:relative;overflow:hidden}.offer-lock.image{height:180px}.offer-lock img{object-fit:cover;filter:blur(18px);width:100%;height:100%;margin:0;position:absolute;inset:0;transform:scale(1.1)}.offer-lock span{color:var(--color-text-inverse);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-secondary);background:#18181bc7;position:relative}.composer{gap:var(--space-2);padding:var(--space-3);border-top:1px solid var(--color-border);background:var(--color-surface);display:flex}.composer input{flex:1}.chips-row{padding:0 var(--space-3) var(--space-3);background:var(--color-surface);flex-wrap:wrap;gap:6px;display:flex}.chip{height:28px;padding:0 var(--space-3);font-size:var(--text-caption);border-radius:var(--radius-pill);box-shadow:none;color:var(--color-text-secondary)}.chip.on{background:var(--color-primary-subtle);color:var(--color-primary);border-color:var(--color-primary)}.chip.on:hover:not(:disabled){background:var(--color-primary-subtle);border-color:var(--color-primary)}.trigger{padding:var(--space-2) var(--space-3) 0;border-top:1px solid var(--color-border);font-size:var(--text-caption);color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.trigger-top{gap:var(--space-2) var(--space-4);flex-wrap:wrap;align-items:center;display:flex}.trigger-top .check{margin:0}.trigger-top strong{font-weight:600;font-size:var(--text-secondary)}.trace{min-height:480px;max-height:70vh;font-size:var(--text-secondary);margin:0;overflow-y:auto}.trace-item{border-left:2px solid var(--color-border-strong);padding:2px var(--space-3);margin-bottom:var(--space-4);color:var(--color-text-secondary);animation:fade-in .16s var(--ease)}.trace-item:first-of-type{border-left-color:var(--color-primary)}.trace-item>b{color:var(--color-text-primary);text-transform:capitalize;margin-bottom:2px;display:block}.trace-item ul{margin:var(--space-1) 0;padding-left:18px}.arc-split{gap:var(--space-6);grid-template-columns:1.1fr .9fr;align-items:start;display:grid}.ladder{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.stage{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);background:var(--color-surface);transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease)}.stage.on{border-color:var(--color-primary);background:var(--color-primary-subtle)}.stage.held{border-style:dashed;border-color:var(--color-warning)}.stage .sh{justify-content:space-between;gap:var(--space-3);align-items:center;display:flex}.stage .band{font-size:var(--text-caption);color:var(--color-text-muted);white-space:nowrap;font-variant-numeric:tabular-nums}.stage .obj{color:var(--color-text-secondary);font-size:var(--text-secondary);margin-top:var(--space-1)}.vchips{margin:var(--space-2) 0 var(--space-3);flex-wrap:wrap;gap:6px;display:flex}.vchip{font-size:var(--text-caption);padding:1px var(--space-2);border-radius:var(--radius-sm);background:var(--color-surface-subtle);border:1px solid var(--color-border);color:var(--color-text-secondary)}.vchip.f{color:var(--color-error);border-color:var(--color-error-border);background:var(--color-error-subtle)}.sim{background:var(--color-surface-subtle);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-4)}.sim input[type=range]{width:100%;margin:var(--space-1) 0 var(--space-3)}.scoreval{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:28px;font-weight:600}.stagename{color:var(--color-primary);font-weight:600}.lbl{font-size:var(--text-caption);color:var(--color-text-muted);margin-top:var(--space-1);font-weight:500;display:block}.barwrap{background:var(--color-surface-hover);border-radius:var(--radius-pill);height:6px;margin:var(--space-2) 0 var(--space-3);overflow:hidden}.vbar{background:var(--color-primary);border-radius:var(--radius-pill);height:100%;transition:width .12s var(--ease)}.kvl{gap:6px var(--space-4);margin:var(--space-3) 0;font-size:var(--text-secondary);grid-template-columns:max-content 1fr;display:grid}.kvl dt{color:var(--color-text-primary);font-weight:500}.kvl dt:first-letter{text-transform:uppercase}.kvl dd{color:var(--color-text-secondary);margin:0}@media (width<=1100px){.main{padding:var(--space-6) var(--space-6) var(--space-12)}.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}.lab,.arc-split{grid-template-columns:1fr}.trace{min-height:0;max-height:50vh}}@media (width<=860px){.shell{grid-template-columns:1fr}.side{z-index:30;width:260px;transition:transform .2s var(--ease);box-shadow:var(--shadow-md);position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.shell.nav-open .side{transform:none}.scrim{z-index:20;height:auto;box-shadow:none;background:#18181b4d;border:none;border-radius:0;position:fixed;inset:0}.topbar{align-items:center;gap:var(--space-3);z-index:10;height:52px;padding:0 var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;position:sticky;top:0}.topbar .brand{margin:0;padding:0}.main{padding:var(--space-5) var(--space-4) var(--space-12)}.grid2,.grid3,.grid4{grid-template-columns:1fr}.stat{border-right:none;border-bottom:1px solid var(--color-border-subtle)}table{display:block;overflow-x:auto}.card{padding:var(--space-4)}.card table{margin:0 calc(var(--space-4) * -1);width:calc(100% + var(--space-4) * 2)}.phone{height:64vh;min-height:400px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.mt-0{margin-top:0!important}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.grow{flex:1;min-width:0}.text-right{text-align:right}.row.between{justify-content:space-between}.head .check,.toolbar .check{margin:0}.toolbar{align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.toolbar .field{margin:0}.toolbar-filter{width:200px}.toolbar-filter.wide{width:320px;max-width:100%}.toolbar .check{height:var(--control-h)}.toolbar-count{font-size:var(--text-secondary);align-self:center;margin-left:auto}th.actions,td.actions{text-align:right;white-space:nowrap}td .mono.muted{font-size:var(--text-caption);margin-top:2px}.span-2{grid-column:1/-1}.avatar-field{gap:var(--space-4);flex-wrap:wrap;align-items:flex-start;display:flex}.avatar-preview{object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-2,#f4f4f6);width:96px;height:96px}.avatar-empty{text-align:center;width:96px;height:96px;color:var(--color-text-muted,#666);border:1px dashed var(--color-border);border-radius:var(--radius-md);padding:var(--space-2);place-items:center;font-size:.75rem;display:grid}.avatar-field .grow{flex:1;min-width:240px}.avatar-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5)}.avatar-card-head{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);font-size:var(--text-card);display:flex}.avatar-card-head .opt{color:var(--color-text-muted);font-weight:400;font-size:var(--text-caption)}.avatar-pill{font-size:var(--text-caption);border-radius:var(--radius-pill);border:1px solid;margin-left:auto;padding:2px 10px;font-weight:500}.avatar-pill.ok{color:var(--color-success);background:var(--color-success-subtle);border-color:var(--color-success-border)}.avatar-pill.linked{color:var(--color-info);background:var(--color-info-subtle);border-color:var(--color-info-border)}.avatar-card-body{gap:var(--space-6);flex-wrap:wrap;align-items:flex-start;display:flex}.avatar-drop{border-radius:var(--radius-lg);background:var(--color-primary-subtle);border:2px dashed var(--color-border-strong);width:128px;height:128px;transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease);flex:none;place-items:center;display:grid;position:relative;overflow:hidden}.avatar-drop.has{border-style:solid;border-color:var(--color-border)}.avatar-drop.drag{border-color:var(--color-primary);background:var(--color-primary-subtle);box-shadow:0 0 0 3px var(--color-primary-ring)}.avatar-img{object-fit:cover;width:100%;height:100%;display:block}.avatar-initial{color:var(--color-primary);font-size:44px;font-weight:600}.avatar-busy{background:#ffffffbf;place-items:center;display:grid;position:absolute;inset:0}.avatar-side{flex:1;min-width:260px}.avatar-hint{margin:0 0 var(--space-3);color:var(--color-text-secondary);font-size:var(--text-secondary);line-height:1.5}.avatar-actions{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}label.btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-foreground)}label.btn.primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}label.btn.disabled{opacity:.5;pointer-events:none}.avatar-actions:has(#avatar-upload:focus-visible) label.btn{outline:2px solid var(--color-primary);outline-offset:2px}.avatar-or{font-size:var(--text-caption);margin-left:var(--space-1)}.avatar-link summary{cursor:pointer;color:var(--color-primary);font-size:var(--text-secondary);margin-bottom:var(--space-3);font-weight:500}.avatar-link .field{margin-bottom:0}.preview-img{border-radius:var(--radius-md);border:1px solid var(--color-border);width:100%;max-width:320px;margin-top:var(--space-3);display:block}.page-header .desc .badge{margin-top:var(--space-1)}.thread-empty{text-align:center;color:var(--color-text-muted);font-size:var(--text-secondary);max-width:260px;margin:auto}.typing{align-items:center;gap:3px;height:18px;display:inline-flex}.typing i{background:var(--color-text-muted);border-radius:50%;width:6px;height:6px;animation:1s ease-in-out infinite typing}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes typing{0%,80%,to{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}.card>details>summary{padding:var(--space-1) 0}.card>details{margin-top:var(--space-2);border-top:1px solid var(--color-border-subtle);padding-top:var(--space-3)}@media (width<=860px){.toolbar-filter,.toolbar-filter.wide{width:100%}.toolbar-count{margin-left:0}}.choice-list{gap:var(--space-2);margin-bottom:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.choice{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;background:var(--color-surface);transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease);display:flex}.choice:hover{border-color:var(--color-border-strong)}.choice.on{border-color:var(--color-primary);background:var(--color-primary-subtle)}.choice input{flex:none}.skill-group{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-3);overflow:hidden}.skill-group-head{gap:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--color-surface-subtle);border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:baseline;display:flex}.skill-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border-subtle);display:flex}.skill-row:last-child{border-bottom:none}.skill-row .check{margin:0}.skill-row .check .mono{font-size:var(--text-caption);margin-left:var(--space-1)}.skill-row-meta{align-items:center;gap:var(--space-2);font-size:var(--text-secondary);white-space:nowrap;display:flex}.field-label{font-weight:500;font-size:var(--text-secondary);color:var(--color-text-primary);flex-wrap:wrap;align-items:baseline;gap:6px;display:inline-flex}.field-label .req{color:var(--color-error);font-weight:600}.field-label .opt{color:var(--color-text-muted);font-weight:400;font-size:var(--text-caption)}.req-legend{font-size:var(--text-caption);color:var(--color-text-muted);margin:0 0 var(--space-4)}.req-legend .req{color:var(--color-error);font-weight:600}legend .req,h3 .req{color:var(--color-error);margin-left:4px;font-weight:600}legend .opt,h3 .opt{color:var(--color-text-muted);font-weight:400;font-size:var(--text-caption);margin-left:6px}
