/* Alder Point Planning: quiet and editorial. Warm sand, aubergine ink, sage accents, Fraunces display. */
@font-face { font-family:"Fraunces"; src:url("/shared/fonts/fraunces-var.woff2") format("woff2"); font-weight:100 900; font-display:swap; }
@font-face { font-family:"Hanken"; src:url("/shared/fonts/hanken-var.woff2") format("woff2"); font-weight:100 900; font-display:swap; }
:root {
  --plum:#3a2a52; --deep:#241a33; --sand:#f5f0e8; --sand2:#ece4d6; --card:#fffdf9; --line:#e3d9c8; --ink:#231c2e; --muted:#5e5668;
  --sage:#4f6f60; --sage-bg:#e3ece6; --gold:#7d5b12; --gold-bg:#f7ecd2; --rose:#9a3b4a; --rose-bg:#f8e3e5;
  --serif:"Fraunces",Georgia,serif; --sans:"Hanken",system-ui,-apple-system,"Segoe UI",sans-serif;
  --ai-bg:#f6f2fb; --ai-line:#ddd0ee; --ai-ink:#5a3f86; --ai-r:16px;
  --m-accent:#3a2a52; --m-line:#e3d9c8; --m-soft:#f3ede3; --m-sel:#efe8f6; --m-r:14px; --m-muted:#5e5668; --m-ink:#231c2e; --m-link:#3a2a52; --m-card:#fffdf9;
}
body { font-family:var(--sans); color:var(--ink); background:var(--sand); font-size:15.5px; line-height:1.55; }
a { color:var(--plum); }
:focus-visible { outline:2px solid var(--plum); outline-offset:3px; border-radius:6px; }
.boot { padding:30vh 0; text-align:center; color:var(--muted); }
.muted { color:var(--muted); } .sm { font-size:13.5px; }

