/* SpaceCraft CRM – brand kit: Forest #224721, Lotus Sage #7E8B72, Petal Sage #9CA490, Sage Mist #C1C6B9,
   Warm Ivory #F7F3EA, Linen #E9E1D2, Charcoal #2D2F2B, Brass #B08D57 (WindowCraft accent). Fonts: Jost + Cormorant Garamond. */
@font-face{font-family:Jost;src:url(fonts/Jost-Light.ttf) format("truetype");font-weight:300;font-display:swap}
@font-face{font-family:Jost;src:url(fonts/Jost-Regular.ttf) format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:Jost;src:url(fonts/Jost-Medium.ttf) format("truetype");font-weight:500 700;font-display:swap}
@font-face{font-family:Marcellus;src:url(fonts/Marcellus-Regular.ttf) format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:Montserrat;src:url(fonts/Montserrat-Light.ttf) format("truetype");font-weight:300;font-display:swap}
@font-face{font-family:Montserrat;src:url(fonts/Montserrat-Regular.ttf) format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:Montserrat;src:url(fonts/Montserrat-Medium.ttf) format("truetype");font-weight:500;font-display:swap}
@font-face{font-family:Montserrat;src:url(fonts/Montserrat-SemiBold.ttf) format("truetype");font-weight:600 700;font-display:swap}
@font-face{font-family:Cormorant;src:url(fonts/CormorantGaramond-Medium.ttf) format("truetype");font-weight:500;font-display:swap}
@font-face{font-family:Cormorant;src:url(fonts/CormorantGaramond-SemiBold.ttf) format("truetype");font-weight:600 700;font-display:swap}
:root{--forest:#224721;--sage:#7E8B72;--petal:#9CA490;--mist:#C1C6B9;--ivory:#F7F3EA;--linen:#E9E1D2;--char:#2D2F2B;--brass:#B08D57;--accent:var(--forest);--red:#9b3b2e;--r:10px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:400 15px/1.5 Jost,system-ui,sans-serif;color:var(--char);background:var(--ivory);padding-bottom:calc(64px + env(safe-area-inset-bottom))}
h1,h2,h3{font-family:Cormorant,Georgia,serif;color:var(--forest);font-weight:600;line-height:1.15;margin:0 0 .5rem}
h1{font-size:1.9rem}h2{font-size:1.35rem}h3{font-size:1.1rem}
a{color:var(--forest)}a:hover{color:var(--accent)}
code{background:var(--linen);padding:0 .25em;border-radius:4px;font-size:.9em}
.muted{color:#5d625a}.small{font-size:.85rem}.late{color:var(--red)!important}.pre{white-space:pre-wrap}
.top{background:var(--forest);color:var(--ivory);display:flex;align-items:center;gap:1rem;padding:.6rem 1rem;position:sticky;top:0;z-index:20;border-bottom:3px solid var(--accent)}
.logo img{height:34px;display:block}
.side{display:none}
.wrap{max-width:1500px;margin:0 auto;padding:1rem}
.hgroup{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;margin:.25rem 0 1rem}
.hgroup h1{margin:0}.actions{display:flex;gap:.4rem;flex-wrap:wrap}
.crumb{margin:0 0 .25rem;font-size:.9rem}
.card{background:#fff;border:1px solid var(--linen);border-radius:var(--r);padding:1rem;margin-bottom:1rem;min-width:0}
.card.hl{border-color:var(--accent);box-shadow:0 0 0 2px var(--mist)}
.scroll{overflow-x:auto}
.grid2{display:grid;gap:0 1rem;grid-template-columns:1fr}
.btn{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--forest);background:#fff;color:var(--forest);padding:.5rem .9rem;border-radius:999px;font:500 .9rem Jost,sans-serif;text-decoration:none;cursor:pointer;min-height:38px;white-space:nowrap}
.btn.primary{background:var(--forest);color:var(--ivory)}.btn.accent{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.small{padding:.3rem .7rem;min-height:32px;font-size:.82rem}.btn.block{width:100%;justify-content:center}
.btn.wa{border-color:#1f8f4e;color:#1f8f4e;padding:.3rem .6rem;min-height:30px;font-size:.8rem}.btn.wa:hover{background:#e9f6ee}
.ic{width:16px;height:16px;fill:currentColor;flex:none}
.linkbtn{background:none;border:0;color:var(--forest);cursor:pointer;font:inherit;text-decoration:underline;padding:.2rem}
.linkbtn.danger{color:var(--red)}
.flash{background:var(--mist);border-left:4px solid var(--forest);padding:.6rem .9rem;border-radius:6px;margin-bottom:1rem}
.flash.err,.err{background:#f6e3df;border-left-color:var(--red);color:var(--red);padding:.5rem .8rem;border-radius:6px}
.badge{display:inline-block;font-size:.7rem;letter-spacing:.04em;text-transform:uppercase;padding:.05rem .45rem;border-radius:999px;background:var(--linen);color:var(--char);vertical-align:middle}
.badge.demo{background:var(--brass);color:#fff}.s-paid{background:#d9ead3;color:#24501f}.s-overdue{background:#f6e3df;color:var(--red)}.s-invoiced{background:#efe4cf;color:#6e5226}
.pill{background:var(--brass);color:#fff;border-radius:999px;padding:0 .45rem;font-size:.75rem}
/* forms */
.form{display:grid;gap:.6rem}
.fld{display:flex;flex-direction:column;gap:.2rem;min-width:0}.fld>span{font-size:.78rem;color:#5d625a;text-transform:uppercase;letter-spacing:.05em}
input,select,textarea{font:inherit;color:var(--char);background:#fff;border:1px solid var(--mist);border-radius:8px;padding:.55rem .65rem;width:100%;min-height:42px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--petal);border-color:var(--sage)}
input[type=checkbox]{width:auto;min-height:0}
.row2,.row3,.row4{display:grid;gap:.6rem;grid-template-columns:1fr 1fr;align-items:end}
.row3,.row4{grid-template-columns:1fr}
.filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.filters input[type=search]{flex:1 1 220px;width:auto}.filters select{width:auto}
.chk{display:flex;align-items:center;gap:.3rem;font-size:.9rem}
details>summary{cursor:pointer;list-style:none}details>summary::-webkit-details-marker{display:none}details[open]>summary{margin-bottom:.5rem}
/* KPIs */
.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1rem}
.kpi{background:#fff;border:1px solid var(--linen);border-top:4px solid var(--forest);border-radius:var(--r);padding:.75rem .9rem;text-decoration:none;color:var(--char);display:flex;flex-direction:column}
.kpi span{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:#5d625a}.kpi strong{font:600 1.55rem Cormorant,serif;color:var(--forest)}.kpi small{color:#5d625a;font-size:.78rem}
.kpi.k-windowcraft{border-top-color:#1E321D;background:#FEFCF6}.kpi.k-windowcraft strong{font-family:Marcellus,serif;color:#1E321D;font-weight:400}.kpi.k-owed{border-top-color:var(--sage)}.kpi.k-tasks{border-top-color:var(--red)}
.kpis.small .kpi strong{font-size:1.25rem}
/* tables */
.tbl{width:100%;border-collapse:collapse;font-size:.9rem}.tbl th{text-align:left;background:var(--linen);font-weight:500;padding:.45rem .5rem;white-space:nowrap}
.tbl td{padding:.45rem .5rem;border-bottom:1px solid var(--linen);vertical-align:top}.num{text-align:right;white-space:nowrap}
.tbl tr.lost td{opacity:.55}.tbl tr.total td{font-weight:600;border-top:2px solid var(--forest)}
.bars{width:100%;border-collapse:collapse;font-size:.85rem}.bars th{text-align:left;font-weight:400;width:32%;padding:.2rem .4rem .2rem 0;white-space:nowrap}.bars td{padding:.2rem 0}
.bar{height:14px;border-radius:3px;background:var(--forest)}.bar.b-windowcraft{background:#959F80}
.list{list-style:none;margin:0 0 .75rem;padding:0}.list li{padding:.45rem 0;border-bottom:1px solid var(--linen);display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.list li.done{opacity:.55;text-decoration:line-through}
.due{font-size:.78rem;background:var(--linen);border-radius:4px;padding:0 .35rem;white-space:nowrap}.due.late{background:#f6e3df}
.inline{display:inline}.tick{width:24px;height:24px;border:1.5px solid var(--sage);border-radius:6px;background:#fff;color:var(--forest);cursor:pointer;padding:0;font-weight:700}
.tabs{display:flex;gap:.25rem;margin-bottom:.5rem}.tabs a{padding:.3rem .7rem;border-radius:999px;text-decoration:none;font-size:.85rem}.tabs a.on{background:var(--forest);color:var(--ivory)}
/* kanban */
.kanban{display:flex;gap:.75rem;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:.75rem;margin:0 -1rem;padding-left:1rem;padding-right:1rem}
.col{flex:0 0 82%;scroll-snap-align:start;background:var(--linen);border-radius:var(--r);padding:.5rem;min-height:200px}
.col>header{display:flex;justify-content:space-between;align-items:baseline;padding:.2rem .3rem .5rem;border-bottom:2px solid var(--accent);margin-bottom:.5rem}
.col>header h3{margin:0;font-size:1.05rem}.col>header span{font-size:.75rem;color:#5d625a}
.col.over{outline:2px dashed var(--accent)}
.dcard{background:#fff;border-radius:8px;padding:.6rem .65rem;margin-bottom:.5rem;border-left:3px solid var(--accent);box-shadow:0 1px 2px rgba(0,0,0,.06);cursor:grab;display:grid;gap:.2rem}
.dcard.lost{opacity:.5}.dcard .t{font-weight:500;text-decoration:none;color:var(--char)}.dcard .meta{font-size:.8rem;color:#5d625a}.owe{color:var(--red)}
.dcard .move select{min-height:32px;padding:.2rem .4rem;font-size:.8rem;background:var(--ivory)}
.dcard .btn.wa{justify-self:start}
.stagebar{display:flex;gap:2px;overflow-x:auto;margin-bottom:1rem;padding-bottom:.25rem}
.stagebar button{border:0;background:var(--linen);padding:.45rem .7rem;font:500 .78rem Jost,sans-serif;cursor:pointer;white-space:nowrap;color:var(--char)}
.stagebar form:first-child button{border-radius:999px 0 0 999px}.stagebar form:last-child button{border-radius:0 999px 999px 0}
.stagebar .past{background:var(--mist)}.stagebar .cur{background:var(--accent);color:#fff}
.numbtns{display:flex;gap:.4rem;margin:.75rem 0}
.timeline{list-style:none;padding:0;margin:1rem 0 0;border-left:2px solid var(--mist)}.timeline li{padding:.1rem 0 .7rem .8rem;position:relative}
.timeline li:before{content:"";position:absolute;left:-6px;top:.4rem;width:10px;height:10px;border-radius:50%;background:var(--sage)}.timeline li.k-system:before{background:var(--mist)}
.timeline small{color:#5d625a}.timeline p{margin:.1rem 0}
/* bottom nav (mobile) */
.bottom{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--linen);display:flex;justify-content:space-around;padding:.3rem 0 calc(.3rem + env(safe-area-inset-bottom));z-index:30}
.bottom a{display:flex;flex-direction:column;align-items:center;font-size:.68rem;text-decoration:none;color:var(--char);gap:.1rem;padding:.2rem .4rem}.bottom .ic{width:22px;height:22px;fill:var(--forest)}
body.menu .side{display:flex;flex-direction:column;position:fixed;inset:56px 0 60px 0;background:var(--forest);padding:1rem;gap:.25rem;overflow:auto}
body.menu .side a,body.menu .side .linkbtn{color:var(--ivory);padding:.6rem .4rem;text-decoration:none;font-size:1.05rem;border-bottom:1px solid rgba(247,243,234,.15)}
/* auth */
body.auth{display:grid;place-items:center;min-height:100vh;padding:1rem;background:var(--linen)}
.authbox{width:100%;max-width:380px;display:grid;gap:.75rem;padding:1.5rem}.authlogo{width:170px;margin:0 auto}.authbox h1{text-align:center;font-size:1.3rem;letter-spacing:.3em;text-transform:uppercase}
@media (min-width:700px){
  .kpis{grid-template-columns:repeat(4,1fr)}.row3{grid-template-columns:2fr 1fr auto}.row4{grid-template-columns:2fr 1fr 1fr 1fr auto}
  .col{flex:0 0 270px}
}
@media (min-width:1000px){
  body{padding-bottom:0}.bottom{display:none}
  .top{flex-wrap:wrap}.side{display:flex;flex:1;flex-wrap:wrap;gap:.1rem;align-items:center}
  .side a{color:var(--ivory);text-decoration:none;padding:.35rem .6rem;border-radius:999px;font-size:.9rem;opacity:.85}.side a.on,.side a:hover{background:rgba(247,243,234,.14);opacity:1;color:#fff}
  .side .logout{margin-left:auto}.side .linkbtn{color:var(--mist);font-size:.85rem}
  .grid2{grid-template-columns:1fr 1fr}.card.wide{grid-column:1/-1}
  .wrap{padding:1.25rem 1.5rem}
}
.dcard .badge{justify-self:start}
.bars td:nth-child(2){width:55%}.bars td.num{padding-left:.5rem}

.card.off{opacity:.6}.badge.b-wc{background:#1E321D;color:#FEFCF6;font-family:Montserrat,sans-serif}.badge.b-sc{background:var(--forest);color:var(--ivory)}

/* ===== WindowCraft by SpaceCraft – official brand (brand_tokens.json v2, Master_Logo) =====
   Forest Ink #1E321D, Fold Shadow #5E6D4F, Ribbon Sage #959F80, Soft Sage #B7BDA2, Highlight Mist #D9DCCA,
   Logo Cream #FEFCF6, Linen #E6DCCB, Warm Taupe #A8957F, Brass Rail #B08A4F (accent tags only). Marcellus + Montserrat. */
.brand-windowcraft{--wc-ink:#1E321D;--wc-fold:#5E6D4F;--wc-ribbon:#959F80;--wc-soft:#B7BDA2;--wc-mist:#D9DCCA;--wc-cream:#FEFCF6;--wc-linen:#E6DCCB;--wc-taupe:#A8957F;--wc-brass:#B08A4F;
  --forest:var(--wc-ink);--sage:var(--wc-fold);--petal:var(--wc-ribbon);--mist:var(--wc-soft);--ivory:var(--wc-cream);--linen:var(--wc-linen);--char:var(--wc-ink);--brass:var(--wc-brass);--accent:var(--wc-ink);--r:6px;
  font-family:Montserrat,'Helvetica Neue',Arial,sans-serif;font-size:15px;background:var(--wc-cream);color:var(--wc-ink)}
.brand-windowcraft h1,.brand-windowcraft h2,.brand-windowcraft h3,.brand-windowcraft .kpi strong{font-family:Marcellus,Optima,'Palatino Linotype',serif;font-weight:400;color:var(--wc-ink)}
.brand-windowcraft h1{text-transform:uppercase;letter-spacing:.12em;font-size:1.6rem}
.brand-windowcraft h2,.brand-windowcraft .col>header h3{text-transform:uppercase;letter-spacing:.1em;font-size:1.02rem}
.brand-windowcraft .muted,.brand-windowcraft .kpi small,.brand-windowcraft .dcard .meta,.brand-windowcraft .col>header span{color:var(--wc-fold)}
.brand-windowcraft .kpi span,.brand-windowcraft .fld>span,.brand-windowcraft .tbl th{font-weight:500;letter-spacing:.18em;text-transform:uppercase;font-size:.7rem}
/* header on light background with the colour horizontal logo */
.brand-windowcraft .top{background:var(--wc-cream);color:var(--wc-ink);border-bottom:1px solid var(--wc-ribbon);box-shadow:0 1px 0 var(--wc-mist)}
.brand-windowcraft .logo img.wc-logo{height:44px;width:auto}
.brand-windowcraft .side a{color:var(--wc-ink)}.brand-windowcraft .side a.on,.brand-windowcraft .side a:hover{background:var(--wc-mist);color:var(--wc-ink)}
.brand-windowcraft .side .linkbtn{color:var(--wc-fold)}
.menu-logo{display:none}
body.brand-windowcraft.menu .side{background:var(--wc-ink)}body.brand-windowcraft.menu .side a,body.brand-windowcraft.menu .side .linkbtn{color:var(--wc-cream);border-bottom-color:rgba(254,252,246,.15)}
body.brand-windowcraft.menu .menu-logo{display:block;height:36px;width:auto;margin:0 0 1rem}
.brand-windowcraft .card,.brand-windowcraft .kpi{border-color:var(--wc-mist);border-radius:6px}
.brand-windowcraft .btn{border-radius:6px;border-color:var(--wc-ink);color:var(--wc-ink);font-family:Montserrat,sans-serif;font-weight:500;letter-spacing:.04em}
.brand-windowcraft .btn.primary,.brand-windowcraft .btn.accent{background:var(--wc-ink);border-color:var(--wc-ink);color:var(--wc-cream)}
.brand-windowcraft .btn:not(.primary):not(.accent):not(.wa){background:var(--wc-mist);border-color:var(--wc-mist)}
.brand-windowcraft .tbl th{background:var(--wc-soft);color:var(--wc-ink)}.brand-windowcraft .tbl tr:nth-child(even) td{background:#F4F3EA}
.brand-windowcraft input,.brand-windowcraft select,.brand-windowcraft textarea{border-color:var(--wc-soft);border-radius:6px;font-family:Montserrat,sans-serif}
.brand-windowcraft .flash{background:var(--wc-mist);border-left-color:var(--wc-fold)}
.brand-windowcraft .kpi{border-top-color:var(--wc-ink)}.brand-windowcraft .kpi.k-owed{border-top-color:var(--wc-ribbon)}.brand-windowcraft .kpi.k-tasks{border-top-color:var(--wc-taupe)}
.brand-windowcraft .bar{background:var(--wc-ribbon)}
.brand-windowcraft .due{background:var(--wc-mist)}
/* kanban + deal cards */
.brand-windowcraft .col{background:var(--wc-mist);border-radius:6px}
.brand-windowcraft .col>header{border-bottom:1px solid var(--wc-ribbon)}
.brand-windowcraft .dcard{border-radius:6px;border-left:3px solid var(--wc-ribbon);box-shadow:0 1px 2px rgba(30,50,29,.08)}
.brand-windowcraft .dcard .t{color:var(--wc-ink);font-weight:500}
.brand-windowcraft .dcard .move select{background:var(--wc-cream)}
.brand-windowcraft .stagebar button{background:var(--wc-mist);font-family:Montserrat,sans-serif}.brand-windowcraft .stagebar .past{background:var(--wc-soft)}.brand-windowcraft .stagebar .cur{background:var(--wc-ink);color:var(--wc-cream)}
.brand-windowcraft .timeline{border-left-color:var(--wc-soft)}.brand-windowcraft .timeline li:before{background:var(--wc-fold)}
/* badges: Brass Rail is the accent tag colour */
.brand-windowcraft .badge{border-radius:4px;background:var(--wc-mist);color:var(--wc-ink);letter-spacing:.12em}
.brand-windowcraft .badge.demo,.brand-windowcraft .pill{background:var(--wc-brass);color:#fff}
.brand-windowcraft .bottom{background:var(--wc-cream);border-top-color:var(--wc-mist)}.brand-windowcraft .bottom a{color:var(--wc-ink)}.brand-windowcraft .bottom .ic{fill:var(--wc-ink)}
/* WindowCraft brand badge, usable in any context (e.g. admin contact/payment lists) */
.badge.bb-windowcraft{background:#1E321D;color:#FEFCF6;font-family:Montserrat,sans-serif;font-weight:500;letter-spacing:.14em}
.badge.bb-spacecraft{background:var(--linen);color:var(--forest)}
/* login at ?brand=windowcraft */
body.auth.brand-windowcraft{background:var(--wc-cream)}
.auth.brand-windowcraft .authbox{border:1px solid var(--wc-mist);border-top:3px solid var(--wc-ink);border-radius:6px;box-shadow:0 8px 30px rgba(30,50,29,.06)}
.authlogo.wc{width:260px;height:auto}
.auth.brand-windowcraft h1{font-size:.95rem;letter-spacing:.3em;color:var(--wc-fold)}
@media (max-width:999px){.brand-windowcraft .logo img.wc-logo{height:36px}}
