/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:"Geist", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--color-gray-200:oklch(92.8% .006 264.531);--color-white:#fff;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-semibold:600;--radius-lg:.5rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-wp-admin-primary:var(--wp-admin-primary,#2271b1)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:after,:before,::backdrop{border-color:var(--color-gray-200,currentcolor)}::file-selector-button{border-color:var(--color-gray-200,currentcolor)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}}@layer utilities{.visible{visibility:visible!important}.fixed{position:fixed!important}.relative{position:relative!important}.static{position:static!important}.sticky{position:sticky!important}.isolate{isolation:isolate!important}.container{width:100%!important}@media (min-width:40rem){.container{max-width:40rem!important}}@media (min-width:48rem){.container{max-width:48rem!important}}@media (min-width:64rem){.container{max-width:64rem!important}}@media (min-width:80rem){.container{max-width:80rem!important}}@media (min-width:96rem){.container{max-width:96rem!important}}.block{display:block!important}.contents{display:contents!important}.flex{display:flex!important}.grid{display:grid!important}.hidden{display:none!important}.inline{display:inline!important}.inline-block{display:inline-block!important}.table{display:table!important}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)!important}.rounded-lg{border-radius:var(--radius-lg)!important}.border{border-style:var(--tw-border-style)!important;border-width:1px!important}.bg-white{background-color:var(--color-white)!important}.text-lg{font-size:var(--text-lg)!important;line-height:var(--tw-leading,var(--text-lg--line-height))!important}.font-semibold{--tw-font-weight:var(--font-weight-semibold)!important;font-weight:var(--font-weight-semibold)!important}.lowercase{text-transform:lowercase!important}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d)!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}.outline{outline-style:var(--tw-outline-style)!important;outline-width:1px!important}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)!important}}@font-face{font-family:Geist;font-weight:400;font-display:swap;src:url(fonts/Geist-Regular.babe3ad1.woff2)format("woff2")}@font-face{font-family:Geist;font-weight:500;font-display:swap;src:url(fonts/Geist-Medium.2e52e4ac.woff2)format("woff2")}@font-face{font-family:Geist;font-weight:600;font-display:swap;src:url(fonts/Geist-SemiBold.c1338fc4.woff2)format("woff2")}@font-face{font-family:Geist;font-weight:700;font-display:swap;src:url(fonts/Geist-Bold.9d6cbed4.woff2)format("woff2")}@font-face{font-family:Geist Mono;font-weight:400;font-display:swap;src:url(fonts/GeistMono-Regular.44a8b8a4.woff2)format("woff2")}@font-face{font-family:Geist Mono;font-weight:500;font-display:swap;src:url(fonts/GeistMono-Medium.4fd6195e.woff2)format("woff2")}@font-face{font-family:Geist Mono;font-weight:600;font-display:swap;src:url(fonts/GeistMono-SemiBold.e431c5e5.woff2)format("woff2")}.fp-root{font-family:var(--font-sans);--fp-admin-bar:32px;--r-xs:6px;--r-sm:8px;--r-md:10px;--r-lg:14px;--r-xl:18px;--r-full:999px;--density:1;--accent:oklch(55% .205 277);--accent-contrast:#fff;--bg:oklch(98.5% .003 270);--bg-2:oklch(96.5% .004 270);--surface:oklch(100% 0 0);--surface-2:oklch(98.5% .003 270);--surface-inset:oklch(97.2% .004 270);--border:oklch(91.6% .005 270);--border-strong:oklch(86% .006 270);--text:oklch(24.5% .012 274);--text-2:oklch(46% .012 274);--text-3:oklch(62% .011 274);--text-faint:oklch(72% .009 274);--shadow-color:274 30% 30%;--shadow-sm:0 1px 2px hsl(var(--shadow-color) / .06), 0 1px 1px hsl(var(--shadow-color) / .04);--shadow-md:0 4px 12px -2px hsl(var(--shadow-color) / .1), 0 2px 4px -2px hsl(var(--shadow-color) / .06);--shadow-lg:0 16px 40px -8px hsl(var(--shadow-color) / .16), 0 6px 14px -6px hsl(var(--shadow-color) / .1);--shadow-pop:0 24px 60px -12px hsl(var(--shadow-color) / .28), 0 8px 20px -8px hsl(var(--shadow-color) / .16);--green:oklch(62% .16 152);--amber:oklch(74% .15 75);--red:oklch(60% .21 22);--sky:oklch(62% .14 232);--violet:oklch(58% .2 300);--accent-hover:var(--accent)}@supports (color:color-mix(in lab, red, red)){.fp-root{--accent-hover:color-mix(in oklch, var(--accent), black 12%)}}.fp-root{--accent-soft:var(--accent)}@supports (color:color-mix(in lab, red, red)){.fp-root{--accent-soft:color-mix(in oklch, var(--accent) 12%, var(--surface))}}.fp-root{--accent-soft-2:var(--accent)}@supports (color:color-mix(in lab, red, red)){.fp-root{--accent-soft-2:color-mix(in oklch, var(--accent) 20%, var(--surface))}}.fp-root{--accent-line:var(--accent)}@supports (color:color-mix(in lab, red, red)){.fp-root{--accent-line:color-mix(in oklch, var(--accent) 32%, var(--border))}}.fp-root{--ring:var(--accent)}@supports (color:color-mix(in lab, red, red)){.fp-root{--ring:color-mix(in oklch, var(--accent) 36%, transparent)}}.fp-root{background:var(--bg-2);color:var(--text);height:100vh;height:calc(100vh - var(--fp-admin-bar));-webkit-font-smoothing:antialiased;flex-direction:column;display:flex;overflow:hidden}@media screen and (max-width:782px){.fp-root{--fp-admin-bar:46px}}body:not(.admin-bar) .fp-root{--fp-admin-bar:0px}.fp-root *,.fp-root :before,.fp-root :after{box-sizing:border-box}.fp-root[data-theme=dark]{--bg:oklch(16.5% .011 270);--bg-2:oklch(14.5% .011 270);--surface:oklch(20.5% .013 270);--surface-2:oklch(23.2% .014 270);--surface-inset:oklch(18.5% .012 270);--border:oklch(29.2% .014 270);--border-strong:oklch(36% .016 270);--text:oklch(96.5% .004 270);--text-2:oklch(74% .012 270);--text-3:oklch(60% .013 270);--text-faint:oklch(50% .013 270);--shadow-color:270 50% 2%;--shadow-sm:0 1px 2px hsl(var(--shadow-color) / .3);--shadow-md:0 4px 14px -2px hsl(var(--shadow-color) / .45), 0 2px 4px -2px hsl(var(--shadow-color) / .35);--shadow-lg:0 18px 44px -8px hsl(var(--shadow-color) / .55), 0 6px 14px -6px hsl(var(--shadow-color) / .4);--shadow-pop:0 28px 70px -12px hsl(var(--shadow-color) / .7), 0 10px 24px -8px hsl(var(--shadow-color) / .5);--green:oklch(72% .17 152);--amber:oklch(80% .15 80);--red:oklch(68% .19 22);--sky:oklch(70% .14 232);--violet:oklch(70% .18 300);--accent-soft:var(--accent)}@supports (color:color-mix(in lab, red, red)){.fp-root[data-theme=dark]{--accent-soft:color-mix(in oklch, var(--accent) 22%, var(--surface))}}.fp-root[data-theme=dark]{--accent-soft-2:var(--accent)}@supports (color:color-mix(in lab, red, red)){.fp-root[data-theme=dark]{--accent-soft-2:color-mix(in oklch, var(--accent) 34%, var(--surface))}}.fp-root[data-theme=dark]{--accent-hover:var(--accent)}@supports (color:color-mix(in lab, red, red)){.fp-root[data-theme=dark]{--accent-hover:color-mix(in oklch, var(--accent), white 10%)}}.fp-root[data-accent=indigo]{--accent:oklch(55% .205 277);--accent-contrast:#fff}.fp-root[data-accent=blue]{--accent:oklch(55% .205 256);--accent-contrast:#fff}.fp-root[data-accent=violet]{--accent:oklch(56% .225 300);--accent-contrast:#fff}.fp-root[data-accent=emerald]{--accent:oklch(60% .145 162);--accent-contrast:#fff}.fp-root[data-accent=amber]{--accent:oklch(72% .155 66);--accent-contrast:oklch(28% .04 70)}.fp-root[data-theme=dark][data-accent=amber]{--accent:oklch(78% .155 72)}.fp-root *{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.fp-root ::-webkit-scrollbar{width:10px;height:10px}.fp-root ::-webkit-scrollbar-thumb{background:var(--border-strong);background-clip:content-box;border:3px solid #0000;border-radius:999px}.fp-root ::-webkit-scrollbar-thumb:hover{background:var(--text-faint);background-clip:content-box}.fp-root .mono{font-family:var(--font-mono);font-feature-settings:"tnum"}.fp-root .tnum{font-variant-numeric:tabular-nums}.fp-root .fp-focusable:focus-visible,.fp-root input:focus-visible,.fp-root button:focus-visible,.fp-root select:focus-visible{box-shadow:0 0 0 3px var(--ring);outline:none}.fp-root ::selection{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.fp-root ::selection{background:color-mix(in oklch, var(--accent) 28%, transparent)}}@keyframes fp-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fp-fade{0%{opacity:0}to{opacity:1}}@keyframes fp-pop{0%{opacity:0;transform:scale(.96)translateY(6px)}to{opacity:1;transform:none}}@keyframes fp-spin{to{transform:rotate(-360deg)}}@keyframes fp-shimmer{to{background-position:-100% 0}}@keyframes fp-bar{0%{width:0}}@keyframes fp-rise{0%{transform:translateY(10px)}to{transform:none}}@keyframes fp-row-in{0%{transform:translateY(5px)}to{transform:none}}.fp-root .fp-enter{animation:.42s cubic-bezier(.2,.7,.2,1) fp-rise}@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important}}@keyframes collapsible-down{0%{height:0}to{height:var(--radix-collapsible-content-height)}}@keyframes collapsible-up{0%{height:var(--radix-collapsible-content-height)}to{height:0}}@keyframes progress-shimmer{0%{background-position:300% 0}to{background-position:-100% 0}}body:has(#easycommerce-fakerpress-root) #wpcontent{padding-right:0}body:has(#easycommerce-fakerpress-root) #wpcontent a:focus{box-shadow:none}body:has(#easycommerce-fakerpress-root) #wpfooter{display:none}body:has(#easycommerce-fakerpress-root) #wpbody-content{padding-bottom:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}

