/* Incorpo client portal — shares the website's design tokens */
:root{
  --ink:#0B2E23; --green-700:#0E5C46; --green-600:#12684F; --green-500:#1E8A69; --green-300:#7FC2A8;
  --green-tint:#E7F1EC; --green-tint-2:#F0F6F2;
  --brass:#A9760C; --brass-soft:#C79A3C; --brass-tint:#F6EFDD;
  --paper:#F4F5F1; --surface:#FFFFFF; --line:#E1E5DD; --line-strong:#C9D1C9;
  --text:#1D2A25; --muted:#5B6A63; --muted-2:#7C8A83;
  --on-dark:#EAF1EC; --on-dark-muted:#A6BCB1; --on-dark-line:#254A3B;
  --danger:#B4432B; --danger-tint:#F8E9E4;
  --r-sm:8px; --r-md:14px; --r-lg:20px;
  --shadow-md:0 10px 30px rgba(11,46,35,.10);
  --serif:"Newsreader", Georgia, "Times New Roman", serif;
  --sans:"Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
*{box-sizing:border-box;}
[hidden]{display:none !important;}
body{margin:0; font-family:var(--sans); font-size:16px; line-height:1.55; color:var(--text); background:var(--paper); -webkit-font-smoothing:antialiased;}
h1,h2,h3{font-family:var(--serif); font-weight:500; color:var(--ink); margin:0; line-height:1.12; text-wrap:balance;}
p{margin:0;}
a{color:var(--green-700);}
button,input,select,textarea{font:inherit;}
code{font-size:.9em; background:var(--green-tint); padding:1px 5px; border-radius:4px;}
:focus-visible{outline:3px solid var(--green-300); outline-offset:2px;}

/* ---------- top bar ---------- */
.topbar{background:var(--ink); color:var(--on-dark);}
.topbar-in{max-width:1180px; margin:0 auto; padding:0 24px; height:64px; display:flex; align-items:center; justify-content:space-between; gap:16px;}
.brand{display:flex; align-items:center; gap:10px; font-weight:700; font-size:1.05rem; color:#fff; text-decoration:none;}
.brand svg{width:30px; height:30px; flex:0 0 auto;}
.brand small{font-weight:500; color:var(--on-dark-muted); font-size:.85rem; padding-left:10px; border-left:1px solid var(--on-dark-line);}
.top-actions{display:flex; align-items:center; gap:12px; font-size:.88rem; color:var(--on-dark-muted); min-width:0;}
.top-actions .who{overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:28ch;}
@media(max-width:680px){ .top-actions .who, .topbar .brand small{display:none;} }

.wrap{max-width:1180px; margin:0 auto; padding:28px 24px 64px;}

/* ---------- buttons ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; font-weight:600; font-size:.95rem; line-height:1; padding:12px 20px; border-radius:999px; border:1px solid transparent; cursor:pointer; text-decoration:none; transition:background .18s, border-color .18s, color .18s; white-space:nowrap;}
.btn-primary{background:var(--green-700); color:#fff;}
.btn-primary:hover{background:var(--green-600);}
.btn-ghost{background:var(--surface); color:var(--ink); border-color:var(--line-strong);}
.btn-ghost:hover{border-color:var(--green-500); color:var(--green-700);}
.btn-dark-ghost{background:transparent; color:var(--on-dark); border-color:var(--on-dark-line); padding:9px 16px; font-size:.88rem;}
.btn-dark-ghost:hover{border-color:var(--green-300); color:#fff;}
.btn-danger{background:var(--surface); color:var(--danger); border-color:#E6C5BB;}
.btn-danger:hover{background:var(--danger-tint);}
.btn-sm{padding:9px 14px; font-size:.86rem;}
.btn-block{width:100%;}
.btn[disabled]{opacity:.55; cursor:not-allowed;}

/* ---------- common ---------- */
.card{background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:24px;}
.card-title{font-size:.74rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--muted-2); margin-bottom:16px; display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap;}
.card-title .hint{text-transform:none; letter-spacing:0; font-weight:500;}
.eyebrow{font-size:.82rem; font-weight:600; color:var(--green-600); display:inline-flex; align-items:center; gap:9px;}
.eyebrow::before{content:""; width:22px; height:2px; background:var(--brass); border-radius:2px;}
.muted{color:var(--muted);}
.small{font-size:.86rem;}
.hint{font-size:.78rem; color:var(--muted-2);}
.empty{font-size:.9rem; color:var(--muted-2);}
.fine{font-size:.8rem; color:var(--muted-2); margin-top:20px;}

.chip{display:inline-flex; align-items:center; gap:6px; font-size:.74rem; font-weight:700; padding:4px 10px; border-radius:999px; white-space:nowrap;}
.chip::before{content:""; width:7px; height:7px; border-radius:50%; background:currentColor;}
.chip.todo{background:var(--paper); color:var(--muted-2); box-shadow:inset 0 0 0 1px var(--line);}
.chip.active{background:var(--green-tint); color:var(--green-600);}
.chip.waiting{background:var(--brass-tint); color:var(--brass);}
.chip.done{background:var(--green-700); color:#fff;}
.chip.done::before{background:var(--green-300);}
.chip.issue{background:var(--danger-tint); color:var(--danger);}

.field{display:grid; gap:6px; margin-bottom:14px; align-content:start;}
.field label{font-size:.84rem; font-weight:600; color:var(--ink);}
.input{width:100%; font-size:.95rem; color:var(--text); background:var(--surface); border:1px solid var(--line-strong); border-radius:var(--r-sm); padding:10px 12px;}
textarea.input{min-height:84px; resize:vertical;}
.input:focus{outline:none; border-color:var(--green-500); box-shadow:0 0 0 3px rgba(30,138,105,.16);}
.notice{padding:14px 16px; border-radius:var(--r-md); font-size:.9rem; margin-top:16px; background:var(--green-tint-2); border:1px solid var(--green-300); color:var(--ink); display:flex; gap:12px; align-items:center; justify-content:space-between; flex-wrap:wrap;}
.notice.error{background:var(--danger-tint); border-color:#E6C5BB; color:#7a2c1b;}

/* ---------- sign in ---------- */
.auth-shell{min-height:100vh; display:grid; grid-template-columns:1fr 1fr;}
.auth-side{background:var(--ink); color:var(--on-dark); padding:44px clamp(28px,5vw,64px); display:flex; flex-direction:column; justify-content:space-between; gap:40px; position:relative; overflow:hidden;}
.auth-side::before{content:""; position:absolute; top:-20%; right:-25%; width:560px; height:560px; background:radial-gradient(circle, rgba(30,138,105,.28), transparent 62%); pointer-events:none;}
.auth-side > *{position:relative;}
.auth-side .eyebrow{color:var(--green-300);}
.auth-side h1{color:#fff; font-size:clamp(2rem,3.4vw,2.9rem); margin-top:16px;}
.auth-side h1 em{color:var(--green-300); font-weight:400;}
.auth-side p{color:var(--on-dark-muted); margin-top:16px; max-width:44ch;}
.auth-points{list-style:none; margin:0; padding:0; display:grid; gap:12px;}
.auth-points li{display:flex; gap:10px; align-items:flex-start; color:var(--on-dark); font-size:.93rem;}
.auth-points svg{color:var(--green-300); flex:0 0 auto; margin-top:4px;}
.auth-main{display:grid; place-items:center; padding:40px 24px;}
.auth-card{width:100%; max-width:400px;}
.auth-card h2{font-size:2rem;}
.auth-card .lead{color:var(--muted); margin:8px 0 24px;}
.divider{display:flex; align-items:center; gap:12px; color:var(--muted-2); font-size:.8rem; margin:18px 0;}
.divider::before,.divider::after{content:""; flex:1; height:1px; background:var(--line);}
@media(max-width:860px){ .auth-shell{grid-template-columns:1fr;} .auth-side{padding:28px 24px;} .auth-points{display:none;} }

/* ---------- full-page states ---------- */
.state{max-width:540px; margin:12vh auto; text-align:center; padding:0 24px;}
.state h1{font-size:2rem; margin-bottom:12px;}
.state p{color:var(--muted);}
.state .actions{display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-top:24px;}
.spinner{width:28px; height:28px; border-radius:50%; border:3px solid var(--line); border-top-color:var(--green-500); animation:spin .8s linear infinite; margin:0 auto 16px;}
@keyframes spin{to{transform:rotate(360deg);}}
@media (prefers-reduced-motion:reduce){ .spinner{animation-duration:2.5s;} }

/* ---------- client dashboard ---------- */
.summary{background:var(--ink); color:var(--on-dark); border-radius:var(--r-lg); padding:clamp(24px,3vw,36px); display:grid; grid-template-columns:1.4fr 1fr; gap:32px; align-items:end;}
.summary .eyebrow{color:var(--green-300);}
.summary h1{color:#fff; font-size:clamp(1.8rem,3.2vw,2.6rem); margin-top:10px;}
.summary .now{margin-top:12px; color:var(--on-dark-muted);}
.summary .now b{color:#fff; font-weight:600;}
.facts{display:flex; flex-wrap:wrap; gap:12px 28px; margin-top:20px; font-size:.8rem; color:var(--on-dark-muted);}
.facts b{display:block; color:#fff; font-weight:600; font-size:.95rem; font-variant-numeric:tabular-nums;}
.facts a{color:var(--green-300); font-weight:500;}
.progress-label{display:flex; justify-content:space-between; font-size:.86rem; color:var(--on-dark-muted); margin-bottom:8px; font-variant-numeric:tabular-nums;}
.progress-label b{color:#fff;}
.bar{height:10px; background:var(--on-dark-line); border-radius:999px; overflow:hidden;}
.bar i{display:block; height:100%; background:linear-gradient(90deg,var(--green-500),var(--green-300)); border-radius:999px;}
@media(max-width:820px){ .summary{grid-template-columns:1fr; gap:22px;} }

.dash{display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:20px; margin-top:20px; align-items:start;}
.stack{display:grid; gap:20px; min-width:0;}
@media(max-width:900px){ .dash{grid-template-columns:1fr;} }

.steps{list-style:none; margin:0; padding:0;}
.step{display:grid; grid-template-columns:32px minmax(0,1fr); gap:16px; position:relative; padding-bottom:22px;}
.step:last-child{padding-bottom:0;}
.step:not(:last-child)::after{content:""; position:absolute; left:15px; top:36px; bottom:4px; width:2px; background:var(--line);}
.step.done:not(:last-child)::after{background:var(--green-300);}
.dot{width:32px; height:32px; border-radius:50%; display:grid; place-items:center; border:2px solid var(--line-strong); background:var(--surface); color:var(--muted-2); font-size:.82rem; font-weight:700; position:relative; z-index:1;}
.step.done .dot{background:var(--green-500); border-color:var(--green-500); color:#fff;}
.step.active .dot{border-color:var(--green-500); color:var(--green-600); box-shadow:0 0 0 4px var(--green-tint);}
.step.waiting .dot{border-color:var(--brass-soft); color:var(--brass); box-shadow:0 0 0 4px var(--brass-tint);}
.step-head{display:flex; justify-content:space-between; align-items:flex-start; gap:12px; flex-wrap:wrap; padding-top:4px;}
.step-title{font-weight:600; color:var(--ink);}
.step-meta{font-size:.82rem; color:var(--muted-2); margin-top:2px;}
.step-note{margin-top:8px; font-size:.9rem; background:var(--paper); border-radius:var(--r-sm); padding:10px 12px;}
.step.waiting .step-note{background:var(--brass-tint);}

.action-card{border-color:var(--brass-soft); background:var(--brass-tint);}
.action-card .card-title{color:var(--brass);}
.action-list{margin:0; padding-left:18px; display:grid; gap:6px; font-size:.93rem;}

.person{display:flex; gap:14px; align-items:center; padding:12px 0;}
.person + .person{border-top:1px solid var(--line);}
.people .person:first-child{padding-top:0;}
.people .person:last-child{padding-bottom:0;}
.avatar{width:44px; height:44px; border-radius:50%; background:var(--green-tint); color:var(--green-700); display:grid; place-items:center; font-family:var(--serif); font-size:1.05rem; flex:0 0 auto;}
.person b{display:block; color:var(--ink);}
.person span{font-size:.82rem; color:var(--muted);}

.feed{list-style:none; margin:0; padding:0; display:grid; gap:14px;}
.feed li{padding-left:14px; border-left:2px solid var(--green-300); position:relative;}
.feed li.empty{border-left:none; padding-left:0;}
.feed time{display:block; font-size:.76rem; color:var(--muted-2); font-variant-numeric:tabular-nums;}
.feed p{font-size:.92rem; margin-top:2px; white-space:pre-line; overflow-wrap:anywhere;}
.feed .x{position:absolute; right:0; top:-4px;}

.rows{list-style:none; margin:0; padding:0;}
.rows li{display:flex; justify-content:space-between; align-items:center; gap:12px; padding:11px 0; border-top:1px solid var(--line); font-size:.92rem;}
.rows li:first-child{border-top:none; padding-top:0;}
.rows small{display:block; color:var(--muted-2); font-size:.78rem;}
.rows .right{display:flex; gap:10px; align-items:center; flex:0 0 auto;}
.rows .amt{font-weight:600; font-variant-numeric:tabular-nums; color:var(--ink);}
.help{margin-top:20px; display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;}
.switcher{background:transparent; color:#fff; border:1px solid var(--on-dark-line); border-radius:999px; padding:7px 12px; font-size:.86rem; max-width:220px;}
.switcher option{color:var(--text);}

/* ---------- team console ---------- */
.admin{display:grid; grid-template-columns:300px minmax(0,1fr); min-height:calc(100vh - 64px);}
.sidebar{background:var(--surface); border-right:1px solid var(--line); display:flex; flex-direction:column; position:sticky; top:0; height:100vh; align-self:start;}
.side-head{padding:18px; display:grid; gap:10px; border-bottom:1px solid var(--line);}
.client-list{list-style:none; margin:0; padding:8px; overflow-y:auto; flex:1;}
.client-list button{width:100%; text-align:left; background:none; border:1px solid transparent; border-radius:var(--r-md); padding:12px; cursor:pointer; display:grid; gap:6px; color:var(--text);}
.client-list button:hover{background:var(--paper);}
.client-list button.sel{background:var(--green-tint-2); border-color:var(--green-300);}
.client-list .nm{font-weight:600; color:var(--ink); display:flex; justify-content:space-between; gap:8px;}
.client-list .nm small{font-weight:600; color:var(--muted-2); font-variant-numeric:tabular-nums;}
.client-list .sub{font-size:.8rem; color:var(--muted-2); display:flex; justify-content:space-between; gap:8px; align-items:center;}
.client-list li.empty{padding:12px;}
.editor{padding:28px clamp(20px,3vw,40px) 120px; min-width:0;}
.editor-head{display:flex; justify-content:space-between; align-items:flex-end; gap:16px; flex-wrap:wrap; margin-bottom:20px;}
.editor-head h1{font-size:2rem; margin-top:6px;}
.editor .card{margin-bottom:20px;}
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:0 16px;}
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:0 16px;}
@media(max-width:700px){ .grid-2,.grid-3{grid-template-columns:1fr;} }
.table-wrap{overflow-x:auto;}
table.edit{width:100%; border-collapse:collapse; min-width:660px;}
table.edit th{font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted-2); text-align:left; padding:0 6px 8px; font-weight:700;}
table.edit td{padding:6px; border-top:1px solid var(--line); vertical-align:top;}
table.edit th:first-child, table.edit td:first-child{padding-left:0;}
table.edit .step-name{font-weight:600; color:var(--ink); font-size:.92rem; padding-top:8px; display:block;}
table.edit .step-name small{display:block; font-weight:500; color:var(--muted-2); font-size:.76rem;}
.x{background:none; border:none; color:var(--muted-2); cursor:pointer; font-size:1.25rem; line-height:1; padding:8px;}
.x:hover{color:var(--danger);}
.row-actions{display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:12px;}
.savebar{position:fixed; left:300px; right:0; bottom:0; background:rgba(255,255,255,.96); backdrop-filter:blur(8px); border-top:1px solid var(--line); padding:12px clamp(20px,3vw,40px); display:flex; justify-content:space-between; align-items:center; gap:12px; z-index:20;}
.savebar .status{font-size:.88rem; color:var(--muted);}
.savebar .status.dirty{color:var(--brass); font-weight:600;}
.toast{position:fixed; bottom:84px; left:50%; transform:translateX(-50%); background:var(--ink); color:#fff; padding:10px 18px; border-radius:999px; font-size:.9rem; z-index:50; box-shadow:var(--shadow-md); max-width:calc(100vw - 32px); text-align:center;}
@media(max-width:860px){
  .admin{grid-template-columns:1fr;}
  .sidebar{position:static; height:auto; max-height:340px; border-right:none; border-bottom:1px solid var(--line);}
  .savebar{left:0;}
}


/* =========================================================
   MOBILE — most clients open the portal on a phone
   ========================================================= */
html{-webkit-text-size-adjust:100%;}
.input, .switcher{font-size:16px;}                 /* 16px+ stops iPhones zooming into fields */
.fact-link{margin-left:8px;}
.summary-switcher{display:none;}
.steps-toggle{display:none;}
.contact-bar{display:none;}
.confirm-email .auth-card{margin:22px auto 0; text-align:left;}

@media(max-width:680px){
  body{font-size:15.5px;}
  .btn{min-height:44px;}
  .btn-block{min-height:50px; font-size:1rem;}

  /* top bar: logo + Sign out always fit */
  .topbar-in{height:56px; padding:0 max(14px, env(safe-area-inset-left)); gap:10px;}
  .brand{min-height:44px; font-size:1rem;}
  .brand svg{width:28px; height:28px;}
  .top-actions{gap:8px;}
  .topbar .switcher, .top-actions a.btn-dark-ghost{display:none;}
  .top-actions .btn-dark-ghost{min-height:40px; padding:0 14px;}

  /* sign in: form visible without scrolling */
  .auth-shell{min-height:100svh;}
  .auth-side{padding:16px 18px 22px; gap:12px;}
  .auth-side .eyebrow, .auth-side p{display:none;}
  .auth-side h1{font-size:1.5rem; margin-top:4px;}
  .auth-main{place-items:start center; padding:24px 18px calc(32px + env(safe-area-inset-bottom));}
  .auth-card h2{font-size:1.6rem;}
  .auth-card .lead{margin:6px 0 18px; font-size:.95rem;}
  .fine{font-size:.82rem; line-height:1.7;}
  .state{margin:8vh auto; padding:0 18px;}
  .state h1{font-size:1.6rem;}

  /* dashboard */
  .wrap{padding:12px 12px calc(92px + env(safe-area-inset-bottom));}
  .card{padding:18px 16px; border-radius:16px;}
  .card-title{margin-bottom:12px;}
  .summary{padding:20px 18px; border-radius:18px; gap:18px;}
  .summary h1{font-size:1.6rem; margin-top:8px;}
  .summary .now{font-size:.95rem; margin-top:10px;}
  .summary-switcher{display:block; width:100%; max-width:none; margin-top:12px; min-height:46px; padding:0 14px; border-radius:12px;}
  .facts{display:grid; grid-template-columns:1fr 1fr; gap:12px 16px; margin-top:16px;}
  .facts > div:has(.fact-link){grid-column:1 / -1;}
  .fact-link{display:inline-flex; align-items:center; min-height:40px; margin:8px 0 0; padding:0 14px; border:1px solid var(--on-dark-line); border-radius:999px; text-decoration:none; font-size:.86rem;}

  /* most important first */
  .dash{display:flex; flex-direction:column; gap:12px; margin-top:12px;}
  .stack{display:contents;}
  .sec-action{order:1;} .sec-steps{order:2;} .sec-updates{order:3;} .sec-docs{order:4;} .sec-pay{order:5;} .sec-team{order:6;}
  .help{display:none;}

  /* milestones: compact rows, finished steps folded away */
  .step{grid-template-columns:28px minmax(0,1fr); gap:12px; padding-bottom:16px;}
  .dot{width:28px; height:28px; font-size:.78rem;}
  .step:not(:last-child)::after{left:13px; top:32px;}
  .step-head{flex-wrap:nowrap; align-items:flex-start; padding-top:2px;}
  .step-head > div{flex:1; min-width:0;}
  .step-title{font-size:.97rem; line-height:1.35;}
  .step.done .chip{display:none;}
  .step-note{font-size:.9rem;}
  .steps.collapsed .step.is-past{display:none;}
  .steps-toggle{display:flex; align-items:center; gap:8px; width:100%; min-height:44px; margin:0 0 12px; padding:0 14px; border:1px dashed var(--line-strong); border-radius:12px; background:var(--green-tint-2); color:var(--green-700); font-weight:600; font-size:.9rem; cursor:pointer;}

  .rows li{align-items:flex-start;}
  .rows .right{flex-direction:column; align-items:flex-end; gap:6px;}
  .person{padding:10px 0;}

  /* thumb-reach quick actions */
  .contact-bar{display:flex; gap:10px; position:fixed; left:0; right:0; bottom:0; z-index:30; padding:10px 12px calc(10px + env(safe-area-inset-bottom)); background:rgba(255,255,255,.96); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border-top:1px solid var(--line); box-shadow:0 -6px 20px rgba(11,46,35,.06);}
  .contact-bar .btn{flex:1 1 0; min-height:48px; padding:0 12px; font-size:.95rem;}
  .sec-action{scroll-margin-top:12px;}

  /* team console */
  .sidebar{max-height:none;}
  .side-head{padding:12px;}
  .client-list{max-height:280px;}
  .client-list button{padding:12px 10px;}
  .editor{padding:16px 12px calc(110px + env(safe-area-inset-bottom));}
  .editor-head h1{font-size:1.6rem;}
  .savebar{padding:10px 12px calc(10px + env(safe-area-inset-bottom));}
  .savebar .btn{min-height:46px;}
  .row-actions .btn{min-height:44px;}
  .toast{bottom:calc(88px + env(safe-area-inset-bottom));}

  table.edit{min-width:0;}
  table.edit thead{display:none;}
  table.edit, table.edit tbody, table.edit tr, table.edit td{display:block; width:100% !important;}
  table.edit tr{position:relative; border:1px solid var(--line); border-radius:12px; padding:10px 12px 12px; margin-bottom:10px; background:var(--surface);}
  table.edit td, table.edit td:first-child{border-top:none; padding:4px 0;}
  table.edit td[data-label]::before{content:attr(data-label); display:block; margin:6px 0 4px; font-size:.7rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted-2);}
  table.edit td.step-cell .step-name{padding:2px 0 0;}
  table.edit td.del{position:absolute; top:2px; right:2px; width:auto !important; padding:0;}
  table.edit tr:has(td.del) td:first-child{padding-right:40px;}
  .x{min-width:44px; min-height:44px;}
  .row-actions label{display:inline-flex; align-items:center; gap:10px; min-height:44px;}
  .row-actions input[type=checkbox]{width:22px; height:22px;}
}


/* =========================================================
   SIMPLE CLIENT DASHBOARD — one column, plain language
   ========================================================= */
.simple{max-width:720px; display:grid; gap:14px; padding-bottom:calc(120px + env(safe-area-inset-bottom));}
.simple .card h2{font-family:var(--serif); font-size:1.35rem; font-weight:500; color:var(--ink); margin:0 0 14px;}
.hello{position:relative; overflow:hidden; background:var(--ink); color:var(--on-dark); border-radius:var(--r-lg); padding:24px 22px;}
.hello::before{content:""; position:absolute; top:-45%; right:-35%; width:380px; height:380px; background:radial-gradient(circle, rgba(30,138,105,.3), transparent 62%); pointer-events:none;}
.hello > *{position:relative;}
.hello .hi{color:var(--green-300); font-weight:600; font-size:.95rem;}
.hello h1{color:#fff; font-size:clamp(1.7rem, 5vw, 2.3rem); margin:4px 0 18px;}
.simple .summary-switcher{display:block; width:100%; max-width:none; min-height:46px; margin:-4px 0 18px; padding:0 14px; border-radius:12px;}
.now{display:flex; gap:12px; align-items:flex-start; margin-top:18px; padding:14px 16px; border-radius:14px; background:rgba(255,255,255,.06); border:1px solid var(--on-dark-line);}
.now-dot{width:12px; height:12px; margin-top:6px; flex:0 0 auto; border-radius:50%; background:var(--green-300); box-shadow:0 0 0 4px rgba(127,194,168,.18);}
.now.waiting .now-dot{background:var(--brass-soft); box-shadow:0 0 0 4px rgba(199,154,60,.22);}
.now.todo .now-dot{background:var(--on-dark-muted); box-shadow:none;}
.now small{display:block; font-size:.72rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--on-dark-muted);}
.now b{display:block; margin-top:2px; font-size:1.05rem; color:#fff;}
.now span{display:block; font-size:.92rem; color:var(--on-dark-muted);}

.need{background:var(--brass-tint); border-color:var(--brass-soft); scroll-margin-top:12px;}
.need-list{margin:0 0 16px; padding-left:20px; display:grid; gap:8px; font-size:.97rem;}

.simple .steps-toggle{display:flex; align-items:center; gap:8px; width:100%; min-height:44px; margin:0 0 12px; padding:0 14px; border:1px dashed var(--line-strong); border-radius:12px; background:var(--green-tint-2); color:var(--green-700); font-weight:600; font-size:.9rem; cursor:pointer;}
.simple .steps.collapsed .step.is-past{display:none;}
.simple .step-head{flex-wrap:nowrap; align-items:flex-start;}
.simple .step-head > div{flex:1; min-width:0;}

.latest time{display:block; margin-bottom:4px; font-size:.8rem; color:var(--muted-2);}
.latest p{font-size:1rem; white-space:pre-line; overflow-wrap:anywhere;}
.see-all{margin-top:12px;}
.see-all summary, .more summary{list-style:none; cursor:pointer;}
.see-all summary::-webkit-details-marker, .more summary::-webkit-details-marker{display:none;}
.see-all summary{display:inline-flex; align-items:center; min-height:44px; font-size:.92rem; font-weight:600; color:var(--green-700);}
.see-all .feed{margin-top:8px;}

.pay-sum{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
.pay-sum div{padding:14px; border-radius:12px; background:var(--paper);}
.pay-sum small{display:block; font-size:.8rem; color:var(--muted);}
.pay-sum b{font-family:var(--serif); font-size:1.5rem; font-weight:500; color:var(--ink); font-variant-numeric:tabular-nums;}
.pay-sum .due b{color:var(--brass);}

.more{padding-top:6px; padding-bottom:6px;}
.more summary{display:flex; align-items:center; gap:12px; min-height:52px; font-family:var(--serif); font-size:1.25rem; color:var(--ink);}
.more summary span{margin-left:auto; font-family:var(--sans); font-size:.84rem; color:var(--muted-2);}
.more summary::after{content:"+"; width:30px; height:30px; flex:0 0 auto; display:grid; place-items:center; border-radius:50%; border:1px solid var(--line-strong); font-family:var(--sans); font-size:1.1rem; color:var(--green-700); transition:transform .2s;}
.more[open] summary::after{transform:rotate(45deg); background:var(--green-tint);}
.more[open] summary{margin-bottom:12px;}
.more .rows{margin-bottom:10px;}

.kv{list-style:none; margin:0 0 10px; padding:0;}
.kv li{display:flex; justify-content:space-between; gap:14px; padding:10px 0; border-top:1px solid var(--line); font-size:.92rem;}
.kv li:first-child{border-top:none; padding-top:0;}
.kv span{color:var(--muted);}
.kv b{color:var(--ink); font-weight:600; text-align:right; overflow-wrap:anywhere;}
.kv a{color:var(--green-700); font-weight:600;}
.center{text-align:center;}

.contact-bar.always{display:flex;}
@media(min-width:681px){
  .contact-bar.always{position:fixed; left:50%; right:auto; bottom:18px; z-index:30; width:min(720px, calc(100% - 32px)); transform:translateX(-50%); gap:10px; padding:8px; background:rgba(255,255,255,.96); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border:1px solid var(--line); border-radius:999px; box-shadow:0 12px 34px rgba(11,46,35,.14);}
  .contact-bar.always .btn{flex:1 1 0; min-height:48px;}
}

/* more than one company: the company name itself is the picker */
.sr-only{position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}
.title-switcher{display:block; width:100%; margin:4px 0 18px; padding:4px 34px 4px 0; border:0; border-radius:8px; appearance:none; -webkit-appearance:none; cursor:pointer;
  background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%237FC2A8' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 4px center;
  font-family:var(--serif); font-size:clamp(1.7rem, 5vw, 2.3rem); font-weight:500; line-height:1.15; color:#fff; text-overflow:ellipsis;}
.title-switcher option{font-family:var(--sans); font-size:16px; color:var(--text);}
