@import url('./tokens.css');
/* R01: white surfaces, product-led layout, clear controls and independent tasks. */
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--vts-surface);color:var(--vts-text);font:16px/1.5 var(--vts-font);--line:var(--vts-divider);--muted:var(--vts-text-secondary);--surface:var(--vts-surface)}
button,input,select,textarea{font:inherit;color:inherit}button,a,label,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;background:transparent}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-decoration:none}img{max-width:100%}h1,h2,h3,p{margin:0}h1{font-size:32px;line-height:40px;font-weight:600}h2{font-size:24px;line-height:32px;font-weight:600}h3{font-size:18px;line-height:26px;font-weight:600}p{line-height:1.5}input,select,textarea{min-width:0}button,a,input,select,textarea,summary{touch-action:manipulation}
:where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--vts-brand);outline-offset:4px;box-shadow:0 0 0 2px white}button:active:not(:disabled){filter:none}.screen-reader{position:absolute;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden}.skip-link{position:fixed;left:16px;top:-100px;z-index:150;background:#fff;padding:12px;border:2px solid var(--vts-brand)}.skip-link:focus{top:12px}
.topbar,.site-header{background:var(--vts-surface);border-bottom:1px solid var(--vts-divider);display:flex;align-items:center;gap:24px;padding:20px 48px;position:sticky;top:0;z-index:30;min-height:104px}.brand{display:flex;flex-direction:column;gap:8px;flex-shrink:0}.brand strong{font-size:20px;line-height:28px;font-weight:600;letter-spacing:0}.logo{display:flex;align-items:center;gap:8px;width:max-content;height:24px;background:white}.logo img{position:static;object-fit:contain;max-width:100%;filter:none}.logo .brand-symbol{width:24px;height:24px}.logo .brand-wordmark{width:104px;height:20px}.experience-badge{font-size:12px;line-height:18px;padding:4px 8px;border:1px solid var(--vts-divider);color:var(--vts-text-secondary);white-space:nowrap}.desktop-nav{display:flex;gap:32px;margin-left:auto;align-self:stretch;align-items:center}.desktop-nav a{min-height:48px;min-width:48px;display:grid;place-items:center;position:relative}.desktop-nav a.active{font-weight:600}.desktop-nav a.active:after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--vts-brand)}.header-tools{display:flex;gap:8px;align-items:center}.avatar{width:44px;height:44px;border-radius:50%;background:var(--vts-brand-subtle);color:var(--vts-brand);border:1px solid var(--vts-divider)}.mobile-nav{display:none}
#app{max-width:1536px;margin:0 auto;padding:32px 48px 64px;min-height:60vh}#app[data-page=custom],#app[data-page=admin]{max-width:none}.loading{padding:140px 24px;text-align:center;color:var(--vts-text-secondary)}.eyebrow{font-size:12px;line-height:18px;letter-spacing:.02em;color:var(--vts-text-secondary);font-weight:500;margin-bottom:8px}.muted,.small,.helper,.sim-note{color:var(--vts-text-secondary)}.small,.helper,.sim-note{font-size:14px;line-height:22px}.helper{margin-top:8px}.sim-note{margin-top:16px}.notice{font-size:14px;line-height:22px;padding:16px;background:var(--vts-surface-secondary);border-left:3px solid var(--vts-brand);color:var(--vts-text)}.row{display:flex;gap:12px;align-items:center;min-width:0}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.wide{width:100%}.section-head{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:32px}.section-gap{margin-top:32px}
.primary,.secondary,.soft,.danger{border-radius:var(--vts-radius-control);min-height:48px;padding:11px 20px;font-size:16px;line-height:24px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;transition:background var(--vts-motion-control),border-color var(--vts-motion-control)}.primary{background:var(--vts-brand);color:#fff}.primary:hover:not(:disabled){background:var(--vts-brand-hover)}.primary:active:not(:disabled){background:var(--vts-brand-pressed)}.secondary{background:#fff;border-color:var(--vts-control-border)}.secondary:hover:not(:disabled){border-color:var(--vts-text);background:var(--vts-surface-secondary)}.soft{background:var(--vts-brand-subtle);color:var(--vts-brand)}.danger{color:var(--vts-danger);border-color:var(--vts-danger);background:#fff}.text{color:var(--vts-brand);min-height:44px;padding:10px 2px;font-size:14px;line-height:22px;text-decoration:underline;text-underline-offset:4px}.ui-icon{width:20px;height:20px;display:block;flex:none}.primary .ui-icon{filter:brightness(0) invert(1)}.icon-button{width:44px;height:44px;display:grid;place-items:center;flex-shrink:0;background:#fff;border:1px solid var(--vts-divider);border-radius:4px}.icon-button:hover{border-color:var(--vts-control-border)}.icon-button img{width:20px;height:20px}
.card{background:#fff;border:0;border-top:1px solid var(--vts-divider);padding:24px 0;min-width:0}.card .card{padding:20px 0}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.card p+.row,.card h2+.row{margin-top:16px}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:64px;align-items:center}.home-picture{position:relative;background:var(--vts-surface-secondary);min-width:0;overflow:hidden}.home-picture canvas,.home-product-image{width:100%;height:600px;object-fit:contain;display:block;padding:24px}.picture-caption{position:static;background:#fff;padding:20px 0;display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--vts-divider)}.picture-caption strong{display:block;font-size:18px;line-height:26px;margin-bottom:4px}.home-start{border:0;padding:0}.home-start h1{font-size:40px;line-height:48px;margin-bottom:24px}.home-start>.muted{margin-bottom:24px}.home-start .wide{margin-top:12px}.home-start .small{margin-top:24px}.home-meta{margin:24px 0;border-top:1px solid var(--vts-divider);border-bottom:1px solid var(--vts-divider);padding:16px 0}.home-meta>div{display:flex;justify-content:space-between;gap:16px;font-size:14px;line-height:22px;padding:4px 0}.home-meta span{color:var(--vts-text-secondary)}.steps-strip{display:grid;grid-template-columns:repeat(4,1fr);margin-top:48px;border-block:1px solid var(--vts-divider)}.steps-strip div{padding:24px}.steps-strip div+div{border-left:1px solid var(--vts-divider)}.steps-strip b{display:block;margin-bottom:8px;font-size:16px}.steps-strip span{font-size:14px;color:var(--vts-text-secondary)}.home-links{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:48px}.home-links .card{display:flex;align-items:center;gap:16px;text-align:left}.home-links p{font-size:14px;color:var(--vts-text-secondary);margin-top:8px}
.studio-heading{margin-bottom:24px}.studio-heading select{max-width:240px;background:#fff;border:1px solid var(--vts-control-border);border-radius:4px;min-height:44px;padding:8px 32px 8px 12px}.studio{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:40px;align-items:start}.visual{position:sticky;top:calc(var(--header-height,104px) + 24px);min-width:0}.preview-shell{background:var(--vts-surface-secondary);position:relative;overflow:hidden}.visual-toolbar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;gap:12px;background:#fff;border-block:1px solid var(--vts-divider)}.segmented{display:flex;gap:0;padding:0}.segmented button{min-height:44px;padding:10px 12px;font-size:14px;white-space:nowrap;border-bottom:2px solid transparent;color:var(--vts-text-secondary)}.segmented button.active{border-bottom-color:var(--vts-brand);font-weight:600;color:var(--vts-text)}.canvas-wrap{position:relative;height:560px;overflow:hidden;display:grid;place-items:center}.canvas-wrap canvas{position:absolute;inset:0;display:block;width:100%;height:100%;min-width:0;min-height:0;max-width:100%;max-height:100%;object-fit:contain;touch-action:none;cursor:default}.canvas-wrap.adjust canvas{cursor:crosshair}.float-tag{position:absolute;top:16px;left:16px;z-index:1;background:#fff;padding:6px 10px;font-size:12px;color:var(--vts-text-secondary);pointer-events:none}.float-tools{position:absolute;right:16px;top:16px;display:flex;flex-direction:column;gap:8px}.view-scale{padding:6px 4px;text-align:center;background:white;font-size:14px;font-variant-numeric:tabular-nums}.scene-guide{position:absolute;bottom:16px;left:16px;right:16px;text-align:center;font-size:14px;background:#fff;color:var(--vts-text);border:1px solid var(--vts-divider);padding:12px;pointer-events:none}.preview-footer{padding:12px 0;display:flex;gap:16px;justify-content:space-between;align-items:center;border-bottom:1px solid var(--vts-divider);background:#fff}.preview-footer span{font-size:12px;color:var(--vts-text-secondary)}.image-tools{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}.image-tools button{font-size:14px;min-height:44px;padding:10px 12px;border:1px solid var(--vts-control-border);border-radius:4px;background:white;display:flex;align-items:center;gap:8px}.image-tools .ui-icon{width:20px;height:20px}.panel{background:#fff;min-width:0}.panel-top{padding:0 0 24px;border-bottom:1px solid var(--vts-divider)}.panel-top p{font-size:14px;color:var(--vts-text-secondary);margin-top:8px}.param-tabs{display:flex;padding:0;gap:0;border-bottom:1px solid var(--vts-divider);overflow:auto;scrollbar-width:thin}.param-tabs button{font-size:16px;min-height:48px;flex:1;padding:12px 8px;white-space:nowrap;border-bottom:2px solid transparent}.param-tabs button.active{color:var(--vts-brand);border-color:var(--vts-brand);font-weight:600}.parameter-area{padding:24px 0}.field{display:block;margin-bottom:24px;font-size:16px;font-weight:500}.field>span{display:block;margin-bottom:8px}.field input,.field textarea,.field select,select.input{width:100%;min-height:48px;border:1px solid var(--vts-control-border);border-radius:4px;padding:11px 12px;background:#fff;font-size:16px;font-weight:400}.field textarea{min-height:96px;resize:vertical}.options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.choice{min-height:48px;border:1px solid var(--vts-control-border);border-radius:4px;padding:12px 22px 12px 12px;text-align:left;font-size:14px;line-height:22px;position:relative;background:white}.choice:hover:not(:disabled){border-color:var(--vts-text)}.choice.active{border-color:var(--vts-brand);box-shadow:inset 0 0 0 1px var(--vts-brand)}.choice.active:after{content:'';background:var(--vts-brand);width:16px;height:16px;mask:url('/ui-v2/assets/icons/ICON-SELECTED.svg') center/contain no-repeat;position:absolute;right:6px;top:4px}.color-chip{display:inline-block;width:30px;height:30px;border-radius:50%;border:1px solid var(--vts-control-border);vertical-align:middle;margin-right:8px;flex:none}.choice.active .color-chip{outline:2px solid var(--vts-brand);outline-offset:3px}.inline-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.price-bar{padding:24px 0;border-top:1px solid var(--vts-divider)}.amount,.price-bar .amount{font-size:30px;line-height:38px;font-weight:600;font-variant-numeric:tabular-nums}.price-bar .primary{width:100%;margin-top:16px}.price-bar .row{margin-top:8px}.price-bar .row button{flex:1}.price-bar .row.between button{flex:none}.mini-toast{font-size:12px;color:var(--vts-text-secondary);margin-top:8px;text-align:right}
.price-list{width:100%;border-collapse:collapse}.price-list th,.price-list td{padding:16px 8px;border-bottom:1px solid var(--vts-divider);text-align:left;font-size:14px}.price-list th{font-weight:500;color:var(--vts-text-secondary);background:var(--vts-surface-secondary)}.price-list td:last-child,.price-list th:last-child{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.price-list td small{display:block;color:var(--vts-text-secondary);font-size:14px;margin-top:4px}.total-row{display:flex;justify-content:space-between;margin-top:24px;align-items:center}.total-row strong{font-size:30px;font-variant-numeric:tabular-nums}.checkout-grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:48px;align-items:start}.summary-thumb{height:320px;width:100%;object-fit:contain;background:var(--vts-surface-secondary)}.check,.consent{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:22px;margin:16px 0;cursor:pointer;min-height:44px}.check input,.consent input{width:20px;height:20px;accent-color:var(--vts-brand);flex:none;margin-top:3px}.timeline{list-style:none;padding:0;margin:32px 0}.timeline li{padding:0 0 24px 28px;border-left:2px solid var(--vts-divider);position:relative;margin-left:8px;min-height:64px}.timeline li:before{content:'';position:absolute;width:12px;height:12px;background:var(--vts-divider);border:3px solid white;box-shadow:0 0 0 1px var(--vts-divider);left:-9px;top:3px;border-radius:50%}.timeline li.done:before{background:var(--vts-success);box-shadow:0 0 0 1px var(--vts-success)}.timeline li strong{font-size:16px}.timeline li small{font-size:14px;color:var(--vts-text-secondary);display:block;margin-top:4px}.timeline li:last-child{border-color:transparent}.success-mark{width:56px;height:56px;border-radius:50%;border:1px solid var(--vts-success);color:var(--vts-success);display:grid;place-items:center;font-size:28px;margin-bottom:24px}.status-pill{display:inline-block;font-size:14px;padding:4px 8px;border:1px solid currentColor;color:var(--vts-success);background:white;border-radius:4px}.status-pill.gray{color:var(--vts-text-secondary)}.attachment{display:flex;gap:12px;padding:16px 0;border-bottom:1px solid var(--vts-divider);align-items:center}.attachment img{width:24px;height:24px}.attachment small{display:block;margin-top:4px;font-size:14px;color:var(--vts-text-secondary)}
.compare-card canvas{width:100%;height:360px;object-fit:contain;background:var(--vts-surface-secondary)}.compare-card h3{margin:16px 0 8px}.comparison-list{font-size:14px;line-height:22px;margin:16px 0}.comparison-list>div{display:flex;gap:12px;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--vts-divider)}.comparison-list span{color:var(--vts-text-secondary);flex-shrink:0}.comparison-list b{font-weight:500;text-align:right}.empty{padding:64px 24px;text-align:center}.empty h2{margin-bottom:12px}.empty p{margin-bottom:24px;color:var(--vts-text-secondary)}.project-card{display:flex;gap:24px}.project-card canvas{width:140px;height:220px;object-fit:contain;background:var(--vts-surface-secondary)}.project-card>div{flex:1;min-width:0}.project-card h3{margin:4px 0 8px}.project-card .row{margin-top:16px;flex-wrap:wrap}.orders-list{margin-top:24px}.order-row{display:flex;align-items:center;gap:24px;padding:24px 0;border-bottom:1px solid var(--vts-divider)}.order-row>div:first-child{flex:1;min-width:0}.order-row p{font-size:14px;color:var(--vts-text-secondary);margin-top:8px}.order-row strong{font-variant-numeric:tabular-nums}.admin-layout{display:grid;grid-template-columns:var(--vts-admin-sidebar) minmax(0,1fr);gap:32px}.admin-nav{display:flex;flex-direction:column;gap:4px;background:var(--vts-surface-secondary);padding:16px;align-self:start;position:sticky;top:calc(var(--header-height,104px) + 24px)}.admin-nav button,.admin-nav a{text-align:left;border-radius:4px;padding:12px;font-size:14px;line-height:22px;min-height:48px}.admin-nav .active{background:var(--vts-brand-subtle);color:var(--vts-brand);font-weight:600;border-left:3px solid var(--vts-brand)}.admin-nav .nav-caption{font-size:12px;line-height:18px;color:var(--vts-text-secondary);padding:16px 12px 8px}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:24px;border-bottom:1px solid var(--vts-divider)}.metric-grid .card{border:0;padding:0 0 24px}.metric-grid strong{display:block;font-size:30px;margin-top:8px;font-variant-numeric:tabular-nums}.table-scroll{overflow-x:auto;max-width:100%}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:16px;text-align:left;border-bottom:1px solid var(--vts-divider);font-size:14px;line-height:22px;height:56px}.admin-table th{color:var(--vts-text-secondary);font-weight:500;background:var(--vts-surface-secondary)}.admin-table .numeric{text-align:right;font-variant-numeric:tabular-nums}.admin-table .text{min-height:40px}.bubble{padding:16px;background:var(--vts-surface-secondary);border-left:2px solid var(--vts-divider);margin:16px 0;font-size:16px;line-height:24px}.bubble.mine{background:var(--vts-brand-subtle);border-color:var(--vts-brand);margin-left:32px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin:24px 0}.detail-grid>div{padding:16px 0;border-bottom:1px solid var(--vts-divider);font-size:14px;line-height:22px;overflow-wrap:anywhere}.detail-grid span{display:block;color:var(--vts-text-secondary);margin-bottom:4px}.document-preview{width:100%;height:auto;border:1px solid var(--vts-divider);background:white}.modal-actions{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}.modal-actions>button{flex:1;min-width:130px}
dialog{border:1px solid var(--vts-divider);border-radius:4px;padding:0;box-shadow:0 16px 64px #0002;width:min(740px,calc(100vw - 48px));max-height:88dvh;color:var(--vts-text);background:#fff;overflow:auto}dialog::backdrop{background:var(--vts-scrim)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 32px;border-bottom:1px solid var(--vts-divider);position:sticky;top:0;z-index:5;background:white}.dialog-head h2{outline:none}#dialog-body{min-width:0;padding:24px 32px}#dialog-body .field{margin-top:16px}#dialog-body .notice{margin-top:16px}dialog.task-drawer{width:var(--vts-drawer-width);max-width:100vw;height:100dvh;max-height:100dvh;inset:0 0 0 auto;margin:0;border-radius:0;border-right:0;animation:drawer-in var(--vts-motion-panel) ease-out}dialog.task-drawer .dialog-head{padding:24px}dialog.task-drawer #dialog-body{padding:24px}body:has(dialog[open]){overflow:hidden}@keyframes drawer-in{from{transform:translateX(32px);opacity:0}to{transform:translateX(0);opacity:1}}
#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity var(--vts-motion-control),transform var(--vts-motion-control);background:var(--vts-text);color:white;padding:16px 24px;border-radius:4px;z-index:100;max-width:min(620px,calc(100vw - 32px));font-size:14px;line-height:22px}#toast.visible{opacity:1;transform:translate(-50%,0)}input[type=range]{accent-color:var(--vts-brand);min-height:44px}summary{cursor:pointer;min-height:44px;padding:10px 0;font-size:16px}details[open]>summary{margin-bottom:16px}.print-only{display:none}
.render-card{margin-top:24px;padding:24px 0;border-top:1px solid var(--vts-divider);background:white}.render-card img{width:100%}.render-card .render-state{margin:12px 0;color:var(--vts-text-secondary);font-size:14px}.render-card textarea{min-height:96px}.render-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}.render-card .row{flex-wrap:wrap}.render-settings{margin-top:24px}.render-settings .field{margin-bottom:8px}.render-template{margin:16px 0;font-size:14px;line-height:22px}.render-template p{padding:16px;background:var(--vts-surface-secondary)}.candidate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.candidate-tile{padding:0;overflow:hidden;border:1px solid var(--vts-control-border);text-align:left;background:white}.candidate-tile img{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:var(--vts-surface-secondary)}.candidate-tile span{display:block;padding:12px;font-size:14px;line-height:22px}.candidate-image{width:100%;height:auto;display:block}.compare-card .candidate-image{margin-top:16px}.source-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0}.source-actions small{display:block;color:var(--vts-text-secondary);margin-top:4px;overflow-wrap:anywhere;font-size:14px}.source-actions strong{font-size:16px}.product-reference-image{display:block;max-width:100%;height:auto;margin:24px auto}.position-controls{margin-top:16px;padding:24px 0;border-block:1px solid var(--vts-divider);background:white;display:grid;grid-template-columns:1fr auto;align-items:end;gap:12px}.position-controls .field{margin:0}.position-controls p{grid-column:1/-1}.nudge-actions{display:flex;gap:8px}.nudge-actions button{min-width:44px;padding:10px;font-size:20px}
.journey-context,.journey-nav{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:24px 0;padding:16px 0;background:white;border-block:1px solid var(--vts-divider)}.journey-context>a,.journey-nav>a{padding:10px 4px;min-height:44px;display:inline-flex;align-items:center;color:var(--vts-brand);font-size:14px}.journey-context{justify-content:space-between}#app[data-page=custom]>.journey-context{margin-top:0}.journey-page{max-width:1440px;margin:auto}.journey-page>.section-head{align-items:flex-start}.journey-page>.section-head .muted{margin-top:16px;max-width:740px}.journey-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;align-items:start}.journey-page h2,.journey-page h3{margin:12px 0}.journey-page .field{margin-top:16px}.journey-page video,.journey-grid video{width:100%;max-height:420px;background:#161616}.journey-empty{padding:24px 0;color:var(--vts-text-secondary)}.reference-image{position:relative;width:fit-content;max-width:100%;margin-inline:auto;isolation:isolate;overflow:hidden;background:var(--vts-surface-secondary)}.reference-image img{width:auto;height:auto;max-width:100%;max-height:420px;display:block}#dialog-body .reference-image img{max-height:360px}.annotation{position:absolute;border:2px solid var(--vts-brand);background:#0f2d4d12;pointer-events:none}.annotation b{display:block;width:24px;height:24px;background:var(--vts-brand);color:white;text-align:center}.file-button{display:inline-flex;position:relative;overflow:hidden;cursor:pointer;margin:12px 0;min-height:48px;align-items:center}.file-button input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.file-button:focus-within{outline:3px solid var(--vts-brand);outline-offset:4px}.quantity{width:80px;min-height:48px;padding:10px;margin:8px;border:1px solid var(--vts-control-border);border-radius:4px}.catalog-tile{display:flex;flex-direction:column;gap:8px}.catalog-tile>.row{margin-top:auto}.community-cover{width:100%;max-height:360px;object-fit:contain;background:var(--vts-surface-secondary)}.community-cover+p{margin-top:16px}.tour-image{width:100%;max-height:480px;object-fit:contain}.tour-hotspot{position:absolute;transform:translate(-50%,-50%);padding:10px;border-radius:50%;border:2px solid white;background:var(--vts-brand);color:white;min-width:44px;min-height:44px}.structure-scene{height:350px;perspective:850px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--vts-surface-secondary);margin-top:16px}.structure-stack{width:150px;height:230px;transform-style:preserve-3d;transform:rotateY(-28deg)}.structure-layer{position:absolute;inset:0;background:#545f65ee;border:3px solid #b0b9bf;color:white;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;line-height:22px;backface-visibility:visible}.structure-layer:nth-child(2){background:#bfa57beb;color:#161616}.structure-layer:nth-child(3){background:#ebe8e0ed;color:#161616}.recovery-code{width:100%;font-family:monospace;padding:16px;font-size:16px}.journey-page .order-row{flex-wrap:wrap}.journey-page .order-row>div:first-child{min-width:0;flex:1 1 250px;overflow-wrap:anywhere}.craft-viewer{height:clamp(320px,55vh,600px);width:100%;overflow:hidden;touch-action:none}.craft-viewer canvas{width:100%;height:100%;display:block}.pattern-extracted{max-height:350px;max-width:100%;display:block;margin:auto}.match-thumb{width:72px;height:92px;object-fit:contain}.reference-choice{display:flex;flex-direction:column;gap:12px}.reference-choice img{width:100%;height:160px;object-fit:contain;background:var(--vts-surface-secondary)}#x-community-feed p{white-space:pre-wrap;overflow-wrap:anywhere}#x-feed-more{margin:24px auto;display:block}.craft-controls .field{margin-bottom:16px}.craft-controls input[type=range]{min-height:44px;padding:0}.craft-controls .inline-fields{grid-template-columns:1fr;gap:0}.craft-controls .row{gap:8px}.craft-controls button{font-size:14px}.craft-workbench{display:grid;gap:32px}.component-editor,.photo-transform{border-block:1px solid var(--vts-divider);padding:16px 0;margin-top:16px;background:#fff}.component-editor h3{margin:0}.component-editor .inline-fields{gap:16px}.component-editor input{min-width:0;width:100%}.component-editor select{max-width:100%}.photo-transform summary{font-weight:600}.panorama-host{height:min(55vh,480px);position:relative;overflow:hidden;background:#111}.panorama-host canvas{width:100%;height:100%}.panorama-host .tour-hotspot[hidden]{display:none}.dual-confirm{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-block:24px}.dual-confirm img{width:100%;height:260px;object-fit:contain;background:var(--vts-surface-secondary)}.dual-confirm span{display:block;margin-top:12px;font-size:14px}
/* Product rows preserve their own identity, quantity and result. */
.shop-row{display:grid;grid-template-columns:112px minmax(0,1fr);gap:16px;padding:24px 0;border-bottom:1px solid var(--vts-divider)}.shop-media{width:112px;height:156px;display:grid;place-items:center;background:var(--vts-surface-secondary);padding:8px}.shop-media img{width:100%;height:100%;object-fit:contain}.shop-media .ui-icon{width:32px;height:32px}.shop-row h3{margin:0 0 8px}.shop-row p{font-size:14px;line-height:22px;margin-bottom:12px;color:var(--vts-text-secondary)}.shop-row .quantity{margin:0;max-width:72px}.shop-row .row{flex-wrap:wrap;gap:8px}.shop-row .primary{width:100%;margin-top:12px}.shop-result{margin-top:12px;font-size:14px;color:var(--vts-success)}.shop-row .shop-error{color:var(--vts-danger)}.shop-row details{margin-top:8px}.shop-row summary{font-size:14px}.gallery-strip{display:flex;gap:8px;margin:16px 0}.gallery-strip button{border:1px solid var(--vts-control-border);width:72px;height:88px;padding:4px}.gallery-strip img{width:100%;height:100%;object-fit:contain}.gallery-strip button.active{border:2px solid var(--vts-brand)}.option-image{display:block;width:100%;height:112px;object-fit:contain;background:var(--vts-surface-secondary);margin-bottom:8px}.options .choice:has(.option-image){padding:8px;text-align:center}.layout-toggle{display:none}.drawer-cart-link{display:flex;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--vts-divider);font-size:14px}.drawer-cart-link a{color:var(--vts-brand);text-decoration:underline;text-underline-offset:4px}
@media(min-width:1500px){.canvas-wrap{height:640px}.studio{grid-template-columns:minmax(0,1fr) 440px}}
@media(min-width:900px){.craft-workbench{grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);align-items:start}.craft-viewer{height:480px;position:sticky;top:calc(var(--header-height,104px) + 24px)}}
@media(min-width:768px) and (max-width:1199px){.topbar{padding:16px 24px;flex-wrap:wrap;gap:16px}.desktop-nav{order:4;flex-basis:100%;margin-left:0;border-top:1px solid var(--vts-divider);padding-top:8px}.header-tools{margin-left:auto}.experience-badge{margin-left:auto}.header-tools{margin-left:0}#app{padding:24px}.hero-grid{grid-template-columns:minmax(0,1fr) 340px;gap:32px}.home-start h1{font-size:32px;line-height:40px}.home-product-image{height:540px}.studio{grid-template-columns:minmax(0,1fr) 320px;gap:24px}.visual{top:calc(var(--header-height,162px) + 24px)}.canvas-wrap{height:460px}.visual-toolbar{flex-wrap:wrap}.checkout-grid{grid-template-columns:minmax(0,1fr) 320px;gap:24px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-layout{grid-template-columns:200px minmax(0,1fr);gap:24px}.admin-nav{top:calc(var(--header-height,162px) + 24px)}.home-links{gap:24px}.home-links .card{align-items:flex-start}}
@media(max-width:767px){.topbar{min-height:96px;padding:12px 16px;gap:8px;align-items:center}.brand{flex:1;min-width:0;gap:6px}.brand strong{font-size:18px;line-height:26px;max-width:230px;overflow-wrap:normal}.logo{height:20px;gap:6px}.logo .brand-symbol{width:20px;height:20px}.logo .brand-wordmark{width:90px;height:18px}.experience-badge{display:none}.desktop-nav{display:none}.header-tools{gap:4px}.header-tools .icon-button{border:0}.header-tools .message-link{display:none}.avatar{flex:none}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:40;background:white;border-top:1px solid var(--vts-divider);padding:4px 16px max(8px,env(safe-area-inset-bottom));gap:16px}.mobile-nav a{min-height:52px;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:12px;color:var(--vts-text-secondary);border-top:2px solid transparent}.mobile-nav a img{width:22px;height:22px}.mobile-nav a.active{border-top-color:var(--vts-brand);color:var(--vts-brand);font-weight:600}#app{padding:24px 16px 104px}h1,.studio-heading h1{font-size:24px;line-height:32px}h2{font-size:22px;line-height:30px}h3{font-size:17px;line-height:25px}.section-head{flex-wrap:wrap;align-items:flex-start;gap:16px;margin-bottom:24px}.section-head .primary,.section-head .secondary{font-size:14px;padding:11px 12px}.hero-grid{display:flex;flex-direction:column;gap:32px;align-items:stretch}.home-picture{order:0}.home-product-image{height:420px;padding:16px}.home-start{order:1}.home-start h1{font-size:28px;line-height:36px;margin-bottom:16px}.home-start>.muted{margin-bottom:16px}.picture-caption{align-items:flex-start;padding:16px 0}.picture-caption strong{font-size:17px;line-height:25px}.picture-caption .secondary{font-size:14px;padding:10px 12px}.steps-strip{grid-template-columns:1fr 1fr;margin-top:32px}.steps-strip div{padding:20px 12px}.steps-strip div:nth-child(3){border-left:0}.steps-strip div:nth-child(n+3){border-top:1px solid var(--vts-divider)}.home-links{grid-template-columns:1fr;gap:0;margin-top:32px}.studio-heading>.row{width:100%;justify-content:space-between}.studio-heading select{max-width:70%}.studio{display:flex;flex-direction:column;gap:24px}.visual{position:static;width:100%;display:contents}.preview-shell{width:100%;order:0;position:sticky;top:var(--header-height,96px);z-index:10}.canvas-wrap,.canvas-wrap.has-photo{height:300px}.visual-toolbar{padding:8px;gap:8px}.segmented button{padding:8px;font-size:14px}.float-tag{top:8px;left:8px}.float-tools{top:8px;right:8px;gap:4px}.preview-footer{padding:8px 0;font-size:12px;gap:8px}.studio>.panel{width:100%;order:2}.visual>.image-tools{order:1;margin:0}.visual>.source-actions,.visual>.photo-transform,.visual>.position-controls,.visual>.render-card,.visual>.sim-note{order:3;width:100%;margin-top:0}.image-tools{gap:8px}.image-tools button{padding:10px;font-size:14px}.panel-top{padding:16px 0}.panel-top h2{font-size:22px}.param-tabs{position:static}.parameter-area{padding:24px 0}.panel.collapsed .param-tabs,.panel.collapsed .parameter-area,.panel.collapsed .price-bar{display:none}.layout-toggle{display:inline-flex}.price-bar{padding:24px 0}.small,.helper,.sim-note,.notice{font-size:14px;line-height:22px}.card{padding:24px 0}.checkout-grid{grid-template-columns:1fr;gap:24px}.cards{grid-template-columns:1fr}.compare-card canvas{height:320px}.project-card{gap:16px}.project-card canvas{width:110px;height:200px}.project-card .row{gap:8px}.project-card button{font-size:14px;padding:10px 12px}.admin-layout{grid-template-columns:1fr;gap:24px}.admin-nav{flex-direction:row;flex-wrap:wrap;position:static;padding:8px;gap:4px}.admin-nav .nav-caption{flex-basis:100%;padding:8px}.admin-nav button,.admin-nav a{font-size:14px;min-height:48px;padding:12px}.metric-grid{gap:16px}.metric-grid strong{font-size:26px}.order-row{flex-wrap:wrap;gap:16px}.order-row>div:first-child{flex-basis:100%}.order-row strong{overflow-wrap:anywhere}.price-list th,.price-list td{padding:16px 4px}.detail-grid{gap:0 16px}.detail-grid>div{font-size:14px;padding:12px 0}dialog{width:calc(100vw - 24px);max-height:92dvh;border-radius:8px 8px 0 0}.dialog-head{padding:16px}.dialog-head h2{font-size:22px;line-height:30px}#dialog-body{padding:16px}dialog.task-drawer{width:100vw;border:0}dialog.task-drawer .dialog-head,dialog.task-drawer #dialog-body{padding:16px}#toast{bottom:88px;width:max-content;max-width:calc(100vw - 32px)}.journey-grid{grid-template-columns:1fr;gap:24px}.journey-page>.section-head{display:block}.journey-page>.section-head>a{margin-top:16px}.journey-context,.journey-nav{padding:12px 0;gap:8px}.journey-page .inline-fields{grid-template-columns:1fr}.journey-page .order-row{align-items:flex-start}.journey-page .amount{font-size:28px}.source-actions{align-items:flex-start}.source-actions .text{flex:none}.position-controls{grid-template-columns:1fr}.nudge-actions button{flex:1}.dual-confirm{gap:12px}.dual-confirm img{height:220px}.shop-row{grid-template-columns:96px minmax(0,1fr)}.shop-media{width:96px;height:136px}}
@media(max-width:374px){.header-tools{gap:0}.topbar{gap:4px}.header-tools .icon-button{width:44px}.brand strong{max-width:185px}.visual-toolbar{flex-wrap:wrap}.canvas-wrap{height:260px}.inline-fields{gap:12px}.float-tag{max-width:60%;font-size:12px}.dual-confirm{grid-template-columns:1fr}}
@media(pointer:coarse){.admin-table .text{min-height:48px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media(prefers-contrast:more){.small,.muted,.helper,.sim-note{color:#363636}.card,.admin-table th,.admin-table td{border-color:#747b83}}
@media print{.topbar,.mobile-nav,#app,#toast{display:none}dialog{display:block;position:static;max-height:none;width:100%;border:0;box-shadow:none;padding:0}dialog .dialog-head,dialog .modal-actions,dialog .notice{display:none}.document-preview{border:0}}
.cart-product{width:104px;height:152px;object-fit:contain;background:var(--vts-surface-secondary);flex:none}.media-label{display:grid;place-items:center;font-size:14px;color:var(--vts-text-secondary);text-align:center;padding:8px}.cart-row>div:nth-child(2){flex:1;min-width:0}.render-state[data-state=FAILED]{color:var(--vts-danger)}.render-state[data-state=UNKNOWN]{color:var(--vts-warning)}
@media(max-width:767px){.canvas-wrap,.canvas-wrap.has-photo{height:clamp(200px,30svh,300px)}.panel :is(button,input,select,textarea){scroll-margin-top:calc(var(--header-height,96px) + 420px)}.cart-row{display:grid;grid-template-columns:88px minmax(0,1fr)}.cart-row .cart-product{width:88px;height:132px}.cart-row>strong{grid-column:2}.cart-row>.row{grid-column:1/-1}.cart-row>div:nth-child(2){width:100%}}
.admin-table{min-width:680px}
@media(max-width:1199px){.table-scroll:before{content:'左右滑动查看完整表格';display:block;padding:12px 0;color:var(--vts-text-secondary);font-size:14px}}

dialog.task-drawer.closing{animation:drawer-out var(--vts-motion-panel) ease-in both}@keyframes drawer-out{to{transform:translateX(32px);opacity:0}}
/* Enterprise source pack: exact product images and independent source records. */
.source-products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:24px 0}.source-product{display:flex;align-items:center;gap:24px;padding:24px;border:1px solid var(--color-border,#d8dbdf);background:#fff;text-align:left;color:#161616}.source-product img{width:35%;height:260px;object-fit:contain}.source-product strong{font-size:24px}.source-product small{display:block;color:#5f6368;margin-top:12px}.pack-library{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:24px}.pack-asset{min-width:0;border-bottom:1px solid #d8dbdf;padding-bottom:20px;display:flex;flex-direction:column;gap:10px}.pack-asset img{height:200px;object-fit:contain;width:100%;background:#f5f5f4}.pack-asset small,.pack-asset .small{font-size:13px;overflow-wrap:anywhere}.asset-hash{font-size:11px;overflow-wrap:anywhere}.pack-hardware{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.pack-hardware .choice{min-width:0;overflow-wrap:anywhere}.pack-steps{list-style:none;padding:0}.pack-steps li{display:flex;align-items:center;gap:24px;justify-content:space-between;border-bottom:1px solid #d8dbdf;padding:16px 0}.pack-steps li button{flex:none}.file-type{font-size:30px;padding:50px 0;text-align:center;background:#f5f5f4}.choice img.option-image{object-fit:contain}.pack-asset details{margin-top:auto}
@media(max-width:650px){.source-products{grid-template-columns:1fr;gap:16px}.source-product img{height:190px}.pack-library{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.pack-asset img{height:150px}.pack-steps li{gap:12px}.source-product strong{font-size:22px}}

.render-card{scroll-margin-top:calc(var(--header-height,100px) + 16px)}.render-result-image{max-height:60dvh;object-fit:contain;background:var(--vts-surface-secondary)}

.v-action{gap:8px}.image-tools button .v-icon{margin:0}.v-notice>.v-icon{margin-right:8px;vertical-align:-4px}.param-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:7px}.face-switch button{display:inline-flex;align-items:center;justify-content:center;gap:7px}.component-editor .nudge-actions button{min-width:44px;min-height:44px}.v-action>img.option-image{pointer-events:auto}

summary.v-action{justify-content:flex-start}summary.v-action>span:not(.v-icon){margin-left:auto}
