@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&display=swap";:root{--bg:#c5d0dc;--panel:#f0f2f5;--line:#9aa7b5;--text:#1f2937;--muted:#64748b;--brand:#2563eb;--framekit:#0b3d91;--dock-blue:#3a7fc0;color:var(--text);font-family:Segoe UI,Tahoma,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{background:#aeb9c6;height:100%;margin:0}.app{flex-direction:column;height:100%;display:flex}.chrome{z-index:50;background:linear-gradient(#f4f6f8,#dce2ea);border-bottom:1px solid #7d8b9c;flex-shrink:0;position:relative}.iconbar{background:linear-gradient(#fafbfc,#e8edf3);border-bottom:1px solid #b7c0cb;align-items:flex-end;gap:4px;padding:4px 6px 6px;display:flex;overflow:hidden}.iconbar-tools{flex:1;align-items:flex-end;gap:2px;min-width:0;padding-bottom:0;display:flex;overflow-x:auto}.icon-tool{cursor:pointer;color:#334155;background:0 0;border:1px solid #0000;border-radius:3px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:2px;width:52px;min-width:52px;height:54px;padding:2px;display:flex}.icon-tool:hover,.icon-tool.on{background:linear-gradient(#fff,#d6e6f8);border-color:#7aa2d6}.icon-tool em{text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:56px;font-size:10px;font-style:normal;line-height:1.1;overflow:hidden}.glyph{background-position:50%;background-repeat:no-repeat;background-size:contain;flex-shrink:0;width:28px;height:28px;display:block}.ico-cursor{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23fff' stroke='%232563eb' stroke-width='1.5' d='M8 4l4 20 4-6 8 2z'/%3E%3C/svg%3E")}.ico-extrude{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect x='10' y='4' width='12' height='12' fill='%23c8d0d8' stroke='%232563eb'/%3E%3Cpath d='M10 16h12l4 10H6z' fill='%2394a3b8' stroke='%232563eb'/%3E%3Cpath d='M14 8h4v4h-4z' fill='%232563eb'/%3E%3C/svg%3E")}.ico-mitre{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M6 26L18 6h8L14 26z' fill='%23c8d0d8' stroke='%232563eb'/%3E%3Cpath d='M18 6l4 8' stroke='%23ef4444' stroke-width='2'/%3E%3C/svg%3E")}.ico-box{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M8 12l8-4 8 4v12l-8 4-8-4z' fill='%23e2e8f0' stroke='%232563eb'/%3E%3Cpath d='M8 12l8 4 8-4M16 16v12' stroke='%232563eb' fill='none'/%3E%3C/svg%3E")}.ico-door{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect x='8' y='4' width='16' height='24' fill='%23e2e8f0' stroke='%232563eb'/%3E%3Ccircle cx='20' cy='16' r='1.5' fill='%232563eb'/%3E%3Cpath d='M8 4h3v24H8z' fill='%2394a3b8'/%3E%3C/svg%3E")}.ico-conn{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect x='4' y='14' width='14' height='6' fill='%23c8d0d8' stroke='%232563eb'/%3E%3Crect x='14' y='4' width='6' height='14' fill='%23c8d0d8' stroke='%232563eb'/%3E%3Crect x='12' y='12' width='8' height='8' fill='%2322c55e' stroke='%23166534'/%3E%3C/svg%3E")}.ico-slot{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect x='6' y='6' width='6' height='20' fill='%23c8d0d8' stroke='%232563eb'/%3E%3Crect x='20' y='6' width='6' height='20' fill='%23c8d0d8' stroke='%232563eb'/%3E%3Crect x='12' y='8' width='8' height='16' fill='%2394a3b8' stroke='%232563eb'/%3E%3C/svg%3E")}.ico-contour{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M6 24V8h8l4 4v12z' fill='%23e2e8f0' stroke='%232563eb'/%3E%3Cpath d='M14 8v4h4' fill='none' stroke='%232563eb'/%3E%3C/svg%3E")}.ico-rect{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect x='6' y='8' width='20' height='16' fill='%23e2e8f0' stroke='%232563eb'/%3E%3C/svg%3E")}.ico-cap{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect x='10' y='10' width='12' height='12' fill='%23c8d0d8' stroke='%232563eb'/%3E%3Crect x='8' y='8' width='16' height='4' fill='%23e2e8f0' stroke='%232563eb'/%3E%3C/svg%3E")}.ico-corner{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M8 24V10h6v8h8v6z' fill='%2322c55e' stroke='%23166534'/%3E%3C/svg%3E")}.ico-cover{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect x='6' y='14' width='20' height='4' rx='1' fill='%2394a3b8' stroke='%232563eb'/%3E%3C/svg%3E")}.ico-acc{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='8' fill='%23e2e8f0' stroke='%232563eb'/%3E%3Ccircle cx='16' cy='16' r='3' fill='%232563eb'/%3E%3C/svg%3E")}.ico-floor{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect x='13' y='6' width='6' height='14' fill='%23c8d0d8' stroke='%232563eb'/%3E%3Cpath d='M10 20h12l2 6H8z' fill='%2364748b' stroke='%232563eb'/%3E%3C/svg%3E")}.ico-fast{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect x='14' y='4' width='4' height='18' fill='%2364748b' stroke='%231e293b'/%3E%3Cpath d='M10 22h12v4H10z' fill='%2394a3b8' stroke='%231e293b'/%3E%3C/svg%3E")}.ico-cut{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M6 24h16L10 6' fill='%23c8d0d8' stroke='%232563eb'/%3E%3Cpath d='M8 8l16 16' stroke='%23ef4444' stroke-width='2'/%3E%3C/svg%3E")}.ico-measure{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect x='4' y='12' width='24' height='8' fill='%23fef3c7' stroke='%232563eb'/%3E%3Cpath d='M8 12v4M12 12v3M16 12v4M20 12v3M24 12v4' stroke='%232563eb'/%3E%3C/svg%3E")}.ico-ai{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none'%3E%3Cpath d='M16 4l1.8 7.2L25 13l-7.2 1.8L16 22l-1.8-7.2L7 13l7.2-1.8L16 4z' fill='%236366f1'/%3E%3Cpath d='M24 18l.9 3.6L28.5 22.5 24.9 23.4 24 27l-.9-3.6L19.5 22.5l3.6-.9L24 18z' fill='%238b5cf6'/%3E%3Cpath d='M8.5 20l.7 2.8L12 23.5l-2.8.7L8.5 27l-.7-2.8L5 23.5l2.8-.7L8.5 20z' fill='%23a78bfa'/%3E%3C/svg%3E")}.ico-ai.sm{vertical-align:-2px;width:14px;height:14px;margin-right:4px;display:inline-block}.brand-badge{color:var(--framekit);letter-spacing:-.02em;white-space:nowrap;pointer-events:none;flex-shrink:0;order:-1;align-self:center;padding:.35rem .65rem .35rem .35rem;font-size:1.15rem;font-weight:700}.brand-badge span{color:#1d4ed8}.lang-switch{color:#1e3a5f;cursor:pointer;background:linear-gradient(#fff,#e6ebf1);border:1px solid #9aa7b5;border-radius:999px;flex-shrink:0;align-self:center;height:28px;margin-right:8px;padding:0 10px;font:600 12px/1 system-ui,sans-serif}.lang-switch:hover,.lang-switch.on{color:#1d4ed8;border-color:#1d4ed8}.auth-entry{color:#1e3a5f;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:linear-gradient(#fff,#e6ebf1);border:1px solid #9aa7b5;border-radius:999px;flex-shrink:0;align-self:center;align-items:center;gap:8px;max-width:180px;padding:4px 12px 4px 4px;font-size:12px;font-weight:600;display:inline-flex;overflow:hidden}.auth-entry:hover{background:linear-gradient(#fff,#d6e6f8);border-color:#7aa2d6}.auth-entry-avatar{object-fit:cover;background:#cbd5e1;border-radius:50%;flex-shrink:0;width:22px;height:22px}.auth-entry-avatar.fallback{color:#fff;background:#334155;place-items:center;font-size:11px;display:grid}.auth-modal-backdrop{z-index:2000;background:#0f172a80;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.auth-modal{background:#fff;border:1px solid #e5e7eb;border-radius:16px;width:min(420px,100%);position:relative;overflow:hidden;box-shadow:0 24px 64px #0f172a47}.auth-modal-close,.auth-modal .modal-close{z-index:1;cursor:pointer;color:#0f172a;background:0 0;border:none;border-radius:999px;place-items:center;width:36px;height:36px;padding:0;font-size:24px;line-height:1;display:grid;position:absolute;top:12px;left:12px}.auth-modal-close:hover,.auth-modal .modal-close:hover{background:#f1f5f9}.auth-modal-body{text-align:center;flex-direction:column;align-items:stretch;gap:12px;padding:28px 28px 22px;display:flex}.auth-modal-body.auth-signed{padding-top:36px}.auth-brand{letter-spacing:-.03em;color:#0f172a;margin-top:8px;font-family:Segoe UI,system-ui,sans-serif;font-size:18px;font-weight:800}.auth-title{letter-spacing:-.03em;color:#0f172a;margin:4px 0 0;font-size:26px;font-weight:800;line-height:1.2}.auth-sub{color:#64748b;margin:0;font-size:14px}.auth-avatar{object-fit:cover;border-radius:50%;width:72px;height:72px;margin:8px auto 0;display:block}.auth-avatar-fallback{color:#fff;background:#0f172a;place-items:center;font-size:28px;font-weight:700;display:grid}.auth-btn{color:#0f172a;cursor:pointer;background:#fff;border:1px solid #cfd9de;border-radius:999px;justify-content:center;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 18px;font-size:15px;font-weight:700;display:inline-flex}.auth-btn:disabled{opacity:.45;cursor:not-allowed}.auth-btn-google:hover:not(:disabled){background:#f8fafc}.auth-btn-primary{color:#fff;background:#0f172a;border-color:#0000}.auth-btn-primary:hover:not(:disabled){background:#1e293b}.auth-btn-muted{background:#f8fafc;border-color:#e2e8f0;font-weight:600}.auth-google-mark{flex-shrink:0;width:18px;height:18px}.auth-google-host{clip:rect(0 0 0 0);opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.auth-or{color:#64748b;align-items:center;gap:12px;margin:2px 0;font-size:13px;display:flex}.auth-or:before,.auth-or:after{content:"";background:#e2e8f0;flex:1;height:1px}.auth-field{text-align:left;display:block}.auth-field input{box-sizing:border-box;color:#0f172a;background:#fff;border:1px solid #cfd9de;border-radius:12px;width:100%;padding:14px;font-size:15px}.auth-field input:focus{outline-offset:1px;border-color:#0f172a;outline:2px solid #0f172a}.auth-switch{color:#64748b;margin:2px 0 0;font-size:13px}.auth-link{color:#1d9bf0;font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:700}.auth-footnote,.auth-legal{color:#94a3b8;margin:0;font-size:12px;line-height:1.4}.auth-err{color:#b91c1c;margin:0;font-size:13px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.actionbar{background:#e4eaf1;border-bottom:1px solid #9aa7b5;flex-wrap:wrap;align-items:center;gap:3px;min-height:30px;padding:3px 6px;display:flex}.abtn{cursor:pointer;background:linear-gradient(#fff,#e6ebf1);border:1px solid #9aa7b5;border-radius:2px;justify-content:center;align-items:center;height:22px;padding:2px 7px;font-size:11px;display:inline-flex;position:relative}.abtn.ico{width:24px;padding:0}.abtn:hover,.abtn.on{background:#dbeafe;border-color:#3b82f6}.actionbar [data-tip]:hover:after,.unit-btn[data-tip]:hover:after{content:attr(data-tip);z-index:90;color:#f8fafc;white-space:normal;text-align:center;pointer-events:none;background:#0f172a;border-radius:4px;width:max-content;max-width:240px;padding:6px 8px;font-size:11px;font-weight:500;line-height:1.35;position:absolute;top:calc(100% + 7px);left:50%;transform:translate(-50%);box-shadow:0 6px 16px #0f172a38}.actionbar [data-tip]:hover:before,.unit-btn[data-tip]:hover:before{content:"";z-index:91;pointer-events:none;border:5px solid #0000;border-bottom-color:#0f172a;position:absolute;top:calc(100% + 2px);left:50%;transform:translate(-50%)}.samples-wrap{display:inline-flex;position:relative}.samples-menu{z-index:60;background:#fff;border:1px solid #94a3b8;flex-direction:column;min-width:140px;padding:4px;display:flex;position:absolute;top:100%;left:0;box-shadow:0 6px 18px #0f172a2e}.samples-menu button{text-align:left;cursor:pointer;color:#0f172a;background:0 0;border:0;padding:6px 8px;font-size:12px}.samples-menu button:hover{background:#e2e8f0}.abtn.file-btn{display:inline-flex}.a-ico{background-position:50%;background-repeat:no-repeat;background-size:contain;width:14px;height:14px;display:block}.a-new{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23334155' d='M3 1h7l3 3v11H3z'/%3E%3Cpath fill='%23fff' d='M10 1v3h3'/%3E%3C/svg%3E")}.a-open{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23eab308' d='M1 3h5l1 2h8v9H1z'/%3E%3C/svg%3E")}.a-save{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%232563eb' d='M2 1h10l2 2v12H2z'/%3E%3Cpath fill='%23fff' d='M4 1h6v5H4zm1 8h6v5H5z'/%3E%3C/svg%3E")}.a-print{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%2364748b' d='M3 1h10v4H3zm0 6h10v3H3zm-1 0h12v5H2z'/%3E%3Cpath fill='%23fff' d='M4 10h8v5H4z'/%3E%3C/svg%3E")}.a-cut{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='4' cy='12' r='2.5' fill='none' stroke='%23334155'/%3E%3Ccircle cx='12' cy='12' r='2.5' fill='none' stroke='%23334155'/%3E%3Cpath d='M6 10l6-8M10 10L4 2' stroke='%23334155'/%3E%3C/svg%3E")}.a-copy{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='5' y='3' width='8' height='10' fill='none' stroke='%23334155'/%3E%3Crect x='3' y='5' width='8' height='10' fill='%23fff' stroke='%23334155'/%3E%3C/svg%3E")}.a-paste{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23334155' d='M5 2h6v2H5z'/%3E%3Crect x='3' y='3' width='10' height='11' fill='none' stroke='%23334155'/%3E%3C/svg%3E")}.a-undo{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23334155' stroke-width='1.5' d='M4 7h7a3 3 0 010 6H8M4 7l2-2M4 7l2 2'/%3E%3C/svg%3E")}.a-redo{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23334155' stroke-width='1.5' d='M12 7H5a3 3 0 000 6h3M12 7l-2-2M12 7l-2 2'/%3E%3C/svg%3E")}.a-del{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23dc2626' d='M6 2h4l1 2h3v1H2V4h3zm1 4h1v7H7zm3 0h1v7h-1zM4 5h8l-.7 9H4.7z'/%3E%3C/svg%3E")}.a-fit{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23334155' d='M2 5V2h3M11 2h3v3M14 11v3h-3M5 14H2v-3'/%3E%3C/svg%3E")}.a-snap{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%2316a34a' d='M8 2c2 0 4 1.5 4 4 0 1-.3 2-1 3l1 1-1 1-1-1c-1 .7-2 1-3 1-2.5 0-4-2-4-4s1.5-5 5-5z'/%3E%3C/svg%3E")}.a-settings{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23334155' stroke-width='1.3' d='M8 5.5A2.5 2.5 0 118 10.5 2.5 2.5 0 018 5.5zM8 1.5v2M8 12.5v2M1.5 8h2M12.5 8h2M3.4 3.4l1.4 1.4M11.2 11.2l1.4 1.4M12.6 3.4l-1.4 1.4M4.8 11.2l-1.4 1.4'/%3E%3C/svg%3E")}.a-group{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='1.5' y='1.5' width='6' height='6' fill='none' stroke='%23334155'/%3E%3Crect x='8.5' y='8.5' width='6' height='6' fill='none' stroke='%23334155'/%3E%3C/svg%3E")}.a-ungroup{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='1.5' y='1.5' width='5' height='5' fill='none' stroke='%23334155' stroke-dasharray='2 1.5'/%3E%3Crect x='9.5' y='9.5' width='5' height='5' fill='none' stroke='%23334155' stroke-dasharray='2 1.5'/%3E%3C/svg%3E")}.a-center{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23334155' d='M8 2v3M8 11v3M2 8h3M11 8h3'/%3E%3Ccircle cx='8' cy='8' r='2' fill='%232563eb'/%3E%3C/svg%3E")}.a-view{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23334155' stroke-width='1.3' d='M1.5 8s2.5-4.5 6.5-4.5S14.5 8 14.5 8 12 12.5 8 12.5 1.5 8 1.5 8z'/%3E%3Ccircle cx='8' cy='8' r='2' fill='none' stroke='%23334155'/%3E%3C/svg%3E")}.a-fly{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23334155' d='M2 9l12-5-3 9-3-3-3 2v-3z'/%3E%3C/svg%3E")}.a-merge{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23334155' stroke-width='1.4' d='M3 3v4a3 3 0 003 3h4M3 13v-3a3 3 0 013-3h4'/%3E%3Cpath fill='none' stroke='%232563eb' stroke-width='1.4' d='M10 7l3 3-3 3'/%3E%3C/svg%3E")}.a-samples{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='2' y='2' width='5' height='5' fill='none' stroke='%23334155'/%3E%3Crect x='9' y='2' width='5' height='5' fill='none' stroke='%23334155'/%3E%3Crect x='2' y='9' width='5' height='5' fill='none' stroke='%23334155'/%3E%3Crect x='9' y='9' width='5' height='5' fill='%232563eb'/%3E%3C/svg%3E")}.a-scene{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23334155' stroke-width='1.3' d='M2 11l6-8 6 8H2z'/%3E%3Cpath fill='%232563eb' d='M5.5 11h5L8 7.5z'/%3E%3C/svg%3E")}.a-price{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23334155' stroke-width='1.3' d='M3 3.5h7l3 3V13H3z'/%3E%3Ccircle cx='10' cy='9' r='1.2' fill='%2316a34a'/%3E%3C/svg%3E")}.a-bom{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23334155' d='M3 2h10v12H3z'/%3E%3Cpath stroke='%232563eb' stroke-width='1.3' d='M5 5h6M5 8h6M5 11h4'/%3E%3C/svg%3E")}.a-dxf{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23334155' d='M3 2h7l3 3v9H3z'/%3E%3Cpath fill='none' stroke='%232563eb' d='M5 11V6h3M5 8.5h2.5'/%3E%3C/svg%3E")}.a-glb{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23334155' d='M8 2l6 3.5v5L8 14 2 10.5v-5z'/%3E%3Cpath fill='none' stroke='%232563eb' d='M8 2v12M2 5.5l6 3.5 6-3.5'/%3E%3C/svg%3E")}.a-step{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23334155' d='M2 12h4V8h4V4h4'/%3E%3Cpath fill='%232563eb' d='M2 12h4v2H2zm4-4h4v2H6zm4-4h4v2h-4z'/%3E%3C/svg%3E")}.a-pdf{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23334155' d='M3 2h7l3 3v9H3z'/%3E%3Cpath fill='%23dc2626' d='M4.5 11V6H7a2 2 0 010 4H6v1zm1.5-2.5H7a.7.7 0 000-1.4H6z'/%3E%3C/svg%3E")}.a-profile{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23334155' stroke-width='1.3' d='M3 3h10v10H3z'/%3E%3Cpath fill='none' stroke='%232563eb' d='M6 3v10M10 3v10M3 6h10M3 10h10'/%3E%3C/svg%3E")}.a-bench{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23334155' stroke-width='1.3' d='M2 7h12M3 7v6M13 7v6M5 7V4h6v3'/%3E%3Cpath stroke='%232563eb' d='M2 7h12'/%3E%3C/svg%3E")}.ico-hand{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23fff' stroke='%232563eb' stroke-width='1.5' d='M11 14V7a2 2 0 014 0v6m0-3a2 2 0 014 0v4m0-2a2 2 0 014 0v8c0 5-3 8-8 8s-7-3-9-8l-2-5a2 2 0 013.5-2L11 16'/%3E%3C/svg%3E")}.unit-btn{color:#1d4ed8;cursor:pointer;background:linear-gradient(#fff,#e6ebf1);border:1px solid #9aa7b5;border-radius:2px;justify-content:center;align-items:center;min-width:40px;height:22px;padding:0 8px;font-size:11px;display:inline-flex;position:relative}.unit-btn:hover{background:#dbeafe;border-color:#3b82f6}.sep{background:#9aa7b5;width:1px;height:16px;margin:0 3px}.unit{color:var(--muted);background:#fff;border:1px solid #9aa7b5;border-radius:2px;align-items:center;height:22px;padding:0 6px;font-size:11px;display:inline-flex}.workspace.framekit{flex:1;grid-template-columns:1fr 292px;min-height:0;display:grid}.workspace.framekit.no-dock{grid-template-columns:1fr}.props-pop{z-index:12;filter:drop-shadow(0 8px 20px #0f172a2e);flex-direction:column;gap:4px;width:min(292px,100% - 20px);max-height:calc(100% - 20px);display:flex;position:absolute;top:10px;right:10px;overflow:auto}.side.right.framekit-dock{background:#e8edf3;border-left:1px solid #7d8b9c;border-right:0;flex-direction:column;gap:4px;padding:4px;display:flex;overflow:auto}.center{background:#b8d0e4;min-width:0;position:relative}.viewport{position:absolute;inset:0}.steering-wheel{z-index:5;background:#ffffffeb;border:1px solid #94a3b8;border-radius:8px;grid-template-columns:1fr 1fr 1fr;gap:4px;padding:6px;display:grid;position:absolute;bottom:12px;right:12px;box-shadow:0 4px 12px #0f172a26}.screensaver{z-index:1000;cursor:pointer;text-align:center;background:#0f172ac7;outline:none;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex;position:fixed;inset:0}.screensaver-title{letter-spacing:-.02em;color:#f8fafcf5;-webkit-user-select:none;user-select:none;font-size:42px;font-weight:700}.screensaver-sub{color:#bfdbfef2;-webkit-user-select:none;user-select:none;font-size:15px;font-weight:500}.screensaver-tagline{color:#e2e8f0d9;-webkit-user-select:none;user-select:none;margin-top:6px;font-size:14px}.steering-wheel button{cursor:pointer;color:#0f172a;background:#f8fafc;border:1px solid #cbd5e1;border-radius:4px;padding:4px 8px;font-size:11px}.steering-wheel button:last-child{grid-column:1/-1}.steering-wheel button:hover{background:#e2e8f0}.view-chip{z-index:2;cursor:pointer;color:#1f2937;background:#ffffffe6;border:1px solid #94a3b8;border-radius:2px;padding:2px 10px;font-size:12px;position:absolute;top:8px;left:8px}.view-chip:hover{background:#dbeafe;border-color:#3b82f6}.help-bubbles{z-index:2;pointer-events:none;flex-direction:column;gap:6px;max-width:380px;display:flex;position:absolute;bottom:10px;left:10px}.help-bubble{color:#f1f5f9;background:#3c4650c7;border-radius:14px;padding:6px 12px;font-size:12px}.help-bubble.status{background:#1e3a5ae0}.dock-panel{background:#f8fafc;border:1px solid #7d8b9c;border-radius:0;flex-shrink:0;overflow:hidden}.dock-panel.grow{flex-direction:column;flex:1;min-height:160px;display:flex}.dock-title{color:#fff;letter-spacing:.02em;background:linear-gradient(#5b9bd5,#3a7fc0);justify-content:space-between;align-items:center;padding:3px 6px;font-size:12px;font-weight:600;display:flex}.dock-x{color:#fff;cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:14px;line-height:1}.price-body{gap:4px;padding:8px 10px;display:grid}.price-vendor{color:var(--muted);font-size:12px}.price-row{justify-content:space-between;align-items:baseline;margin-bottom:4px;display:flex}.price-big{color:#0f172a;font-size:22px;font-weight:700}.weight-big{color:#334155;font-size:18px;font-weight:600}.link-btn{color:#1d4ed8;text-align:left;cursor:pointer;background:0 0;border:0;padding:2px 0;font-size:12px;text-decoration:underline}.btn.review{letter-spacing:.02em;width:100%;margin:6px 0 0;padding:7px;font-weight:650}.quote-sheet{border-top:1px solid #c5ced8;margin-top:6px;padding-top:6px}.prop-pad{flex:1;padding:8px 10px;overflow:auto}.sel-title{margin-bottom:8px;font-size:13px;font-weight:650}.field{grid-template-columns:88px 1fr;align-items:center;gap:6px;margin-bottom:6px;font-size:12px;display:grid}.field span{color:#475569}.field input,.field select{font:inherit;background:#fff;border:1px solid #9aa7b5;border-radius:2px;width:100%;padding:3px 5px}.field .inline{gap:4px;display:flex}.field .inline input{flex:1}.check{align-items:center;gap:6px;margin:8px 0 4px;font-size:12px;display:flex}.hint{color:var(--muted);font-size:12px}.mat-tree{padding:6px 8px 8px;font-size:12px}.mat-node{margin-bottom:6px}.mat-row{justify-content:space-between;gap:8px;display:flex}.mat-row.total{border-top:1px solid #c5ced8;margin-top:4px;padding-top:6px}.mat-child{color:#64748b;justify-content:space-between;gap:8px;padding:2px 0 2px 12px;font-size:11px;display:flex}.mat-actions{justify-content:flex-end;margin-top:8px;display:flex}.btn{cursor:pointer;background:linear-gradient(#fff,#e8edf3);border:1px solid #9aa7b5;border-radius:2px;padding:4px 10px;font-size:12px}.btn.primary{color:#fff;background:linear-gradient(#3b82f6,#1d4ed8);border-color:#1e40af}.btn.block{width:100%}.tabs{grid-template-columns:repeat(3,1fr);gap:2px;margin-bottom:6px;display:grid}.tabs button{cursor:pointer;background:#eef2f6;border:1px solid #9aa7b5;border-radius:2px;padding:3px;font-size:11px}.tabs button.active{color:#1d4ed8;background:#dbeafe;border-color:#2563eb}.modal-backdrop{z-index:2000;background:#0f172a59;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#f8fafc;border:1px solid #7d8b9c;flex-direction:column;width:min(420px,92vw);max-height:80vh;display:flex;box-shadow:0 12px 40px #00000040}.modal-head{color:#fff;background:linear-gradient(#5b9bd5,#3a7fc0);justify-content:space-between;align-items:center;padding:6px 10px;font-size:13px;display:flex}.modal-body{padding:10px;overflow:auto}.dim-modal{width:min(320px,92vw)}.dim-actions{justify-content:flex-end;gap:6px;margin-top:10px;display:flex}.series-title{color:var(--framekit);margin:8px 0 4px;font-size:11px;font-weight:650}.sku-grid{gap:4px;display:grid}.sku{text-align:left;cursor:pointer;background:#fff;border:1px solid #b7c0cb;border-radius:2px;grid-template-rows:auto auto;grid-template-columns:14px 1fr;column-gap:8px;padding:6px 8px;display:grid}.sku.active{background:#dbeafe;border-color:#2563eb}.swatch{background:linear-gradient(#e5e7eb,#9ca3af);border-radius:2px;grid-row:span 2;align-self:stretch;width:14px}.sku-name{font-size:12px;font-weight:600}.sku-meta{color:var(--muted);font-size:10px}.table{border-collapse:collapse;width:100%;font-size:11px}.table th,.table td{text-align:left;border-bottom:1px solid #c5ced8;padding:3px 2px}.row-between{justify-content:space-between;align-items:center;display:flex}.row.gap{gap:4px;display:flex}.cut-list{gap:4px;margin-top:4px;display:grid}.cut-bar{background:#fff;border:1px solid #b7c0cb;border-radius:2px;padding:4px 6px}.cut-head{margin-bottom:2px;font-size:11px;font-weight:600}.cut-segs{flex-wrap:wrap;gap:2px;display:flex}.cut-segs span{color:#1d4ed8;background:#dbeafe;border-radius:2px;padding:1px 4px;font-size:10px}.project-list{margin:0;padding:0;list-style:none}.project-list li{border-bottom:1px solid #c5ced8;justify-content:space-between;gap:4px;padding:4px 0;font-size:11px;display:flex}.linkish{color:#1d4ed8;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;padding:0}.panel-block h3{margin:.2rem 0 .4rem;font-size:13px}.panel-block h4{color:var(--muted);margin:.5rem 0 .25rem;font-size:11px}.muted{color:var(--muted);font-size:11px}.part-label{color:#fff;white-space:nowrap;background:#0f172ae0;border-radius:999px;padding:2px 6px;font-size:11px}.part-label.muted{background:#64748be0}.part-label.accent{background:#22c55ef2}.len-badge{color:#fff;white-space:nowrap;background:#16a34aeb;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:650}.print-only{display:none}.rail-btn{cursor:pointer;background:#ffffffeb;border:1px solid #94a3b8;border-radius:3px;justify-content:center;align-items:center;width:30px;height:30px;display:flex;box-shadow:0 1px 3px #00000026}.rail-btn:hover,.rail-btn.on{background:#dbeafe;border-color:#2563eb}.rail-btn.on{box-shadow:inset 0 0 0 1px #2563eb}.rail-label{color:#1d4ed8;font-size:10px;font-weight:700}.rail-sep{background:#94a3b8;width:22px;height:1px;margin:2px 4px}.r-ico{background-position:50%;background-repeat:no-repeat;background-size:contain;width:16px;height:16px;display:block}.r-grid{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23334155' d='M1 5.5h14M1 10.5h14M5.5 1v14M10.5 1v14'/%3E%3C/svg%3E")}.r-magnet{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23ef4444' d='M3 2h3v6a2 2 0 004 0V2h3v6a5 5 0 01-10 0zM3 2v2h3V2zM10 2v2h3V2z'/%3E%3C/svg%3E")}.r-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23fff' stroke='%232563eb' stroke-width='1.3' d='M4 2l2 10 2-4 4-2z'/%3E%3C/svg%3E")}.r-bug{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cellipse cx='8' cy='9' rx='4' ry='5' fill='%23ef4444'/%3E%3Cpath stroke='%23334155' fill='none' d='M4 5L2 3M12 5l2-2M4 12l-2 2M12 12l2 2M8 4V2M6 2h4'/%3E%3C/svg%3E")}.r-slope{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23334155' stroke-width='1.4' d='M2 13L14 4M2 13h12'/%3E%3C/svg%3E")}.r-parallel{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%232563eb' stroke-width='1.6' d='M5 2v12M11 2v12'/%3E%3C/svg%3E")}.rail-popout{background:#f8fafc;border:1px solid #7d8b9c;width:180px;padding:8px;font-size:12px;position:absolute;top:0;right:36px;box-shadow:0 4px 14px #0003}.aux-rail{z-index:3;flex-direction:column;align-items:flex-end;gap:3px;display:flex;position:absolute;top:52px;right:8px}.aux-rail>div{position:relative}.rail-popout.wide{width:220px}.rail-popout strong{color:var(--framekit);margin-bottom:6px;font-size:11px;display:block}.rail-popout textarea{width:100%;font:inherit;resize:vertical;border:1px solid #9aa7b5;border-radius:2px;margin-bottom:6px}.slope-result{color:#1d4ed8;margin-top:6px;font-weight:700}.ctx-menu{z-index:90;background:#f8fafc;border:1px solid #7d8b9c;border-radius:3px;min-width:215px;padding:3px;position:fixed;box-shadow:0 8px 24px #00000047}.ctx-title{color:#64748b;border-bottom:1px solid #d5dde5;margin-bottom:2px;padding:3px 8px;font-size:10px}.ctx-item{text-align:left;cursor:pointer;color:#1f2937;background:0 0;border:0;border-radius:2px;width:100%;padding:5px 10px;font-size:12px;display:block}.ctx-item:hover,.ctx-item.open{color:#1d4ed8;background:#dbeafe}.ctx-sub{border-left:2px solid #c5d4e0;margin:1px 0 1px 8px;padding-left:14px}.settings-modal{width:min(460px,94vw)}.tabs.four,.tabs.many{grid-template-columns:repeat(4,1fr)}html[data-theme=dark]{--bg:#1e293b;--panel:#273549;--line:#475569;--text:#e2e8f0;--muted:#94a3b8;color:var(--text)}html[data-theme=dark],html[data-theme=dark] body,html[data-theme=dark] #root{background:#0f172a}html[data-theme=dark] .chrome{background:linear-gradient(#1e293b,#0f172a);border-bottom-color:#334155}html[data-theme=dark] .iconbar{background:linear-gradient(#1e293b,#162032);border-bottom-color:#334155}html[data-theme=dark] .icon-tool{color:#cbd5e1}html[data-theme=dark] .icon-tool:hover,html[data-theme=dark] .icon-tool.on{background:linear-gradient(#334155,#1e293b);border-color:#475569}html[data-theme=dark] .actionbar{background:#1e293b;border-bottom-color:#334155}html[data-theme=dark] .abtn{color:#e2e8f0;background:linear-gradient(#334155,#1e293b);border-color:#475569}html[data-theme=dark] .workspace.framekit{background:#0f172a}html[data-theme=dark] .side.right.framekit-dock{background:#1e293b;border-left-color:#334155}html[data-theme=dark] .center-wrap,html[data-theme=dark] .center{background:#1a2332}html[data-theme=dark] .dock-panel{color:#e2e8f0;background:#273549;border-color:#475569}html[data-theme=dark] .help-bubble{color:#cbd5e1;background:#1e293beb;border-color:#475569}html[data-theme=native] .iconbar{flex-wrap:wrap;align-items:flex-start;gap:2px;padding:2px 4px 4px}html[data-theme=native] .iconbar-tools{flex-wrap:wrap;gap:1px;overflow-x:visible}html[data-theme=native] .icon-tool{width:44px;min-width:44px;height:46px}html[data-theme=native] .icon-tool em{max-width:44px;font-size:9px}.btn.tiny{padding:2px 8px;font-size:11px}.table tr.editing td{background:#fef9c3}.center-wrap{min-width:0;position:relative}@media (width<=720px){.workspace.framekit{grid-template-columns:1fr}.side.right.framekit-dock{z-index:5;width:min(292px,90vw);position:absolute;top:0;bottom:0;right:0;box-shadow:-4px 0 16px #00000026}}@media print{.chrome,.side,.viewport,.help-bubbles,.view-chip{display:none!important}.print-only{padding:1.5rem;display:block}.print-only table{border-collapse:collapse;width:100%}.print-only th,.print-only td{border:1px solid #333;padding:.35rem .5rem;font-size:12px}}.ai-drawer-root{top:var(--framekit-chrome-h,100px);z-index:40;pointer-events:none;position:fixed;bottom:0;left:0;right:0}.ai-drawer-scrim{cursor:pointer;pointer-events:auto;background:#0f172a38;border:0;animation:.18s ai-fade;position:absolute;inset:0}.ai-drawer{pointer-events:auto;background:#f0f2f5;border-left:1px solid #7d8b9c;flex-direction:column;width:min(400px,100vw);animation:.22s ai-slide;display:flex;position:absolute;top:0;bottom:0;right:0;box-shadow:-8px 0 24px #0000002e}@keyframes ai-fade{0%{opacity:0}to{opacity:1}}@keyframes ai-slide{0%{opacity:.6;transform:translate(18px)}to{opacity:1;transform:translate(0)}}.ai-drawer-head{color:#fff;background:linear-gradient(#5b9bd5,#3a7fc0);border-bottom:1px solid #2f6aa3;justify-content:space-between;align-items:center;gap:10px;padding:6px 8px;display:flex}.ai-drawer-brand{align-items:center;gap:8px;min-width:0;display:flex}.ai-mark{width:28px;height:28px;color:var(--framekit);background:linear-gradient(#fff,#d6e6f8);border:1px solid #9ec0e0;border-radius:3px;flex-shrink:0;place-items:center;display:grid}.ai-mark .glyph{width:18px;height:18px}.ai-drawer-brand strong{color:#fff;letter-spacing:.02em;font-size:13px;font-weight:650;display:block}.ai-drawer-brand p{color:#ffffffd9;white-space:nowrap;text-overflow:ellipsis;max-width:220px;margin:1px 0 0;font-size:11px;overflow:hidden}.ai-drawer-actions{gap:2px;display:flex}.ai-icon-btn{color:#fff;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:2px;place-items:center;width:26px;height:26px;padding:0;display:grid}.ai-icon-btn:hover,.ai-icon-btn.on{color:#fff;background:#fff3;border-color:#ffffff59}.ai-status-bar{background:linear-gradient(#fff,#e8edf3);border-bottom:1px solid #b7c0cb;align-items:center;gap:6px;padding:6px 8px;display:flex}.ai-status-bar .pill{color:#475569;background:#eef2f6;border:1px solid #9aa7b5;border-radius:2px;padding:2px 7px;font-size:11px}.ai-status-bar .pill.ok{color:#1d4ed8;background:#dbeafe;border-color:#93c5fd}.ai-status-bar .pill.warn{color:#c2410c;background:#fff7ed;border-color:#fed7aa}.ai-status-bar .linkish{color:#1d4ed8;cursor:pointer;background:0 0;border:0;margin-left:auto;padding:0;font-size:12px;text-decoration:underline}.ai-log{flex-direction:column;flex:1;gap:12px;min-height:0;padding:14px;display:flex;overflow:auto}.ai-welcome{text-align:center;color:#475569;padding:28px 12px 8px}.ai-welcome-icon{width:52px;height:52px;color:var(--framekit);background:linear-gradient(#fff,#d6e6f8);border:1px solid #9aa7b5;border-radius:3px;place-items:center;margin:0 auto 12px;display:grid;box-shadow:0 2px 6px #0f172a1f}.ai-welcome-icon .glyph{width:28px;height:28px}.ai-welcome h3{color:var(--framekit);margin:0 0 6px;font-size:15px}.ai-welcome p{max-width:280px;margin:0 auto 16px;font-size:12px;line-height:1.5}.ai-quick{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.ai-suggest{color:#1e3a5f;cursor:pointer;background:linear-gradient(#fff,#e8edf3);border:1px solid #9aa7b5;border-radius:2px;padding:5px 10px;font-size:12px}.ai-suggest:hover:not(:disabled){background:#dbeafe;border-color:#3b82f6}.ai-suggest:disabled{opacity:.5;cursor:default}.ai-bubble.user{align-self:flex-end;max-width:92%}.ai-bubble.assistant,.ai-bubble.error{align-self:flex-start;max-width:96%}.ai-bubble.tool{align-self:stretch}.ai-bubble-label{color:#94a3b8;align-items:center;margin-bottom:4px;font-size:11px;display:flex}.ai-bubble.user .ai-bubble-label{justify-content:flex-end}.ai-bubble-body{white-space:pre-wrap;word-break:break-word;border-radius:3px;padding:8px 10px;font-size:12px;line-height:1.5}.ai-bubble.user .ai-bubble-body{color:#fff;background:linear-gradient(#5b9bd5,#3a7fc0)}.ai-bubble.assistant .ai-bubble-body{color:#1f2937;background:#fff;border:1px solid #9aa7b5}.ai-bubble-body.error-text{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;padding:10px 12px;font-size:13px}.ai-tool-chip{color:#334155;background:#eef2f6;border:1px solid #9aa7b5;border-radius:2px;align-items:center;gap:8px;padding:6px 8px;font-size:12px;display:flex}.ai-tool-chip.fail{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.ai-tool-chip .dot{background:#3a7fc0;border-radius:50%;flex-shrink:0;width:7px;height:7px}.ai-tool-chip.fail .dot{background:#ef4444}.ai-tool-chip code{background:#ffffffb3;border-radius:4px;padding:1px 5px;font-size:11px}.ai-tool-chip em{opacity:.8;margin-left:auto;font-style:normal}.ai-typing{background:#fff;border:1px solid #9aa7b5;border-radius:3px;gap:4px;padding:10px 12px;display:inline-flex}.ai-typing i{background:#3a7fc0;border-radius:50%;width:6px;height:6px;animation:1s ease-in-out infinite ai-bounce;display:block}.ai-typing i:nth-child(2){animation-delay:.15s}.ai-typing i:nth-child(3){animation-delay:.3s}@keyframes ai-bounce{0%,80%,to{opacity:.45;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}.ai-composer{background:linear-gradient(#fff,#e8edf3);border-top:1px solid #b7c0cb;padding:8px}.ai-banner{color:#c2410c;cursor:pointer;text-align:left;background:#fff7ed;border:1px solid #fed7aa;border-radius:2px;width:100%;margin-bottom:8px;padding:7px 8px;font-size:12px}.ai-composer-box{background:#fff;border:1px solid #9aa7b5;border-radius:2px;grid-template-columns:1fr auto;align-items:end;gap:6px;padding:6px;display:grid}.ai-composer-box:focus-within{background:#fff;border-color:#3a7fc0;box-shadow:0 0 0 2px #3a7fc033}.ai-composer-box textarea{resize:none;font:inherit;color:#1f2937;background:0 0;border:0;outline:none;min-height:44px;max-height:120px;padding:4px 6px;font-size:12px;line-height:1.45}.ai-send{color:#fff;cursor:pointer;background:linear-gradient(#3b82f6,#1d4ed8);border:1px solid #1e40af;border-radius:2px;height:32px;padding:6px 12px;font-size:12px;font-weight:600}.ai-send:disabled{opacity:.45;cursor:default}.ai-send.stop{background:linear-gradient(#94a3b8,#64748b);border-color:#475569}.ai-composer-hint{color:#94a3b8;margin:6px 2px 0;font-size:11px}.ai-setup-pane{flex:1;padding:16px 14px 20px;overflow:auto}.ai-setup-pane h3{color:#0f172a;margin:0 0 12px;font-size:15px}.ai-setup-pane .hint{color:#64748b;margin:0 0 12px;font-size:12px;line-height:1.4}.ai-setup-pane .hint.mono code{background:#e2e8f0;border-radius:3px;padding:1px 4px;font-size:11px}.ai-primary-btn{color:#fff;cursor:pointer;background:linear-gradient(#3b82f6,#1d4ed8);border:1px solid #1e40af;border-radius:2px;width:100%;margin-top:8px;padding:8px 12px;font-size:12px;font-weight:600}.abtn.on{color:var(--brand);background:#dbeafe}body{min-width:320px;margin:0}
