.pc-app{--pc-bg:#fff;--pc-soft:#f7f5fc;--pc-line:#e7e2f0;--pc-text:#262239;--pc-muted:#716a82;--pc-accent:#7955e8;--pc-on:#fff;color:var(--pc-text);font:400 16px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;max-width:1240px;margin:32px auto 48px;min-width:0}
html[data-td-theme="dark"] .pc-app,.td-theme-dark .pc-app{--pc-bg:#171c29;--pc-soft:#111623;--pc-line:#30374b;--pc-text:#eef1fb;--pc-muted:#b7bfd4;--pc-accent:#aa8cff;--pc-on:#161023}
.pc-app *{box-sizing:border-box}.pc-app [hidden]{display:none!important}.pc-app h1,.pc-app h2,.pc-app p{margin-top:0;color:inherit}.pc-app :is(button,input,select,textarea){font:inherit}.pc-app button{cursor:pointer}.pc-app :is(input,select,textarea,button):focus-visible{outline:3px solid var(--pc-accent);outline-offset:3px}.pc-app a{color:var(--pc-accent)}
.pc-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:30px}.pc-eyebrow{display:block;font-size:14px;font-weight:700;letter-spacing:1.7px;color:var(--pc-accent);margin-bottom:10px}.pc-heading h1{font-size:clamp(26px,3vw,38px);font-weight:750;line-height:1.2;letter-spacing:-.8px;margin-bottom:13px}.pc-heading p{margin-bottom:0;color:var(--pc-muted)}.pc-format{white-space:nowrap;border:1px solid var(--pc-line);border-radius:14px;padding:12px 18px;font-size:14px;font-weight:650;background:var(--pc-bg)}.pc-format span{color:var(--pc-accent);margin:0 8px}
.pc-layout{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:24px;align-items:start}.pc-card{background:var(--pc-bg);border:1px solid var(--pc-line);border-radius:22px;padding:28px;min-width:0;box-shadow:0 14px 32px -30px #34234866}.pc-section-head{display:flex;gap:14px;align-items:start;margin-bottom:24px}.pc-section-head h2{font-size:21px;line-height:1.35;margin-bottom:4px;font-weight:700}.pc-section-head p{font-size:14px;color:var(--pc-muted);margin:0}.pc-step{display:flex;align-items:center;justify-content:center;border-radius:11px;background:var(--pc-soft);color:var(--pc-accent);width:38px;height:38px;flex:0 0 38px;font-weight:650;font-size:14px}
.pc-drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:270px;gap:8px;border:2px dashed var(--pc-line);background:var(--pc-soft);border-radius:16px;text-align:center;padding:25px;cursor:pointer;transition:border-color .2s}.pc-drop:hover,.pc-drop.pc-drag{border-color:var(--pc-accent)}.pc-drop svg{color:var(--pc-accent);margin-bottom:12px}.pc-drop strong{font-size:18px}.pc-drop span{color:var(--pc-muted);font-size:14px}.pc-drop small{color:var(--pc-muted);font-size:14px;margin-top:9px}.pc-drop input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.pc-drop:focus-within{outline:3px solid var(--pc-accent);outline-offset:4px}.pc-drop input:disabled{cursor:not-allowed}.pc-file-status{margin:16px 0;font-size:14px;color:var(--pc-muted);overflow-wrap:anywhere}.pc-preview{height:300px;border-radius:16px;background:var(--pc-soft);position:relative;overflow:hidden}.pc-preview canvas{width:100%;height:100%;display:block;touch-action:pan-y}.pc-preview>span{position:absolute;bottom:12px;left:10px;right:10px;text-align:center;font-size:14px;color:var(--pc-muted);pointer-events:none}.pc-metrics{display:grid;grid-template-columns:1.5fr 1fr;border-bottom:1px solid var(--pc-line);gap:12px;padding:20px 0}.pc-metrics small,.pc-result-stats small{display:block;font-size:14px;color:var(--pc-muted);margin-bottom:4px}.pc-metrics strong{font-size:15px}.pc-small{font-size:14px;line-height:1.7;color:var(--pc-muted)!important;margin:15px 0}.pc-privacy{display:flex;gap:10px;align-items:start;font-size:14px;line-height:1.7;color:var(--pc-muted);border-top:1px solid var(--pc-line);padding-top:20px;margin-top:22px}.pc-privacy svg{flex:0 0 20px;color:var(--pc-accent)}
.pc-app fieldset{padding:0;margin:0;min-width:0;border:0}.pc-app fieldset:disabled{opacity:.55}.pc-label{display:block;font-size:14px;font-weight:650;margin:16px 0 8px}.pc-label[for="pc-material"]{margin-top:0}.pc-app :is(select,input[type="number"],textarea){width:100%;max-width:100%;min-width:0;border:1px solid var(--pc-line);border-radius:10px;background:var(--pc-soft);color:var(--pc-text);padding:11px 12px;line-height:1.5;min-height:47px}.pc-app textarea{resize:vertical;min-height:85px}.pc-segments{display:flex;gap:8px}.pc-segments>label{flex:1;cursor:pointer;position:relative;min-width:0}.pc-segments input{position:absolute;opacity:0;width:1px;height:1px}.pc-segments span{display:block;text-align:center;border:1px solid var(--pc-line);padding:10px 7px;border-radius:10px;font-size:14px}.pc-segments input:checked+span{border-color:var(--pc-accent);color:var(--pc-accent);background:var(--pc-soft);box-shadow:inset 0 0 0 1px var(--pc-accent)}.pc-segments input:focus-visible+span{outline:3px solid var(--pc-accent);outline-offset:3px}.pc-colours{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}.pc-swatch{display:flex;align-items:center;gap:7px;font-size:14px!important;padding:7px 10px;border:1px solid var(--pc-line);background:var(--pc-bg);color:var(--pc-text);border-radius:9px;min-height:40px}.pc-swatch i{display:block;width:19px;height:19px;border-radius:50%;box-shadow:inset 0 0 0 1px #0003;flex-shrink:0}.pc-swatch[aria-pressed="true"]{border-color:var(--pc-accent);box-shadow:inset 0 0 0 1px var(--pc-accent)}.pc-two{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}.pc-two .pc-label{margin-top:0}.pc-confirm{display:flex;align-items:start;gap:10px;font-size:14px;line-height:1.65;margin:20px 0}.pc-confirm input{margin-top:4px;flex:0 0 18px;width:18px;height:18px;accent-color:var(--pc-accent)}.pc-optional{font-weight:400;color:var(--pc-muted);font-size:14px;margin-left:5px}.pc-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;border:1px solid transparent;min-height:48px;border-radius:12px;padding:12px 20px;font-weight:650!important;font-size:14px!important}.pc-primary{width:100%;margin-top:20px;background:var(--pc-accent);color:var(--pc-on)}.pc-primary:hover{filter:brightness(1.06)}.pc-secondary{background:var(--pc-soft);color:var(--pc-text);border-color:var(--pc-line)}.pc-button:disabled{cursor:not-allowed;opacity:.5}.pc-text-button{border:0;background:none;padding:5px 0;color:var(--pc-accent);font-size:14px!important;text-align:left;text-decoration:underline;text-underline-offset:3px}
.pc-alert{padding:14px 18px;border:1px solid var(--pc-line);border-radius:12px;margin-bottom:22px;font-size:14px;overflow-wrap:anywhere}.pc-info{background:var(--pc-soft)}.pc-error{background:#fff2f2;color:#992f42;border-color:#edb8c5}html[data-td-theme="dark"] .pc-app .pc-error{background:#341d29;color:#ffc5d0;border-color:#71364a}.pc-result{display:grid;grid-template-columns:1fr 1.35fr;gap:28px;margin-top:24px;border-color:var(--pc-accent)}.pc-result h2{font-size:24px;margin-bottom:12px}.pc-result p{font-size:14px;color:var(--pc-muted)}.pc-result small{overflow-wrap:anywhere;color:var(--pc-muted)}.pc-price{font-size:38px;font-weight:750;line-height:1.3;letter-spacing:-1px;color:var(--pc-accent);margin-bottom:20px}.pc-result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.pc-result-stats strong{font-size:15px;display:block}.pc-history{margin-top:34px}.pc-history-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px}.pc-history-head h2{font-size:22px;margin:0}.pc-history-item{display:flex;justify-content:space-between;align-items:center;gap:15px;border:1px solid var(--pc-line);background:var(--pc-bg);border-radius:12px;padding:14px 17px;margin:8px 0;width:100%;color:var(--pc-text);text-align:left}.pc-history-item strong{display:block;font-size:14px;overflow-wrap:anywhere}.pc-history-item small{font-size:14px;color:var(--pc-muted);display:block}.pc-history-item>span:first-child{min-width:0}.pc-history-item>span:last-child{font-size:14px;flex-shrink:0;max-width:40%}.pc-footnote{margin-top:28px;padding-top:24px;border-top:1px solid var(--pc-line);color:var(--pc-muted);font-size:14px}.pc-footnote p{font-size:14px;line-height:1.8;margin:10px 0 0}.pc-sr{position:absolute!important;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}
@media(max-width:800px){.pc-app{margin:20px auto 32px}.pc-heading{align-items:start}.pc-heading p{font-size:14px}.pc-format{display:none}.pc-layout{grid-template-columns:1fr}.pc-card{padding:22px}.pc-result{grid-template-columns:1fr}.pc-drop{min-height:210px}.pc-preview{height:270px}.pc-history-head h2{font-size:19px}}
@media(max-width:420px){.pc-card{padding:17px;border-radius:16px}.pc-heading h1{font-size:27px}.pc-section-head h2{font-size:19px}.pc-drop{padding:20px 12px}.pc-drop strong{font-size:16px}.pc-result-stats{grid-template-columns:1fr 1fr;gap:14px}.pc-result-stats>span:last-child{grid-column:1/-1}.pc-price{font-size:34px}.pc-segments span{font-size:14px}.pc-swatch{padding:6px 8px}.pc-metrics{grid-template-columns:1fr}.pc-history-item{padding:12px}.pc-eyebrow{font-size:14px;letter-spacing:1.3px}}

/* Readability 1.1.0: controls and primary text 16px, secondary information 14px. */
.pc-app.pc-app{font-size:16px;line-height:1.7;overflow-wrap:anywhere}
.pc-app.pc-app p,.pc-app.pc-app li{font-size:16px;line-height:1.7}
.pc-app.pc-app :is(input,select,textarea){font-size:16px;line-height:1.5}
.pc-app.pc-app .pc-label,.pc-app.pc-app .pc-confirm,.pc-app.pc-app .pc-segments span{font-size:16px;line-height:1.55}
.pc-app.pc-app :is(.pc-button,.pc-swatch,.pc-text-button){font-size:16px!important;line-height:1.5;white-space:normal;min-height:44px}
.pc-app.pc-app :is(.pc-section-head p,.pc-small,.pc-privacy,.pc-optional,.pc-footnote p,.pc-result p,.pc-history-item small){font-size:14px;line-height:1.65}
.pc-app.pc-app small{font-size:14px;line-height:1.6}
.pc-app.pc-app :is(.pc-metrics strong,.pc-result-stats strong,.pc-history-item strong,.pc-history-item>span:last-child){font-size:16px;line-height:1.5}
.pc-app .pc-segments{flex-wrap:wrap}.pc-app .pc-segments>label{flex:1 1 145px}
.pc-app .pc-history-item{flex-wrap:wrap}.pc-app .pc-history-item>span:last-child{flex-shrink:1}
.pc-app .pc-preview>span{background:var(--pc-soft);padding:5px;border-radius:6px}
.pc-app .pc-result-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
@media(max-width:420px){.pc-app .pc-result-stats{grid-template-columns:1fr}.pc-app .pc-result-stats>span:last-child{grid-column:auto}.pc-app .pc-history-item>span:last-child{max-width:100%}}
.pc-app.pc-app .ts-bridge-button{font-size:16px;line-height:1.5;min-height:48px;white-space:normal}
.pc-app.pc-app .ts-bridge-message{font-size:14px;line-height:1.6}

/* Materials are browsable before upload. No machine names or controls in the public UI. */
.pc-app .pc-material-info{margin:16px 0 22px;padding:18px 20px;border:1px solid var(--pc-line,#343747);border-radius:14px;background:var(--pc-soft,rgba(128,110,220,.08));overflow-wrap:anywhere}
.pc-app .pc-material-info strong{display:block;font-size:18px;line-height:1.4;margin-bottom:6px}
.pc-app .pc-material-info>span{display:block;font-size:14px;line-height:1.6;margin-bottom:10px}
.pc-app .pc-material-info p{margin:0;font-size:16px;line-height:1.7;white-space:pre-line}
.pc-app .pc-plate-switch{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:12px 0}
.pc-app .pc-plate-switch select{flex:1;min-width:140px}
.pc-app .pc-plate-list{padding:12px 16px;border:1px solid var(--pc-line,#343747);border-radius:12px;margin-top:12px}
.pc-app .pc-plate-list p{margin:4px 0;font-size:14px;line-height:1.65}
.pc-app .pc-swatch i{position:relative;overflow:hidden;flex-shrink:0}
.pc-app .pc-swatch .pc-sample-silk::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 25%,#fff9 48%,transparent 70%)}
.pc-app .pc-swatch .pc-sample-glitter::after{content:"";position:absolute;inset:0;background:radial-gradient(circle,#fffa 1px,transparent 1.5px);background-size:5px 5px}
.pc-app [data-pc-material]{font-size:16px;width:100%;min-height:48px;border:1px solid var(--pc-line);border-radius:12px;padding:10px 12px;background:var(--pc-bg);color:var(--pc-text)}

/* Full mesh viewer 1.2.2 */
.pc-app .pc-preview{height:auto;min-height:0;display:block;padding:0;overflow:hidden}
.pc-app .pc-preview[hidden]{display:none}
.pc-app .pc-viewer-host{width:100%;height:360px;position:relative;touch-action:none}
.pc-app .pc-viewer-host canvas{display:block;width:100%;height:100%;position:static}
.pc-app .pc-viewer-status,.pc-app .pc-viewer-caption{position:static;margin:10px 14px;font-size:13px;line-height:1.5;color:inherit}
.pc-app .pc-viewer-tools{display:flex;flex-wrap:wrap;gap:8px;padding:0 14px}
.pc-app .pc-viewer-tools button{min-height:42px;min-width:42px;padding:8px 12px;background:transparent;color:inherit;border:1px solid currentColor;border-radius:9px;cursor:pointer;font:inherit}
.pc-app .pc-viewer-tools button:disabled{opacity:.45;cursor:default}
.pc-app .pc-viewer-tools button[hidden]{display:none}
@media(max-width:600px){.pc-app .pc-viewer-host{height:290px}}

.pc-app .pc-segments[hidden],.pc-app .pc-colours[hidden]{display:none}
.pc-app .pc-segments{align-items:stretch}.pc-app .pc-segments span{white-space:normal;height:100%;box-sizing:border-box}

.pc-history-row{margin-bottom:12px}.pc-history-row .pc-history-item{width:100%;margin-bottom:0}.pc-history-actions{display:flex;gap:10px;flex-wrap:wrap;padding:8px 12px}.pc-history-actions button{font:inherit;color:inherit;background:transparent;border:1px solid currentColor;border-radius:8px;padding:6px 12px;cursor:pointer}.pc-history-actions button:disabled{opacity:.5;cursor:wait}