/* ============================================================
   FakerPress — components & layout (scoped to .fp-root)
   ============================================================ */

/* ===== plugin app shell ===== */
.fp-root .fp-app { flex:1; min-width:0; min-height:0; background:var(--bg-2); display:flex; flex-direction:column; }
.fp-root .fp-shell { flex:1; display:flex; min-height:0; }

.fp-root .fp-nav {
  width:252px; flex-shrink:0; background:var(--surface); border-left:1px solid var(--border);
  display:flex; flex-direction:column; min-height:0;
}
.fp-root .fp-brand { display:flex; align-items:center; gap:10px; padding:16px 18px 12px; }
.fp-root .fp-brand-mark {
  width:30px; height:30px; border-radius:9px; flex-shrink:0;
  background:linear-gradient(-140deg, var(--accent), color-mix(in oklch, var(--accent), var(--violet) 55%));
  color:var(--accent-contrast); display:grid; place-items:center; box-shadow:var(--shadow-sm);
}
.fp-root .fp-brand-name { font-weight:650; font-size:15px; letter-spacing:-.01em; }
.fp-root .fp-brand-sub { font-size:11px; color:var(--text-3); margin-top:-2px; }
.fp-root .fp-cmd-btn {
  margin:2px 14px 10px; display:flex; align-items:center; gap:9px; height:38px; padding:0 12px;
  background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md);
  color:var(--text-faint); font-size:13.5px; font-family:inherit; cursor:text;
  transition:border-color .12s, box-shadow .12s, background .12s;
}
.fp-root .fp-cmd-btn .fp-nav-text { color:var(--text-faint); }
.fp-root .fp-cmd-btn > svg { color:var(--text-3); transition:color .12s; }
.fp-root .fp-cmd-btn:hover { border-color:var(--border-strong); }
.fp-root .fp-cmd-btn:hover > svg { color:var(--accent); }
.fp-root .fp-cmd-btn:focus-visible { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--ring); }
.fp-root .fp-cmd-btn:focus-visible > svg { color:var(--accent); }
.fp-root .fp-cmd-btn .kbd { margin-right:auto; display:flex; gap:3px; }
.fp-root .kbd-key { font-family:var(--font-mono); font-size:10.5px; background:var(--surface); border:1px solid var(--border); border-radius:4px; padding:1px 5px; color:var(--text-3); }

