/* edCircuit Shop — the publish app's design, token for token (its src/styles.css
   :root, read 2026-10-24): primary hsl(17 80% 50%) #E55A1C with the glow
   hsl(20 100% 55%) for gradients, Inter, radius 10px. Every screen of this
   plugin sits under .edsh and draws from these tokens. One token is this plugin's: --primary-ink,
   hsl(19 80% 44%) #CB4F17, the primary darkened just enough to read at 4.5:1 (WCAG AA) where
   the app puts the primary on white as small text, or white on the primary; measured with
   axe 4.10.2 on 2026-10-24, the app's own primary is 3.6:1 there. Backgrounds, rings,
   gradients and large marks keep the primary itself. */
.edsh{
  --background:0 0% 100%;--foreground:222 22% 12%;--card:0 0% 100%;--card-foreground:222 22% 12%;
  --primary:17 80% 50%;--primary-foreground:0 0% 100%;--primary-glow:20 100% 55%;--primary-ink:19 80% 44%;
  --secondary:220 16% 96%;--secondary-foreground:222 22% 18%;--muted:220 16% 96%;--muted-foreground:220 10% 42%;
  --accent:17 92% 96%;--accent-foreground:17 85% 28%;--destructive:0 78% 52%;--destructive-foreground:0 0% 100%;
  --success:152 62% 38%;--warning:38 92% 50%;--info:212 92% 50%;--border:220 14% 90%;--input:220 14% 90%;--ring:17 80% 50%;
  --radius:10px;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:14px;
  --shadow-sm:0 1px 2px 0 rgb(0 0 0 / .05);--shadow-brand:0 10px 30px -10px hsl(var(--primary) / .35);
  --gradient-brand:linear-gradient(135deg,hsl(var(--primary)),hsl(var(--primary-glow)));
  font-family:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01","ss03";
  color:hsl(var(--foreground));max-width:1200px;margin:0 auto;padding:16px 16px 120px;display:flex;flex-direction:column;gap:24px;box-sizing:border-box;font-size:14px;line-height:1.5}
.edsh *,.edsh *::before,.edsh *::after{box-sizing:border-box;border-color:hsl(var(--border))}
/* A closed sheet (it carries .edsh for its tokens) must stay hidden; found live 2026-10-24. */
dialog.edsh:not([open]),.edsh-sheet:not([open]){display:none!important}
.edsh h1,.edsh h2,.edsh h3,.edsh h4{letter-spacing:-.02em;font-feature-settings:"cv11","ss01";margin:0}
/* Signed out, the app's faint grey (bg-muted/40). Inside the workspace column the page is drawn like every other workspace page: no frame of its own, the column's padding, 16 px between blocks (the owner, 2026-10-24: "borders and page header layout location need to match the rest"). */
.edsh-page{background:hsl(220 16% 96% / .4)}
.pcac_page_right>.edsh:not(dialog){max-width:none;padding:0 0 120px;gap:16px;background:transparent}
.edsh-ico{flex:none;width:16px;height:16px}
.edsh [hidden]{display:none!important}
.edsh-sr,.edsh .screen-reader-text{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.edsh :focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}
.edsh--screen{max-width:none;padding:0 0 80px}

