:root{
  --herb:#1F3A32; --jade:#AEB8A0; --cream:#F8F4EA; --tomato:#C94F36;
  --saffron:#D9A441; --rule:#96A28A; --ink:#22302B; --card:#FFFFFF;
}
*{box-sizing:border-box}
body{margin:0;background:var(--cream);color:var(--ink);
  font-family:'DM Sans',system-ui,sans-serif;font-size:15px;line-height:1.45}
main{max-width:860px;margin:0 auto;padding:16px 14px 80px}
.topbar{background:var(--herb);color:var(--cream);display:flex;align-items:center;
  justify-content:space-between;padding:12px 16px;position:sticky;top:0;z-index:10}
.wordmark{font-family:'Newsreader',serif;font-weight:700;letter-spacing:.12em;
  color:var(--cream);text-decoration:none;font-size:17px}
.wordmark span{color:var(--saffron)}
.topbar nav a{color:var(--cream);text-decoration:none;margin-left:14px;font-size:14px}
.topbar nav a.muted{opacity:.7}
h1{font-family:'Newsreader',serif;font-size:24px;margin:14px 0 4px}
h2{font-family:'Newsreader',serif;font-size:19px;margin:20px 0 8px;
  border-bottom:2px solid var(--rule);padding-bottom:4px}
