/* Motyw full-stack: neutralny, spokojny, numerowane sekcje, zieleń akcentu. */
:root[data-theme="fullstack"] {
  --bg: #FAFAFA; --bg-2: #ffffff; --fg: #111; --muted: #52525b; --border: #e4e4e7;
  --accent: #0F766E; --accent-fg: #fff; --accent-soft: rgba(15,118,110,.12);
  --radius: 10px;
}
:root[data-theme="fullstack"] .hero { background: linear-gradient(180deg, #f1f5f4, #FAFAFA); }
:root[data-theme="fullstack"] .hero-photo-cutout { background: radial-gradient(circle at 50% 35%, #bfe3de 0%, #e2f1ee 70%, transparent 71%); }
:root[data-theme="fullstack"] main { counter-reset: sekcja; }
:root[data-theme="fullstack"] main section h2::before { counter-increment: sekcja; content: counter(sekcja, decimal-leading-zero) " "; color: var(--accent); font-family: var(--mono); font-size: .8em; font-weight: 600; margin-right: .4rem; }
:root[data-theme="fullstack"] .demo { color-scheme: dark; background: #0f172a; color: #e2e8f0; --muted: #94a3b8; --border: #1e293b; --bg-2: #1e293b; --accent: #2dd4bf; --accent-text: #2dd4bf; }
:root[data-theme="fullstack"] .demo-root { background: #111c33; }
:root[data-theme="fullstack"] .demo h2 { color: #fff; }
:root[data-theme="fullstack"] .demo-root input, :root[data-theme="fullstack"] .demo-root textarea { background: #0f172a; color: #e2e8f0; border-color: #334155; }
.est { width: 100%; border-collapse: collapse; font-size: .9rem; }
.est th, .est td { text-align: left; padding: .45rem .4rem; border-bottom: 1px solid var(--border); vertical-align: middle; }
.est input[type=text] { width: 100%; font: inherit; padding: .4rem .5rem; border: 1px solid var(--border); border-radius: 6px; }
.est input[type=number] { width: 4.5rem; font: inherit; padding: .4rem .5rem; border: 1px solid var(--border); border-radius: 6px; background: #0f172a; color: #e2e8f0; }
.est input[type=range] { width: 100%; }
.est .num { text-align: right; font-family: var(--mono); }
.est tfoot td { font-weight: 700; }
.est .usun { background: transparent; border: 1px solid var(--border); color: var(--muted); border-radius: 6px; padding: .2rem .5rem; cursor: pointer; }
.est-sum { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); margin: 1rem 0; }
.est-sum div { background: #1e293b; border-radius: 8px; padding: .8rem; }
.est-sum b { display: block; font-size: 1.5rem; font-family: var(--mono); }
.est-sum span { font-size: .8rem; color: var(--muted); }