/* ---- PageHeader ---- */
.edsh-head{display:flex;flex-direction:column;gap:0;padding-bottom:0}
.edsh-head--row{gap:12px}
@media (min-width:768px){.edsh-head--row{flex-direction:row;align-items:center;justify-content:space-between;gap:24px}}
.edsh-head__text{min-width:0}
/* The header as the workspace's .edcs-head draws it (eyebrow, title 2 px under, lede 6 px under). */
.edsh-eyebrow{margin:0;font-size:11px;font-weight:600;line-height:1.2;letter-spacing:.08em;text-transform:uppercase;color:#c35608}
.edsh .edsh-title{margin:2px 0 0;font-size:24px;font-weight:600;line-height:1.2;letter-spacing:0;color:#1a1a1a}
.edsh-title--clamp{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.edsh-lede{margin:6px 0 0;max-width:60ch;font-size:14px;color:#6b7280}
.edsh-head__actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}

/* ---- Input ---- */
.edsh .edsh-input,.edsh .edsh-search input[type=search]{display:block;width:100%;height:40px;margin:0;padding:8px 12px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;font:inherit;font-size:14px;line-height:20px;color:hsl(var(--foreground));box-shadow:none}
.edsh .edsh-input::placeholder,.edsh .edsh-search input::placeholder{color:hsl(var(--muted-foreground))}
.edsh .edsh-input:focus,.edsh .edsh-search input[type=search]:focus{outline:2px solid hsl(var(--ring));outline-offset:2px;border-color:hsl(var(--input))}
.edsh .edsh-input--n{width:112px;height:32px;text-align:right;font-variant-numeric:tabular-nums}
.edsh .edsh-input--select{padding-right:28px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:16px;appearance:none;-webkit-appearance:none}
.edsh-field{display:flex;flex-direction:column;gap:6px;margin:0;min-width:0}
.edsh-field>span{font-size:14px;font-weight:500;line-height:1}
.edsh-field.is-req>span::after{content:" *";color:hsl(var(--destructive))}
.edsh-field--short{max-width:160px}
.edsh-search{position:relative;margin:0}
.edsh-search>.edsh-ico{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:hsl(var(--muted-foreground));pointer-events:none}
.edsh .edsh-search input[type=search]{padding-left:36px;padding-right:36px}
.edsh-err{margin:4px 0 0;font-size:12px;color:hsl(var(--destructive))}
.edsh-err:empty{display:none}
.edsh-note{margin:0;font-size:13px;color:hsl(var(--muted-foreground))}
.edsh-center{text-align:center}
.edsh-dashed{margin:0;padding:24px;border:1px dashed hsl(var(--border));border-radius:var(--radius-md);background:hsl(var(--muted) / .2);text-align:center;font-size:14px;color:hsl(var(--muted-foreground))}

/* ---- Button (the app's variants and sizes) ---- */
.edsh .edsh-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;margin:0;padding:8px 16px;border:1px solid transparent;border-radius:var(--radius-md);background:hsl(var(--primary-ink));color:hsl(var(--primary-foreground));font:inherit;font-size:14px;font-weight:500;line-height:20px;text-transform:none;letter-spacing:0;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color .15s,color .15s}
.edsh .edsh-btn:hover{background:hsl(var(--primary-ink) / .9);color:hsl(var(--primary-foreground))}
.edsh .edsh-btn--primary{background:hsl(var(--primary-ink));color:hsl(var(--primary-foreground))}
.edsh .edsh-btn--brand{background:var(--gradient-brand);box-shadow:var(--shadow-brand)}
.edsh .edsh-btn:not(.edsh-btn--primary):not(.edsh-btn--brand):not(.edsh-btn--ghost):not(.edsh-btn--link){border-color:hsl(var(--input));background:hsl(var(--background));color:hsl(var(--foreground))}
.edsh .edsh-btn:not(.edsh-btn--primary):not(.edsh-btn--brand):not(.edsh-btn--ghost):not(.edsh-btn--link):hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}
.edsh .edsh-btn--ghost{background:transparent;color:hsl(var(--foreground))}
.edsh .edsh-btn--ghost:hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}
.edsh .edsh-btn--link{background:transparent;color:hsl(var(--primary-ink));padding:0;height:auto;text-underline-offset:4px}
.edsh .edsh-btn--link:hover{text-decoration:underline;background:transparent;color:hsl(var(--primary-ink))}
.edsh .edsh-btn--danger{background:hsl(var(--destructive));color:#fff}
.edsh .edsh-btn--sm{height:36px;padding:0 12px}
.edsh .edsh-btn--lg{height:44px;padding:0 32px}
.edsh .edsh-btn--block{width:100%}
.edsh .edsh-btn:disabled,.edsh .edsh-btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}
.edsh .edsh-btn .edsh-ico{width:16px;height:16px}
.edsh .edsh-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin:0;padding:0;border:0;border-radius:var(--radius-md);background:transparent;color:hsl(var(--muted-foreground));font:inherit;font-size:14px;cursor:pointer}
.edsh .edsh-icon-btn:hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}
.edsh .edsh-icon-btn--danger{color:hsl(var(--destructive))}
.edsh .edsh-icon-btn--danger:hover{background:hsl(var(--destructive) / .1);color:hsl(var(--destructive))}
.edsh-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}
.edsh-actions--between{justify-content:space-between;align-items:center}

