/* ============================================================
   LumberJack AI — Takeoff & Estimating
   Shared stylesheet: marketing shell + app shell
   Tokens sampled from approved mockups (v2 identity)
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap');

:root{
  /* palette (sampled) */
  --ink:#070E14;          /* page dark */
  --ink-2:#0B1620;        /* raised dark panel */
  --ink-3:#0F1D28;        /* card on dark */
  --sidebar:#050E15;
  --green:#29C76F;        /* primary accent */
  --green-deep:#17A656;
  --green-dim:#103325;
  --mint:#F1FFF9;         /* light section tint */
  --paper:#FDFDFD;        /* app content bg */
  --card:#FFFFFF;
  --line:#E6EAEA;
  --line-dark:#16242E;
  --text:#15211B;         /* on light */
  --muted:#5F6E69;
  --text-inv:#E9F2EE;     /* on dark */
  --muted-inv:#8BA199;
  --gold:#E8B64C;
  --blue:#4C9AE8; --red:#E86A5B; --purple:#9B7BE8; --teal:#37C2B4; --orange:#E8A04C;
  --radius:12px; --radius-lg:16px;
  --shadow:0 1px 2px rgba(7,14,20,.06),0 8px 24px rgba(7,14,20,.07);
  --font-display:'Space Grotesk',system-ui,sans-serif;
  --font-body:'Inter',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{font-family:var(--font-body);color:var(--text);background:var(--paper);line-height:1.55;font-size:15px}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--font-display);line-height:1.12;letter-spacing:-.01em}
.eyebrow{font:600 11px/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--green)}
:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:4px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;font:600 14px var(--font-body);
  padding:11px 20px;border-radius:9px;border:1px solid transparent;cursor:pointer;white-space:nowrap}
.btn-green{background:var(--green);color:#06140C}
.btn-green:hover{background:#23B864}
.btn-ghost{border-color:#27424F;color:var(--text-inv)}
.btn-ghost:hover{border-color:var(--green);color:var(--green)}
.btn-ghost-light{border-color:var(--line);color:var(--text);background:#fff}
.btn-ghost-light:hover{border-color:var(--green-deep);color:var(--green-deep)}
.btn-dark{background:var(--ink-2);color:var(--text-inv)}
.btn-sm{padding:7px 14px;font-size:13px;border-radius:8px}

/* ============================================================
   MARKETING SHELL
   ============================================================ */
.mk{background:var(--ink);color:var(--text-inv)}
.mk-nav{display:flex;align-items:center;gap:24px;max-width:1200px;margin:0 auto;padding:10px 28px}
.mk-nav .brand{display:flex;align-items:center}
.mk-nav .brand img{height:48px;width:auto;border-radius:8px;mix-blend-mode:lighten}
.mk-links{display:flex;gap:18px;white-space:nowrap;font:500 13.5px var(--font-body);color:var(--muted-inv);margin-left:8px}
.mk-links a:hover,.mk-links a[aria-current]{color:var(--text-inv)}
.mk-links a[aria-current]{color:var(--green)}
.mk-nav .spacer{flex:1}
.wrap{max-width:1200px;margin:0 auto;padding:0 28px}

/* hero */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line-dark)}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;padding-top:72px;padding-bottom:72px;align-items:center}
.hero h1{font-size:52px;font-weight:700}
.hero h1 .accent{color:var(--green)}
.hero p.lede{margin:18px 0 26px;color:var(--muted-inv);max-width:46ch}
.hero .cta-row{display:flex;gap:14px;align-items:center}
.hero .cta-note{font-size:12px;color:var(--muted-inv);margin-top:10px}
.hero-art{position:relative}
.hero-art .panel{background:var(--ink-2);border:1px solid var(--line-dark);border-radius:var(--radius-lg);padding:18px}
.hero-art .panel h4{font:600 12px var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted-inv);margin-bottom:12px}
.hero-art .kv{display:flex;justify-content:space-between;font-size:13px;padding:7px 0;border-bottom:1px solid var(--line-dark);color:var(--muted-inv)}
.hero-art .kv b{color:var(--text-inv);font-weight:600}
.hero-art .ok{display:inline-flex;align-items:center;gap:6px;color:var(--green);font:600 12.5px var(--font-body);margin-top:12px}

