:root{--bg:#141910;--card:#243022;--line:#3a4a34;--ink:#f3efe4;--muted:#c4bba6;--gold:#d4a84b}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.05rem/1.55 "Source Sans 3",system-ui,sans-serif}
h1,h2,h3{font-family:Fraunces,"Source Serif 4",Georgia,serif;line-height:1.2;margin:0 0 .5rem}
h1{font-size:clamp(1.7rem,6vw,2.6rem)}a{color:var(--gold)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.wrap{width:min(1080px,calc(100% - 2rem));margin:0 auto;padding:1.5rem 0 3rem}
.top{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;justify-content:space-between;padding:1rem 0;border-bottom:1px solid var(--line);margin-bottom:1.5rem}
.brand{font-family:Fraunces,Georgia,serif;font-weight:700;color:var(--ink);text-decoration:none}
.badge{display:inline-block;border:1px solid var(--gold);color:var(--gold);border-radius:999px;padding:.15rem .7rem;font-size:.85rem;font-weight:600}
.muted{color:var(--muted)}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1.25rem}
.grid{display:grid;gap:1rem}@media(min-width:760px){.grid.two{grid-template-columns:1fr 1fr}}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.6rem 1.1rem;border-radius:10px;border:0;background:var(--gold);color:#141910;font:700 1rem "Source Sans 3",sans-serif;text-decoration:none;cursor:pointer}
.btn.ghost{background:transparent;color:var(--gold);border:1px solid var(--gold)}
.foot{border-top:1px solid var(--line);margin-top:2rem;padding-top:1rem;font-size:.92rem}
/* phone */
.phone{width:min(320px,100%);margin:0 auto;background:#0b0e09;border:2px solid var(--line);border-radius:36px;padding:14px;}
.screen{background:#1b2319;border-radius:24px;min-height:460px;padding:1rem .9rem;display:flex;flex-direction:column;gap:.7rem;overflow:hidden}
.status{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted)}
.notice{background:#2d3a2a;border:1px solid var(--line);border-radius:14px;padding:.7rem .8rem;font-size:.95rem}
.notice .miss{color:#ff9d8a;font-weight:700}
.bubble{align-self:flex-end;max-width:88%;background:var(--gold);color:#141910;border-radius:16px 16px 4px 16px;padding:.7rem .85rem;font-size:.95rem}
.bubble a{color:#141910;font-weight:700}
.typing{align-self:flex-end;color:var(--muted);font-size:.85rem}
.appear{animation:pop .35s ease-out}@keyframes pop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* form */
label{display:block;font-weight:600;margin:.6rem 0 .25rem}
input,select{width:100%;min-height:44px;padding:.5rem .7rem;border-radius:10px;border:1px solid var(--line);background:#141910;color:var(--ink);font:inherit}
.line-item{display:grid;grid-template-columns:1fr 5.5rem;gap:.6rem;align-items:end;border-top:1px solid var(--line);padding-top:.4rem;margin-top:.4rem}
.estimate{background:#fff;color:#1a1a1a;border-radius:12px;padding:1.4rem;position:relative;overflow:hidden}
.estimate h2{color:#1a1a1a}.estimate .stamp{display:inline-block;border:2px solid #9b1c1c;color:#9b1c1c;font-weight:800;letter-spacing:.08em;padding:.15rem .6rem;border-radius:6px}
.estimate table{width:100%;border-collapse:collapse;font-size:.95rem;margin-top:.8rem}
.estimate th,.estimate td{text-align:left;padding:.45rem .3rem;border-bottom:1px solid #ccc}.estimate td.n,.estimate th.n{text-align:right;white-space:nowrap}
.estimate .tot td{font-weight:800;border-bottom:0}
.estimate .small{font-size:.85rem;color:#444}
.table-wrap{overflow-x:auto}
@media print{body{background:#fff;color:#000}.no-print{display:none!important}.wrap{width:100%;padding:0}.estimate{border-radius:0;padding:0}}
/* per-demo palettes (demo2) */
:root{--on-accent:#141910;--screen:#1b2319;--notice:#2d3a2a;--bezel:#0b0e09}
.btn,.bubble,.bubble a{color:var(--on-accent)}input,select{background:var(--bg)}
.screen{background:var(--screen)}.notice{background:var(--notice)}.phone{background:var(--bezel)}
body.theme-ember{--bg:#1a1414;--card:#2b1f1d;--line:#4a3430;--ink:#f3efe4;--muted:#d1c2b8;--gold:#e0703a;--on-accent:#1a1414;--screen:#231a19;--notice:#33241f;--bezel:#0e0a0a}
body.theme-harbor{--bg:#0f1a2b;--card:#1c2b42;--line:#30445f;--ink:#eef3f8;--muted:#b9c7d8;--gold:#5fb3f0;--on-accent:#0f1a2b}
.tint-ember{--gold:#e8804c;--on-accent:#1a1414;border-color:#e0703a}
.tint-harbor{--gold:#5fb3f0;--on-accent:#0f1a2b;border-color:#5fb3f0}
/* Pine Teal (demo4) */
body.theme-teal{--bg:#0f1c1b;--card:#1b2f2d;--line:#2f4a47;--ink:#eef5f2;--muted:#b8ccc7;--gold:#4fd1b0;--on-accent:#0f1c1b;--screen:#152523;--notice:#21393600;--bezel:#081110}
body.theme-teal .notice{background:#223a37}
body.theme-teal .notice .miss{color:#ffa08c}
.tint-teal{--gold:#4fd1b0;--on-accent:#0f1c1b;border-color:#4fd1b0}
/* Midnight Violet (demo5) */
body.theme-violet{--bg:#16121f;--card:#241d33;--line:#3d3352;--ink:#f1eef8;--muted:#c5bdd8;--gold:#a98cf0;--on-accent:#16121f;--screen:#1d1729;--bezel:#0c0912}
body.theme-violet .notice{background:#2e2542}
body.theme-violet .notice .miss{color:#ffa08c}
.tint-violet{--gold:#a98cf0;--on-accent:#16121f;border-color:#a98cf0}
/* Signal Green (demo6) */
body.theme-green{--bg:#121815;--card:#1e2a23;--line:#334538;--ink:#eef5ef;--muted:#bccbbf;--gold:#5dd879;--on-accent:#121815;--screen:#18211c;--bezel:#0a0e0c}
body.theme-green .notice{background:#26352c}
body.theme-green .notice .miss{color:#ffa08c}
.tint-green{--gold:#5dd879;--on-accent:#121815;border-color:#5dd879}