/* ---- the shop page: search ---- */
.edsh .edsh-search--shop input{height:40px}

/* ---- the chips (BucketChip) and the search icon ---- */
.edsh-toolbar{display:flex;align-items:flex-start;gap:8px}
.edsh-toolbar .edsh-chips{flex:1;min-width:0}
.edsh .edsh-search-toggle{flex:none;width:36px;height:36px;border:1px solid hsl(var(--border) / .7);border-radius:999px;background:hsl(var(--card) / .4);color:hsl(var(--foreground))}
.edsh .edsh-search-toggle[aria-expanded=true],.edsh .edsh-search-toggle:hover{background:hsl(var(--primary-ink));border-color:hsl(var(--primary-ink));color:hsl(var(--primary-foreground))}
.edsh-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.edsh-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid hsl(var(--border) / .7);border-radius:999px;background:hsl(var(--card) / .4);color:hsl(var(--foreground));font-size:12px;font-weight:500;line-height:16px;text-decoration:none;transition:background-color .15s}
.edsh-chip:hover{background:hsl(var(--muted) / .6);color:hsl(var(--foreground))}
.edsh-chip .edsh-ico{width:14px;height:14px}
.edsh-chip__n{padding:2px 6px;border-radius:999px;background:hsl(var(--muted));color:hsl(var(--muted-foreground));font-size:10px;line-height:1;font-variant-numeric:tabular-nums}
/* Specific enough to beat a theme's link rules inside the account column (the fill was lost live 2026-10-24). */
.edsh a.edsh-chip.is-on{border-color:hsl(var(--primary-ink));background:hsl(var(--primary-ink))!important;color:hsl(var(--primary-foreground))!important;box-shadow:var(--shadow-sm)}
.edsh a.edsh-chip.is-on:hover{background:hsl(var(--primary-ink) / .9)!important}
.edsh-chip.is-on .edsh-chip__n{background:hsl(var(--primary-foreground) / .2);color:hsl(var(--primary-foreground))}

