.btn{border:1px solid var(--line);background:var(--panel);min-height:36px;color:var(--text);font:inherit;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:6px 14px;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){background:var(--panel-hover)}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}.btn-primary:hover:not(:disabled){background:#6aacff}.btn-danger{color:#fff;background:#b3261e;border-color:#b3261e;font-weight:600}.btn-danger:hover:not(:disabled){background:#cf3b32}.notice{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--muted);padding:12px 16px;line-height:1.5}.notice a{margin-left:6px}.error-text{color:#ff8a80}.project-list{flex-direction:column;gap:10px;margin:24px 0 0;padding:0;list-style:none;display:flex}.project-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);flex-wrap:wrap;align-items:center;gap:12px;padding:14px 16px;display:flex}.project-main{flex-direction:column;flex:1;gap:4px;min-width:200px;display:flex}.project-name{color:var(--text);font-size:1.05rem;font-weight:600;text-decoration:none}.project-name:hover{text-decoration:underline}.project-date{color:var(--muted);font-size:.85rem}.project-actions{flex-wrap:wrap;gap:6px;display:flex}.rename-form{flex:1;gap:6px;min-width:260px;display:flex}.text-input{border:1px solid var(--line);background:var(--bg);min-height:36px;color:var(--text);font:inherit;border-radius:8px;flex:1;padding:6px 10px}.empty-state{flex-direction:column;align-items:flex-start;gap:16px;margin-top:24px;display:flex}.dialog-backdrop{z-index:100;background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);width:100%;max-width:460px;padding:20px 24px;box-shadow:0 12px 40px #00000080}.dialog h2{margin:0 0 8px;font-size:1.15rem}.dialog-body{color:var(--muted);line-height:1.5}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.admin{flex-direction:column;gap:24px;display:flex}.admin h2{margin:0 0 10px;font-size:1.15rem}.admin .muted{color:var(--muted)}.admin-totals{grid-template-columns:max-content 1fr;gap:6px 24px;margin:0;display:grid}.admin-totals dt{color:var(--muted)}.admin-totals dd{margin:0}.admin-scroll{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.92rem}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:6px 8px}.admin-table th{color:var(--muted);font-weight:500}.admin-table tr.failed td{color:var(--muted)}.admin-blocked{color:#ff8a80}.admin-actions{align-items:center;gap:6px;display:flex}.admin-amount{width:90px}.admin-settings{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px 16px;max-width:900px;display:grid}.admin-settings label{flex-direction:column;gap:4px;display:flex}.admin-settings label span{color:var(--muted);font-size:.9rem}.admin-settings-actions{align-items:center;gap:12px;display:flex}.admin-log{flex-direction:column;gap:4px;margin:0;padding:0;font-size:.92rem;list-style:none;display:flex}.admin-log li{gap:12px;display:flex}.screen.admin-screen{max-width:1200px}.pricing-intro,.pricing-order{color:var(--muted);max-width:720px;line-height:1.5}.pricing-soon,.pricing-paid{border:1px solid var(--accent);border-radius:var(--radius);margin:0 0 16px;padding:10px 14px;display:inline-block}.pricing-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:16px 0;padding:0;list-style:none;display:grid}.pricing-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);flex-direction:column;gap:6px;padding:16px;display:flex}.pricing-card[aria-current=true]{border-color:var(--accent)}.pricing-card h2{margin:0;font-size:1.2rem}.pricing-card p{margin:0}.pricing-price{font-size:1.4rem;font-weight:600}.pricing-note,.pricing-current{color:var(--muted);line-height:1.4}.pricing-action{margin-top:auto;padding-top:8px}.credit-history{flex-direction:column;gap:4px;max-height:320px;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.credit-history li{grid-template-columns:9em 1fr auto;gap:12px;font-size:.95rem;display:grid}.credit-history .time{color:var(--muted)}.credit-history .plus{color:#7fd18b}.login-box{flex-direction:column;gap:14px;max-width:420px;display:flex}.login-intro,.login-or{color:var(--muted);margin:0;line-height:1.5}.btn-google{min-height:44px;font-weight:600}.login-form{flex-direction:column;gap:8px;display:flex}.login-form p{margin:0 0 4px;line-height:1.5}.code-input{letter-spacing:.3em;max-width:200px;font-size:1.4rem}.login-links{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.account-facts{grid-template-columns:max-content 1fr;gap:10px 24px;margin:0 0 24px;display:grid}.account-facts dt{color:var(--muted)}.account-facts dd{margin:0}.account-facts .muted{color:var(--muted)}.account-actions{flex-wrap:wrap;gap:8px;display:flex}.ai-chat{border-bottom:1px solid var(--line);flex-direction:column;gap:8px;display:flex}.ai-log{flex-direction:column;gap:8px;max-height:40vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.ai-turn{border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:.85rem}.ai-turn p{overflow-wrap:anywhere;margin:2px 0}.ai-prompt{font-weight:600}.ai-steps{flex-wrap:wrap;gap:4px;margin:4px 0;padding:0;font-size:.75rem;list-style:none;display:flex}.ai-steps li{border:1px solid var(--line);opacity:.55;border-radius:10px;padding:1px 6px}.ai-steps li[data-state=active]{opacity:1;border-color:var(--accent);color:var(--accent)}.ai-steps li[data-state=done]{opacity:1}.ai-steps li[data-state=failed]{opacity:1;color:#d05050;border-color:#d05050}.ai-error{color:#d05050;margin:2px 0;font-size:.85rem}.ai-login{margin:0;font-size:.85rem}.ai-form{flex-direction:column;gap:6px;display:flex}.ai-label{font-size:.8rem}.ai-form textarea{resize:vertical;min-height:56px;font:inherit;border:1px solid var(--line);color:var(--text);background:0 0;border-radius:6px;padding:6px;font-size:.85rem}.ai-form button{border:1px solid var(--line);min-height:28px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:0 10px;font-size:.85rem}.ai-form button[aria-pressed=true],.ai-form button[type=submit]{border-color:var(--accent)}.ai-form button:disabled{opacity:.5;cursor:default}.ai-place,.ai-send{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ai-send{justify-content:space-between}.ai-estimate{font-size:.85rem}.ai-quality{border:none;gap:10px;margin:0;padding:0;font-size:.85rem;display:flex}.ai-quality legend{float:left;margin-right:6px}.ai-closed{border-bottom:1px solid var(--line)}.ai-closed button{border:1px solid var(--accent);width:100%;min-height:28px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border-radius:6px}.ai-mode,.ai-skin-scope{border:1px solid var(--line);border-radius:6px;flex-wrap:wrap;gap:4px 12px;margin:0;padding:4px 8px;font-size:.85rem;display:flex}.ai-mode legend,.ai-skin-scope legend{padding:0 4px;font-size:.75rem}.ai-mode label,.ai-skin-scope label{white-space:nowrap;align-items:center;gap:4px;display:flex}.ai-photos{flex-direction:column;gap:4px;display:flex}.ai-file-list{flex-direction:column;gap:2px;margin:0;padding:0;font-size:.8rem;list-style:none;display:flex}.ai-file-list li{justify-content:space-between;align-items:center;gap:6px;display:flex}.ai-file-list span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.editor-right>.panel{flex-shrink:0}.app:has(>.editor){height:100vh;min-height:0;overflow:hidden}.editor .editor-body{flex:1;grid-template-columns:260px minmax(0,1fr) 300px;min-height:0;display:grid}.editor .editor-left,.editor .editor-right{background:var(--panel);flex-direction:column;min-width:0;min-height:0;display:flex;overflow-y:auto}.editor .editor-left{border-right:1px solid var(--line)}.editor .editor-right{border-left:1px solid var(--line)}.editor .editor-center{flex-direction:column;min-width:0;min-height:0;display:flex}.editor .viewport{touch-action:none;flex:1;min-height:0;position:relative;overflow:hidden}.editor .viewport canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.editor .marquee{pointer-events:none;border:1px solid var(--accent);background:#4c9aff26;position:absolute}.toolbar{border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap;gap:6px 14px;padding:6px 10px;display:flex}.toolbar-group{gap:4px;display:flex}.toolbar button,.props button{border:1px solid var(--line);min-height:30px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:0 10px;font-size:.85rem}.toolbar button:hover:not(:disabled),.props button:hover:not(:disabled){background:var(--panel-hover)}.toolbar button:disabled,.props button:disabled{color:var(--muted);opacity:.5;cursor:default}.toolbar button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.panel{flex-direction:column;min-height:0;padding:10px 10px 12px;display:flex}.panel-title{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:.8rem}.panel-hint{color:var(--muted);margin:0;font-size:.85rem;line-height:1.4}.panel.tree{flex:1}.tree-scroll{flex:1;min-height:120px;overflow:hidden auto}.tree-row{cursor:default;-webkit-user-select:none;user-select:none;border-radius:5px;align-items:center;gap:4px;padding-right:6px;font-size:.88rem;display:flex;position:absolute;left:0;right:0}.tree-row:hover{background:var(--panel-hover)}.tree-row.selected{background:#4c9aff47}.tree-toggle,.tree-toggle-gap{width:18px;height:18px;color:var(--muted);cursor:pointer;background:0 0;border:0;flex:none;padding:0;font-size:.8rem;line-height:18px}.tree-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tree-rename{border:1px solid var(--accent);background:var(--bg);min-width:0;height:22px;color:var(--text);font:inherit;border-radius:4px;flex:1;padding:0 4px}.tree-lock{font-size:.7rem}.prop-fields{flex-direction:column;gap:8px;display:flex}.prop-set{border:0;flex-direction:column;gap:8px;min-width:0;margin:0;padding:0;display:flex}.prop-row{flex-direction:column;gap:3px;display:flex}.prop-label{color:var(--muted);font-size:.75rem}.prop-kind{color:var(--muted);margin:0;font-size:.75rem}.prop-vec{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;display:grid}.prop-vec.single{grid-template-columns:minmax(0,1fr)}.prop-inline{align-items:center;gap:6px;display:flex}.prop-check{align-items:center;gap:6px;font-size:.85rem;display:flex}.props input.num,.props input.text{border:1px solid var(--line);background:var(--bg);width:100%;min-width:0;height:28px;color:var(--text);font:inherit;border-radius:5px;padding:0 6px;font-size:.85rem}.props input.num.invalid{background:#3a1a18;border-color:#e0453a;outline:1px solid #e0453a}.props input.color{border:1px solid var(--line);background:0 0;border-radius:5px;width:44px;height:28px;padding:0}@media (width<=900px){.editor .editor-body{grid-template-columns:200px minmax(0,1fr) 220px}}.editor .editor-body{grid-template-columns:340px minmax(0,1fr) 300px}.editor .editor-left .panel.catalog{border-bottom:1px solid var(--line);flex:3 1 0;min-height:340px}.editor .editor-left .panel.tree{flex:2 1 0;min-height:170px}.catalog input.cat-search,.catalog select{border:1px solid var(--line);background:var(--bg);width:100%;min-width:0;height:30px;color:var(--text);font:inherit;border-radius:6px;padding:0 8px;font-size:.85rem}.cat-filters{grid-template-columns:1fr 1fr;gap:6px;margin:6px 0;display:grid}.cat-tabs{gap:4px;margin-bottom:6px;display:flex}.cat-tabs button,.cat-crumbs button,.cat-more,.cat-ask{border:1px solid var(--line);min-height:28px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:0 10px;font-size:.82rem}.cat-tabs button{flex:1;padding:0 4px}.cat-tabs button[aria-selected=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.cat-tabs button:hover:not([aria-selected=true]),.cat-crumbs button:hover,.cat-more:hover,.cat-ask:hover{background:var(--panel-hover)}.cat-crumbs{align-items:center;gap:8px;min-width:0;margin-bottom:6px;display:flex}.cat-crumb-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);font-size:.82rem;overflow:hidden}.cat-body{flex:1;min-height:0;overflow:hidden auto}.cat-found{color:var(--muted);margin:0 0 6px;font-size:.78rem}.cat-tree,.cat-children{margin:0;padding:0;list-style:none}.cat-children{padding-left:14px}.cat-node{width:100%;min-height:34px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:2px 6px;font-size:.88rem;display:flex}.cat-node:hover{background:var(--panel-hover)}.cat-node img,.cat-thumb-gap{object-fit:contain;border-radius:4px;flex:none;width:24px;height:24px}.cat-tree>li>.cat-node img{width:28px;height:28px}.cat-node-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.cat-node-blanks{border-bottom:1px solid var(--line);border-radius:6px 6px 0 0;margin-bottom:4px;font-weight:600}.cat-node-all .cat-node-name{color:var(--muted)}.cat-count{color:var(--muted);flex:none;font-size:.75rem}.cat-node[aria-expanded=true]>.cat-node-name{font-weight:600}.cat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.cat-card{border:1px solid var(--line);background:var(--bg);cursor:grab;border-radius:8px;min-width:0;position:relative}.cat-card:hover{border-color:var(--accent)}.cat-card-main{width:100%;color:var(--text);font:inherit;cursor:inherit;background:0 0;border:0;flex-direction:column;align-items:center;gap:2px;padding:4px 4px 6px;display:flex}.cat-card-main img{aspect-ratio:1;object-fit:contain;background:#2a313b;border-radius:4px;width:100%;max-width:96px}.cat-card-name{-webkit-line-clamp:2;text-align:center;overflow-wrap:anywhere;-webkit-box-orient:vertical;width:100%;font-size:.75rem;line-height:1.2;display:-webkit-box;overflow:hidden}.cat-card-meta{color:var(--muted);white-space:nowrap;font-size:.68rem}.cat-star{width:22px;height:22px;color:var(--muted);cursor:pointer;background:#15181db3;border:0;border-radius:50%;padding:0;font-size:.95rem;line-height:22px;position:absolute;top:2px;right:2px}.cat-star[aria-pressed=true]{color:#ffd25a}.cat-more{width:100%;margin-top:8px;display:block}.cat-empty{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.build-toolbar{align-items:center}.build-hint{color:var(--muted);flex:260px;margin:0;font-size:.8rem}.build-measure{font-variant-numeric:tabular-nums;color:var(--accent);font-size:.85rem}.build-options{gap:10px}.build-option{color:var(--muted);align-items:center;gap:6px;font-size:.8rem;display:flex}.build-option input.num{border:1px solid var(--line);background:var(--bg);width:64px;height:28px;color:var(--text);font:inherit;border-radius:5px;padding:0 6px;font-size:.85rem}.build-option input.num.invalid{background:#3a1a18;border-color:#e0453a}.build-option select{border:1px solid var(--line);background:var(--bg);height:28px;color:var(--text);font:inherit;border-radius:5px;font-size:.85rem}.surface-grid{flex-wrap:wrap;gap:4px;display:flex}.props .surface-swatch{border:2px solid #0000;border-radius:6px;width:40px;height:40px;min-height:0;padding:1px}.props .surface-swatch[aria-pressed=true]{border-color:var(--accent)}.surface-swatch img{object-fit:cover;border-radius:4px;width:100%;height:100%;display:block}.opening-list{flex-direction:column;gap:4px;margin:0;padding:0;font-size:.82rem;list-style:none;display:flex}.opening-list li{justify-content:space-between;align-items:center;gap:6px;display:flex}.chat-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.chat-head button{border:1px solid var(--line);min-height:26px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:0 8px;font-size:.8rem}.chat-request{overflow-wrap:anywhere;margin:0 0 6px;font-size:.85rem}@media (width<=900px){.editor .editor-body{grid-template-columns:260px minmax(0,1fr) 220px}}.export-group{align-items:center;margin-left:auto}.toolbar .export-button{font-weight:600}.export-message{color:var(--muted);max-width:340px;font-size:12px}.export-message[data-status=error]{color:#d64545}:root{--bg:#15181d;--panel:#1f242b;--panel-hover:#29303a;--line:#333a45;--text:#e8ecf1;--muted:#9aa5b3;--accent:#4c9aff;--accent-text:#08111f;--radius:10px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);margin:0}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{flex-direction:column;min-height:100vh;display:flex}.header{border-bottom:1px solid var(--line);background:var(--panel);justify-content:space-between;align-items:center;gap:16px;padding:10px 20px;display:flex}.brand{color:var(--text);letter-spacing:.02em;font-weight:700;text-decoration:none}.lang-switch{gap:4px;display:flex}.lang-switch button{border:1px solid var(--line);min-width:40px;min-height:32px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border-radius:6px}.lang-switch button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.screen{width:100%;max-width:880px;margin:0 auto;padding:40px 20px}.home{text-align:center}.home-title{margin:24px 0 8px;font-size:2.4rem}.tagline,.subtitle{color:var(--muted);max-width:620px;margin:0 auto 32px;font-size:1.1rem;line-height:1.5}.main-menu{flex-direction:column;align-items:center;gap:24px;display:flex}.menu-primary{border-radius:var(--radius);background:var(--accent);color:var(--accent-text);padding:18px 48px;font-size:1.3rem;font-weight:700;text-decoration:none;display:inline-block}.menu-secondary{grid-template-rows:auto auto;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:column;gap:6px 16px;width:100%;max-width:600px;display:grid}.menu-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);padding:14px;font-weight:600;text-decoration:none;display:block}.menu-item:hover,.template-card:hover{background:var(--panel-hover)}.hint{color:var(--muted);font-size:.85rem}.templates{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.template-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);height:100%;color:var(--text);flex-direction:column;gap:8px;padding:24px 20px;text-decoration:none;display:flex}.template-card span{color:var(--muted)}.editor{flex-direction:column;flex:1;min-height:0;display:flex}.editor-bar{border-bottom:1px solid var(--line);align-items:center;gap:16px;padding:8px 20px;display:flex}.editor-bar h1{margin:0;font-size:1rem}.editor-bar span{color:var(--muted)}.viewport{flex:1;min-height:300px;position:relative;overflow:hidden}.viewport canvas{display:block;position:absolute;inset:0}.no-webgl{border-radius:var(--radius);background:#2b1d14;border:1px solid #a8572a;padding:24px}.no-webgl h1{margin-top:0;font-size:1.4rem}@media (width<=640px){.menu-secondary{grid-template-rows:none;grid-template-columns:1fr;grid-auto-flow:row}}