.fp-root .fp-nav-scroll { flex:1; overflow-y:auto; padding:4px 10px 14px; }
.fp-root .fp-nav-group-label { font-size:10.5px; font-weight:600; letter-spacing:.07em; text-transform:uppercase; color:var(--text-faint); padding:12px 10px 5px; }
.fp-root .fp-nav-item {
  display:flex; align-items:center; gap:10px; width:100%; padding:7px 10px; border-radius:var(--r-sm);
  color:var(--text-2); font-size:13.5px; cursor:pointer; border:none; background:none; text-align:right; position:relative;
}
.fp-root .fp-nav-item:hover { background:var(--surface-inset); color:var(--text); }
.fp-root .fp-nav-item.active { background:var(--accent-soft); color:var(--accent); font-weight:550; }
.fp-root .fp-nav-item.active .fp-nav-ic { color:var(--accent); }
.fp-root .fp-nav-ic { color:var(--text-3); }
.fp-root .fp-nav-count { margin-right:auto; font-size:11px; font-family:var(--font-mono); color:var(--text-faint); background:var(--surface-inset); padding:1px 7px; border-radius:var(--r-full); }
.fp-root .fp-nav-item.active .fp-nav-count { background:color-mix(in oklch, var(--accent) 16%, transparent); color:var(--accent); }

.fp-root .fp-nav-foot { border-top:1px solid var(--border); padding:8px 10px; display:flex; flex-direction:column; gap:1px; }

/* collapse toggle + collapsed sidebar */
.fp-root .fp-nav { transition:width .2s cubic-bezier(.4,0,.2,1); }
.fp-root .fp-brand { position:relative; }
.fp-root .fp-brand-text { min-width:0; }
.fp-root .fp-nav-collapse { margin-right:auto; width:28px; height:28px; flex-shrink:0; display:grid; place-items:center; border:1px solid transparent; border-radius:var(--r-sm); background:none; color:var(--text-3); cursor:pointer; }
.fp-root .fp-nav-collapse:hover { background:var(--surface-inset); color:var(--text); border-color:var(--border); }

.fp-root .fp-nav.collapsed { width:68px; }
.fp-root .fp-nav.collapsed .fp-brand { flex-direction:column; gap:8px; padding:14px 0 10px; }
.fp-root .fp-nav.collapsed .fp-nav-collapse { margin-right:0; }
.fp-root .fp-nav.collapsed .fp-cmd-btn { margin:2px auto 8px; width:40px; padding:0; justify-content:center; }
.fp-root .fp-nav.collapsed .fp-cmd-btn .fp-nav-text, .fp-root .fp-nav.collapsed .fp-cmd-btn .kbd { display:none; }
.fp-root .fp-nav.collapsed .fp-nav-scroll { padding:4px 14px 14px; }
.fp-root .fp-nav.collapsed .fp-nav-group-label { padding:0; height:13px; display:flex; align-items:center; }
.fp-root .fp-nav.collapsed .fp-nav-group-rule { display:block; width:100%; height:1px; background:var(--border); }
.fp-root .fp-nav.collapsed .fp-nav-item { justify-content:center; padding:9px 0; }
.fp-root .fp-nav.collapsed .fp-nav-text, .fp-root .fp-nav.collapsed .fp-nav-count { display:none; }

/* ===== topbar ===== */
.fp-root .fp-main { flex:1; min-width:0; display:flex; flex-direction:column; min-height:0; }
.fp-root .fp-topbar {
  height:54px; flex-shrink:0; display:flex; align-items:center; gap:12px; padding:0 22px;
  border-bottom:1px solid var(--border); background:color-mix(in oklch, var(--surface) 70%, transparent);
  backdrop-filter:blur(8px); position:sticky; top:0; z-index:10;
}
.fp-root .fp-crumbs { display:flex; align-items:center; gap:7px; font-size:13.5px; color:var(--text-3); }
.fp-root .fp-crumb-cur { color:var(--text); font-weight:550; }
.fp-root .fp-top-right { margin-right:auto; display:flex; align-items:center; gap:8px; }
.fp-root .fp-locale-pill { display:flex; align-items:center; gap:7px; font-size:12.5px; color:var(--text-2); padding:6px 10px; border:1px solid var(--border); border-radius:var(--r-full); cursor:pointer; }
.fp-root .fp-locale-pill:hover { border-color:var(--border-strong); }
.fp-root .fp-icon-btn { width:34px; height:34px; display:grid; place-items:center; border:1px solid var(--border); border-radius:var(--r-md); background:var(--surface); color:var(--text-2); cursor:pointer; }
.fp-root .fp-icon-btn:hover { border-color:var(--border-strong); color:var(--text); }

.fp-root .fp-scroll { flex:1; overflow-y:auto; }
.fp-root .fp-page { max-width:1180px; margin:0 auto; padding:28px 34px 120px; }
.fp-root .fp-page.wide { max-width:1320px; }

/* ===== headings ===== */
.fp-root .fp-h1 { font-size:25px; font-weight:680; letter-spacing:-.02em; margin:0; }
.fp-root .fp-sub { color:var(--text-3); font-size:14px; margin:6px 0 0; }
.fp-root .fp-h2 { font-size:16px; font-weight:620; letter-spacing:-.01em; margin:0; }

/* ===== cards ===== */
.fp-root .fp-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); box-shadow:var(--shadow-sm); }
.fp-root .fp-seclabel { display:flex; align-items:center; gap:8px; font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--text-faint); white-space:nowrap; }
.fp-root .fp-seclabel span { flex:0 0 auto; }

