.forma-gui{--forma-gui-page:var(--forma-page,#141519);--forma-gui-surface:var(--forma-surface,#17181d);--forma-gui-muted-surface:var(--forma-surface-muted,#101115);--forma-gui-border:var(--forma-border,#2c2f37);--forma-gui-text:var(--forma-text-strong,#f8fafc);--forma-gui-body:var(--forma-text-body,#cbd5e1);--forma-gui-muted:var(--forma-text-muted,#94a3b8);--forma-gui-accent:rgb(var(--forma-green-rgb,52 211 153));color:var(--forma-gui-body);font-family:Inter,ui-sans-serif,system-ui,sans-serif}.forma-gui,.forma-gui *,.forma-gui :after,.forma-gui :before{box-sizing:border-box}.forma-gui button,.forma-gui input{font:inherit}.forma-gui button{cursor:pointer}.forma-gui button:disabled{cursor:not-allowed;opacity:.5}.forma-gui-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.forma-gui-browser,.forma-gui-detail{width:100%;min-width:0;background:var(--forma-gui-page)}.forma-gui-browser{padding:clamp(1rem,3vw,2rem)}.forma-gui-browser-heading,.forma-gui-detail-header,.forma-gui-section-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem}.forma-gui-browser-heading{margin-bottom:1.25rem}.forma-gui-browser h2,.forma-gui-browser h3,.forma-gui-detail h1,.forma-gui-detail h2,.forma-gui-detail h3{color:var(--forma-gui-text);margin:0}.forma-gui-browser h2{font-size:1.1rem}.forma-gui-browser-heading p,.forma-gui-muted{color:var(--forma-gui-muted);font-size:.8rem;margin:.35rem 0 0}.forma-gui-search{width:min(100%,20rem)}.forma-gui-search input{width:100%;height:2.35rem;border:1px solid var(--forma-gui-border);border-radius:.55rem;background:var(--forma-gui-surface);color:var(--forma-gui-text);padding:0 .75rem;outline:none}.forma-gui-search input:focus{border-color:var(--forma-gui-accent)}.forma-gui-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:.75rem}.forma-gui-card{min-width:0;overflow:hidden;border:1px solid var(--forma-gui-border);border-radius:.8rem;background:var(--forma-gui-surface);transition:border-color .15s ease,transform .15s ease}.forma-gui-card[role=link]{cursor:pointer}.forma-gui-card[role=link]:focus-visible,.forma-gui-card[role=link]:hover{border-color:var(--forma-gui-accent);outline:none;transform:translateY(-1px)}.forma-gui-card-image{display:grid;aspect-ratio:4/3;place-items:center;overflow:hidden;border-bottom:1px solid var(--forma-gui-border);background:var(--forma-gui-muted-surface);color:var(--forma-gui-muted);font:600 .62rem/1.2 ui-monospace,monospace;letter-spacing:.14em}.forma-gui-card-image img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.forma-gui-card-body{display:grid;gap:.75rem;padding:.9rem}.forma-gui-card-title-row{display:flex;align-items:start;justify-content:space-between;gap:.5rem}.forma-gui-card-title-row h3{overflow:hidden;font-size:.9rem;line-height:1.3;text-overflow:ellipsis}.forma-gui-card-meta,.forma-gui-card-title-row span{color:var(--forma-gui-muted);font-size:.7rem;white-space:nowrap}.forma-gui-card-description{display:-webkit-box;min-height:2.6em;overflow:hidden;margin:0;color:var(--forma-gui-muted);font-size:.78rem;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.forma-gui-card-meta{display:flex;justify-content:space-between;gap:.75rem}.forma-gui-card-actions{display:flex;gap:.5rem}.forma-gui-back,.forma-gui-card-actions button,.forma-gui-pagination button,.forma-gui-state button{border:1px solid var(--forma-gui-border);border-radius:.45rem;background:transparent;color:var(--forma-gui-body);padding:.4rem .65rem;font-size:.72rem}.forma-gui-back:hover,.forma-gui-card-actions button:hover,.forma-gui-pagination button:hover,.forma-gui-state button:hover{border-color:var(--forma-gui-accent);color:var(--forma-gui-text)}.forma-gui-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;padding-top:1rem;color:var(--forma-gui-muted);font-size:.75rem}.forma-gui-state{display:grid;gap:.35rem;min-height:9rem;place-content:center;border:1px dashed var(--forma-gui-border);border-radius:.8rem;padding:2rem;text-align:center}.forma-gui-state strong{color:var(--forma-gui-text);font-size:.9rem}.forma-gui-state span{color:var(--forma-gui-muted);font-size:.78rem}.forma-gui-state-error{border-color:color-mix(in srgb,#fb7185 45%,var(--forma-gui-border))}.forma-gui-card-skeleton{min-height:17rem;animation:forma-gui-pulse 1.4s ease-in-out infinite;background:linear-gradient(110deg,var(--forma-gui-surface) 30%,var(--forma-gui-muted-surface) 45%,var(--forma-gui-surface) 60%);background-size:200% 100%}@keyframes forma-gui-pulse{to{background-position-x:-200%}}.forma-gui-detail{min-height:100%}.forma-gui-detail-header{align-items:center;padding:1.1rem clamp(1rem,3vw,2rem);border-bottom:1px solid var(--forma-gui-border);background:var(--forma-gui-surface)}.forma-gui-detail-header h1{margin-top:.25rem;font-size:clamp(1.1rem,2vw,1.5rem)}.forma-gui-kicker{display:block;color:var(--forma-gui-muted);font-size:.65rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.forma-gui-tabs{display:flex;gap:.2rem;overflow-x:auto;padding:.45rem .75rem;border-bottom:1px solid var(--forma-gui-border);background:var(--forma-gui-surface)}.forma-gui-tabs button{flex:0 0 auto;border:0;border-radius:.45rem;background:transparent;color:var(--forma-gui-muted);padding:.5rem .7rem;font-size:.75rem}.forma-gui-tabs button:hover,.forma-gui-tabs button[aria-current=page]{background:color-mix(in srgb,var(--forma-gui-accent) 13%,transparent);color:var(--forma-gui-accent)}.forma-gui-detail-content{max-width:64rem;margin:0 auto;padding:clamp(1rem,3vw,2rem)}.forma-gui-stack{display:grid;gap:1rem}.forma-gui-panel{min-width:0;border:1px solid var(--forma-gui-border);border-radius:.8rem;background:var(--forma-gui-surface);padding:clamp(1rem,2vw,1.35rem)}.forma-gui-panel h2{margin-top:.3rem;font-size:1rem}.forma-gui-lead{max-width:52rem;margin:.8rem 0 0;color:var(--forma-gui-body);font-size:.9rem;line-height:1.7}.forma-gui-hero{width:100%;max-height:28rem;border:1px solid var(--forma-gui-border);border-radius:.8rem;-o-object-fit:cover;object-fit:cover}.forma-gui-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1rem}.forma-gui-tags span{border:1px solid var(--forma-gui-border);border-radius:.35rem;color:var(--forma-gui-muted);padding:.3rem .45rem;font-size:.68rem}.forma-gui-dimensions,.forma-gui-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.65rem}.forma-gui-stat{display:grid;gap:.3rem;border:1px solid var(--forma-gui-border);border-radius:.55rem;background:var(--forma-gui-muted-surface);padding:.75rem}.forma-gui-stat span{color:var(--forma-gui-muted);font-size:.65rem;text-transform:uppercase;letter-spacing:.08em}.forma-gui-stat strong{color:var(--forma-gui-text);font-size:.9rem}.forma-gui-empty,.forma-gui-note{color:var(--forma-gui-muted);font-size:.78rem}.forma-gui-table-wrap{overflow-x:auto;margin-top:1rem}.forma-gui-table{width:100%;min-width:36rem;border-collapse:collapse;font-size:.78rem}.forma-gui-table th{color:var(--forma-gui-muted);font-size:.65rem;font-weight:700;letter-spacing:.08em;text-align:left;text-transform:uppercase}.forma-gui-table td,.forma-gui-table th{border-bottom:1px solid var(--forma-gui-border);padding:.75rem .5rem;vertical-align:top}.forma-gui-table td{color:var(--forma-gui-body)}.forma-gui-table td:first-child{color:var(--forma-gui-text)}.forma-gui-table small{display:block;max-width:25rem;margin-top:.25rem;color:var(--forma-gui-muted);line-height:1.4}.forma-gui-artifacts,.forma-gui-findings,.forma-gui-steps{display:grid;gap:.65rem;margin-top:1rem}.forma-gui-finding,.forma-gui-success,.forma-gui-warning{border:1px solid var(--forma-gui-border);border-radius:.55rem;padding:.75rem}.forma-gui-finding>span{color:var(--forma-gui-accent);font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.forma-gui-finding p{margin:.4rem 0;color:var(--forma-gui-body);font-size:.8rem;line-height:1.5}.forma-gui-finding small{color:var(--forma-gui-muted)}.forma-gui-finding-critical,.forma-gui-finding-error{border-color:#fb718577}.forma-gui-finding-warning{border-color:#fbbf2477}.forma-gui-success{border-color:#34d39977;color:var(--forma-gui-accent);font-size:.8rem}.forma-gui-schematic{display:block;width:100%;max-height:42rem;margin-top:1rem;border:1px solid var(--forma-gui-border);border-radius:.55rem;background:#fff;-o-object-fit:contain;object-fit:contain}.forma-gui-code{max-height:36rem;overflow:auto;margin:1rem 0 0;border-radius:.55rem;background:var(--forma-gui-muted-surface);color:var(--forma-gui-body);padding:1rem;font:.72rem/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap}.forma-gui-steps article{display:grid;grid-template-columns:2.25rem 1fr;gap:.75rem;border-bottom:1px solid var(--forma-gui-border);padding:.75rem 0}.forma-gui-steps article>strong{display:grid;place-items:center;width:2rem;height:2rem;border:1px solid var(--forma-gui-border);border-radius:.45rem;color:var(--forma-gui-text);font-size:.8rem}.forma-gui-steps h3{font-size:.85rem}.forma-gui-steps p{margin:.4rem 0 0;color:var(--forma-gui-body);font-size:.8rem;line-height:1.55}.forma-gui-warning{margin-top:.65rem;border-color:#fb718577;color:#fda4af;font-size:.75rem;line-height:1.5}.forma-gui-artifacts a{display:flex;justify-content:space-between;gap:1rem;border:1px solid var(--forma-gui-border);border-radius:.55rem;color:var(--forma-gui-text);padding:.75rem;text-decoration:none}.forma-gui-artifacts a:hover{border-color:var(--forma-gui-accent)}.forma-gui-artifacts small{color:var(--forma-gui-muted)}@media (max-width:600px){.forma-gui-browser-heading,.forma-gui-detail-header{align-items:stretch;flex-direction:column}.forma-gui-search{width:100%}.forma-gui-card-grid{grid-template-columns:1fr}.forma-gui-artifacts a{align-items:start;flex-direction:column;gap:.35rem}}:root{color-scheme:light;font-family:IBM Plex Sans,Segoe UI,sans-serif;background:linear-gradient(135deg,#f4f8fb,#eef2f7 55%,#e4e8ef);color:#101624}*{box-sizing:border-box}body{margin:0;background:transparent}#root,body{min-height:100vh}.app-shell{display:grid;grid-template-columns:280px minmax(420px,1fr) 360px;gap:14px;height:100vh;padding:12px}.chat-panel,.feature-tree-panel,.workspace{background:rgba(255,255,255,.92);border:1px solid #d7dde6;border-radius:14px;box-shadow:0 10px 25px rgba(20,32,54,.08)}.panel-header{font-size:.88rem;font-weight:700;letter-spacing:.04em;color:#23324d;padding:12px;border-bottom:1px solid #e3e9f1}.panel-body{padding:6px;overflow-y:auto;height:calc(100% - 48px)}.tree-row{display:flex;align-items:center;gap:7px;padding:7px 8px;border-radius:8px}.tree-row.selected{background:#e2edff}.tree-node-label,.tree-toggle{border:0;background:transparent;padding:0;color:inherit}.tree-tool-group{color:#64748b;padding-top:4px;padding-bottom:4px}.tree-tool-folder{font-size:.76rem;font-weight:650;letter-spacing:.02em}.tree-section+.tree-section{margin-top:4px;padding-top:4px;border-top:1px solid #e8edf4}.tree-section-row{color:#475569;padding-top:6px;padding-bottom:6px}.tree-section-label{font-size:.76rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.tree-section-count{min-width:18px;margin-left:auto;padding:1px 5px;border-radius:999px;background:#edf1f7;font-size:.65rem;text-align:center}.tree-toggle{width:14px;cursor:pointer;font-weight:700}.tree-spacer{width:14px}.status-dot{width:9px;height:9px;border-radius:999px}.status-built{background:#1d9f64}.status-stale{background:#e0ab21}.status-failed{background:#cf3030}.status-pending{background:#7c8a9f}.op-icon{font-size:.67rem;min-width:22px;text-align:center;font-weight:700;color:#314057;background:#edf1f7;border-radius:4px;padding:1px 4px}.tree-node-label{cursor:pointer;font-size:.88rem}.workspace{position:relative;overflow:hidden}.viewport3d{width:100%;height:100%}.cad-file-toolbar{position:absolute;z-index:20;top:16px;left:16px;display:flex;align-items:center;gap:7px;max-width:calc(100% - 32px);padding:8px;border:1px solid #d7dde7;border-radius:10px;background:rgba(255,255,255,.96);box-shadow:0 6px 18px rgba(15,24,38,.12)}.cad-file-input,.cad-import-button{display:none}.cad-file-toolbar button,.cad-file-toolbar select{min-height:30px;border:1px solid #cbd5e1;border-radius:7px;background:white;color:#1e293b}.cad-file-toolbar button{padding:5px 9px;cursor:pointer;font-weight:650}.cad-file-toolbar button:disabled{cursor:default;opacity:.5}.cad-file-toolbar select{padding:4px 6px}.cad-file-message{max-width:150px;overflow:hidden;color:#475569;font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.sketch-overlay{position:absolute;right:16px;top:16px;width:430px;max-width:calc(100% - 32px);max-height:calc(100% - 32px);overflow-y:auto;background:rgba(255,255,255,.96);border:1px solid #d7dde7;border-radius:12px;padding:10px;box-shadow:0 8px 24px rgba(15,24,38,.12)}.sketch-header{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.8rem;margin-bottom:8px}.sketch-header>div{display:grid;gap:2px}.sketch-name{color:#64748b;font-size:.72rem}.sketch-solver-status{max-width:255px;color:#475569;text-align:right}.sketch-canvas{width:100%;border:1px solid #e2e7ef;border-radius:10px;background:#fbfcff}.sketch-geometry{fill:none;stroke:#0f172a;stroke-width:1.5;vector-effect:non-scaling-stroke}.sketch-point{fill:#0f172a}.sketch-empty{fill:#94a3b8;font-size:12px}.constraint-icon{fill:#0b63da;font-size:10px;font-weight:700}.constraint-grid{margin-top:8px;display:grid;gap:6px;max-height:130px;overflow-y:auto}.sketch-section-title{margin-top:9px;color:#475569;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.entity-grid{display:grid;gap:5px;margin-top:5px;max-height:155px;overflow-y:auto}.entity-row{display:grid;grid-template-columns:52px 1fr;align-items:center;gap:7px;font-size:.7rem}.entity-row>span{overflow:hidden;color:#475569;text-overflow:ellipsis}.entity-fields{display:flex;flex-wrap:wrap;gap:4px}.entity-fields label{display:flex;align-items:center;gap:2px}.entity-fields label span{color:#64748b;font-size:.62rem}.entity-fields input{width:58px}.sketch-empty-row{color:#94a3b8;font-size:.72rem}.constraint-row{display:grid;grid-template-columns:70px 1fr 80px;align-items:center;gap:8px;font-size:.75rem}.constraint-row input{width:100%}.sketch-actions{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:10px}.sketch-actions button{border:0;border-radius:7px;padding:7px 10px;background:#0b63da;color:white;cursor:pointer;font-weight:650}.sketch-actions button:disabled{background:#cbd5e1;cursor:default}.sketch-save-error{color:#b42318;font-size:.7rem}.chat-panel{display:grid;grid-template-rows:auto 1fr auto auto;min-height:0}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:12px;border-bottom:1px solid #e3e9f1}.chat-header h3{margin:0}.chat-messages{padding:12px;overflow-y:auto;display:grid;gap:9px}.chat-message{border-radius:10px;padding:8px 10px;font-size:.86rem}.chat-message.user{background:#e8f0ff}.chat-message.assistant{background:#f2f4f8}.chat-message p{margin:4px 0 0;line-height:1.35}.chat-ops{border-top:1px solid #e3e9f1;border-bottom:1px solid #e3e9f1;padding:8px 12px;max-height:180px;overflow-y:auto;display:grid;gap:6px}.chat-op-row{font-size:.74rem;display:grid;grid-template-columns:42px 90px 1fr;gap:6px;align-items:center}.op-status{border-radius:4px;padding:2px 4px;text-transform:uppercase;font-weight:700}.op-status.ok{background:#d9f4e8;color:#126845}.op-status.error{background:#f7d7d7;color:#8a2323}.op-tool{font-weight:600}.chat-input-row{padding:12px;display:grid;grid-template-columns:1fr auto;gap:8px}.chat-input-row input{width:100%;border-radius:8px;border:1px solid #cfd8e3;padding:8px 10px}.chat-input-row button{border:0;border-radius:8px;padding:8px 12px;background:#1f6feb;color:#fff;font-weight:700}@media (max-width:1200px){.app-shell{grid-template-columns:240px 1fr;grid-template-rows:minmax(420px,1fr) minmax(260px,auto)}.chat-panel{grid-column:1/-1;min-height:260px}}@media (max-width:820px){.app-shell{grid-template-columns:1fr;grid-template-rows:minmax(220px,auto) minmax(360px,1fr) minmax(260px,auto);height:auto;min-height:100vh}.workspace{min-height:380px}.feature-tree-panel{max-height:260px}.sketch-overlay{position:static;width:auto;max-width:none;margin:10px}}