@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Serif:wght@400;700&family=IBM+Plex+Sans:wght@300;400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--bg-sunken:#08090d;--bg-base:#0f1219;--bg-raised:#161b27;--bg-surface:#1e2435;--bg-surface-hi:#262d43;--bg-surface-top:#2e3651;--hairline:#1e1f23;--hairline-strong:#343539;--border-width:1px;--border-color:var(--hairline);--text-primary:#f0f2f8;--text-secondary:#b8bed4;--text-muted:#7b82a8;--text-faint:#555c6e;--text-mute-line:#2e3044;--text-on-accent:#fff;--text-on-signal:#08090d;--accent:#60a5fa;--accent-hover:#93c5fd;--accent-soft:#60a5fa33;--accent-on-dark:#60a5fa;--accent-gradient:linear-gradient(135deg, #38bdf8, #60a5fa, #a78bfa);--sky:#38bdf8;--signal-go:#22c55e;--signal-warn:#d08a2a;--signal-error:#ef4444;--font-sans:"IBM Plex Sans", "Helvetica Neue", system-ui, -apple-system, sans-serif;--font-display:"IBM Plex Serif", Georgia, serif;--font-mono:"IBM Plex Mono", "Courier New", ui-monospace, monospace;--text-2xs:.875rem;--text-xs:.875rem;--text-sm:.875rem;--text-base:.875rem;--text-md:1rem;--text-lg:1.063rem;--text-xl:1.375rem;--text-2xl:1.875rem;--text-3xl:2.375rem;--text-4xl:2.875rem;--leading-tight:1.1;--leading-snug:1.3;--leading-normal:1.5;--leading-relaxed:1.65;--leading-loose:1.85;--tracking-tight:-.014em;--tracking-display:-.005em;--tracking-normal:0;--tracking-mono:.08em;--tracking-mono-wide:.14em;--tracking-mono-xwide:.18em;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--space-0:0;--space-1:.125rem;--space-2:.25rem;--space-3:.375rem;--space-4:.5rem;--space-5:.625rem;--space-6:.75rem;--space-7:.875rem;--space-8:1rem;--space-9:1.125rem;--space-10:1.25rem;--space-11:1.375rem;--space-12:1.5rem;--space-14:1.75rem;--space-16:2rem;--space-18:2.25rem;--space-20:2.5rem;--space-22:2.75rem;--space-24:3rem;--space-28:3.5rem;--space-32:4rem;--space-40:5rem;--space-48:6rem;--space-60:7.5rem;--radius-sm:3px;--radius-md:4px;--radius-lg:6px;--radius-none:0;--header-height:60px;--duration-fast:.12s;--duration-base:.18s;--duration-slow:.24s;--ease:ease;--ease-out:cubic-bezier(.2, .7, .2, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-size:100%}html,body{height:100%;margin:0;overflow:hidden}body{font-family:var(--font-sans);font-size:var(--text-md);font-weight:var(--weight-regular);color:var(--text-primary);background-color:var(--bg-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--weight-semibold);color:var(--text-primary);line-height:var(--leading-tight);letter-spacing:var(--tracking-display);margin:0}code,kbd,pre{font-family:var(--font-mono);font-size:.95em}strong{font-weight:var(--weight-semibold);color:var(--text-primary)}em{color:var(--text-secondary);font-style:normal}:focus{outline:none}:focus-visible{outline:2px solid var(--accent-soft);outline-offset:2px}::selection{background-color:var(--accent);color:var(--text-on-accent)}:root{scrollbar-width:thin;scrollbar-color:#ffffff38 transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:#ffffff38;background-clip:content-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background-color:#ffffff59}.login-page{background:var(--bg-base);width:100%;height:100vh;padding:var(--space-16);box-sizing:border-box;justify-content:center;align-items:center;display:flex}.login-card{background:var(--bg-raised);border:1px solid var(--hairline-strong);border-radius:var(--radius-md);width:100%;max-width:360px;padding:var(--space-24);box-sizing:border-box}.login-card-heading{gap:var(--space-4);margin-bottom:var(--space-20);flex-direction:column;display:flex}.login-card-brand{font-family:var(--font-display);font-weight:500;font-size:var(--text-lg);color:var(--text-secondary);letter-spacing:.03em}.login-card-title{font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--text-primary);margin:0}.login-form{gap:var(--space-8);flex-direction:column;display:flex}.login-form-label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--weight-medium)}.login-form-input{box-sizing:border-box;background:var(--bg-sunken);border:1px solid var(--hairline-strong);border-radius:var(--radius-md);width:100%;font-family:var(--font-sans);font-size:var(--text-md);color:var(--text-primary);caret-color:var(--text-primary);transition:border-color var(--duration-fast) var(--ease);outline:none;padding:10px 12px}.login-form-input::placeholder{color:var(--text-faint)}.login-form-input:focus{border-color:var(--accent)}.login-form-input--error{border-color:var(--signal-error)}.login-form-error{font-size:var(--text-sm);color:var(--signal-error);margin:0;line-height:1.5}.login-form-identity{margin:0 0 var(--space-4);font-size:var(--text-sm);color:var(--text-secondary)}.login-form-identity strong{color:var(--text-primary)}.login-form-link{min-width:unset;color:var(--accent);font-family:var(--font-sans);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.login-form-link:hover{color:var(--accent-hover);opacity:1;background:0 0}.login-form-submit{margin-top:var(--space-4);background:var(--accent-gradient);color:var(--text-on-accent);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--text-md);font-weight:var(--weight-medium);cursor:pointer;transition:opacity var(--duration-fast) var(--ease);border:none;padding:10px 14px}.login-form-submit:hover{opacity:.88}.students-page{background:var(--bg-base);flex-direction:column;width:100%;height:100vh;display:flex;overflow:hidden}.students-header{height:var(--header-height);box-sizing:border-box;border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;gap:var(--space-8);flex-shrink:0;padding:0 20px;display:flex}.students-header-brand{align-items:center;gap:var(--space-6);min-width:0;display:flex}.students-header-logo{flex-shrink:0;width:auto;height:28px;display:block}.students-header-brand-text{font-family:var(--font-display);color:var(--text-primary);letter-spacing:.03em;white-space:nowrap;font-size:1.1em;font-weight:500}.students-header-actions{align-items:center;gap:var(--space-10);min-width:0;display:flex}.students-header-back{font-size:var(--text-sm);color:var(--accent);white-space:nowrap;text-decoration:none}.students-header-back:hover{color:var(--accent-hover);text-decoration:underline}.students-header-email{font-size:var(--text-2xs);color:var(--text-muted);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.students-header-logout{border:1px solid var(--hairline-strong);color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--text-2xs);border-radius:var(--radius-md);cursor:pointer;background:0 0;flex-shrink:0;padding:5px 10px}.students-header-logout:hover{color:var(--text-primary);border-color:var(--accent);opacity:1;background:0 0}.students-body{min-height:0;padding:var(--space-24) var(--space-32);box-sizing:border-box;flex:1;overflow-y:auto}.students-title{margin:0 0 var(--space-16);font-family:var(--font-display);font-size:var(--text-2xl);color:var(--text-primary);font-weight:500}.students-add{align-items:center;gap:var(--space-8);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.students-add-label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--weight-medium)}.students-add-input{box-sizing:border-box;background:var(--bg-sunken);border:1px solid var(--hairline-strong);border-radius:var(--radius-md);min-width:260px;font-family:var(--font-sans);font-size:var(--text-md);color:var(--text-primary);caret-color:var(--text-primary);transition:border-color var(--duration-fast) var(--ease);outline:none;padding:8px 12px}.students-add-input::placeholder{color:var(--text-faint)}.students-add-input:focus{border-color:var(--accent)}.students-add-btn{background:var(--accent-gradient);color:var(--text-on-accent);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:opacity var(--duration-fast) var(--ease);border:none;padding:8px 16px}.students-add-btn:hover:not(:disabled){opacity:.88}.students-add-btn:disabled{opacity:.5;cursor:not-allowed}.students-add-hint{margin:0 0 var(--space-8);font-size:var(--text-sm);color:var(--text-muted)}.students-add-error{margin:0 0 var(--space-8);font-size:var(--text-sm);color:var(--signal-error)}.students-row-error{margin:0 0 var(--space-12);font-size:var(--text-sm);color:var(--signal-error)}.students-state{margin-top:var(--space-16);color:var(--text-muted);font-size:var(--text-sm)}.students-state--error{color:var(--signal-error)}.students-table-wrap{margin-top:var(--space-16);border:1px solid var(--hairline);border-radius:var(--radius-md);overflow:hidden}.students-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.students-table thead th{text-align:left;font-weight:var(--weight-medium);color:var(--text-muted);background:var(--bg-raised);padding:var(--space-8) var(--space-12);border-bottom:1px solid var(--hairline)}.students-table tbody td{padding:var(--space-8) var(--space-12);border-bottom:1px solid var(--hairline);color:var(--text-primary)}.students-table tbody tr:last-child td{border-bottom:none}.students-row--revoked td{color:var(--text-muted)}.students-table-role{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-mono);color:var(--text-secondary)}.students-table-num{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap}.students-table-actions{text-align:right;white-space:nowrap}.students-badge{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-mono);text-transform:uppercase;border-radius:var(--radius-sm);padding:2px 8px;display:inline-block}.students-badge--active{color:var(--signal-go);background:#22c55e24}.students-badge--revoked{color:var(--text-muted);background:#7b82a824}.students-action-btn{border:1px solid var(--hairline-strong);color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--text-2xs);border-radius:var(--radius-md);cursor:pointer;background:0 0;padding:4px 10px}.students-action-btn:hover:not(:disabled){color:var(--text-primary);border-color:var(--accent);opacity:1;background:0 0}.students-action-btn:disabled{opacity:.5;cursor:not-allowed}.submit-trade-page{background:var(--bg-base);flex-direction:column;width:100%;height:100vh;display:flex;overflow:hidden}.submit-trade-header{height:var(--header-height);box-sizing:border-box;border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;gap:var(--space-8);flex-shrink:0;padding:0 20px;display:flex}.submit-trade-header-brand{align-items:center;gap:var(--space-6);min-width:0;display:flex}.submit-trade-header-logo{flex-shrink:0;width:auto;height:28px;display:block}.submit-trade-header-brand-text{font-family:var(--font-display);color:var(--text-primary);letter-spacing:.03em;white-space:nowrap;font-size:1.1em;font-weight:500}.submit-trade-header-actions{align-items:center;gap:var(--space-10);min-width:0;display:flex}.submit-trade-header-back{font-size:var(--text-sm);color:var(--accent);white-space:nowrap;text-decoration:none}.submit-trade-header-back:hover{color:var(--accent-hover);text-decoration:underline}.submit-trade-header-email{font-size:var(--text-2xs);color:var(--text-muted);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.submit-trade-header-logout{border:1px solid var(--hairline-strong);color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--text-2xs);border-radius:var(--radius-md);cursor:pointer;background:0 0;flex-shrink:0;padding:5px 10px}.submit-trade-header-logout:hover{color:var(--text-primary);border-color:var(--accent);opacity:1;background:0 0}.submit-trade-body{min-height:0;padding:var(--space-24) var(--space-32);box-sizing:border-box;flex:1;max-width:720px;overflow-y:auto}.submit-trade-title{margin:0 0 var(--space-16);font-family:var(--font-display);font-size:var(--text-2xl);color:var(--text-primary);font-weight:500}.submit-trade-form{gap:var(--space-16);margin-bottom:var(--space-32);flex-direction:column;display:flex}.submit-trade-row{gap:var(--space-12);flex-wrap:wrap;display:flex}.submit-trade-row .submit-trade-field{flex:1;min-width:140px}.submit-trade-field{gap:var(--space-4);flex-direction:column;display:flex}.submit-trade-label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--weight-medium)}.submit-trade-input,.submit-trade-textarea{box-sizing:border-box;background:var(--bg-sunken);border:1px solid var(--hairline-strong);border-radius:var(--radius-md);width:100%;font-family:var(--font-sans);font-size:var(--text-md);color:var(--text-primary);caret-color:var(--text-primary);transition:border-color var(--duration-fast) var(--ease);outline:none;padding:8px 12px}.submit-trade-textarea{resize:vertical;font-family:var(--font-sans);line-height:var(--leading-normal)}.submit-trade-input::placeholder,.submit-trade-textarea::placeholder{color:var(--text-faint)}.submit-trade-input:focus,.submit-trade-textarea:focus{border-color:var(--accent)}.submit-trade-input:disabled,.submit-trade-textarea:disabled{opacity:.6;cursor:not-allowed}.submit-trade-crop-warning{margin:0 0 var(--space-8);padding:var(--space-8) var(--space-10);border-radius:var(--radius-md);color:var(--signal-warn);font-size:var(--text-sm);line-height:var(--leading-snug);background:#d08a2a1f;border:1px solid #d08a2a59}.submit-trade-file-input{color:var(--text-secondary);font-size:var(--text-sm)}.submit-trade-file-hint{margin:var(--space-4) 0 0;font-size:var(--text-xs);color:var(--text-muted)}.submit-trade-file-error{margin:var(--space-4) 0 0;font-size:var(--text-sm);color:var(--signal-error)}.submit-trade-preview{margin-top:var(--space-8);align-items:center;gap:var(--space-10);display:flex}.submit-trade-preview-img{border-radius:var(--radius-md);border:1px solid var(--hairline-strong);object-fit:cover;max-width:160px;max-height:120px;display:block}.submit-trade-preview-remove{border:1px solid var(--hairline-strong);color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--text-2xs);border-radius:var(--radius-md);cursor:pointer;background:0 0;padding:4px 10px}.submit-trade-preview-remove:hover:not(:disabled){color:var(--text-primary);border-color:var(--accent);opacity:1;background:0 0}.submit-trade-preview-remove:disabled{opacity:.5;cursor:not-allowed}.submit-trade-checkbox-row{align-items:center;gap:var(--space-6);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;display:flex}.submit-trade-errors{padding-left:var(--space-16);color:var(--signal-error);font-size:var(--text-sm);line-height:var(--leading-relaxed);margin:0}.submit-trade-notice{padding:var(--space-8) var(--space-10);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:var(--leading-snug);margin:0}.submit-trade-notice--success{color:var(--signal-go);background:#22c55e24}.submit-trade-notice--warning{color:var(--signal-warn);background:#d08a2a24}.submit-trade-submit-btn{background:var(--accent-gradient);color:var(--text-on-accent);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:opacity var(--duration-fast) var(--ease);border:none;align-self:flex-start;padding:9px 20px}.submit-trade-submit-btn:hover:not(:disabled){opacity:.88}.submit-trade-submit-btn:disabled{opacity:.5;cursor:not-allowed}.submit-trade-history{border-top:1px solid var(--hairline);padding-top:var(--space-20)}.submit-trade-history-title{margin:0 0 var(--space-8);font-family:var(--font-display);font-size:var(--text-xl);color:var(--text-primary);font-weight:500}.submit-trade-history-state{margin-top:var(--space-8);color:var(--text-muted);font-size:var(--text-sm)}.submit-trade-history-state--error{color:var(--signal-error)}.submit-trade-history-table-wrap{margin-top:var(--space-8);border:1px solid var(--hairline);border-radius:var(--radius-md);overflow:auto hidden}.submit-trade-history-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.submit-trade-history-table thead th{text-align:left;font-weight:var(--weight-medium);color:var(--text-muted);background:var(--bg-raised);padding:var(--space-8) var(--space-12);border-bottom:1px solid var(--hairline);white-space:nowrap}.submit-trade-history-table tbody td{padding:var(--space-8) var(--space-12);border-bottom:1px solid var(--hairline);color:var(--text-primary);vertical-align:middle}.submit-trade-history-table tbody tr:last-child td{border-bottom:none}.submit-trade-history-symbol{font-family:var(--font-mono);font-weight:var(--weight-medium)}.submit-trade-history-num{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap}.submit-trade-badge{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-mono);text-transform:uppercase;border-radius:var(--radius-sm);white-space:nowrap;padding:2px 8px;display:inline-block}.submit-trade-badge--anon{color:var(--accent);background:#60a5fa24}.submit-trade-badge--named{color:var(--text-muted);background:#7b82a824}.submit-trade-thumb-link{width:56px;height:40px;display:block}.submit-trade-thumb{object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--hairline-strong);background:var(--bg-surface);width:56px;height:40px;display:block}.submit-trade-thumb--loading{background:var(--bg-surface);opacity:.6}.submit-trade-thumb--error,.submit-trade-thumb--none{color:var(--text-faint);font-size:var(--text-xs);justify-content:center;align-items:center;display:flex}.trade-review-page{background:var(--bg-base);flex-direction:column;width:100%;height:100vh;display:flex;overflow:hidden}.trade-review-header{height:var(--header-height);box-sizing:border-box;border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;gap:var(--space-8);flex-shrink:0;padding:0 20px;display:flex}.trade-review-header-brand{align-items:center;gap:var(--space-6);min-width:0;display:flex}.trade-review-header-logo{flex-shrink:0;width:auto;height:28px;display:block}.trade-review-header-brand-text{font-family:var(--font-display);color:var(--text-primary);letter-spacing:.03em;white-space:nowrap;font-size:1.1em;font-weight:500}.trade-review-header-actions{align-items:center;gap:var(--space-10);min-width:0;display:flex}.trade-review-header-back{font-size:var(--text-sm);color:var(--accent);white-space:nowrap;text-decoration:none}.trade-review-header-back:hover{color:var(--accent-hover);text-decoration:underline}.trade-review-header-email{font-size:var(--text-2xs);color:var(--text-muted);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.trade-review-header-logout{border:1px solid var(--hairline-strong);color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--text-2xs);border-radius:var(--radius-md);cursor:pointer;background:0 0;flex-shrink:0;padding:5px 10px}.trade-review-header-logout:hover{color:var(--text-primary);border-color:var(--accent);opacity:1;background:0 0}.trade-review-body{min-height:0;padding:var(--space-24) var(--space-32);box-sizing:border-box;flex:1;overflow-y:auto}.trade-review-title{margin:0 0 var(--space-16);font-family:var(--font-display);font-size:var(--text-2xl);color:var(--text-primary);font-weight:500}.trade-review-stats{gap:var(--space-12);margin-bottom:var(--space-20);flex-wrap:wrap;display:flex}.trade-review-stat{gap:var(--space-2);min-width:140px;padding:var(--space-10) var(--space-14);background:var(--bg-raised);border:1px solid var(--hairline);border-radius:var(--radius-md);flex-direction:column;display:flex}.trade-review-stat-value{font-family:var(--font-mono);font-size:var(--text-xl);font-weight:var(--weight-medium);color:var(--text-primary)}.trade-review-stat-label{font-size:var(--text-xs);color:var(--text-muted)}.trade-review-controls{align-items:flex-end;gap:var(--space-12);margin-bottom:var(--space-16);flex-wrap:wrap;display:flex}.trade-review-field{gap:var(--space-4);flex-direction:column;display:flex}.trade-review-field-label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--weight-medium)}.trade-review-field-input{box-sizing:border-box;background:var(--bg-sunken);border:1px solid var(--hairline-strong);border-radius:var(--radius-md);min-width:180px;font-family:var(--font-sans);font-size:var(--text-md);color:var(--text-primary);caret-color:var(--text-primary);transition:border-color var(--duration-fast) var(--ease);outline:none;padding:8px 12px}.trade-review-field-input::placeholder{color:var(--text-faint)}.trade-review-field-input:focus{border-color:var(--accent)}.trade-review-state{margin-top:var(--space-16);color:var(--text-muted);font-size:var(--text-sm)}.trade-review-state--error{color:var(--signal-error)}.trade-review-grid{gap:var(--space-16);margin-top:var(--space-8);grid-template-columns:repeat(auto-fill,minmax(440px,1fr));display:grid}.trade-review-card{gap:var(--space-10);background:var(--bg-raised);border:1px solid var(--hairline);border-radius:var(--radius-md);padding:var(--space-14);flex-direction:column;display:flex}.trade-review-card-head{justify-content:space-between;align-items:baseline;gap:var(--space-8);display:flex}.trade-review-card-symbol{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-primary);letter-spacing:var(--tracking-mono)}.trade-review-card-date{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap}.trade-review-card-prices{gap:var(--space-8);padding:var(--space-8) var(--space-10);background:var(--bg-surface);border-radius:var(--radius-sm);grid-template-columns:repeat(3,1fr);display:grid}.trade-review-price{gap:var(--space-1);flex-direction:column;display:flex}.trade-review-price-label{font-size:var(--text-2xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--tracking-mono)}.trade-review-price-value{font-family:var(--font-mono);font-size:var(--text-md);color:var(--text-primary)}.trade-review-card-student{font-size:var(--text-sm);color:var(--text-secondary)}.trade-review-shot{border-radius:var(--radius-md);border:1px solid var(--hairline-strong);background:var(--bg-surface);justify-content:stretch;align-items:stretch;width:100%;min-height:260px;display:flex;overflow:hidden}.trade-review-shot-link{width:100%;display:block}.trade-review-shot-img{object-fit:contain;background:var(--bg-surface);width:100%;height:100%;min-height:260px;max-height:480px;display:block}.trade-review-shot-placeholder{width:100%;min-height:260px;color:var(--text-faint);font-size:var(--text-sm);justify-content:center;align-items:center;display:flex}.trade-review-shot-placeholder--error{color:var(--signal-error)}.trade-review-card-section{gap:var(--space-4);flex-direction:column;display:flex}.trade-review-card-section-title{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--tracking-mono);margin:0}.trade-review-card-reasoning,.trade-review-card-outcome{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--text-primary);white-space:pre-wrap;margin:0}.trade-review-load-more{margin-top:var(--space-20);border:1px solid var(--hairline-strong);color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-medium);border-radius:var(--radius-md);cursor:pointer;background:0 0;align-self:center;padding:8px 20px}.trade-review-load-more:hover:not(:disabled){color:var(--text-primary);border-color:var(--accent);opacity:1;background:0 0}.trade-review-load-more:disabled{opacity:.5;cursor:not-allowed}.analytics-page{background:var(--bg-base);flex-direction:column;width:100%;height:100vh;display:flex;overflow:hidden}.analytics-header{height:var(--header-height);box-sizing:border-box;border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;gap:var(--space-8);flex-shrink:0;padding:0 20px;display:flex}.analytics-header-brand{align-items:center;gap:var(--space-6);min-width:0;display:flex}.analytics-header-logo{flex-shrink:0;width:auto;height:28px;display:block}.analytics-header-brand-text{font-family:var(--font-display);color:var(--text-primary);letter-spacing:.03em;white-space:nowrap;font-size:1.1em;font-weight:500}.analytics-header-actions{align-items:center;gap:var(--space-10);min-width:0;display:flex}.analytics-header-back{font-size:var(--text-sm);color:var(--accent);white-space:nowrap;text-decoration:none}.analytics-header-back:hover{color:var(--accent-hover);text-decoration:underline}.analytics-header-email{font-size:var(--text-2xs);color:var(--text-muted);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.analytics-header-logout{border:1px solid var(--hairline-strong);color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--text-2xs);border-radius:var(--radius-md);cursor:pointer;background:0 0;flex-shrink:0;padding:5px 10px}.analytics-header-logout:hover{color:var(--text-primary);border-color:var(--accent);opacity:1;background:0 0}.analytics-body{min-height:0;padding:var(--space-24) var(--space-32);box-sizing:border-box;flex:1;overflow-y:auto}.analytics-title{margin:0 0 var(--space-16);font-family:var(--font-display);font-size:var(--text-2xl);color:var(--text-primary);font-weight:500}.analytics-range{align-items:center;gap:var(--space-8);margin-bottom:var(--space-24);flex-wrap:wrap;display:flex}.analytics-range-btn{border:1px solid var(--hairline-strong);color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-medium);border-radius:var(--radius-md);cursor:pointer;background:0 0;padding:6px 14px}.analytics-range-btn:hover{color:var(--text-primary);border-color:var(--accent);opacity:1;background:0 0}.analytics-range-btn--active{background:var(--accent-gradient);color:var(--text-on-accent);border-color:#0000}.analytics-range-btn--active:hover{color:var(--text-on-accent);opacity:.9;border-color:#0000}.analytics-range-label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);margin-left:var(--space-4)}.analytics-section{margin-bottom:var(--space-28)}.analytics-section-head{justify-content:space-between;align-items:center;gap:var(--space-12);flex-wrap:wrap;display:flex}.analytics-section-title{font-family:var(--font-display);font-size:var(--text-lg);color:var(--text-primary);margin:0;font-weight:500}.analytics-state{margin-top:var(--space-12);color:var(--text-muted);font-size:var(--text-sm)}.analytics-state--error{color:var(--signal-error)}.analytics-cards{gap:var(--space-12);margin-top:var(--space-12);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.analytics-card{gap:var(--space-4);padding:var(--space-14);background:var(--bg-raised);border:1px solid var(--hairline);border-radius:var(--radius-md);flex-direction:column;display:flex}.analytics-card-value{font-family:var(--font-mono);font-size:var(--text-xl);font-weight:var(--weight-medium);color:var(--text-primary)}.analytics-card-label{font-size:var(--text-xs);color:var(--text-muted)}.analytics-toggle{gap:var(--space-4);display:flex}.analytics-toggle-btn{border:1px solid var(--hairline-strong);color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--text-2xs);border-radius:var(--radius-md);cursor:pointer;background:0 0;padding:4px 10px}.analytics-toggle-btn:hover{color:var(--text-primary);border-color:var(--accent);opacity:1;background:0 0}.analytics-toggle-btn--active{background:var(--bg-surface-hi);border-color:var(--accent);color:var(--text-primary)}.analytics-daily{margin-top:var(--space-12)}.analytics-daily-scale{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--text-faint);letter-spacing:var(--tracking-mono);margin-bottom:var(--space-6);justify-content:space-between;display:flex}.analytics-daily-rows{gap:var(--space-6);flex-direction:column;display:flex}.analytics-daily-row{align-items:center;gap:var(--space-10);grid-template-columns:64px 1fr 90px;display:grid}.analytics-daily-date{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--text-muted);white-space:nowrap}.analytics-daily-track{background:var(--bg-surface);border:1px solid var(--hairline);border-radius:var(--radius-sm);height:14px;overflow:hidden}.analytics-daily-fill{background:var(--accent-gradient);border-radius:var(--radius-sm);min-width:2px;height:100%;transition:width var(--duration-base) var(--ease-out)}.analytics-daily-value{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--text-secondary);text-align:right;white-space:nowrap}.analytics-table-wrap{margin-top:var(--space-12);border:1px solid var(--hairline);border-radius:var(--radius-md);overflow-x:auto}.analytics-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.analytics-table thead th{text-align:left;font-weight:var(--weight-medium);color:var(--text-muted);background:var(--bg-raised);padding:var(--space-8) var(--space-12);border-bottom:1px solid var(--hairline);white-space:nowrap}.analytics-table tbody td{padding:var(--space-8) var(--space-12);border-bottom:1px solid var(--hairline);color:var(--text-primary)}.analytics-table tbody tr:last-child td{border-bottom:none}.analytics-table-num{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary);text-align:right;white-space:nowrap}.analytics-table-mono{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap}.analytics-disclosure-toggle{justify-content:space-between;align-items:center;gap:var(--space-8);cursor:pointer;text-align:left;background:0 0;border:none;width:100%;padding:0;display:flex}.analytics-disclosure-toggle:hover .analytics-section-title{color:var(--accent-hover)}.analytics-disclosure-chevron{color:var(--text-muted);font-size:var(--text-xs)}.auth-loading{background:var(--bg-base);width:100%;height:100vh;color:var(--text-muted);font-size:var(--text-md);justify-content:center;align-items:center;display:flex}.app-layout{background:var(--bg-base);flex-direction:row;width:100%;height:100vh;display:flex;position:relative;overflow:hidden}.watchlist-panel{border-right:1px solid var(--hairline);background:var(--bg-raised);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.watchlist-panel-inner{flex-direction:column;height:100%;min-height:0;padding:24px;display:flex}.watchlist-header{border-bottom:1px solid var(--hairline);flex-shrink:0;padding:16px 0}.watchlist-header h2{color:var(--text-secondary);margin:0;font-size:1.1em}.watchlist-updated{font-size:var(--text-sm);color:var(--text-muted);font-family:var(--font-mono);margin:4px 0 0}.watchlist-body{flex:1;min-height:0;overflow-y:auto}.watchlist-status{text-align:center;max-width:280px;font-size:var(--text-sm);margin:auto;padding:24px 0;line-height:1.6}.watchlist-status--loading{color:var(--text-muted);font-style:italic}.watchlist-status--error{color:var(--signal-error);border:1px solid var(--signal-error);border-radius:var(--radius-md);padding:14px}.watchlist-status--empty{color:var(--text-secondary)}.watchlist-list{margin:0;padding:0;list-style:none}.watchlist-row{border-bottom:1px solid var(--hairline);padding:10px 20px}.watchlist-row--band3{background:var(--bg-surface)}.watchlist-row-line{grid-template-columns:minmax(0,1fr) auto auto minmax(0,1fr);align-items:baseline;gap:12px;display:grid}.watchlist-left-group{grid-column:1;align-items:baseline;gap:8px;min-width:0;display:flex;overflow:hidden}.watchlist-symbol{font-family:var(--font-mono);font-weight:var(--weight-semibold);color:var(--text-primary);font-size:var(--text-md);flex-shrink:0}.watchlist-raise{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--signal-go);font-weight:var(--weight-medium);white-space:nowrap;grid-column:4;justify-self:end}.watchlist-raise--unquantified{color:var(--text-muted);font-style:italic}.watchlist-company{font-size:var(--text-sm);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;min-width:0;overflow:hidden}.watchlist-volume{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--text-muted);white-space:nowrap;grid-column:2}.watchlist-band3-badge{font-size:var(--text-2xs);color:var(--signal-warn);border-radius:var(--radius-sm);flex-shrink:0;padding:1px 6px}.watchlist-quote-toggle{color:var(--text-secondary);font-size:var(--text-2xs);font-weight:var(--weight-medium);cursor:pointer;min-width:unset;white-space:nowrap;background:0 0;border:none;flex-shrink:0;grid-column:3;justify-self:center;align-items:center;gap:6px;margin-left:12px;padding:0;display:flex}.watchlist-quote-toggle:hover{color:var(--text-primary)}.watchlist-quote-chevron{font-size:10px}.watchlist-quote-text{background:var(--bg-surface);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-secondary);margin:6px 0 0;padding:8px 10px;font-style:italic;line-height:1.5}.chat-area{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.sidebar{flex-direction:column;height:100%;display:flex;overflow:hidden}.sidebar-header{height:var(--header-height);box-sizing:border-box;border-bottom:1px solid var(--hairline);flex-shrink:0;align-items:center;padding:0 12px;display:flex}.sidebar-new-btn{background:var(--accent-gradient);width:100%;color:var(--text-on-accent);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-medium);text-align:center;border:none;padding:9px 12px;transition:opacity .15s}.sidebar-new-btn:hover{opacity:.88}.sidebar-list{flex:1;padding:4px 0;overflow-y:auto}.sidebar-item{cursor:pointer;border-left:2px solid #0000;justify-content:space-between;align-items:center;gap:6px;min-height:48px;padding:8px 12px;display:flex;position:relative}.sidebar-item:hover{background:var(--bg-surface)}.sidebar-item--active{background:var(--bg-surface);border-left-color:var(--accent-on-dark)}.sidebar-item-title{font-size:var(--text-sm);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-weight:var(--weight-medium);flex:1;overflow:hidden}.sidebar-item--active .sidebar-item-title{color:var(--text-primary)}.sidebar-item-meta{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:2px;display:flex}.sidebar-item-date{color:var(--text-muted);white-space:nowrap;font-size:11px}.sidebar-item-actions{align-items:center;gap:2px;display:none}.sidebar-item:hover .sidebar-item-actions{display:flex}.sidebar-item-action-btn{color:var(--text-muted);cursor:pointer;min-width:unset;background:0 0;border:none;padding:2px 4px;font-size:12px;line-height:1}.sidebar-item-action-btn:hover{color:var(--text-secondary)}.sidebar-item-action-btn--delete:hover{color:var(--signal-error)}.sidebar-item-rename-input{background:var(--bg-surface-hi);color:var(--text-primary);border:1px solid var(--accent-soft);font-size:var(--text-sm);font-family:var(--font-sans);outline:none;flex:1;min-width:0;padding:3px 6px}.sidebar-item-spinner{border:2px solid var(--hairline-strong);border-top-color:var(--accent-on-dark);border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.8s linear infinite sidebar-spin}@keyframes sidebar-spin{to{transform:rotate(360deg)}}.sidebar-skeleton{background:var(--bg-surface);height:40px;margin:4px 12px;animation:1.4s ease-in-out infinite sidebar-pulse}@keyframes sidebar-pulse{0%,to{opacity:.4}50%{opacity:.8}}.sidebar-empty{font-size:var(--text-sm);color:var(--text-muted);text-align:center;margin:0;padding:24px 12px}.sidebar-admin-link{box-sizing:border-box;padding:var(--space-8) 12px;border-top:1px solid var(--hairline);font-size:var(--text-sm);color:var(--accent);flex-shrink:0;text-decoration:none;display:block}.sidebar-admin-link:hover{color:var(--accent-hover);text-decoration:underline}.sidebar-footer{justify-content:space-between;align-items:center;gap:var(--space-6);padding:var(--space-8) 12px;border-top:1px solid var(--hairline);flex-shrink:0;display:flex}.sidebar-footer-email{font-size:var(--text-2xs);color:var(--text-muted);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sidebar-footer-logout{border:1px solid var(--hairline-strong);color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--text-2xs);border-radius:var(--radius-md);cursor:pointer;background:0 0;flex-shrink:0;padding:4px 10px}.sidebar-footer-logout:hover{color:var(--text-primary);border-color:var(--accent);opacity:1;background:0 0}.history-toggle-btn{color:var(--text-muted);cursor:pointer;min-width:unset;border-radius:var(--radius-md);transition:color var(--duration-fast), background var(--duration-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;line-height:1;display:inline-flex}.history-toggle-btn:hover{color:var(--text-primary);background:var(--bg-surface)}.history-tray{z-index:200;background:var(--bg-raised);border-left:1px solid var(--hairline);width:260px;max-width:85vw;height:100%;transition:transform var(--duration-base) var(--ease-out);flex-direction:column;display:flex;position:fixed;top:0;right:0;transform:translate(100%)}.history-tray--open{transform:translate(0)}.history-tray-overlay{z-index:199;background:#00000080;display:block;position:fixed;inset:0}@media (width<=768px){.app-layout{flex-direction:column}.watchlist-panel{border-right:none;border-bottom:1px solid var(--hairline);flex:none;height:160px}.chat-area{flex:1;height:100dvh;padding:0}}.chat-container{width:100%;min-height:0;color:var(--text-secondary);flex-direction:column;flex:1;display:flex;overflow:hidden}.chat-header{height:var(--header-height);box-sizing:border-box;border-bottom:1px solid var(--hairline);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 20px;display:flex}.chat-header-brand{align-items:center;gap:var(--space-6);min-width:0;display:flex}.chat-header-logo{flex-shrink:0;width:auto;height:28px;display:block}.chat-header-brand-text{font-family:var(--font-display);color:var(--text-primary);letter-spacing:.03em;white-space:nowrap;text-overflow:ellipsis;font-size:1.1em;font-weight:500;overflow:hidden}.messages{flex-direction:column;flex:1;gap:8px;min-height:0;padding:32px;display:flex;overflow-y:auto}.message.user{background:var(--bg-surface-hi);border-radius:var(--radius-md);word-break:break-word;white-space:pre-wrap;align-self:flex-end;max-width:70%;padding:8px 12px;position:relative}.message.assistant{word-break:break-word;align-self:flex-start;max-width:90%;margin-top:16px;position:relative}.message.assistant p{margin:0;margin-block-end:1.2rem}.message.assistant p:last-child{margin-block-end:0}.message.assistant h1,.message.assistant h2,.message.assistant h3{font-size:1em;font-weight:var(--weight-bold);margin:12px 0 4px}.message.assistant ul,.message.assistant ol{margin:0 0 8px;padding-left:20px}.message.assistant li{margin-bottom:2px}.message.assistant strong{color:var(--text-primary);font-weight:var(--weight-bold)}.message.assistant code{font-family:var(--font-mono);background:var(--bg-raised);border-radius:var(--radius-md);padding:1px 4px;font-size:.9em}.message.assistant pre{background:var(--bg-base);border-radius:var(--radius-md);margin:8px 0;padding:10px 12px;overflow-x:auto}.message.assistant pre code{background:0 0;padding:0}.message.assistant table{border-collapse:collapse;width:100%;font-size:var(--text-sm);margin:8px 0}.message.assistant th,.message.assistant td{border:1px solid var(--hairline);text-align:left;padding:6px 10px}.message.assistant th{background:var(--bg-surface);color:var(--text-secondary);font-weight:600}.message.assistant tr:nth-child(2n) td{background:var(--bg-raised)}.message.assistant blockquote{border-left:3px solid var(--accent);color:var(--text-secondary);margin:4px 0;padding-left:10px}.message.assistant hr{border:none;border-top:1px solid var(--hairline);margin:8px 0}.welcome{text-align:center;color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:32px 24px;display:flex}.welcome h2{color:var(--text-secondary);margin:0;font-size:1.3em}.welcome p{font-size:var(--text-md);text-wrap:balance;max-width:420px;margin:0;line-height:1.6}.welcome-examples{align-items:stretch;gap:var(--space-6);width:100%;max-width:420px;margin-top:var(--space-8);flex-direction:column;display:flex}.example-question-btn{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--hairline-strong);border-radius:var(--radius-md);padding:var(--space-6) var(--space-8);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-regular);text-align:left;cursor:pointer;transition:background var(--duration-fast) var(--ease), color var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease)}.example-question-btn:hover{background:var(--bg-surface-hi);color:var(--text-primary);border-color:var(--accent)}.typing-indicator{align-items:center;gap:4px;height:20px;display:inline-flex}.typing-indicator span{background:var(--text-muted);border-radius:50%;width:6px;height:6px}@media (prefers-reduced-motion:no-preference){.typing-indicator span{animation:1.2s infinite typing-bounce}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}}@keyframes typing-bounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.input-area{border-top:1px solid var(--hairline);flex-direction:column;flex-shrink:0;gap:8px;padding:24px 32px 32px;display:flex}.input-box{background:var(--bg-sunken);border:1px solid var(--hairline-strong);border-radius:var(--radius-md);min-height:130px;transition:border-color var(--duration-fast);flex-direction:column;display:flex;overflow:hidden}.input-box:focus-within{border-color:var(--accent)}.input-box textarea{width:100%;font-family:inherit;font-weight:inherit;font-size:var(--text-md);line-height:var(--leading-normal);box-sizing:border-box;color:var(--text-primary);caret-color:var(--text-primary);resize:none;scrollbar-width:thin;scrollbar-color:#ffffff59 transparent;background:0 0;border:none;outline:none;flex:1;min-height:44px;max-height:240px;padding:10px 12px 4px;overflow-y:auto}.input-box textarea::-webkit-scrollbar{width:6px}.input-box textarea::-webkit-scrollbar-track{background:0 0}.input-box textarea::-webkit-scrollbar-thumb{background-color:#ffffff59;background-clip:content-box;border:1px solid #0000;border-radius:8px}.input-box textarea::selection{background:var(--accent-soft)}.messages ::selection{background:var(--accent-soft)}.input-box-footer{flex-shrink:0;justify-content:space-between;align-items:center;padding:4px 8px 8px;display:flex}.input-box-footer-left,.input-box-footer-right{align-items:center;gap:4px;display:flex}.attach-btn{color:var(--text-muted);min-width:unset;background:0 0;border:none;flex-shrink:0;padding:4px 6px;font-size:16px}.attach-btn:hover{color:var(--text-secondary);opacity:1;background:0 0}.input-area--drag-over .input-box{background:var(--bg-surface-hi);border:2px dashed var(--accent)}.file-preview-chip{background:var(--bg-surface);border:1px solid var(--hairline-strong);border-radius:var(--radius-md);width:100%;font-size:var(--text-sm);color:var(--text-secondary);flex-shrink:0;align-items:center;gap:8px;padding:6px 10px;display:flex}.file-preview-thumb{border-radius:var(--radius-md);object-fit:cover;flex-shrink:0;max-width:56px;max-height:40px;display:block}.file-preview-icon{flex-shrink:0;font-size:1.3em}.file-preview-name{text-overflow:ellipsis;white-space:nowrap;font-weight:var(--weight-medium);flex:1;overflow:hidden}.file-preview-size{color:var(--text-muted);flex-shrink:0}.file-preview-remove{color:var(--text-muted);cursor:pointer;min-width:unset;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:12px;line-height:1}.file-preview-remove:hover{color:var(--text-secondary)}.file-error{width:100%;font-size:var(--text-sm);color:var(--signal-error);padding:0 2px}.attachment-badges{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.attachment-badge{background:var(--bg-base);border:1px solid var(--hairline);border-radius:var(--radius-md);color:var(--text-secondary);align-items:center;gap:5px;max-width:220px;padding:2px 8px 2px 6px;font-size:.75rem;display:inline-flex}.attachment-thumbnail{border-radius:var(--radius-md);border:1px solid var(--hairline);object-fit:cover;max-width:160px;max-height:96px;display:block}.attachment-badge-icon{flex-shrink:0;font-size:.85rem;line-height:1}.attachment-badge-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attachment-badge--expired{color:var(--text-muted);border-color:var(--hairline);opacity:.7}.attachment-badge-expired-label{text-transform:uppercase;letter-spacing:var(--tracking-mono-wide);color:var(--text-faint);flex-shrink:0;font-size:.65rem}button{background:var(--accent);color:var(--text-on-accent);border:1px solid var(--hairline-strong);cursor:pointer;border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:inherit;padding:8px 16px}@media (prefers-reduced-motion:no-preference){button{transition:opacity var(--duration-fast)}}button:disabled{opacity:.6;cursor:not-allowed}.send-btn{background:var(--accent-gradient);border-radius:var(--radius-md);border:none;flex-shrink:0;padding:6px 14px}.error-bubble{border-radius:var(--radius-md);color:var(--signal-warn);background-color:#ee722c1a;border:1px solid #ee722c4d;align-items:center;gap:12px;margin:8px 16px;padding:10px 14px;font-size:14px;display:flex}.retry-btn{border:1px solid var(--signal-warn);color:var(--signal-warn);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;background:0 0;flex-shrink:0;padding:4px 10px;font-size:13px}.retry-btn:hover{background-color:#ee722c26}.stop-btn{background-color:var(--signal-error);color:var(--text-on-signal);border-radius:var(--radius-md);cursor:pointer;border:none;flex-shrink:0;padding:8px 16px;font-size:14px;font-weight:500}.stop-btn:hover{opacity:.85}@media (width<=480px){.message.user,.message.assistant{max-width:90%}.input-area{padding:10px;padding-bottom:max(10px, env(safe-area-inset-bottom))}}.code-block-wrapper{border-radius:var(--radius-md);border:1px solid var(--hairline-strong);margin:.75rem 0;overflow:hidden}.code-block-header{background:var(--bg-surface);color:var(--text-muted);justify-content:space-between;align-items:center;padding:4px 12px;font-size:.75rem;display:flex}.code-block-lang{font-family:var(--font-mono);text-transform:lowercase}.copy-btn{border:1px solid var(--hairline-strong);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;background:0 0;padding:2px 6px;font-size:.8rem;transition:color .15s,border-color .15s}.copy-btn:hover{color:var(--text-primary);border-color:var(--accent)}.copy-btn--copied{color:var(--signal-go);border-color:var(--signal-go)}.citation-link{color:var(--text-muted);font-size:.75em;font-weight:var(--weight-medium);padding:0 1px;text-decoration:none}.citation-link:hover{text-decoration:underline}.sources-panel{border-top:1px solid var(--hairline);margin-top:12px;padding-top:8px}.sources-toggle{color:var(--text-secondary);font-size:12px;font-weight:var(--weight-medium);cursor:pointer;min-width:unset;text-transform:uppercase;letter-spacing:.05em;background:0 0;border:none;align-items:center;gap:6px;padding:0;display:flex}.sources-toggle:hover{color:var(--text-primary)}.sources-toggle-chevron{font-size:10px}.sources-list{flex-direction:column;gap:4px;margin:8px 0 0;padding:0;list-style:none;display:flex}.source-item{border-radius:var(--radius-md);transition:background var(--duration-fast) var(--ease)}.source-item--highlight{background:var(--bg-surface-hi)}.source-link{color:var(--text-secondary);align-items:baseline;gap:6px;padding:4px 6px;font-size:12px;text-decoration:none;display:flex}.source-link:hover{color:var(--text-primary);background:var(--bg-surface)}.source-n{color:var(--accent-on-dark);font-weight:var(--weight-medium);flex-shrink:0}.source-title{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.source-domain{color:var(--text-muted);flex-shrink:0;font-size:11px}