/* ===== buttons ===== */
.fp-root .fp-btn { display:inline-flex; align-items:center; justify-content:center; gap:7px; border-radius:var(--r-md); font-weight:550; cursor:pointer; border:1px solid transparent; transition:background .12s, border-color .12s, transform .04s, box-shadow .12s; white-space:nowrap; }
.fp-root .fp-btn:active { transform:translateY(.5px); }
.fp-root .fp-btn-md { height:38px; padding:0 16px; font-size:13.5px; }
.fp-root .fp-btn-sm { height:31px; padding:0 11px; font-size:12.5px; }
.fp-root .fp-btn-lg { height:44px; padding:0 22px; font-size:14.5px; }
.fp-root .fp-btn-primary { background:var(--accent); color:var(--accent-contrast); box-shadow:var(--shadow-sm), inset 0 1px 0 color-mix(in oklch, white 22%, transparent); }
.fp-root .fp-btn-primary:hover { background:var(--accent-hover); }
.fp-root .fp-btn-outline { background:var(--surface); color:var(--text); border-color:var(--border-strong); }
.fp-root .fp-btn-outline:hover { background:var(--surface-inset); }
.fp-root .fp-btn-ghost { background:transparent; color:var(--text-2); }
.fp-root .fp-btn-ghost:hover { background:var(--surface-inset); color:var(--text); }
.fp-root .fp-btn-soft { background:var(--accent-soft); color:var(--accent); }
.fp-root .fp-btn-soft:hover { background:var(--accent-soft-2); }
.fp-root .fp-btn-danger { background:var(--surface); color:var(--red); border-color:color-mix(in oklch, var(--red) 35%, var(--border)); }
.fp-root .fp-btn-danger:hover { background:color-mix(in oklch, var(--red) 10%, var(--surface)); }
.fp-root .fp-btn[disabled] { opacity:.5; pointer-events:none; }

/* ===== toggle ===== */
.fp-root .fp-toggle-row { display:flex; align-items:center; gap:11px; cursor:pointer; }
.fp-root .fp-switch { width:38px; height:22px; border-radius:999px; background:var(--border-strong); border:none; padding:0; position:relative; cursor:pointer; transition:background .18s; flex-shrink:0; }
.fp-root .fp-switch.on { background:var(--accent); }
.fp-root .fp-knob { position:absolute; top:2px; right:2px; width:18px; height:18px; border-radius:50%; background:#fff; box-shadow:0 1px 2px rgba(0,0,0,.3); transition:transform .18s cubic-bezier(.3,1.4,.5,1); }
.fp-root .fp-switch.on .fp-knob { transform:translateX(-16px); }
.fp-root .fp-toggle-label { font-size:13.5px; color:var(--text); display:flex; flex-direction:column; }
.fp-root .fp-toggle-hint { font-size:12px; color:var(--text-3); }

/* ===== stepper ===== */
.fp-root .fp-stepper { display:inline-flex; align-items:center; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); overflow:hidden; }
.fp-root .fp-step-btn { width:34px; height:36px; display:grid; place-items:center; background:none; border:none; color:var(--text-2); cursor:pointer; }
.fp-root .fp-step-btn:hover { background:var(--surface-inset); color:var(--text); }
.fp-root .fp-step-input { width:54px; height:36px; border:none; border-right:1px solid var(--border); border-left:1px solid var(--border); background:transparent; text-align:center; font-size:14px; font-weight:550; color:var(--text); outline:none; }

/* ===== chips ===== */
.fp-root .fp-chips { display:flex; flex-wrap:wrap; gap:8px; }
.fp-root .fp-chip { display:inline-flex; align-items:center; gap:6px; height:32px; padding:0 13px; border-radius:var(--r-full); border:1px solid var(--border); background:var(--surface); color:var(--text-2); font-size:13px; font-weight:500; cursor:pointer; transition:all .12s; }
.fp-root .fp-chip:hover { border-color:var(--border-strong); color:var(--text); }
.fp-root .fp-chip.on { background:var(--accent); border-color:var(--accent); color:var(--accent-contrast); padding-right:10px; }

/* ===== inputs ===== */
.fp-root .fp-input-wrap { position:relative; display:flex; align-items:center; }
.fp-root .fp-input { width:100%; height:38px; border:1px solid var(--border); background:var(--surface); border-radius:var(--r-md); padding:0 12px; font-size:13.5px; color:var(--text); outline:none; transition:border-color .12s, box-shadow .12s; }
.fp-root .fp-input::placeholder { color:var(--text-faint); }
.fp-root .fp-input:hover { border-color:var(--border-strong); }
.fp-root .fp-input.has-prefix { padding-right:26px; }
.fp-root .fp-input.has-suffix { padding-left:30px; }
.fp-root .fp-affix { position:absolute; right:12px; font-size:13px; color:var(--text-3); pointer-events:none; }
.fp-root .fp-affix.suf { right:auto; left:12px; }

/* ===== range ===== */
.fp-root .fp-range { display:flex; flex-direction:column; gap:14px; max-width:340px; }
.fp-root .fp-range-inputs { display:flex; align-items:center; gap:10px; }
.fp-root .fp-range-inputs .fp-input-wrap { width:110px; }
.fp-root .fp-range-dash { color:var(--text-faint); }
.fp-root .fp-track { position:relative; height:6px; background:var(--surface-inset); border:1px solid var(--border); border-radius:999px; margin:6px 9px; }
.fp-root .fp-track-fill { position:absolute; top:-1px; bottom:-1px; background:var(--accent); border-radius:999px; }
.fp-root .fp-thumb { position:absolute; top:50%; width:18px; height:18px; margin-right:-9px; border-radius:50%; background:var(--surface); border:2px solid var(--accent); transform:translateY(-50%); cursor:grab; box-shadow:var(--shadow-sm); touch-action:none; }
.fp-root .fp-thumb:active { cursor:grabbing; transform:translateY(-50%) scale(1.12); }