.sub{color:#5c6a63;font-size:13px;margin:0 0 14px}
.card{background:var(--card);border:1px solid #e4e0d2;border-radius:12px;
  padding:14px;margin:10px 0;box-shadow:0 1px 2px rgba(31,58,50,.06)}
.rgroup{border-left:4px solid var(--jade);padding-left:10px;margin:18px 0}
.rname{font-weight:700;font-size:16px}
.badge{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;background:var(--jade);color:var(--herb);
  border-radius:10px;padding:2px 8px;margin-left:6px;vertical-align:middle}
.badge.empty{background:#e5e2d5;color:#8a8a7a}
.badge.tomato{background:var(--tomato);color:#fff}
.badge.saffron{background:var(--saffron);color:var(--herb)}
.statusrow{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0;align-items:center}
.statusrow label{font-size:11.5px;color:#5c6a63}
select,input[type=text],input[type=email],input[type=password],textarea{
  font:inherit;border:1px solid #d8d4c4;border-radius:8px;padding:6px 8px;
  background:#fff;max-width:100%}
select{font-size:13px}
textarea{width:100%;min-height:90px}
.caption{white-space:pre-wrap;background:#faf8f0;border:1px solid #eee9da;
  border-radius:8px;padding:10px;font-size:13.5px;max-height:180px;overflow:auto}
.btnrow{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
button,.btn{font:inherit;font-size:13px;font-weight:500;border:1px solid var(--herb);
  background:#fff;color:var(--herb);border-radius:999px;padding:6px 14px;cursor:pointer;
  text-decoration:none;display:inline-block}
button.primary,.btn.primary{background:var(--herb);color:var(--cream)}
button:active{transform:translateY(1px)}
.weeknav{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.weeknav a{font-size:13px;border:1px solid var(--rule);border-radius:999px;
  padding:5px 12px;text-decoration:none;color:var(--herb)}
.weeknav a.on{background:var(--herb);color:var(--cream);border-color:var(--herb)}
.edcard{display:block;text-decoration:none;color:inherit}
.edcard:hover{border-color:var(--jade)}
.edcard .city{font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:#7a8078}
.edcard .stats{font-size:12.5px;color:#5c6a63;margin-top:6px}
.tabs{display:flex;gap:8px;margin:10px 0 4px}
.tabs a{font-size:13px;padding:6px 14px;border-radius:999px;text-decoration:none;
  color:var(--herb);border:1px solid var(--rule)}
.tabs a.on{background:var(--herb);color:var(--cream);border-color:var(--herb)}
.authbox{max-width:380px;margin:8vh auto}
.authbox input{width:100%;margin:6px 0 12px}
.error{color:var(--tomato);font-size:14px}
#toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);
  background:var(--herb);color:var(--cream);border-radius:999px;
  padding:9px 18px;font-size:13.5px;z-index:99}
.readermd{white-space:pre-wrap;background:#fff;border:1px solid #e4e0d2;
  border-radius:10px;padding:14px;font-size:13.5px;max-height:420px;overflow:auto}
.flash{background:#EEF3E6;border-color:var(--jade);font-weight:500}
.health{font-size:12.5px;border-radius:8px;padding:7px 12px;margin:8px 0}
.health.ok{background:#EEF3E6;color:var(--herb)}
.health.warn{background:#FBF1D9;color:#7a5a12}
.health.bad{background:#F8E3DE;color:#8a2f1f;font-weight:600}
.sendbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.sendbar .btnrow{margin:0}
.sendbar form{display:inline}
.gate{background:#faf8f0;border:1px dashed #d8d4c4;border-radius:8px;padding:6px 8px}
.gate .approve{font-weight:700;color:var(--herb);font-size:13px;display:flex;align-items:center;gap:6px}
.gate input[type=checkbox]{width:18px;height:18px;accent-color:var(--herb)}
.gate input[type=datetime-local]{font-size:12.5px;padding:4px 6px}
button.small{font-size:11.5px;padding:3px 10px}
button[disabled]{opacity:.45;cursor:not-allowed}
.err{color:var(--tomato);font-size:12.5px;margin:4px 0}
.thumb{width:96px;height:96px;object-fit:cover;border-radius:10px;float:right;
  margin:0 0 8px 10px;border:1px solid #e4e0d2}
.upl{cursor:pointer}
@media (max-width:520px){ .statusrow{gap:6px} select{font-size:12.5px}
  .thumb{width:72px;height:72px} }

/* ---- v0.2: builder, photo library, restaurant pages ---- */
.buildgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:760px){ .buildgrid{grid-template-columns:1fr} }
.lib{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.lib.big{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.ph{position:relative;border:2px solid #e4e0d2;border-radius:10px;overflow:hidden;cursor:pointer;background:#fff}
.ph img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.ph.on{border-color:var(--herb);box-shadow:0 0 0 2px var(--saffron)}
.ph .pick{position:absolute;top:6px;left:6px;background:var(--saffron);color:var(--herb);font-weight:700;
  font-size:12px;border-radius:999px;min-width:22px;height:22px;line-height:22px;text-align:center;padding:0 6px}
.ph .perm{position:absolute;bottom:0;left:0;right:0;font-size:9.5px;text-align:center;background:rgba(255,255,255,.85);
  color:#7a8078;padding:2px 0;text-transform:uppercase;letter-spacing:.04em}
.ph .perm.ok{color:var(--herb)} .ph .perm.bad{color:var(--tomato)}
.ph.edit{cursor:default} .phmeta{padding:8px}
.phmeta input,.phmeta select{width:100%;margin:0 0 6px;font-size:12.5px}
.slide{border-left:4px solid #e4e0d2}
.slide.current{border-left-color:var(--saffron);background:#fffdf5}
.slidephotos{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.sp{position:relative;width:150px;font-size:11px;color:#5c6a63}
.sp img{width:150px;height:110px;object-fit:cover;border-radius:8px;display:block}
.sp .k{position:absolute;top:6px;left:6px;background:var(--herb);color:var(--cream);font-weight:700;border-radius:999px;
  width:22px;height:22px;line-height:22px;text-align:center;font-size:12px}
.sp label{display:block;margin-top:3px} .sp input[type=range]{width:100%;margin:0}
.sp .rm{position:absolute;top:6px;right:6px;padding:0 8px;background:#fff}
.previews{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}
.previews figure{margin:0;width:min(360px,100%)} .previews figure.story{width:min(220px,100%)}
.previews img{width:100%;border-radius:10px;border:1px solid #e4e0d2;display:block;cursor:zoom-in}
.previews figcaption .zoom{margin-left:6px}
.previews figcaption{font-size:11.5px;color:#5c6a63;margin-top:4px}
.slides{position:absolute;right:6px;top:6px;background:var(--herb);color:var(--cream);font-size:10px;font-weight:700;
  border-radius:999px;padding:2px 7px}
.thumbwrap{position:relative;float:right;display:block;margin:0 0 8px 10px}
.thumbwrap .thumb{float:none;margin:0}
.tl .thumb{width:72px;height:72px}

.editbox{margin-top:8px;border:1px dashed #d8d4c4;border-radius:8px;padding:6px 10px}
.editbox summary{cursor:pointer}
.editbox textarea,.editbox input[type=text]{margin-top:2px}
.editbox label.sub{display:block;margin-top:6px}

.orow .btnrow{align-items:center}
.opreview textarea,.oemail textarea{margin-top:2px}
.opreview,.oemail{margin-top:8px;border-top:1px dashed #d8d4c4;padding-top:8px}
.badge.state{margin-left:0;align-self:center}
[hidden]{display:none !important}

/* ---- week dashboard: tabs, pipeline, tiles, actions, calendar, checklist ---- */
.weekhead{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 10px;padding:8px 0;border-bottom:1px solid #e4e0d2}
.weektabs{display:flex;gap:4px;background:#ECE8DA;border-radius:999px;padding:3px}
.weektabs a{font-size:13px;padding:5px 13px;border-radius:999px;text-decoration:none;color:var(--herb);font-weight:500}
.weektabs a.on{background:#fff;box-shadow:0 1px 2px rgba(31,58,50,.12)}
.weekpick{margin-left:auto;font-size:12px;color:#5c6a63}
.weekpick select{margin-left:4px}
.weekcard.current{border-left:5px solid var(--saffron)}
.weekrow{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.weekrow .wk{font-family:'Newsreader',serif;font-weight:700;font-size:18px;color:var(--herb);text-decoration:none}
.weekcard.past{display:block;text-decoration:none;color:inherit;padding:10px 14px}
.weekcard.past:hover{border-color:var(--jade)}
.weekcard.past.done{opacity:.72}
.weekcard.past .wk{font-size:15px}
.mini{font-size:12.5px;color:#5c6a63;white-space:nowrap}
.mini.nl.none{color:var(--tomato)} .mini.nl.drafted{color:#7a5a12} .mini.nl.verified,.mini.nl.beehiiv,.mini.nl.scheduled,.mini.nl.sent{color:#3E6B48}
.next{font-size:15px;font-weight:500;color:var(--herb);margin:6px 0 10px}
.postbar{display:inline-flex;width:120px;height:10px;background:#e5e2d5;border-radius:999px;overflow:hidden}
.postbar i{display:block;height:100%}
.postbar .posted{background:#3E6B48} .postbar .scheduled{background:#4F657C} .postbar .built{background:var(--saffron)}
.pipeline{display:flex;gap:4px;margin:6px 0 10px;overflow-x:auto;padding-bottom:2px}
.stage{flex:1 1 0;min-width:72px;text-align:center;text-decoration:none;color:var(--herb);border-radius:8px;padding:6px 4px;
  background:#EFECE0;border:1px solid #e4e0d2;position:relative}
.stage .n{display:block;font-family:'Newsreader',serif;font-weight:700;font-size:18px;line-height:1.1}
.stage .n small{font-size:11px;font-weight:500;color:#7a8078}
.stage .l{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:#5c6a63;margin-top:2px}
.stage.done{background:#DCE8DA;border-color:#B9CDB8}
.stage.part{background:#FBF1D9;border-color:#EAD39A}
.stage.none{opacity:.7}
.tiles{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:10px 0 4px}
@media (max-width:700px){ .tiles{grid-template-columns:repeat(3,1fr)} }
.tile{display:block;text-decoration:none;color:#fff;border-radius:12px;padding:12px 6px 10px;text-align:center}
.tile .n{display:block;font-family:'Newsreader',serif;font-weight:700;font-size:30px;line-height:1}
.tile .l{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;margin-top:6px;font-weight:700}
.tile.tomato{background:#C24E36} .tile.saffron{background:#D9A441;color:var(--herb)} .tile.jade{background:#AEB8A0;color:var(--herb)}
.tile.olive{background:#7A6B2E} .tile.slate{background:#4F657C} .tile.green{background:#3E6B48}
.tile.zero{opacity:.55}
.actions{display:flex;flex-direction:column;gap:6px;margin:4px 0 10px}
.action{display:block;background:#fff;border:1px solid #e4e0d2;border-left:5px solid var(--jade);border-radius:10px;
  padding:9px 12px;text-decoration:none;color:var(--ink);font-size:14px}
.action span{color:#5c6a63}
.action.tomato{border-left-color:var(--tomato)} .action.saffron{border-left-color:var(--saffron)} .action.olive{border-left-color:#7A6B2E}
.action:hover{border-color:var(--jade)}
.actions.compact{margin-top:10px}
.calwrap{overflow-x:auto;margin:8px 0}
.cal{display:grid;grid-template-columns:repeat(7,minmax(96px,1fr));gap:6px;min-width:700px}
.cal .col{background:#fff;border:1px solid #e4e0d2;border-radius:10px;padding:6px;min-height:110px}
.cal .d{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:#7a8078;font-weight:700;text-align:center;margin-bottom:6px}
.cal .none{color:#c9c5b6;text-align:center;font-size:12px;margin-top:20px}
.ci{display:block;text-decoration:none;color:var(--ink);border:4px solid #d8d4c4;border-radius:10px;padding:3px;margin-bottom:6px;background:#faf8f0}
.ci img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:5px;display:block}
.ci .ph-empty{display:flex;align-items:center;justify-content:center;aspect-ratio:1;font-size:10.5px;color:#8a8a7a;text-transform:uppercase;letter-spacing:.04em;text-align:center}
.ci .t{display:block;font-size:10.5px;color:#7a8078;margin-top:3px}
.ci .nm{display:block;font-size:11px;font-weight:600;line-height:1.2;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
/* card states share the Grow tab's palette: gold = built, blue = scheduled in GHL, green = posted */
:root{--cs-built:#D8AA12;--cs-sched:#3A9BE0;--cs-posted:#26924F}
.ci.built,.ci.approved{border-color:var(--cs-built);border-style:solid}
.ci.scheduled{border-color:var(--cs-sched)} .ci.posted{border-color:var(--cs-posted)} .ci.failed{border-color:var(--tomato)}
.ci .t{font-weight:600} .ci.built .t,.ci.approved .t{color:#9a7a0a} .ci.scheduled .t{color:#1f6fae} .ci.posted .t{color:var(--cs-posted)}
.badge.cs-built{background:var(--cs-built);color:#1a1a1a} .badge.cs-sched{background:var(--cs-sched);color:#fff} .badge.cs-posted{background:var(--cs-posted);color:#fff}
.ci.todo,.ci.photos{border-style:dashed}
.checklist{display:flex;flex-wrap:wrap;gap:6px 14px;margin:8px 0 4px;font-size:13px}
.checklist .step{display:flex;align-items:center;gap:6px;color:#8a8a7a}
.checklist .step small{color:#8a8a7a;font-weight:400;margin-left:2px}
.checklist .step.done{color:var(--herb)} .checklist .step.now{color:var(--herb);font-weight:600}
.checklist .tick{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:999px;
  font-size:11px;font-weight:700;background:#e5e2d5;color:#8a8a7a}
.checklist .step.done .tick{background:#3E6B48;color:#fff} .checklist .step.now .tick{background:var(--saffron);color:var(--herb)}
.cal .d small{font-weight:400;color:#a9a99a;letter-spacing:0;text-transform:none;font-size:10.5px}

/* Newsletter tab — the human checklist + Stage 2 status */
.review{background:#f6f4ea;border:1px solid #e5e2d5;border-radius:10px;padding:10px 12px;margin:6px 0 10px}
.checks{list-style:none;margin:0 0 6px;padding:0}
.checks li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:4px 0;border-bottom:1px dashed #e5e2d5;font-size:14px}
.checks li:last-child{border-bottom:0}
.checks li label{display:flex;gap:8px;align-items:baseline;cursor:pointer;flex:1;min-width:16em}
.checks li.done span{color:#8a8a7a;text-decoration:line-through}
.checks li small{margin:0;font-size:11.5px}
.checks li input.answer{flex-basis:100%;width:100%;box-sizing:border-box;margin:2px 0 2px 26px;font-size:13px;padding:4px 8px;border:1px dashed #cfcbbd;border-radius:6px;background:#fff}
.checks li input.answer:focus{border-style:solid;border-color:var(--saffron);outline:none}
.checks li.answered input.answer{border-style:solid;border-color:#3E6B48;background:#f2f8f2}
.checks li.answered > label span{color:var(--herb)}
.checks li.applied span{color:#8a8a7a}
.cgroup{margin:8px 0 2px}
.cghead{font-weight:700;color:var(--herb);font-size:13px;letter-spacing:.3px;text-transform:uppercase;margin:6px 0 2px;padding-bottom:2px;border-bottom:2px solid var(--jade)}
.cghead .sub{font-weight:400;text-transform:none;letter-spacing:0;margin-left:6px}
details.cgroup > summary.cghead{cursor:pointer;list-style:none;color:#7a8078;border-bottom-color:#e5e2d5}
details.cgroup > summary.cghead::before{content:'▸ ';font-size:11px}
details.cgroup[open] > summary.cghead::before{content:'▾ '}
.checks li .fyi{color:#7a8078;font-size:13px}
.tier{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;padding:1px 7px;border-radius:999px;vertical-align:middle;margin-right:4px}
.tier.decide{background:var(--tomato);color:#fff}
.tier.fill{background:#eee9d9;color:var(--herb)}
.checks li.t-decide > label > span:last-child{font-weight:600}
.gen{border-radius:10px;padding:8px 12px;margin:6px 0 10px;border:1px solid #e5e2d5;background:#fff}
.gen .sub{display:block;white-space:pre-wrap;margin:2px 0 0}
.gen.running,.gen.queued{border-color:var(--saffron);background:#fff8e1}
.gen.done{border-color:#3E6B48;background:#eef5ee}
.gen.error{border-color:var(--tomato);background:#fdf0ec}
.gen .btn.small{display:inline-block;padding:4px 10px;border:1px solid var(--herb);border-radius:999px;font-size:12.5px;text-decoration:none;color:var(--herb)}

/* Posts tab — the Sunday question + reader picks panel */
.qpanel{background:#f6f4ea;border:1px solid #e5e2d5}
.qcols{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px}
.qcol{background:#fff;border:1px solid #e5e2d5;border-radius:10px;padding:10px 12px}
.qcol .qhead{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px}
.qcol .qtext{margin:2px 0 8px;font-family:Newsreader,Georgia,serif;font-size:17px;color:var(--herb)}
.qcol label.sub{display:block;margin:6px 0}
.qcol input[type=text],.qcol textarea,.qcol select{width:100%;box-sizing:border-box;margin-top:3px}
.qcol .qhead select{width:auto;margin:0 0 0 4px}
.qcol .btnrow{margin-top:8px;align-items:center}
.qcol .btn.small{display:inline-block;padding:4px 10px;border:1px solid var(--herb);border-radius:999px;font-size:12.5px;text-decoration:none;color:var(--herb)}

/* Tips tab */
.tiprow.faded{opacity:.62}
.tiprow textarea{min-height:44px;margin-top:4px}

/* review by reading: the newsletter with a note box under each entry */
.paper{background:#fff;border:1px solid #e4e0d2;border-radius:10px;padding:14px 18px;max-width:760px}
.paper .ptitle h1{font-size:20px;margin:0 0 2px}
.paper .ptitle h3{font-size:14px;font-weight:600;margin:0 0 4px;color:#555}
.paper .ptitle p{margin:0 0 6px;font-size:13.5px}
.paper h4.psec{margin:16px 0 4px;padding-bottom:3px;border-bottom:2px solid #efe9d6;font-size:13px;letter-spacing:.4px;text-transform:uppercase;color:#6a6a5a}
.paper .entry{padding:6px 0 10px;border-bottom:1px dashed #ece8da}
.paper .entry:last-child{border-bottom:0}
.paper .ehtml p{margin:0 0 4px;font-size:14px;line-height:1.45}
.paper .ehtml p:last-child{margin-bottom:0}
.paper .hint{font-size:12px;color:#8a5a12;background:#fff8e6;border-radius:6px;padding:2px 8px;margin:4px 0 0;display:inline-block}
textarea.enote{display:block;width:100%;box-sizing:border-box;margin-top:6px;font:inherit;font-size:13px;line-height:1.4;padding:5px 9px;border:1px dashed #cfcbbd;border-radius:6px;background:#fbfaf6;resize:none;overflow:hidden;min-height:28px}
textarea.enote:focus{border-style:solid;border-color:var(--saffron);outline:none;background:#fff}
.entry.noted textarea.enote{border-style:solid;border-color:#3E6B48;background:#f2f8f2}
textarea.enote.saving{opacity:.6}
textarea.enote.failed{border-color:var(--tomato)}
details.foryou{margin-top:12px;background:#f7f5ee;border:1px solid #e4e0d2;border-radius:10px;padding:8px 14px;max-width:760px}
details.foryou > summary{cursor:pointer}
details.foryou .p2{font-size:13px;line-height:1.45;margin-top:8px;max-height:28em;overflow:auto;padding-right:6px}
details.foryou .p2 h1,details.foryou .p2 h2,details.foryou .p2 h3{font-size:13px;margin:10px 0 2px}
details.foryou .p2 p{margin:0 0 6px}
details.foryou .hint{display:block;font-size:12px;color:#8a5a12;background:#fff8e6;border-radius:6px;padding:2px 8px;margin:3px 0}
textarea.enote.fy{margin-top:10px;background:#fff}

/* lightbox: click a card preview to see it full size */
.lb{position:fixed;inset:0;background:rgba(20,28,24,.88);display:flex;align-items:center;justify-content:center;z-index:1000;cursor:zoom-out;padding:24px}
.lb img{max-width:min(96vw,1080px);max-height:92vh;border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.5);background:#fff}
.lb .lbx{position:absolute;top:14px;right:18px;color:#fff;font-size:26px;line-height:1;cursor:pointer;opacity:.8}
.thumbwrap .zoom{position:absolute;left:4px;bottom:4px;background:rgba(255,255,255,.92);border-radius:6px;font-size:11px;padding:1px 6px;color:#22302B;text-decoration:none}
/* Run tab: collapsible run docs */
details.rundoc > summary{list-style:none}
details.rundoc > summary::-webkit-details-marker{display:none}
details.rundoc > summary::before{content:'▸ ';color:#7a8078;font-size:13px}
details.rundoc[open] > summary::before{content:'▾ '}
details.rundoc > summary small{font-weight:400;font-size:12.5px;display:block;margin:2px 0 0 18px}
.ph.blocked{opacity:.45;cursor:not-allowed}
.hero summary{cursor:pointer}
.herobox .lib{grid-template-columns:repeat(auto-fill,minmax(84px,1fr))}

/* ---- the Today panel (above the week tabs) ---- */
.today{margin:10px 0 4px;padding:12px 14px;border-radius:14px;background:#F3F0E4;border:1px solid #e4e0d2}
.today.alldone{background:#eef3e6;border-color:#b9cdb0}
.todayhead{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.todayhead .headline{flex:1;min-width:220px;font-weight:600;color:var(--herb)}
.todayhead > .btn{flex:none}
.jobs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:10px}
@media (max-width:760px){.jobs{grid-template-columns:repeat(2,minmax(0,1fr))}}
.job{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:10px;background:#fff;border:1px solid #e4e0d2;text-decoration:none;color:var(--herb);min-width:0}
.job .jn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:#ECE8DA;font-size:12px;font-weight:700;color:#5c6a63}
.job .jl{font-weight:600;font-size:13.5px} .job .jl small{font-weight:400;color:#8a8a7a;margin-left:4px}
.job .jd{font-size:12.5px;color:#5c6a63;white-space:normal}
.job.done .jn{background:#3E6B48;color:#fff} .job.done{opacity:.85}
.job.next{border-color:var(--saffron);box-shadow:0 0 0 2px rgba(224,184,76,.35)} .job.next .jn{background:var(--saffron);color:var(--herb)}
.job.later,.job.waiting{color:#8a8a7a} .job.later .jl,.job.waiting .jl{color:#8a8a7a}
.job.on{border:2px solid var(--herb);padding:7px 9px;opacity:1;position:relative} .job.on .jl{color:var(--herb)}
.job.on::after{content:"";position:absolute;left:50%;bottom:-8px;margin-left:-7px;border:7px solid transparent;border-top-color:var(--herb);border-bottom:0}
.todayhead .weekpick{margin-left:auto;display:flex;align-items:center;gap:8px}
.todayhead .weekpick .btn.on{background:var(--herb);color:#fff;border-color:var(--herb)}
.today .jobs{margin-bottom:4px}
.weektabs a b{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:999px;background:#d9d4c2;color:var(--herb);font-size:11px;margin-right:5px}
.weektabs a.on b{background:var(--herb);color:#fff}
.weektabs a small{color:#8a8a7a;margin-left:4px;font-weight:400}
.history summary{cursor:pointer;color:#5c6a63;font-size:13.5px;margin:12px 0 6px}

/* ---- review entries fold: flagged ones open, clean ones a single ✓ line ---- */
.paper details.entry > summary.esum{list-style:none;cursor:pointer;display:flex;gap:8px;align-items:baseline;font-size:13.5px}
.paper details.entry > summary.esum::-webkit-details-marker{display:none}
.paper details.entry > summary.esum .emark{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:999px;font-size:11px;background:#e7efe3;color:#3E6B48;flex:none}
.paper details.entry.flagged > summary.esum .emark{background:#fff3d6;color:#8a5a12}
.paper details.entry.noted > summary.esum .emark{background:#3E6B48;color:#fff}
.paper details.entry[open] > summary.esum{margin-bottom:4px}
.paper details.entry.clean:not([open]){padding:4px 0}

/* ---- guided setup pages (Connect GoHighLevel) ---- */
.setup .step{margin:10px 0;padding:14px 16px}
.setup .stephead{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.setup .stephead h2{margin:0;font-size:17px}
.setup .tick{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:999px;background:#ECE8DA;color:#5c6a63;font-weight:700;font-size:13px;flex:none}
.setup .step.done .tick{background:#3E6B48;color:#fff}
.setup .step.now{border-color:var(--saffron);box-shadow:0 0 0 2px rgba(224,184,76,.35)} .setup .step.now .tick{background:var(--saffron);color:var(--herb)}
.setup .step.done{opacity:.92}
.setup .howto{margin:6px 0 8px;padding-left:22px;font-size:14px} .setup .howto li{margin:0 0 4px}
.setup .pick{display:block;padding:6px 8px;margin:3px 0;border-radius:8px;background:#fbfaf5;border:1px solid #ece8da;cursor:pointer}
.setup .pick:hover{border-color:#cfcab8}
.setup .ok{color:#3E6B48;font-weight:600;margin:6px 0 0}

/* ---- message folds on the outreach setup page: full-height text, one fold per kind of ask ---- */
.caption.full{max-height:none;overflow:visible}
.msgfold{margin:6px 0;padding:8px 12px;border-radius:10px;border:1px solid #ece8da;background:#fbfaf5}
.msgfold>summary{cursor:pointer;font-size:14px}
.msgfold[open]{background:#fff}
.msgfold textarea.grow{width:100%;box-sizing:border-box;font-size:13.5px;line-height:1.45;resize:vertical;overflow:hidden;min-height:60px}

/* ---- Grow v2 (2026-10-13): overview, category grid, category pages ---- */
.gnav{display:flex;flex-wrap:wrap;gap:4px;margin:-4px 0 16px;border-bottom:1px solid #e4e0d2;padding-bottom:8px}
.gnav a{font-size:13px;padding:5px 12px;border-radius:8px;text-decoration:none;color:#5c6a63;font-weight:500}
.gnav a.on{background:#EEF3E6;color:var(--herb);font-weight:700}
.howto summary{cursor:pointer;list-style:none} .howto summary::-webkit-details-marker{display:none}
.ksteps{list-style:none;margin:12px 0 2px;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.ksteps li{display:flex;gap:10px;align-items:flex-start;font-size:13px}
.ksteps .n{flex:none;width:26px;height:26px;border-radius:50%;background:#fff;border:2px solid var(--herb);color:var(--herb);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}
.ksteps li.done .n{background:var(--herb);color:var(--cream)}
.ksteps .sub{font-size:12px;margin:0}
.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:14px 0 18px}
.kpi{background:#fff;border:1px solid #e4e0d2;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;text-decoration:none;color:var(--ink)}
.kpi .v{font-family:'Newsreader',serif;font-weight:700;font-size:30px;line-height:1;color:var(--herb)}
.kpi .l{font-size:12.5px;font-weight:700;margin-top:6px}
.kpi .d{font-size:11.5px;color:#5c6a63;margin-top:2px}
.kpi .d.up{color:#3E6B48;font-weight:700}
.kpi.hot{border-color:var(--saffron);box-shadow:inset 0 0 0 1px var(--saffron)}
.kpi.hot .v{color:#9a6a12}
.today{padding:6px 8px}
.trow{display:grid;grid-template-columns:28px minmax(120px,220px) 1fr auto;gap:10px;align-items:center;padding:8px 6px;
  border-radius:8px;text-decoration:none;color:var(--ink);font-size:13.5px}
.trow+.trow{border-top:1px solid #f0ece0}
.trow:hover{background:#faf8f1}
.trow .em{font-size:17px;text-align:center} .trow .who{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trow .what{color:#5c6a63} .trow.overdue .what{color:var(--tomato);font-weight:600}
.trow .go{font-size:12.5px;font-weight:700;color:var(--herb)}
.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:11.5px;color:#5c6a63;margin:0 0 8px}
.legend span{display:inline-flex;align-items:center;gap:5px}
.legend .sw{display:inline-block;width:12px;height:8px;border-radius:2px}
/* stage colors (Nolan, 2026-10-14): yellow · orange · purple · blue · green — validated as a categorical set */
:root{--st-prospect:#D8AA12;--st-contacted:#E0681A;--st-yes:#7C3AA8;--st-delivered:#3A9BE0;--st-live:#26924F}
.st-prospect{background:var(--st-prospect)} .st-contacted{background:var(--st-contacted)} .st-yes{background:var(--st-yes)}
.st-delivered{background:var(--st-delivered)} .st-live{background:var(--st-live)}
.ggrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}
.gtile{background:#fff;border:1px solid #e4e0d2;border-radius:14px;padding:14px 16px 12px;text-decoration:none;color:var(--ink);
  display:flex;flex-direction:column;gap:8px;transition:border-color .12s, box-shadow .12s}
.gtile:hover{border-color:var(--jade);box-shadow:0 2px 10px rgba(31,58,50,.07)}
.gtile.start{border-style:dashed}
.gt-head{display:flex;align-items:center;gap:8px}
.gt-head .em{font-size:20px} .gt-name{font-family:'Newsreader',serif;font-weight:700;font-size:17px;color:var(--herb)}
.gt-deal{font-size:12px;color:#5c6a63;margin:0;line-height:1.45}
.gt-deal b{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);margin-right:3px}
.minibar{display:flex;gap:2px;height:10px;border-radius:4px;overflow:hidden;background:#f3f0e6}
.minibar i{display:block;height:100%;min-width:6px}
.minibar.empty{background:repeating-linear-gradient(135deg,#f3f0e6 0 6px,#ebe7da 6px 8px)}
.gt-nums{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:#5c6a63}
.gt-nums b{color:var(--ink);font-size:13px}
.gt-hint{margin-top:auto;font-size:12.5px;font-weight:700;color:var(--herb)}
.gt-hint.due{color:#9a6a12} .gt-hint.start{color:#5c6a63}
.gcols{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hbars{margin-top:10px;display:flex;flex-direction:column;gap:7px}
.hb{display:grid;grid-template-columns:minmax(150px,200px) 1fr 34px;gap:8px;align-items:center;font-size:12.5px}
.hb-l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hb-track{height:10px;background:#f3f0e6;border-radius:4px;overflow:hidden}
.hb-track i{display:block;height:100%;background:var(--herb);border-radius:0 4px 4px 0;min-width:2px}
.hb-v{text-align:right;font-weight:700}
.leaders{margin:8px 0 0;padding-left:20px;font-size:13px} .leaders li{margin:4px 0} .leaders a{color:var(--herb);font-weight:600}
.leaders .sub{font-size:12px;margin:0 0 0 6px}
.recent{margin:6px 0 0;padding-left:18px;font-size:12.5px;color:#5c6a63}
.chead{display:flex;align-items:center;gap:8px;margin:2px 0 10px} .chead .em{font-size:24px}
.pbook{display:flex;flex-direction:column;gap:6px}
.pb-row{display:grid;grid-template-columns:150px 1fr;gap:10px;font-size:14px}
.pb-k{font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#5c6a63;padding-top:2px}
.pb-edit{margin-top:6px}
.cstepper{list-style:none;padding:0;margin:0 0 14px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.cstepper li{background:#fff;border:1px solid #e4e0d2;border-radius:12px;padding:10px 12px;display:flex;gap:10px;align-items:flex-start;font-size:13px}
.cstepper .n{flex:none;width:24px;height:24px;border-radius:50%;border:2px solid var(--rule);color:#5c6a63;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px}
.cstepper li.done .n{background:var(--jade);border-color:var(--jade);color:var(--herb)}
.cstepper li.here{border:2px solid var(--saffron);background:#fffdf5}
.cstepper li.here .n{background:var(--herb);border-color:var(--herb);color:var(--cream)}
.cstepper .st{display:block} .cstepper .cnt{display:block;font-size:11.5px;color:#5c6a63;margin-top:3px;font-weight:700}
.cstepper .youare{display:block;font-size:11.5px;color:#9a6a12;font-weight:700;margin-top:2px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.chips a{font-size:12.5px;padding:4px 11px;border:1px solid var(--rule);border-radius:999px;text-decoration:none;color:var(--herb);background:#fff}
.chips a.on{background:var(--herb);color:var(--cream);border-color:var(--herb)}
.chips a.none{opacity:.55} .chips b{margin-left:3px}
.pcard{border-left:5px solid #e4e0d2} .pcard.st-prospect{border-left-color:var(--st-prospect)} .pcard.st-contacted{border-left-color:var(--st-contacted)}
.pcard.st-yes{border-left-color:var(--st-yes)} .pcard.st-delivered{border-left-color:var(--st-delivered)} .pcard.st-live{border-left-color:var(--st-live)}
.pcard.st-closed{border-left-color:#d8d4c6;opacity:.8}
.pcard.st-prospect,.pcard.st-contacted,.pcard.st-yes,.pcard.st-delivered,.pcard.st-live{background:#fff}
.pc-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.pc-stats{margin:0 0 0 auto}
/* chips: a light tint of the stage color + a full-color dot, dark text — readable at small sizes */
.stage-chip{--c:#8a8a7a;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:2px 9px 2px 7px;
  border-radius:999px;color:var(--ink);background:color-mix(in srgb,var(--c) 16%,#fff);border:1px solid color-mix(in srgb,var(--c) 55%,#fff);
  display:inline-flex;align-items:center;gap:5px}
.stage-chip::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c)}
.stage-chip.st-prospect{--c:var(--st-prospect)} .stage-chip.st-contacted{--c:var(--st-contacted)} .stage-chip.st-yes{--c:var(--st-yes)}
.stage-chip.st-delivered{--c:var(--st-delivered)} .stage-chip.st-live{--c:var(--st-live)}
.stage-chip.st-closed{--c:#a8a698;color:#6f6f62}
.pc-next{margin:6px 0 0;font-size:13px;color:#5c6a63} .pc-next.due{color:var(--ink);font-weight:600}
.pc-next.overdue{color:var(--tomato)} .pc-focus{font-weight:400;color:#5c6a63}
.pc-placements{margin-top:8px;font-size:12.5px} .pc-placements ul{margin:4px 0 0;padding-left:18px}
button.linkish{border:none;background:none;padding:0 4px;color:#a0a090;font-size:14px;cursor:pointer}
button.linkish:hover{color:var(--tomato)}
.oplace{background:#faf8f1;border:1px solid #ece7d8;border-radius:10px;padding:8px 10px;margin-top:8px}
@media (max-width:900px){ .ggrid{grid-template-columns:repeat(2,1fr)} .kpis{grid-template-columns:repeat(3,1fr)}
  .ksteps,.cstepper{grid-template-columns:repeat(2,1fr)} .gcols{grid-template-columns:1fr} }
@media (max-width:560px){ .ggrid{grid-template-columns:1fr} .kpis{grid-template-columns:repeat(2,1fr)}
  .ksteps,.cstepper{grid-template-columns:1fr} .trow{grid-template-columns:24px 1fr auto} .trow .what{grid-column:2/4}
  .pb-row{grid-template-columns:1fr;gap:2px} }
.utmtable{border-collapse:collapse;font-size:12.5px;margin:4px 0 10px}
.utmtable th{text-align:left;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:#5c6a63;padding:3px 14px 3px 0}
.utmtable td{padding:3px 14px 3px 0;border-top:1px solid #f0ece0}
/* overview tiles: partners at each of the five steps (2026-10-14) */
.stepcounts{display:grid;grid-template-columns:repeat(5,1fr);gap:3px}
.stepcounts .sc{display:flex;flex-direction:column;align-items:center;padding:5px 2px 4px;border-radius:6px;line-height:1.1;
  background:color-mix(in srgb,var(--c) 15%,#fff);border-top:3px solid var(--c)}
.stepcounts .sc b{font-size:16px;color:var(--ink)} .stepcounts .sc small{font-size:9.5px;color:#5c6a63;white-space:nowrap;margin-top:2px}
.stepcounts .sc.off{background:#f6f4ee;border-top-color:#e4e0d2} .stepcounts .sc.off b{color:#c2bfb2;font-weight:400}
.sc.st-prospect{--c:var(--st-prospect)} .sc.st-contacted{--c:var(--st-contacted)} .sc.st-yes{--c:var(--st-yes)}
.sc.st-delivered{--c:var(--st-delivered)} .sc.st-live{--c:var(--st-live)}
.stepcounts .sc{background-color:color-mix(in srgb,var(--c) 15%,#fff)} .stepcounts .sc.off{background-color:#f6f4ee}
.liveline{height:6px;border-radius:3px;background:#f1eee4;overflow:hidden;margin-top:2px}
.liveline i{display:block;height:100%;background:var(--st-live);border-radius:3px}
.livecap{font-size:11.5px;color:#5c6a63;margin-top:-4px} .livecap b{color:var(--ink)}
/* partner card: fill-in-fifths meter (Prospect 1/5 yellow … Live 5/5 green) */
.pmeter{display:inline-block;width:110px;height:8px;border-radius:4px;background:#f1eee4;overflow:hidden;position:relative;vertical-align:middle}
.pmeter::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,transparent calc(20% - 1px),#fff calc(20% - 1px),#fff 20%,transparent 20%,
    transparent calc(40% - 1px),#fff calc(40% - 1px),#fff 40%,transparent 40%,
    transparent calc(60% - 1px),#fff calc(60% - 1px),#fff 60%,transparent 60%,
    transparent calc(80% - 1px),#fff calc(80% - 1px),#fff 80%,transparent 80%)}
.pmeter i{display:block;height:100%;border-radius:4px}
/* Grow → Results (2026-10-14) */
.rhead{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:4px 0 12px}
.focus{border-left:5px solid var(--saffron);background:#fffdf5}
.focus .fx-l{font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#9a6a12}
.focus ul{margin:6px 0 0;padding-left:18px;font-size:14px} .focus li{margin:3px 0}
.kpis.kpis4{grid-template-columns:repeat(4,1fr)}
.tscroll{overflow-x:auto;padding:8px 10px}
table.score{border-collapse:collapse;width:100%;font-size:12.5px}
table.score th{text-align:right;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:#5c6a63;padding:6px 8px;border-bottom:1px solid #e4e0d2;white-space:nowrap;cursor:help}
table.score td{text-align:right;padding:7px 8px;border-bottom:1px solid #f0ece0;white-space:nowrap}
table.score th:first-child,table.score td:first-child,table.score td.cat{text-align:left}
table.score td.cat a{color:var(--herb);font-weight:600;text-decoration:none}
table.score tr.dim td{color:#b5b3a6} table.score td.soft{color:#9a9a8c}
table.score td.best{background:#EEF3E6;font-weight:700;color:var(--herb)}
table.score td.best::before{content:"★ ";font-size:10px;color:#3E6B48}
table.score.tight th,table.score.tight td{padding:5px 6px}
.smalltag{display:inline-block;font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;background:#efece2;color:#8a8a7a;padding:1px 6px;border-radius:999px;vertical-align:middle}
.mm{display:flex;flex-direction:column;gap:4px;font-size:12px}
.mm-row{display:grid;grid-template-columns:minmax(150px,200px) repeat(12,1fr) 46px;gap:3px;align-items:end}
.mm-row.head .mm-c{text-align:center;font-size:10px;color:#5c6a63;letter-spacing:.04em}
.mm-l{color:#5c6a63;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-bottom:2px}
.mm-row.all .mm-l{font-weight:700;color:var(--ink)}
.mm-c{position:relative;height:38px;background:#f6f4ee;border-radius:3px;display:flex;align-items:flex-end;justify-content:center}
.mm-row.head .mm-c,.mm-row.place .mm-c{height:auto;background:none}
.mm-c i{display:block;width:70%;background:var(--jade);border-radius:3px 3px 0 0;min-height:0}
.mm-row.all .mm-c i{background:var(--herb)}
.mm-c em{position:absolute;top:2px;left:0;right:0;text-align:center;font-style:normal;font-size:10px;color:#5c6a63}
.mm-row.place .mm-c em{position:static;color:#8a8a7a}
.mm-t{text-align:right;font-weight:700;padding-bottom:2px}
@media (max-width:900px){ .kpis.kpis4{grid-template-columns:repeat(2,1fr)} .mm-row{grid-template-columns:110px repeat(12,1fr) 36px} .mm-l{font-size:11px} }
.tlabel{font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#5c6a63;margin:2px 0 4px}
/* Grow → Materials (2026-10-14) */
.mgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}
.mtile{background:#fff;border:1px solid #e4e0d2;border-radius:14px;padding:12px 14px}
.mtile .gt-head{margin-bottom:6px}
.mlist{list-style:none;margin:0;padding:0}
.mlist li{display:grid;grid-template-columns:12px 1fr auto;gap:8px;align-items:center;padding:7px 0;border-top:1px solid #f0ece0;font-size:13px}
.mlist li:first-child{border-top:none}
.mlist .mname{font-weight:600} .mlist .sub{font-size:11.5px;margin:0}
.mlist li.st-soon .mname,.mlist li.st-wait .mname{color:#7d7d70;font-weight:500}
.mdot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#d8d4c6}
.st-ready .mdot,.mdot.st-ready{background:var(--st-live)} .st-needs .mdot,.mdot.st-needs{background:var(--saffron)}
.st-wait .mdot,.mdot.st-wait{background:#c9c5b6} .st-soon .mdot,.mdot.st-soon{background:#fff;border:1.5px solid #c9c5b6}
.legend .mdot{width:9px;height:9px;border-radius:50%}
.mcopy textarea{width:100%;font-size:13px;line-height:1.45;overflow:hidden;resize:none;field-sizing:content}
@media (max-width:900px){ .mgrid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:560px){ .mgrid{grid-template-columns:1fr} }
.mtile .gt-head .badge{white-space:nowrap;flex:none;font-size:9.5px}
/* partner-card material button that still needs the editor's hand (a list not written yet) */
.btn.needs{border-color:var(--saffron);color:#8a6a00;background:#FFF7E0}
/* guide / list version line on partner cards (2026-10-14) */
.pc-ver{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12.5px;margin:-2px 0 8px;padding:5px 9px;border-radius:7px;background:#F4F1E8}
.pc-ver select{font-size:12.5px;padding:2px 4px}
.pc-ver.behind{background:#EAF3FB;outline:1px solid var(--st-delivered)}
.badge.newver{background:var(--st-delivered);color:#fff;font-weight:600}
.verbox .verchk{display:flex;gap:8px;align-items:flex-start;margin-top:8px;font-size:13px}
.verbox .verchk input{margin-top:3px}
/* per-partner list page: the four steps (2026-10-14) */
.lsteps{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:4px 0 12px}
.lsteps li{display:flex;gap:6px;align-items:center;font-size:12.5px;padding:5px 10px;border:1px solid #DDD8C8;border-radius:999px;background:#fff;color:#6b706c}
.lsteps li b{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#E8E4D8;font-size:11px}
.lsteps li.now{border-color:var(--saffron);color:var(--herb);font-weight:600} .lsteps li.now b{background:var(--saffron);color:#fff}
.lsteps li.done b{background:var(--st-live);color:#fff}
.lplace.needs{border-color:var(--saffron);background:#FFFBEF}
.msubs{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.msubs .btn.small{font-size:12px;padding:3px 9px}
/* import layouts per category (2026-10-14) */
.implayout{margin:8px 0 10px}
.imphead{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin-bottom:6px;font-size:13px}
.tablewrap{overflow-x:auto;border:1px solid #E2DDCF;border-radius:8px;background:#fff}
.imptable{border-collapse:collapse;font-size:12px;white-space:nowrap}
.imptable th{background:#1F3B32;color:#fff;font-weight:600;text-align:left;padding:5px 9px}
.imptable td{padding:5px 9px;color:#7A7F7B;font-style:italic;border-top:1px solid #EEE9DC;max-width:320px;overflow:hidden;text-overflow:ellipsis}
.req{color:var(--tomato);font-style:normal;font-weight:700}

/* ---- Sticky sidebar (2026-10-14): replaces the top bar, the edition tabs and the week cards ---- */
body.withrail{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}
body.withrail > main{grid-column:2;width:100%;max-width:960px;margin:0 auto;padding:18px 28px 80px}
body.withrail > .muted{grid-column:2}
.rail{grid-column:1;grid-row:1 / span 3;align-self:start;position:sticky;top:0;height:100vh;overflow-y:auto;
  background:var(--herb);color:var(--cream);z-index:20}
.railin{display:flex;flex-direction:column;min-height:100%;padding:16px 12px 14px}
.rail .wordmark{font-size:13.5px;letter-spacing:.1em;padding:2px 8px 14px;display:block;white-space:nowrap}
.rail a{color:var(--cream);text-decoration:none}
.edpick{position:relative;margin:0 0 8px}
.edpick > summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;
  background:rgba(248,244,234,.1);border:1px solid rgba(248,244,234,.18);font-size:13.5px;font-weight:700;line-height:1.3}
.edpick > summary::-webkit-details-marker{display:none}
.edpick > summary:hover{background:rgba(248,244,234,.16)}
.edpick .edname{flex:1;min-width:0}
.edpick .chev{opacity:.7;font-size:12px}
.edpick[open] .chev{transform:rotate(180deg)}
.edlist{margin-top:4px;padding:4px;border-radius:10px;background:#fff;box-shadow:0 8px 24px rgba(31,58,50,.25)}
.edlist a{display:block;padding:7px 9px;border-radius:7px;color:var(--herb) !important;font-size:13px;font-weight:500;line-height:1.3}
.edlist a small{display:block;font-size:11px;color:#7a8078;font-weight:400}
.edlist a:hover{background:#F3F0E4}
.edlist a.on{background:#EEF3E6;font-weight:700}
.edlist a.all{border-top:1px solid #ece8da;border-radius:0 0 7px 7px;margin-top:2px;color:#5c6a63 !important;font-size:12.5px}
.rlabel{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:16px 8px 4px;
  font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--jade)}
.rweekrow{margin:0 0 4px}
.rweekrow select.rweek{width:100%;font-size:12.5px;font-weight:500;padding:5px 8px;border-radius:8px;background:rgba(248,244,234,.08);
  color:var(--cream);border:1px solid rgba(248,244,234,.22);cursor:pointer}
.rweekrow select.rweek:hover{background:rgba(248,244,234,.14)}
.rweekrow select.rweek option{color:var(--ink);background:#fff}
.rweekone{display:block;font-size:12.5px;padding:2px 8px;opacity:.8}
.ri{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 8px;margin:1px 0;border-radius:8px;
  font-size:13.5px;line-height:1.3;border:1px solid transparent}
.ri > span{display:flex;align-items:center;gap:8px;min-width:0}
.ri:hover{background:rgba(248,244,234,.08)}
.ri.on{background:var(--cream);color:var(--herb) !important;font-weight:700}
.ri .jn{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;border-radius:999px;flex:none;
  background:rgba(248,244,234,.16);font-size:11px;font-weight:700;font-style:normal}
.ri .jn.ic{background:transparent;font-size:14px}
.ri.job-done .jn{background:#3E6B48;color:#fff}
.ri.job-next .jn{background:var(--saffron);color:var(--herb)}
.ri.job-later,.ri.job-waiting{color:rgba(248,244,234,.62) !important}
.ri.on.job-later,.ri.on.job-waiting{color:var(--herb) !important}
.ri.on .jn{background:var(--herb);color:var(--cream)}
.ri em{font-style:normal;font-size:11px;white-space:nowrap}
.ri em.cnt{opacity:.65}
.ri em.pill{background:var(--saffron);color:var(--herb);border-radius:999px;padding:1px 7px;font-weight:700}
.ri em.pill.red{background:var(--tomato);color:#fff}
.ri.back{font-size:12px;opacity:.75}
.rfoot{margin-top:auto;padding-top:14px;border-top:1px solid rgba(248,244,234,.14)}
.rfoot .who{display:flex;justify-content:space-between;padding:8px 8px 0;font-size:12.5px}
.rfoot .who a{opacity:.7} .rfoot .who a:hover,.rfoot .who a.on{opacity:1}
.mbar,.railshade{display:none}

/* page head + the one-line next-step bar + jump chips */
.pagehead{margin:0 0 10px}
.pagehead .crumbs{display:flex;flex-wrap:wrap;gap:6px;font-size:12.5px;color:#7a8078}
.pagehead .crumbs a{color:#5c6a63;text-decoration:none} .pagehead .crumbs a:hover{text-decoration:underline}
.pagehead h1{margin:2px 0 0;font-size:28px}
.pagehead + .gnav{margin-top:4px}
.nextbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 12px;padding:9px 12px;border-radius:10px;
  background:#fbf4e2;border:1px solid #ecd9a4;font-size:13.5px;color:var(--herb)}
.nextbar > span{flex:1;min-width:220px}
.nextbar .btn{margin-left:auto}
.nextbar.done{background:#eef3e6;border-color:#b9cdb0}
.jumpbar{position:sticky;top:0;z-index:15;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;
  margin:0 -28px 10px;padding:8px 28px;background:rgba(248,244,234,.94);backdrop-filter:blur(6px);
  border-bottom:1px solid #e4e0d2}
.jumpbar::-webkit-scrollbar{display:none}
.jumpbar a{flex:none;font-size:12.5px;padding:4px 11px;border-radius:999px;border:1px solid var(--rule);
  color:var(--herb);text-decoration:none;background:#fff;white-space:nowrap}
.jumpbar a:hover{border-color:var(--herb)}
.jumpbar a.on{background:var(--herb);color:var(--cream);border-color:var(--herb)}
[data-jump],.paper h4.psec{scroll-margin-top:72px}
.todo-h{font-family:'DM Sans',sans-serif;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:#5c6a63;margin:14px 2px 6px}

/* narrow screens: the rail becomes a slide-in menu under a slim bar */
@media (max-width:900px){
  body.withrail{display:block}
  body.withrail > main{padding:14px 14px 80px}
  .mbar{display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:25;background:var(--herb);padding:10px 14px}
  .mbar .menu{background:transparent;border:0;color:var(--cream);font-size:20px;padding:0 4px;line-height:1}
  .mbar .wordmark{font-size:15px}
  .rail{position:fixed;left:0;top:0;bottom:0;width:260px;height:auto;transform:translateX(-100%);transition:transform .2s ease;z-index:40}
  body.railopen .rail{transform:none}
  body.railopen .railshade{display:block;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:35}
  .jumpbar{top:44px;margin:0 -14px 10px;padding:8px 14px}
  [data-jump],.paper h4.psec{scroll-margin-top:110px}
}

/* ---- Publish page (2026-10-15): one card per thing to send; detail behind folds ---- */
.pubcard{margin:4px 0 10px}
details.show > summary{cursor:pointer;font-size:14.5px;font-weight:600;color:var(--ink,#1f2a1f);padding:6px 0;list-style:none}
details.show > summary::before{content:"▸ ";color:#8a8a7a}
details.show[open] > summary::before{content:"▾ "}
details.show > summary.sub{font-weight:500;font-size:13.5px}
details.show > .readermd{margin-top:4px}
details.more{display:inline-block}
details.more > summary{cursor:pointer;list-style:none;padding:4px 8px;border:1px solid #d8d4c4;border-radius:999px;font-size:12.5px;background:#fff}
details.more[open] > summary{background:#f3f0e4}
details.more > .btnrow{flex-wrap:wrap}
.okline{color:#3d6b3a;font-weight:600;font-size:13.5px}
details.info{display:inline-block;margin-left:6px;vertical-align:middle;font-weight:400}
details.info > summary{cursor:pointer;list-style:none;color:#8a8a7a;font-size:14px}
details.info[open]{display:block;margin:4px 0 0}
details.pass > summary{font-size:13.5px;font-weight:500;padding:4px 0}
.card.wp .hero > summary{font-size:13.5px}

.nlstatus{margin:8px 0;padding:10px 14px;border-radius:10px;font-size:15px;font-weight:600;border:1px solid}
.nlstatus.ok{background:#e9f1e2;border-color:#b9cdb0;color:#2f5a2c}
.nlstatus.wait{background:#fbf4e2;border-color:#e0b84c;color:#6b4e00}
.nlstatus.todo{background:#fbecea;border-color:#e3b1a7;color:#8a2e1c}
.nlstatus a{color:inherit}
.card.wp .okline{font-size:14px}

/* ---- Publish board + cards (2026-10-15) ---- */
.board{margin:8px 0 4px;padding:10px 14px;border:1px solid #d8d4c4;border-radius:12px;background:#fff}
.boardhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.boardhead .btn{margin-left:auto}
.boardtbl{width:100%;border-collapse:collapse;font-size:13.5px}
.boardtbl th{text-align:left;font-weight:600;color:#6b6b5e;font-size:12px;letter-spacing:.03em;text-transform:uppercase;padding:4px 8px 6px}
.boardtbl td{padding:5px 8px;border-top:1px solid #efece2;vertical-align:middle}
.boardtbl tr.me td{background:#fbfaf5}
.boardtbl .edname a{font-weight:700;color:inherit;text-decoration:none}
.chip{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12.5px;font-weight:600;text-decoration:none;border:1px solid;white-space:nowrap}
.chip.green{background:#e9f1e2;border-color:#b9cdb0;color:#2f5a2c}
.chip.amber{background:#fbf4e2;border-color:#e0b84c;color:#6b4e00}
.chip.red{background:#fbecea;border-color:#e3b1a7;color:#8a2e1c}
.chip.grey{background:#f1efe6;border-color:#dcd8c8;color:#7a7a6e}
.wphead{display:flex;gap:12px;align-items:flex-start}
.wpthumb{width:120px;aspect-ratio:1200/630;object-fit:cover;border-radius:8px;border:1px solid #e4e0d2;flex:none;display:block}
.wpthumb.nophoto{display:flex;align-items:center;justify-content:center;text-align:center;background:#f3f0e4;border:1px dashed #cfcab8;color:#8a8a7a;font-size:18px;line-height:1.1;text-decoration:none}
.wpthumb.nophoto small{font-size:11px}
.warnline{color:#8a5a00;font-weight:600;font-size:13.5px;margin-top:2px}
.card.wp .okline{margin-top:2px}
.donecard{padding:10px 14px}
.doneline{display:flex;align-items:center;gap:10px;padding:5px 0;border-top:1px solid #efece2;font-size:14px}
.doneline:first-child{border-top:0}
.doneline .tick{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;background:#f1efe6;color:#7a7a6e;flex:none}
.doneline.green .tick{background:#2f5a2c;color:#fff}
.doneline.amber .tick{background:#fbf4e2;color:#6b4e00;border:1px solid #e0b84c}
.doneline.red .tick{background:#fbecea;color:#8a2e1c;border:1px solid #e3b1a7}
.doneline .chip{margin-left:auto}

/* ---- Card builder + Social-page post preview (2026-10-15) ---- */
body.withrail > main.wide{max-width:1180px}
.buildgrid{grid-template-columns:minmax(0,1fr) 380px;gap:22px;align-items:start}
@media (max-width:980px){ .buildgrid{grid-template-columns:1fr} .buildside{order:-1} .buildside > .card{position:static} }
.buildside > .card{position:sticky;top:12px;margin-top:0}
.buildmain h2:first-child{margin-top:4px}
.h2sub{font-family:'DM Sans',sans-serif;font-size:12.5px;font-weight:400;color:#5c6a63;margin-left:8px}
details.fold{margin-top:10px;border-top:1px dashed #e4e0d2;padding-top:8px}
details.fold > summary{cursor:pointer;font-size:13px;color:var(--herb);font-weight:500}
details.fold > form, details.fold > label, details.fold > p, details.fold > .statusrow{margin-top:6px}
/* the post as it will read in the feed: image, caption under it */
.postprev{border:1px solid #e4e0d2;border-radius:12px;background:#fff;overflow:hidden}
.postprev .previews{margin:0;gap:0;flex-direction:column}
.postprev .previews figure{width:100%}
.postprev .previews img{border:0;border-radius:0}
.postprev .previews figcaption{padding:2px 10px 4px}
.postph{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:#f3f0e6;color:#8a8a7a;
  font-size:12.5px;text-align:center;padding:16px}
.postcap{white-space:pre-wrap;font-size:13px;line-height:1.4;padding:10px 12px 12px;border-top:1px solid #eee9da}
.postcap .tags{color:#3b6b7a}
.postcap:empty{display:none}
/* Social page: the card is the post */
.scard .post{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:700px){ .scard .post{grid-template-columns:1fr} }
.scard .postprev{width:100%}
.scard .postprev .pimg{position:relative;display:block;aspect-ratio:1;background:#f3f0e6}
.scard .postprev .pimg img{width:100%;height:100%;object-fit:cover;display:block}
.scard .postprev .pimg .slides,.scard .postprev .pimg .zoom{position:absolute;bottom:6px;background:rgba(255,255,255,.92);
  border-radius:6px;font-size:11px;padding:1px 6px;color:#22302B;text-decoration:none}
.scard .postprev .pimg .slides{right:6px;top:auto;font-size:11px;font-weight:500} .scard .postprev .pimg .zoom{left:6px;cursor:zoom-in}
.scard .postcap{max-height:230px;overflow:auto}
.scard .postcap.more{max-height:none}
.scard .capmore{display:block;font-size:11.5px;color:#5c6a63;padding:0 12px 8px;cursor:pointer}
.scard .gate{margin-top:8px}
.scard details.more{margin-top:10px}
.scard .storyrow{align-items:center;margin-top:8px} .scard .storyrow .sub{margin:0;font-size:12px}
.scard .postprev .pimg.tall{aspect-ratio:4/5}
.buildside .postprev .previews img{max-height:none}
.ph.lowres{border-color:var(--tomato)}
.ph .lowres{position:absolute;top:0;left:0;right:0;font-size:9.5px;text-align:center;background:rgba(201,79,54,.92);color:#fff;padding:2px 3px;line-height:1.15}
.slide.guide{border-left-color:var(--herb);background:#f6f7f2}
.autonote{margin-top:8px;background:#fffdf5;border:1px solid var(--saffron);border-radius:8px;padding:6px 10px;font-size:12.5px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}

/* a run note (FYI tier) on its entry — quieter than a flag (2026-10-16) */
.paper .hint.fyi{background:#f4f2ea;color:#5c6a63;border-left-color:#c9c3ad}
/* partner card tidy-up (2026-10-16): one centre line for the header; a plain "Next step" line; message box modes */
.pc-head .sub,.pc-head .pc-stats{margin-bottom:0}
.pc-who{color:#5c6a63;font-size:13.5px;margin:0 2px 0 4px}
.pc-social{font-size:12px;color:var(--herb);text-decoration:none;border:1px solid #DDD8C8;border-radius:999px;padding:1px 8px}
.pc-social:hover{border-color:var(--herb)}
.pc-next{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 6px;margin:8px 0 6px}
.pc-next .sub{margin:0}
.pc-nextlab{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8a8f87;border:1px solid #DDD8C8;
  border-radius:4px;padding:1px 6px;cursor:default}
.pc-next.due .pc-nextlab{color:#8a6a00;border-color:var(--saffron);background:#FFF7E0}
.pc-next.overdue .pc-nextlab{color:#fff;border-color:var(--tomato);background:var(--tomato)}
.pc-next.due .pc-nexttxt{font-weight:600;color:var(--ink)}
.pc-next.overdue .pc-nexttxt{color:var(--tomato)}
.pc-details{margin:4px 0 8px}
.pc-details summary .err{font-weight:600}
.efiles{display:flex;flex-wrap:wrap;gap:6px;margin:-4px 0 8px}
