/* RoomRecord — traction site stylesheet.
   Adapted from the RoomRecord app stylesheet (factory/saas/roomrecord/public/styles.css),
   re-paletted to the brand package values (brand/roomrecord/BRAND.md):
   Ledger Ink #1F2E3D · Record Paper #FAF7F1 · Harbor Teal #2E6E6A · Clay #C05B3C.
   Plain CSS, no build step. Fonts: Fraunces (headlines) + Public Sans (body)
   via Google Fonts with serif/system fallbacks — the page works fully offline
   on the fallbacks. */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:wght@600&family=Public+Sans:wght@400;500;700&display=swap');

:root{
  --ink:#1F2E3D; --muted:#5b6874; --paper:#FAF7F1; --card:#FFFDF8;
  --brand:#2E6E6A; --brand-dark:#225550; --signal:#C05B3C; --line:#DED8CC;
  --warn-bg:#FBEEE9; --warn-line:#E3B39F; --warn-ink:#7C3A26;
  --note-bg:#FDF6E3; --note-line:#E8C88F; --note-ink:#8A5510;
  --danger:#B3402A; --radius:14px;
}
*{box-sizing:border-box}
body{margin:0;font-family:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);line-height:1.55}
h1,h2,h3{font-family:"Fraunces",Georgia,serif;font-weight:600;line-height:1.2}
header.top{display:flex;align-items:center;gap:12px;padding:12px 22px;background:#fff;border-bottom:2px solid var(--line);position:sticky;top:0;z-index:50;flex-wrap:wrap}
.brand{font-weight:700;font-size:20px;letter-spacing:.3px;font-family:"Fraunces",Georgia,serif}
.brand span{color:var(--brand)}
.brand small{color:var(--muted);font-weight:400;font-family:"Public Sans",system-ui,sans-serif;font-size:14px}
nav.spacer{flex:1}
button,.btn{font:inherit;cursor:pointer;border:none;border-radius:10px;padding:10px 18px;background:var(--brand);color:#fff;font-weight:600;text-decoration:none;display:inline-block}
button:hover,.btn:hover{background:var(--brand-dark)}
button.ghost,.btn.ghost{background:#EEF1F0;color:var(--ink)}
button.ghost:hover,.btn.ghost:hover{background:#DFE7E4}
button.small,.btn.small{padding:6px 10px;font-size:13px;border-radius:8px}
button:disabled{opacity:.45;cursor:not-allowed}
a{color:var(--brand)}
input,select,textarea{font:inherit;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;background:#fff;width:100%}
textarea{resize:vertical}
label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600;color:var(--muted)}
label input,label select,label textarea{color:var(--ink);font-weight:400}
label.check{flex-direction:row;align-items:flex-start;gap:8px;color:var(--ink);font-weight:500}
label.check input{width:auto;margin-top:3px}
.muted{color:var(--muted);font-size:14px}
.err{color:var(--danger);font-size:14px;min-height:20px;margin:4px 0}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.disclaimer{color:var(--muted);font-size:13px;font-style:italic;margin:10px 0}
.hidden,[hidden]{display:none !important}
footer.site{max-width:1080px;margin:0 auto;padding:20px 22px 40px;color:var(--muted);font-size:13px;border-top:1.5px solid var(--line)}

/* layout + panels (from the app) */
.panel{background:#fff;border:1.5px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:22px}
.panel h3,.panel h4{margin-top:0}
.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;align-items:end}
.form-grid .full{grid-column:1/-1}
.card-list{display:flex;flex-direction:column;gap:10px;margin-bottom:22px}
.card{background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius);padding:16px 18px}
table{width:100%;border-collapse:collapse;background:#fff;border:1.5px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:22px}
th,td{padding:10px 12px;text-align:left;font-size:14px;border-bottom:1px solid var(--line);vertical-align:top}
th{background:#F1EEE4;font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
tr:last-child td{border-bottom:none}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.empty{color:var(--muted);font-size:14px;padding:6px 0 18px}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-bottom:26px}
.stat-card{background:#fff;border:1.5px solid var(--line);border-radius:var(--radius);padding:18px}
.stat-label{color:var(--muted);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.4px}
.stat-value{font-size:30px;font-weight:800;margin-top:6px}
.alert-item{background:var(--note-bg);border:1.5px solid var(--note-line);border-radius:10px;padding:10px 14px;font-size:14px}
.pill{display:inline-block;padding:2px 9px;border-radius:20px;font-size:12px;font-weight:700}
.pill.flag{background:#FDECEA;color:#7A1F14}
.pill.ok{background:#DFF5E1;color:#1C7A2E}

/* daycount track */
.dc-track{background:#E9E4D8;border-radius:20px;height:18px;overflow:hidden;margin:8px 0 4px}
.dc-fill{background:var(--brand);height:100%;border-radius:20px;transition:width .3s}
.dc-fill.approaching{background:#C98A1B}
.dc-fill.near,.dc-fill.past_line,.dc-fill.at_line{background:var(--signal)}
.dc-marks{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}

/* free tools */
.tool-wrap{max-width:1080px;margin:0 auto;padding:26px 22px 60px}
.tool-wrap h1{font-size:34px;margin:0 0 8px}
.tool-wrap p.sub{font-size:17px;color:var(--muted);max-width:720px;margin:0 0 22px;line-height:1.55}
.tool-banner{background:var(--note-bg);color:var(--note-ink);border:1.5px solid var(--note-line);border-radius:12px;padding:12px 16px;font-weight:600;font-size:14.5px;margin-bottom:22px}
.tool-print{display:none}

/* landing */
.wrap{max-width:1080px;margin:0 auto;padding:0 22px}
.hero{text-align:left;padding:52px 0 10px;max-width:820px}
.hero h1{font-size:40px;margin:0 0 14px}
.hero p.sub{font-size:19px;color:var(--muted);margin:0 0 22px;line-height:1.55}
.hero .price-line{font-size:20px;font-weight:700;margin:0 0 20px}
.hero .price-line .muted{font-weight:400}
.banner{background:var(--note-bg);color:var(--note-ink);border:1.5px solid var(--note-line);border-radius:12px;padding:12px 16px;font-weight:600;font-size:14.5px;margin:22px 0}
section.block{padding:28px 0 6px;max-width:820px}
section.block h2{font-size:28px;margin:0 0 14px}
section.block ul{padding-left:20px}
section.block li{margin-bottom:10px;line-height:1.55}
.steps{counter-reset:step;list-style:none;padding:0}
.steps li{counter-increment:step;margin-bottom:16px;padding-left:44px;position:relative;line-height:1.55}
.steps li::before{content:counter(step);position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;background:var(--brand);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;font-family:"Public Sans",system-ui,sans-serif}
.exclusions{background:var(--warn-bg);border:1.5px solid var(--warn-line);border-radius:var(--radius);padding:20px;margin:22px 0;max-width:820px}
.exclusions h3{margin-top:0;color:var(--warn-ink)}
.price-card{background:#fff;border:2px solid var(--line);border-radius:18px;padding:24px 30px;max-width:560px;margin:18px 0}
.price-card .amt{font-size:40px;font-weight:800;font-family:"Fraunces",Georgia,serif}
.price-card .amt .per{font-size:17px;color:var(--muted);font-family:"Public Sans",system-ui,sans-serif;font-weight:400}
.faq{max-width:820px;margin:10px 0}
.faq details{background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:14px 18px;margin-bottom:10px}
.faq summary{font-weight:700;cursor:pointer}
.faq p{color:var(--muted);font-size:14.5px;line-height:1.55}
.tool-cards{display:flex;gap:16px;flex-wrap:wrap;margin:18px 0}
.tool-card{background:#fff;border:2px solid var(--line);border-radius:18px;padding:22px 26px;max-width:360px;text-align:left;text-decoration:none;color:var(--ink);display:block}
.tool-card:hover{border-color:var(--brand)}
.tool-card .plan-name{font-weight:700;color:var(--brand);text-transform:uppercase;font-size:13px;letter-spacing:.6px}
.tool-card p{color:var(--muted);font-size:14.5px;line-height:1.5;margin:8px 0 0}
.notice-strong{background:#fff;border:2px solid var(--signal);border-radius:var(--radius);padding:16px 20px;margin:18px 0}
.notice-strong p{margin:0;font-size:15.5px}
.apply-wrap{max-width:720px;margin:0 auto;padding:26px 22px 60px}
.form-stack{display:flex;flex-direction:column;gap:16px}
.form-stack label{font-size:14px}
.form-stack .hint{font-size:12.5px;color:var(--muted);font-weight:400}

@media print{
  @page{size:letter;margin:.5in}
  body{background:#fff}
  header.top,.no-print{display:none !important}
  button{display:none !important}
  .panel,.card,.stat-card{border-color:#999}
  a{color:#000;text-decoration:none}
  .tool-screen{display:none !important}
  .tool-print{display:block !important}
  .tool-banner{display:none !important}
}