/* ===== select ===== */
.fp-root .fp-select { position:relative; }
.fp-root .fp-select-btn { display:flex; align-items:center; gap:10px; width:100%; height:38px; padding:0 13px 0 11px; border:1px solid var(--border); background:var(--surface); border-radius:var(--r-md); font-size:13.5px; color:var(--text); cursor:pointer; }
.fp-root .fp-select-btn span { flex:1; text-align:right; }
.fp-root .fp-select-btn:hover { border-color:var(--border-strong); }
.fp-root .fp-select-btn.open { border-color:var(--accent); box-shadow:0 0 0 3px var(--ring); }
.fp-root .fp-select-caret { color:var(--text-3); }
.fp-root .fp-pop { animation:fp-pop .14s cubic-bezier(.2,.8,.2,1) both; box-shadow:var(--shadow-pop); }
.fp-root .fp-select-pop { position:absolute; top:calc(100% + 6px); right:0; left:0; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); padding:5px; z-index:40; max-height:280px; overflow-y:auto; }
.fp-root .fp-select-opt { display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; padding:8px 10px; border:none; background:none; border-radius:var(--r-sm); font-size:13.5px; color:var(--text); cursor:pointer; text-align:right; }
.fp-root .fp-select-opt:hover { background:var(--surface-inset); }
.fp-root .fp-select-opt.sel { color:var(--accent); font-weight:550; }

/* ===== badges & status ===== */
.fp-root .fp-badge { display:inline-flex; align-items:center; height:21px; padding:0 8px; border-radius:var(--r-xs); font-size:11.5px; font-weight:550; background:var(--surface-inset); color:var(--text-2); border:1px solid var(--border); }
.fp-root .fp-status { display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:500; color:var(--text); }
.fp-root .fp-status .fp-dot { width:7px; height:7px; border-radius:50%; background:var(--text-3); }
.fp-root .tone-green { color:var(--green); } .fp-root .tone-green .fp-dot { background:var(--green); }
.fp-root .tone-amber { color:var(--amber); } .fp-root .tone-amber .fp-dot { background:var(--amber); }
.fp-root .tone-red { color:var(--red); } .fp-root .tone-red .fp-dot { background:var(--red); }
.fp-root .tone-sky { color:var(--sky); } .fp-root .tone-sky .fp-dot { background:var(--sky); }
.fp-root .fp-badge.tone-green { background:color-mix(in oklch,var(--green) 14%,var(--surface)); border-color:color-mix(in oklch,var(--green) 26%,var(--border)); color:var(--green); }
.fp-root .fp-badge.tone-amber { background:color-mix(in oklch,var(--amber) 16%,var(--surface)); border-color:color-mix(in oklch,var(--amber) 28%,var(--border)); color:color-mix(in oklch,var(--amber),black 18%); }
.fp-root[data-theme="dark"] .fp-badge.tone-amber { color:var(--amber); }
.fp-root .fp-badge.tone-accent { background:var(--accent-soft); border-color:var(--accent-line); color:var(--accent); }

/* ===== popular / pill tags ===== */
.fp-root .fp-tag { font-size:10.5px; font-weight:650; letter-spacing:.03em; text-transform:uppercase; padding:2px 8px; border-radius:var(--r-full); background:color-mix(in oklch,var(--amber) 18%,var(--surface)); color:color-mix(in oklch,var(--amber),black 22%); }
.fp-root[data-theme="dark"] .fp-tag { color:var(--amber); }

