:root{color-scheme:light;--brand-ring: #3fa9f5;--brand-field: rgba(63, 169, 245, .16);--bg: #f7f9fc;--bg-sidebar: #eef3f9;--surface: #ffffff;--surface-2: #f2f6fa;--surface-3: #e7eef6;--overlay: rgba(14, 22, 32, .42);--border: #dfe6ee;--border-strong: #c7d3df;--text: #18202c;--text-2: #4b5566;--text-3: #6f7a8a;--primary: #1573cc;--primary-hover: #0f62b0;--primary-soft: #e4f1fc;--primary-soft-hover: #d4e8fa;--on-primary: #ffffff;--focus: #3fa9f5;--danger: #c53030;--danger-soft: #fdeded;--warning: #9a5b00;--warning-soft: #fff4dc;--success: #12795a;--success-soft: #e3f6ee;--bubble-user: #e3f0fb;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-xs: 12px;--text-sm: 13px;--text-md: 14px;--text-base: 15px;--text-lg: 16px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 30px;--leading-tight: 1.3;--leading: 1.55;--leading-prose: 1.75;--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: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(18, 32, 48, .06);--shadow-md: 0 1px 2px rgba(18, 32, 48, .05), 0 8px 24px -8px rgba(18, 32, 48, .14);--shadow-lg: 0 24px 64px -16px rgba(18, 32, 48, .3);--ease: cubic-bezier(.2, 0, 0, 1);--duration-fast: .12s;--duration: .2s;--sidebar-width: 268px;--content-width: 768px;--page-width: 1040px;--control-height: 36px}.dark{color-scheme:dark;--brand-ring: #8fd3ff;--brand-field: rgba(63, 169, 245, .1);--bg: #0e151c;--bg-sidebar: #0a1016;--surface: #141d26;--surface-2: #19242f;--surface-3: #213040;--overlay: rgba(0, 0, 0, .6);--border: #243240;--border-strong: #33475a;--text: #f5f7fc;--text-2: #b8c3ce;--text-3: #8795a3;--primary: #82ccfb;--primary-hover: #a9dcfd;--primary-soft: rgba(130, 204, 251, .13);--primary-soft-hover: rgba(130, 204, 251, .2);--on-primary: #07253d;--focus: #82ccfb;--danger: #ff8f8f;--danger-soft: rgba(255, 120, 120, .12);--warning: #f5c26b;--warning-soft: rgba(245, 194, 107, .12);--success: #6fdcb0;--success-soft: rgba(111, 220, 176, .12);--bubble-user: #1c3348;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 28px -10px rgba(0, 0, 0, .6);--shadow-lg: 0 24px 64px -12px rgba(0, 0, 0, .75)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;min-width:320px;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#root{height:100%}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:var(--leading-tight);font-weight:600}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}code{font-family:var(--font-mono);font-size:.92em}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.icon{flex:none;display:block}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--control-height);padding:0 var(--space-4);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);color:var(--text);font-size:var(--text-md);font-weight:500;white-space:nowrap;text-decoration:none;transition:background var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}.btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong);text-decoration:none}.btn:disabled{opacity:.5}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.btn-primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}.btn-soft{background:var(--primary-soft);border-color:transparent;color:var(--primary)}.btn-soft:hover:not(:disabled){background:var(--primary-soft-hover);border-color:transparent}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-2)}.btn-ghost:hover:not(:disabled){background:var(--surface-3);border-color:transparent;color:var(--text)}.btn-danger{background:transparent;border-color:var(--border);color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger-soft);border-color:transparent}.btn-danger-solid{background:var(--danger);border-color:var(--danger);color:var(--surface)}.btn-danger-solid:hover:not(:disabled){filter:brightness(.94);background:var(--danger)}.btn-sm{min-height:30px;padding:0 var(--space-3);font-size:var(--text-sm)}.btn-lg{min-height:44px;padding:0 var(--space-6);font-size:var(--text-base)}.btn-block{width:100%}.icon-btn{display:inline-grid;place-items:center;width:var(--control-height);height:var(--control-height);padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-2);transition:background var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}.icon-btn:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.icon-btn:disabled{opacity:.4}.field{display:grid;gap:6px;min-width:0;font-size:var(--text-sm);font-weight:500;color:var(--text-2)}.field-hint{font-weight:400;color:var(--text-3);font-size:var(--text-xs)}.input,.field input:not([type=checkbox]),.field select{width:100%;min-height:38px;padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:var(--text-md);font-weight:400;transition:border-color var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease)}.input:hover,.field input:not([type=checkbox]):hover{border-color:var(--border-strong)}.input:focus,.field input:not([type=checkbox]):focus,.field select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.check{display:inline-flex;align-items:center;gap:var(--space-2);min-height:32px;padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);font-size:var(--text-md);cursor:pointer;-webkit-user-select:none;user-select:none}.check:has(input:checked){border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.check input{margin:0;accent-color:var(--primary)}.switch{display:flex;align-items:flex-start;gap:var(--space-3);cursor:pointer;-webkit-user-select:none;user-select:none}.switch input{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:none;position:relative;width:40px;height:24px;margin:0;border-radius:var(--radius-full);background:var(--border-strong);cursor:inherit;transition:background var(--duration) var(--ease)}.switch input:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform var(--duration) var(--ease)}.switch input:checked{background:var(--primary)}.switch input:checked:after{transform:translate(16px)}.dark .switch input:checked:after{background:var(--on-primary)}.switch input:disabled{opacity:.5}.switch-text{display:grid;gap:2px;min-width:0;padding-top:1px}.switch-label{font-size:var(--text-md);font-weight:500;color:var(--text)}.switch-hint{font-size:var(--text-sm);color:var(--text-3)}.card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.card-pad{padding:var(--space-5)}.card-title{font-size:var(--text-lg)}.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.card-sub{margin-top:var(--space-1);color:var(--text-3);font-size:var(--text-sm)}.badge{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 var(--space-2);border-radius:var(--radius-full);background:var(--surface-3);color:var(--text-2);font-size:var(--text-xs);font-weight:500;white-space:nowrap}.badge-primary{background:var(--primary-soft);color:var(--primary)}.badge-success{background:var(--success-soft);color:var(--success)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.notice{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface-2);color:var(--text-2);font-size:var(--text-md)}.notice>.icon{margin-top:2px}.notice-body{flex:1;min-width:0;display:grid;gap:var(--space-2);justify-items:start;overflow-wrap:anywhere}.notice-info{background:var(--primary-soft);color:var(--text)}.notice-info>.icon{color:var(--primary)}.notice-error{background:var(--danger-soft);color:var(--text)}.notice-error>.icon{color:var(--danger)}.notice-warning{background:var(--warning-soft);color:var(--text)}.notice-warning>.icon{color:var(--warning)}.notice-success{background:var(--success-soft);color:var(--text)}.notice-success>.icon{color:var(--success)}.meter{height:6px;overflow:hidden;border-radius:var(--radius-full);background:var(--surface-3)}.meter-fill{height:100%;border-radius:inherit;background:var(--primary);transition:width var(--duration) var(--ease)}.meter-low .meter-fill{background:var(--warning)}.spinner{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty{display:grid;justify-items:center;gap:var(--space-2);padding:var(--space-10) var(--space-6);color:var(--text-3);text-align:center;font-size:var(--text-md)}.empty .icon{color:var(--text-3);margin-bottom:var(--space-1)}.empty strong{color:var(--text);font-size:var(--text-base);font-weight:600}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:var(--space-4);background:var(--overlay);animation:fade-in var(--duration) var(--ease)}.dialog{width:min(440px,100%);max-height:calc(100svh - 32px);overflow:auto;border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-lg);animation:rise-in var(--duration) var(--ease)}.dialog-wide{width:min(560px,100%)}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-5) var(--space-5) 0 var(--space-6)}.dialog-header h2{font-size:var(--text-xl)}.dialog-body{padding:var(--space-4) var(--space-6) var(--space-6);color:var(--text-2)}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-2);padding:0 var(--space-6) var(--space-6)}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(8px) scale(.98)}}.menu-anchor{position:relative}.menu{position:absolute;z-index:40;min-width:220px;padding:var(--space-1);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-lg);animation:rise-in var(--duration-fast) var(--ease)}.menu-item{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:36px;padding:0 var(--space-3);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:var(--text-md);text-align:left}.menu-item:hover{background:var(--surface-2);text-decoration:none}.menu-item .icon{color:var(--text-3)}.menu-down{top:calc(100% + 4px);right:0}.menu-up{bottom:calc(100% + 6px);left:0;right:0}.menu-item.danger,.menu-item.danger .icon{color:var(--danger)}.menu-separator{height:1px;margin:var(--space-1) 0;background:var(--border)}.segmented{display:inline-flex;gap:2px;padding:3px;border-radius:var(--radius-full);background:var(--surface-3)}.segmented button{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 var(--space-3);border:0;border-radius:var(--radius-full);background:transparent;color:var(--text-2);font-size:var(--text-sm);font-weight:500}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.data-list{display:grid;gap:var(--space-2);margin:0}.data-list>div{display:flex;justify-content:space-between;gap:var(--space-4);font-size:var(--text-md)}.data-list dt{color:var(--text-3)}.data-list dd{margin:0;color:var(--text);font-weight:500;font-variant-numeric:tabular-nums;text-align:right;overflow-wrap:anywhere}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;transition-duration:1ms!important}}.wordmark{display:block;width:auto}.symbol{display:block;flex:none}.avatar{flex:none;border-radius:50%;object-fit:cover}.avatar-initial{display:inline-grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-weight:600}.skeleton{display:block;height:10px;border-radius:var(--radius-full);background:var(--surface-3);animation:pulse 1.4s ease-in-out infinite}.skeleton.short{width:55%}@keyframes pulse{50%{opacity:.5}}.boot{display:grid;place-content:center;justify-items:center;gap:var(--space-4);height:100svh;color:var(--text-3);font-size:var(--text-md)}.boot .symbol{animation:pulse 1.6s ease-in-out infinite}.gate{display:flex;flex-direction:column;min-height:100svh;background:radial-gradient(70% 55% at 50% 0%,var(--brand-field),transparent 70%),var(--bg)}.gate-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6)}.gate-actions{display:flex;align-items:center;gap:var(--space-2)}.gate-main{display:grid;flex:1;align-content:center;justify-items:center;gap:var(--space-4);width:100%;max-width:720px;margin:0 auto;padding:var(--space-8) var(--space-6) 14svh;text-align:center}.gate-main>h1{font-size:clamp(30px,5vw,44px);letter-spacing:-.02em}.gate-lead{max-width:32em;color:var(--text-2);font-size:var(--text-lg)}.gate-main .notice{width:100%;text-align:left}.gate-footer{padding:var(--space-6);color:var(--text-3);font-size:var(--text-sm);text-align:center}.gate-composer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);width:100%;margin-top:var(--space-6);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-6);border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-md);color:var(--text-3);text-align:left;transition:border-color var(--duration-fast) var(--ease)}.gate-composer:hover{border-color:var(--primary);text-decoration:none}.gate-composer:hover .btn-primary{background:var(--primary-hover)}.gate-placeholder{font-size:var(--text-lg)}.gate-card{display:grid;justify-items:center;gap:var(--space-4);width:100%;max-width:520px;padding:var(--space-8) var(--space-6);border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-md)}.gate-card h1{font-size:var(--text-2xl)}.gate-card .gate-lead{font-size:var(--text-base)}.gate-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--primary-soft);color:var(--primary)}.gate-icon.is-warning{background:var(--warning-soft);color:var(--warning)}.gate-facts{display:grid;gap:var(--space-2);width:100%;margin:0;padding:var(--space-4);border-radius:var(--radius-md);background:var(--surface-2);list-style:none;text-align:left;font-size:var(--text-md)}.gate-facts li{display:flex;gap:var(--space-2);color:var(--text-2)}.gate-facts .icon{margin-top:3px;color:var(--text-3)}.gate-facts li:last-child .icon{color:var(--success)}.gate-note{color:var(--text-3);font-size:var(--text-sm)}.gate-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2)}@media(max-width:860px){.gate-header{padding:var(--space-3) var(--space-4)}.gate-main{padding:var(--space-6) var(--space-4) 10svh}.gate-composer{flex-direction:column;align-items:stretch;padding:var(--space-4)}.gate-composer .btn{width:100%}.gate-card{padding:var(--space-6) var(--space-4)}.gate-buttons{width:100%}.gate-buttons .btn{flex:1}}.admin-list{display:grid;gap:var(--space-3)}.admin-model{display:grid;gap:var(--space-4);padding:var(--space-5)}.admin-model header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.admin-model h2{font-size:var(--text-lg)}.admin-model header code{color:var(--text-3);font-size:var(--text-xs)}.admin-badges{display:flex;flex-wrap:wrap;gap:var(--space-1)}.admin-switches{display:flex;flex-wrap:wrap;gap:var(--space-6)}.admin-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}.admin-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--border)}.admin-footer .notice{flex:1;padding-block:var(--space-2)}@media(max-width:1024px){.admin-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.admin-fields{grid-template-columns:minmax(0,1fr)}.admin-footer{flex-direction:column;align-items:stretch}}.quota{display:grid;gap:var(--space-2);font-size:var(--text-sm)}.quota-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.quota-label{color:var(--text);font-weight:500}.quota-sub{color:var(--text-3)}.quota-value{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}.quota-points{color:var(--text-2);font-variant-numeric:tabular-nums}.quota-note{color:var(--text-3);font-size:var(--text-xs)}.quota .badge{justify-self:start}.quota-detailed{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);background:var(--surface-2);font-size:var(--text-md)}.fallback{display:grid;gap:var(--space-3)}.chat{position:relative;display:flex;flex:1;flex-direction:column;min-height:0}.chat-scroll{flex:1;min-height:0;overflow-y:auto;scrollbar-gutter:stable both-edges}.chat-column{display:grid;gap:var(--space-6);width:100%;max-width:var(--content-width);margin:0 auto;padding:var(--space-4) var(--space-6) var(--space-8)}.chat.is-empty .chat-scroll{flex:0 1 auto;margin-top:auto;overflow:visible}.chat.is-empty .composer-dock{margin-bottom:auto;padding-bottom:12svh}.chat.is-empty:before{content:"";position:absolute;inset:-56px 0 auto;height:60%;background:radial-gradient(60% 70% at 50% 0%,var(--brand-field),transparent 70%);pointer-events:none}.welcome{position:relative;display:grid;justify-items:center;gap:var(--space-3);text-align:center}.welcome .symbol{margin-bottom:var(--space-2)}.welcome h1{font-size:var(--text-3xl);letter-spacing:-.01em}.welcome p{max-width:30em;color:var(--text-2)}.thread-skeleton{display:grid;gap:var(--space-3);padding-top:var(--space-4)}.thread-skeleton .bubble{justify-self:end;width:45%;height:40px;border-radius:20px;margin-bottom:var(--space-4)}.thread-skeleton .skeleton:not(.bubble){height:14px}.message{display:flex;gap:var(--space-3);min-width:0}.message.is-user{justify-content:flex-end}.message-body{display:grid;gap:var(--space-2);min-width:0}.message.is-user .message-body{justify-items:end;max-width:min(80%,600px)}.message.is-assistant .message-body{flex:1;padding-top:2px}.message-text{font-size:var(--text-lg);line-height:var(--leading-prose);white-space:pre-wrap;overflow-wrap:anywhere}.message.is-user .message-text{padding:var(--space-2) var(--space-4);border-radius:20px 20px 6px;background:var(--bubble-user)}.message-text.is-streaming:after{content:"";display:inline-block;width:8px;height:1.1em;margin-left:2px;vertical-align:-3px;border-radius:2px;background:var(--primary);animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.typing{display:flex;align-items:center;gap:5px;height:28px}.typing span{width:7px;height:7px;border-radius:50%;background:var(--text-3);animation:bounce 1.2s ease-in-out infinite}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,60%,to{transform:none;opacity:.5}30%{transform:translateY(-4px);opacity:1}}.message-files{display:flex;flex-wrap:wrap;gap:var(--space-2)}.message.is-user .message-files{justify-content:flex-end}.attachment-image{display:inline-block;max-width:100%;padding:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2);line-height:0;cursor:zoom-in}.attachment-image img{display:block;width:auto;max-width:280px;height:auto;max-height:200px}.attachment-card{display:flex;align-items:center;gap:var(--space-3);min-width:220px;max-width:320px;min-height:56px;padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text-2);font-size:var(--text-sm)}.attachment-card.is-error{border-color:transparent;background:var(--danger-soft)}.attachment-card.is-error>.icon{color:var(--danger)}.attachment-icon{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:var(--radius-sm);background:var(--primary-soft);color:var(--primary)}.attachment-meta{display:grid;flex:1;min-width:0}.attachment-meta strong{overflow:hidden;color:var(--text);font-weight:500;text-overflow:ellipsis;white-space:nowrap}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;align-content:center;gap:var(--space-3);padding:var(--space-12) var(--space-4);background:#060a10db;animation:fade-in var(--duration) var(--ease)}.lightbox img{max-width:100%;max-height:82svh;border-radius:var(--radius-md)}.lightbox p{color:#ffffffbf;font-size:var(--text-sm)}.lightbox-close{position:absolute;top:var(--space-4);right:var(--space-4);color:#fff}.lightbox-close:hover:not(:disabled){background:#ffffff24;color:#fff}.composer-dock{position:relative;flex:none;display:grid;gap:var(--space-2);padding:0 var(--space-6) var(--space-3)}.composer-notice,.composer{width:100%;max-width:var(--content-width);margin:0 auto}.composer-box{display:grid;gap:var(--space-2);padding:var(--space-3) var(--space-3) var(--space-2) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-md);transition:border-color var(--duration-fast) var(--ease)}.composer-box:focus-within{border-color:var(--border-strong)}.composer textarea{width:100%;min-height:28px;max-height:240px;padding:var(--space-1) 0;border:0;background:transparent;font-size:var(--text-lg);line-height:1.6;resize:none}.composer textarea:focus{outline:none}.composer textarea::placeholder{color:var(--text-3)}.composer-tools{display:flex;align-items:center;gap:var(--space-1);margin-left:calc(-1 * var(--space-2))}.composer-hint{padding-top:var(--space-2);color:var(--text-3);font-size:var(--text-xs);text-align:center}.composer-hint.is-warning{color:var(--warning)}.send-button{display:grid;place-items:center;flex:none;width:36px;height:36px;margin-left:auto;border:0;border-radius:50%;background:var(--primary);color:var(--on-primary);transition:background var(--duration-fast) var(--ease)}.send-button:hover:not(:disabled){background:var(--primary-hover)}.send-button:disabled{background:var(--surface-3);color:var(--text-3)}.send-button.is-stop{background:var(--text);color:var(--surface)}.send-button.is-stop .icon{fill:currentColor}.model-picker{position:relative;display:inline-flex;align-items:center;min-width:0;color:var(--text-2)}.model-picker select{-webkit-appearance:none;-moz-appearance:none;appearance:none;field-sizing:content;max-width:220px;min-height:32px;padding:0 28px 0 var(--space-3);overflow:hidden;border:0;border-radius:var(--radius-full);background:transparent;font-size:var(--text-sm);font-weight:500;text-overflow:ellipsis;cursor:pointer}.model-picker select:hover:not(:disabled){background:var(--surface-3)}.model-picker .icon{position:absolute;right:10px;pointer-events:none}.composer-files{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0 0 0 calc(-1 * var(--space-1));padding:0;list-style:none}.file-chip{display:flex;align-items:center;gap:var(--space-2);max-width:240px;padding:var(--space-1);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2)}.file-chip img,.file-chip-type{flex:none;width:36px;height:36px;border-radius:var(--radius-sm);object-fit:cover}.file-chip-type{display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-size:10px;font-weight:700}.file-chip-text{display:grid;min-width:0;line-height:1.35}.file-chip-name{overflow:hidden;font-size:var(--text-sm);font-weight:500;text-overflow:ellipsis;white-space:nowrap}.file-chip-status{color:var(--text-3);font-size:var(--text-xs)}.file-chip.is-uploading .file-chip-status,.file-chip.is-queued .file-chip-status{color:var(--primary)}.file-chip.is-error{border-color:transparent;background:var(--danger-soft)}.file-chip.is-error .file-chip-status{color:var(--danger)}.file-chip-remove{display:grid;place-items:center;flex:none;width:24px;height:24px;border:0;border-radius:50%;background:transparent;color:var(--text-3)}.file-chip-remove:hover{background:var(--surface-3);color:var(--text)}.drop-hint{position:absolute;inset:var(--space-3);z-index:5;display:grid;place-content:center;justify-items:center;gap:var(--space-2);border:2px dashed var(--primary);border-radius:var(--radius-xl);background:color-mix(in srgb,var(--bg) 88%,transparent);color:var(--primary);font-weight:500;pointer-events:none}@media(max-width:860px){.chat-column{gap:var(--space-5);padding:var(--space-4) var(--space-4) var(--space-6)}.composer-dock{padding:0 var(--space-3) max(var(--space-2),env(safe-area-inset-bottom))}.chat.is-empty .composer-dock{padding-bottom:8svh}.welcome h1{font-size:var(--text-2xl)}.message.is-user .message-body{max-width:88%}.message.is-assistant{flex-direction:column;gap:var(--space-2)}.message.is-assistant>.symbol{width:24px;height:24px}.message-text{font-size:var(--text-base)}}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-4)}.stat-card{display:grid;align-content:start;gap:var(--space-3);padding:var(--space-5)}.stat-label{display:flex;align-items:center;gap:var(--space-2);color:var(--text-2);font-size:var(--text-md);font-weight:500}.stat-label .icon{color:var(--primary)}.stat-value{font-size:var(--text-3xl);font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.15}.stat-value small{margin-left:4px;color:var(--text-3);font-size:var(--text-md);font-weight:500;letter-spacing:0}.stat-note{color:var(--text-3);font-size:var(--text-sm)}.key-create{display:grid;gap:var(--space-5);padding:var(--space-5)}.key-form{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:var(--space-4)}.model-choice{display:grid;gap:var(--space-2);min-width:0;margin:0;padding:0;border:0}.model-choice legend{margin-bottom:var(--space-2);padding:0;color:var(--text-2);font-size:var(--text-sm);font-weight:500}.model-choice-options{display:flex;flex-wrap:wrap;gap:var(--space-2)}.model-choice p{color:var(--text-3);font-size:var(--text-sm)}.key-create-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.secret-panel{display:grid;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--primary);border-radius:var(--radius-md);background:var(--primary-soft)}.secret-panel h3{font-size:var(--text-md)}.secret-panel p{color:var(--text-2);font-size:var(--text-sm)}.secret-value{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--surface)}.secret-value code{flex:1;min-width:0;overflow-wrap:anywhere;font-size:var(--text-sm)}.key-table{overflow:hidden}.key-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1.2fr) minmax(0,1.1fr) minmax(0,1.2fr) auto;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-top:1px solid var(--border)}.key-row:first-child{border-top:0}.key-head{padding-block:var(--space-3);background:var(--surface-2);color:var(--text-3);font-size:var(--text-xs);font-weight:500}.key-row h3{overflow:hidden;font-size:var(--text-md);text-overflow:ellipsis;white-space:nowrap}.key-row code{color:var(--text-3);font-size:var(--text-xs)}.key-cell{display:grid;gap:4px;min-width:0;font-size:var(--text-sm)}.key-label{display:none;color:var(--text-3);font-size:var(--text-xs)}.key-models{display:flex;flex-wrap:wrap;gap:4px}.key-usage{color:var(--text-2);font-variant-numeric:tabular-nums}small.key-usage{color:var(--text-3);font-size:var(--text-xs)}.key-status{display:grid;justify-items:start;gap:4px}.key-status small{color:var(--text-3);font-size:var(--text-xs)}.key-row.is-revoked h3,.key-row.is-revoked .key-usage{color:var(--text-3)}@media(max-width:1024px){.key-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.key-head{display:none}.key-label{display:block}.key-name{grid-column:1 / -2}.key-actions{grid-column:-2;grid-row:1}}@media(max-width:860px){.key-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.key-form .field:first-child{grid-column:1 / -1}}@media(max-width:560px){.key-row{grid-template-columns:minmax(0,1fr) auto;padding:var(--space-4)}.key-name{grid-column:1}.key-cell:not(.key-name){grid-column:1 / -1}.stat-value{font-size:var(--text-2xl)}}.history{display:grid}.history-new{display:flex;align-items:center;gap:var(--space-3);min-height:38px;margin-top:var(--space-1);padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:var(--text-md);font-weight:500}.history-new .icon{color:var(--text-2)}.history-new:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong)}.history-new:disabled{opacity:.5}.history-heading{margin:var(--space-4) var(--space-3) var(--space-1);color:var(--text-3);font-size:var(--text-xs);font-weight:500}.history-empty{padding:var(--space-2) var(--space-3);color:var(--text-3);font-size:var(--text-sm)}.history-loading{display:grid;gap:var(--space-3);padding:var(--space-2) var(--space-3)}.history-list{display:grid;gap:1px;margin:0;padding:0;list-style:none}.history-row{position:relative;display:flex;align-items:center;border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease)}.history-row:hover,.history-row:has([aria-expanded=true]){background:var(--surface-3)}.history-row.is-active{background:var(--primary-soft)}.history-link{flex:1;min-width:0;padding:8px var(--space-3);overflow:hidden;color:var(--text);font-size:var(--text-md);text-overflow:ellipsis;white-space:nowrap}.history-link:hover{text-decoration:none}.history-link[aria-disabled=true]{opacity:.55;cursor:not-allowed}.history-row.is-active .history-link{color:var(--primary);font-weight:500}.history-actions .icon-btn{width:30px;height:30px;margin-right:3px;opacity:0}.history-row:hover .history-actions .icon-btn,.history-row.is-active .history-actions .icon-btn,.history-actions .icon-btn:focus-visible,.history-actions .icon-btn[aria-expanded=true]{opacity:1}.history-actions .menu{min-width:160px}@media(hover:none){.history-actions .icon-btn{opacity:1}}.dialog-form{display:grid;gap:var(--space-3)}.settings{display:grid;gap:var(--space-6)}.settings-section{display:grid;gap:var(--space-3)}.settings-section h3{color:var(--text-3);font-size:var(--text-xs);font-weight:500;letter-spacing:.04em}.settings-section .segmented{justify-self:start}.settings-account{display:flex;align-items:center;gap:var(--space-3)}.settings-account>div{display:grid;flex:1;min-width:0}.settings-account strong{color:var(--text)}.settings-account span{color:var(--text-3);font-size:var(--text-sm)}.shell{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);height:100svh;overflow:hidden;transition:grid-template-columns var(--duration) var(--ease)}.shell.is-collapsed{grid-template-columns:0 minmax(0,1fr)}.sidebar{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:var(--bg-sidebar);border-right:1px solid var(--border)}.is-collapsed .sidebar{visibility:hidden;border-right:0}.sidebar>*{width:var(--sidebar-width)}.sidebar-top{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-3) var(--space-2) var(--space-4)}.sidebar-brand{display:inline-flex;margin-left:calc(-1 * var(--space-1));padding:var(--space-1);border-radius:var(--radius-sm)}.sidebar-nav{display:grid;gap:2px;padding:var(--space-1) var(--space-3) var(--space-2)}.nav-item{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:36px;padding:0 var(--space-3);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:var(--text-md);text-align:left;transition:background var(--duration-fast) var(--ease)}.nav-item .icon{color:var(--text-2)}.nav-item:hover:not(:disabled){background:var(--surface-3)}.nav-item.is-active{background:var(--primary-soft);color:var(--primary);font-weight:500}.nav-item.is-active .icon{color:var(--primary)}.nav-item:disabled{opacity:.5}.sidebar-scroll{flex:1;min-height:0;overflow-y:auto;padding:0 var(--space-3) var(--space-3);overscroll-behavior:contain}.sidebar-bottom{display:grid;gap:var(--space-2);padding:var(--space-3);border-top:1px solid var(--border)}.quota-card{display:block;width:100%;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);text-align:left;transition:border-color var(--duration-fast) var(--ease)}.quota-card:hover{border-color:var(--border-strong)}.account-button{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:44px;padding:var(--space-1) var(--space-2);border:0;border-radius:var(--radius-sm);background:transparent;text-align:left}.account-button:hover,.account-button[aria-expanded=true]{background:var(--surface-3)}.account-name{flex:1;min-width:0;overflow:hidden;font-size:var(--text-md);font-weight:500;text-overflow:ellipsis;white-space:nowrap}.main{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg)}.topbar{display:flex;flex:none;align-items:center;gap:var(--space-2);height:52px;padding:0 var(--space-4)}.topbar-toggle{display:none}.is-collapsed .topbar-toggle{display:inline-grid}.topbar-title{flex:1;min-width:0;overflow:hidden;color:var(--text-2);font-size:var(--text-md);font-weight:500;text-overflow:ellipsis;white-space:nowrap}.topbar-new{display:none}.is-collapsed .topbar-new{display:inline-grid}.app-error{padding:0 var(--space-4) var(--space-3)}.app-error .notice{max-width:var(--content-width);margin:0 auto}.drawer-backdrop{display:none}.page{flex:1;min-height:0;overflow-y:auto}.page-inner{display:grid;gap:var(--space-8);width:100%;max-width:var(--page-width);margin:0 auto;padding:var(--space-4) var(--space-8) var(--space-16)}.page-header{display:grid;gap:var(--space-2)}.page-header h1{font-size:var(--text-2xl)}.page-header p{max-width:44em;color:var(--text-2)}.section{display:grid;gap:var(--space-4)}.section-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4)}.section-header h2{font-size:var(--text-lg)}.section-header p{margin-top:2px;color:var(--text-3);font-size:var(--text-sm)}.closed-state{display:grid;justify-items:center;gap:var(--space-3);padding:var(--space-12) var(--space-6);text-align:center}.closed-state>.icon{color:var(--primary)}.closed-state strong{font-size:var(--text-lg)}.closed-state p{max-width:28em;color:var(--text-2);font-size:var(--text-md)}.loading-block{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-12);color:var(--text-3)}.link-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.link-row .icon{color:var(--text-3)}@media(max-width:860px){.shell,.shell.is-collapsed{grid-template-columns:minmax(0,1fr)}.sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:min(var(--sidebar-width),86vw);visibility:hidden;transform:translate(-100%);transition:transform var(--duration) var(--ease),visibility 0s linear var(--duration);box-shadow:var(--shadow-lg)}.sidebar>*{width:100%}.is-drawer-open .sidebar{visibility:visible;transform:none;transition:transform var(--duration) var(--ease)}.is-drawer-open .drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:29;background:var(--overlay);animation:fade-in var(--duration) var(--ease)}.topbar{padding:0 var(--space-2);border-bottom:1px solid var(--border)}.topbar-toggle,.topbar-new{display:inline-grid}.topbar-title{color:var(--text)}.page-inner{gap:var(--space-6);padding:var(--space-5) var(--space-4) var(--space-12)}}