.side { position:sticky; top:44px; z-index:30; background:var(--sand); border-bottom:1px solid var(--line); padding:10px 14px 0; }
.firm { display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.mark { width:34px; height:34px; border-radius:50%; background:radial-gradient(circle at 50% 120%, var(--sage) 0 45%, transparent 46%), var(--plum); box-shadow:inset 0 0 0 3px var(--sand), 0 0 0 1px var(--plum); }
.firm b { display:block; font:600 21px/1 var(--serif); letter-spacing:-.01em; color:var(--deep); }
.firm small { font-size:11.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--muted); }
.side ul { list-style:none; margin:0 -14px; padding:0 10px 10px; display:flex; gap:6px; overflow-x:auto; scrollbar-width:none; }
.side a { display:flex; align-items:center; gap:8px; padding:8px 13px; border-radius:999px; text-decoration:none; color:var(--muted); font-weight:600; font-size:14px; white-space:nowrap; border:1px solid var(--line); background:var(--card); }
.side a svg { width:18px; height:18px; flex:none; }
.side a[aria-current="page"] { background:var(--plum); border-color:var(--plum); color:#fff; }
.n { min-width:20px; height:20px; padding:0 6px; border-radius:999px; background:var(--gold-bg); color:var(--gold); font-size:11.5px; font-weight:800; display:inline-grid; place-items:center; }
.n.dot { font-size:0; min-width:9px; width:9px; height:9px; padding:0; background:var(--gold); }
[aria-current="page"] .n { background:#fff; color:var(--plum); }
.side-note { display:none; }
.main { max-width:1120px; margin:0 auto; padding:22px 16px 8px; outline:none; }
.foot-wrap { padding:0 16px 24px; }
@media (min-width:980px) {
  .side { position:fixed; top:44px; bottom:0; left:0; width:248px; border-bottom:0; border-right:1px solid var(--line); padding:26px 18px; display:flex; flex-direction:column; }
  .firm { margin-bottom:28px; }
  .side ul { margin:0; padding:0; flex-direction:column; gap:2px; overflow:visible; }
  .side a { border:0; background:transparent; border-radius:12px; padding:11px 12px; font-size:15px; }
  .side a:hover { background:var(--sand2); color:var(--ink); }
  .side a .n { margin-left:auto; }
  .side-note { display:block; margin-top:auto; font-size:12.5px; color:var(--muted); border-top:1px solid var(--line); padding-top:14px; }
  .body { margin-left:248px; }
  .main { padding:40px 40px 8px; }
  .foot-wrap { padding:0 40px 32px; }
}
.hero { margin-bottom:24px; }
.eyebrow { margin:0 0 6px; font-size:12.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--sage); }
.hero h1 { margin:0; font:400 30px/1.12 var(--serif); letter-spacing:-.02em; color:var(--deep); max-width:24ch; font-variation-settings:"opsz" 96, "SOFT" 50; }
.hero.sm h1 { font-size:28px; max-width:30ch; }
.lede { margin:10px 0 0; color:var(--muted); max-width:62ch; font-size:16px; }
@media (min-width:980px) { .hero h1 { font-size:44px; } .hero.sm h1 { font-size:36px; } }
.card { background:var(--card); border:1px solid var(--line); border-radius:18px; padding:20px; box-shadow:0 1px 0 rgba(36,26,51,.03), 0 18px 40px -30px rgba(36,26,51,.35); }
.ct { margin:0 0 12px; font:500 19px/1.2 var(--serif); color:var(--deep); }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:0 18px; border-radius:999px; border:1px solid var(--plum); background:transparent; color:var(--plum); font-weight:700; font-size:14px; text-decoration:none; }
.btn:hover { background:#efe8f6; }
.btn.pri { background:var(--plum); color:#fff; } .btn.pri:hover { background:var(--deep); }
.btn.sm { min-height:34px; padding:0 13px; font-size:13px; }
.acts { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; } .acts.top { margin:-8px 0 16px; }
.back { display:inline-block; margin-bottom:12px; font-weight:700; }
.ok { color:var(--sage); font-weight:700; }
.compliance { margin:22px 0 0; padding:14px 18px; border-radius:14px; background:var(--sand2); color:var(--ink); font-size:14px; border-left:4px solid var(--sage); }

/* Today */
.today-grid { display:grid; gap:16px; }
@media (min-width:860px) { .today-grid { grid-template-columns:1.2fr 1fr; } .today-grid .wide { grid-column:1/-1; } }
.mtg { display:grid; grid-template-columns:100px 1fr; gap:4px 14px; align-items:center; padding:12px 0; border-top:1px solid var(--line); text-decoration:none; color:inherit; }
.mtg:first-of-type { border-top:0; }
.mtg time { white-space:nowrap; } .mtg time b { display:block; font:500 22px/1 var(--serif); color:var(--deep); } .mtg time span { font-size:12.5px; color:var(--muted); }
.mtg small { display:block; color:var(--muted); font-size:13.5px; }
.mtg .go { grid-column:2; font-weight:700; color:var(--plum); font-size:13.5px; }
@media (min-width:600px) { .mtg { grid-template-columns:100px 1fr auto; } .mtg .go { grid-column:auto; } }
.due { list-style:none; margin:0; padding:0; }
.due li { display:grid; grid-template-columns:12px 1fr auto; gap:10px; align-items:center; padding:9px 0; border-top:1px solid var(--line); }
.due li:first-child { border-top:0; }
.due small { display:block; color:var(--muted); font-size:13px; }
.dot-st { width:10px; height:10px; border-radius:50%; background:var(--gold); } .dot-st.s-overdue { background:var(--rose); }
.when { font-size:12.5px; font-weight:700; padding:3px 10px; border-radius:999px; background:var(--sand2); color:var(--muted); white-space:nowrap; }
.when.s-overdue { background:var(--rose-bg); color:var(--rose); } .when.s-today { background:var(--gold-bg); color:var(--gold); } .when.s-done { background:var(--sage-bg); color:var(--sage); }
.more { display:inline-block; margin-top:10px; font-weight:700; font-size:14px; }
.mini { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
@media (min-width:860px) { .mini { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.mini a { display:grid; grid-template-columns:auto 1fr; gap:4px 12px; align-items:center; padding:10px 12px; border:1px solid var(--line); border-radius:14px; text-decoration:none; color:inherit; background:#fff; }
.mini a:hover { border-color:var(--plum); }
.mini small { display:block; color:var(--muted); font-size:13px; }
.mini .tag { grid-column:2; justify-self:start; }
.ring { position:relative; width:46px; height:46px; display:inline-grid; place-items:center; flex:none; }
.ring svg { position:absolute; inset:0; transform:rotate(-90deg); }
.ring circle { fill:none; stroke-width:3.2; } .ring .trk { stroke:var(--sand2); } .ring .val { stroke:var(--sage); stroke-linecap:round; }
.ring.r-maybe .val { stroke:var(--gold); } .ring.r-low .val { stroke:#a99fb2; }
.ring b { font:600 15px var(--serif); color:var(--deep); }
.tag { font-size:12px; font-weight:700; padding:3px 10px; border-radius:999px; white-space:nowrap; }
.t-strong { background:var(--sage-bg); color:#365446; } .t-maybe { background:var(--gold-bg); color:var(--gold); } .t-low { background:#eeeaf1; color:#5e5668; }

/* Prospects */
.pros-grid { display:grid; gap:18px; }
@media (min-width:1100px) { .pros-grid { grid-template-columns:minmax(0,1fr) 330px; align-items:start; } .crit { position:sticky; top:70px; } }
.plist { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.prow { display:grid; grid-template-columns:auto 1fr; gap:6px 14px; align-items:center; padding:14px 16px; background:var(--card); border:1px solid var(--line); border-radius:16px; text-decoration:none; color:inherit; }
.prow:hover { border-color:var(--plum); }
.pmain b { display:block; font:500 18px/1.2 var(--serif); color:var(--deep); }
.pmain small { display:block; color:var(--muted); font-size:13.5px; }
.pside { grid-column:2; display:flex; gap:8px; align-items:center; }
.stg { font-size:12.5px; color:var(--muted); }
@media (min-width:700px) { .prow { grid-template-columns:auto 1fr auto; } .pside { grid-column:auto; flex-direction:column; align-items:flex-end; } }
.w { display:grid; grid-template-columns:1fr 32px; gap:2px 8px; align-items:center; margin-bottom:10px; }
.w label { grid-column:1/-1; font-size:13.5px; font-weight:600; }
.w input { width:100%; accent-color:var(--plum); }
.w output { font:600 14px var(--serif); text-align:right; }
.fld { display:block; font-weight:700; font-size:13.5px; margin:10px 0 4px; }
select { min-height:40px; border:1px solid var(--line); border-radius:10px; padding:0 10px; background:#fff; width:100%; }
.svc { border:0; padding:0; margin:12px 0 0; } .svc legend { font-weight:700; font-size:13.5px; margin-bottom:6px; }
.svc label { display:flex; gap:8px; align-items:flex-start; font-size:14px; padding:3px 0; } .svc input { accent-color:var(--plum); margin-top:4px; }
.pd-head { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-bottom:20px; }
.pd-head .ring { width:64px; height:64px; } .pd-head .ring b { font-size:20px; }
.pd-head h1 { margin:0; font:400 34px/1.1 var(--serif); color:var(--deep); }
.pd-head p { margin:4px 0 0; color:var(--muted); }
.stage-sel { display:flex; align-items:center; gap:8px; margin-left:auto; font-weight:700; font-size:14px; } .stage-sel select { width:auto; }
.pd-grid { display:grid; gap:16px; } .stack { display:grid; gap:16px; align-content:start; }
@media (min-width:1000px) { .pd-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); } }
.quote { margin:0 0 14px; font:italic 400 18px/1.5 var(--serif); color:var(--deep); padding-left:16px; border-left:3px solid var(--sage); }
.kv { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:0; }
.kv dt { font-size:12px; text-transform:uppercase; letter-spacing:.1em; color:var(--muted); } .kv dd { margin:2px 0 0; font-weight:600; }
.fit { width:100%; border-collapse:collapse; font-size:14px; }
.fit th { text-align:left; font-weight:600; padding:8px 0; border-top:1px solid var(--line); }
.fit th small { display:block; font-weight:400; color:var(--muted); }
.fit td { padding:8px 0 8px 8px; border-top:1px solid var(--line); white-space:nowrap; }
.fit .pts { text-align:right; font:500 14px var(--serif); }
.m { font-size:12px; font-weight:700; padding:2px 9px; border-radius:999px; } .m1 { background:var(--sage-bg); color:#365446; } .m0 { background:#eeeaf1; color:var(--muted); } .m05, .m075 { background:var(--gold-bg); color:var(--gold); }
.tip { padding:10px 12px; background:#fff; border-radius:12px; font-size:14px; }
.ai { font-size:15px; } .ai p { margin:0 0 6px; } .ai ul { margin:0 0 10px; }
.mt p { margin:0 0 4px; }
.ta { width:100%; border:1px solid var(--line); border-radius:12px; padding:12px; line-height:1.55; }

/* Follow-ups */
.cad { display:grid; gap:14px; }
@media (min-width:1000px) { .cad { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.cad-row.s-overdue { border-color:#e7bfc5; } .cad-row.s-today { border-color:#e6d09a; }
.cad-h { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:10px; }
.cad-h h2 { margin:0; font:500 20px var(--serif); } .cad-h h2 a { color:var(--deep); text-decoration:none; }
.steps { list-style:none; margin:0; padding:0; position:relative; }
.steps li { display:grid; grid-template-columns:56px 1fr auto; gap:10px; align-items:center; padding:8px 0 8px 18px; position:relative; font-size:14.5px; }
.steps li::before { content:""; position:absolute; left:3px; top:50%; width:9px; height:9px; margin-top:-4.5px; border-radius:50%; background:var(--card); border:2px solid #b9aec6; }
.steps li::after { content:""; position:absolute; left:7px; top:calc(50% + 7px); bottom:calc(-50% + 7px); width:1px; background:var(--line); }
.steps li:last-child::after { display:none; }
.steps li.done::before { background:var(--sage); border-color:var(--sage); } .steps li.done .sl { color:var(--muted); text-decoration:line-through; text-decoration-color:#b9aec6; }
.steps li.next { background:#faf6ee; border-radius:12px; } .steps li.next::before { border-color:var(--plum); background:var(--plum); }
.sd { font-size:12px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; }
.sa { display:flex; gap:6px; }
@media (max-width:560px) { .steps li { grid-template-columns:48px 1fr; } .sa { grid-column:1/-1; } }

/* Pipeline */
.stagebar { list-style:none; margin:0 0 16px; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-radius:16px; overflow:hidden; border:1px solid var(--line); }
.stagebar li { padding:14px 12px; background:var(--card); border-left:1px solid var(--line); }
.stagebar li:first-child { border-left:0; } .stagebar li:last-child { background:var(--plum); color:#fff; }
.stagebar b { display:block; font:400 30px/1 var(--serif); } .stagebar span { font-size:13px; }
.pipe { list-style:none; margin:0; padding:0; }
.pipe li { display:grid; grid-template-columns:1fr; gap:8px; padding:14px 0; border-top:1px solid var(--line); align-items:center; }
.pipe li:first-child { border-top:0; }
.pn a { font:500 17px var(--serif); color:var(--deep); text-decoration:none; } .pn { font:500 17px var(--serif); } .pn small { display:block; font:400 13px var(--sans); color:var(--muted); }
.track { display:flex; align-items:center; gap:6px; }
.track i { width:34px; height:6px; border-radius:3px; background:var(--sand2); } .track i.past { background:#b6c8bd; } .track i.cur { background:var(--sage); }
.track em { font-style:normal; font-size:13px; font-weight:700; color:var(--sage); margin-left:6px; }
@media (min-width:760px) { .pipe li { grid-template-columns:minmax(0,1fr) 260px 170px; } .pipe .btn, .pipe .ok { justify-self:end; } }

/* Content log */
.log { list-style:none; margin:0; padding:0; display:grid; gap:14px; }
.e-h { display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; align-items:flex-start; }
.e-h h2 { margin:0; font:500 19px var(--serif); color:var(--deep); } .e-h h2 span { color:var(--muted); font-weight:400; }
.e-h p { margin:2px 0 0; }
.cst { font-size:12.5px; font-weight:700; padding:4px 11px; border-radius:999px; white-space:nowrap; }
.c-review { background:var(--gold-bg); color:var(--gold); } .c-approved { background:#e8e4f4; color:var(--plum); } .c-published { background:var(--sage-bg); color:#365446; } .c-changes { background:var(--rose-bg); color:var(--rose); }
.diff { display:grid; gap:8px; margin:12px 0 8px; }
@media (min-width:760px) { .diff { grid-template-columns:1fr 1fr; } }
.diff > div { border-radius:12px; padding:10px 14px; }
.diff span { font-size:11.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.diff p { margin:4px 0 0; }
.was { background:#f6efe9; } .was span { color:#8a4f3e; } .was p { color:var(--muted); }
.now { background:#eef4f0; } .now span { color:#365446; }
details summary { cursor:pointer; font-weight:700; font-size:14px; color:var(--plum); }
.hist { margin:8px 0 0; padding-left:20px; font-size:14px; } .hist time { color:var(--muted); font-size:13px; margin-right:6px; }
