/* Connected-stack calculator + one-pager table. Themed by the host page:
   .sc-dark (site A) or .sc-light (site B). */
.sc { --sc-bg: #17171d; --sc-card: #1e1e26; --sc-line: #2c2c36; --sc-fg: #f5f5f7; --sc-muted: #a1a1aa; --sc-accent: #a855f7; --sc-accent-ink: #fff; --sc-radius: 12px; }
.sc.sc-light { --sc-bg: #fffdf8; --sc-card: #ffffff; --sc-line: #d8d2c3; --sc-fg: #14161c; --sc-muted: #4b4f5b; --sc-accent: #ff4a1c; --sc-accent-ink: #fff; --sc-radius: 14px; }
.sc [hidden] { display: none !important; }
.sc { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 1.5rem; align-items: start; color: var(--sc-fg); text-align: left; }
.sc-noscript { color: var(--sc-muted); }
.sc-controls { display: grid; gap: 1rem; min-width: 0; }
.sc-group { border: 1px solid var(--sc-line); border-radius: var(--sc-radius); background: var(--sc-card); padding: 1rem 1.1rem 1.1rem; margin: 0; min-width: 0; }
.sc-group legend { padding: 0 .4rem; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--sc-accent); }
.sc-app { display: grid; gap: .7rem; margin-top: .4rem; }
.sc-app-head { font-size: .92rem; color: var(--sc-muted); line-height: 1.45; }
.sc-app-head strong { color: var(--sc-fg); font-size: 1rem; }
.sc-hint { font-size: .85rem; color: var(--sc-muted); margin: .25rem 0 .5rem; line-height: 1.45; }
.sc-pills, .sc-bill { display: flex; flex-wrap: wrap; gap: .45rem; }
.sc-pills input, .sc-bill input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.sc-pills label, .sc-bill label { cursor: pointer; border: 1px solid var(--sc-line); border-radius: 999px; padding: .45rem .85rem; font-size: .9rem; font-weight: 600; line-height: 1.2; display: inline-flex; flex-direction: column; align-items: flex-start; background: transparent; color: var(--sc-fg); transition: border-color .15s, background .15s; }
.sc-pills label small { font-weight: 500; font-size: .76rem; color: var(--sc-muted); margin-top: .1rem; }
.sc-pills input:checked + label, .sc-bill input:checked + label { border-color: var(--sc-accent); background: color-mix(in srgb, var(--sc-accent) 16%, transparent); }
.sc-pills input:focus-visible + label, .sc-bill input:focus-visible + label { outline: 2px solid var(--sc-accent); outline-offset: 2px; }
.sc-bill { justify-content: flex-start; }
.sc-row { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; font-size: .9rem; }
.sc-row label { font-weight: 600; }
.sc-row input { width: 5rem; padding: .4rem .5rem; border-radius: 8px; border: 1px solid var(--sc-line); background: var(--sc-bg); color: var(--sc-fg); font: inherit; }
.sc-note { color: var(--sc-muted); font-size: .82rem; }
.sc-mod { display: flex; align-items: flex-start; gap: .55rem; font-size: .9rem; line-height: 1.4; }
.sc-mod input { margin-top: .2rem; accent-color: var(--sc-accent); width: 1.05rem; height: 1.05rem; flex: none; }
.sc-mod-price { font-weight: 600; }
.sc-summary { position: sticky; top: 5.5rem; border: 1px solid var(--sc-accent); border-radius: var(--sc-radius); background: var(--sc-card); padding: 1.2rem 1.2rem 1.3rem; }
.sc-summary h3 { font-size: 1.1rem; margin: 0 0 .6rem; }
.sc-lines { list-style: none; margin: 0 0 .8rem; padding: 0; display: grid; gap: .35rem; font-size: .9rem; }
.sc-lines li { display: flex; justify-content: space-between; gap: .8rem; }
.sc-lines li span:last-child { white-space: nowrap; font-variant-numeric: tabular-nums; }
.sc-lines li.sc-sub { color: var(--sc-muted); padding-left: .8rem; font-size: .85rem; }
.sc-total { display: flex; justify-content: space-between; align-items: baseline; border-top: 1px solid var(--sc-line); padding-top: .7rem; font-weight: 600; }
.sc-total strong { font-size: 1.7rem; font-variant-numeric: tabular-nums; }
.sc-cta { display: block; text-align: center; margin: 1rem 0 .7rem; padding: .8rem 1rem; border-radius: 999px; background: var(--sc-accent); color: var(--sc-accent-ink) !important; font-weight: 700; text-decoration: none; }
.sc-cta:hover { filter: brightness(1.08); }
.sc-fine { font-size: .76rem; color: var(--sc-muted); line-height: 1.45; margin: 0; }
@media (max-width: 860px) {
  .sc { grid-template-columns: minmax(0, 1fr); }
  .sc-summary { position: static; }
}
/* one-pager table */
.sc-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.sc-table th, .sc-table td { text-align: left; vertical-align: top; padding: .5rem .6rem; border-bottom: 1px solid var(--sc-line, #ddd); }
.sc-table th { font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; }
.sc-table .sc-fit { font-size: .8rem; opacity: .75; }
.sc-table .sc-mods { font-size: .8rem; opacity: .8; margin-top: .2rem; }
