:root{--accent:#c33a20;--accent-hover:#ae321b;--accent-down:#932915;--tint:#fff2eb;--tint-border:#e7b6a5;--tint-ink:#a73520;--ink:#2c2d2d;--ink-2:#555;--ink-3:#777;--ink-4:#817a70;--disabled:#c4c2bd;--page:#faf9f7;--surface:#fff;--sub:#faf8f4;--track:#f4f3f1;--line:#d9d9d9;--line-card:#e5e3df;--line-2:#e7e5e1;--line-3:#ecebe9;--danger:#b3261e;--ok:#32816b;--warn-bg:#fff6e5;--warn-line:#f1d9a6;--warn-ink:#5a4300;--font:Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-ui:Roboto, Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--shadow-toolbar:0 3px 14px #0000000d;--shadow-pop:0 6px 24px #0002;--shadow-modal:0 8px 28px #00000012}*{box-sizing:border-box}html,body{background:var(--page);height:100%;color:var(--ink);font:13px/1.45 var(--font);-webkit-font-smoothing:antialiased;margin:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}h1,h2,h3,p{margin:0}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}[hidden]{display:none!important}.ic{letter-spacing:normal;text-transform:none;white-space:nowrap;font-variation-settings:"FILL" 0, "wght" 300;vertical-align:middle;direction:ltr;font-family:Material Symbols Outlined;font-size:20px;font-style:normal;font-weight:300;line-height:1;display:inline-block}.muted{color:var(--ink-3)}.small{font-size:12px}.center{text-align:center}.grow{flex:1}.eyebrow{font:700 10px/1.3 var(--font-ui);text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.btn{height:36px;font:500 13px/1 var(--font-ui);white-space:nowrap;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:0 14px;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.btn .ic{font-size:18px}.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover:not(:disabled){background:var(--accent-hover)}.btn.primary:active:not(:disabled){background:var(--accent-down)}.btn.ghost{background:var(--surface);border-color:var(--line);color:var(--ink)}.btn.ghost:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn.danger{background:var(--danger);color:#fff}.btn.google{border-color:var(--line);color:var(--ink);background:#fff;gap:10px;height:40px}.btn.google:hover:not(:disabled){border-color:#9a9a96}.btn.small{height:30px;padding:0 10px;font-size:12px}.btn.wide{width:100%}.btn:disabled{opacity:.55}.btn.ghost:disabled{color:var(--disabled);border-color:var(--line-3);opacity:1}.link{color:var(--accent);font:600 inherit;cursor:pointer;background:0 0;border:0;padding:0;font-family:inherit;text-decoration:none}.link:hover{text-decoration:underline}.link.center{align-self:center}.field{font:600 12px/1.3 var(--font-ui);color:var(--ink-2);flex-direction:column;gap:5px;display:flex}.field small{font-weight:400}.field em{font-style:normal;font-weight:400}.field input[type=text],.field input[type=email],.field input[type=password],.field select,.field input.code{border:1px solid var(--line);height:38px;font:400 14px/1 var(--font);color:var(--ink);background:#fff;border-radius:4px;padding:0 10px}.field input[type=file]{font-size:13px}.field input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.field input[aria-invalid=true]{border-color:var(--danger)}.field input.code{letter-spacing:.18em;text-transform:uppercase;font:600 16px/1 ui-monospace,SFMono-Regular,Menlo,monospace}.form-error{color:var(--danger);white-space:pre-line;background:#fdecea;border:1px solid #f3b9b2;border-radius:4px;padding:8px 10px;font-size:13px}.form-notice{color:#1e5b47;background:#eaf5f0;border:1px solid #bfe0d2;border-radius:4px;padding:8px 10px;font-size:13px}.check{font:500 13px var(--font-ui);cursor:pointer;align-items:center;gap:8px;display:flex}.check input{accent-color:var(--accent);width:16px;height:16px;margin:0}.centered{justify-content:center;align-items:center;min-height:100%;padding:24px 16px;display:flex}.spinner{border:3px solid var(--line-3);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.card{background:var(--surface);border:1px solid var(--line-card);box-shadow:var(--shadow-modal);border-radius:12px}.logo{background:var(--accent);color:#fff;font:800 22px/1 var(--font-ui);border-radius:10px;flex:none;place-items:center;display:inline-grid}.logo-link{text-decoration:none;display:inline-flex}.banner{border-radius:8px;padding:10px 12px;font-size:13px}.banner.warn{background:var(--warn-bg);border:1px solid var(--warn-line);color:var(--warn-ink)}.banner.warn .link{color:#8a5a00}.banner.error{color:var(--danger);background:#fdecea;border:1px solid #f3b9b2}.banner.top{z-index:20;position:fixed;top:12px;left:50%;transform:translate(-50%)}.menu{background:var(--surface);border:1px solid var(--line-card);min-width:210px;box-shadow:var(--shadow-pop);z-index:30;font-family:var(--font-ui);border-radius:8px;padding:6px;position:absolute;top:calc(100% + 6px);right:0}.menu button{text-align:left;background:0 0;border:0;border-radius:6px;width:100%;padding:8px 10px;font-weight:500;display:block}.menu button:hover{background:var(--page)}.menu button.danger{color:var(--danger)}.menu-label{color:var(--ink-3);border-bottom:1px solid var(--line-3);flex-direction:column;gap:2px;margin-bottom:4px;padding:6px 10px 8px;font-size:12px;display:flex;overflow:hidden}.menu-label strong{color:var(--ink)}.menu-label span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.account{position:relative}.avatar{border:1px solid var(--line);background:var(--tint);width:36px;height:36px;color:var(--tint-ink);font:700 14px var(--font-ui);border-radius:50%;place-items:center;padding:0;display:grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar:hover{border-color:var(--accent)}.dialog{border:1px solid var(--line-card);width:min(440px,100% - 32px);color:var(--ink);background:var(--surface);border-radius:12px;padding:22px 24px;box-shadow:0 20px 60px #0000002e}.dialog::backdrop{background:#1e1e1c59}.dialog-form{flex-direction:column;gap:14px;display:flex}.dialog h2{font:600 20px/1.25 var(--font)}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.way-tabs{background:var(--track);border-radius:8px;gap:2px;padding:3px;display:flex}.way-tabs button{font:500 12px var(--font-ui);color:var(--ink-2);background:0 0;border:0;border-radius:6px;flex:1;padding:7px 8px}.way-tabs button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #0000001a}.login-card{flex-direction:column;gap:18px;width:min(400px,100%);padding:28px 28px 22px;display:flex}.brand{text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.brand .logo{border-radius:12px;margin-bottom:4px}.brand h1{font:600 22px/1.2 var(--font);letter-spacing:-.01em}.auth-tabs{border-bottom:1px solid var(--line-3);display:flex}.auth-tabs .tab{font:600 13px var(--font-ui);color:var(--ink-3);background:0 0;border:0;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;padding:8px 0 10px}.auth-tabs .tab.active{color:var(--ink);border-bottom-color:var(--accent)}.login-form{flex-direction:column;gap:12px;display:flex}.divider{color:var(--ink-3);align-items:center;gap:10px;font-size:12px;display:flex}.divider:before,.divider:after{content:"";background:var(--line-3);flex:1;height:1px}.gallery-page{flex-direction:column;min-height:100%;display:flex}.gallery-bar{background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:12px;height:64px;padding:0 24px;display:flex}.gallery-brand{font:600 15px var(--font)}.gallery{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:28px clamp(16px,4vw,48px) 48px}.gallery-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.gallery-head h1{font:600 24px/1.2 var(--font);letter-spacing:-.01em}.gallery-actions{flex-wrap:wrap;gap:8px;display:flex}.gallery .banner,.gallery .form-error{margin-bottom:16px}.grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.project-card{background:var(--surface);border:1px solid var(--line-card);cursor:pointer;border-radius:12px;flex-direction:column;transition:box-shadow .12s,border-color .12s;display:flex;position:relative}.project-card:hover,.project-card:focus-visible{border-color:var(--line);box-shadow:0 6px 20px #00000014}.thumb{aspect-ratio:16/10;background:linear-gradient(#f3f1ec,#ece9e2);border-radius:12px 12px 0 0;place-items:center;display:grid;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%}.thumb-plan{fill:none;stroke:#8a8f94;stroke-width:3px;stroke-linejoin:round;width:70%;height:70%}.thumb-plan path:first-child{fill:#fff}.thumb-plan .door{stroke:var(--ok);stroke-width:4px}.card-body{padding:10px 40px 12px 12px}.card-title{font:500 14px/1.3 var(--font);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.card-meta{margin-top:2px}.card-menu-btn{background:0 0;border:1px solid #0000;border-radius:4px;padding:2px 8px;font-size:16px;line-height:1.2;position:absolute;bottom:10px;right:8px}.project-card:hover .card-menu-btn,.card-menu-btn[aria-expanded=true]{border-color:var(--line)}.card-menu{top:auto;bottom:40px;right:8px}.empty{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:48px 16px;display:flex}.empty h2{font:600 18px var(--font)}.empty-art{border:2px dashed var(--line);border-radius:8px;width:160px;margin-bottom:8px;padding:6px}.empty .btn{margin-top:8px}.app{background:var(--page);flex-direction:column;display:flex;position:fixed;inset:0}.topbar{background:var(--surface);border-bottom:1px solid var(--line);z-index:10;flex:none;align-items:center;gap:14px;height:64px;padding:0 24px;display:flex}.topbar .back{height:32px;padding:0 10px}.vdiv{background:var(--line);flex:none;width:1px;height:32px}.project{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.project-name{align-items:center;gap:4px;min-width:0;display:flex}.name-input{width:min(100%,420px);height:28px;font:500 14px/1 var(--font);color:var(--ink);text-overflow:ellipsis;background:0 0;border:1px solid #0000;border-radius:4px;margin-left:-7px;padding:0 6px}.name-input:hover{border-color:#e0deda}.name-input:focus{border-color:var(--ink);background:var(--surface);outline:none}.edit-ic{color:var(--ink-3);font-size:14px}.name-static{font:500 14px/28px var(--font);color:var(--ink)}.project-sub{font:500 11px/1.2 var(--font-ui);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-4);white-space:nowrap;text-overflow:ellipsis;min-height:13px;overflow:hidden}.topbar-right{flex:none;align-items:center;gap:8px;display:flex}.status-pill{font:500 12px var(--font-ui);color:var(--ink-3);background:var(--track);white-space:nowrap;border-radius:999px;align-items:center;height:28px;padding:0 10px;display:inline-flex}.status-pill.saved{color:var(--ok)}.status-pill.dirty,.status-pill.saving,.status-pill.loading{color:var(--ink-2)}.status-pill.offline,.status-pill.retrying,.status-pill.conflict,.status-pill.signedout{color:#8a5a00;background:var(--warn-bg)}.status-pill.error{color:var(--danger);background:#fdecea}.bar{z-index:9;flex:none;align-items:center;gap:10px;padding:8px 24px;font-size:13px;display:flex}.bar span{flex:1}.bar.conflict{background:var(--tint);border-bottom:1px solid var(--tint-border);color:var(--tint-ink)}.bar.warn{background:var(--warn-bg);border-bottom:1px solid var(--warn-line);color:var(--warn-ink)}.body{flex:1;min-height:0;display:flex;position:relative}.rail{background:var(--page);border-right:1px solid var(--line-2);z-index:6;flex-direction:column;flex:none;align-items:center;gap:6px;width:68px;padding:12px 0;display:flex}.rail-item{width:56px;height:56px;color:var(--ink-2);font:500 11px/1 var(--font-ui);background:0 0;border:0;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:0;display:flex;position:relative}.rail-item:hover{background:var(--track);color:var(--ink)}.rail-item.on{background:var(--accent);color:#fff;font-weight:700}.rail-tick{font-size:10px;font-style:normal;line-height:1;position:absolute;top:4px;right:6px}.drawer{background:var(--surface);border-right:1px solid var(--line-2);z-index:5;flex-direction:column;flex:none;width:340px;display:flex;overflow-y:auto}.drawer-head{justify-content:space-between;align-items:flex-start;gap:8px;padding:16px 12px 12px 16px;display:flex}.drawer-head h2{font:600 20px/1.2 var(--font);margin:4px 0 2px}.drawer-desc{color:var(--ink-3);font-size:11px}.drawer-collapse{width:30px;height:30px;color:var(--ink-3);background:0 0;border:0;border-radius:6px;flex:none;place-items:center;padding:0;display:grid}.drawer-collapse:hover{background:var(--track);color:var(--ink)}.drawer-sub{background:var(--sub);border-top:1px solid var(--line-3);border-bottom:1px solid var(--line-3);padding:8px 16px}.add-to{font:500 12px var(--font-ui);color:var(--ink-3);align-items:center;gap:8px;display:flex}.add-to select{border:1px solid var(--line);min-width:0;height:30px;font:500 12px var(--font-ui);color:var(--ink);background:#fff;border-radius:4px;flex:1;padding:0 6px}.cat-tabs{grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;padding:12px 16px 0;display:grid}.cat-tabs button{border:1px solid var(--line-3);background:var(--track);height:30px;color:var(--ink-2);font:500 12px var(--font-ui);border-radius:4px}.cat-tabs button:hover{color:var(--ink)}.cat-tabs button.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}.group-name{color:var(--ink-3);padding:8px 16px 0;font-size:11px}.lib-grid{grid-template-columns:repeat(3,1fr);gap:8px;padding:12px 16px 16px;display:grid}.lib-card{text-align:left;border:1px solid var(--line-card);color:var(--ink);background:#fff;border-radius:8px;flex-direction:column;align-items:stretch;gap:1px;padding:0 0 6px;transition:border-color .12s,box-shadow .12s;display:flex;overflow:hidden}.lib-card:hover:not(:disabled){border-color:var(--accent);box-shadow:0 3px 10px #c33a201f}.lib-card:disabled{opacity:.5}.lib-card small{color:var(--ink-3);padding:0 6px;font-size:10px}.lib-name{font:600 11px/1.3 var(--font-ui);padding:5px 6px 1px}.lib-well{background:radial-gradient(circle at 50% 35%,#fbfaf7,#ece8e1);height:105px;display:block;position:relative}.lib-well img{object-fit:contain;width:100%;height:100%;display:block}.lib-add{background:var(--accent);color:#fff;font:600 11px var(--font-ui);opacity:0;border-radius:999px;padding:3px 7px;transition:opacity .12s;position:absolute;bottom:6px;right:6px}.lib-card:hover:not(:disabled) .lib-add,.lib-card:focus-visible .lib-add{opacity:1}.thumb-wait{background:#efece6;width:100%;height:100%;display:block}.thumb-wait.small{border-radius:4px;flex:none;width:40px;height:40px}.placed-head{font:600 12px var(--font-ui);border-top:1px solid var(--line-3);justify-content:space-between;align-items:baseline;padding:12px 16px 8px;display:flex}.placed-head small{color:var(--ink-3);font-weight:400}.placed{flex-direction:column;gap:4px;margin:0;padding:0 16px;list-style:none;display:flex}.placed li{border:1px solid var(--line-card);background:#fff;border-radius:8px;align-items:center;display:flex}.placed li.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.placed-main{color:var(--ink);text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:8px;min-width:0;padding:4px 6px;display:flex}.placed-main img{object-fit:contain;background:#f3f0ea;border-radius:4px;flex:none;width:40px;height:40px}.placed-main span{min-width:0;font:600 12px/1.3 var(--font-ui);flex-direction:column;display:flex}.placed-main small{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;font-weight:400;overflow:hidden}.placed .remove{color:var(--ink-3);background:0 0;border:0;padding:4px 10px;font-size:18px;line-height:1}.placed .remove:hover{color:var(--accent)}.hint{color:var(--ink-3);padding:8px 16px 16px;font-size:11px}.canvas{background:var(--page);flex:1;min-width:0;position:relative}.stage{isolation:isolate;position:absolute;inset:0;overflow:hidden}.stage canvas{display:block}.labels{position:absolute;inset:0}.tag{pointer-events:none;white-space:nowrap;border-radius:4px}.tag-room{color:var(--ink);background:#ffffffd9;padding:2px 6px;font-size:13px;font-weight:700}.tag-fixture{color:#fff;background:#3c372dc7;padding:1px 4px;font-size:10px}.tag-object{color:var(--ink);background:#fffc;border:1px solid #d7cbbb;padding:1px 4px;font-size:10px}.spaces{z-index:4;position:absolute;top:16px;left:16px}.corner-btn{border:1px solid var(--line-card);background:var(--surface);width:44px;height:44px;color:var(--ink);box-shadow:var(--shadow-toolbar);border-radius:8px;place-items:center;padding:0;display:grid}.corner-btn:hover{border-color:var(--accent);color:var(--accent)}.corner-btn.on{background:var(--tint);border-color:var(--tint-border);color:var(--accent)}.open-btn{width:auto;height:44px;font:500 12px var(--font-ui);grid-auto-flow:column;gap:6px;padding:0 12px;position:absolute;top:16px;left:72px}.popover{background:var(--surface);border:1px solid var(--line-card);width:268px;box-shadow:var(--shadow-pop);border-radius:10px;flex-direction:column;gap:10px;padding:12px;display:flex;position:absolute;top:calc(100% + 8px);left:0}.space-list{flex-direction:column;gap:2px;max-height:40vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.space-list button{width:100%;font:500 13px var(--font-ui);color:var(--ink);text-align:left;background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.space-list button small{color:var(--ink-3);font-weight:400}.space-list button:hover{background:var(--track)}.space-list button.on{background:var(--tint);color:var(--accent)}.space-list button.on small{color:var(--tint-ink)}.summary{z-index:4;background:var(--surface);border:1px solid var(--line-card);box-shadow:var(--shadow-toolbar);border-radius:10px;min-width:260px;max-width:calc(100% - 32px);position:absolute;top:16px;right:16px}.summary-row{align-items:stretch;display:flex}.summary-room{flex-direction:column;flex:1;gap:2px;min-width:0;padding:10px 14px;display:flex}.summary-room strong{font:600 13px var(--font-ui);white-space:nowrap}.summary-items{border:0;border-left:1px solid var(--line-3);color:var(--ink);background:0 0;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 12px;display:flex}.summary-items span{font:500 10px var(--font-ui);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}.summary-items strong{font:600 14px var(--font-ui);align-items:center;gap:2px;display:inline-flex}.summary-items:hover{background:var(--sub)}.summary-items .flip{transform:rotate(180deg)}.summary-list{border-top:1px solid var(--line-3);font:500 12px var(--font-ui);flex-direction:column;gap:4px;max-height:40vh;margin:0;padding:8px 14px 10px;list-style:none;display:flex;overflow-y:auto}.summary-list li{justify-content:space-between;gap:12px;display:flex}.summary-list li small{color:var(--ink-3)}.summary-list li.hint{padding:4px 0 0}.toolbar{z-index:4;background:var(--surface);min-height:88px;box-shadow:var(--shadow-toolbar);border:1px solid var(--line-card);border-radius:12px;align-items:center;gap:4px;padding:10px 14px;display:flex;position:absolute;bottom:16px;left:16px;right:16px;overflow-x:auto}.seg{background:var(--track);border-radius:8px;flex:none;gap:2px;padding:3px;display:flex}.seg button{width:48px;height:48px;color:var(--ink-2);font:700 11px var(--font-ui);background:0 0;border:0;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0;display:flex}.seg button.on{background:var(--accent);color:#fff}.tb-div{background:var(--line-3);flex:none;width:1px;height:46px;margin:0 8px}.tb-btn{width:64px;height:60px;color:var(--ink-2);font:500 11px/1 var(--font-ui);background:0 0;border:0;border-radius:8px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:4px;padding:0;display:flex}.tb-btn:hover:not(:disabled){background:var(--track);color:var(--ink)}.tb-btn:disabled{color:var(--disabled)}.tb-btn.on{background:var(--tint);color:var(--accent)}.toast{z-index:8;background:var(--ink);color:#fff;font:500 13px var(--font-ui);box-shadow:var(--shadow-pop);border-radius:8px;max-width:min(560px,100% - 32px);padding:10px 16px;position:absolute;bottom:120px;left:50%;transform:translate(-50%)}.veil{z-index:7;font:500 13px var(--font-ui);color:var(--ink-2);background:#faf9f7cc;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.notice-card{flex-direction:column;gap:10px;width:min(420px,100% - 32px);padding:22px 24px;display:flex}.notice-card h2{font:600 20px/1.25 var(--font)}.canvas-error{z-index:8;color:var(--danger);background:#fdecea;border:1px solid #f3b9b2;border-radius:8px;align-items:center;gap:12px;max-width:min(560px,100% - 32px);padding:10px 14px;display:flex;position:absolute;top:76px;left:50%;transform:translate(-50%)}.item-toolbar{visibility:hidden;background:var(--surface);border:1px solid var(--line-card);width:340px;max-width:calc(100% - 16px);box-shadow:var(--shadow-pop);z-index:5;font-family:var(--font-ui);border-radius:10px;flex-direction:column;gap:8px;padding:8px 8px 8px 12px;display:flex;position:absolute;top:0;left:0}.toolbar-row{align-items:center;gap:8px;display:flex}.toolbar-title{flex-direction:column;flex:1;min-width:0;display:flex}.toolbar-title strong{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.toolbar-title small{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.toolbar-actions{gap:2px;display:flex}.tool{width:34px;height:34px;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;display:grid}.tool:hover{background:var(--track);border-color:var(--line-3)}.tool.on{background:var(--tint);border-color:var(--tint-border);color:var(--accent)}.tool.danger:hover{color:var(--danger);background:#fdf2f1;border-color:#e8c4c0}.toolbar-message{background:var(--warn-bg);color:var(--warn-ink);border-radius:6px;margin:0;padding:6px 8px;font-size:12px}.toolbar-finish{border-top:1px solid var(--line-3);flex-direction:column;gap:8px;max-height:50vh;padding-top:8px;display:flex;overflow-y:auto}.tabs{border:1px solid var(--line-3);border-radius:8px;display:flex;overflow:hidden}.tabs button{font:600 12px var(--font-ui);color:var(--ink-3);background:#fff;border:0;flex:1;justify-content:center;align-items:center;gap:6px;padding:6px 8px;display:flex}.tabs button+button{border-left:1px solid var(--line-3)}.tabs button.on{background:var(--accent);color:#fff}.tabs i{background-size:cover;border:1px solid #0003;border-radius:3px;width:14px;height:14px}.current-finish{margin:0;font-weight:600}.current-finish small{color:var(--ink-3);font-weight:400}.pills{flex-wrap:wrap;gap:4px;display:flex}.pill{border:1px solid var(--line-3);color:var(--ink-3);font:500 12px var(--font-ui);white-space:nowrap;background:#fff;border-radius:999px;flex:none;padding:3px 9px}.pill:hover{color:var(--ink);border-color:var(--line)}.pill.on{background:var(--accent);border-color:var(--accent);color:#fff}.swatches{flex-wrap:wrap;gap:6px;min-height:34px;display:flex}.swatch{background-size:cover;border:1px solid #00000026;border-radius:6px;width:28px;height:28px;padding:0;transition:transform .1s}.swatch:hover{transform:scale(1.08)}.swatch.on{outline:2px solid var(--accent);outline-offset:2px}.custom{flex-wrap:wrap;gap:10px;display:flex}.custom label{color:var(--ink-3);flex-direction:column;gap:3px;font-size:11px;display:flex}.custom input[type=color]{border:1px solid var(--line-3);background:#fff;border-radius:6px;width:48px;height:32px;padding:0 2px}.custom select{color:var(--ink);border:1px solid var(--line-3);background:#fff;border-radius:6px;padding:6px 8px;font-size:13px}.item-toolbar .link{align-self:flex-start;font-size:12px}@media (max-width:1439px){.drawer{box-shadow:var(--shadow-pop);position:absolute;top:0;bottom:0;left:68px}.topbar{gap:10px;padding:0 16px}}@media (max-width:900px){.topbar .btn span.ic+*,.status-pill,.project-sub{display:none}.tb-btn{width:56px}}
