:root{--bg:#1a1c21;--side:#15171b;--panel:#22252b;--raised:#2a2e36;--border:#2e323a;--border-strong:#3c414c;--text:#e8eaed;--soft:#c4c8cf;--muted:#9ba1ab;--faint:#6a707b;--accent:#7b8cff;--accent-soft:#7b8cff24;--accent-text:#b3bdff;--on-accent:#0f1220;--green:#5fd29a;--red:#f3a0a0;--hover:#23262c;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-drawer:cubic-bezier(.32, .72, 0, 1)}*{box-sizing:border-box}html{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;overscroll-behavior:none}html,body{background:var(--bg);color:var(--text);font-family:var(--font-sans), system-ui, -apple-system, "Segoe UI", sans-serif;font-feature-settings:"cv11", "ss01";-webkit-font-smoothing:antialiased;margin:0}button,input,textarea,select{color:inherit;font-family:inherit}input,textarea,select{font-size:16px}button,a,[role=button],[role=option]{touch-action:manipulation}button{-webkit-user-select:none;user-select:none;cursor:pointer}::selection{background:#7b8cff59}textarea::placeholder,input::placeholder{color:var(--faint)}:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#33373f;border-radius:4px}::-webkit-scrollbar-track{background:0 0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.faint{color:var(--faint)}kbd{font-family:var(--font-sans), sans-serif;color:var(--muted);background:var(--raised);border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-size:11px;font-weight:500;line-height:1.4}.icon-btn{width:36px;height:36px;color:var(--muted);transition:background-color .15s ease, color .15s ease, transform .12s var(--ease-out);background:0 0;border:none;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.icon-btn.sm{border-radius:7px;width:28px;height:28px}.icon-btn:active{transform:scale(.94)}.btn-primary,.btn-secondary{height:40px;transition:background-color .15s ease, border-color .15s ease, transform .12s var(--ease-out), opacity .15s ease;border-radius:10px;justify-content:center;align-items:center;gap:7px;padding:0 16px;font-size:14px;font-weight:600;display:inline-flex}.btn-primary{background:var(--accent);color:var(--on-accent);border:none}.btn-primary:disabled{opacity:.45;cursor:default}.btn-secondary{border:1px solid var(--border-strong);color:var(--soft);background:0 0;font-weight:500}.btn-secondary.on{color:#ffd479;border-color:#ffd47959}.btn-primary:not(:disabled):active,.btn-secondary:active{transform:scale(.97)}.wide{width:100%}.ghost-btn{height:30px;color:var(--muted);transition:background-color .15s ease, color .15s ease, transform .12s var(--ease-out);background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;padding:0 9px;font-size:13px;display:inline-flex}.ghost-btn:active{transform:scale(.96)}.text-btn{height:34px;color:var(--muted);transition:background-color .15s ease, color .15s ease, transform .12s var(--ease-out);background:0 0;border:none;border-radius:9px;align-items:center;gap:7px;padding:0 12px;font-size:14px;display:inline-flex}.text-btn:active{transform:scale(.97)}.field{border:1px solid var(--border);background:var(--side);width:100%;height:44px;color:var(--text);border-radius:10px;padding:0 13px;transition:border-color .15s,box-shadow .15s}.field:focus{border-color:var(--accent);box-shadow:0 0 0 3px #7b8cff2e}.field.invalid{border-color:#f3a0a099}@media (hover:hover) and (pointer:fine){.icon-btn:hover{background:var(--hover);color:var(--text)}.icon-btn.danger:hover{color:var(--red);background:#f3a0a01a}.btn-primary:not(:disabled):hover{background:#8d9bff}.btn-secondary:hover{background:#ffffff08;border-color:#4b5160}.ghost-btn:hover{background:var(--panel);color:var(--text)}.text-btn:hover{background:var(--hover);color:var(--text)}}.chat-app{background:var(--bg);height:100dvh;display:flex;overflow:hidden}.chat-main{flex-direction:column;flex:1;min-width:0;display:flex}.sidebar{background:var(--side);border-right:1px solid var(--border);max-width:300px;height:100%;padding:12px 10px;padding-top:calc(12px + env(safe-area-inset-top,0px));padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));flex-direction:column;display:flex}.sidebar-top{justify-content:space-between;align-items:center;padding:0 0 14px;display:flex}.brand-link{color:var(--text);letter-spacing:-.01em;border-radius:9px;align-items:center;gap:9px;padding:6px 8px;font-size:15px;font-weight:600;text-decoration:none;transition:background-color .15s;display:flex}.brand-link svg{color:var(--accent)}.new-chat-btn{border:1px solid var(--border);background:var(--panel);width:100%;height:40px;color:var(--text);transition:background-color .15s ease, border-color .15s ease, transform .12s var(--ease-out);border-radius:10px;align-items:center;gap:9px;margin-bottom:20px;padding:0 12px;font-size:14px;font-weight:500;display:flex}.new-chat-btn:active{transform:scale(.98)}.sidebar-label{color:var(--faint);padding:0 10px 6px;font-size:12px;font-weight:500}.convo-list{overscroll-behavior:contain;flex-direction:column;flex:1;gap:1px;display:flex;overflow-y:auto}.convo-error{color:var(--red);padding:8px 10px;font-size:13px;line-height:1.5}.convo-error-detail{color:var(--faint);overflow-wrap:anywhere;margin:2px 0 6px;font-size:12px}.convo-error .ghost-btn{margin-left:-9px}.convo-empty{color:var(--faint);padding:8px 10px;font-size:13px;line-height:1.5}.convo-row{cursor:pointer;border-radius:8px;align-items:center;gap:4px;min-height:36px;padding:0 4px 0 10px;transition:background-color .12s;display:flex}.convo-row.active{background:var(--hover)}.convo-title{min-width:0;color:var(--soft);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13.5px;overflow:hidden}.convo-row.active .convo-title{color:var(--text)}.convo-rename{background:var(--bg);min-width:0;height:30px;color:var(--text);border:1px solid var(--accent);border-radius:6px;flex:1;margin-right:4px;padding:0 8px;font-size:16px}.convo-actions{opacity:0;flex-shrink:0;transition:opacity .12s;display:flex}.convo-row.active .convo-actions{opacity:1}.key-btn{border:none;border-top:1px solid var(--border);height:42px;color:var(--muted);text-align:left;background:0 0;border-radius:0;align-items:center;gap:9px;margin-top:8px;padding:0 10px;font-size:13px;display:flex}.key-btn svg{color:var(--accent)}.rail{background:var(--side);border-right:1px solid var(--border);flex-direction:column;align-items:center;gap:6px;width:60px;height:100%;padding:12px 0;display:flex}.drawer-overlay{z-index:40;background:#0000008c;transition:opacity .2s;position:fixed;inset:0}.drawer{width:fit-content;height:100%;transition:transform .28s var(--ease-drawer);transform:translate(0)}@starting-style{.drawer-overlay{opacity:0}.drawer{transform:translate(-100%)}}@media (hover:hover) and (pointer:fine){.brand-link:hover{background:var(--hover)}.new-chat-btn:hover{background:var(--raised);border-color:var(--border-strong)}.convo-row:hover{background:var(--hover)}.convo-row:hover .convo-actions{opacity:1}.key-btn:hover{color:var(--text)}}@media (hover:none){.convo-actions{opacity:1}}.chat-header{height:44px;padding:0 10px;padding-top:env(safe-area-inset-top,0px);box-sizing:content-box;flex-shrink:0;align-items:center;gap:4px;display:flex}.title-btn{min-width:0;max-width:min(520px,70vw);height:30px;color:var(--muted);background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;padding:0 8px;transition:background-color .15s,color .15s;display:flex}.title-text{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:500;overflow:hidden}.title-edit{color:var(--faint);opacity:0;flex-shrink:0;transition:opacity .15s}.title-input{background:var(--panel);border:1px solid var(--accent);width:min(420px,60vw);height:30px;color:var(--text);border-radius:8px;padding:0 8px;font-size:16px;font-weight:500}@media (hover:hover) and (pointer:fine){.title-btn:hover{background:var(--hover);color:var(--text)}.title-btn:hover .title-edit{opacity:1}}@media (hover:none){.title-edit{opacity:1}}.start{flex-direction:column;flex:1;justify-content:center;align-items:center;padding:0 16px 12vh;display:flex}.start-title{letter-spacing:-.025em;text-align:center;margin:0;font-size:clamp(26px,4vw,34px);font-weight:600;line-height:1.15}.start-sub{color:var(--muted);text-align:center;margin:8px 0 26px;font-size:16px}.thread{overscroll-behavior:contain;flex:1;padding:20px 24px 32px;overflow-y:auto}.thread-inner{max-width:760px;margin:0 auto}@media (max-width:768px){.thread{padding:12px 14px 24px}}.user-msg{flex-direction:column;align-items:flex-end;margin-bottom:26px;display:flex}.user-atts{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-bottom:6px;display:flex}.user-bubble{overflow-wrap:anywhere;background:#272b33;border-radius:16px 16px 4px;max-width:min(78%,620px);padding:10px 14px;font-size:15.5px;line-height:1.6}@media (max-width:768px){.user-bubble{max-width:88%}}.bubble-quote{color:var(--muted);white-space:pre-wrap;-webkit-line-clamp:3;background:#00000040;border-radius:9px;-webkit-box-orient:vertical;margin:0 0 8px;padding:7px 10px;font-size:13.5px;line-height:1.5;display:-webkit-box;overflow:hidden}.bubble-text{white-space:pre-wrap}.msg{margin-bottom:30px}.msg-error{background:#f3a0a00f;border:1px solid #f3a0a033;border-radius:12px;align-items:flex-start;gap:11px;padding:12px 14px;display:flex}.msg-error-icon{color:#f08c8c;flex-shrink:0;margin-top:1px}.msg-error-title{color:var(--text);font-size:14.5px;line-height:1.5}.msg-error-detail{color:var(--faint);overflow-wrap:anywhere;margin-top:4px;font-size:12.5px;line-height:1.5}.msg-actions{opacity:0;gap:2px;margin:10px 0 0 -9px;transition:opacity .15s;display:flex}.msg.last .msg-actions{opacity:1}@media (hover:hover) and (pointer:fine){.msg:hover .msg-actions{opacity:1}}@media (hover:none){.msg-actions{opacity:1}}.dots{padding:8px 0}.dots span{background:var(--accent);border-radius:50%;width:7px;height:7px;margin-right:5px;animation:1s ease-in-out infinite blink;display:inline-block}.dots span:nth-child(2){animation-delay:.15s}.dots span:nth-child(3){animation-delay:.3s}@keyframes blink{0%,80%,to{opacity:.25;transform:scale(.85)}40%{opacity:1;transform:scale(1)}}.md{color:#dfe2e7;overflow-wrap:anywhere;font-size:16px;line-height:1.72}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 16px}.md h1,.md h2,.md h3,.md h4{letter-spacing:-.015em;color:var(--text);margin:28px 0 10px;font-weight:600;line-height:1.3}.md h1{font-size:1.45em}.md h2{font-size:1.25em}.md h3{font-size:1.08em}.md ul,.md ol{margin:0 0 16px;padding-left:22px}.md li{margin:6px 0}.md li::marker{color:var(--faint)}.md a{color:var(--accent-text);text-underline-offset:3px;-webkit-text-decoration:underline #b3bdff66;text-decoration:underline #b3bdff66}.md strong{color:var(--text);font-weight:600}.md blockquote{color:var(--muted);border-left:3px solid #3c414c;margin:0 0 16px;padding-left:14px}.md hr{border:none;border-top:1px solid var(--border);margin:24px 0}.md code{font-family:var(--font-mono), ui-monospace, Menlo, Consolas, monospace;background:#262a31;border-radius:5px;padding:2px 6px;font-size:.87em}.md pre code{background:0 0;padding:0;font-size:13.5px}.md table{border-collapse:collapse;margin:0 0 16px;font-size:14px;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--border);text-align:left;padding:7px 11px}.md th{background:var(--panel);font-weight:600}@media (hover:hover) and (pointer:fine){.md a:hover{text-decoration-color:currentColor}}.code-wrap{margin:0 0 16px;position:relative}.code-wrap pre{border:1px solid var(--border);background:#131519;border-radius:12px;margin:0;padding:16px;line-height:1.6;overflow-x:auto}.code-copy{background:var(--panel);color:var(--muted);border:1px solid var(--border);transition:color .15s ease, transform .12s var(--ease-out);border-radius:7px;align-items:center;gap:5px;padding:4px 8px;font-size:12px;display:inline-flex;position:absolute;top:8px;right:8px}.code-copy:active{transform:scale(.96)}@media (hover:hover) and (pointer:fine){.code-copy:hover{color:var(--text)}}.composer-wrap{width:100%;max-width:760px;margin:0 auto}.composer-dock{padding:0 24px calc(18px + env(safe-area-inset-bottom,0px));flex-shrink:0}@media (max-width:768px){.composer-dock{padding:0 10px calc(10px + env(safe-area-inset-bottom,0px))}}.composer{background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:10px 10px 8px;transition:border-color .15s;box-shadow:0 8px 30px #00000038}.composer:focus-within{border-color:var(--border-strong)}.composer-input{width:100%;color:var(--text);resize:none;background:0 0;border:none;outline:none;max-height:220px;padding:6px 8px;font-size:16px;line-height:1.5;display:block}.composer-input:focus-visible{outline:none}.composer-bar{justify-content:space-between;align-items:center;margin-top:4px;display:flex}.composer-right{align-items:center;gap:6px;min-width:0;display:flex}.send-btn{background:var(--accent);width:36px;height:36px;color:var(--on-accent);transition:background-color .15s ease, transform .12s var(--ease-out), opacity .15s ease;border:none;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.send-btn:disabled{background:var(--raised);color:var(--faint);cursor:default}.send-btn:not(:disabled):active{transform:scale(.93)}.send-btn.stop{background:var(--text);color:var(--bg)}.notice{color:#fca5a5;background:#ef444414;border:1px solid #ef44444d;border-radius:10px;margin-bottom:8px;padding:8px 12px;font-size:13px}.warn{color:#f5c46b;padding:0 8px 8px;font-size:12.5px}.reply-strip{background:#ffffff0a;border-radius:11px;align-items:flex-start;gap:10px;margin:0 0 6px;padding:9px 6px 9px 11px;display:flex}.reply-strip-icon{color:var(--muted);flex-shrink:0;margin-top:2px}.reply-strip-body{flex:1;min-width:0}.reply-strip-label{color:var(--soft);margin-bottom:2px;font-size:12px;font-weight:600}.reply-strip-text{color:var(--muted);white-space:pre-wrap;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13.5px;line-height:1.45;display:-webkit-box;overflow:hidden}.pending-row{gap:10px;padding:6px 4px 10px;display:flex;overflow-x:auto}.att{flex-shrink:0;position:relative}.att-img{object-fit:cover;border:1px solid var(--border);border-radius:10px;width:64px;height:64px;display:block}.att-file{border:1px solid var(--border);background:var(--side);border-radius:10px;align-items:center;gap:9px;max-width:200px;height:64px;padding:8px 12px 8px 10px;display:flex}.att-icon{color:var(--accent);flex-shrink:0;display:flex}.att-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.att-kind{color:var(--faint);margin-top:1px;font-size:11px}.att-remove{border:1px solid var(--border-strong);background:var(--raised);width:20px;height:20px;color:var(--text);border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:-6px;right:-6px}.sel-pop{z-index:55;background:var(--raised);border:1px solid var(--border-strong);opacity:1;transition:transform .15s var(--ease-out), opacity .15s var(--ease-out);border-radius:11px;align-items:center;padding:3px;display:flex;position:fixed;transform:scale(1);box-shadow:0 10px 30px #0006}@starting-style{.sel-pop{opacity:0;transform:scale(.95)}}.sel-pop button{height:32px;color:var(--text);transition:background-color .12s ease, transform .12s var(--ease-out);background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;padding:0 11px;font-size:13px;font-weight:500;display:inline-flex}.sel-pop button:active{transform:scale(.96)}.sel-divider{background:var(--border-strong);width:1px;height:18px}@media (hover:hover) and (pointer:fine){.sel-pop button:hover{background:#ffffff0f}}.drop-overlay{z-index:70;border:2px dashed var(--accent);pointer-events:none;background:#1a1c21e6;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:18px;font-weight:600;display:flex;position:fixed;inset:0}.modal-overlay{z-index:60;background:#0009;justify-content:center;align-items:center;padding:16px;transition:opacity .2s;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--border);width:100%;max-width:420px;transition:transform .22s var(--ease-out), opacity .22s var(--ease-out);border-radius:18px;padding:24px;box-shadow:0 24px 60px #00000073}@starting-style{.modal-overlay{opacity:0}.modal{opacity:0;transform:scale(.96)}}.modal-icon{background:var(--accent-soft);width:44px;height:44px;color:var(--accent);border-radius:12px;justify-content:center;align-items:center;margin-bottom:14px;display:flex}.modal-title{letter-spacing:-.015em;margin:0 0 4px;font-size:18px;font-weight:600}.modal-sub{color:var(--muted);margin:0 0 18px;font-size:14px;line-height:1.5}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.model-trigger{min-width:0;max-width:260px;height:34px;color:var(--soft);transition:background-color .15s ease, color .15s ease, transform .12s var(--ease-out);background:0 0;border:none;border-radius:9px;align-items:center;gap:7px;padding:0 9px 0 7px;font-size:13.5px;font-weight:500;display:inline-flex}.model-trigger:active{transform:scale(.97)}.model-trigger-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.model-trigger svg{color:var(--faint);flex-shrink:0}@media (max-width:768px){.model-trigger{max-width:170px}}@media (hover:hover) and (pointer:fine){.model-trigger:hover{background:var(--hover);color:var(--text)}}.pmark{background:#262a31;flex-shrink:0;justify-content:center;align-items:center;font-weight:650;line-height:1;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff0f}.picker-overlay{z-index:50;background:#0506099e;justify-content:center;align-items:center;padding:24px;transition:opacity .16s;display:flex;position:fixed;inset:0}.picker{border:1px solid var(--border);width:min(1000px,100%);height:min(720px,100%);transition:transform .18s var(--ease-out), opacity .18s var(--ease-out);background:#1d2025;border-radius:16px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 30px 80px #0000008c,0 0 0 1px #ffffff05}@starting-style{.picker-overlay{opacity:0}.picker{opacity:0;transform:scale(.98)}}@media (max-width:768px){.picker-overlay{align-items:flex-end;padding:0}.picker.sheet{width:100%;height:90dvh;padding-bottom:env(safe-area-inset-bottom,0px);transition:transform .3s var(--ease-drawer);border-bottom:none;border-radius:18px 18px 0 0}@starting-style{.picker.sheet{opacity:1;transform:translateY(100%)}}}.picker-head{border-bottom:1px solid var(--border);padding:12px 12px 10px}.picker-search{height:44px;color:var(--faint);border-radius:10px;align-items:center;gap:10px;padding:0 8px 0 12px;transition:background-color .15s;display:flex}.picker-search:focus-within{background:#ffffff08}.picker-search input{min-width:0;height:100%;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:16px}.picker-search input:focus-visible{outline:none}.picker-search kbd{margin-right:4px}.picker-tools{align-items:center;gap:10px;margin-top:6px;padding:0 2px;display:flex}.chips{scrollbar-width:none;flex:1;gap:4px;min-width:0;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{height:30px;color:var(--muted);transition:background-color .15s ease, color .15s ease, transform .12s var(--ease-out);background:0 0;border:none;border-radius:8px;flex-shrink:0;align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:500;display:inline-flex}.chip:active{transform:scale(.96)}.chip.on{background:var(--text);color:#1a1c21}.chip-count{color:var(--faint);font-variant-numeric:tabular-nums;font-size:12px}.chip.on .chip-count{color:#5b616c}@media (hover:hover) and (pointer:fine){.chip:not(.on):hover{background:var(--hover);color:var(--text)}}.sort{color:var(--faint);flex-shrink:0;align-items:center;display:inline-flex;position:relative}.sort select{appearance:none;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:0 26px 0 10px;font-size:13px;font-weight:500}.sort select option{background:var(--panel);color:var(--text)}.sort svg{pointer-events:none;position:absolute;right:9px}@media (hover:hover) and (pointer:fine){.sort select:hover{background:var(--hover);color:var(--text)}}.picker{position:relative}.filter-btn{border:1px solid var(--border);height:30px;color:var(--muted);transition:background-color .15s ease, color .15s ease, border-color .15s ease, transform .12s var(--ease-out);background:0 0;border-radius:8px;flex-shrink:0;align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:500;display:inline-flex}.filter-btn:active{transform:scale(.96)}.filter-btn.on{color:var(--text);border-color:var(--border-strong);background:#ffffff0a}.filter-badge{background:var(--accent);min-width:18px;height:18px;color:var(--on-accent);font-variant-numeric:tabular-nums;border-radius:999px;justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex}@media (hover:hover) and (pointer:fine){.filter-btn:hover{color:var(--text);border-color:var(--border-strong)}}.result-bar{border-bottom:1px solid var(--border);height:34px;color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;padding:0 16px;font-size:12.5px;display:flex}.link-btn{color:var(--accent-text);background:0 0;border:none;margin-left:10px;padding:0;font-size:12.5px;font-weight:500}@media (hover:hover) and (pointer:fine){.link-btn:hover{text-underline-offset:3px;text-decoration:underline}}.fpanel-scrim{z-index:4;position:absolute;inset:0}.fpanel{z-index:5;border:1px solid var(--border-strong);transform-origin:100% 0;width:360px;max-height:calc(100% - 116px);transition:transform .16s var(--ease-out), opacity .16s var(--ease-out);background:#23262d;border-radius:14px;flex-direction:column;display:flex;position:absolute;top:104px;right:12px;overflow:hidden;box-shadow:0 20px 50px #00000080}@starting-style{.fpanel{opacity:0;transform:scale(.96)}}@media (max-width:768px){.fpanel{transform-origin:bottom;width:auto;max-height:78%;inset:auto 8px 8px}.fpanel-scrim{background:#0006}}.fpanel-head{justify-content:space-between;align-items:center;padding:10px 10px 6px 16px;font-size:14px;font-weight:600;display:flex}.fpanel-body{overscroll-behavior:contain;flex:1;min-height:0;padding:0 16px 8px;overflow-y:auto}.fpanel section{border-bottom:1px solid var(--border);padding:10px 0 12px}.fpanel section:last-child{border-bottom:none}.fpanel h5{color:var(--muted);justify-content:space-between;align-items:center;margin:0 0 8px;font-size:12px;font-weight:500;display:flex}.fpanel h5 .link-btn{font-size:12px}.seg{background:var(--side);border-radius:9px;gap:2px;padding:3px;display:flex}.seg button{height:28px;color:var(--muted);white-space:nowrap;background:0 0;border:none;border-radius:7px;flex:1;padding:0 6px;font-size:12.5px;font-weight:500;transition:background-color .15s,color .15s}.seg button.on{background:var(--raised);color:var(--text);box-shadow:0 1px 2px #0000004d}@media (hover:hover) and (pointer:fine){.seg button:not(.on):hover{color:var(--text)}}.fchips{flex-wrap:wrap;gap:6px;display:flex}.fchip{border:1px solid var(--border);height:30px;color:var(--muted);transition:background-color .15s ease, color .15s ease, border-color .15s ease, transform .12s var(--ease-out);background:0 0;border-radius:8px;align-items:center;gap:6px;padding:0 10px;font-size:12.5px;font-weight:500;display:inline-flex}.fchip:active{transform:scale(.96)}.fchip.on{color:var(--text);background:var(--raised);border-color:var(--border-strong)}.fchip.on svg:last-child{color:var(--accent)}@media (hover:hover) and (pointer:fine){.fchip:not(.on):hover{color:var(--text);border-color:var(--border-strong)}}.fsearch{background:var(--side);border:1px solid var(--border);height:34px;color:var(--faint);border-radius:8px;align-items:center;gap:8px;margin-bottom:6px;padding:0 10px;display:flex}.fsearch:focus-within{border-color:var(--border-strong)}.fsearch input{min-width:0;height:100%;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:16px}@media (min-width:769px){.fsearch input{font-size:13px}}.fsearch input:focus-visible{outline:none}.plist{overscroll-behavior:contain;max-height:200px;margin:0 -6px;overflow-y:auto}.plist-empty{color:var(--faint);padding:8px 6px;font-size:12.5px}.prow{cursor:pointer;height:34px;color:var(--soft);border-radius:7px;align-items:center;gap:10px;padding:0 6px;font-size:13px;display:flex}.prow input{opacity:0;pointer-events:none;position:absolute}.pbox{border:1.5px solid var(--border-strong);width:16px;height:16px;color:var(--on-accent);border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;transition:background-color .12s,border-color .12s;display:flex}.prow.on .pbox{background:var(--accent);border-color:var(--accent)}.prow.on{color:var(--text)}.prow input:focus-visible+.pbox{outline:2px solid var(--accent);outline-offset:2px}.pname{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.pcount{color:var(--faint);font-variant-numeric:tabular-nums;font-size:12px}@media (hover:hover) and (pointer:fine){.prow:hover{background:#ffffff0a}}.fpanel-foot{border-top:1px solid var(--border);gap:8px;padding:10px 12px 12px;display:flex}.fpanel-foot .btn-secondary{height:36px;font-size:13px}.fpanel-foot .btn-secondary:disabled{opacity:.4;cursor:default}.fpanel-foot .btn-primary{flex:1;height:36px;font-size:13px}.picker-body{flex:1;grid-template-columns:minmax(0,1fr) 400px;min-height:0;display:grid}@media (max-width:900px){.picker-body{grid-template-columns:minmax(0,1fr) 340px}}@media (max-width:768px){.picker-body{grid-template-columns:minmax(0,1fr)}}.picker-list{overscroll-behavior:contain;padding:6px;overflow-y:auto}.picker-empty{color:var(--faint);text-align:center;padding:32px 12px;font-size:14px}.picker-empty .link-btn{font-size:14px}.list-section{color:var(--faint);padding:14px 10px 6px;font-size:12px;font-weight:500}.list-section:first-child{padding-top:6px}.mrow{cursor:pointer;border-radius:10px;align-items:center;gap:12px;min-height:52px;padding:6px 6px 6px 8px;display:flex}.mrow.active{background:#ffffff0b}.mrow-main{flex:1;min-width:0}.mrow-name{color:var(--text);align-items:center;gap:6px;font-size:14px;font-weight:500;display:flex}.mrow-name span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mrow-check{color:var(--accent);flex-shrink:0}.mrow-sub{color:var(--muted);white-space:nowrap;gap:10px;margin-top:2px;font-size:12.5px;display:flex;overflow:hidden}.mrow-caps{color:var(--faint);flex-shrink:0;gap:8px;display:flex}.mrow-caps span{display:flex}.mrow-price{text-align:right;min-width:52px;color:var(--soft);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:13px}.mrow-price.free{color:var(--muted)}.mrow-price .faint{margin-left:1px}.star{width:28px;height:28px;color:var(--faint);opacity:0;transition:opacity .12s ease, color .12s ease, transform .12s var(--ease-out);background:0 0;border:none;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.star:active{transform:scale(.9)}.star.on{opacity:1;color:#f2c46d}.mrow.active .star{opacity:1}@media (hover:none){.star{opacity:1}}@media (hover:hover) and (pointer:fine){.star:hover{color:#f2c46d}}.picker-detail{border-left:1px solid var(--border);background:#1a1c21;min-height:0}.mdetail{flex-direction:column;height:100%;min-height:0;display:flex}.mdetail-scroll{overscroll-behavior:contain;flex:1;padding:22px 22px 18px;overflow-y:auto}.picker.sheet .mdetail-scroll{padding:14px 18px 18px}.back-btn{height:34px;color:var(--muted);background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;margin:0 0 12px -6px;padding:0 10px 0 6px;font-size:14px;display:inline-flex}.mdetail-head{align-items:flex-start;gap:13px;display:flex}.mdetail-titles{flex:1;min-width:0;padding-top:1px}.mdetail-name{letter-spacing:-.02em;overflow-wrap:anywhere;font-size:18px;font-weight:600;line-height:1.25}.mdetail-meta{color:var(--muted);flex-wrap:wrap;gap:4px 12px;margin-top:4px;font-size:13px;display:flex}.mdetail-meta span+span{position:relative}.mdetail-meta span+span:before{content:"";background:var(--faint);border-radius:50%;width:3px;height:3px;margin-top:-1.5px;position:absolute;top:50%;left:-7px}.fav-btn{margin:-4px -8px 0 0}.fav-btn.on{color:#f2c46d}.mdetail-about{margin-top:18px}.mdetail-desc{color:var(--soft);white-space:pre-line;-webkit-line-clamp:5;-webkit-box-orient:vertical;margin:0;font-size:14px;line-height:1.65;display:-webkit-box;overflow:hidden}.mdetail-desc.open{display:block}.more-btn{color:var(--accent-text);background:0 0;border:none;margin-top:6px;padding:0;font-size:13px;font-weight:500}@media (hover:hover) and (pointer:fine){.more-btn:hover{text-underline-offset:3px;text-decoration:underline}}.mdetail section{margin-top:24px}.mdetail h4{color:var(--text);margin:0 0 10px;font-size:12.5px;font-weight:600}.tags{flex-wrap:wrap;gap:6px;display:flex}.tag{color:var(--soft);background:#ffffff0d;border-radius:7px;padding:4px 9px;font-size:12.5px}.spec-list{border-top:1px solid var(--border);margin:0}.spec-list>div{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0;display:flex}.spec-list dt{color:var(--muted);font-size:13px}.spec-list dd{text-align:right;color:var(--text);font-variant-numeric:tabular-nums;margin:0;font-size:13.5px;font-weight:500}.spec-list small{color:var(--faint);margin-top:2px;font-size:11.5px;font-weight:400;display:block}.cap-grid{grid-template-columns:1fr 1fr;gap:2px 16px;display:grid}.cap{height:32px;color:var(--faint);align-items:center;gap:9px;font-size:13px;display:flex}.cap-icon{display:flex}.cap-label{flex:1}.cap.on{color:var(--soft)}.cap.on .cap-icon{color:var(--muted)}.cap .cap-mark{color:var(--faint);opacity:.6}.cap.on .cap-mark{color:var(--green);opacity:1}.mdetail-id{font-family:var(--font-mono), monospace;color:var(--faint);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;margin-top:22px;font-size:11.5px}.mdetail-foot{border-top:1px solid var(--border);padding:12px 22px 14px}.mdetail-foot .btn-primary{width:100%;height:38px;font-size:13.5px}.mdetail-foot .btn-primary:disabled{opacity:1;color:var(--muted);background:#ffffff0f}.picker-hint{border-top:1px solid var(--border);height:34px;color:var(--faint);flex-shrink:0;align-items:center;gap:16px;padding:0 14px;font-size:12px;display:flex}.picker-hint span{align-items:center;gap:4px;display:inline-flex}.picker-hint span:last-child{margin-left:auto}@media (max-height:560px){.picker-hint{display:none}}.hub{flex-direction:column;min-height:100svh;display:flex}.hub-top{width:100%;max-width:640px;padding:calc(16px + env(safe-area-inset-top,0px)) 20px 0;justify-content:flex-end;align-items:center;margin:0 auto;display:flex}.hub-main{width:100%;max-width:640px;padding:10vh 20px calc(64px + env(safe-area-inset-bottom,0px));margin:0 auto}.enter{animation:enter .5s var(--ease-out) both;animation-delay:calc(var(--d,0) * 70ms)}@keyframes enter{0%{opacity:0;filter:blur(2px);transform:translateY(10px)}to{opacity:1;filter:none;transform:none}}.hub-title{letter-spacing:-.025em;margin:0;font-size:clamp(26px,4.5vw,32px);font-weight:600;line-height:1.2}.hub-date{color:var(--muted);margin:6px 0 0;font-size:15px}.ask{background:var(--panel);border:1px solid var(--border);height:56px;transition:border-color .2s ease, box-shadow .25s var(--ease-out);border-radius:14px;align-items:center;gap:8px;margin-top:28px;padding:0 8px 0 18px;display:flex;position:relative}.ask:focus-within{border-color:#7b8cff8c;box-shadow:0 0 0 4px #7b8cff1f}.ask input{min-width:0;height:100%;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:16px}.ask input:focus-visible{outline:none}.ask-send{background:var(--accent);width:38px;height:38px;color:var(--on-accent);transition:transform .2s var(--ease-out), opacity .2s ease, background-color .15s ease;border:none;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.ask-send:disabled{opacity:0;pointer-events:none;transform:scale(.8)}.ask-send:not(:disabled):active{transform:scale(.92)}.hub-block{margin-top:48px}.hub-block h2{color:var(--faint);margin:0 0 8px;font-size:13px;font-weight:500}.hub-list{margin:0 -12px;padding:0;list-style:none}.hub-row{color:inherit;transition:background-color .15s ease, transform .12s var(--ease-out);border-radius:12px;align-items:center;gap:14px;padding:12px;text-decoration:none;display:flex}.hub-row:active{background:var(--hover);transform:scale(.985)}.hub-row-icon{background:var(--accent-soft);width:40px;height:40px;color:var(--accent);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.hub-row-text{flex:1;min-width:0}.hub-row-name{font-size:15px;font-weight:500}.hub-row-desc{color:var(--muted);margin-top:1px;font-size:13.5px}.hub-row-title{min-width:0;color:var(--soft);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:14.5px;overflow:hidden}.hub-row-time{color:var(--faint);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:13px}.hub-row-arrow{color:var(--faint);opacity:0;transition:opacity .15s ease, transform .2s var(--ease-out);flex-shrink:0;transform:translate(-4px)}.chat-row{padding-top:10px;padding-bottom:10px}.row-in{animation:row-in .36s var(--ease-out) both;animation-delay:calc(var(--d,0) * 40ms)}@keyframes row-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.hub-skeleton{background:var(--panel);border-radius:6px;height:18px;margin:14px 0;animation:1.2s ease-in-out infinite pulse}.hub-skeleton:first-child{width:72%}.hub-skeleton:nth-child(2){width:54%;animation-delay:.15s}.hub-skeleton:nth-child(3){width:63%;animation-delay:.3s}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.hub-note{color:var(--muted);margin:4px 0 0;font-size:14.5px;line-height:1.55}.hub-note.error{color:var(--red)}.hub-note .link-btn{margin-left:4px;font-size:14.5px}@media (hover:hover) and (pointer:fine){.ask-send:not(:disabled):hover{background:#8d9bff}.hub-row:hover{background:var(--hover)}.hub-row:hover .hub-row-arrow{opacity:1;transform:none}.hub-row:hover .hub-row-title{color:var(--text)}}@media (max-width:560px){.hub-top .text-btn span{display:none}.hub-main{padding-top:5vh}}.login{justify-content:center;align-items:center;min-height:100svh;padding:20px;display:flex}.login form{width:100%;max-width:340px}.login-icon{background:var(--accent-soft);width:48px;height:48px;color:var(--accent);border-radius:14px;justify-content:center;align-items:center;margin-bottom:18px;display:flex}.login h1{letter-spacing:-.025em;margin:0 0 4px;font-size:24px;font-weight:600}.login .sub{color:var(--muted);margin:0 0 22px;font-size:14.5px}.pw-field{margin-bottom:12px;position:relative}.pw-field .field{padding-right:46px}.pw-field .icon-btn{position:absolute;top:4px;right:4px}.login .err{color:var(--red);margin:-2px 0 12px;font-size:13px}.login .btn-primary{height:44px;font-size:15px}@media (prefers-reduced-motion:reduce){.fpanel{transition:opacity .15s;transform:none!important}.enter,.row-in{animation:.2s both fade}.ask-send,.hub-row-arrow,.picker,.picker.sheet,.modal,.sel-pop,.drawer{transition:opacity .15s;transform:none!important}.dots span{animation-duration:2s}@keyframes fade{0%{opacity:0}to{opacity:1}}}
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/46a9e2f250689b4a-s.03ez25a9g3i0n.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/76b70a1dbe058eb5-s.3i9rha7jpxn0q.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2fb76073e23fd9e4-s.2o7ko1d-5m1xu.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6131cbbf5549afa2-s.1ee5w62fj497l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/45462fd7b7c12654-s.1way2z9fj6cig.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ba63f6a0e436df8e-s.0szrwpqb9mkwe.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/07c7676b89ed2778-s.p.45535valc9rzk.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.-KQRRa_className{font-family:Inter,Inter Fallback;font-style:normal}.-KQRRa_variable{--font-sans:"Inter", "Inter Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/258bd0ab5fdd762a-s.3bz3aq452sydg.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/99a2019bdfa8519b-s.2sb9jzhmrh7ny.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/44e0cb21b0d052b7-s.343obqi851wr5.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/f9cd5a77d065db98-s.40kcwrf1wub16.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/954d21e04331b2ae-s.200l3jur7oygh.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/53897e768d329f66-s.p.269kn9uafm0ti.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}._78ed6G_className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}._78ed6G_variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