/* ===== overlays ===== */
.fp-root .fp-overlay { position:fixed; inset:0; background:color-mix(in oklch, #000 38%, transparent); backdrop-filter:blur(2px); z-index:100; display:flex; animation:fp-fade .15s both; }

/* ===== dashboard ===== */
.fp-root .fp-page-head { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:24px; }
.fp-root .fp-stat-row { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:28px; }
.fp-root .fp-stat { padding:16px 18px; position:relative; overflow:hidden; }
.fp-root .fp-stat-top { display:flex; align-items:center; gap:9px; color:var(--text-3); font-size:12px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; }
.fp-root .fp-stat-ic { width:30px; height:30px; border-radius:8px; display:grid; place-items:center; background:var(--accent-soft); color:var(--accent); }
.fp-root .fp-stat-num { font-size:30px; font-weight:680; letter-spacing:-.02em; margin:12px 0 2px; line-height:1; }
.fp-root .fp-stat-foot { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:10px; }
.fp-root .fp-stat-delta { font-size:12px; font-weight:600; display:inline-flex; align-items:center; gap:3px; }
.fp-root .fp-stat-delta.up { color:var(--green); } .fp-root .fp-stat-delta.flat { color:var(--text-faint); }
.fp-root .fp-stat-empty { font-size:12.5px; color:var(--text-faint); }
.fp-root .fp-spark { opacity:.9; }

.fp-root .fp-group-head { display:flex; align-items:center; gap:10px; margin:26px 0 14px; }
.fp-root .fp-group-head .fp-seclabel { color:var(--text-2); }
.fp-root .fp-group-line { flex:1; height:1px; background:var(--border); }

.fp-root .fp-gen-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.fp-root .fp-gen-card { padding:18px; cursor:pointer; transition:transform .14s cubic-bezier(.2,.7,.2,1), box-shadow .14s, border-color .14s; display:flex; flex-direction:column; text-align:right; border:1px solid var(--border); background:var(--surface); border-radius:var(--r-lg); box-shadow:var(--shadow-sm); min-height:158px; }
.fp-root .fp-gen-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:var(--accent-line); }
.fp-root .fp-gen-card-top { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:14px; }
.fp-root .fp-gen-ic { width:38px; height:38px; border-radius:10px; display:grid; place-items:center; background:var(--accent-soft); color:var(--accent); }
.fp-root .fp-gen-card:hover .fp-gen-ic { background:var(--accent); color:var(--accent-contrast); }
.fp-root .fp-gen-name { font-size:15px; font-weight:600; letter-spacing:-.01em; margin-bottom:5px; }
.fp-root .fp-gen-desc { font-size:12.8px; line-height:1.5; color:var(--text-3); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.fp-root .fp-gen-foot { margin-top:auto; padding-top:14px; display:flex; align-items:center; justify-content:space-between; }
.fp-root .fp-gen-gen { font-size:12px; color:var(--text-faint); font-family:var(--font-mono); }
.fp-root .fp-gen-arrow { color:var(--text-faint); transition:transform .14s, color .14s; }
.fp-root .fp-gen-card:hover .fp-gen-arrow { color:var(--accent); transform:translateX(-3px); }

/* ===== recent activity ===== */
.fp-root .fp-recent { padding:6px 6px; }
.fp-root .fp-recent-row { display:flex; align-items:center; gap:13px; padding:11px 14px; border-radius:var(--r-md); cursor:pointer; }
.fp-root .fp-recent-row:hover { background:var(--surface-inset); }
.fp-root .fp-recent-ic { width:32px; height:32px; border-radius:8px; display:grid; place-items:center; background:var(--surface-inset); color:var(--text-2); flex-shrink:0; }
.fp-root .fp-recent-main { flex:1; min-width:0; }
.fp-root .fp-recent-title { font-size:13.5px; font-weight:550; }
.fp-root .fp-recent-meta { font-size:12px; color:var(--text-3); }
.fp-root .fp-recent-time { font-size:12px; color:var(--text-faint); font-family:var(--font-mono); white-space:nowrap; }
.fp-root .fp-empty { display:flex; flex-direction:column; align-items:center; gap:8px; padding:34px; color:var(--text-faint); text-align:center; }

/* ===== generator page ===== */
.fp-root .fp-gen-main { flex:1; min-height:0; display:flex; flex-direction:column; }
.fp-root .fp-gen-body { flex:1; overflow-y:auto; }
.fp-root .fp-gen-wrap { display:grid; grid-template-columns:minmax(420px,460px) 1fr; gap:0; min-height:100%; }
.fp-root .fp-config-col { padding:26px 30px 40px; border-left:1px solid var(--border); }
.fp-root .fp-config-head { display:flex; gap:14px; margin-bottom:8px; }
.fp-root .fp-config-ic { width:44px; height:44px; border-radius:12px; flex-shrink:0; display:grid; place-items:center; background:var(--accent-soft); color:var(--accent); }
.fp-root .fp-config-title { font-size:20px; font-weight:660; letter-spacing:-.02em; }
.fp-root .fp-config-desc { font-size:13.5px; line-height:1.55; color:var(--text-3); margin:14px 0 4px; }
.fp-root .fp-dep { display:flex; align-items:center; gap:8px; margin-top:14px; padding:9px 12px; background:var(--accent-soft); border:1px solid var(--accent-line); border-radius:var(--r-md); font-size:12.5px; color:var(--accent); }

.fp-root .fp-field-section { padding:20px 0; border-top:1px solid var(--border); }
.fp-root .fp-field-section:first-of-type { border-top:none; }
.fp-root .fp-field-section .fp-seclabel { margin-bottom:14px; }
.fp-root .fp-field { margin-bottom:16px; }
.fp-root .fp-field:last-child { margin-bottom:0; }
.fp-root .fp-field-label { font-size:13px; font-weight:550; color:var(--text); margin-bottom:8px; display:block; }
.fp-root .fp-field-2col { display:grid; grid-template-columns:1fr 1fr; gap:14px; }

/* preview column */
.fp-root .fp-preview-col { padding:26px 30px 40px; display:flex; flex-direction:column; min-width:0; background:var(--bg); }
.fp-root .fp-preview-head { display:flex; align-items:center; gap:12px; margin-bottom:6px; }
.fp-root .fp-preview-title { font-size:13px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--text-2); display:flex; align-items:center; gap:8px; }
.fp-root .fp-live-dot { width:7px; height:7px; border-radius:50%; background:var(--green); box-shadow:0 0 0 4px color-mix(in oklch,var(--green) 22%,transparent); animation:fp-pulse 2s infinite; }
@keyframes fp-pulse { 0%,100%{opacity:1;} 50%{opacity:.4;} }
.fp-root .fp-preview-actions { margin-right:auto; display:flex; align-items:center; gap:8px; }
.fp-root .fp-preview-note { font-size:12px; color:var(--text-3); margin-bottom:14px; }

.fp-root .fp-table-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); box-shadow:var(--shadow-sm); overflow:hidden; flex:1; display:flex; flex-direction:column; min-height:0; }
.fp-root .fp-table-scroll { overflow:auto; }
.fp-root .fp-table { width:100%; border-collapse:collapse; font-size:13px; }
.fp-root .fp-table thead th { position:sticky; top:0; z-index:1; background:var(--surface-2); text-transform:uppercase; font-size:10.5px; letter-spacing:.05em; color:var(--text-faint); text-align:right; padding:10px 16px; border-bottom:1px solid var(--border); font-weight:650; white-space:nowrap; }
.fp-root .fp-table tbody td { padding:11px 16px; border-bottom:1px solid var(--border); color:var(--text-2); white-space:nowrap; }
.fp-root .fp-table tbody tr:last-child td { border-bottom:none; }
.fp-root .fp-table tbody tr { animation:fp-row-in .3s cubic-bezier(.2,.7,.2,1); }
.fp-root .fp-table tbody tr:hover td { background:var(--surface-inset); }
.fp-root .cell-mono { font-family:var(--font-mono); font-size:12px; color:var(--text); }
.fp-root .cell-money { font-family:var(--font-mono); font-variant-numeric:tabular-nums; color:var(--text); font-weight:550; }
.fp-root .cell-num { font-variant-numeric:tabular-nums; }
.fp-root .cell-stars { color:var(--amber); letter-spacing:1px; }
.fp-root .fp-table-foot { padding:10px 16px; border-top:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; font-size:12px; color:var(--text-faint); background:var(--surface-2); }
.fp-root .fp-preview-state { display:flex; align-items:center; justify-content:center; gap:8px; min-height:160px; padding:40px 24px; font-size:13px; color:var(--text-3); text-align:center; }
.fp-root .fp-preview-error { color:var(--red); }

/* sticky generate bar */
.fp-root .fp-genbar { position:sticky; bottom:0; z-index:20; display:flex; align-items:center; gap:18px; padding:14px 30px; border-top:1px solid var(--border); background:color-mix(in oklch,var(--surface) 86%,transparent); backdrop-filter:blur(10px); }
.fp-root .fp-genbar-ctl { display:flex; align-items:center; gap:9px; }
.fp-root .fp-genbar-ctl > .lbl { font-size:12px; font-weight:600; color:var(--text-3); text-transform:uppercase; letter-spacing:.04em; }
.fp-root .fp-genbar-sep { width:1px; height:30px; background:var(--border); }
.fp-root .fp-genbar-spacer { flex:1; }
.fp-root .fp-seed-input { width:150px; }
.fp-root .fp-seed-input .fp-input { height:36px; font-family:var(--font-mono); font-size:12.5px; }