/* ---- the one grid (BucketSection's box, every package inside it, three across) ---- */
.edsh-sections{display:flex;flex-direction:column;gap:16px;min-width:0;container-type:inline-size}
/* The boxes as the workspace's .edcs-card: white, 1 px #e5e7eb, radius 12. */
.edsh-section{padding:20px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.04)}
@media (min-width:640px){.edsh-section{padding:24px}}
.edsh-section__head{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.edsh-section__ico{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);background:hsl(var(--primary) / .1);color:hsl(var(--primary))}
.edsh-section__ico .edsh-ico{width:18px;height:18px}
.edsh-section__count{margin:0;font-size:13px;font-weight:500;color:hsl(var(--muted-foreground))}
.edsh-grid{list-style:none;margin:0!important;padding:0!important;display:grid;grid-template-columns:1fr;gap:16px}
/* The columns follow the grid's own width, not the window's: beside the workspace menu the grid is narrower than the page. */
@container (min-width:560px){.edsh-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container (min-width:720px){.edsh-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ---- the card (ProductCard) ---- */
.edsh-card{position:relative;display:flex;flex-direction:column;margin:0!important;overflow:hidden;border:1px solid #e5e7eb;border-radius:12px;background:#fff;transition:border-color .15s,box-shadow .15s}
.edsh-card:hover{border-color:hsl(var(--primary) / .3)}
.edsh-card.is-in-cart{border-color:hsl(var(--primary) / .4);box-shadow:0 0 0 1px hsl(var(--primary) / .2)}
.edsh-card__pic{position:relative;aspect-ratio:3/2;width:100%;overflow:hidden;background:linear-gradient(to bottom right,hsl(var(--primary) / .2),hsl(var(--primary) / .1) 50%,transparent)}
@media (min-width:640px){.edsh-card__pic{aspect-ratio:16/9}}
.edsh-card__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .3s}
.edsh-card:hover .edsh-card__img{transform:scale(1.05)}
.edsh-card__noimg{display:flex;align-items:center;justify-content:center;height:100%;color:hsl(var(--primary) / .5)}
.edsh-card__noimg .edsh-ico{width:40px;height:40px;stroke-width:1.5}
@media (min-width:640px){.edsh-card__noimg .edsh-ico{width:48px;height:48px}}
.edsh-card__credits{position:absolute;top:8px;right:8px;padding:2px 8px;border-radius:999px;background:hsl(var(--background) / .85);color:hsl(var(--primary-ink));font-size:10px;font-weight:500;line-height:16px;font-variant-numeric:tabular-nums;box-shadow:var(--shadow-sm);backdrop-filter:blur(4px)}
@media (min-width:640px){.edsh-card__credits{font-size:11px}}
.edsh-card__body{display:flex;flex:1;flex-direction:column;padding:12px}
@media (min-width:640px){.edsh-card__body{padding:16px}}
.edsh .edsh-card__title{margin:0 0 2px;font-size:14px;font-weight:600;line-height:1.375;letter-spacing:0}
@media (min-width:640px){.edsh .edsh-card__title{margin-bottom:4px;font-size:15px}}
.edsh-card__title a{color:hsl(var(--foreground));text-decoration:none}
.edsh-card__title a::after{content:"";position:absolute;inset:0}
.edsh-card__foot,.edsh-card__more{position:relative;z-index:1}
.edsh-card__desc{margin:0 0 8px;font-size:11px;line-height:1.625;color:hsl(var(--muted-foreground));display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
@media (min-width:640px){.edsh-card__desc{margin-bottom:12px;font-size:12px}}
.edsh-card__more{align-self:flex-start;margin-bottom:4px;font-size:12px;font-weight:500;color:hsl(var(--primary-ink));text-decoration:none;text-underline-offset:4px}
@media (min-width:640px){.edsh-card__more{font-size:14px}}
.edsh-card__more:hover{text-decoration:underline;color:hsl(var(--primary-ink))}
.edsh-card__foot{margin-top:auto;display:flex;flex-direction:column;align-items:stretch;gap:8px;padding-top:4px}
@media (min-width:640px){.edsh-card__foot{padding-top:8px}}
.edsh-card__na{margin:0;font-size:13px;color:hsl(var(--muted-foreground))}

/* ---- the price block (ProductPriceDisplay) ---- */
.edsh-price{min-width:0}
.edsh-price__k{font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:hsl(var(--muted-foreground))}
.edsh-price__k--yours{color:hsl(var(--primary-ink))}
.edsh-price__row{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}
.edsh-price__now{font-size:18px;font-weight:700;line-height:1.4;font-variant-numeric:tabular-nums;color:hsl(var(--foreground))}
@media (min-width:640px){.edsh-price__now{font-size:20px}}
.edsh-price--lg .edsh-price__now{font-size:20px}
@media (min-width:640px){.edsh-price--lg .edsh-price__now{font-size:30px}}
.edsh-price__was{font-size:12px;color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums}
@media (min-width:640px){.edsh-price__was{font-size:14px}}
.edsh-price__per{font-size:10px;color:hsl(var(--muted-foreground))}
@media (min-width:640px){.edsh-price__per{font-size:11px}}
.edsh-price--lg .edsh-price__per{font-size:14px}
.edsh-save{display:inline-flex;align-items:center;padding:0 6px;border-radius:999px;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font-size:10px;font-weight:500;line-height:16px}
.edsh-free{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;background:rgb(16 185 129 / .15);color:#047857;font-size:12px;font-weight:600;line-height:16px}

/* ---- stepper and Add to cart (ProductCard / ProductCartControls) ---- */
.edsh-buy{display:flex;align-items:stretch;gap:6px;margin:0;min-width:0}
.edsh-buy__add{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.edsh .edsh-buy .edsh-btn{height:32px;padding:0 12px;border-radius:var(--radius-lg);font-size:12px}
@media (min-width:640px){.edsh .edsh-buy .edsh-btn{height:36px;font-size:14px}}
.edsh-step{display:inline-flex;align-items:center;gap:2px;flex:none;border:1px solid hsl(var(--border) / .6);border-radius:var(--radius-lg);background:hsl(var(--muted) / .4)}
.edsh .edsh-step__btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin:0;padding:0;border:0;border-radius:var(--radius-lg);background:transparent;color:hsl(var(--foreground));font:inherit;font-size:16px;line-height:1;cursor:pointer}
@media (min-width:640px){.edsh .edsh-step__btn{width:36px;height:36px}}
.edsh .edsh-step__btn:hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}
.edsh .edsh-step__btn:disabled{opacity:.5;cursor:default;background:transparent}
.edsh .edsh-step__n{display:flex;align-items:center;justify-content:center;min-width:28px;width:28px;height:32px;margin:0;padding:0;border:0;background:transparent;text-align:center;font:inherit;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;color:hsl(var(--foreground));-moz-appearance:textfield}
@media (min-width:640px){.edsh .edsh-step__n{font-size:14px;height:36px}}
.edsh-step__n::-webkit-inner-spin-button,.edsh-step__n::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.edsh-buy--lg{gap:8px}
.edsh .edsh-buy--lg .edsh-step__btn{width:44px;height:44px}
.edsh .edsh-buy--lg .edsh-step__n{min-width:40px;width:40px;height:44px;font-size:16px}
.edsh .edsh-buy--lg .edsh-btn{height:44px;padding:0 32px;font-size:14px}

/* ---- empty ---- */
.edsh-empty{padding:40px 16px;border:1px dashed hsl(var(--border) / .7);border-radius:var(--radius-lg);background:hsl(var(--muted) / .2);text-align:center}
.edsh .edsh-empty h2{margin:0 0 4px;font-size:16px;font-weight:600}
.edsh-empty p{margin:0;font-size:14px;color:hsl(var(--muted-foreground))}

/* ---- the cart bar (CartFooter) ---- */
.edsh-bar{position:fixed;left:0;right:0;bottom:0;z-index:50;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:hsl(var(--background) / .95);border-top:1px solid hsl(var(--border));backdrop-filter:blur(6px)}
.edsh-bar__in{max-width:1168px;margin:0 auto;display:flex;align-items:center;gap:12px}
.edsh-bar__ico{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);background:hsl(var(--primary) / .1);color:hsl(var(--primary))}
.edsh-bar__text{flex:1;display:flex;flex-direction:column;font-size:13px;line-height:1.3}
.edsh-bar__text span{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}

/* ---- the sheet (shadcn Sheet, side right) ---- */
.edsh-sheet{position:fixed;inset:0 0 0 auto;width:100%;max-width:448px;height:100%;max-height:100%;margin:0;padding:0;border:0;border-left:1px solid hsl(var(--border));background:hsl(var(--background));color:hsl(var(--foreground));box-shadow:0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1);font-family:inherit}
.edsh-sheet::backdrop{background:rgb(0 0 0 / .8)}
.edsh-sheet[open]{animation:edsh-in .5s cubic-bezier(.16,1,.3,1)}
@keyframes edsh-in{from{transform:translateX(100%)}}
@media (prefers-reduced-motion:reduce){.edsh-sheet[open]{animation:none}.edsh-card__img{transition:none}}
.edsh-sheet__in{display:flex;flex-direction:column;height:100%}
.edsh-sheet__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:24px 24px 16px;border-bottom:1px solid hsl(var(--border) / .6)}
.edsh .edsh-sheet__head h2{font-size:18px;font-weight:600;outline:none}
.edsh .edsh-sheet__head h2:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}
.edsh-sheet__head p{margin:4px 0 0;font-size:14px;color:hsl(var(--muted-foreground))}
.edsh-sheet__body{flex:1;overflow-y:auto;padding:16px 24px;display:flex;flex-direction:column;gap:16px}
.edsh-sheet__foot{padding:16px 24px calc(16px + env(safe-area-inset-bottom));border-top:1px solid hsl(var(--border) / .6);display:flex;flex-direction:column;gap:8px}
.edsh-lines{list-style:none;margin:0!important;padding:0!important;display:flex;flex-direction:column;gap:12px}
.edsh-line{margin:0!important;padding:12px;border:1px solid hsl(var(--border) / .6);border-radius:var(--radius-md);background:hsl(var(--card) / .4)}
.edsh-line__top,.edsh-line__bottom{display:flex;align-items:center;justify-content:space-between;gap:8px}
.edsh-line__bottom{margin-top:12px;font-size:14px}
.edsh-line__name{font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.edsh-line__each{font-size:12px;color:hsl(var(--muted-foreground))}
.edsh-step--sm .edsh-step__n{width:24px;min-width:24px}
.edsh-coupon label{display:block;margin-bottom:6px;font-size:14px;font-weight:500}
.edsh-coupon__row{display:flex;gap:8px}
.edsh-coupon input{flex:1}
.edsh-totals{margin:0;display:flex;flex-direction:column;gap:4px;font-size:14px}
.edsh-totals div{display:flex;justify-content:space-between}
.edsh-totals dt,.edsh-totals dd{margin:0}
.edsh-totals dt{color:hsl(var(--muted-foreground))}
.edsh-totals__disc dd{color:hsl(var(--primary))}
.edsh-totals__all dd{font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;color:hsl(var(--foreground))}
.edsh-summary{display:flex;flex-direction:column;gap:12px;padding-bottom:16px;border-bottom:1px solid hsl(var(--border))}
.edsh-billing{display:flex;flex-direction:column;gap:12px;margin:0}
.edsh-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.edsh-stripe{min-height:120px}
.edsh-progress{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px;border:1px solid hsl(var(--border) / .6);border-radius:var(--radius-lg);background:hsl(var(--card) / .4);text-align:center}
.edsh .edsh-progress h3{font-size:16px;font-weight:600}
.edsh-progress p{margin:0;font-size:14px;color:hsl(var(--muted-foreground))}
.edsh-progress__ref{font-size:12px}
.edsh-progress__ico{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:999px;background:hsl(var(--primary) / .1);color:hsl(var(--primary));font-size:20px;font-weight:700}
.edsh-progress--done .edsh-progress__ico{background:hsl(var(--success) / .1);color:hsl(var(--success))}
.edsh-progress--failed .edsh-progress__ico{background:hsl(var(--destructive) / .1);color:hsl(var(--destructive))}
.edsh-spin{width:24px;height:24px;border:2px solid hsl(var(--primary) / .25);border-top-color:hsl(var(--primary));border-radius:50%;animation:edsh-spin .8s linear infinite}
@keyframes edsh-spin{to{transform:rotate(360deg)}}

/* ---- toasts (sonner) ---- */
.edsh-toasts{position:fixed;right:16px;bottom:88px;z-index:100000;display:flex;flex-direction:column;gap:8px;max-width:min(356px,calc(100vw - 32px))}
.edsh-toast{padding:16px;border:1px solid hsl(var(--border));border-radius:var(--radius-md);background:hsl(var(--background));color:hsl(var(--foreground));font-size:13px;font-weight:500;box-shadow:0 4px 12px rgb(0 0 0 / .1)}
.edsh-toast--err{border-color:hsl(var(--destructive) / .4);color:hsl(var(--destructive))}
