@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--bg-main: #EEF2F8;--bg-surface: #FFFFFF;--bg-panel: #FFFFFF;--bg-muted: #F5F7FB;--bg-canvas: #E4EAF3;--border: #E3E8F0;--border-strong: #C9D2E0;--text-primary: #0B2240;--text-secondary: #5A6B83;--text-muted: #8A97AC;--accent: #1E4B94;--accent-hover: #163F80;--accent-strong: #102E63;--accent-soft: rgba(30, 75, 148, .1);--accent-softer: rgba(30, 75, 148, .05);--accent-contrast: #FFFFFF;--brand-red: #E13237;--brand-red-hover: #C92128;--brand-red-soft: rgba(225, 50, 55, .1);--success: #2EA373;--warning: #F2994A;--danger: #E13237;--shadow-xs: 0 1px 2px rgba(11, 34, 64, .04);--shadow-sm: 0 2px 8px rgba(11, 34, 64, .06), 0 1px 2px rgba(11, 34, 64, .03);--shadow-md: 0 8px 20px rgba(11, 34, 64, .08), 0 2px 4px rgba(11, 34, 64, .04);--shadow-lg: 0 20px 40px rgba(11, 34, 64, .12), 0 4px 10px rgba(11, 34, 64, .06);--shadow-focus: 0 0 0 3px rgba(30, 75, 148, .18);--radius-xs: 4px;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-pill: 999px;font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;color-scheme:light}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{background:var(--bg-main);color:var(--text-primary);font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,select,textarea{font:inherit;color:inherit}::selection{background:var(--accent-soft);color:var(--accent)}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#c9d2e0;border:2px solid transparent;background-clip:padding-box;border-radius:999px}*::-webkit-scrollbar-thumb:hover{background:#a7b3c6;background-clip:padding-box}.editor-shell{height:100%;display:grid;grid-template-rows:auto 1fr;background:var(--bg-main);color:var(--text-primary)}.editor-shell--intro{grid-template-rows:1fr}.top-bar{background:var(--bg-surface);box-shadow:var(--shadow-sm);display:flex;align-items:stretch;padding:0 16px 0 20px;gap:12px;box-sizing:border-box;position:relative;z-index:10;min-width:0;max-width:100%}.top-bar__brand{display:flex;align-items:center;flex-shrink:0;padding:12px 4px 12px 0}.top-bar__brand-logo{height:28px;width:auto;display:block;-webkit-user-select:none;user-select:none}.top-bar__left{display:flex;align-items:center;gap:12px;flex:1 1 auto;min-width:0;padding:12px 0}.top-bar__center{display:flex;align-items:center;justify-content:center;flex:0 0 auto;padding:12px 0}.top-bar__name{flex:1 1 auto;min-width:0;max-width:min(420px,40vw)}.top-bar__name-label{display:block;width:100%;background:transparent;border:0;color:var(--text-primary);font:inherit;font-size:15px;font-weight:700;cursor:pointer;padding:6px 10px;border-radius:var(--radius-sm);transition:background .12s;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.top-bar__name-label:hover:not(:disabled){background:var(--bg-muted)}.top-bar__name-label:disabled{color:var(--text-muted);cursor:default}.top-bar__name-edit{display:flex;align-items:center;gap:4px;min-width:0}.top-bar__name-input{flex:1 1 auto;min-width:0;background:var(--bg-surface);border:1px solid var(--accent);box-shadow:var(--shadow-focus);border-radius:var(--radius-sm);padding:6px 10px;color:var(--text-primary);font:inherit;font-size:14px;font-weight:600;outline:none}.top-bar__name-btn{width:32px;height:32px;flex-shrink:0;display:grid;place-items:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;transition:all .12s}.top-bar__name-btn--ok:hover{border-color:#1f7a4f;color:#1f7a4f;background:#1f7a4f14}.top-bar__name-btn--cancel:hover{border-color:var(--danger);color:var(--danger);background:var(--brand-red-soft)}.top-bar__actions{display:flex;gap:8px;align-items:center;flex:0 0 auto;margin-left:auto;min-width:0}.top-bar__actions--user{padding:18px 0 18px 4px}.top-bar__login{display:inline-flex;align-items:center;gap:8px;background:transparent;border:1px solid var(--border-strong);color:var(--text-secondary);padding:7px 14px;border-radius:var(--radius-pill);font-size:12px;font-weight:600;cursor:pointer;transition:all .12s}.top-bar__login svg{color:var(--text-muted);transition:color .12s}.top-bar__login:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-softer)}.top-bar__login:hover svg{color:var(--accent)}.top-bar__admin-link{display:inline-flex;align-items:center;padding:8px 14px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--bg-surface);color:var(--text-secondary);font-size:13px;font-weight:600;text-decoration:none;transition:border-color .12s,color .12s}.top-bar__admin-link:hover{border-color:var(--accent);color:var(--accent)}.top-bar__history{display:flex;gap:4px;flex-shrink:0}.top-bar__icon-btn{width:36px;height:36px;display:grid;place-items:center;background:transparent;border:1px solid transparent;color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all .12s}.top-bar__icon-btn svg{display:block}.top-bar__icon-btn:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.top-bar__icon-btn:disabled{opacity:.35;cursor:default}.editor{display:grid;grid-template-rows:1fr auto;min-height:0;overflow:hidden;padding:14px;gap:14px}.editor__intro{display:grid;grid-template-rows:1fr;overflow:hidden;padding:0}.editor:has(.editor__intro){padding:0;gap:0}.editor__layout{display:grid;grid-template-columns:240px 1fr 272px;gap:14px;min-height:0;overflow:hidden}.editor__left{display:flex;flex-direction:column;min-height:0;gap:14px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.editor__left .views-panel,.editor__left .tools-panel{flex:0 0 auto}.editor__center{display:flex;flex-direction:column;min-height:0;min-width:0;background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.editor__context-bar{background:var(--bg-muted);border-bottom:1px solid var(--border);padding:10px 18px;font-size:13px;font-weight:500;color:var(--text-secondary);min-height:40px;display:flex;align-items:center}.intro{width:100%;height:100%;display:flex;flex-direction:column;background:var(--bg-surface);position:relative;overflow-y:auto}.intro--drag{outline:3px solid var(--accent);outline-offset:-3px;background:var(--accent-softer)}.intro__nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 32px;height:auto;min-width:0;max-width:100%;background:#ffffffeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.intro__nav-brand{display:flex;align-items:center;gap:10px;text-decoration:none;-webkit-user-select:none;user-select:none}.intro__nav-logo{height:28px;width:auto;display:block;-webkit-user-select:none;user-select:none}.intro__nav-right{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0;justify-content:flex-end;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.intro__nav-right::-webkit-scrollbar{display:none}.intro__login-btn{display:inline-flex;align-items:center;gap:8px;background:transparent;border:1px solid var(--border-strong);color:var(--text-secondary);padding:7px 16px;border-radius:var(--radius-pill);font-size:13px;font-weight:600;cursor:pointer;transition:all .12s}.intro__login-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-softer)}.intro__hero{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:60px 24px 72px}.intro__hero-logo{height:104px;width:auto;max-width:min(520px,85vw);display:block;-webkit-user-select:none;user-select:none}.intro__headline{margin:0;font-size:clamp(19px,2.5vw,26px);font-weight:700;letter-spacing:-.02em;color:var(--text-primary);text-align:center;line-height:1.05}.intro__sub{margin:0;font-size:16px;color:var(--text-secondary);line-height:1.6;text-align:center;max-width:440px}.intro__drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:100%;max-width:460px;min-height:180px;border:1.5px dashed var(--border-strong);border-radius:var(--radius-xl);padding:32px 24px;cursor:pointer;transition:all .15s;background:var(--bg-muted)}.intro__drop:hover,.intro--drag .intro__drop{border-color:var(--accent);background:var(--accent-softer)}.intro__drop--loading{pointer-events:none;opacity:.75}.intro__drop-icon{color:var(--accent);opacity:.7}.intro__drop-primary{font-size:16px;font-weight:600;color:var(--text-primary)}.intro__drop-sub{font-size:13px;color:var(--text-muted)}.intro__spinner{display:block;width:32px;height:32px;border:2.5px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:intro-spin .7s linear infinite}@keyframes intro-spin{to{transform:rotate(360deg)}}.intro__error{margin:0;font-size:13.5px;color:var(--danger);background:var(--brand-red-soft);padding:10px 16px;border-radius:var(--radius-md);max-width:460px;text-align:center}.intro__actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.intro__action-btn{display:inline-flex;align-items:center;gap:8px;background:var(--bg-surface);border:1px solid var(--border-strong);color:var(--text-secondary);padding:10px 20px;border-radius:var(--radius-pill);font-size:13.5px;font-weight:600;cursor:pointer;transition:all .12s}.intro__action-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-softer)}.intro__action-btn:disabled{opacity:.45;cursor:default}.projects-menu{position:relative;flex-shrink:0}.projects-menu__trigger{display:inline-flex;align-items:center;gap:8px;background:transparent;border:1px solid var(--border-strong);color:var(--text-secondary);padding:7px 14px;border-radius:var(--radius-pill);font-size:12px;font-weight:600;cursor:pointer;transition:all .12s}.projects-menu__trigger:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-softer)}.projects-menu__trigger:disabled{opacity:.6;cursor:wait}.projects-menu__chev{opacity:.7}.projects-menu__panel{position:absolute;top:calc(100% + 8px);left:0;z-index:40;width:min(320px,80vw);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:8px}.projects-menu__action{width:100%;display:flex;align-items:center;gap:10px;text-align:left;background:transparent;border:0;border-radius:var(--radius-sm);padding:10px 12px;font-size:13px;font-weight:600;color:var(--text-primary);cursor:pointer;transition:background .12s}.projects-menu__action:hover:not(:disabled){background:var(--bg-muted)}.projects-menu__action:disabled{opacity:.45;cursor:default}.projects-menu__section-label{padding:8px 12px 4px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.projects-menu__divider{height:1px;background:var(--border);margin:6px 4px}.projects-menu__empty{margin:0;padding:8px 12px;font-size:12px;color:var(--text-secondary)}.projects-menu__list{list-style:none;margin:0;padding:0 4px;max-height:220px;overflow:auto;display:flex;flex-direction:column;gap:2px}.projects-menu__item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;background:transparent;border:0;border-radius:var(--radius-sm);padding:8px 10px;cursor:pointer;transition:background .12s}.projects-menu__item:hover:not(:disabled){background:var(--bg-muted)}.projects-menu__item--active{background:var(--accent-softer)}.projects-menu__item-name{font-size:13px;font-weight:600;color:var(--text-primary)}.projects-menu__item-date{font-size:11px;color:var(--text-muted);flex-shrink:0}.top-bar__projects-menu{flex-shrink:0}.my-projects-menu{position:relative}.my-projects-menu__trigger{display:inline-flex;align-items:center;gap:8px;background:transparent;border:1px solid var(--border-strong);color:var(--text-secondary);padding:7px 14px;border-radius:var(--radius-pill);font-size:12px;font-weight:600;cursor:pointer;transition:all .12s}.my-projects-menu__trigger:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-softer)}.my-projects-menu__trigger:disabled{opacity:.6;cursor:wait}.my-projects-menu__panel{position:absolute;top:calc(100% + 8px);right:0;z-index:30;width:min(320px,80vw);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:8px}.my-projects-menu__empty{margin:0;padding:10px 12px;font-size:13px;color:var(--text-secondary)}.my-projects-menu__list{list-style:none;margin:0;padding:0;max-height:280px;overflow:auto;display:flex;flex-direction:column;gap:4px}.my-projects-menu__item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;background:transparent;border:0;border-radius:var(--radius-sm);padding:9px 10px;cursor:pointer;transition:background .12s}.my-projects-menu__item:hover:not(:disabled){background:var(--bg-muted)}.my-projects-menu__item--active{background:var(--accent-softer)}.my-projects-menu__item-name{font-size:13px;font-weight:600;color:var(--text-primary)}.my-projects-menu__item-date{font-size:11px;color:var(--text-muted);flex-shrink:0}.intro__my-projects .my-projects-menu__trigger{font-size:13px;padding:7px 16px}.top-bar__cloud{font-size:11px;font-weight:600;padding:6px 10px;border-radius:var(--radius-pill);white-space:nowrap}.top-bar__cloud--saving{color:var(--text-secondary);background:var(--bg-muted)}.top-bar__cloud--saved{color:#1f7a4f;background:#1f7a4f1a}.top-bar__cloud--error{color:#b42318;background:#b4231814}.intro__cloud{width:min(560px,100%);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:16px 18px}.intro__cloud-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.intro__cloud-title{margin:0;font-size:14px;font-weight:700}.intro__cloud-loading,.intro__cloud-empty{margin:0;font-size:13px;color:var(--text-secondary)}.intro__cloud-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:220px;overflow:auto}.intro__cloud-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;background:var(--bg-muted);border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 12px;cursor:pointer;transition:border-color .12s,background .12s}.intro__cloud-item:hover:not(:disabled){border-color:var(--accent);background:var(--accent-softer)}.intro__cloud-item:disabled{opacity:.6;cursor:wait}.intro__cloud-item-name{font-size:14px;font-weight:600;color:var(--text-primary)}.intro__cloud-item-date{font-size:12px;color:var(--text-muted);flex-shrink:0}.intro__samples{display:flex;flex-direction:column;align-items:center;gap:10px}.intro__samples-label{font-size:12px;font-weight:500;color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase}.intro__sample-chips{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.intro__sample-chip{background:var(--bg-muted);border:1px solid var(--border);color:var(--text-secondary);padding:7px 16px;border-radius:var(--radius-pill);font-size:13px;font-weight:500;cursor:pointer;transition:all .12s}.intro__sample-chip:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-softer)}.intro__sample-chip:disabled{opacity:.45;cursor:default}.intro-screen{display:none}.intro-screen__title{margin:0;font-size:30px;font-weight:700;letter-spacing:-.02em;color:var(--text-primary)}.intro-screen__subtitle{margin:0;color:var(--text-secondary);font-size:15px;line-height:1.5}.intro-screen__url-row{display:flex;gap:10px;align-items:stretch}.intro-screen__url-row input{flex:1}.intro-screen__samples{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.step-screen__input{padding:12px 14px;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text-primary);font-size:14px;outline:none;transition:all .12s}.step-screen__input::placeholder{color:var(--text-muted)}.step-screen__input:focus{border-color:var(--accent);box-shadow:var(--shadow-focus)}.step-screen__btn{background:var(--accent);color:#fff;border:0;border-radius:var(--radius-md);padding:12px 22px;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;text-align:center;transition:background .12s,transform .12s,box-shadow .12s;box-shadow:var(--shadow-xs)}.step-screen__btn:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-sm)}.step-screen__btn:active:not(:disabled){transform:translateY(1px)}.step-screen__btn:disabled{opacity:.45;cursor:default}.step-screen__btn-secondary{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-pill);padding:8px 18px;font-size:13px;font-weight:500;cursor:pointer;transition:all .12s}.step-screen__btn-secondary:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-softer)}.step-screen__error{color:var(--danger);margin:0;font-size:14px;padding:10px 14px;background:var(--brand-red-soft);border-radius:var(--radius-sm)}.drop-zone{width:100%;min-height:220px;border:2px dashed var(--border-strong);border-radius:var(--radius-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-secondary);background:var(--bg-muted);transition:all .16s;padding:24px}.drop-zone.is-over{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.drop-zone__primary{font-size:16px;color:var(--text-primary);font-weight:500}.drop-zone__or{font-size:13px;color:var(--text-muted)}.drop-zone__label{cursor:pointer}.views-panel,.tools-panel,.surfaces-panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden;min-height:0}.views-panel__header{display:flex;align-items:center;gap:8px;padding:14px 16px 10px}.views-panel__header h3{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);flex:1;font-weight:600}.views-panel__add{width:28px;height:28px;border-radius:8px;border:0;background:var(--accent);color:#fff;font-size:18px;line-height:1;cursor:pointer;display:grid;place-items:center;box-shadow:var(--shadow-xs);transition:all .12s}.views-panel__add:hover{background:var(--accent-hover);box-shadow:var(--shadow-sm)}.views-panel__list{padding:4px 10px 10px;display:flex;flex-direction:column;gap:4px}.views-panel__empty{text-align:center;color:var(--text-muted);font-size:12px;padding:24px 12px;margin:0}.view-item{display:grid;grid-template-columns:56px 1fr auto;gap:10px;align-items:center;padding:8px;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;position:relative;transition:background .12s,border-color .12s}.view-item:hover{background:var(--bg-muted)}.view-item.is-active{border-color:var(--accent);background:var(--accent-soft)}.view-item__thumb{width:56px;height:44px;border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-muted);display:grid;place-items:center;box-shadow:var(--shadow-xs)}.view-item__thumb img{width:100%;height:100%;object-fit:cover}.view-item__body{min-width:0;overflow:hidden}.view-item__name{font-size:13px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.view-item__meta{font-size:11px;color:var(--text-muted);margin-top:2px}.view-item__del{background:none;border:0;color:var(--text-muted);cursor:pointer;padding:4px;line-height:0;border-radius:6px;transition:all .12s}.view-item__del:hover{color:var(--danger);background:var(--brand-red-soft)}.view-item__del svg{display:block}.canvas-stage{position:relative;flex:1;overflow:hidden;min-height:0;background:linear-gradient(180deg,#eef3fa,#dfe6f1)}.canvas-stage__bitmap{position:absolute;top:0;left:0;image-rendering:auto;-webkit-user-select:none;user-select:none;pointer-events:none;box-shadow:var(--shadow-md)}.canvas-stage__svg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:auto}.canvas-stage__svg polygon,.canvas-stage__svg path{fill:#1e4b9424;stroke:var(--accent);stroke-width:2;pointer-events:none}.canvas-stage__svg polygon.surface-outer{fill:none}.canvas-stage__svg path.surface-fill{stroke:none}.canvas-stage__svg polygon.surface-outer.is-inactive,.canvas-stage__svg path.surface-fill.is-inactive{stroke:#1e4b948c;fill:#1e4b940f}.canvas-stage__svg polygon.surface-outer.is-active{stroke:var(--accent);stroke-width:2.5;filter:drop-shadow(0 0 6px rgba(30,75,148,.35))}.canvas-stage__svg path.surface-fill.is-active{fill:#1e4b942e;stroke:none}.canvas-stage__svg polygon.surface-outer.is-draft{stroke:var(--accent);stroke-dasharray:4 3}.canvas-stage__svg polyline{fill:none;stroke:var(--accent);stroke-width:2;pointer-events:none}.canvas-stage__svg polygon.is-hole,.canvas-stage__svg polyline.is-hole{fill:#e132372e;stroke:var(--brand-red);stroke-dasharray:6 5}.canvas-stage__next-edge{stroke:var(--accent);stroke-width:2;stroke-dasharray:8 6;opacity:.9;pointer-events:none}.canvas-stage__next-edge--to-first{opacity:.6}.canvas-stage__next-edge.is-hole-preview{stroke:var(--brand-red)}.canvas-stage__svg circle{fill:#fff;stroke:var(--accent);stroke-width:2;cursor:grab;filter:drop-shadow(0 1px 2px rgba(11,34,64,.25))}.canvas-stage__svg circle.is-inactive{fill:#fff;stroke:#1e4b94b3}.canvas-stage__svg circle.is-hole-point{fill:#fff;stroke:var(--brand-red)}.canvas-stage__svg circle.is-insert-point{fill:var(--success);stroke:#fff;stroke-width:1.5;pointer-events:none}.canvas-stage__svg circle.is-deletable{cursor:no-drop}.canvas-stage__svg circle.is-deletable:hover{fill:var(--danger);stroke:var(--danger)}.canvas-stage__lasso-trail{fill:#f2994a24;stroke:var(--warning);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.canvas-stage__lasso-close{stroke:var(--warning);stroke-width:1.5;stroke-dasharray:5 4;opacity:.7;pointer-events:none}.canvas-stage__lasso-anchor{fill:var(--warning);stroke:#fff;stroke-width:1.5;pointer-events:none}.canvas-stage__lasso-trail.is-subtract{fill:#e1323724;stroke:var(--danger)}.canvas-stage__lasso-close.is-subtract{stroke:var(--danger)}.canvas-stage__lasso-anchor.is-subtract{fill:var(--danger)}.canvas-stage__insert-edge{stroke:var(--success);stroke-width:3;stroke-dasharray:6 4;pointer-events:none}.canvas-stage__finish-btn{cursor:pointer}.canvas-stage__finish-btn rect{fill:var(--success);stroke:#fff;stroke-width:1.5}.canvas-stage__finish-btn text{fill:#fff;font-size:12px;font-weight:800;pointer-events:none}.canvas-stage__svg circle:active{cursor:grabbing}.canvas-stage__badge{position:absolute;top:16px;left:50%;transform:translate(-50%);background:var(--bg-surface);border:1px solid var(--border);color:var(--text-primary);padding:8px 16px;border-radius:var(--radius-pill);font-size:12px;font-weight:500;box-shadow:var(--shadow-sm)}.canvas-stage__badge--error{border-color:var(--danger);color:var(--danger);background:var(--brand-red-soft)}.canvas-stage__badge--hint{border-color:var(--accent);color:var(--accent);background:#1e4b9414}.canvas-stage__hud{position:absolute;bottom:14px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:4px;height:40px;box-sizing:border-box;background:var(--bg-surface);border:1px solid var(--border);padding:0 10px;border-radius:var(--radius-pill);font-size:12px;color:var(--text-secondary);pointer-events:auto;box-shadow:var(--shadow-sm)}.canvas-stage__hud-btn{display:flex;align-items:center;justify-content:center;background:transparent;border:0;color:var(--text-secondary);cursor:pointer;min-width:32px;height:32px;padding:0 6px;border-radius:6px;font-size:16px;line-height:1;transition:all .12s}.canvas-stage__hud-btn--icon{padding:0;min-width:32px}.canvas-stage__hud-confirm{color:var(--accent);font-weight:700;font-size:18px;border:1px solid var(--accent);background:var(--accent-soft)}.canvas-stage__hud-btn:hover{color:var(--accent);background:var(--accent-soft)}.canvas-stage__hud-btn.canvas-stage__hud-confirm:hover{color:#fff;background:var(--accent)}.canvas-stage__hud-zoom{min-width:42px;text-align:center;color:var(--text-primary);font-weight:600;font-variant-numeric:tabular-nums}.canvas-stage__hud-hint{margin-left:8px;color:var(--text-muted);border-left:1px solid var(--border);padding-left:10px}.surfaces-panel--empty{padding:24px;color:var(--text-muted);text-align:center;font-size:13px}.surfaces-panel__tabs{display:flex;gap:0;padding:10px 10px 0;border-bottom:1px solid var(--border);flex-shrink:0}.surfaces-panel__tab{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;background:transparent;color:var(--text-secondary);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:10px 8px;border-radius:var(--radius-sm) var(--radius-sm) 0 0;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .12s,background .12s,border-color .12s}.surfaces-panel__tab:hover{color:var(--text-primary);background:var(--bg-muted)}.surfaces-panel__tab--active{color:var(--accent);border-bottom-color:var(--accent);background:var(--accent-softer)}.surfaces-panel__count{font-size:10px;font-weight:700;color:var(--accent);background:var(--accent-soft);padding:2px 7px;border-radius:var(--radius-pill);text-transform:none;letter-spacing:0}.surfaces-panel__tab-panel{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.surfaces-panel__tab-panel--combinations{overflow-y:auto;padding:0 10px 12px}.surfaces-panel__list{max-height:38%;overflow-y:auto;padding:0 10px 8px;display:flex;flex-direction:column;gap:4px}.surfaces-panel__empty{text-align:center;color:var(--text-muted);font-size:12px;padding:18px;margin:0;line-height:1.4}.surface-item{display:grid;grid-template-columns:auto 18px 1fr auto auto;gap:8px;align-items:center;padding:8px 10px;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;font-size:13px;transition:background .12s,border-color .12s}.surface-item:hover{background:var(--bg-muted)}.surface-item.is-active{border-color:var(--accent);background:var(--accent-soft)}.surface-item__vis{background:none;border:0;color:var(--text-muted);cursor:pointer;padding:4px;line-height:0;border-radius:6px;transition:all .12s}.surface-item__vis:hover{color:var(--accent);background:var(--accent-soft)}.surface-item__vis svg{display:block}.surface-item__swatch--empty,.color-current__chip--empty{background:var(--bg-muted, #eef2f6);box-shadow:inset 0 0 0 1px #0b22401f;background-image:repeating-linear-gradient(-45deg,transparent,transparent 4px,rgba(11,34,64,.06) 4px,rgba(11,34,64,.06) 8px)}.surface-item__swatch{width:18px;height:18px;border-radius:6px;border:1px solid rgba(11,34,64,.12);box-shadow:inset 0 0 0 1px #fff6}.surface-item__name{flex:1;min-width:0;background:transparent;border:0;color:var(--text-primary);font:inherit;font-size:13px;font-weight:500;outline:none;padding:2px 4px;border-radius:4px}.surface-item__name:focus{background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--accent)}.surface-item__name--label{cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.surface-item__idx{font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums}.surface-item__del{background:none;border:0;color:var(--text-muted);line-height:0;cursor:pointer;padding:4px;border-radius:6px;transition:all .12s}.surface-item__del:hover{color:var(--danger);background:var(--brand-red-soft)}.surface-item__del svg{display:block}.surfaces-panel__detail{flex:1;overflow-y:auto;border-top:1px solid var(--border);padding:14px 16px;display:flex;flex-direction:column;gap:14px;background:var(--bg-muted)}.surfaces-panel__detail-title{font-size:15px;font-weight:700;color:var(--text-primary);letter-spacing:-.01em}.surface-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.surface-action{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-surface);border:1px dashed var(--border-strong);border-radius:var(--radius-md);color:var(--text-primary);font-size:12.5px;font-weight:600;cursor:pointer;text-align:left;transition:all .12s}.surface-action svg{flex-shrink:0}.surface-action__label{flex:1}.surface-action__count{min-width:22px;padding:2px 8px;border-radius:var(--radius-pill);background:#e1323729;color:var(--brand-red);font-size:11px;font-weight:700;text-align:center;font-variant-numeric:tabular-nums}.surface-action--hole:hover{border-style:solid;border-color:var(--brand-red);color:var(--brand-red);background:var(--brand-red-soft)}.surface-action--hole.is-active{border-style:solid;border-color:var(--brand-red);background:var(--brand-red);color:#fff;box-shadow:0 0 0 4px #e132372e}.surface-action--hole.is-active .surface-action__count{background:#ffffff40;color:#fff}.surface-action--delete:hover{border-style:solid;border-color:var(--warning);color:var(--warning);background:#f2994a1a}.surface-action--delete.is-active{border-style:solid;border-color:var(--warning);background:var(--warning);color:#fff;box-shadow:0 0 0 4px #f2994a38}.surface-action__link{align-self:flex-start;background:none;border:0;color:var(--text-muted);font-size:11px;font-weight:500;cursor:pointer;padding:2px 0;margin:-4px 0 0}.surface-action__link:hover{color:var(--danger);text-decoration:underline}.tools-panel__help-note{padding-top:4px;color:var(--text-secondary);font-style:italic}.surface-slider{display:flex;flex-direction:column;gap:4px}.surface-slider label{display:flex;justify-content:space-between;font-size:12px;font-weight:500;color:var(--text-secondary)}.surface-slider label span:last-child{color:var(--accent);font-weight:600;font-variant-numeric:tabular-nums}.surface-slider input{width:100%;accent-color:var(--accent)}.surface-field{display:flex;flex-direction:column;gap:6px;padding-top:8px;border-top:1px dashed var(--border)}.surface-field label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.surface-field__select{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:8px 10px;font-size:13px;cursor:pointer}.surface-field__select:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus)}.surface-field__hint{margin:2px 0 0;font-size:11px;color:var(--text-muted);line-height:1.4}.color-palette{display:flex;flex-direction:column;gap:10px;padding:10px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md)}.color-current{display:grid;grid-template-columns:40px 1fr;gap:10px;align-items:center;padding:8px 10px;background:linear-gradient(135deg,var(--bg-muted) 0%,#ECF1F8 100%);border:1px solid var(--border);border-radius:var(--radius-md)}.color-current__chip{width:40px;height:40px;border-radius:8px;box-shadow:inset 0 0 0 1px #0b22402e,var(--shadow-sm)}.color-current__meta{display:flex;flex-direction:column;gap:2px;min-width:0}.color-current__code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:10px;font-weight:700;letter-spacing:.05em;color:var(--accent);text-transform:uppercase}.color-current__name{font-size:12px;font-weight:600;color:var(--text-primary);line-height:1.25;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.color-current--empty{background:var(--bg-muted, #eef2f6)}.color-current__name--empty{font-weight:600;color:var(--text-secondary)}.color-catalog-picker{display:flex;flex-direction:column;gap:14px}.color-palette__line{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:600;color:var(--text-secondary)}.color-palette__line-heading{display:block}.line-dropdown{position:relative;width:100%}.line-dropdown__trigger{display:flex;align-items:center;gap:8px;width:100%;min-height:40px;padding:6px 10px 6px 12px;font-size:12px;font-weight:600;color:var(--text-primary);background:var(--bg-muted);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:border-color .12s}.line-dropdown__trigger:hover{border-color:var(--text-muted)}.line-dropdown__trigger-label{min-width:0;flex:0 1 42%}.line-dropdown__trigger-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:uppercase;letter-spacing:.04em;font-size:12px}.line-dropdown__strip{display:flex;flex:1 1 auto;min-width:72px;max-width:48%;height:20px;border-radius:5px;overflow:hidden;gap:1px;background:var(--border);box-shadow:inset 0 0 0 1px #0b22401f}.line-dropdown__strip--trigger{max-width:none;flex:1 1 0}.line-dropdown__chip{flex:1 1 0;min-width:0;height:100%;box-shadow:inset 0 0 0 .5px #0000001f}.line-dropdown__chev{flex:0 0 auto;color:var(--text-muted);display:grid;place-items:center;opacity:.9}.line-dropdown__menu{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 4px);max-height:min(55vh,360px);overflow-y:auto;padding:4px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.line-dropdown__option{display:flex;flex-direction:column;align-items:stretch;gap:6px;width:100%;padding:8px 10px;margin:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;transition:background .1s}.line-dropdown__option:hover{background:var(--bg-muted)}.line-dropdown__option.is-active{background:color-mix(in srgb,var(--accent) 10%,var(--bg-muted));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}.line-dropdown__option-text{display:block;width:100%}.line-dropdown__option-name{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.line-dropdown__option .line-dropdown__strip{max-width:none;width:100%;flex:none}.color-palette__swatches{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.color-palette__swatches--small{grid-template-columns:repeat(10,1fr);gap:4px}.swatch{width:100%;aspect-ratio:1;border-radius:10px;border:0;cursor:pointer;padding:0;display:grid;place-items:center;color:#fff;box-shadow:inset 0 0 0 1px #0b224029,var(--shadow-xs);transition:transform .12s,box-shadow .12s}.swatch:hover{transform:translateY(-1px) scale(1.06);box-shadow:inset 0 0 0 1px #0b22403d,var(--shadow-sm)}.swatch.is-active{transform:scale(1.04);box-shadow:inset 0 0 0 2px #fff,0 0 0 2px var(--accent),var(--shadow-sm)}.swatch.is-in-draft:not(.is-active){box-shadow:inset 0 0 0 2px #fff,0 0 0 2px #2563eb8c,var(--shadow-xs)}.swatch:disabled{opacity:.45;cursor:not-allowed;transform:none}.swatch svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.45))}.swatch--small{border-radius:6px;box-shadow:inset 0 0 0 1px #0b22401f}.swatch--small.is-active{box-shadow:inset 0 0 0 2px #fff,0 0 0 2px var(--accent)}.color-palette__history-label{font-size:10px;text-transform:uppercase;color:var(--text-muted);letter-spacing:.1em;margin-bottom:6px;font-weight:700}.color-combos{display:flex;flex-direction:column;gap:12px;padding:12px 0 4px;border-top:1px solid var(--border);margin-top:8px}.color-combos--tab{border-top:0;margin-top:0;padding-top:12px}.color-combos__title{margin:0;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary)}.color-combos__saved{display:flex;flex-direction:column;gap:8px}.color-combos__empty{margin:0;padding:14px 12px;font-size:11.5px;color:var(--text-muted);line-height:1.5;text-align:center;background:var(--bg-muted);border:1px dashed var(--border);border-radius:var(--radius-md)}.color-combos__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.combo-card{display:grid;grid-template-columns:1fr auto;gap:8px;padding:8px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color .12s,box-shadow .12s}.combo-card--expanded{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft, rgba(37, 99, 235, .18))}.combo-card__head{display:flex;align-items:center;gap:8px;min-width:0;padding:0;border:0;background:transparent;cursor:pointer;text-align:left}.combo-card__strip{display:flex;gap:2px;height:26px;width:64px;flex-shrink:0;border-radius:6px;overflow:hidden;box-shadow:inset 0 0 0 1px #0b22401f}.combo-card__name{flex:1;min-width:0;font-size:12.5px;font-weight:700;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combo-card__chev{display:flex;color:var(--text-muted);transition:transform .16s}.combo-card--expanded .combo-card__chev{transform:rotate(180deg)}.combo-card__apply{align-self:center;padding:8px 16px;font-size:12px;font-weight:700;border:0;border-radius:var(--radius-md);background:var(--accent);color:#fff;cursor:pointer;transition:opacity .12s,transform .12s}.combo-card__apply:hover:not(:disabled){transform:translateY(-1px)}.combo-card__apply:disabled{opacity:.4;cursor:not-allowed}.combo-card__detail{grid-column:1 / -1;display:flex;flex-direction:column;gap:8px;padding-top:8px;border-top:1px solid var(--border)}.combo-card__detail-label{margin:0;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}.combo-card__detail .combo-builder__slots,.combo-card__detail .combo-builder__hint{margin-bottom:8px}.combo-card__detail-hint{margin:0;font-size:11px;color:var(--text-muted);line-height:1.4}.combo-map{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.combo-map__row{display:flex;align-items:center;gap:6px;font-size:11.5px}.combo-map__surface{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.combo-map__arrow{color:var(--text-muted);flex-shrink:0}.combo-map__swatch{width:18px;height:18px;flex-shrink:0;border-radius:4px;box-shadow:inset 0 0 0 1px #0b22402e}.combo-map__hex{flex-shrink:0;font-size:10px;font-weight:600;color:var(--text-secondary);min-width:64px;text-align:right}.combo-card__order-note{margin:0;font-size:10px;line-height:1.4;color:var(--text-muted);font-style:italic}.combo-card__apply-all{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;font-size:11.5px;font-weight:700;border:1px solid var(--accent);border-radius:var(--radius-md);background:var(--accent-soft, rgba(37, 99, 235, .1));color:var(--accent);cursor:pointer;transition:background .12s}.combo-card__apply-all:hover{background:var(--accent);color:#fff}.combo-card__delete{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:5px 8px;font-size:11px;font-weight:600;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;transition:color .12s,background .12s}.combo-card__delete:hover{color:#c0392b;background:#c0392b14}.color-combos__create{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid var(--border)}.color-combos__name{width:100%;padding:8px 10px;font-size:12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-primary)}.color-combos__name:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #2563eb26}.color-combos__save{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;font-size:12px;font-weight:700;border:none;border-radius:var(--radius-md);background:var(--accent);color:#fff;cursor:pointer;transition:opacity .12s,transform .12s}.color-combos__save:hover:not(:disabled){transform:translateY(-1px)}.color-combos__save:disabled{opacity:.4;cursor:not-allowed}.color-combos__save-preview{display:flex;gap:2px;height:14px;width:56px;border-radius:4px;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff59}.color-combos__custom-toggle{display:flex;align-items:center;justify-content:center;gap:6px;padding:9px 12px;font-size:12px;font-weight:600;border:1px dashed var(--border);border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);cursor:pointer;transition:border-color .12s,color .12s}.color-combos__custom-toggle:hover{border-color:var(--accent);color:var(--accent)}.combo-builder{display:flex;flex-direction:column;gap:10px;padding:10px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-panel)}.combo-builder__head{display:flex;align-items:center;justify-content:space-between}.combo-builder__title{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary)}.combo-builder__count{font-size:11px;font-weight:700;color:var(--text-muted)}.combo-builder__slots{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.combo-builder__slot-wrap{position:relative}.combo-builder__slot{aspect-ratio:1;width:100%;border-radius:8px;display:grid;place-items:center;font-size:11px;font-weight:700}.combo-builder__slot--empty{border:1px dashed var(--border);background:var(--bg-muted);color:var(--text-muted)}.combo-builder__slot--filled{border:0;cursor:pointer;color:#fff;box-shadow:inset 0 0 0 1px #0b224033;transition:transform .12s,box-shadow .12s}.combo-builder__slot--filled:hover{transform:scale(1.04)}.combo-builder__slot--active{box-shadow:inset 0 0 0 1px #0b224033,0 0 0 2px var(--accent)}.combo-builder__slot-remove{position:absolute;top:-5px;right:-5px;width:16px;height:16px;padding:0;border:0;border-radius:999px;background:#0b2240d1;color:#fff;font-size:12px;line-height:1;cursor:pointer;opacity:0;transition:opacity .12s,background .12s}.combo-builder__slot-wrap:hover .combo-builder__slot-remove,.combo-builder__slot--active+.combo-builder__slot-remove{opacity:1}.combo-builder__slot-remove:hover{background:var(--brand-red, #c92128)}.combo-builder__hint{margin:0;font-size:10.5px;line-height:1.4;color:var(--text-muted)}.combo-builder__actions{display:flex;gap:8px}.combo-builder__actions .color-combos__save{flex:1}.combo-builder__cancel{padding:10px 14px;font-size:12px;font-weight:600;border:1px solid var(--border);border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);cursor:pointer}.combo-builder__cancel:hover{border-color:var(--text-muted)}.color-combo__chip{flex:1;min-width:0}.project-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:10px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg)}.project-actions__btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:10px 6px;background:var(--bg-muted);border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-secondary);font-size:11.5px;font-weight:600;line-height:1.15;text-align:center;cursor:pointer;transition:all .12s}.project-actions__btn svg{flex-shrink:0;width:17px;height:17px;opacity:.9}.project-actions__btn:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.project-actions__btn:disabled{opacity:.45;cursor:default}.toolbar{position:relative;background:#000;color:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);display:flex;align-items:center;gap:14px;padding:11px 18px;min-height:67px;overflow:hidden}.toolbar:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--brand-red) 0%,var(--brand-red) 32%,rgba(255,255,255,.1) 32%,rgba(255,255,255,.1) 34%,var(--accent) 34%,#3E78D1 100%)}.toolbar__group{display:flex;align-items:center;gap:10px}.toolbar__logo{height:40px;width:auto;display:block;object-fit:contain}.toolbar__group--flex{flex:1}.toolbar__group--cta{gap:12px}.toolbar__toggle{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:#ffffffeb;padding:6px 11px;border-radius:var(--radius-pill);background:#ffffff1a;border:1px solid rgba(255,255,255,.14);cursor:pointer;transition:background .12s}.toolbar__toggle:hover{background:#ffffff24}.toolbar__toggle input{accent-color:#fff}.toolbar__status{font-size:12px;font-weight:600;color:#fff;background:#ffffff24;padding:5px 10px;border-radius:var(--radius-pill)}.toolbar__cta{display:inline-grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;padding:8px 14px 8px 11px;border:0;border-radius:var(--radius-md);cursor:pointer;text-align:left;font:inherit;color:#fff;min-height:45px;transition:transform .12s,box-shadow .12s,background .12s;box-shadow:var(--shadow-sm)}.toolbar__cta:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}.toolbar__cta:active:not(:disabled){transform:translateY(0)}.toolbar__cta:disabled{opacity:.45;cursor:default;box-shadow:none}.toolbar__cta-icon{width:32px;height:32px;display:grid;place-items:center;background:#ffffff24;border-radius:var(--radius-sm);flex-shrink:0}.toolbar__cta-body{display:flex;flex-direction:column;gap:2px;line-height:1.1}.toolbar__cta-title{font-size:14px;font-weight:700;letter-spacing:-.01em}.toolbar__cta-hint{font-size:11.5px;font-weight:500;color:#ffffffc7}.toolbar__cta--hq{background:linear-gradient(180deg,#2e63b6,#1e4b94)}.toolbar__cta--hq:hover:not(:disabled){background:linear-gradient(180deg,#3875c8,#245cae)}.toolbar__cta--final{background:linear-gradient(180deg,#eb4b50,#c92128);box-shadow:var(--shadow-sm),0 0 #e1323700}.toolbar__cta--final:hover:not(:disabled){background:linear-gradient(180deg,#f15a60,#d62328);box-shadow:var(--shadow-md),0 0 0 4px #e1323738}.toolbar__cta--final:not(:disabled) .toolbar__cta-icon{background:#ffffff38}.tool-btn{background:var(--bg-surface);border:1px solid transparent;color:var(--text-secondary);padding:8px 14px;border-radius:var(--radius-md);cursor:pointer;font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:8px;transition:all .12s}.tool-btn svg{flex-shrink:0}.tool-btn kbd{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:10px;font-weight:600;padding:2px 6px;border:1px solid var(--border);border-radius:4px;color:var(--text-muted);background:var(--bg-muted);line-height:1}.tool-btn:hover:not(:disabled){background:var(--accent-softer);color:var(--accent)}.tool-btn.is-active{background:var(--accent-soft);color:var(--accent)}.tool-btn:disabled{opacity:.4;cursor:default}.tool-btn--primary{background:var(--accent);color:#fff;font-weight:600;box-shadow:var(--shadow-xs)}.tool-btn--primary:hover:not(:disabled){background:var(--accent-hover);color:#fff;box-shadow:var(--shadow-sm)}.tool-btn--accent{background:var(--brand-red);color:#fff;font-weight:600;border:0;box-shadow:var(--shadow-xs)}.tool-btn--accent:hover:not(:disabled){background:var(--brand-red-hover);color:#fff;box-shadow:var(--shadow-sm)}.tool-btn--accent:disabled{opacity:.5}.tool-btn--secondary{border-color:var(--border-strong);color:var(--text-secondary)}.tool-btn--secondary:hover:not(:disabled){border-color:var(--accent);background:var(--accent-softer);color:var(--accent)}.tool-btn--promote{background:linear-gradient(135deg,#2e8b57,#1a6b40);color:#fff;font-weight:600;border-color:transparent;box-shadow:0 2px 8px #2e8b5759}.tool-btn--promote:hover:not(:disabled){background:linear-gradient(135deg,#38a868,#22804e);box-shadow:0 2px 12px #2e8b5780}.knob{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:500;color:var(--text-secondary)}.knob input{accent-color:var(--accent);width:100px}.knob__value{min-width:24px;text-align:right;color:var(--accent);font-weight:600;font-variant-numeric:tabular-nums}.render-dialog{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b224073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:40;padding:24px}.render-dialog__card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:min(740px,100%);max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.render-dialog__header{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.render-dialog__header h3{margin:0;flex:1;font-size:17px;font-weight:700;letter-spacing:-.01em}.render-dialog__close{background:transparent;border:0;color:var(--text-muted);font-size:22px;line-height:1;cursor:pointer;padding:4px 10px;border-radius:6px;transition:all .12s}.render-dialog__close:hover{background:var(--bg-muted);color:var(--text-primary)}.render-dialog__body{flex:1;overflow:auto;min-height:260px;display:flex;align-items:center;justify-content:center;padding:28px;background:var(--bg-muted)}.render-dialog__progress{text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px;color:var(--text-secondary);font-size:14px}.render-dialog__spinner{width:48px;height:48px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.render-dialog__provider{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.render-dialog__result img{max-width:100%;max-height:60vh;border-radius:var(--radius-md);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.render-dialog__error{color:var(--danger);text-align:center;font-size:14px}.render-dialog__error pre{background:var(--bg-surface);border:1px solid var(--border);padding:12px;border-radius:var(--radius-sm);font-size:11px;text-align:left;max-width:520px;overflow-x:auto;color:var(--text-secondary)}.render-dialog__footer{display:flex;gap:12px;align-items:center;padding:14px 20px;border-top:1px solid var(--border);background:var(--bg-surface)}.render-dialog__chip{display:flex;align-items:center;gap:8px;flex:1;font-size:12px;color:var(--text-secondary)}.render-dialog__chip>span{width:16px;height:16px;border-radius:5px;border:1px solid rgba(11,34,64,.12)}.render-dialog__chip code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px;color:var(--text-primary);background:var(--bg-muted);padding:3px 8px;border-radius:6px}.tools-panel{flex:0 0 auto;padding:14px;gap:10px}.tools-panel__header h3{margin:0 0 4px;padding:0;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:600}.tools-panel__grid{display:grid;grid-template-columns:1fr;gap:6px}.tools-panel__btn{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-muted);border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-secondary);font-size:12px;font-weight:500;text-align:left;cursor:pointer;transition:all .12s}.tools-panel__btn:hover{background:var(--accent-softer);color:var(--accent)}.tools-panel__btn.is-active{background:var(--accent);color:#fff;box-shadow:var(--shadow-xs)}.tools-panel__btn.is-active kbd{background:#fff3;color:#ffffffe6;border-color:#ffffff40}.tools-panel__icon{font-size:14px;line-height:0;text-align:center;display:grid;place-items:center}.tools-panel__icon svg{display:block}.tools-panel__label{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.tools-panel__btn kbd{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:10px;font-weight:600;padding:2px 5px;border:1px solid var(--border);border-radius:4px;color:var(--text-muted);background:var(--bg-surface)}.tools-panel__ai{margin-top:2px;display:flex;flex-direction:column;gap:6px}.tools-panel__ai-btn{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:0;border-radius:var(--radius-md);cursor:pointer;text-align:left;font:inherit;color:#fff;background:linear-gradient(180deg,#2e8b57,#1e6b40);box-shadow:var(--shadow-sm);transition:transform .12s,box-shadow .12s,background .12s,opacity .12s}.tools-panel__ai-btn:hover:not(:disabled){background:linear-gradient(180deg,#38a868,#247a4c);box-shadow:var(--shadow-md),0 0 0 3px #2e8b572e;transform:translateY(-1px)}.tools-panel__ai-btn:active:not(:disabled){transform:translateY(0)}.tools-panel__ai-btn:disabled{opacity:.5;cursor:default;box-shadow:none}.tools-panel__ai-btn--detect{background:linear-gradient(180deg,#2563eb,#1d4ed8)}.tools-panel__ai-btn--detect:hover:not(:disabled){background:linear-gradient(180deg,#3b82f6,#2563eb);box-shadow:var(--shadow-md),0 0 0 3px #2563eb33}.tools-panel__ai-icon{flex:0 0 auto;display:grid;place-items:center;width:32px;height:32px;background:#fff3;border-radius:var(--radius-sm)}.tools-panel__ai-text{display:flex;min-width:0;flex:1 1 auto;flex-direction:column;gap:1px;line-height:1.2}.tools-panel__ai-title{font-size:13px;font-weight:700;letter-spacing:-.01em}.tools-panel__ai-hint{font-size:11px;font-weight:500;color:#ffffffd1}.tools-panel__knobs{display:flex;flex-direction:column;gap:8px;padding:10px;background:var(--bg-muted);border-radius:var(--radius-md)}.tools-panel__knob{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;font-size:12px;font-weight:500;color:var(--text-secondary)}.tools-panel__knob input[type=range]{accent-color:var(--accent);width:100%}.tools-panel__knob-value{min-width:22px;text-align:right;color:var(--accent);font-weight:600;font-variant-numeric:tabular-nums}.tools-panel__toggle{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:500;color:var(--text-secondary)}.tools-panel__toggle input{accent-color:var(--accent)}.tools-panel__help{display:flex;flex-direction:column;gap:4px;font-size:10.5px;color:var(--text-muted);line-height:1.45;padding:10px 10px 0;border-top:1px dashed var(--border)}.tools-panel__help strong{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;font-size:10px}.finish-picker{display:flex;flex-direction:column;gap:10px;padding-top:12px;border-top:1px dashed var(--border)}.finish-picker__header{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.finish-picker__grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.finish-tile{display:flex;flex-direction:column;gap:8px;padding:8px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;text-align:left;transition:all .12s}.finish-tile:hover{border-color:var(--accent);background:var(--accent-softer);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.finish-tile.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--text-primary);box-shadow:0 0 0 1px var(--accent),var(--shadow-sm)}.finish-tile__canvas{width:100%;height:64px;border-radius:var(--radius-sm);display:block;box-shadow:inset 0 0 0 1px #0b22401f;object-fit:cover}.finish-tile__meta{display:flex;flex-direction:column;gap:3px;min-width:0}.finish-tile__name{font-size:12px;font-weight:600;color:var(--text-primary);line-height:1.2}.finish-tile__desc{font-size:10.5px;color:var(--text-muted);line-height:1.35;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.finish-picker__hint{margin:0;font-size:11px;color:var(--text-muted);line-height:1.45}.renov-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0e14a6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.renov-panel{background:#1a1f2e;border:1px solid rgba(255,255,255,.1);border-radius:16px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 64px #0009,0 0 0 1px #ffffff0d inset;display:flex;flex-direction:column;gap:0}.renov-header{display:flex;align-items:flex-start;gap:12px;padding:20px 20px 0}.renov-header__icon{font-size:28px;line-height:1;flex-shrink:0;margin-top:2px}.renov-header__title{margin:0 0 4px;font-size:17px;font-weight:700;color:#f0f2f5;line-height:1.2}.renov-header__sub{margin:0;font-size:12px;color:#7a8598;line-height:1.4}.renov-close{margin-left:auto;flex-shrink:0;background:transparent;border:none;color:#7a8598;font-size:16px;cursor:pointer;padding:4px 6px;border-radius:6px;line-height:1;transition:color .15s,background .15s}.renov-close:hover{color:#f0f2f5;background:#ffffff14}.renov-section{padding:16px 20px 0}.renov-section:last-of-type{padding-bottom:0}.renov-section__title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.renov-section__title{margin:0 0 10px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#7a8598}.renov-section__title-row .renov-section__title{margin-bottom:0}.renov-optional{font-weight:400;text-transform:none;letter-spacing:0;color:#556070}.renov-select-all{background:transparent;border:1px solid rgba(255,255,255,.12);border-radius:6px;color:#7a8598;font-size:11px;cursor:pointer;padding:3px 8px;transition:color .15s,border-color .15s,background .15s}.renov-select-all:hover{color:#f0f2f5;border-color:#ffffff40;background:#ffffff0d}.renov-chips{display:flex;flex-wrap:wrap;gap:8px}.renov-chip{display:flex;align-items:center;gap:6px;padding:7px 13px;border-radius:20px;border:1.5px solid rgba(255,255,255,.12);background:#ffffff0a;color:#a0aab8;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;line-height:1}.renov-chip:hover{border-color:#ffffff40;color:#f0f2f5;background:#ffffff14}.renov-chip--active{border-color:#4ade80;background:#4ade801f;color:#4ade80}.renov-chip--active:hover{border-color:#6ee7a0;background:#4ade802e;color:#6ee7a0}.renov-chip__emoji{font-size:15px;line-height:1}.renov-chip__hint{display:block;font-size:10px;font-weight:400;opacity:.65;margin-top:2px;line-height:1.2}.renov-chip--style{flex-direction:column;align-items:flex-start;padding:8px 13px;border-radius:10px;gap:0}.renov-chip--style.renov-chip--active .renov-chip__hint{opacity:.85}.renov-textarea{width:100%;box-sizing:border-box;background:#ffffff0a;border:1.5px solid rgba(255,255,255,.1);border-radius:10px;color:#d0d8e8;font-size:13px;line-height:1.5;padding:10px 12px;resize:vertical;font-family:inherit;transition:border-color .15s;outline:none}.renov-textarea:focus{border-color:#4ade8066}.renov-textarea::placeholder{color:#4a5568}.renov-footer{display:flex;justify-content:flex-end;gap:10px;padding:20px;margin-top:4px;border-top:1px solid rgba(255,255,255,.07)}.renov-btn{padding:10px 20px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;border:none;transition:all .15s ease;line-height:1}.renov-btn--cancel{background:#ffffff0f;color:#7a8598;border:1.5px solid rgba(255,255,255,.08)}.renov-btn--cancel:hover{background:#ffffff1a;color:#a0aab8}.renov-btn--start{background:linear-gradient(135deg,#2e8b57,#1a6b40);color:#fff;box-shadow:0 4px 16px #2e8b5759}.renov-btn--start:hover:not(:disabled){background:linear-gradient(135deg,#38a868,#22804e);box-shadow:0 4px 20px #2e8b5780;transform:translateY(-1px)}.renov-btn--start:disabled{opacity:.4;cursor:not-allowed}.renov-color-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px}.renov-color-row__label{font-size:12px;color:#7a8598;font-weight:500}.renov-color-row__swatch{width:24px;height:24px;border-radius:6px;border:1.5px solid rgba(255,255,255,.15);box-shadow:inset 0 0 0 1px #0000004d;flex-shrink:0}.renov-color-row__code{font-size:12px;color:#d0d8e8;font-family:JetBrains Mono,ui-monospace,monospace;margin-left:auto}.renov-no-surfaces{margin:0;font-size:12px;color:#556070;background:#ffffff08;border:1px dashed rgba(255,255,255,.1);border-radius:8px;padding:10px 14px;line-height:1.5}.auth-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px}.auth-dialog__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#0b224073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer}.auth-dialog__card{position:relative;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:min(420px,100%);overflow:hidden}.auth-dialog__header{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.auth-dialog__header h3{margin:0;flex:1;font-size:17px;font-weight:700}.auth-dialog__close{background:transparent;border:0;color:var(--text-muted);font-size:22px;line-height:1;cursor:pointer;padding:4px 10px;border-radius:6px}.auth-dialog__close:hover{background:var(--bg-muted);color:var(--text-primary)}.auth-dialog__tabs{display:flex;gap:4px;padding:12px 16px 0}.auth-dialog__tab{flex:1;border:0;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:600;padding:10px 12px;border-radius:var(--radius-sm) var(--radius-sm) 0 0;cursor:pointer;border-bottom:2px solid transparent}.auth-dialog__tab--active{color:var(--accent);border-bottom-color:var(--accent);background:var(--accent-softer)}.auth-dialog__form{display:flex;flex-direction:column;gap:14px;padding:20px}.auth-dialog__field{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--text-secondary)}.auth-dialog__field input{font:inherit;font-weight:500;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary)}.auth-dialog__field input:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus)}.auth-dialog__error{margin:0;font-size:13px;color:var(--danger, #c0392b);background:#c0392b14;border-radius:var(--radius-sm);padding:8px 12px}.auth-dialog__notice{margin:0;font-size:12px;line-height:1.45;color:var(--text-secondary);background:var(--bg-muted);border-radius:var(--radius-sm);padding:10px 12px}.auth-dialog__submit{margin-top:4px;padding:11px 16px;border:0;border-radius:var(--radius-pill);background:var(--accent);color:#fff;font-size:14px;font-weight:700;cursor:pointer}.auth-dialog__submit:disabled{opacity:.6;cursor:wait}.auth-dialog__hint{margin:0;padding:0 20px 20px;font-size:13px;color:var(--text-secondary);text-align:center}.auth-dialog__link{background:none;border:0;padding:0;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline}.auth-user{display:flex;align-items:center;gap:10px}.auth-user__label{font-size:12px;font-weight:600;color:var(--text-secondary);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-bar__actions--user .auth-user__label{display:block}.intro__quote-btn,.quote-request-btn{display:inline-flex;align-items:center;gap:6px;border:0;border-radius:var(--radius-pill);background:var(--accent);color:#fff;font-size:12px;font-weight:700;padding:7px 12px;cursor:pointer;transition:filter .12s,transform .12s;white-space:nowrap;flex-shrink:0}.toolbar__share-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid rgba(255,255,255,.35);border-radius:var(--radius-md);background:#ffffff1a;color:#fff;font-size:13px;font-weight:700;padding:8px 16px;min-height:45px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .12s,transform .12s,box-shadow .12s}.toolbar__share-btn:hover{background:#ffffff2e;transform:translateY(-1px);box-shadow:var(--shadow-sm)}.toolbar__quote-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:var(--radius-md);background:linear-gradient(180deg,#eb4b50,#c92128);color:#fff;font-size:13px;font-weight:700;padding:8px 16px;min-height:45px;cursor:pointer;white-space:nowrap;flex-shrink:0;box-shadow:var(--shadow-sm);transition:transform .12s,box-shadow .12s,filter .12s}.toolbar__quote-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);background:linear-gradient(180deg,#f15a60,#d62328)}.toolbar__quote-btn:active{transform:translateY(0)}.quote-request-btn__short{display:none}.intro__quote-btn{font-size:13px}@media (max-width: 1180px){.quote-request-btn__full{display:none}.quote-request-btn__short{display:inline}}.intro__quote-btn:hover,.quote-request-btn:hover{filter:brightness(1.06)}.quote-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));box-sizing:border-box}.quote-dialog__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#0b224073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer}.quote-dialog__card{position:relative;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:min(440px,100%);max-height:min(90vh,100%);overflow:auto}.quote-dialog__header{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.quote-dialog__header h3{margin:0;flex:1;font-size:17px;font-weight:700}.quote-dialog__close{background:transparent;border:0;color:var(--text-muted);font-size:22px;line-height:1;cursor:pointer;padding:4px 10px;border-radius:6px}.quote-dialog__body,.quote-dialog__form{padding:20px;display:flex;flex-direction:column;gap:14px}.quote-dialog__intro{margin:0;font-size:13px;color:var(--text-secondary);line-height:1.5}.quote-dialog__field{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--text-secondary)}.quote-dialog__field input,.quote-dialog__field textarea{font:inherit;font-weight:500;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary)}.quote-dialog__field input:focus,.quote-dialog__field textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus)}.quote-dialog__optional{font-weight:400;color:var(--text-muted)}.quote-dialog__error{margin:0;font-size:13px;color:#b42318;background:#b4231814;border-radius:var(--radius-sm);padding:8px 12px}.quote-dialog__success{margin:0;font-size:14px;color:var(--text-primary);line-height:1.5}.quote-dialog__submit{margin-top:4px;padding:11px 16px;border:0;border-radius:var(--radius-pill);background:var(--accent);color:#fff;font-size:14px;font-weight:700;cursor:pointer}.quote-dialog__submit:disabled{opacity:.6;cursor:wait}.my-projects-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.my-projects-dialog__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#0b224073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer}.my-projects-dialog__card{position:relative;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:min(920px,100%);max-height:min(85vh,720px);display:flex;flex-direction:column;overflow:hidden}.my-projects-dialog__header{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border);flex-shrink:0}.my-projects-dialog__header h3{margin:0;flex:1;font-size:17px;font-weight:700}.my-projects-dialog__close{width:32px;height:32px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-size:22px;line-height:1;cursor:pointer}.my-projects-dialog__close:hover{background:var(--bg-muted);color:var(--text-primary)}.my-projects-dialog__body{padding:18px 20px 22px;overflow-y:auto;min-height:0}.my-projects-dialog__status{margin:0;padding:24px 8px;text-align:center;color:var(--text-secondary);font-size:14px}.my-projects-dialog__status--error{color:var(--danger)}.my-projects-dialog__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.my-projects-dialog__card-btn{width:100%;display:flex;flex-direction:column;align-items:stretch;text-align:left;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-panel);padding:0;cursor:pointer;overflow:hidden;transition:border-color .12s,box-shadow .12s,transform .12s}.my-projects-dialog__card-btn:hover:not(:disabled){border-color:var(--accent);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.my-projects-dialog__card-btn--active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft)}.my-projects-dialog__card-btn:disabled{opacity:.6;cursor:wait}.my-projects-dialog__thumb{position:relative;aspect-ratio:4 / 3;background:var(--bg-muted);overflow:hidden}.my-projects-dialog__thumb img{width:100%;height:100%;object-fit:cover;display:block}.my-projects-dialog__thumb-empty{width:100%;height:100%;display:grid;place-items:center;color:var(--text-muted)}.my-projects-dialog__views-badge{position:absolute;right:8px;bottom:8px;font-size:10px;font-weight:700;color:#fff;background:#0b2240b8;padding:3px 8px;border-radius:var(--radius-pill)}.my-projects-dialog__meta{padding:10px 12px 12px;display:flex;flex-direction:column;gap:4px;min-width:0}.my-projects-dialog__name{font-size:13px;font-weight:700;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-projects-dialog__date{font-size:11px;color:var(--text-muted)}.my-projects-dialog__item{position:relative}.my-projects-dialog__delete{position:absolute;top:8px;right:8px;z-index:2;width:28px;height:28px;border:0;border-radius:var(--radius-sm);background:#0b2240b8;color:#fff;font-size:18px;line-height:1;cursor:pointer;opacity:0;transition:opacity .12s,background .12s}.my-projects-dialog__item:hover .my-projects-dialog__delete,.my-projects-dialog__delete:focus-visible{opacity:1}.my-projects-dialog__delete:hover:not(:disabled){background:var(--danger)}.my-projects-dialog__delete:disabled{opacity:.5;cursor:wait}.share-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px}.share-dialog__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#0b224073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer}.share-dialog__card{position:relative;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:min(520px,100%)}.share-dialog__header{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.share-dialog__header h3{margin:0;flex:1;font-size:17px;font-weight:700}.share-dialog__close{width:32px;height:32px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-size:22px;cursor:pointer}.share-dialog__close:hover{background:var(--bg-muted)}.share-dialog__body{padding:20px;display:flex;flex-direction:column;gap:14px}.share-dialog__intro{margin:0;font-size:14px;color:var(--text-secondary);line-height:1.5}.share-dialog__status{margin:0;font-size:13px;color:var(--text-secondary)}.share-dialog__error{margin:0;font-size:13px;color:var(--danger)}.share-dialog__link-row{display:flex;gap:8px}.share-dialog__input{flex:1;min-width:0;border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;font-size:13px;color:var(--text-primary);background:var(--bg-muted)}.share-dialog__copy{flex-shrink:0;border:0;border-radius:var(--radius-sm);background:var(--accent);color:#fff;font-size:13px;font-weight:700;padding:10px 16px;cursor:pointer}.share-dialog__copy:hover{background:var(--accent-hover)}.share-page{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-main)}.share-page__header{display:flex;align-items:center;gap:16px;padding:16px 24px;background:var(--bg-surface);box-shadow:var(--shadow-sm)}.share-page__logo{height:28px;width:auto}.share-page__label{display:block;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.share-page__title{margin:2px 0 0;font-size:18px;font-weight:700}.share-page__main{flex:1;display:flex;flex-direction:column;align-items:center;padding:24px;gap:16px}.share-page__status{margin:0;color:var(--text-secondary);font-size:14px}.share-page__status--error{color:var(--danger)}.share-page__views{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.share-page__view-tab{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-surface);color:var(--text-secondary);font-size:12px;font-weight:600;padding:7px 14px;cursor:pointer}.share-page__view-tab--active{border-color:var(--accent);color:var(--accent);background:var(--accent-softer)}.share-preview{width:min(100%,1100px);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:12px;display:flex;justify-content:center}.share-preview__canvas{display:block;max-width:100%;height:auto;border-radius:var(--radius-sm)}.admin-page{min-height:100vh;background:var(--bg-app);color:var(--text-primary);padding:24px clamp(16px,4vw,40px) 48px}.admin-page--loading{display:grid;place-items:center}.admin-page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}.admin-page__header h1{margin:8px 0 4px;font-size:clamp(22px,3vw,28px)}.admin-page__subtitle{margin:0;color:var(--text-secondary);font-size:14px}.admin-page__back{display:inline-block;color:var(--accent);font-size:13px;font-weight:600;text-decoration:none}.admin-page__back:hover{text-decoration:underline}.admin-page__primary{border:0;border-radius:var(--radius-pill);background:var(--accent);color:#fff;font-size:14px;font-weight:700;padding:10px 18px;cursor:pointer}.admin-page__content{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:8px 0 4px}.admin-page__card{max-width:420px;margin:10vh auto 0;padding:28px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-xl)}.admin-page__status{margin:0;padding:24px;text-align:center;color:var(--text-secondary)}.admin-page__status--error{color:var(--danger)}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table th,.admin-table td{padding:12px 18px;text-align:left;border-bottom:1px solid var(--border)}.admin-table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:700}.admin-table__empty{text-align:center;color:var(--text-secondary);padding:32px 18px!important}.admin-table__row--inactive{opacity:.65}.admin-table__actions{text-align:right;white-space:nowrap}.admin-table__link{border:0;background:transparent;color:var(--accent);font-size:13px;font-weight:600;cursor:pointer;padding:4px 0}.admin-badge{display:inline-block;font-size:11px;font-weight:700;padding:3px 10px;border-radius:var(--radius-pill);background:#c0392b1f;color:var(--danger)}.admin-badge--ok{background:#2e7d321f;color:#2e7d32}.admin-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:24px}.admin-dialog__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#0b224073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer}.admin-dialog__card{position:relative;width:min(440px,100%);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:22px 24px 24px}.admin-dialog__card h2{margin:0 0 8px;font-size:18px}.admin-dialog__email{margin:0 0 16px;font-size:13px;color:var(--text-muted)}.admin-dialog__form{display:flex;flex-direction:column;gap:12px}.admin-dialog__field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--text-secondary)}.admin-dialog__field input{padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-panel);color:var(--text-primary);font-size:14px}.admin-dialog__checkbox{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}.admin-dialog__error{margin:0;font-size:13px;color:var(--danger)}.admin-dialog__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.admin-dialog__primary,.admin-dialog__secondary{border-radius:var(--radius-pill);font-size:14px;font-weight:600;padding:9px 16px;cursor:pointer}.admin-dialog__primary{border:0;background:var(--accent);color:#fff}.admin-dialog__secondary{border:1px solid var(--border);background:transparent;color:var(--text-secondary)}