/* generating overlay state */
.fp-root .fp-gen-progress { position:absolute; inset:0; background:color-mix(in oklch,var(--surface) 70%,transparent); backdrop-filter:blur(3px); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; z-index:5; border-radius:var(--r-lg); }
.fp-root .fp-progress-track { width:240px; height:6px; border-radius:999px; background:var(--surface-inset); overflow:hidden; }
.fp-root .fp-progress-fill { height:100%; background:var(--accent); border-radius:999px; }
.fp-root .fp-spinner { width:30px; height:30px; border-radius:50%; border:3px solid var(--border); border-top-color:var(--accent); animation:fp-spin .8s linear infinite; }

@media (max-width:1080px){ .fp-root .fp-gen-wrap{ grid-template-columns:1fr; } .fp-root .fp-config-col{ border-left:none; border-bottom:1px solid var(--border);} }

/* ===== settings ===== */
.fp-root .fp-settings-col { max-width:680px; }
.fp-root .fp-set-card { padding:22px 24px; margin-bottom:18px; }
.fp-root .fp-set-card-head { display:flex; gap:13px; margin-bottom:18px; }
.fp-root .fp-set-card-ic { width:36px; height:36px; border-radius:9px; flex-shrink:0; display:grid; place-items:center; background:var(--accent-soft); color:var(--accent); }
.fp-root .fp-set-card-title { font-size:15px; font-weight:600; }
.fp-root .fp-set-card-desc { font-size:12.8px; color:var(--text-3); margin-top:2px; }
.fp-root .fp-set-field { margin-bottom:18px; max-width:340px; }
.fp-root .fp-set-field.full { max-width:none; }
.fp-root .fp-set-label { font-size:13px; font-weight:550; display:block; margin-bottom:5px; }
.fp-root .fp-set-hint { font-size:12.3px; color:var(--text-3); margin:-1px 0 9px; }
.fp-root .fp-set-sync { display:flex; align-items:center; gap:11px; padding:12px 14px; border-radius:var(--r-md); background:color-mix(in oklch,var(--green) 9%,var(--surface)); border:1px solid color-mix(in oklch,var(--green) 22%,var(--border)); margin-bottom:14px; }
.fp-root .fp-set-sync-ic { color:var(--green); }
.fp-root .fp-set-about { display:flex; align-items:center; gap:13px; margin-bottom:16px; }
.fp-root .fp-danger-card { border-color:color-mix(in oklch,var(--red) 30%,var(--border)); background:color-mix(in oklch,var(--red) 4%,var(--surface)); }
.fp-root .fp-danger-label { color:var(--red); }
.fp-root .fp-danger-act { display:flex; flex-direction:column; gap:6px; margin-bottom:16px; }

