:root{--bg: #0b0d12;--bg-grad: radial-gradient(1200px 600px at 85% -10%, rgba(79, 140, 255, .08), transparent 60%);--surface: #14171e;--surface-2: #1b1f28;--surface-3: #232834;--surface-hover: #1f2430;--border: #262b36;--border-strong: #333a48;--text: #eef1f6;--text-2: #c3cad6;--muted: #8b93a3;--faint: #6a7180;--accent: #5b93ff;--accent-hover: #6ea0ff;--accent-press: #4a82f0;--accent-soft: rgba(91, 147, 255, .14);--accent-ring: rgba(91, 147, 255, .45);--accent-grad: linear-gradient(135deg, #5b93ff, #7c74ff);--success: #46c07a;--success-soft: rgba(70, 192, 122, .14);--warning: #e0b341;--warning-soft: rgba(224, 179, 65, .15);--danger: #ff5f6b;--danger-hover: #ff7078;--danger-soft: rgba(255, 95, 107, .14);--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow: 0 6px 20px rgba(0, 0, 0, .35);--shadow-lg: 0 18px 48px rgba(0, 0, 0, .5);--ring: 0 0 0 3px var(--accent-ring);--transition: .15s cubic-bezier(.4, 0, .2, 1);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);background-image:var(--bg-grad);background-attachment:fixed;color:var(--text);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--accent-soft);color:var(--text)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full);border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:var(--muted);background-clip:content-box}h1,h2,h3{margin:0;font-weight:650;letter-spacing:-.02em;color:var(--text)}h1{font-size:1.65rem;line-height:1.2}h2{font-size:1.15rem}h3{font-size:1rem}p{margin:.5rem 0}a{color:var(--accent);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--accent-hover)}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--radius-sm)}button{font:inherit;font-weight:550;cursor:pointer;border:1px solid transparent;border-radius:var(--radius-sm);padding:.5rem .95rem;background:var(--accent);background-image:var(--accent-grad);color:#fff;line-height:1.3;transition:filter var(--transition),transform var(--transition),box-shadow var(--transition),background-color var(--transition),border-color var(--transition),opacity var(--transition);box-shadow:var(--shadow-sm)}button:hover:not(:disabled){filter:brightness(1.08);box-shadow:var(--shadow)}button:active:not(:disabled){transform:translateY(1px);filter:brightness(.96)}button:disabled{opacity:.45;cursor:not-allowed}button.danger{background:var(--danger);background-image:none}button.danger:hover:not(:disabled){background:var(--danger-hover)}.btn-secondary,.pager button,.tabs button{background:var(--surface-2);background-image:none;border-color:var(--border);color:var(--text-2);box-shadow:none}.btn-secondary:hover:not(:disabled),.pager button:hover:not(:disabled){background:var(--surface-3);color:var(--text);border-color:var(--border-strong);filter:none;box-shadow:none}.link-button{background:none;background-image:none;color:var(--accent);padding:.3rem .55rem;border-radius:var(--radius-sm);box-shadow:none;font-weight:550}.link-button:hover:not(:disabled){background:var(--accent-soft);filter:none;box-shadow:none}.link-button.danger{background:none;background-image:none;color:var(--danger)}.link-button.danger:hover:not(:disabled){background:var(--danger-soft)}input,select,textarea{font:inherit;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:.55rem .75rem;width:100%;transition:border-color var(--transition),box-shadow var(--transition),background-color var(--transition)}input::placeholder,textarea::placeholder{color:var(--faint)}input:hover,select:hover,textarea:hover{border-color:var(--border-strong)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring);background:var(--surface)}select{width:auto;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:2.2rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238b93a3' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .7rem center}input[type=checkbox]{width:auto;accent-color:var(--accent);cursor:pointer}input[type=file]{padding:.45rem .6rem;cursor:pointer}input[type=file]::file-selector-button{font:inherit;font-weight:550;margin-right:.75rem;padding:.4rem .8rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-3);color:var(--text-2);cursor:pointer;transition:background-color var(--transition)}input[type=file]::file-selector-button:hover{background:var(--surface-hover)}.centered{display:flex;align-items:center;justify-content:center;min-height:60vh;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:.85rem}.error{color:var(--danger);margin:.5rem 0}.error.small{margin:.25rem 0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow-sm)}.login-card{width:360px;max-width:calc(100vw - 2rem);display:flex;flex-direction:column;gap:.85rem;padding:2rem;box-shadow:var(--shadow-lg);animation:rise .4s cubic-bezier(.2,.8,.2,1)}.login-card h1{margin:0;font-size:1.5rem}.login-card>.muted{margin:-.35rem 0 .5rem}.login-card label{display:flex;flex-direction:column;gap:.4rem;font-size:.85rem;font-weight:550;color:var(--text-2)}.login-card button[type=submit]{margin-top:.35rem;padding:.65rem 1rem}.login-brand{display:flex;align-items:center;gap:.6rem}.brand-mark{width:34px;height:34px;border-radius:9px;background:var(--accent-grad);display:grid;place-items:center;color:#fff;flex:0 0 auto;box-shadow:0 2px 10px #5b93ff59}.brand-mark svg{width:20px;height:20px}.app-shell{display:grid;grid-template-rows:auto 1fr;height:100%}.topbar{display:flex;align-items:center;gap:1rem;padding:.6rem 1.25rem;background:color-mix(in srgb,var(--surface) 80%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:1.1rem;letter-spacing:-.02em;flex:0 0 auto}.topbar-nav{display:flex;align-items:center;gap:.15rem;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.topbar-nav::-webkit-scrollbar{display:none}.topbar-nav a{position:relative;display:flex;align-items:center;gap:.5rem;color:var(--text-2);padding:.5rem .8rem;border-radius:var(--radius-sm);font-weight:550;white-space:nowrap;transition:background-color var(--transition),color var(--transition)}.topbar-nav a svg{width:18px;height:18px;flex:0 0 auto;opacity:.85}.topbar-nav a:hover{background:var(--surface-2);color:var(--text)}.topbar-nav a.active{background:var(--accent-soft);color:var(--accent-hover)}.topbar-nav a.active svg{opacity:1}.topbar-actions{display:flex;align-items:center;gap:.35rem;flex:0 0 auto;margin-left:auto}.sidebar-action{display:flex;align-items:center;gap:.5rem;color:var(--text-2);padding:.5rem .7rem;border-radius:var(--radius-sm);font-weight:550;font-size:.9rem;background:none;border:none;cursor:pointer;text-align:left;white-space:nowrap;transition:background-color var(--transition),color var(--transition)}.sidebar-action svg{width:18px;height:18px;flex:0 0 auto;opacity:.85}.sidebar-action:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.sidebar-action:disabled{opacity:.6;cursor:default}.topbar-account{position:relative;flex:0 0 auto;margin-left:.25rem}.user-trigger{display:flex;align-items:center;padding:.2rem;border-radius:var(--radius-full);background:none;border:none;cursor:pointer;color:inherit;transition:background-color var(--transition)}.user-trigger:hover{background:var(--surface-2)}.avatar{width:32px;height:32px;border-radius:var(--radius-full);background:var(--accent-soft);border:1px solid var(--border-strong);display:grid;place-items:center;font-size:.82rem;font-weight:650;color:var(--accent-hover);flex:0 0 auto;text-transform:uppercase}.user-menu{position:absolute;top:calc(100% + .4rem);right:0;min-width:13rem;display:flex;flex-direction:column;gap:.1rem;padding:.35rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg, 0 8px 24px rgba(0, 0, 0, .18));z-index:20}.user-menu-header{display:flex;align-items:center;gap:.55rem;padding:.35rem .5rem .5rem;margin-bottom:.15rem;border-bottom:1px solid var(--border)}.user-menu-header .username{min-width:0;font-size:.9rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu button{display:flex;align-items:center;gap:.65rem;width:100%;padding:.5rem .6rem;border-radius:var(--radius-sm);background:none;border:none;cursor:pointer;color:var(--text-2);font-weight:550;font-size:.9rem;text-align:left;transition:background-color var(--transition),color var(--transition)}.user-menu button svg{width:18px;height:18px;flex:0 0 auto;opacity:.85}.user-menu button:hover{background:var(--surface-2);color:var(--text)}.user-menu button.danger:hover{background:var(--danger-soft, color-mix(in srgb, var(--danger, #ef4444) 14%, transparent));color:var(--danger, #ef4444)}.content{padding:2.25rem 2.5rem;overflow:auto}.page-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.5rem}.save-form{display:flex;gap:.5rem;flex:1;max-width:520px}.filters{display:flex;gap:.75rem;align-items:center;margin:1.25rem 0 1.5rem;flex-wrap:wrap}.search{margin:0;max-width:420px;flex:1;min-width:220px}.status-filter{flex:0 0 auto}.status-control{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.model-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.1rem}.model-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;color:var(--text);display:flex;flex-direction:column;box-shadow:var(--shadow-sm);transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition)}.model-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--border-strong)}.model-card:hover .thumb img{transform:scale(1.04)}.thumb,.thumb-large{aspect-ratio:1;background:linear-gradient(145deg,var(--surface-2),var(--surface));display:flex;align-items:center;justify-content:center;overflow:hidden}.thumb img,.thumb-large img{width:100%;height:100%;object-fit:cover;transition:transform .25s cubic-bezier(.4,0,.2,1)}.thumb-placeholder{color:var(--faint);font-weight:700;letter-spacing:.08em;font-size:.9rem}.model-card-body{padding:.85rem;display:flex;flex-direction:column;gap:.4rem}.model-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-row{display:flex;flex-wrap:wrap;gap:.35rem}.tag{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-full);padding:.12rem .6rem;font-size:.72rem;color:var(--muted)}.pager{display:flex;align-items:center;gap:1rem;margin-top:1.75rem}.pager span{color:var(--muted);font-size:.9rem}.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.1rem}.skeleton-card{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.skeleton-card .sk-thumb{aspect-ratio:1}.skeleton-card .sk-body{padding:.85rem;display:flex;flex-direction:column;gap:.5rem}.sk{background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 37%,var(--surface-2) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;border-radius:var(--radius-sm)}.sk-line{height:.7rem}.sk-line.short{width:55%}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;text-align:center;padding:3.5rem 1.5rem;color:var(--muted);border:1px dashed var(--border-strong);border-radius:var(--radius);background:color-mix(in srgb,var(--surface) 55%,transparent)}.empty-state svg{width:40px;height:40px;color:var(--faint);margin-bottom:.25rem}.empty-state .empty-title{color:var(--text-2);font-weight:600}.detail>.link-button{margin-left:-.55rem;margin-bottom:.5rem;display:inline-block}.detail-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.detail-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.6rem}.bambu-note{margin:0 0 .5rem;font-size:.85rem}.update-status{margin:0 0 .75rem}.update-status-row{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem}.update-detail{margin:.5rem 0 0;font-size:.85rem}.update-badge{display:inline-flex;align-items:center;padding:.15rem .55rem;border-radius:999px;font-size:.78rem;font-weight:600;border:1px solid transparent}.update-badge.is-available{color:var(--warning);background:var(--warning-soft);border-color:var(--warning)}.update-badge.is-current{color:var(--success);background:var(--success-soft)}.update-badge.is-error{color:var(--danger);background:var(--danger-soft)}.update-badge.is-muted{color:var(--muted);background:var(--surface-3)}.detail-grid{display:grid;grid-template-columns:320px 1fr;gap:1.75rem;margin:1.25rem 0 2.25rem}.thumb-large{border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);align-self:start}.detail-meta{display:flex;flex-direction:column;gap:1.1rem}.detail-meta dl{display:grid;grid-template-columns:120px 1fr;gap:.75rem 1rem;margin:0}.detail-meta dt{color:var(--muted);font-size:.9rem}.detail-meta dd{margin:0}.files-table{width:100%;border-collapse:collapse;font-size:.92rem}.files-table th{text-align:left;padding:.7rem .65rem;border-bottom:1px solid var(--border-strong);color:var(--muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.files-table td{text-align:left;padding:.7rem .65rem;border-bottom:1px solid var(--border)}.files-table tbody tr{transition:background-color var(--transition)}.files-table tbody tr:hover{background:var(--surface)}.estimate-card{margin:1.5rem 0;padding:1.25rem 1.5rem}.estimate-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.estimate-card h2{margin:0;font-size:1.05rem}.estimate-assumptions{margin:.25rem 0 1rem}.estimate-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.estimate-metric{display:flex;flex-direction:column;gap:.15rem;padding:.75rem .85rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.estimate-metric-value{font-size:1.15rem;font-weight:700}.estimate-metric-label{font-size:.78rem;color:var(--muted)}.estimate-facts{display:grid;grid-template-columns:auto 1fr;gap:.3rem 1rem;margin:1rem 0 0;font-size:.9rem}.estimate-facts dt{color:var(--muted)}.estimate-facts dd{margin:0;font-weight:600}.estimate-adjust{display:grid;grid-template-columns:repeat(2,1fr);gap:.9rem 1rem;margin-top:1.1rem;padding-top:1.1rem;border-top:1px solid var(--border)}.estimate-adjust label{display:flex;flex-direction:column;gap:.4rem;font-size:.85rem;color:var(--text-2)}.estimate-adjust input[type=range]{width:100%;accent-color:var(--accent)}.estimate-note{margin:1rem 0 0}@media(max-width:640px){.estimate-metrics{grid-template-columns:repeat(2,1fr)}.estimate-adjust{grid-template-columns:1fr}}.settings-section{max-width:560px;margin:1.25rem 0}.settings-section.admin-wide{max-width:1040px}.settings-section h2{margin:0 0 1rem;font-size:1.05rem}.settings-list{display:grid;grid-template-columns:140px 1fr;gap:.7rem 1rem;margin:0}.settings-list dt{color:var(--muted)}.settings-list dd{margin:0;word-break:break-word}.settings-help{color:var(--muted);margin:0 0 1rem;line-height:1.5}.settings-steps{margin:1rem 0 0;padding-left:1.2rem;color:var(--text);line-height:1.7}.settings-steps code,.ext-banner code{background:var(--surface-3);border-radius:var(--radius-sm);padding:.05rem .35rem;font-size:.85em}.ext-banner{display:flex;align-items:center;gap:.9rem;padding:.85rem 1.1rem;margin:0 0 1.25rem;background:var(--accent-soft);border:1px solid var(--border);border-radius:var(--radius)}.ext-banner-icon{flex:none;display:inline-flex;width:22px;height:22px;color:var(--accent)}.ext-banner-icon svg{width:100%;height:100%}.ext-banner-body{flex:1 1 auto;min-width:0}.ext-banner-body p{margin:0;line-height:1.45}.ext-banner-error{color:var(--danger)}.ext-banner-actions{flex:none;display:flex;align-items:center;gap:.5rem}@media(max-width:640px){.ext-banner{flex-wrap:wrap}.ext-banner-actions{width:100%;justify-content:flex-end}}.admin-toggle{display:flex;align-items:flex-start;gap:.6rem;cursor:pointer}.admin-toggle input{margin-top:.25rem}.table-scroll{overflow-x:auto;margin:0 -.25rem;padding:0 .25rem}.admin-table input[type=text],.admin-table input:not([type]),.admin-table select{width:100%;min-width:6rem}.admin-table td{vertical-align:top}.admin-actions{display:flex;gap:.4rem;white-space:nowrap}.collection-bubbles{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:1.5rem 0 .25rem}.bubble{display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .9rem;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface-2);color:var(--text-2);font-weight:550;font-size:.88rem;line-height:1.2;box-shadow:none;transition:transform var(--transition),box-shadow var(--transition),filter var(--transition),background-color var(--transition),border-color var(--transition),color var(--transition)}.bubble:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.1);box-shadow:var(--shadow)}.bubble:active:not(:disabled){transform:translateY(0)}.bubble-icon{font-size:1rem;line-height:1}.bubble-count{font-size:.72rem;font-weight:650;padding:.02rem .42rem;border-radius:var(--radius-full);background:color-mix(in srgb,currentColor 20%,transparent);color:inherit}.bubble-all.active{background:var(--accent);background-image:var(--accent-grad);border-color:transparent;color:#fff;box-shadow:0 6px 20px #5b93ff66}.bubble-wrap{position:relative;display:inline-flex}.bubble-del{position:absolute;top:-7px;right:-7px;width:20px;height:20px;padding:0;display:grid;place-items:center;border-radius:50%;background:var(--surface-3);border:1px solid var(--border-strong);color:var(--text-2);font-size:1rem;line-height:1;box-shadow:var(--shadow-sm)}.bubble-del:hover:not(:disabled){background:var(--danger);border-color:var(--danger);color:#fff;filter:none;transform:none}.bubble-new{border-style:dashed;background:transparent;color:var(--muted)}.bubble-new:hover:not(:disabled){color:var(--accent);border-color:var(--accent);box-shadow:none}.bubble-new-form{display:inline-flex;align-items:center;gap:.3rem}.bubble-new-form input{width:10rem;padding:.4rem .85rem;border-radius:var(--radius-full);font-size:.88rem}.bubble-go{width:30px;height:30px;flex:0 0 auto;padding:0;display:grid;place-items:center;border-radius:50%;font-size:.9rem;line-height:1}.bubble-go-cancel{background:var(--surface-2);background-image:none;border-color:var(--border);color:var(--muted);box-shadow:none}.bubble-go-cancel:hover:not(:disabled){background:var(--surface-3);color:var(--text);filter:none}.settings-form{display:flex;flex-direction:column;gap:.85rem;max-width:460px}.settings-form label{display:flex;flex-direction:column;gap:.4rem;font-weight:550;font-size:.85rem;color:var(--text-2)}.settings-form input,.settings-form select{padding:.55rem .75rem}.provider-capability{display:flex;align-items:center;gap:.6rem;margin:.6rem 0 1rem}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.18rem .6rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;text-transform:capitalize;border:1px solid transparent;background:var(--surface-3);color:var(--text-2)}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.9}.badge-ok,.status-succeeded{background:var(--success-soft);color:#7fdca5;border-color:#46c07a4d}.badge-warn{background:var(--warning-soft);color:#edcd7a;border-color:#e0b3414d}.status-queued{background:var(--surface-3);color:var(--muted);border-color:var(--border-strong)}.status-running{background:var(--accent-soft);color:var(--accent-hover);border-color:#5b93ff4d}.status-running:before{animation:pulse 1.2s ease-in-out infinite}.status-failed{background:var(--danger-soft);color:#ff8f97;border-color:#ff5f6b4d}.status-cancelled{background:var(--surface-2);color:var(--faint);border-color:var(--border)}.gen-actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.job-error{margin:.5rem 0 0;max-width:340px;max-height:5.5rem;overflow:auto;padding:.5rem .65rem;background:var(--danger-soft);border:1px solid rgba(255,95,107,.25);border-radius:var(--radius-sm);color:#ff9aa1;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.72rem;line-height:1.45;white-space:pre-wrap;word-break:break-word}.model-viewer{position:relative;width:100%;aspect-ratio:4 / 3;border-radius:var(--radius);overflow:hidden;background:radial-gradient(circle at 50% 40%,#171b24,#0b0d12 75%)}.model-viewer-canvas{width:100%;height:100%}.model-viewer-canvas canvas{display:block}.model-viewer-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.model-viewer-toolbar{position:absolute;right:.6rem;bottom:.6rem;display:flex;gap:.3rem;padding:.25rem;border-radius:calc(var(--radius) * .6);background:#0c0f16b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border);opacity:.35;transition:opacity .15s ease}.model-viewer:hover .model-viewer-toolbar,.model-viewer-toolbar:focus-within{opacity:1}.model-viewer-toolbar button{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;padding:0;font-size:1rem;line-height:1;color:#d5dbe6;background:transparent;border:1px solid transparent;border-radius:calc(var(--radius) * .45);cursor:pointer}.model-viewer-toolbar button:hover{background:#ffffff14}.model-viewer-toolbar button.active{color:var(--accent, #6ea8fe);border-color:var(--accent, #6ea8fe);background:#6ea8fe1f}.model-viewer-hint{position:absolute;left:50%;bottom:.7rem;transform:translate(-50%);padding:.25rem .7rem;font-size:.72rem;color:#b8c0cd;background:#0c0f16b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border);border-radius:999px;pointer-events:none;white-space:nowrap}.gen-form{display:flex;flex-direction:column;gap:.85rem;max-width:560px;margin-top:1.25rem}.gen-form textarea{padding:.65rem .75rem;resize:vertical;font:inherit;min-height:4.5rem}.tabs{display:flex;gap:.3rem;padding:.3rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius)}.tabs button{flex:1;padding:.5rem;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--muted);box-shadow:none;font-weight:550}.tabs button:hover:not(.active){background:var(--surface-3);color:var(--text-2)}.tabs button.active{background:var(--accent);background-image:var(--accent-grad);color:#fff;border-color:transparent;box-shadow:var(--shadow-sm)}.truncate{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-suggestions{display:flex;flex-direction:column;gap:.4rem;margin:.25rem 0 .2rem}.chip-row{display:flex;flex-wrap:wrap;gap:.4rem}.chip{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-full);padding:.25rem .75rem;font-size:.78rem;color:var(--muted);cursor:pointer;box-shadow:none;font-weight:550}.chip:hover:not(.chip-active){border-color:var(--accent);color:var(--accent);background:var(--accent-soft);filter:none}.chip-active{background:var(--accent);background-image:var(--accent-grad);border-color:transparent;color:#fff}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}@media(max-width:860px){.topbar{gap:.6rem;padding:.55rem .9rem}.brand-name{display:none}.topbar-nav a{padding:.45rem .6rem}.sidebar-action span{display:none}.sidebar-action{padding:.5rem}.content{padding:1.5rem 1.25rem}.detail-grid{grid-template-columns:1fr}}@media(max-width:560px){.topbar-nav a span{display:none}.topbar-nav a{padding:.45rem .5rem}}.user-menu{max-width:calc(100vw - 1.5rem)}.engine-picker{display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-end}.engine-picker label{display:flex;flex-direction:column;gap:.3rem}
