:root{
  --bg:#0b0e13;--panel:#141922;--panel2:#1b222d;--text:#f7f9fc;--muted:#a5afbd;
  --border:#293341;--accent:#67e0c2;--accent2:#183f37;--danger:#ff8585;--shadow:0 18px 50px rgba(0,0,0,.28)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 16% -8%,#163128 0,transparent 30%),radial-gradient(circle at 85% 12%,#161d2b 0,transparent 28%),var(--bg);color:var(--text);font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.wrap{width:min(1240px,calc(100% - 32px));margin:auto}.site-header{border-bottom:1px solid var(--border);background:rgba(11,14,19,.82);backdrop-filter:blur(14px);position:relative;z-index:20}.header-inner{height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{color:var(--text);font-weight:850;text-decoration:none;letter-spacing:-.025em}.header-pills{display:flex;align-items:center;gap:8px}.printer-pill,.parity-pill,.share-badge{font-size:12px;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:6px 10px}.parity-pill{color:#f3d9ea;border-color:#593149;background:rgba(0,217,255,.06)}.hero{padding:56px 0 34px;max-width:930px}.eyebrow{color:var(--accent);font-size:12px;font-weight:850;letter-spacing:.15em;margin:0 0 8px}.hero h1,.results-heading h2{letter-spacing:-.04em;line-height:1.04;margin:0}.hero h1{font-size:clamp(38px,6vw,70px);max-width:980px}.lede{font-size:19px;color:var(--muted);max-width:820px;margin:18px 0 18px}.feature-strip{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}.feature-strip span{font-size:12px;font-weight:700;color:#c4ccd7;border:1px solid var(--border);background:rgba(255,255,255,.025);border-radius:999px;padding:6px 10px}.upload-card{background:linear-gradient(180deg,rgba(255,255,255,.018),transparent),var(--panel);border:1px solid var(--border);border-radius:20px;padding:18px;box-shadow:var(--shadow)}.dropzone{border:1px dashed #485568;border-radius:15px;padding:30px;display:flex;flex-direction:column;align-items:center;text-align:center;cursor:pointer;background:rgba(255,255,255,.015);transition:.18s}.dropzone:hover,.dropzone.drag{border-color:var(--accent);background:rgba(0,217,255,.06)}.dropzone input{position:absolute;inline-size:1px;block-size:1px;opacity:0}.upload-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:rgba(0,217,255,.1);color:var(--accent);font-size:23px;font-weight:800;margin-bottom:8px}.drop-title{font-size:18px;font-weight:850}.drop-sub,.status,.upload-meta{color:var(--muted)}.upload-meta{margin-top:12px;font-weight:650}.status{min-height:23px;margin:10px 0}.status.error{color:var(--danger)}.progress-row{display:grid;grid-template-columns:minmax(0,1fr) 46px;align-items:center;gap:10px;margin-top:12px}.progress{height:10px;background:#242d39;border-radius:999px;overflow:hidden;position:relative}.progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--accent),#ffe477);transition:width .28s ease;position:relative;overflow:hidden}.progress-row.analyzing .progress span:after{content:"";position:absolute;inset:0;width:45%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);transform:translateX(-120%);animation:progress-sheen 1.1s linear infinite}.progress-percent{font-size:12px;font-variant-numeric:tabular-nums;text-align:right;color:#d6f8ff;font-weight:800}@keyframes progress-sheen{to{transform:translateX(260%)}}.primary,.secondary,.segmented button{font:inherit;border-radius:10px;border:1px solid transparent;cursor:pointer}.primary{background:var(--accent);color:#07090d;font-weight:900;padding:11px 18px;min-width:150px}.primary:disabled{opacity:.38;cursor:not-allowed}.primary.busy{cursor:wait}.secondary{background:var(--panel2);color:var(--text);border-color:var(--border);padding:9px 12px}.small{font-size:13px;padding:7px 10px}.results{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(430px,1.1fr);gap:28px;align-items:start;padding:18px 0 90px}.viewer-column{position:sticky;top:18px;align-self:start}.viewer-shell{background:var(--panel);border:1px solid var(--border);border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}.viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border-bottom:1px solid var(--border)}.segmented{display:flex;border:1px solid var(--border);border-radius:10px;padding:3px;background:#0f1319}.segmented button{background:transparent;color:var(--muted);padding:6px 10px}.segmented button.active{background:var(--panel2);color:var(--text);box-shadow:0 1px 7px rgba(0,0,0,.22)}.viewer{height:min(62vh,620px);min-height:430px;position:relative;background:radial-gradient(circle at 50% 42%,#29333f 0,#11161d 70%);touch-action:none}.viewer canvas{display:block;width:100%;height:100%}.viewer-placeholder{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted)}.prediction-note{font-size:12px;color:var(--muted);padding:9px 12px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:space-between;flex-wrap:wrap}.prediction-note b{color:#d6f8ff;font-weight:750}.model-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.stat{border:1px solid var(--border);border-radius:12px;padding:10px 12px;background:rgba(20,25,34,.72)}.stat span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.stat b{display:block;margin-top:3px}.results-heading{display:flex;justify-content:space-between;gap:12px;align-items:start;margin-bottom:14px}.results-heading h2{font-size:30px}.results-sub{color:var(--muted);margin:8px 0 0}.palette-list{display:flex;flex-direction:column;gap:12px}.palette-card{position:relative;background:linear-gradient(180deg,rgba(255,255,255,.012),transparent),var(--panel);border:1px solid var(--border);border-radius:17px;padding:16px;cursor:pointer;transition:border-color .15s,transform .15s,background .15s,box-shadow .15s}.palette-card:hover{transform:translateY(-1px);border-color:#455369}.palette-card.selected{border-color:var(--accent);background:linear-gradient(180deg,rgba(0,217,255,.095),var(--panel) 45%);box-shadow:0 0 0 1px rgba(0,217,255,.08),0 12px 32px rgba(0,0,0,.15)}.palette-card.selected:before{content:"";position:absolute;left:-1px;top:16px;bottom:16px;width:3px;border-radius:4px;background:var(--accent)}.palette-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.palette-label{font-weight:900;font-size:17px}.palette-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;min-width:0}.quality{font-size:12px;color:var(--muted);text-align:right}.palette-download-3mf{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:58px;height:30px;padding:0 9px;border-radius:8px;border:1px solid #405061;background:#171e27;color:#d9e2ed;font:800 12px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.01em;cursor:pointer;transition:border-color .15s,background .15s,color .15s,transform .15s}.palette-download-3mf svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.palette-download-3mf:hover:not(:disabled){border-color:var(--accent);background:rgba(0,217,255,.09);color:#d6f8ff;transform:translateY(-1px)}.palette-download-3mf:disabled{opacity:.35;cursor:not-allowed}.palette-download-3mf.busy{cursor:wait}.palette-download-3mf.busy svg{animation:download-pulse .8s ease-in-out infinite alternate}@keyframes download-pulse{to{transform:translateY(2px);opacity:.55}}.swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.swatch{min-width:0}.swatch-color{height:62px;border-radius:10px;border:1px solid rgba(255,255,255,.2);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}.swatch-meta{margin-top:6px;font-size:12px}.swatch-meta b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.swatch-meta span{color:var(--muted)}details{margin-top:11px;color:var(--muted);font-size:12px;border-top:1px solid rgba(255,255,255,.045);padding-top:8px}summary{cursor:pointer;color:#bdc7d4}.advanced-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 12px;margin-top:7px}.advanced-grid b{color:var(--text)}.loading-row{padding:18px;border:1px solid var(--border);border-radius:14px;color:var(--muted)}
@media(max-width:900px){.results{grid-template-columns:1fr;gap:18px}.viewer-column{position:static}.viewer{height:52vh;min-height:340px}.palette-column{min-width:0}.hero{padding-top:36px}.results-heading{align-items:start;flex-direction:column}.share-badge{align-self:flex-start}}
@media(max-width:560px){.wrap{width:min(100% - 20px,1240px)}.header-inner{height:56px}.printer-pill{display:none}.hero h1{font-size:39px}.lede{font-size:17px}.upload-card{padding:12px}.dropzone{padding:23px 12px}.viewer{height:45vh;min-height:310px}.swatches{grid-template-columns:repeat(2,1fr)}.swatch-color{height:54px}.model-stats{grid-template-columns:1fr 1fr}.palette-card{padding:13px}.palette-actions{gap:6px}.quality{max-width:180px}.advanced-grid{grid-template-columns:1fr}.prediction-note{display:block}.prediction-note b{display:block;margin-top:3px}}

.toolhead-control{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:14px;padding:13px 14px;border:1px solid var(--border);border-radius:13px;background:rgba(255,255,255,.018)}.toolhead-control label{display:flex;flex-direction:column;gap:2px}.toolhead-label{font-weight:850}.toolhead-help,.toolhead-note{font-size:12px;color:var(--muted)}.toolhead-note{margin:7px 2px 0}.toolhead-control select,.toolhead-control input[type="number"]{min-width:82px;background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:9px 30px 9px 11px;font:inherit;font-weight:800}.toolhead-control select:disabled,.toolhead-control input[type="number"]:disabled{opacity:.55}.swatches{grid-template-columns:repeat(auto-fit,minmax(105px,1fr))}
@media(max-width:560px){.toolhead-control{align-items:flex-start}.toolhead-help{max-width:210px}.swatches{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Filament shopping cart */
.cart-toggle{position:relative;width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--border);border-radius:10px;background:var(--panel2);color:var(--text);cursor:pointer}.cart-toggle:hover{border-color:#526176}.cart-toggle svg,.swatch-cart svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.cart-count{position:absolute;right:-6px;top:-6px;min-width:19px;height:19px;padding:0 5px;display:grid;place-items:center;border-radius:999px;background:var(--accent);color:#07090d;font-size:10px;font-weight:950;border:2px solid var(--bg)}.cart-count[hidden]{display:none}.cart-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.48);z-index:90;backdrop-filter:blur(2px)}.cart-drawer{position:fixed;z-index:100;right:0;top:0;bottom:0;width:min(430px,calc(100% - 24px));padding:20px;background:#11161d;border-left:1px solid var(--border);box-shadow:-18px 0 45px rgba(0,0,0,.35);overflow:auto}.cart-drawer[hidden],.cart-backdrop[hidden]{display:none}.cart-open{overflow:hidden}.cart-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:14px;border-bottom:1px solid var(--border)}.cart-drawer-head .eyebrow{margin:0 0 3px}.cart-drawer-head h2{margin:0;font-size:25px;letter-spacing:-.03em}.cart-close{width:36px;height:36px;border:1px solid var(--border);border-radius:10px;background:var(--panel2);color:var(--text);font-size:25px;line-height:1;cursor:pointer}.cart-items{display:flex;flex-direction:column;gap:8px;padding:14px 0}.cart-empty{border:1px dashed var(--border);border-radius:12px;padding:22px;text-align:center;color:#d4dbe5}.cart-empty span{display:block;margin-top:4px;color:var(--muted);font-size:12px}.cart-item{display:grid;grid-template-columns:38px minmax(0,1fr) auto 32px;align-items:center;gap:10px;padding:9px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.018)}.cart-item-swatch{width:38px;height:38px;border-radius:9px;border:1px solid rgba(255,255,255,.18)}.cart-item-meta{min-width:0}.cart-item-meta b,.cart-item-meta span{display:block}.cart-item-meta b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cart-item-meta span{font-size:11px;color:var(--muted)}.cart-buy{padding:6px 9px;border-radius:8px;background:var(--accent);color:#07090d;font-size:12px;font-weight:900;text-decoration:none}.cart-link-missing{font-size:10px;color:#7f8998;border:1px solid var(--border);border-radius:7px;padding:5px 7px;white-space:nowrap}.cart-remove{width:30px;height:30px;border:0;background:transparent;color:#919baa;font-size:20px;cursor:pointer;border-radius:7px}.cart-remove:hover{background:rgba(255,255,255,.05);color:var(--text)}.cart-note{margin:6px 0 0;padding-top:14px;border-top:1px solid var(--border);color:var(--muted);font-size:11px}.cart-note code{color:#d6f8ff}.swatch-info{display:flex;align-items:flex-start;gap:6px}.swatch-info .swatch-meta{min-width:0;flex:1}.swatch-cart{flex:0 0 30px;width:30px;height:30px;margin-top:4px;display:grid;place-items:center;border:1px solid var(--border);border-radius:8px;background:var(--panel2);color:#aeb8c5;cursor:pointer}.swatch-cart:hover{border-color:var(--accent);color:var(--accent)}.swatch-cart.added{color:#07090d;background:var(--accent);border-color:var(--accent)}.swatch-cart.added:after{content:"✓";position:absolute;font-size:10px;font-weight:950;transform:translate(8px,-8px);background:#07090d;color:var(--accent);width:13px;height:13px;display:grid;place-items:center;border-radius:999px}.swatch-cart{position:relative}
@media(max-width:560px){.parity-pill{display:none}.cart-item{grid-template-columns:34px minmax(0,1fr) auto 28px}.cart-item-swatch{width:34px;height:34px}.cart-link-missing{display:none}}


/* V5.5: individual filament cards + cart toggle polish */
.swatches{align-items:stretch;gap:10px}
.swatch{
  --swatch-color:#667085;
  min-width:0;
  display:grid;
  grid-template-rows:62px minmax(48px,auto);
  gap:9px;
  padding:8px;
  border:1px solid var(--border);
  border-radius:12px;
  background:rgba(255,255,255,.018);
  transition:transform .14s ease,border-color .14s ease,background .14s ease,box-shadow .14s ease;
}
.swatch:hover{
  transform:translateY(-1px);
  border-color:var(--swatch-color);
  background:rgba(255,255,255,.04);
  box-shadow:0 0 0 1px var(--swatch-color),0 8px 20px rgba(0,0,0,.16);
}
.swatch-color{
  height:62px;
  width:100%;
  border-radius:8px;
  transition:transform .14s ease,box-shadow .14s ease,filter .14s ease;
}
.swatch:hover .swatch-color{
  transform:scale(1.015);
  filter:saturate(1.08) brightness(1.04);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.24),0 0 0 2px var(--swatch-color);
}
.swatch-info{
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) 32px;
  align-items:center;
  gap:8px;
}
.swatch-info .swatch-meta{min-width:0;margin:0;align-self:center}
.swatch-meta b{line-height:1.25}
.swatch-meta span{display:block;margin-top:2px;font-variant-numeric:tabular-nums}
.swatch-cart{
  position:relative;
  flex:none;
  width:32px;
  height:32px;
  margin:0;
  align-self:center;
  justify-self:end;
  display:grid;
  place-items:center;
  border:1px solid #3b4656;
  border-radius:9px;
  background:#171d25;
  color:#aeb8c5;
  cursor:pointer;
  transition:transform .12s ease,border-color .12s ease,background .12s ease,color .12s ease,box-shadow .12s ease;
}
.swatch-cart svg{width:17px;height:17px}
.swatch-cart:hover{transform:translateY(-1px);border-color:var(--accent);color:var(--accent);background:rgba(0,217,255,.06);box-shadow:0 0 0 2px rgba(0,217,255,.07)}
.swatch-cart.added{color:#07090d;background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 2px rgba(0,217,255,.09)}
.swatch-cart.added:hover{color:#07090d;background:#92efff;border-color:#92efff}
.swatch-cart.added:after{
  content:"✓";
  position:absolute;
  right:-5px;
  top:-5px;
  transform:none;
  width:13px;
  height:13px;
  display:grid;
  place-items:center;
  border:2px solid var(--panel);
  border-radius:999px;
  background:#07090d;
  color:var(--accent);
  font-size:8px;
  line-height:1;
  font-weight:950;
}
.swatch.cart-added{border-color:#284e59}
@media(max-width:560px){
  .swatch{grid-template-rows:54px minmax(48px,auto);padding:7px}
  .swatch-color{height:54px}
}

/* iDither v6 branding: CMYK + printed layer/dither texture */
:root{
  --bg:#080a0f;
  --panel:#11151d;
  --panel2:#171d27;
  --text:#f5f7fb;
  --muted:#9aa6b5;
  --border:#293342;
  --cyan:#00d9ff;
  --magenta:#ff2aa8;
  --yellow:#ffd83d;
  --ink:#05070b;
  --accent:var(--cyan);
  --accent2:#083946;
  --danger:#ff727f;
  --shadow:0 18px 54px rgba(0,0,0,.34);
}
html{background:var(--bg)}
body{
  position:relative;
  min-height:100vh;
  isolation:isolate;
  overflow-x:hidden;
  background:
    radial-gradient(ellipse at 9% 4%,rgba(0,217,255,.085),transparent 30%),
    radial-gradient(ellipse at 88% 3%,rgba(255,42,168,.075),transparent 31%),
    radial-gradient(ellipse at 53% 88%,rgba(255,216,61,.045),transparent 30%),
    linear-gradient(180deg,#090c12 0%,#07090e 100%);
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  pointer-events:none;
  opacity:.32;
  background:
    repeating-linear-gradient(0deg,rgba(255,255,255,.021) 0 1px,transparent 1px 5px),
    repeating-linear-gradient(90deg,rgba(0,0,0,.12) 0 1px,transparent 1px 4px);
  -webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.95),rgba(0,0,0,.45) 58%,transparent 98%);
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.95),rgba(0,0,0,.45) 58%,transparent 98%);
}
body::after{
  content:"";
  position:fixed;
  inset:-7%;
  z-index:-1;
  pointer-events:none;
  opacity:.28;
  background-image:
    radial-gradient(circle,rgba(0,217,255,.42) 0 1.1px,transparent 1.3px),
    radial-gradient(circle,rgba(255,42,168,.36) 0 1px,transparent 1.2px),
    radial-gradient(circle,rgba(255,216,61,.3) 0 .9px,transparent 1.15px);
  background-size:13px 13px,17px 17px,19px 19px;
  background-position:0 0,6px 8px,11px 3px;
  -webkit-mask-image:
    radial-gradient(ellipse at 8% 13%,black 0%,transparent 26%),
    radial-gradient(ellipse at 91% 18%,black 0%,transparent 29%),
    radial-gradient(ellipse at 49% 91%,black 0%,transparent 24%);
  mask-image:
    radial-gradient(ellipse at 8% 13%,black 0%,transparent 26%),
    radial-gradient(ellipse at 91% 18%,black 0%,transparent 29%),
    radial-gradient(ellipse at 49% 91%,black 0%,transparent 24%);
  filter:blur(.08px);
}
.site-header{
  border-bottom:1px solid rgba(120,145,170,.24);
  background:rgba(7,9,14,.8);
  box-shadow:0 1px 0 rgba(255,255,255,.015);
}
.site-header::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-1px;height:1px;
  background:linear-gradient(90deg,transparent 4%,rgba(0,217,255,.68) 18%,rgba(255,42,168,.62) 51%,rgba(255,216,61,.58) 82%,transparent 96%);
  opacity:.5;
}
.header-inner{height:70px}
.brand{display:inline-flex;align-items:center;gap:8px;min-width:0;color:var(--text);font-weight:900;text-decoration:none;letter-spacing:-.045em}
.brand-logo{width:46px;height:46px;object-fit:contain;filter:drop-shadow(0 3px 12px rgba(0,0,0,.42));transition:transform .18s ease,filter .18s ease}
.brand:hover .brand-logo{transform:translateY(-1px) rotate(-1deg);filter:drop-shadow(0 4px 14px rgba(0,217,255,.14))}
.brand-wordmark{font-size:22px;line-height:1;white-space:nowrap}
.brand-i{background:linear-gradient(180deg,var(--cyan),#76ecff);-webkit-background-clip:text;background-clip:text;color:transparent}
.printer-pill,.parity-pill,.share-badge{background:rgba(10,14,21,.74);border-color:#2d3948}
.parity-pill{color:#e9e6f2;border-color:rgba(255,42,168,.33);background:linear-gradient(100deg,rgba(0,217,255,.045),rgba(255,42,168,.055),rgba(255,216,61,.035))}
.hero{padding-top:62px}
.eyebrow{color:#d8edf3;text-shadow:0 0 18px rgba(0,217,255,.22)}
.hero>.eyebrow::before,.results-heading .eyebrow::before,.cart-drawer-head .eyebrow::before{
  content:"";
  display:inline-block;
  width:30px;height:3px;margin:0 9px 3px 0;border-radius:99px;
  background:linear-gradient(90deg,var(--cyan) 0 33%,var(--magenta) 33% 66%,var(--yellow) 66%);
}
.hero h1{max-width:1060px;text-wrap:balance}
.cmyk-type{
  color:#fff;
  background:linear-gradient(100deg,#c7f8ff 0%,var(--cyan) 26%,#f7d1ea 48%,var(--magenta) 63%,#fff0a0 86%,var(--yellow) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 14px rgba(0,217,255,.09));
}
.feature-strip span{position:relative;overflow:hidden;background:rgba(13,17,24,.7);border-color:#2d3846}
.feature-strip span::after{content:"";position:absolute;left:10px;right:10px;bottom:0;height:1px;background:linear-gradient(90deg,var(--cyan),var(--magenta),var(--yellow));opacity:.25}
.upload-card,.viewer-shell,.palette-card{
  background:
    repeating-linear-gradient(0deg,rgba(255,255,255,.012) 0 1px,transparent 1px 4px),
    linear-gradient(180deg,rgba(255,255,255,.018),transparent 22%),
    var(--panel);
}
.upload-card{position:relative;overflow:hidden;border-color:#303b49}
.upload-card::before{
  content:"";position:absolute;inset:0 0 auto;height:2px;pointer-events:none;
  background:linear-gradient(90deg,var(--cyan),var(--magenta) 52%,var(--yellow));opacity:.82;
}
.dropzone{border-color:#445164;background:rgba(5,8,13,.29)}
.dropzone:hover,.dropzone.drag{border-color:var(--cyan);background:linear-gradient(100deg,rgba(0,217,255,.055),rgba(255,42,168,.025),rgba(255,216,61,.02))}
.upload-icon{background:linear-gradient(145deg,rgba(0,217,255,.16),rgba(255,42,168,.1));color:#ddfbff;border:1px solid rgba(0,217,255,.22);box-shadow:inset 0 0 20px rgba(0,217,255,.04)}
.progress span{background:linear-gradient(90deg,var(--cyan) 0 34%,var(--magenta) 58%,var(--yellow) 100%)}
.progress-percent,.prediction-note b,.cart-note code{color:#d6f8ff}
.primary{
  position:relative;
  color:#07090d;
  background:linear-gradient(105deg,#5ceaff 0%,var(--cyan) 38%,#ffd6ef 72%,#ffe36e 100%);
  box-shadow:0 8px 22px rgba(0,217,255,.1);
}
.primary:hover:not(:disabled){filter:saturate(1.06) brightness(1.05);box-shadow:0 10px 28px rgba(0,217,255,.14)}
.viewer{background:radial-gradient(circle at 50% 42%,#28313e 0,#11161d 58%,#090c11 100%)}
.palette-card:hover{border-color:#4b5c70}
.palette-card.selected{border-color:rgba(0,217,255,.72);background:linear-gradient(110deg,rgba(0,217,255,.065),rgba(255,42,168,.028) 52%,rgba(255,216,61,.02)),var(--panel);box-shadow:0 0 0 1px rgba(0,217,255,.055),0 12px 34px rgba(0,0,0,.18)}
.palette-card.selected:before{background:linear-gradient(180deg,var(--cyan),var(--magenta),var(--yellow))}
.palette-download-3mf:hover:not(:disabled){border-color:var(--cyan);background:rgba(0,217,255,.075);color:#d6f8ff}
.cart-count{background:linear-gradient(135deg,var(--magenta),var(--yellow));color:#08090d}
.cart-buy{background:linear-gradient(105deg,var(--cyan),#9cefff);color:#061014}
.swatch-cart:hover{border-color:var(--cyan);color:var(--cyan);background:rgba(0,217,255,.055);box-shadow:0 0 0 2px rgba(0,217,255,.055)}
.swatch-cart.added{color:#07090d;background:linear-gradient(135deg,var(--cyan),#a9f3ff);border-color:var(--cyan);box-shadow:0 0 0 2px rgba(0,217,255,.07)}
.swatch-cart.added:hover{color:#07090d;background:#92efff;border-color:#92efff}
.swatch-cart.added:after{background:#07090d;color:var(--cyan)}
.swatch.cart-added{border-color:rgba(0,217,255,.35)}
.cart-drawer{background:linear-gradient(180deg,rgba(0,217,255,.02),transparent 25%),#0e131a}
@media(max-width:560px){
  .header-inner{height:60px}
  .brand-logo{width:39px;height:39px}
  .brand-wordmark{font-size:20px}
  .hero{padding-top:40px}
}

/* Separate upload / analysis workflow */
.upload-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.upload-action{min-width:150px;transition:background .16s ease,border-color .16s ease,color .16s ease,opacity .16s ease,box-shadow .16s ease}.upload-action.busy{cursor:wait}.secondary.upload-action:disabled{opacity:.38;cursor:not-allowed}
@media(max-width:560px){.upload-actions{display:grid;grid-template-columns:1fr}.upload-action{min-width:0;width:100%}}

/* v6.10.9 — collapsed advanced analysis settings */
.advanced-settings-toggle{width:100%;margin-top:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border:1px solid var(--border);border-radius:10px;background:#111821;color:#dce5ef;font-weight:800;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}.advanced-settings-toggle:hover{border-color:rgba(0,217,255,.38);background:#131c26;color:#fff}.advanced-settings-toggle[aria-expanded="true"]{border-color:rgba(0,217,255,.3);border-bottom-left-radius:7px;border-bottom-right-radius:7px}.advanced-settings-chevron{font-size:18px;line-height:1;color:var(--muted);transition:transform .16s ease,color .16s ease}.advanced-settings-toggle[aria-expanded="true"] .advanced-settings-chevron{transform:rotate(180deg);color:var(--cyan)}.advanced-settings-panel{padding:14px;border:1px solid rgba(0,217,255,.2);border-top:0;border-radius:0 0 11px 11px;background:rgba(0,217,255,.025)}.advanced-settings-panel[hidden]{display:none!important}.advanced-settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.advanced-settings-panel .toolhead-control{margin:0;min-width:0;min-height:148px;padding:14px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:12px;background:linear-gradient(180deg,rgba(255,255,255,.026),rgba(255,255,255,.012));border-radius:11px}.advanced-settings-panel .toolhead-control label{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.advanced-settings-panel .toolhead-label{font-size:13px;line-height:1.2}.advanced-settings-panel .toolhead-help{max-width:none;font-size:11px;line-height:1.42}.advanced-settings-panel .toolhead-control select,.advanced-settings-panel .toolhead-control input[type="number"]{width:100%;min-width:0!important;max-width:none;margin-top:auto;padding-top:9px;padding-bottom:9px}.advanced-settings-panel .toolhead-note{margin-top:12px;padding:0 2px;line-height:1.45}@media(max-width:720px){.advanced-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.advanced-settings-grid{grid-template-columns:1fr}.advanced-settings-panel .toolhead-control{min-height:0}}

/* v6.5 — per-filament physical hex customization */
.viewer-placeholder.viewer-loading{z-index:4;background:rgba(10,14,19,.58);backdrop-filter:blur(2px);font-weight:850;letter-spacing:.02em;color:#eef6ff;pointer-events:none}
.viewer-placeholder[hidden]{display:none!important}.viewer.loading canvas{opacity:.58;transition:opacity .12s ease}.viewer canvas{transition:opacity .12s ease}
.swatch-hex-row{display:flex;align-items:center;gap:4px;min-height:28px;margin-top:2px;min-width:0}.swatch-hex-value{display:block;margin:0!important;color:var(--muted);font-variant-numeric:tabular-nums;line-height:28px;white-space:nowrap}.swatch-hex-input{width:82px;height:28px;padding:3px 6px;border:1px solid var(--cyan);border-radius:7px;background:#0e141c;color:var(--text);font:800 12px/1 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;text-transform:uppercase;outline:none;box-shadow:0 0 0 2px rgba(0,217,255,.08)}.swatch-hex-input:focus{border-color:#7cecff;box-shadow:0 0 0 3px rgba(0,217,255,.11)}
.swatch-hex-action{height:26px;min-width:26px;padding:0 5px;display:grid;place-items:center;border:1px solid var(--border);border-radius:7px;background:#151c25;color:#aeb8c5;cursor:pointer;transition:border-color .14s,color .14s,background .14s,transform .14s}.swatch-hex-action[hidden]{display:none!important}.swatch-hex-action:disabled{opacity:.35;cursor:wait}.swatch-hex-action svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.swatch-edit{display:none}.palette-card.selected .swatch-edit{display:grid}.swatch-edit:hover:not(:disabled),.swatch-submit:hover:not(:disabled){border-color:var(--cyan);color:var(--cyan);background:rgba(0,217,255,.06);transform:translateY(-1px)}.swatch-submit{color:#d6f8ff;border-color:rgba(0,217,255,.4);background:rgba(0,217,255,.07)}.swatch-reset{display:grid;width:26px;padding:0;color:#c3cad5}.swatch-reset:hover:not(:disabled){border-color:#758297;color:#fff;background:rgba(255,255,255,.045)}.swatch.custom-color{border-color:rgba(255,216,61,.32)}.swatch.custom-color .swatch-hex-value{color:#ffe477;font-weight:800}.palette-card.customized .palette-label:after{content:"Custom";display:inline-block;margin-left:7px;padding:2px 6px;border-radius:999px;border:1px solid rgba(255,216,61,.28);color:#ffe477;font-size:9px;line-height:1.2;letter-spacing:.04em;vertical-align:2px}.swatch-meta{min-width:0}.swatch-info .swatch-meta{overflow:visible}
@media(max-width:560px){.swatch-hex-row{gap:3px}.swatch-hex-input{width:78px}}


/* v6.5.1 — compact virtual-filament spectrum strip + footer */
.virtual-filaments{--virtual-count:1;--virtual-natural-width:9px;display:grid;grid-template-columns:repeat(var(--virtual-count),minmax(0,1fr));gap:1px;width:min(100%,var(--virtual-natural-width));margin:11px 0 2px;padding:1px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.13);border-radius:3px;overflow:hidden;line-height:0}.virtual-filament-swatch{display:block;width:100%;aspect-ratio:1;min-width:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.site-footer{padding:14px 16px 28px;text-align:center;color:var(--muted);font-size:12px}.site-footer a{color:#aeb8c5;text-decoration:none;border-bottom:1px solid rgba(174,184,197,.28);transition:color .14s,border-color .14s}.site-footer a:hover{color:var(--cyan);border-color:rgba(0,217,255,.5)}


/* v6.5.2 — wider primary actions, cart placement, virtual hex tooltips, row notices */
.upload-actions{display:grid;grid-template-columns:1fr;width:100%;gap:12px}.upload-action{width:100%;min-width:0;min-height:46px;padding:12px 18px;font-weight:850}.secondary.upload-action{padding:12px 18px}
.swatch{position:relative}.swatch-info{display:block;min-height:38px;padding-right:39px}.swatch-info .swatch-meta{width:100%}.swatch-cart{position:absolute!important;right:8px;bottom:8px;margin:0!important;align-self:auto;justify-self:auto}
.virtual-filaments{overflow:visible;position:relative;z-index:5;margin-bottom:4px}.virtual-filament-swatch{position:relative;cursor:default}.virtual-filament-swatch:hover{z-index:30}.virtual-filament-swatch:hover::before{content:"^";position:absolute;left:50%;top:calc(100% + 2px);transform:translateX(-50%);color:#eef4fb;font:800 9px/1 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;text-shadow:0 1px 2px #000;pointer-events:none}.virtual-filament-swatch:hover::after{content:attr(data-hex);position:absolute;left:50%;top:calc(100% + 10px);transform:translateX(-50%);padding:4px 6px;border:1px solid #4a5667;border-radius:6px;background:#0c1118;color:#f4f7fb;box-shadow:0 6px 18px rgba(0,0,0,.34);font:800 10px/1 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;letter-spacing:.01em;white-space:nowrap;pointer-events:none}
.row-status{margin:8px 0 2px;padding:6px 8px;border:1px solid rgba(103,224,194,.32);border-radius:7px;background:rgba(103,224,194,.065);color:#8ff0d7;font-size:11px;line-height:1.35;min-height:29px}.row-status.error,.row-status.warning{border-color:rgba(255,114,127,.32);background:rgba(255,114,127,.06);color:var(--danger)}.row-status[hidden]{display:none!important}
@media(max-width:560px){.upload-actions{grid-template-columns:1fr;gap:8px}.upload-action{min-height:44px}.swatch-info{padding-right:36px}.swatch-cart{right:7px;bottom:7px}}

/* v6.6 — progressive analysis experience */
.analysis-live-panel{position:relative;overflow:hidden;border:1px solid rgba(0,217,255,.24);border-radius:15px;padding:13px 14px;background:linear-gradient(110deg,rgba(0,217,255,.06),rgba(255,42,168,.035) 54%,rgba(255,216,61,.025)),#10151d;margin-bottom:12px}.analysis-live-panel:after{content:"";position:absolute;inset:0 auto 0 -35%;width:32%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.055),transparent);animation:analysis-sweep 2.4s linear infinite;pointer-events:none}@keyframes analysis-sweep{to{left:115%}}.analysis-live-head{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:10px;align-items:center}.analysis-live-head b{display:block;color:#eef7ff;font-size:13px}.analysis-live-head span{display:block;color:var(--muted);font-size:11px;margin-top:2px}.analysis-live-head strong{font-size:13px;color:#d6f8ff;font-variant-numeric:tabular-nums}.analysis-live-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.14);border-top-color:var(--cyan);border-right-color:var(--magenta);border-radius:50%;animation:analysis-spin .8s linear infinite}@keyframes analysis-spin{to{transform:rotate(360deg)}}.analysis-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin-top:11px}.analysis-step{display:flex;align-items:center;justify-content:center;gap:5px;min-width:0;padding:5px 4px;border:1px solid var(--border);border-radius:7px;color:#7f8b99;background:rgba(255,255,255,.018);font-size:9px;font-weight:800;text-align:center;white-space:nowrap}.analysis-step i{width:6px;height:6px;border-radius:50%;background:#3b4654;flex:none}.analysis-step.done{color:#c8d1dc;border-color:rgba(0,217,255,.18)}.analysis-step.done i{background:var(--cyan)}.analysis-step.active{color:#fff;border-color:rgba(255,42,168,.38);background:rgba(255,42,168,.055)}.analysis-step.active i{background:var(--magenta);box-shadow:0 0 0 3px rgba(255,42,168,.1);animation:analysis-pulse 1s ease-in-out infinite alternate}@keyframes analysis-pulse{to{transform:scale(1.35);opacity:.65}}.analysis-live-counters{display:flex;flex-wrap:wrap;gap:7px 12px;margin-top:9px;color:var(--muted);font-size:10px}.analysis-live-counters b{color:#f1f5fa}.analysis-live-candidate{cursor:default;animation:analysis-row-in .28s ease both}.analysis-live-candidate:hover{transform:none}.analysis-live-candidate .palette-label{display:flex;align-items:center;gap:7px}.analysis-provisional{display:inline-flex;padding:2px 5px;border:1px solid rgba(255,216,61,.25);border-radius:999px;color:#ffe477;font-size:8px;line-height:1;letter-spacing:.06em}.analysis-live-swatch .swatch-meta span{display:block}.analysis-candidate-state{display:flex;align-items:center;gap:7px;margin-top:8px;padding-top:7px;border-top:1px solid rgba(255,255,255,.045);color:#aab5c2;font-size:10px}.analysis-candidate-state span{width:7px;height:7px;border-radius:50%;background:var(--cyan);animation:analysis-pulse .85s ease-in-out infinite alternate}.analysis-virtual-placeholder{height:13px;margin:11px 0 2px;color:#758291;font-size:9px;font-style:italic}.analysis-live-virtuals{opacity:.82}@keyframes analysis-row-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){.analysis-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.analysis-step:last-child{grid-column:span 2}.analysis-live-head{grid-template-columns:20px minmax(0,1fr)}.analysis-live-head strong{grid-column:2}.analysis-live-counters{gap:5px 9px}}


/* v6.6.1 — reliable hex controls + live swatch editing */
.swatch-info{display:block;min-height:68px;padding-right:0!important}
.swatch-meta{min-width:0}
.swatch-hex-row{display:inline-block;vertical-align:top;min-height:28px;margin-top:2px}
.swatch-hex-value,.swatch-hex-input{width:82px;max-width:82px}
.swatch-hex-value{height:28px;line-height:28px}
.swatch-control-row{display:inline-grid;grid-template-columns:repeat(2,26px);gap:5px;align-items:center;vertical-align:top;margin:2px 0 0 5px;min-height:26px}
.swatch-action-slot{position:relative;display:grid;place-items:center;width:26px;height:26px;margin:0!important}
.swatch-action-slot>.swatch-hex-action{position:absolute;inset:0;width:26px!important;min-width:26px!important;height:26px!important;padding:0!important;margin:0!important}
.swatch-cart{position:absolute!important;inset:0!important;width:26px!important;min-width:26px!important;height:26px!important;padding:0!important;margin:0!important;align-self:auto!important;justify-self:auto!important}
.swatch-cart svg,.swatch-hex-action svg{width:14px;height:14px}
.swatch-cart.added:after{right:-5px;top:-5px}
.palette-card:not(.selected) .swatch-action-slot:first-child{visibility:hidden}
.palette-card:not(.selected) .swatch-action-slot:first-child .swatch-edit{display:none!important}
@media(max-width:560px){.swatch-info{min-height:66px;padding-right:0!important}.swatch-hex-input{width:82px;max-width:82px}.swatch-control-row{grid-template-columns:repeat(2,25px);gap:4px;margin-left:4px}.swatch-action-slot,.swatch-action-slot>.swatch-hex-action,.swatch-cart{width:25px!important;min-width:25px!important;height:25px!important}}

/* v6.6.4 — compact filament controls, horizontal virtual strip, bottom card actions */
.swatch-info{display:block!important;min-height:58px!important;padding-right:0!important}
.swatch-hex-controls{display:flex;align-items:center;gap:4px;min-width:0;margin-top:2px;white-space:nowrap}
.swatch-hex-row{display:block!important;flex:0 0 82px;min-width:82px;max-width:82px;margin:0!important}
.swatch-hex-value,.swatch-hex-input{width:82px!important;max-width:82px!important}
.swatch-control-row{display:grid!important;grid-template-columns:repeat(2,22px)!important;gap:3px!important;align-items:center;margin:0!important;min-height:22px!important;flex:0 0 auto}
.swatch-action-slot{width:22px!important;height:22px!important}
.swatch-action-slot>.swatch-hex-action,.swatch-cart{width:22px!important;min-width:22px!important;height:22px!important;padding:0!important;border-radius:6px!important}
.swatch-cart{position:absolute!important;inset:0!important;margin:0!important}
.swatch-cart svg,.swatch-hex-action svg{width:12px!important;height:12px!important}
.swatch-cart.added:after{width:11px;height:11px;right:-4px;top:-4px;font-size:7px}

.virtual-filaments{display:grid!important;grid-template-columns:repeat(var(--virtual-count),minmax(0,1fr))!important;width:100%!important;max-width:none!important;height:12px;margin:11px 0 4px!important;padding:1px!important;gap:1px!important;align-items:stretch;overflow:visible!important}
.virtual-filament-swatch{width:100%!important;height:8px!important;aspect-ratio:auto!important;min-width:0!important}

.palette-bottom{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-top:9px;border-top:1px solid rgba(255,255,255,.045);padding-top:8px}
.palette-bottom details{flex:1 1 auto;min-width:0;margin:0!important;padding:0!important;border-top:0!important}
.palette-bottom .palette-download-3mf{flex:0 0 auto;margin-left:auto}
.palette-bottom .palette-downloads{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto;margin-left:auto}
.palette-bottom .palette-downloads .palette-download-3mf{margin-left:0}

.row-status{border-color:rgba(103,224,194,.4)!important;background:rgba(103,224,194,.065)!important;color:#8ff0d7!important}
.row-status.progress{border-color:rgba(255,216,61,.48)!important;background:rgba(255,216,61,.065)!important;color:#ffe477!important}
.row-status.neutral{border-color:rgba(255,255,255,.38)!important;background:rgba(255,255,255,.045)!important;color:#f4f7fb!important}
.row-status.warning,.row-status.error{border-color:rgba(255,114,127,.38)!important;background:rgba(255,114,127,.06)!important;color:var(--danger)!important}

@media(max-width:560px){
  .swatch-hex-controls{gap:3px}
  .swatch-control-row{grid-template-columns:repeat(2,21px)!important;gap:2px!important}
  .swatch-action-slot,.swatch-action-slot>.swatch-hex-action,.swatch-cart{width:21px!important;min-width:21px!important;height:21px!important}
  .palette-bottom{gap:8px}
}

@media(max-width:560px){.palette-downloads{flex-wrap:wrap}.palette-downloads .palette-download-3mf{min-width:0;padding:0 7px}}
/* Keep the hex field + two compact action slots on one line at all desktop card widths. */
.swatches{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))!important}
.swatch-control-row{grid-template-columns:repeat(2,20px)!important;gap:3px!important}
.swatch-action-slot,.swatch-action-slot>.swatch-hex-action,.swatch-cart{width:20px!important;min-width:20px!important;height:20px!important}
.swatch-cart svg,.swatch-hex-action svg{width:11px!important;height:11px!important}
@media(max-width:560px){
  .swatches{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .swatch-control-row{grid-template-columns:repeat(2,20px)!important;gap:2px!important}
  .swatch-action-slot,.swatch-action-slot>.swatch-hex-action,.swatch-cart{width:20px!important;min-width:20px!important;height:20px!important}
}


/* v6.6.5 — full-width hero/upload card on wide layouts */
@media(min-width:901px){.hero{width:100%;max-width:none}}


/* v6.6.7 — prominent absolute reconstruction match quality */
.quality{font-size:17px!important;font-weight:900!important;line-height:1.2;color:var(--muted);text-align:right}
.quality.match-good{color:#67e0c2!important}
.quality.match-medium{color:#ffe477!important}
.quality.match-poor{color:var(--danger)!important}
.quality-merged{display:block;margin-top:2px;font-size:10px;font-weight:700;color:var(--muted)!important}
/* Shareable analysis link */
.share-badge{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:0 0 auto;
  min-width:92px;height:36px;padding:0 13px;border-radius:999px;
  border:1px solid rgba(103,224,194,.48);
  background:linear-gradient(110deg,rgba(0,217,255,.13),rgba(255,42,168,.10) 54%,rgba(255,216,61,.10));
  color:#f7fbff;font:850 13px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.01em;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(255,255,255,.025),0 6px 18px rgba(0,0,0,.16);
  transition:transform .15s ease,border-color .15s ease,background .15s ease,box-shadow .15s ease;
}
.share-badge svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.share-badge:hover{transform:translateY(-1px);border-color:#67e0c2;background:linear-gradient(110deg,rgba(0,217,255,.20),rgba(255,42,168,.14) 54%,rgba(255,216,61,.13));box-shadow:0 8px 22px rgba(0,0,0,.22)}
.share-badge:active{transform:translateY(0)}
.share-badge[hidden]{display:none}
/* v6.8.7 — one pixel-painted canvas per complete virtual palette */
canvas.virtual-filaments{
  display:block!important;
  width:100%!important;
  height:8px!important;
  min-height:8px!important;
  max-height:8px!important;
  margin:11px 0 4px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  outline:0!important;
  box-shadow:none!important;
  image-rendering:crisp-edges;
  image-rendering:pixelated;
  cursor:crosshair;
}
.virtual-filament-tooltip{
  position:fixed;z-index:1000;pointer-events:none;padding:4px 6px;
  border:1px solid #4a5667;border-radius:6px;background:#0c1118;color:#f4f7fb;
  box-shadow:0 6px 18px rgba(0,0,0,.34);
  font:800 10px/1 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
  letter-spacing:.01em;white-space:nowrap;
}
.virtual-filament-tooltip[hidden]{display:none}

.analysis-live-panel.analysis-live-failed{border-color:rgba(255,96,96,.34);background:#151116}.analysis-live-panel.analysis-live-failed:after{display:none}.analysis-live-failed .analysis-live-head{grid-template-columns:22px minmax(0,1fr) auto}.analysis-live-failed .analysis-live-head strong{color:#ffb4b4}.analysis-live-failure-icon{display:grid;place-items:center;width:18px;height:18px;border:2px solid rgba(255,96,96,.55);border-radius:50%;color:#ffb4b4;font-size:12px;font-weight:900}


/* v6.10.6 — dedicated "Use my colors" four-filament row */
.user-palette-card{
  border-style:dashed;
  border-color:#435165;
  background:linear-gradient(180deg,rgba(255,255,255,.018),transparent),#121821;
}
.user-palette-card:hover{border-color:#5b6b80}
.user-palette-card.selected{border-style:solid}
.user-palette-card.customized .palette-label:after{display:none}
.user-palette-sub{margin-top:2px;color:var(--muted);font-size:11px;font-weight:650}
.user-palette-hint{
  color:#d6f8ff;
  font-size:11px;
  font-weight:850;
  letter-spacing:.035em;
  text-transform:uppercase;
  white-space:nowrap;
}
.user-color-slot{position:relative}
.user-color-slot.empty{border-style:dashed;background:rgba(255,255,255,.01)}
.user-color-well{
  width:100%;
  height:62px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:8px;
  display:grid;
  place-items:center;
  padding:0;
  cursor:pointer;
  color:#fff;
  font:850 11px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  text-shadow:0 1px 3px rgba(0,0,0,.9);
  transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,filter .14s ease;
}
.user-color-well:hover:not(:disabled){
  transform:scale(1.015);
  filter:saturate(1.08) brightness(1.04);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.24),0 0 0 2px var(--swatch-color);
}
.user-color-well.empty{
  border:1px dashed #566476;
  background:repeating-linear-gradient(135deg,rgba(255,255,255,.035) 0 8px,rgba(255,255,255,.012) 8px 16px);
  color:#b9c4d1;
  text-shadow:none;
}
.user-color-well:disabled{opacity:.55;cursor:wait}
.user-color-picker{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.user-color-info{display:block!important;min-height:48px!important}
.user-color-info .swatch-meta{width:100%}
.user-color-hex{
  display:block;
  width:100%;
  height:28px;
  margin-top:4px;
  padding:3px 6px;
  border:1px solid var(--border);
  border-radius:7px;
  background:#0e141c;
  color:var(--text);
  font:800 12px/1 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
  text-transform:uppercase;
  outline:none;
}
.user-color-hex:focus{border-color:var(--cyan);box-shadow:0 0 0 2px rgba(0,217,255,.08)}
.user-color-hex::placeholder{color:#667384}
.user-palette-bottom{align-items:center}
.user-palette-note{flex:1 1 auto;color:var(--muted);font-size:11px}
.user-palette-render{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:108px;
  height:30px;
  padding:0 11px;
  border:1px solid rgba(0,217,255,.52);
  border-radius:8px;
  background:rgba(0,217,255,.09);
  color:#d6f8ff;
  font:850 12px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  cursor:pointer;
  transition:border-color .15s,background .15s,color .15s,transform .15s;
}
.user-palette-render:hover:not(:disabled){border-color:var(--cyan);background:rgba(0,217,255,.15);transform:translateY(-1px)}
.user-palette-render:disabled{opacity:.35;cursor:not-allowed}
@media(max-width:560px){
  .user-color-well{height:54px}
  .user-palette-bottom{align-items:flex-start;flex-direction:column}
  .user-palette-bottom .palette-downloads{width:100%;justify-content:flex-end}
  .user-palette-note{width:100%}
}

.no-dither-note{color:var(--cyan);font-style:normal;font-weight:800}

/* v6.10.17 — fixed glTF orientation test views under the 3D preview */
.viewer-view-controls{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:6px;
  padding:8px 10px;
  border-top:1px solid var(--border);
  background:#0f1319;
}
.viewer-view-controls button{
  min-width:0;
  border:1px solid var(--border);
  border-radius:8px;
  background:transparent;
  color:var(--muted);
  padding:7px 6px;
  font:750 12px/1.1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  cursor:pointer;
  transition:border-color .15s,background .15s,color .15s;
}
.viewer-view-controls button:hover{border-color:#455369;color:var(--text)}
.viewer-view-controls button.active{
  border-color:var(--accent);
  background:rgba(0,217,255,.09);
  color:#d6f8ff;
}
@media(max-width:560px){
  .viewer-view-controls{gap:4px;padding:7px 8px}
  .viewer-view-controls button{padding:7px 3px;font-size:11px}
}


/* v6.11.20 — painted color-analysis focus brush */
.focus-paint-controls{display:flex;align-items:center;gap:7px;padding:8px 9px;border-top:1px solid var(--border);background:#0d1117;flex-wrap:wrap}
.focus-brush-toggle,.focus-paint-modes button,.focus-clear{font:inherit;border:1px solid var(--border);background:#151b24;color:#c7d0dc;border-radius:9px;min-height:34px;padding:6px 9px;cursor:pointer;font-size:12px;font-weight:800}
.focus-brush-toggle{display:inline-flex;align-items:center;gap:6px}
.focus-brush-toggle svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.focus-brush-toggle.active,.focus-paint-modes button.active{border-color:var(--accent);background:rgba(0,217,255,.12);color:#d9fbff}
.focus-brush-toggle:disabled,.focus-paint-modes button:disabled,.focus-clear:disabled{opacity:.38;cursor:not-allowed}
.focus-paint-modes{display:flex;gap:3px;border:1px solid var(--border);border-radius:9px;padding:2px;background:#0a0e13}
.focus-paint-modes button{border:0;min-height:28px;padding:4px 8px;background:transparent;color:var(--muted)}
.focus-brush-size{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;font-weight:750;min-width:126px}
.focus-brush-size input{width:88px;accent-color:var(--accent)}
.focus-clear{margin-left:auto}
.focus-selection-meta{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.focus-selection-meta.active{color:#bff8ff;font-weight:800}
.focus-paint-help{padding:0 10px 8px;background:#0d1117;color:#778392;font-size:11px;line-height:1.35;border-bottom:1px solid var(--border)}
.viewer canvas.focus-painting{cursor:none}
.focus-brush-cursor{position:absolute;z-index:7;border:2px solid rgba(0,217,255,.95);background:rgba(0,217,255,.08);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;box-shadow:0 0 0 1px rgba(0,0,0,.65),0 0 12px rgba(0,217,255,.18)}
.focus-brush-cursor.erase{border-color:#ff8e9d;background:rgba(255,90,113,.08)}
@media(max-width:560px){.focus-paint-controls{gap:5px}.focus-brush-size{order:5;flex:1 1 150px}.focus-clear{margin-left:0}.focus-selection-meta{margin-left:auto}.focus-paint-help{font-size:10px}}