/* ===== our plugins ===== */
.fp-root .fp-plugins-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.fp-root .fp-plugin-card { padding:18px; display:flex; flex-direction:column; }
.fp-root .fp-plugin-head { display:flex; gap:12px; margin-bottom:13px; }
.fp-root .fp-plugin-ic { width:42px; height:42px; border-radius:10px; flex-shrink:0; display:grid; place-items:center; color:#fff; font-weight:680; font-size:16px; }
.fp-root .fp-plugin-name { font-size:14px; font-weight:600; line-height:1.3; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.fp-root .fp-plugin-ver { font-size:11.5px; color:var(--text-faint); font-family:var(--font-mono); margin-top:3px; }
.fp-root .fp-plugin-desc { font-size:12.8px; line-height:1.55; color:var(--text-3); flex:1; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.fp-root .fp-plugin-foot { display:flex; align-items:center; justify-content:space-between; margin:14px 0; font-size:12px; }
.fp-root .fp-rating { display:flex; align-items:center; gap:6px; }
.fp-root .fp-rating-stars { color:var(--amber); letter-spacing:1px; font-size:13px; }
.fp-root .fp-rating-empty { color:var(--border-strong); letter-spacing:1px; font-size:13px; }
.fp-root .fp-rating-count { color:var(--text-faint); }
.fp-root .fp-plugin-active { color:var(--text-3); font-family:var(--font-mono); }
@media (max-width:1100px){ .fp-root .fp-plugins-grid{ grid-template-columns:repeat(2,1fr); } .fp-root .fp-stat-row,.fp-root .fp-gen-grid{ grid-template-columns:repeat(2,1fr);} }

.fp-root .fp-btn.full-w { width:100%; }

/* ===== command palette ===== */
.fp-root .fp-cmd-overlay { align-items:flex-start; justify-content:center; padding-top:11vh; }
.fp-root .fp-cmd-box { width:min(560px,92vw); background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); box-shadow:var(--shadow-pop); overflow:hidden; animation:fp-pop .16s cubic-bezier(.2,.8,.2,1) both; }
.fp-root .fp-cmd-input-row { display:flex; align-items:center; gap:11px; padding:15px 18px; border-bottom:1px solid var(--border); color:var(--text-3); }
.fp-root .fp-cmd-input { flex:1; border:none; background:none; outline:none; font-size:15.5px; color:var(--text); }
.fp-root .fp-cmd-input::placeholder { color:var(--text-faint); }
.fp-root .fp-cmd-results { max-height:52vh; overflow-y:auto; padding:8px; }
.fp-root .fp-cmd-group-label { font-size:10.5px; font-weight:600; letter-spacing:.07em; text-transform:uppercase; color:var(--text-faint); padding:10px 10px 5px; }
.fp-root .fp-cmd-item { display:flex; align-items:center; gap:11px; padding:9px 11px; border-radius:var(--r-sm); cursor:pointer; color:var(--text); font-size:13.5px; }
.fp-root .fp-cmd-item .fp-cmd-ic { color:var(--text-3); }
.fp-root .fp-cmd-item.sel { background:var(--accent-soft); }
.fp-root .fp-cmd-item.sel .fp-cmd-ic { color:var(--accent); }
.fp-root .fp-cmd-item .grp { margin-right:auto; font-size:11px; color:var(--text-faint); }
.fp-root .fp-cmd-foot { display:flex; gap:16px; padding:9px 16px; border-top:1px solid var(--border); font-size:11.5px; color:var(--text-faint); }
.fp-root .fp-cmd-foot .kbd-key { font-size:10px; }

/* ===== toasts ===== */
.fp-root .fp-toast-wrap { position:fixed; bottom:22px; left:22px; z-index:200; display:flex; flex-direction:column; gap:10px; }
.fp-root .fp-toast { display:flex; align-items:center; gap:12px; padding:13px 16px; min-width:300px; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); box-shadow:var(--shadow-lg); animation:fp-fade-up .3s cubic-bezier(.2,.8,.2,1) both; }
.fp-root .fp-toast-ic { width:30px; height:30px; border-radius:8px; display:grid; place-items:center; background:color-mix(in oklch,var(--green) 16%,var(--surface)); color:var(--green); flex-shrink:0; }
.fp-root .fp-toast-title { font-size:13.5px; font-weight:600; }
.fp-root .fp-toast-sub { font-size:12px; color:var(--text-3); }
.fp-root .fp-toast-x { margin-right:auto; color:var(--text-faint); cursor:pointer; background:none; border:none; }
.fp-root .fp-toast-x:hover { color:var(--text); }

/* ===== tweaks panel ===== */
.fp-root .fp-tweaks { position:fixed; top:var(--fp-admin-bar, 32px); left:0; bottom:0; width:312px; background:var(--surface); border-right:1px solid var(--border); box-shadow:var(--shadow-pop); z-index:160; display:flex; flex-direction:column; animation:fp-slide-in .22s cubic-bezier(.2,.8,.2,1) both; }
@keyframes fp-slide-in { from { transform:translateX(-100%);} to { transform:none;} }
.fp-root .fp-tweaks-head { display:flex; align-items:center; gap:9px; padding:16px 18px; border-bottom:1px solid var(--border); }
.fp-root .fp-tweaks-title { font-weight:600; font-size:14.5px; }
.fp-root .fp-tweaks-body { flex:1; overflow-y:auto; padding:6px 18px 22px; }
.fp-root .fp-tweak-sec { padding:16px 0; border-bottom:1px solid var(--border); }
.fp-root .fp-tweak-sec:last-child { border-bottom:none; }
.fp-root .fp-tweak-label { font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--text-faint); margin-bottom:12px; }
.fp-root .fp-swatches { display:flex; gap:10px; flex-wrap:wrap; }
.fp-root .fp-swatch { width:30px; height:30px; border-radius:50%; cursor:pointer; border:2px solid var(--surface); box-shadow:0 0 0 1px var(--border); transition:transform .1s; }
.fp-root .fp-swatch:hover { transform:scale(1.12); }
.fp-root .fp-swatch.sel { box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--accent); }
/* ---- custom color pickers ---- */
.fp-root .fp-color-reset { margin-right:auto; font-size:11px; font-weight:600; letter-spacing:0; text-transform:none; color:var(--accent); background:none; border:none; cursor:pointer; padding:0; }
.fp-root .fp-color-reset:hover { text-decoration:underline; }
.fp-root .fp-color-rows { display:grid; grid-template-columns:1fr 1fr; gap:8px 14px; }
.fp-root .fp-color-row { display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--text-2); }
.fp-root .fp-color-name { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fp-root .fp-color-revert { display:grid; place-items:center; width:20px; height:20px; border:none; background:none; color:var(--text-faint); cursor:pointer; padding:0; flex-shrink:0; }
.fp-root .fp-color-revert:hover { color:var(--text); }
.fp-root .fp-color-swatch { position:relative; width:26px; height:26px; border-radius:7px; cursor:pointer; box-shadow:0 0 0 1px var(--border); flex-shrink:0; overflow:hidden; }
.fp-root .fp-color-swatch.on { box-shadow:0 0 0 2px var(--accent); }
.fp-root .fp-color-swatch input[type="color"] { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; border:none; padding:0; }
.fp-root .fp-seg { display:flex; gap:4px; background:var(--surface-inset); padding:3px; border-radius:var(--r-md); }
.fp-root .fp-seg-btn { flex:1; height:32px; border:none; background:none; border-radius:var(--r-sm); font-size:12.5px; font-weight:550; color:var(--text-2); cursor:pointer; display:flex; align-items:center; justify-content:center; gap:6px; }
.fp-root .fp-seg-btn.on { background:var(--surface); color:var(--text); box-shadow:var(--shadow-sm); }

/* ===== batch tray ===== */
.fp-root .fp-batch { position:fixed; top:var(--fp-admin-bar, 32px); left:0; bottom:0; width:380px; background:var(--surface); border-right:1px solid var(--border); box-shadow:var(--shadow-pop); z-index:160; display:flex; flex-direction:column; animation:fp-slide-in .22s cubic-bezier(.2,.8,.2,1) both; }
.fp-root .fp-batch-body { flex:1; overflow-y:auto; padding:12px 18px; }
.fp-root .fp-batch-item { display:flex; align-items:center; gap:12px; padding:13px 14px; border:1px solid var(--border); border-radius:var(--r-md); margin-bottom:10px; }
.fp-root .fp-batch-ic { width:34px; height:34px; border-radius:8px; display:grid; place-items:center; background:var(--accent-soft); color:var(--accent); flex-shrink:0; }
.fp-root .fp-batch-foot { padding:16px 18px; border-top:1px solid var(--border); display:flex; flex-direction:column; gap:10px; }
.fp-root .fp-batch-progress { height:5px; border-radius:999px; background:var(--surface-inset); overflow:hidden; }
.fp-root .fp-batch-progress > div { height:100%; background:var(--accent); }

/* ===== density: compact ===== */
.fp-root[data-density="compact"] .fp-page { padding-top:18px; }
.fp-root[data-density="compact"] .fp-field-section { padding:14px 0; }
.fp-root[data-density="compact"] .fp-field { margin-bottom:12px; }
.fp-root[data-density="compact"] .fp-table tbody td { padding:7px 16px; }
.fp-root[data-density="compact"] .fp-table thead th { padding:7px 16px; }
.fp-root[data-density="compact"] .fp-config-col,.fp-root[data-density="compact"] .fp-preview-col { padding-top:18px; padding-bottom:26px; }
.fp-root[data-density="compact"] .fp-stat { padding:13px 16px; }
.fp-root[data-density="compact"] .fp-gen-card { min-height:0; padding:15px; }
.fp-root[data-density="compact"] .fp-set-card { padding:18px 20px; }
.fp-root[data-density="compact"] .fp-stat-num { font-size:26px; margin:9px 0 2px; }

