:root { --v2-ivory:#d7d3cc; --v2-paper:#efede8; --v2-line:#c6c0b7; --v2-coral:#ff5a5f; --v2-ink:#292522; --v2-muted:#69635e; }
html,body { background:var(--v2-ivory); }
.plaidstudio-v2 { background:var(--v2-ivory); }
.plaidstudio-v2 .app-topbar { height:68px; padding:0 22px 0 22px; background:rgba(246,244,240,.96); border-bottom:1px solid var(--v2-line); box-shadow:none; }
.plaidstudio-v2 .app-topbar-left .app-brand,.plaidstudio-v2 .topbar-divider { display:none; }
.plaidstudio-v2 .app-topbar [data-topbar-launcher="unifiedManager"] { display:none; }
.plaidstudio-v2 .app-topbar-left { gap:10px; }.plaidstudio-v2 .mode-label { display:none; }
.plaidstudio-v2 .mode-select { min-width:180px; color:var(--v2-ink); background:#fff; border-color:var(--v2-line); border-radius:8px; }
.plaidstudio-v2 .topbar-design-context { border-left:1px solid var(--v2-line); padding-left:16px; }.plaidstudio-v2 .topbar-design-eyebrow { display:none; }
.plaidstudio-v2 .app-topbar-center { margin-left:auto; }.plaidstudio-v2 [data-topbar-launcher="svgStudio"] { display:none; }
.plaidstudio-v2 .app-topbar-right { display:none; }
.plaidstudio-v2 .cws-tab--launcher { height:38px; padding:0 13px; color:var(--v2-ink); background:#fff; border-color:var(--v2-line); border-radius:8px; box-shadow:none; }
.plaidstudio-v2 .cws-tab--launcher:hover { color:var(--v2-coral); background:#fff4ef; border-color:#ffc9c5; }
.plaidstudio-v2 .v2-main { display:grid; grid-template-columns:284px minmax(0,1fr) 320px; gap:0; height:calc((100vh / var(--cws-desktop-ui-zoom, 1)) - 68px); padding:0; background:var(--v2-ivory); }
.plaidstudio-v2 .v2-navigation { grid-column:1; grid-row:1; display:flex; flex-direction:column; min-width:0; border-right:1px solid var(--v2-line); background:var(--v2-paper); padding:22px 20px 16px; overflow:auto; }
.v2-brand { display:flex; align-items:center; gap:10px; margin-bottom:31px; }.v2-brand-mark { display:grid; width:70px; height:69px; place-items:center; border-radius:10px; background:#f3eee5; }.v2-brand-mark img { width:24px; height:38px; }.v2-brand strong { display:block; color:var(--v2-coral); font:760 38px/0.88 Inter,ui-sans-serif,system-ui,sans-serif; letter-spacing:0; }.v2-brand small { display:block; margin-top:6px; color:var(--v2-muted); font-size:11px; }
.v2-nav-section { margin-bottom:19px; padding-bottom:14px; border-bottom:1px solid var(--v2-line); }.v2-nav-section>p { margin:0 0 7px; color:#4a4642; font-size:11px; font-weight:600; text-transform:uppercase; }.v2-nav-section button { display:flex; align-items:center; gap:14px; width:100%; min-height:38px; padding:0 10px; border:0; border-radius:7px; color:var(--v2-ink); background:transparent; text-align:left; font-size:14px; cursor:pointer; }.v2-nav-section button span { width:18px; color:#49433e; font-size:18px; text-align:center; }.v2-nav-section .v2-mode.is-active { color:var(--v2-coral); background:#fff0ec; font-weight:700; }.v2-nav-section .v2-mode.is-active span { color:var(--v2-coral); }.v2-collections { border:0; }.v2-collections p { display:flex; justify-content:space-between; }.v2-collections p button { width:auto; min-height:auto; padding:0; font-size:20px; }.v2-collections button { min-height:27px; font-size:13px; }.v2-collections i { width:8px; height:8px; border-radius:50%; background:#c67e69; }.v2-collections button:nth-of-type(3) i { background:#9aa080; }.v2-collections button:nth-of-type(4) i { background:#71888a; }
.v2-library button.is-active { color:var(--v2-coral); background:#fff0ec; font-weight:700; }.v2-library button.is-active span { color:var(--v2-coral); }
.v2-favourite-palettes { border:0; }.v2-favourite-palettes .v2-palette-favourite { min-height:28px; gap:9px; padding:0 8px; font-size:12px; }.v2-favourite-palettes .v2-palette-swatch { display:flex; width:28px; height:12px; flex:0 0 28px; overflow:hidden; border:1px solid rgba(41,37,34,.14); border-radius:2px; }.v2-favourite-palettes .v2-palette-swatch i { display:block; flex:1; height:100%; }.v2-favourite-palettes .v2-palette-favourite.is-active { color:var(--v2-coral); background:#fff0ec; font-weight:700; }.v2-favourite-palettes .v2-palette-empty { display:block; padding:5px 8px; color:var(--v2-muted); font-size:10px; }
.cs-palette-name [data-cs-favorite-palette][aria-pressed="true"] { color:var(--v2-coral,#ff5a5f); }
.plaidstudio-v2 .cws-right .insp-history-arrow { font-size:9px; font-weight:700; }.plaidstudio-v2 .cws-right .insp-history-arrow--back { color:#778892; }.plaidstudio-v2 .cws-right .insp-history-arrow--forward { color:var(--v2-coral); }
.plaidstudio-v2 .se-role-filter-btn.is-active { color:#fff; border-color:var(--v2-coral); background:var(--v2-coral); font-weight:700; }.plaidstudio-v2 .se-role-filter-btn.is-active::before { content:"✓"; margin-right:4px; font-size:9px; }.plaidstudio-v2 .se-role-filter-btn[data-se-role-filter="ground"].is-active { border-color:#7d9679; background:#7d9679; }.plaidstudio-v2 .se-role-filter-btn[data-se-role-filter="line"].is-active { border-color:#718894; background:#718894; }.plaidstudio-v2 .se-role-filter-btn[data-se-role-filter="accent"].is-active { border-color:var(--v2-coral); background:var(--v2-coral); }
.v2-account { display:flex; align-items:center; gap:9px; margin-top:auto; padding-top:15px; border-top:1px solid var(--v2-line); }.v2-account>span { display:grid; width:34px; height:34px; place-items:center; border-radius:50%; background:#e4e0d9; font-size:12px; }.v2-account b,.v2-account small { display:block; }.v2-account b { font-size:12px; }.v2-account small { color:var(--v2-muted); font-size:10px; }.v2-account-actions { display:flex; align-items:center; gap:2px; margin-left:auto; }.v2-account-actions button { display:grid; width:24px; height:24px; place-items:center; padding:0; border:0; border-radius:4px; background:transparent; color:var(--v2-muted); font-size:14px; cursor:pointer; }.v2-account-actions button:hover { background:#fff1ed; color:var(--v2-coral); }
.plaidstudio-v2 .cws-left { display:none; }.plaidstudio-v2 .cws-center { grid-column:2; grid-row:1; min-width:0; padding:20px 26px 12px; background:#dfdbd4; }.plaidstudio-v2 .cws-right { grid-column:3; grid-row:1; min-width:0; display:flex; flex-direction:column; overflow:hidden; border-left:1px solid var(--v2-line); background:var(--v2-paper); }.plaidstudio-v2 .cws-center>.app-panel,.plaidstudio-v2 .cws-right>.app-panel { border:0; border-radius:0; box-shadow:none; background:transparent; }.plaidstudio-v2 .app-panel,.plaidstudio-v2 .panel-header,.plaidstudio-v2 .panel-body { border-color:var(--v2-line); }.plaidstudio-v2 .panel-header { background:transparent; }.plaidstudio-v2 .vp-shell { background:#f7f5f1; border:1px solid var(--v2-line); border-radius:8px; box-shadow:0 1px 3px rgba(65,48,34,.07); }.plaidstudio-v2 .insp-panel { background:transparent; }.plaidstudio-v2 .insp-tabs { border-bottom-color:var(--v2-line); }.plaidstudio-v2 .insp-tab.is-active { color:var(--v2-coral); border-bottom-color:var(--v2-coral); }
.v2-dock-tabs { display:grid; grid-template-columns:repeat(5,1fr); gap:2px; flex:0 0 auto; padding:14px 8px 0; border-bottom:1px solid var(--v2-line); }.v2-dock-tabs button { min-width:0; min-height:35px; padding:0 2px; border:0; border-bottom:2px solid transparent; color:var(--v2-muted); background:transparent; font:700 12px/1 Inter,ui-sans-serif,system-ui,sans-serif; letter-spacing:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-align:center; }.v2-dock-tabs button.is-active { color:var(--v2-coral); border-bottom-color:var(--v2-coral); }.plaidstudio-v2 .cws-right [data-atelier-inspector],.plaidstudio-v2 .cws-right>.cws-left { min-height:0; flex:1 1 auto; overflow:auto; }.plaidstudio-v2 .cws-right>.cws-left { display:none; border:0; }.plaidstudio-v2 .cws-right[data-v2-tab="design"] [data-atelier-inspector] { display:none; }.plaidstudio-v2 .cws-right[data-v2-tab="design"]>.cws-left { display:block; }.plaidstudio-v2 .cws-right[data-v2-tab="design"]>.cws-left>.app-panel { min-height:100%; border:0; border-radius:0; box-shadow:none; }.plaidstudio-v2 .cws-right:not([data-v2-tab="design"])>.cws-left { display:none; }.plaidstudio-v2 .cws-right .insp-tabs { display:none; }.plaidstudio-v2 .cws-right .panel-header { padding:12px 16px 7px; }.plaidstudio-v2 .cws-right .panel-header h2 { font-size:15px; }

/* V2 surface system: quiet paper, compact controls, and no inherited faux depth. */
.plaidstudio-v2 { --f-display:"Segoe UI",Aptos,ui-sans-serif,system-ui,sans-serif; --f-body:"Segoe UI",Aptos,ui-sans-serif,system-ui,sans-serif; --f-mono:"Cascadia Mono","SFMono-Regular",Consolas,monospace; --fz-xs:10px; --fz-sm:11px; --fz-base:12px; --fz-md:13px; --lh-base:1.35; }
.plaidstudio-v2, .plaidstudio-v2 button, .plaidstudio-v2 input, .plaidstudio-v2 select { font-family:var(--f-body); letter-spacing:0; }
.plaidstudio-v2 .app-topbar { height:64px; padding:0 18px; }.plaidstudio-v2 .v2-main { height:calc((100vh / var(--cws-desktop-ui-zoom, 1)) - 64px); }.plaidstudio-v2 .mode-select.v2-mode-select { display:none; }.plaidstudio-v2 .mode-area { display:flex; align-items:center; }.plaidstudio-v2 .mode-area .v2-brand { width:41px; height:41px; margin:0; overflow:hidden; border-radius:6px; }.plaidstudio-v2 .mode-area .v2-brand-logo { display:block; width:41px; height:41px; max-width:none; transform:none; }
.plaidstudio-v2 .cws-tab--launcher { height:32px; padding:0 11px; font-size:11px; }.plaidstudio-v2 .v2-navigation { padding:18px 18px 14px; }.v2-brand { gap:8px; margin-bottom:23px; }.v2-brand-mark { width:58px; height:58px; border-radius:8px; }.v2-brand-mark img { width:20px; height:32px; }.v2-brand strong { font-size:31px; line-height:.9; }.v2-brand small { margin-top:4px; font-size:10px; }
.v2-nav-section { margin-bottom:13px; padding-bottom:11px; }.v2-nav-section>p { margin-bottom:5px; font-size:10px; }.v2-nav-section button { min-height:34px; gap:11px; padding:0 8px; border-radius:5px; font-size:13px; }.v2-nav-section button span { font-size:15px; }.v2-collections button { min-height:25px; font-size:12px; }.v2-account { padding-top:11px; }.v2-account>span { width:30px; height:30px; }
.v2-dock-tabs { padding:10px 6px 0; }.v2-dock-tabs button { min-height:31px; font-size:9px; letter-spacing:0; text-transform:uppercase; padding:0 1px; }.plaidstudio-v2 .cws-right .right-tabs { display:none; }.plaidstudio-v2 .cws-right .panel-header { padding:10px 14px 6px; }.plaidstudio-v2 .cws-right .panel-header-eyebrow { font-size:9px; }.plaidstudio-v2 .cws-right .panel-header-title { font-size:14px; font-weight:700; }.plaidstudio-v2 .cws-right .panel-body { padding:8px 10px 12px; }
/* FC-V2-FX-CARDS-ONELINE — the FX section picker (Ikat / Distort / Texture)
   was the one corner still on the base app font (Fraunces/mono) and still a
   2-column card grid that wrapped to a second row. Flatten it to one row of
   plain labels with a "|" between them, in the same Segoe UI stack as the
   rest of the V2 panel. */
.plaidstudio-v2 .cws-right .insp-card-glyph,
.plaidstudio-v2 .cws-right .insp-card-label,
.plaidstudio-v2 .cws-right .insp-card-desc { font-family:var(--f-body); }
.plaidstudio-v2 .cws-right .insp-cards { display:flex; flex-wrap:nowrap; gap:0; background:#fffdf9; border:1px solid #eee7de; border-radius:5px; overflow:hidden; }
.plaidstudio-v2 .cws-right .insp-card { flex:1 1 0; min-width:0; grid-template-columns:14px 1fr; gap:0 6px; padding:5px 8px; border:0; border-radius:0; background:transparent; box-shadow:none; position:relative; }
.plaidstudio-v2 .cws-right .insp-card + .insp-card::before { content:"|"; position:absolute; left:0; top:50%; transform:translateY(-50%); color:#e6ddd4; }
.plaidstudio-v2 .cws-right .insp-card.is-active { background:#fff7f2; box-shadow:inset 2px 0 0 var(--v2-coral); }
.plaidstudio-v2 .cws-right .insp-card-glyph { font-size:13px; }
.plaidstudio-v2 .cws-right .insp-card-label { font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.plaidstudio-v2 .cws-right .insp-card-desc { font-size:9px; }
.plaidstudio-v2 .cws-right button:not(.v2-dock-tabs button), .plaidstudio-v2 .cws-right input, .plaidstudio-v2 .cws-right select { border-radius:4px; box-shadow:none; }.plaidstudio-v2 .cws-right button:not(.v2-dock-tabs button) { min-height:25px; background:#fffdf9; border-color:#e6ddd4; color:#45403c; font-size:10px; }.plaidstudio-v2 .cws-right button:not(.v2-dock-tabs button):hover { background:#fff5f0; border-color:#ffbdb8; color:#d94b51; transform:none; }.plaidstudio-v2 .cws-right input, .plaidstudio-v2 .cws-right select { min-height:28px; padding:4px 8px; background:#fffdf9; font-size:11px; }
.plaidstudio-v2 .cws-right .section-row, .plaidstudio-v2 .cws-right .se-group-card { border-color:#e7dfd6; box-shadow:none; }.plaidstudio-v2 .cws-right .section-row { padding:8px; border-radius:5px; background:#fffdf9; }.plaidstudio-v2 .cws-right .section-row + .section-row { margin-top:5px; }.plaidstudio-v2 .cws-right .insp-sett-dropdown { }.plaidstudio-v2 .cws-right .insp-sett-trigger, .plaidstudio-v2 .cws-right .insp-sett-row { border-radius:4px; box-shadow:none; }.plaidstudio-v2 .cws-right .se-groups { gap:5px; }.plaidstudio-v2 .cws-right .se-group-card { padding:7px 8px; border-radius:5px; background:#fffdf9; }.plaidstudio-v2 .cws-right .se-group-card.is-selected { border-color:#ffaaa5; box-shadow:inset 2px 0 0 var(--v2-coral); }.plaidstudio-v2 .cws-right .se-group-head { gap:5px; }.plaidstudio-v2 .cws-right .se-group-name { font-size:11px; }.plaidstudio-v2 .cws-right .se-role-pill, .plaidstudio-v2 .cws-right .cws-owner-badge { font-size:8px; }.plaidstudio-v2 .cws-right .se-stripe-chip { width:18px; height:18px; font-size:9px; }
.plaidstudio-v2 .cws-right .insp-content { gap:4px; background:transparent; }.plaidstudio-v2 .cws-right .insp-section { gap:2px; padding:2px 0 5px; border-bottom:1px solid #eee7de; }.plaidstudio-v2 .cws-right .insp-section:last-child { border-bottom:0; }.plaidstudio-v2 .cws-right .insp-section h4 { font-size:10px; font-weight:700; text-transform:uppercase; }.plaidstudio-v2 .cws-right .insp-section-help { font-size:10px; line-height:1.3; }.plaidstudio-v2 .cws-right .section-row { padding:3px 0; border:0; border-radius:0; background:transparent; }.plaidstudio-v2 .cws-right .section-row + .section-row { margin-top:1px; }.plaidstudio-v2 .cws-right .section-row--block { padding:7px; border:1px solid #eee7de; border-radius:5px; background:#fffdf9; }.plaidstudio-v2 .cws-right .insp-draft-row { padding:6px 0; }.plaidstudio-v2 .cws-right .insp-sett-trigger, .plaidstudio-v2 .cws-right .insp-sett-row { padding:5px 6px; border:0; background:transparent; }.plaidstudio-v2 .cws-right .insp-sett-row.is-active { box-shadow:inset 2px 0 0 var(--v2-coral); background:#fff7f2; }.plaidstudio-v2 .cws-right .insp-yarn-steps { gap:3px; }.plaidstudio-v2 .cws-right .insp-yarn-step { min-height:24px; }.plaidstudio-v2 .cws-right .se-axis-row { margin-bottom:6px; }.plaidstudio-v2 .cws-right .cws-src-items-toolbar { margin:6px 0 5px; }.plaidstudio-v2 .cws-right .se-warp-strip { margin:5px 0; }.plaidstudio-v2 .cws-right .se-link-size { margin:4px 0; }
.plaidstudio-v2 .cws-right input[type="range"] { height:14px; }.plaidstudio-v2 .cws-right input[type="range"]::-webkit-slider-thumb { width:10px; height:10px; margin-top:-4px; border-color:#ff7778; background:#ff5a5f; box-shadow:none; }.plaidstudio-v2 .cws-right input[type="range"]::-webkit-slider-runnable-track { height:3px; background:#e9dfd6; border:0; box-shadow:none; }.plaidstudio-v2 .cws-right .micro-val, .plaidstudio-v2 .cws-right .panel-header-eyebrow, .plaidstudio-v2 .cws-right .section-row label { font-family:var(--f-mono); letter-spacing:.04em; }
.plaidstudio-v2 .cws-vp-ruler-frame { --vp-ruler-bg:#f7f3ec; --vp-ruler-border:#ddd3c8; --vp-ruler-tick:#aaa097; --vp-ruler-tick-faint:#ded7cf; --vp-ruler-text:#6f6861; }
.plaidstudio-v2 .cws-vp-ruler-corner { font-family:var(--f-mono); font-size:8px; letter-spacing:.02em; }

/* FC-V2-IKAT-DOCK-TAB — V2 promoted Ikat to its own top-level dock tab (next to
   Studio FX), so it no longer needs a seat in the Studio FX card strip too.
   The card itself stays in the DOM (the dock tab's click-through routing still
   targets it) — only its card-strip tile is hidden, and only in V2; the base
   (non-V2) shell has no separate Ikat tab, so it must keep the card visible. */
.plaidstudio-v2 [data-insp-fx-card="ikat"] { display: none; }

.plaidstudio-v2 .insp-ranges-modal-panel { background: var(--v2-paper); border-color: var(--v2-line); color: var(--v2-ink); }
.plaidstudio-v2 .insp-ranges-modal-head { border-color: var(--v2-line); }

/* "Save to Library" is the one action on this panel that actually leaves the
   design somewhere durable — it read as just another grey ghost button next
   to Equalise/Random colours. Give it the accent fill both copies (viewport
   toolbar + Generate tab) share so it reads as the one that matters. */
.plaidstudio-v2 [data-vp-action="save-asset"],
.plaidstudio-v2 .cws-right [data-insp-gen-action="save-asset"] {
  background: var(--v2-coral) !important;
  border-color: var(--v2-coral) !important;
  color: #fff !important;
  font-weight: 700;
}
.plaidstudio-v2 [data-vp-action="save-asset"]:hover,
.plaidstudio-v2 .cws-right [data-insp-gen-action="save-asset"]:hover {
  background: #e6484d !important;
  border-color: #e6484d !important;
  color: #fff !important;
}

/* FC-V2-RANDOM-TIGHTEN — Ranges now lives inline under Random (no longer its
   own dock tab), so the Quick-mutate body + Ranges body stack in one scroll.
   Their spacing was set by INLINE styles (margin-top:4-7px, gap:6px) meant for
   a taller base panel; on a short viewport that pushes Ranges below the fold.
   These rules need !important to beat the inline styles — there is no lower-
   specificity way to override style="" attributes. Applies to every mode's
   Quick-mutate body, not just weave, since they share the same markup. */
.plaidstudio-v2 .cws-right [data-insp-card-body="gen-quick"] .row,
.plaidstudio-v2 .cws-right [data-insp-card-body="gen-quick"] .section-row,
.plaidstudio-v2 .cws-right [data-insp-card-body="gen-quick"] .insp-subsection,
.plaidstudio-v2 .cws-right [data-insp-card-body="gen-ranges"] .row,
.plaidstudio-v2 .cws-right [data-insp-card-body="gen-ranges"] .section-row {
  margin-top: 2px !important;
  padding-top: 2px !important;
}
.plaidstudio-v2 .cws-right [data-insp-card-body="gen-quick"] .row,
.plaidstudio-v2 .cws-right [data-insp-card-body="gen-ranges"] .row { gap: 4px !important; }
.plaidstudio-v2 .cws-right .insp-content { gap: 3px; }
.plaidstudio-v2 .cws-right .insp-yarn-control { margin-top: 2px; }
.plaidstudio-v2 .cws-right .insp-range-row { padding: 0 !important; }
.plaidstudio-v2 .cws-right .insp-range-group-head { margin: 2px 0 1px !important; }

/* FC-V2-GEOPRINT-SUBMODE-DUP — GeoPrint and Canvas are already separate
   top-level entries in the V2 left nav (each dispatches its own subMode), so
   the right panel's own GeoPrint/Canvas sub-mode toggle is a second, redundant
   way to do the same thing. Base (non-V2) UI has no such nav split, so it
   keeps the toggle. */
.plaidstudio-v2 .cws-right .section-row:has([data-insp-geometry-submode]) { display: none; }

/* The floating "Open tweaks" gear (Accent/Density) is a debug-era polish
   widget mounted straight on <body>, outside the V2 shell tree — it has no
   home in the V2 layout and the user flagged it as clutter. :has() scopes the
   hide to pages actually running the V2 shell; the base (non-V2) shell keeps it. */
body:has(.plaidstudio-v2) .ws-tweaks-toggle,
body:has(.plaidstudio-v2) .ws-tweaks-panel { display: none !important; }

/* Re-assert the section-actions colour cue on top of the V2 theme's flat
   grey button skin (.cws-right button:not(...) above wins on specificity
   otherwise, since it loads after app-panel.css). */
.plaidstudio-v2 .cws-right .gpv2-wc-section-actions .gpv2-wc-section-reset-btn {
  color: var(--v2-coral);
  border-color: #ffcac5;
}
.plaidstudio-v2 .cws-right .gpv2-wc-section-actions .gpv2-wc-section-reset-btn.is-active {
  color: #fff;
  background: var(--v2-coral);
  border-color: var(--v2-coral);
}
.plaidstudio-v2 .cws-right .gpv2-wc-section-actions [data-insp-fx-reset],
.plaidstudio-v2 .cws-right .gpv2-wc-section-actions [data-insp-fx-reset-all] {
  color: #b9711f;
  border-color: #f0d4ab;
}
.plaidstudio-v2 .cws-right .gpv2-wc-section-actions [data-insp-fx-reset]:hover,
.plaidstudio-v2 .cws-right .gpv2-wc-section-actions [data-insp-fx-reset-all]:hover {
  color: #fff;
  background: #b9711f;
  border-color: #b9711f;
}

/* Segmented controls are state selectors, not generic buttons. */
.plaidstudio-v2 .cws-right .tweaks-segmented { gap:3px; padding:3px; border:1px solid #e5ddd4; border-radius:6px; background:#f5f0e9; }
.plaidstudio-v2 .cws-right .tweaks-segmented button { min-height:28px; padding:0 8px; border:1px solid transparent; border-radius:4px; background:transparent; color:#847b73; font-size:10px; font-weight:650; box-shadow:none; transition:background 120ms ease,color 120ms ease,border-color 120ms ease; }
.plaidstudio-v2 .cws-right .tweaks-segmented button:hover { background:#fffdf9; border-color:#ead8d2; color:#4b4540; }
.plaidstudio-v2 .cws-right .tweaks-segmented[role="radiogroup"] button.is-active { background:var(--v2-coral); border-color:var(--v2-coral); color:#fff; box-shadow:0 1px 2px rgba(190,68,72,.18); }
.plaidstudio-v2 .cws-right .tweaks-segmented[role="radiogroup"] button[data-insp-gen-filaafil="off"].is-active { background:#6f7776; border-color:#6f7776; }
.plaidstudio-v2 .cws-right .tweaks-segmented[role="radiogroup"] button[data-insp-gen-filaafil="on"].is-active { background:var(--v2-coral); border-color:var(--v2-coral); }
.plaidstudio-v2 .cws-right .tweaks-segmented[role="group"] button.is-active { background:#fff7f2; border-color:#ffbbb6; color:#cd4b50; }
.plaidstudio-v2 .cws-right .tweaks-segmented button:focus-visible { outline:2px solid rgba(255,90,95,.32); outline-offset:1px; }
.plaidstudio-v2 .cws-right [data-insp-gen-action="mutate-random"] { display:none; }
.plaidstudio-v2 .cws-right .insp-section { gap:0; padding:1px 0 4px; }.plaidstudio-v2 .cws-right .section-row { grid-template-columns:88px minmax(0,1fr); column-gap:4px; min-height:27px; padding:1px 0; align-items:center; }.plaidstudio-v2 .cws-right .section-row + .section-row { margin-top:0; }.plaidstudio-v2 .cws-right .section-input-row { min-height:26px; gap:3px; }.plaidstudio-v2 .cws-right .section-row:has(.section-input-row input[type="range"]) { grid-template-columns:88px minmax(0,1fr) 38px auto; column-gap:4px; }.plaidstudio-v2 .cws-right .tweaks-segmented { gap:2px; padding:2px; }.plaidstudio-v2 .cws-right .tweaks-segmented button { min-height:24px; padding:0 7px; }.plaidstudio-v2 .cws-right input, .plaidstudio-v2 .cws-right select { min-height:26px; }
.plaidstudio-v2 .cws-right .se-link-size { display:flex; align-items:center; justify-content:center; gap:6px; width:100%; min-height:28px; margin:3px 0; padding:0 9px; border:1px solid #e4ddd5; border-radius:5px; background:#fffdf9; color:#766e67; font-size:10px; font-weight:650; }.plaidstudio-v2 .cws-right .se-link-size:hover { border-color:#ffbbb6; background:#fff6f1; color:#c84b50; }.plaidstudio-v2 .cws-right .se-link-size.is-on, .plaidstudio-v2 .cws-right .se-link-size[aria-pressed="true"] { border-color:var(--v2-coral); background:#fff0ed; color:#d9484e; }.plaidstudio-v2 .cws-right .se-link-size.is-on .se-link-size-mark, .plaidstudio-v2 .cws-right .se-link-size[aria-pressed="true"] .se-link-size-mark { color:var(--v2-coral); filter:saturate(1.15); }
.plaidstudio-v2 .cws-right .section-row.insp-yarn-steps { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:2px; min-height:0; padding:1px 0; }.plaidstudio-v2 .cws-right button.insp-yarn-step { min-width:0; min-height:22px; padding:0 2px; white-space:nowrap; font-size:9px; line-height:1; }
.plaidstudio-v2 .cws-right .insp-yarn-control { display:block; padding:3px 0; }.plaidstudio-v2 .cws-right .insp-yarn-control-head { margin-bottom:3px; }.plaidstudio-v2 .cws-right .insp-yarn-control .insp-yarn-steps { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:2px; }
.plaidstudio-v2 .cws-right button[data-insp-gen-action="save-asset"] { background:var(--v2-coral); border-color:var(--v2-coral); color:#fff; font-weight:700; }.plaidstudio-v2 .cws-right button[data-insp-gen-action="save-asset"]:hover { background:#e94e54; border-color:#e94e54; color:#fff; }
.plaidstudio-v2 .cws-center { padding:8px; }.plaidstudio-v2 .cws-center .ws-viewport-canvas-wrap { padding:0; }.plaidstudio-v2 .cws-center .viewport-stage { padding:.5cm; background:#c9c1b7; }
.plaidstudio-v2 .cws-right .section-row.insp-gen-linkrow { min-height:0; padding:0; }.plaidstudio-v2 .cws-right .section-row.insp-gen-linkrow > label.insp-gen-linksize { min-height:22px; gap:4px; padding:2px 6px; border-radius:4px; font-size:9px; line-height:1; }.plaidstudio-v2 .cws-right .insp-gen-linksize input[type="checkbox"] { box-sizing:border-box; min-height:11px; width:11px; height:11px; padding:0; }.plaidstudio-v2 .cws-right .insp-gen-linksize-mark { font-size:10px; }
.plaidstudio-v2 .cws-right .se-role-pill[data-role="ground"] { border-color:#b8c9ae; background:#edf3e9; color:#537148; }.plaidstudio-v2 .cws-right .se-role-pill[data-role="line"] { border-color:#b6cbd4; background:#eaf2f5; color:#416a7a; }.plaidstudio-v2 .cws-right .se-role-pill[data-role="accent"] { border-color:#ffbdb8; background:#fff0ed; color:#d94b51; }.plaidstudio-v2 .cws-right .se-role-pill[data-role]:hover { filter:brightness(.97); }
.plaidstudio-v2 .cws-right .se-stripe-chip.is-active, .plaidstudio-v2 .cws-right .se-stripe-chip.is-active:hover { border-color:#d94b51; background:var(--v2-coral); color:#fff; box-shadow:0 0 0 1px rgba(217,75,81,.22); }
/* The active mode and dock tab already identify the panel; duplicate headers
   consume vertical space without adding a useful action. */
.plaidstudio-v2 .cws-right .panel-header { display:none; }
.plaidstudio-v2 .cws-right[data-v2-tab="design"] .cws-left .panel-body { padding-top:8px; }
/* Group number selection belongs to its own compact line. The first line stays
   readable while the chips and row actions remain available without a wide gap. */
.plaidstudio-v2 .cws-right .se-group-head > .se-stripe-chips { display:flex; align-items:center; flex:0 0 100%; gap:2px; min-width:0; margin-top:1px; order:2; }
.plaidstudio-v2 .cws-right .se-stripe-chip { width:16px; height:16px; font-size:8px; }
.plaidstudio-v2 .cws-right .se-stripe-mini { width:16px; height:16px; font-size:9px; }
/* Dense stripe rows: the values remain legible, but controls no longer make
   each group taller than the fabric editing work requires. */
.plaidstudio-v2 .cws-right .se-group-card { padding:5px 6px; }
.plaidstudio-v2 .cws-right .se-group-head { gap:2px 3px; }
.plaidstudio-v2 .cws-right .se-group-handle { padding:1px; font-size:10px; }
.plaidstudio-v2 .cws-right .se-group-name { font-size:10px; }
.plaidstudio-v2 .cws-right .se-group-swatch { width:12px; height:12px; }
.plaidstudio-v2 .cws-right .se-role-pill { min-height:18px; padding:1px 4px; font-size:7px; }
.plaidstudio-v2 .cws-right .se-group-head .se-group-width-input { flex-basis:56px; min-width:48px; max-width:100px; }
.plaidstudio-v2 .cws-right .se-group-width { width:30px; font-size:9px; }
.plaidstudio-v2 .cws-right .se-group-head > .se-stripe-chips { gap:1px; margin-top:0; }
.plaidstudio-v2 .cws-right .se-stripe-chip, .plaidstudio-v2 .cws-right .se-stripe-mini { width:14px; min-height:14px; height:14px; font-size:8px; }
@media (max-width:1200px) { .plaidstudio-v2 .v2-main { grid-template-columns:70px minmax(0,1fr) 300px; }.v2-brand>span:last-child,.v2-nav-section>p,.v2-nav-section button:not(.v2-mode),.v2-mode:not(.is-active){font-size:0}.v2-brand-mark{width:42px;height:42px}.v2-brand-mark img{width:15px;height:24px}.v2-navigation{padding:16px 12px}.v2-nav-section button{justify-content:center;padding:0}.v2-nav-section button span{font-size:17px}.v2-account div,.v2-account button{display:none}.v2-account{justify-content:center}.plaidstudio-v2 .cws-center{padding:14px}.plaidstudio-v2 .app-topbar-center{display:none} }