/* value strip */
.strip{border-bottom:1px solid var(--line-dark)}
.strip .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.strip .cell{padding:26px 22px;border-left:1px solid var(--line-dark)}
.strip .cell:first-child{border-left:0}
.strip h3{font-size:14.5px;display:flex;gap:9px;align-items:center;color:var(--text-inv)}
.strip p{font-size:12.5px;color:var(--muted-inv);margin-top:6px}
.dot{width:26px;height:26px;border-radius:50%;background:var(--green-dim);color:var(--green);
  display:inline-flex;align-items:center;justify-content:center;font-size:13px;flex:none}

/* light sections */
.lt{background:var(--mint);color:var(--text)}
.lt.white{background:#fff}
.section{padding:72px 0}
.section-head{text-align:center;max-width:640px;margin:0 auto 44px}
.section-head h2{font-size:32px}
.section-head p{color:var(--muted);margin-top:10px}
.grid-6{display:grid;grid-template-columns:repeat(6,1fr);gap:18px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.grid-5{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
.fcard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.fcard .ic{width:36px;height:36px;border-radius:9px;background:var(--green-dim);color:var(--green);
  display:flex;align-items:center;justify-content:center;font-size:16px;margin-bottom:12px}
.fcard h3{font-size:15px;margin-bottom:6px}
.fcard p{font-size:12.8px;color:var(--muted)}
.fcard .more{display:inline-block;margin-top:10px;font:600 12.5px var(--font-body);color:var(--green-deep)}
.fcard .more:hover{text-decoration:underline}
.tag{display:inline-block;font:700 9.5px/1 var(--font-body);letter-spacing:.08em;text-transform:uppercase;
  color:#06140C;background:var(--green);border-radius:5px;padding:4px 7px}

/* product shot frame */
.shot{background:var(--ink-2);border:1px solid var(--line-dark);border-radius:var(--radius-lg);padding:10px;box-shadow:0 30px 80px rgba(0,0,0,.45)}
.shot .bar{display:flex;gap:6px;padding:4px 6px 10px}
.shot .bar i{width:9px;height:9px;border-radius:50%;background:#23323D}
.shot .inner{border-radius:10px;overflow:hidden;background:var(--paper)}

/* dark CTA band */
.band{background:var(--ink);color:var(--text-inv);padding:64px 0;text-align:center}
.band h2{font-size:34px}
.band p{color:var(--muted-inv);margin:12px auto 26px;max-width:52ch}
.band .cta-row{display:flex;gap:14px;justify-content:center}

/* footer */
.mk-footer{background:var(--sidebar);color:var(--muted-inv);border-top:1px solid var(--line-dark)}
.mk-footer .wrap{display:flex;gap:24px;justify-content:space-between;align-items:center;padding:22px 28px;font-size:12.5px;flex-wrap:wrap}
.mk-footer .cols{display:flex;gap:26px}
.mk-footer a:hover{color:var(--text-inv)}

/* pricing tiers */
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch}
.tier{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px;display:flex;flex-direction:column;position:relative}
.tier.popular{border-color:var(--green);box-shadow:0 0 0 1px var(--green),var(--shadow)}
.tier .pop{position:absolute;top:-11px;left:50%;transform:translateX(-50%)}
.tier h3{font-size:17px}
.tier .price{font-family:var(--font-display);font-size:38px;font-weight:700;margin:10px 0 2px}
.tier .per{font-size:12px;color:var(--muted)}
.tier ul{list-style:none;margin:16px 0 20px;font-size:13px;color:var(--text);flex:1}
.tier ul li{padding:6px 0 6px 24px;position:relative}
.tier ul li::before{content:"✓";position:absolute;left:0;color:var(--green-deep);font-weight:700}
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.stat-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;text-align:center}
.stat-card b{display:block;font-family:var(--font-display);font-size:26px;color:var(--green-deep)}
.stat-card span{font-size:12.5px;color:var(--muted)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;counter-reset:step}
.step{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.step::before{counter-increment:step;content:counter(step);display:inline-flex;width:28px;height:28px;border-radius:50%;
  background:var(--green);color:#06140C;font:700 14px var(--font-display);align-items:center;justify-content:center;margin-bottom:10px}
.quote{background:#fff;border:1px solid var(--line);border-left:4px solid var(--green);border-radius:var(--radius);padding:20px;font-size:14px}
.quote footer{margin-top:10px;font-size:12.5px;color:var(--muted)}

/* ============================================================
   APP SHELL (Window / Siding takeoff screens)
   ============================================================ */
.app{display:grid;grid-template-columns:228px 1fr;min-height:100vh;background:var(--paper)}
.side{background:var(--sidebar);color:var(--text-inv);padding:18px 14px;display:flex;flex-direction:column;gap:4px}
.side .logo{display:flex;justify-content:center;padding:2px 4px 14px;border-bottom:1px solid var(--line-dark);margin-bottom:12px}
.side .logo img{width:100%;max-width:196px;height:auto;border-radius:10px}
.side .group{font:700 9.5px/1 var(--font-body);letter-spacing:.13em;color:#5B7264;margin:14px 8px 6px;text-transform:uppercase}
.side a{display:flex;align-items:center;gap:10px;font:500 13px var(--font-body);color:#B9C9C2;
  padding:8px 10px;border-radius:8px}
.side a:hover{background:var(--ink-3);color:#fff}
.side a[aria-current]{background:var(--green-dim);color:var(--green);font-weight:600}
.side .user{margin-top:auto;border-top:1px solid var(--line-dark);padding-top:12px;display:flex;gap:10px;align-items:center}
.side .user .av{width:32px;height:32px;border-radius:50%;background:var(--green);color:#06140C;
  display:flex;align-items:center;justify-content:center;font:700 13px var(--font-display)}
.side .user b{font-size:12.5px;display:block}
.side .user span{font-size:11px;color:var(--muted-inv)}

.main{display:flex;flex-direction:column;min-width:0}
.topbar{display:flex;align-items:center;gap:14px;padding:12px 22px;border-bottom:1px solid var(--line);background:#fff}
.crumb{font-size:13px;color:var(--muted)}
.crumb b{color:var(--text)}
.topbar .spacer{flex:1}
.page{padding:20px 22px;display:flex;flex-direction:column;gap:18px}
.page-title h1{font-size:24px}
.page-title p{font-size:13px;color:var(--muted);margin-top:2px}

.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}
.kpi label{font:600 10.5px/1 var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:flex;gap:7px;align-items:center}
.kpi b{display:block;font-family:var(--font-display);font-size:22px;margin-top:8px}
.kpi small{font-size:11px;color:var(--muted)}
.kpi.cost b{color:var(--green-deep)}
.kpi .vb{font:600 11.5px var(--font-body);color:var(--green-deep)}

.workspace{display:grid;grid-template-columns:1fr 296px;gap:18px;align-items:start}
.viewer{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.viewer .tools{display:flex;gap:8px;align-items:center;border-bottom:1px solid var(--line);padding:8px 12px;font-size:12.5px;color:var(--muted)}
.viewer .tools .tool{border:1px solid var(--line);border-radius:7px;padding:4px 9px;background:#fff;cursor:pointer}
.viewer .tools .tool:hover{border-color:var(--green-deep);color:var(--green-deep)}
.viewer .canvas{padding:18px;background:repeating-linear-gradient(0deg,#FBFCFC 0 23px,#F2F5F4 23px 24px),repeating-linear-gradient(90deg,#FBFCFC 0 23px,#F2F5F4 23px 24px)}
.viewer .cap{display:flex;justify-content:space-between;font:600 10.5px/1 var(--font-body);letter-spacing:.1em;color:var(--muted);padding:0 18px 14px}

.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:12px}
.panel h3{font-size:13.5px}
.panel .kv{display:flex;justify-content:space-between;font-size:12.5px;padding:5px 0;border-bottom:1px dashed var(--line)}
.panel .kv span{color:var(--muted)}
.panel .kv b{font-weight:600}
.panel .preview{border:1px solid var(--line);border-radius:9px;height:110px;display:flex;align-items:center;justify-content:center;background:var(--mint)}
.panel .sub{font:700 10px/1 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.chip{display:inline-block;font:600 11px var(--font-body);border:1px solid var(--line);border-radius:999px;padding:4px 10px;color:var(--muted);background:#fff}

.tablecard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.tablecard .thead{display:flex;gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line)}
.tabs{display:flex;gap:4px}
.tabs a{font:600 12.5px var(--font-body);color:var(--muted);padding:7px 12px;border-radius:8px}
.tabs a[aria-current]{background:var(--green-dim);color:var(--green-deep)}
table{width:100%;border-collapse:collapse;font-size:12.8px}
th{font:600 10.5px/1 var(--font-body);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);
  text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);background:#FAFBFB}
td{padding:9px 12px;border-bottom:1px solid #F0F3F2}
tr.sel td{background:#E9FBF1}
tr:hover td{background:#F6FBF8}
td .sw{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-1px;margin-right:7px}
.badge{display:inline-block;font:600 10.5px var(--font-body);border-radius:6px;padding:3px 8px}
.badge.green{background:#E3F6EC;color:var(--green-deep)}
.tfoot{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;font-size:12px;color:var(--muted)}
.pager{display:flex;gap:6px}
.pager a{border:1px solid var(--line);border-radius:7px;padding:4px 10px;font-size:12px}
.pager a[aria-current]{background:var(--green);border-color:var(--green);color:#06140C;font-weight:700}

.donut-wrap{display:flex;gap:16px;align-items:center}
.donut{width:108px;height:108px;border-radius:50%;flex:none;position:relative;
  background:conic-gradient(var(--green) 0 27.5%, var(--blue) 27.5% 51.2%, var(--purple) 51.2% 67%, var(--orange) 67% 79.3%, var(--red) 79.3% 86%, var(--teal) 86% 100%)}
.donut::after{content:"";position:absolute;inset:26px;background:#fff;border-radius:50%}
.donut b{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  z-index:1;font:700 14px var(--font-display)}
.donut b small{font:500 9px var(--font-body);color:var(--muted)}
.legend{font-size:11.5px;color:var(--muted);display:grid;gap:5px}
.legend i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:7px}

/* responsive */
@media(max-width:1020px){
  .hero .wrap{grid-template-columns:1fr}
  .grid-6{grid-template-columns:repeat(3,1fr)}
  .grid-4,.grid-5,.stat-row{grid-template-columns:repeat(2,1fr)}
  .strip .wrap{grid-template-columns:repeat(2,1fr)}
  .strip .cell{border-left:0;border-top:1px solid var(--line-dark)}
  .workspace{grid-template-columns:1fr}
  .kpis{grid-template-columns:repeat(2,1fr)}
  .tiers,.grid-3,.steps{grid-template-columns:1fr}
  .app{grid-template-columns:1fr}
  .side{flex-direction:row;flex-wrap:wrap;align-items:center}
  .side .user{margin-top:0;border-top:0}
  .mk-links{display:none}
  .hero h1{font-size:38px}
}

.mockimg{width:100%;height:auto;display:block;border-radius:10px}
.hero-art .mockimg{box-shadow:0 20px 60px rgba(0,0,0,.45)}
.viewer .canvas.mock{padding:0}
.viewer .canvas.mock img{width:100%;height:auto;display:block}

/* launch-scope availability */
.soon{display:inline-block;font:700 9px/1 var(--font-body);letter-spacing:.07em;text-transform:uppercase;color:#6E7D77;background:#EDF1EF;border:1px solid var(--line);border-radius:5px;padding:3px 7px;vertical-align:middle;margin-left:6px}
.now{display:inline-block;font:700 9px/1 var(--font-body);letter-spacing:.07em;text-transform:uppercase;color:#06140C;background:var(--green);border-radius:5px;padding:3px 7px;vertical-align:middle;margin-left:6px}
.wip{display:inline-block;font:700 9px/1 var(--font-body);letter-spacing:.07em;text-transform:uppercase;color:#3A2E10;background:var(--gold);border-radius:5px;padding:3px 7px;vertical-align:middle;margin-left:6px}
.preview-ribbon{position:fixed;top:54px;right:-44px;transform:rotate(45deg);background:var(--gold);color:#1c1404;font:700 11px var(--font-body);letter-spacing:.1em;padding:6px 56px;box-shadow:0 4px 14px rgba(0,0,0,.25);z-index:50}
.avail-note{font-size:12px;color:var(--muted);text-align:center;margin-top:14px}
.avail-note .now,.avail-note .soon{margin:0 4px}
