/* Expectat app (portal + admin): the SoCoFlow-style refresh and the mobile shell. Loaded AFTER account.css, so it only overrides.
   Part 1: desktop refresh (card header rows, settings rows, switches, two-column profile/settings, calm type).
   Part 2: mobile shell (<=860px): sticky slim top bar, bottom tab bar, tables become cards, 16px inputs, 44px touch targets, no footer bar. */

/* ---------- Part 1: refresh ---------- */
.ax-view h1{font:600 1.5rem var(--sans,system-ui,sans-serif);letter-spacing:-.015em;margin:0}
.ax-view .ax-crumbl{display:block;font:500 0.875rem var(--sans,system-ui,sans-serif);color:var(--muted,#7b7064);margin:0 0 2px}
.ax-view h1+.ax-sub{color:var(--muted,#7b7064);font-size:0.875rem;max-width:70ch}
.ax-box{border-radius:12px;padding:20px 22px}
/* a card's first heading becomes its header row, like the SoCoFlow cards */
.ax-box>h2:first-child,.ax-box>h3:first-child{font:600 0.875rem var(--sans,system-ui,sans-serif);letter-spacing:0;text-transform:none;color:var(--ink,#191410);margin:-20px -22px 4px;padding:14px 22px;border-bottom:1px solid var(--line,#e2d9c8)}
.ax-box>h2:first-child+*{margin-top:6px}
.ax-box h3{letter-spacing:.02em}
.ax-tcard{border-radius:12px}
.ax-linkbtn{border:0;background:none;padding:0;font:500 0.875rem var(--sans,system-ui,sans-serif);color:var(--oxblood,#8a2b2b);cursor:pointer;text-decoration:none}
.ax-linkbtn:hover{text-decoration:underline}.ax-linkbtn.bad{color:#b3261e}

/* two columns: main cards and a right rail (profile, settings) */
.ax-2col{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start}
.ax-2main{display:grid;gap:18px;min-width:0}
.ax-rail{display:grid;gap:0;min-width:0}
.ax-rail section{padding:16px 0;border-top:1px solid var(--line,#e2d9c8)}
.ax-rail section:first-child{border-top:0;padding-top:4px}
.ax-rail h3{font:600 1rem var(--sans,system-ui,sans-serif);letter-spacing:0;text-transform:none;color:var(--ink,#191410);margin:0 0 8px}
.ax-rail dl{display:grid;gap:0;margin:0}
.ax-rail dl>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line2,#efe8da);font-size:0.875rem}
.ax-rail dl>div:first-child{border-top:0}
.ax-rail dt{color:var(--muted,#7b7064)}.ax-rail dd{margin:0;text-align:right;overflow-wrap:anywhere;font-weight:500}
.ax-rail p{margin:0 0 8px;color:var(--ink-soft,#4a4037);font-size:0.875rem;line-height:1.5}
.ax-rail .ax-linkbtn{display:inline-block;margin-top:2px}
.ax-rail .ax-btn{width:fit-content}
.ax-rail .rowbtn{display:flex;align-items:center;justify-content:space-between;gap:12px}

/* profile photo row */
.ax-photo{display:flex;align-items:center;gap:16px}
.ax-photo .ax-av.big{width:64px;height:64px;font-size:1.25rem;box-shadow:0 0 0 3px #fff,0 0 0 4px var(--line,#e2d9c8)}
.ax-photo-col{display:grid;gap:2px;justify-items:start}
.ax-photo-col .nm{font:600 1rem var(--sans,system-ui,sans-serif);color:var(--ink,#191410)}
.ax-photo-col .em{font-size:0.875rem;color:var(--muted,#7b7064);overflow-wrap:anywhere}
.ax-photo-col .lk{display:flex;gap:14px;margin-top:2px}
.ax-photo-col .ax-btn.alt,.ax-photo-col .ax-out{border:0;background:none;padding:0;width:auto;font:500 0.875rem var(--sans,system-ui,sans-serif);color:var(--oxblood,#8a2b2b);cursor:pointer}
.ax-photo-col .ax-out{color:#b3261e}
.ax-photo-col .ax-btn.alt:hover,.ax-photo-col .ax-out:hover{text-decoration:underline;background:none}
.ax-photo-col .ax-note{font-size:0.875rem;color:var(--muted,#7b7064)}

/* settings rows: label + description left, control right */
.ax-prefs{display:grid;gap:0;margin:0 -22px -20px}
.ax-pref{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 22px;border-top:1px solid var(--line,#e2d9c8)}
.ax-pref:first-child{border-top:0}
.ax-pref .tx{min-width:0}.ax-pref .tx b{display:block;font:600 0.875rem var(--sans,system-ui,sans-serif);color:var(--ink,#191410)}
.ax-pref .tx span{display:block;font-size:0.875rem;color:var(--muted,#7b7064);margin-top:1px;line-height:1.4}
.ax-pref select{min-width:0;width:auto;max-width:220px;font-size:0.875rem;padding:.4em .6em;border-radius:6px}
/* switch */
.ax-switch{position:relative;display:inline-block;width:44px;height:26px;flex:none}
.ax-switch input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}
.ax-switch i{position:absolute;inset:0;border-radius:99px;background:#cfc7b6;transition:background .15s}
.ax-switch i::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s}
.ax-switch input:checked+i{background:var(--oxblood,#8a2b2b)}.ax-switch input:checked+i::after{transform:translateX(18px)}
.ax-switch input:focus-visible+i{outline:2px solid var(--oxblood,#8a2b2b);outline-offset:2px}
@media(prefers-reduced-motion:reduce){.ax-switch i,.ax-switch i::after{transition:none}}

/* admin: the children of a collapsible group sit as close as in the client and partner apps (the page's own button margin was pushing them apart) */
.ax-sub .ax-link,.ax-sub .ax-link.sub{margin:0}

/* proposals: the matrix on wide screens, one card per adviser on phones */
.ax-pstack{display:none}
.ax-pstack .pr{font:600 1.5rem var(--sans,system-ui,sans-serif);color:var(--ink,#191410);margin:2px 0 4px}
.ax-pstack .sect{display:grid;gap:3px;font-size:0.875rem}.ax-pstack .sect b{font:600 0.875rem var(--sans,system-ui,sans-serif);color:var(--muted,#7b7064)}
.ax-pstack ul{margin:0;padding-left:18px}

/* ---------- Part 2: mobile shell ---------- */
.ax-bnav{display:none}
@media(max-width:860px){
  :root{--ftr:0px}
  .ax-cmp{display:none}.ax-pstack{display:grid;gap:12px}
  .ax-nav{min-height:0;overflow-y:auto}.ax-user{flex:none;height:auto!important;min-height:58px;padding-top:8px!important;padding-bottom:8px!important}
  html:not(.embed) body{overflow:hidden}
  .ax-foot{display:none!important}
  /* the drawer */
  .ax-side{width:min(86vw,320px);box-shadow:0 0 40px rgba(0,0,0,.25);padding-bottom:max(12px,env(safe-area-inset-bottom))}
  .ax-scrim{backdrop-filter:blur(1px)}
  /* top bar: burger, title, two round icon buttons */
  .ax-top{padding:8px 12px;gap:10px;min-height:52px;background:var(--shell,#f5f0e6)}
  .ax-burger{width:40px;height:40px;border-radius:10px;flex:none}
  .ax-top h2,.ax-top .crumb-c,.ax-top #ax-title{font-size:1rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ax-top h2 .crumb-p,.ax-top h2 .crumb-s{display:none!important}
  .ax-tabsbar{margin:-14px -14px 16px;padding:10px 14px;overflow-x:auto;white-space:nowrap}
  .ax-toplink{font-size:0!important;width:40px;height:40px;padding:0!important;border-radius:50%!important;display:inline-grid;place-items:center;flex:none;position:relative}
  .ax-toplink::before{content:"";width:20px;height:20px;background:currentColor;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
  #ax-docs{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M9.5 9a2.5 2.5 0 1 1 3.5 2.3c-.7.4-1 1-1 1.7'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E")}
  .ax-banner{padding:6px 12px;font-size:0.75rem;gap:8px;line-height:1.25}.ax-banner button{padding:3px 9px;font-size:0.75rem;white-space:nowrap}
  html:not(.embed) .ax-banner{height:auto;min-height:36px}
  html:not(.embed) .ax.viewing{--bnr:36px}html:not(.embed) .ax.viewing .ax-top{top:var(--bnr)}
  /* content */
  html:not(.embed) .ax-main{padding-bottom:calc(68px + env(safe-area-inset-bottom))}
  .ax-view{padding:14px 14px 24px}.ax-view>*+*{margin-top:14px}
  .ax-view h1{font-size:1.25rem}
  .ax-view h1+.ax-sub{font-size:0.875rem}
  .ax-box{padding:16px;border-radius:12px}
  .ax-box>h2:first-child,.ax-box>h3:first-child{margin:-16px -16px 2px;padding:12px 16px}
  .ax-prefs{margin:0 -16px -16px}.ax-pref{padding:12px 16px;gap:12px}
  .ax-2col{grid-template-columns:minmax(0,1fr);gap:14px}
  .ax-rail section:first-child{padding-top:12px}
  body,.ax-page{font-size:0.875rem}
  .ax-box p,.ax-sub{line-height:1.5}
  /* touch */
  .ax-btn,.ax-linkbtn,.ax-link,.ax-dtab,.ax-mrow button{min-height:44px}
  .ax-btn{display:inline-flex;align-items:center;justify-content:center}
  .ax-link{padding-top:10px;padding-bottom:10px}.ax-subnav .ax-link,.ax-sub .ax-link{padding-top:9px;padding-bottom:9px}
  .ax input:not([type=checkbox]):not([type=radio]),.ax select,.ax textarea,.ax-page input:not([type=checkbox]):not([type=radio]),.ax-page select,.ax-page textarea{font-size:1rem!important;min-height:44px}
  .ax textarea,.ax-page textarea{min-height:88px}
  .ax-grid2,.ax-col .ax-grid2{grid-template-columns:minmax(0,1fr)!important}
  .ax-mrow{flex-wrap:wrap}.ax-mrow>input,.ax-mrow>select,.ax-mrow>textarea{flex:1 1 100%;min-width:0}
  .ax-tiles{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}
  .ax-tiles>*{padding:12px 14px;min-width:0}
  .ax-dtabs{overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}.ax-dtabs::-webkit-scrollbar{display:none}
  .ax-tabsbar{max-width:100%;overflow-x:auto}
  /* tables become cards: every cell shows its column name (set by the script from the header) */
  .ax-tcard{border:0;background:none;overflow:visible;max-height:none}
  table.ax-cards{display:block;border:0;width:100%;min-width:0!important}
  table.ax-cards thead{display:none}
  table.ax-cards tbody{display:grid;gap:10px}
  table.ax-cards tr{display:grid;gap:4px;background:#fff;border:1px solid var(--line,#e2d9c8);border-radius:12px;padding:12px 14px}
  table.ax-cards tr.ax-click{cursor:pointer}
  table.ax-cards td{display:flex;justify-content:space-between;align-items:baseline;gap:14px;border:0!important;padding:3px 0!important;text-align:right;min-width:0;overflow-wrap:anywhere}
  table.ax-cards td::before{content:attr(data-label);flex:none;max-width:42%;font:500 0.75rem var(--sans,system-ui,sans-serif);color:var(--muted,#7b7064);text-align:left}
  table.ax-cards td:first-child{display:block;text-align:left;font-size:1rem;padding-bottom:5px!important}
  table.ax-cards td:first-child::before,table.ax-cards td:not([data-label])::before,table.ax-cards td[data-label=""]::before{display:none}
  table.ax-cards td.empty{display:block;text-align:left}
  table.ax-cards td .em{display:inline}
  table.ax-cards td:last-child:empty{display:none}
  /* modals and the plans overlay: full screen */
  dialog.adlg{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0}
  .pl-overlay{padding:0}.pl-grid{grid-template-columns:1fr;max-width:none}
  .ax-toast,.toast{left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom));max-width:none}
  /* bottom tab bar */
  .ax-bnav{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;z-index:28;background:#fff;border-top:1px solid var(--line,#e2d9c8);padding:6px 4px calc(6px + env(safe-area-inset-bottom));box-shadow:0 -4px 16px rgba(25,20,16,.06)}
  .ax-bnav .ax-link{flex-direction:column;justify-content:center;gap:2px;min-height:48px;padding:4px 2px;border-radius:10px;font:500 0.75rem var(--sans,system-ui,sans-serif);text-align:center;position:relative;width:auto;color:var(--muted,#7b7064)}
  .ax-bnav .ax-link svg{width:24px;height:24px}
  .ax-bnav .ax-link[aria-current=page]{background:none;color:var(--oxblood,#8a2b2b);font-weight:600}
  .ax-bnav .ax-link .ax-pill{position:absolute;top:2px;left:calc(50% + 6px);margin:0;min-width:16px;text-align:center;padding:0 5px;font-size:0.75rem}
  .ax-bnav .ax-link[hidden]{display:none}
  .ax.open .ax-bnav,.ax.open~.ax-bnav{z-index:10}
  /* the Sage panel and other docked panels already go full screen under 900px */
}
@media(max-width:380px){.ax-bnav .ax-link{font-size:0.75rem}.ax-view{padding:12px 10px 24px}.ax-tiles{grid-template-columns:minmax(0,1fr)!important}}
@media(max-width:860px) and (orientation:landscape){.ax-bnav .ax-link{min-height:40px}}

/* ---------- admin on a phone ---------- */
.ax-mlinks{display:none}
@media(max-width:860px){
  .adm .ax-top .sp a{display:none}
  .ax-mlinks{display:flex;flex-wrap:wrap;gap:6px 16px;padding:10px 12px;border-top:1px solid var(--line,#e2d9c8);font-size:0.875rem}.ax-mlinks a{color:var(--ink-soft,#4a4037);text-decoration:none;padding:6px 0}
  .adm .ax-main>main{padding:14px 12px calc(76px + env(safe-area-inset-bottom))}
  .adm .card{border-radius:12px;padding:14px}
  .adm .cols{grid-template-columns:minmax(0,1fr)!important}
  .adm .actions{flex-wrap:wrap}.adm .actions .btn{flex:1 1 auto;min-height:44px}
  .adm .btn{min-height:44px}
  .adm .tabs,.adm .seg,.adm .ax-seg{overflow-x:auto;white-space:nowrap;max-width:100%}
  .adm .card table:not(.ax-cards-off){display:block;width:100%;border:0}
  .adm .card table thead{display:none}
  .adm .card table tbody{display:grid;gap:10px}
  .adm .card table tr{display:grid;gap:4px;background:#fff;border:1px solid var(--line,#e2d9c8);border-radius:12px;padding:12px 14px}
  .adm .card table td{display:flex;justify-content:space-between;align-items:baseline;gap:14px;border:0!important;padding:3px 0!important;text-align:right;min-width:0;overflow-wrap:anywhere}
  .adm .card table td::before{content:attr(data-label);flex:none;max-width:42%;font:500 0.75rem var(--sans,system-ui,sans-serif);color:var(--muted,#7b7064);text-align:left}
  .adm .card table td:first-child{display:block;text-align:left;font-size:1rem;padding-bottom:5px!important}
  .adm .card table td:first-child::before,.adm .card table td:not([data-label])::before,.adm .card table td[data-label=""]::before{display:none}
  .adm .card table td.empty{display:block;text-align:left}
  .ix{grid-template-columns:minmax(0,1fr)}
}
@media(min-width:861px){.ax-bnav{display:none!important}}
@media(max-width:860px){
  .adm [style*="display:flex"]{flex-wrap:wrap}
  .adm input[style*="min-width"],.adm select[style*="min-width"]{min-width:0!important;flex:1 1 160px}
  .adm .ax-seg,.adm .seg,.adm .tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .adm .ax-seg::-webkit-scrollbar,.adm .seg::-webkit-scrollbar,.adm .tabs::-webkit-scrollbar{display:none}
  .adm .ax-seg button,.adm .seg button,.adm .tabs button{flex:none}
  .toast{left:12px!important;right:12px!important;transform:none!important;max-width:none!important;bottom:calc(76px + env(safe-area-inset-bottom))!important}
  .adm .actions .btn,.adm .field .btn{width:auto}
  .adm #ldlg,.adm dialog{max-width:100vw}
}

/* client coaching plan (EXP-49) */
.ax-cpleft{font-size:1.125rem;font-weight:600;margin:4px 0 2px}

/* TYPE SCALE: one scale for the whole app (portal and Admin), the same steps SoCoFlow uses.
   12 caption, pill, group label | 14 body, nav, table, form, button | 16 reading text, page intro | 18 card title | 20 page title | 24 big number | 30 display
   Weights: 400 text, 500 labels and controls, 600 titles and emphasis. Sans for everything in the app; serif only for the Expectat wordmark. */
:root{--t-xs:.75rem;--t-sm:.875rem;--t-base:1rem;--t-lg:1.125rem;--t-xl:1.25rem;--t-2xl:1.5rem;--t-3xl:1.875rem}
.ax-page{font-size:var(--t-sm);line-height:1.5}
/* the public site's global table rule (font-size .95rem, min-width 34rem) must not reach app tables */
.ax-page table{font-size:inherit;min-width:0}
.ax-page b,.ax-page strong,.ax-page th{font-weight:600}

/* any card can sit in the right-hand rail: it loses its box and reads like the other rail sections */
.ax-rail .ax-box{background:none;border:0;border-radius:0;box-shadow:none;padding:16px 0;margin:0;border-top:1px solid var(--line,#e2d9c8)}
.ax-rail>.ax-box:first-child{border-top:0;padding-top:4px}
.ax-rail .ax-box>h2:first-child,.ax-rail .ax-box>h3:first-child,.ax-rail .ax-box h2,.ax-rail .ax-box h3{font:600 1rem var(--sans,system-ui,sans-serif);letter-spacing:0;text-transform:none;color:var(--ink,#191410);margin:0 0 8px;padding:0;border:0;background:none}
.ax-rail .ax-st,.ax-rail .ax-stat{display:inline-flex;width:fit-content}
.ax-mback{display:inline-block;margin:0 0 10px;padding:0;text-align:left}
.ax-rail .ax-box .ax-sub{font-size:.875rem;max-width:none}
.ax-rail .ax-box textarea,.ax-rail .ax-box input,.ax-rail .ax-box select{max-width:100%;min-width:0}
.ax-rail .ax-mrow{flex-wrap:wrap}
.ax-2col{align-items:start}
.ax-2main{display:grid;gap:18px;min-width:0}

/* the right-hand rail stays in view while the middle of the page scrolls (desktop); it scrolls on its own only if it is taller than the screen */
@media (min-width:861px){
  /* the panel's top sits 16px under the header (and the banner, when there is one). Its bottom stops 96px above the screen bottom: at the very end of the page the footer and the page padding leave
     that much room under the columns, so the panel never has to ride up under the header there. */
  .ax{--rail-top:calc(var(--hdr,60px) + var(--bnr,0px) + 16px);--rail-max:calc(100vh - var(--hdr,60px) - var(--bnr,0px) - 16px - 140px)}   /* the page measures the real value (railFit in account.js); this is the safe fallback */
  .ax-2col>.ax-rail,.ax-bpanel{position:sticky;top:var(--rail-top);align-self:start;max-height:var(--rail-max);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
}
.ax-tiles{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}

/* clean header: the page name is not shown in the top bar (kept for screen readers); the breadcrumb lives inside the page */
/* the breadcrumb lives in the top bar (see PAGE SHELL at the end of this file) */
.ax-bc,.pg-head .bc{display:flex;align-items:center;gap:6px;font:500 0.875rem var(--sans,system-ui,sans-serif);color:var(--muted,#7b7064);margin:0 0 10px;min-width:0;flex-wrap:wrap}
.ax-bc[hidden]{display:none}
.ax-bc button,.pg-head .bc button,.pg-head .bc a{border:0;background:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:none}
.ax-bc button:hover,.pg-head .bc button:hover,.pg-head .bc a:hover{color:var(--ink,#191410)}
.ax-bc svg,.pg-head .bc svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ax-bc .ax-bc-c,.pg-head .bc .c{color:var(--ink,#191410)}
.pg-head{margin:0 0 14px}.pg-head h1{font:600 1.5rem/1.25 var(--sans,system-ui,sans-serif);margin:0}
.pg-head[hidden]{display:none}
.ax-bc{padding:18px 28px 0;margin:0 0 -6px}
@media (max-width:860px){.ax-bc{padding:12px 14px 0;margin:0 0 -4px}}

/* Account home lists (shared by Admin, client and partner homes) */
.ov-wrap{max-width:1180px;margin:0 auto;display:grid;gap:36px;padding-bottom:24px}
.ov-hello{font:600 1.875rem/1.2 var(--sans,system-ui,sans-serif);text-align:center;margin:0 0 -12px}
.ov-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:32px 36px;margin-top:4px}
.ov-col{min-width:0}
.ov-head{display:flex;align-items:center;gap:8px;width:100%;border:0;background:none;font:500 0.875rem var(--sans,system-ui,sans-serif);color:var(--muted,#7b7064);padding:6px 0 14px;text-align:left}
button.ov-head{cursor:pointer}button.ov-head:hover{color:var(--ink,#191410)}
.ov-head svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-left:auto}
.ov-head .hi{width:16px;height:16px;margin-left:0;stroke-width:1.8;flex:none}
.ov-n{font:500 0.75rem var(--sans,system-ui,sans-serif);background:#ebe5d6;color:var(--ink-soft,#4a4037);border-radius:99px;padding:1px 8px}.ov-n:empty{display:none}
.ov-row{display:flex;align-items:center;gap:10px;width:100%;border:0;border-top:1px solid var(--line,#e2d9c8);background:none;font:inherit;color:var(--ink,#191410);text-align:left;padding:14px 2px;cursor:pointer;min-width:0}
.ov-row:hover{background:#faf6ec}
.ov-row .av{flex:none;width:22px;height:22px;border-radius:6px;background:var(--ink,#191410);color:#fff;display:grid;place-items:center;font:600 0.75rem var(--sans,system-ui,sans-serif)}
.ov-row .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ov-row .mt{flex:none;color:var(--muted,#7b7064);font-size:0.75rem;white-space:nowrap}
.ov-row .dot{flex:none;width:8px;height:8px;border-radius:50%;background:#b8aea0}.ov-row .dot.on{background:var(--ok,#2f6b45)}.ov-row .dot.hot{background:var(--accent,var(--oxblood,#8a2b2b))}
.ov-row svg{flex:none;width:14px;height:14px;stroke:var(--muted,#7b7064);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ov-none{border-top:1px solid var(--line,#e2d9c8);padding:14px 2px;color:var(--muted,#7b7064);font-size:0.875rem}
.ov-note{margin:8px 2px 0;font-size:0.75rem;color:var(--muted,#7b7064)}
.ov-search{position:relative;max-width:640px;margin:0 auto;width:100%}
.ov-search>svg{position:absolute;left:14px;top:13px;width:18px;height:18px;stroke:var(--muted,#7b7064);fill:none;stroke-width:1.8;stroke-linecap:round}
.ov-search input{width:100%;font:inherit;font-size:1rem;padding:11px 56px 11px 42px;border:1px solid var(--line,#e2d9c8);border-radius:10px;background:#fff;min-width:0}
.ov-search input:focus{outline:2px solid var(--accent,var(--oxblood,#8a2b2b));outline-offset:1px}
.ov-search kbd{position:absolute;right:12px;top:11px;font:500 0.75rem var(--sans,system-ui,sans-serif);color:var(--muted,#7b7064);border:1px solid var(--line,#e2d9c8);border-radius:6px;padding:2px 7px;background:#faf6ec}
.ov-res{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--line,#e2d9c8);border-radius:10px;box-shadow:0 12px 32px #19141026;max-height:60vh;overflow:auto;padding:6px}
.ov-res h4{font:600 0.75rem var(--sans,system-ui,sans-serif);letter-spacing:.08em;text-transform:uppercase;color:var(--muted,#7b7064);margin:8px 10px 4px}
.ov-res .ov-row{border-top:0;border-radius:6px;padding:9px 10px}.ov-res .ov-row[aria-selected=true]{background:#f4ead3}
.ov-res .ov-none{border-top:0;padding:12px 10px}
.ov-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}
.ov-seg{display:inline-flex;background:#ebe5d6;border-radius:8px;padding:2px}.ov-seg button{border:0;background:none;font:500 0.875rem var(--sans,system-ui,sans-serif);padding:5px 12px;border-radius:6px;color:var(--muted,#7b7064);cursor:pointer}.ov-seg button[aria-pressed=true]{background:#fff;color:var(--ink,#191410);box-shadow:0 1px 2px #0002}
#ax-title a{color:var(--muted,#7b7064);text-decoration:none;font-weight:400}#ax-title a:hover{color:var(--ink,#191410)}#ax-title .crumb-s{color:var(--muted,#7b7064)}
/* ONE table look across the app: the same as the portal's data tables (white bordered card, sentence-case dark headers, 12/16 and 13/16 padding, no zebra, last row without a rule). Chart "Table view" tables keep their compact look. */
body.adm main table:not(.plain){width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid rgba(25,20,16,.16);border-radius:12px;overflow:hidden;margin-top:12px}
body.adm main .chart table{border:0;border-radius:0;background:none;overflow:visible}
body.adm main table:not(.plain) th{padding:12px 16px;font:500 0.875rem var(--sans,system-ui,sans-serif);letter-spacing:0;text-transform:none;color:var(--ink,#191410);text-align:left;border-bottom:1px solid rgba(25,20,16,.16);background:#fff}
body.adm main table:not(.plain) td{padding:13px 16px;border-bottom:1px solid rgba(25,20,16,.16);vertical-align:middle;font-size:inherit;background:none}
body.adm main table:not(.plain) tbody tr:last-child td{border-bottom:0}
body.adm main table:not(.plain) td.empty{text-align:center;color:var(--muted,#7b7064);padding:30px 16px}
.ax-link.sub{padding:7px 10px;font-size:0.875rem}
.embedframe{display:block;width:100%;border:0;height:480px;background:transparent;color-scheme:light}
#vawrap{background:none!important;border:0!important;box-shadow:none!important;overflow:visible!important}
#vawrap .va-banner{border-radius:10px;margin-bottom:14px}
#vawrap .empty{background:var(--card);border:1px solid var(--line,#e2d9c8);border-radius:10px}
.va-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;background:#2f4f7c;color:#fff;font:600 0.875rem var(--sans,system-ui,sans-serif)}
.va-tabs{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.va-tabs button{border:1px solid rgba(255,255,255,.55);background:transparent;color:#fff;border-radius:6px;padding:3px 10px;font:600 0.875rem var(--sans,system-ui,sans-serif);cursor:pointer}
.va-tabs button:hover,.va-tabs button[aria-pressed=true]{background:rgba(255,255,255,.18)}
.va-row{display:grid;gap:1px;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line2);background:none;padding:10px 14px;cursor:pointer;font:inherit}
.va-row:hover,.va-row[aria-current=true]{background:#f4ead3}.va-row b{font-weight:600}.va-row span{font-size:0.875rem;color:var(--muted,#7b7064);overflow-wrap:anywhere}
.va-h{font:600 0.75rem var(--sans,system-ui,sans-serif);letter-spacing:.12em;text-transform:uppercase;color:var(--muted,#7b7064);padding:10px 14px 4px;margin:0}
.ov-h{font:600 1rem var(--sans,system-ui,sans-serif);text-transform:none;letter-spacing:0;color:var(--ink,#191410);margin:0 0 8px}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.tile{display:grid;gap:3px;align-content:start;text-align:left;background:var(--card);border:1px solid var(--line,#e2d9c8);border-radius:10px;padding:14px 16px;font:inherit;color:inherit;cursor:default}
button.tile{cursor:pointer}button.tile:hover{border-color:var(--ink-soft,#4a4037)}
.tile.hot{border-color:var(--accent,var(--oxblood,#8a2b2b));box-shadow:inset 3px 0 0 var(--accent,var(--oxblood,#8a2b2b))}
.tile .l{font:600 0.75rem var(--sans,system-ui,sans-serif);letter-spacing:.09em;text-transform:uppercase;color:var(--muted,#7b7064)}
.tile .v{font:600 1.875rem/1.1 var(--sans,system-ui,sans-serif);letter-spacing:-.02em}
.tile .s{font-size:0.875rem;color:var(--muted,#7b7064)}.tile .s.up{color:var(--ok,#2f6b45)}.tile .s.down{color:var(--warn)}
.charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:14px;margin-top:16px}
@media(max-width:520px){.charts{grid-template-columns:minmax(0,1fr)}}
.chart{padding:16px 18px;position:relative;display:grid;gap:6px;min-width:0}
.chart h3{font:600 0.875rem var(--sans,system-ui,sans-serif);margin:0}.chart .sub2{font-size:0.875rem;color:var(--muted,#7b7064);margin:0}
.chart svg{width:100%;height:auto;display:block;overflow:visible}
.ov-metrics{display:grid;gap:18px}
.ov-row.ext svg{opacity:.7}
.ov-row .nm small{display:block;color:var(--muted,#7b7064);font-size:.75rem}
.ov-wrap .ax-col{max-width:none;margin:0;width:100%}

/* 2 x 2 analytics grid (SoCoFlow): compact cards with a label, a big number and one chart or list */
.ov-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media(max-width:900px){.ov-grid{grid-template-columns:minmax(0,1fr)}}
.gcard{--ca:#8a2b2b;--cm:#7b7064;--cg:#e8e0d0;background:var(--paper-card,#fffdf8);border:1px solid var(--line,#e2d9c8);border-radius:12px;padding:16px 18px 12px;display:grid;gap:4px;min-width:0;align-content:start}
.gcard .gl{font-size:.75rem;color:var(--muted,#7b7064)}
.gcard .gv{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;min-width:0}
.gcard .gv b{font:600 1.875rem/1.15 var(--sans,system-ui,sans-serif);letter-spacing:-.01em}
.gcard .gv span{font-size:.75rem;color:var(--muted,#7b7064)}
.gcard .gv em{font:500 .75rem var(--sans,system-ui,sans-serif);font-style:normal;color:var(--muted,#7b7064)}.gcard .gv em.up{color:#1f7a4d}.gcard .gv em.down{color:#b3261e}
.gcard svg{width:100%;height:auto;display:block;overflow:visible;margin-top:6px}
.gcard .mrows{display:grid;margin-top:8px}
.gcard .mrow{display:flex;justify-content:space-between;gap:12px;padding:10px 2px;border:0;border-top:1px solid var(--line,#e2d9c8);background:none;font:inherit;color:inherit;text-align:left;min-width:0}
.gcard button.mrow{cursor:pointer}.gcard button.mrow:hover{background:#faf6ec}
.gcard .mrow span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gcard .mrow span:last-child{color:var(--muted,#7b7064);flex:none}
.gcard .mbars{display:grid;gap:12px;margin-top:10px}
.gcard .mbar{display:grid;gap:5px;border:0;background:none;font:inherit;color:inherit;text-align:left;padding:0;width:100%}.gcard button.mbar{cursor:pointer}
.gcard .mbt{display:flex;justify-content:space-between;gap:12px;min-width:0}.gcard .mbt span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gcard .mbt span:last-child{color:var(--muted,#7b7064);flex:none}
.gcard .mtrack{height:6px;border-radius:99px;background:#ebe5d6;overflow:hidden}.gcard .mtrack i{display:block;height:100%;border-radius:99px;background:var(--ca)}
.gcard .mnone{border-top:1px solid var(--line,#e2d9c8);padding:12px 2px;color:var(--muted,#7b7064);font-size:.875rem}
.ov-sec{display:grid;gap:12px}.ov-sec .ov-h{margin:0}.ov-sec p{margin:0}

/* briefings: issue archive in the rail, a comfortable reading column */
.br-read{padding:26px 30px}.br-read .br-date{margin:0 0 6px;font-size:.875rem;color:var(--muted,#7b7064)}.br-read h2{font:600 1.5rem/1.3 var(--sans,system-ui,sans-serif);margin:0 0 16px;text-transform:none;letter-spacing:0;color:var(--ink,#191410)}
.br-read p{max-width:68ch;font-size:1rem;line-height:1.65;margin:0 0 14px}
.br-issue{display:flex;align-items:flex-start;gap:10px;width:100%;border:0;border-top:1px solid var(--line,#e2d9c8);background:none;font:inherit;text-align:left;padding:11px 4px;cursor:pointer;color:inherit}
.br-issue:first-of-type{border-top:0}.br-issue:hover{background:#faf6ec}.br-issue.on{background:#f4ead3}
.br-issue .dot{flex:none;margin-top:7px;width:8px;height:8px;border-radius:50%;background:#b8aea0}.br-issue .dot.hot{background:var(--oxblood,#8a2b2b)}
.br-issue .nm{flex:1;min-width:0;display:grid;gap:2px}.br-issue .nm small{color:var(--muted,#7b7064);font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.br-issue .ax-pill{flex:none;margin-top:2px}.br-calldate{font:600 1.125rem var(--sans,system-ui,sans-serif)!important;color:var(--ink,#191410)!important}
/* invitations: monthly limit, steps, guide */
.iv-big{margin:0 0 8px!important}.iv-big b{font:600 1.5rem var(--sans,system-ui,sans-serif);color:var(--ink,#191410)}.iv-big span{color:var(--muted,#7b7064)}
.iv-track{height:6px;border-radius:99px;background:#ebe5d6;overflow:hidden;margin:0 0 10px}.iv-track i{display:block;height:100%;border-radius:99px;background:var(--oxblood,#8a2b2b)}
.iv-steps,.iv-guide{margin:0;padding-left:1.15rem;display:grid;gap:8px;color:var(--ink-soft,#4a4037);font-size:.875rem;line-height:1.5}

/* proposals: an aligned comparison matrix, and one decision card per adviser in an even grid */
.ax-cmp table{table-layout:fixed;width:100%}
.ax-cmp th,.ax-cmp td{vertical-align:top!important;padding:14px 16px!important;border-bottom:1px solid var(--line,#e2d9c8)}
.ax-cmp tbody tr:last-child th,.ax-cmp tbody tr:last-child td{border-bottom:0}
.ax-cmp thead th{border-bottom:1px solid var(--line,#e2d9c8);font-weight:600}
.ax-cmp tbody th{width:176px;color:var(--muted,#7b7064);font-weight:500;text-align:left;background:none!important;position:static}
.ax-cmp td ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}.ax-cmp td ul li{border:0;padding:0;list-style:none}
.ax-cmp td b{font-weight:600}.ax-cmp td .em{display:block;color:var(--muted,#7b7064);font-size:.875rem;margin-top:2px}
.ax-dgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;align-items:stretch}
.ax-dcard{display:flex;flex-direction:column;gap:12px;background:var(--paper-card,#fffdf8);border:1px solid var(--line,#e2d9c8);border-radius:12px;padding:18px 20px;min-width:0}
.ax-dcard .dh{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line,#e2d9c8)}.ax-dcard .dh b{font:600 1.125rem var(--sans,system-ui,sans-serif)}.ax-dcard .dh .dp{font:600 1.125rem var(--sans,system-ui,sans-serif);color:var(--oxblood,#8a2b2b);white-space:nowrap}
.ax-dcard h4{margin:0;font:600 .875rem var(--sans,system-ui,sans-serif);color:var(--ink,#191410);text-transform:none;letter-spacing:0}
.ax-dcard textarea{width:100%;box-sizing:border-box;font:inherit;font-size:1rem;padding:10px 12px;border:1px solid var(--line-strong,#cfc3ad);border-radius:8px;background:#fff;resize:vertical;min-height:64px}
.ax-dcard .dr{display:flex;align-items:center;gap:14px;margin:0}
.ax-dcard .da{margin-top:auto;display:grid;gap:12px;padding-top:14px;border-top:1px solid var(--line,#e2d9c8)}
.ax-dcard .dcheck{display:flex;align-items:flex-start;gap:10px;font-size:.875rem;line-height:1.45;cursor:pointer}.ax-dcard .dcheck input{flex:none;margin-top:3px;width:18px;height:18px}
.ax-dcard .da .ax-btn{width:100%;justify-content:center}

/* proposal form: sections, two columns where fields belong together, readable text areas */
.pfm .pfm-sec{margin:22px 0 10px;padding-top:16px;border-top:1px solid var(--line,#e2d9c8);font:600 .875rem var(--sans,system-ui,sans-serif);color:var(--ink,#191410);text-transform:none;letter-spacing:0}
.pfm .pfm-sec:first-of-type{border-top:0;padding-top:0;margin-top:14px}
.pfm .pfm-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
@media(max-width:700px){.pfm .pfm-2{grid-template-columns:minmax(0,1fr)}}
.pfm textarea,.pfm input[type=text],.pfm input[type=date],.pfm select{font:inherit;font-size:1rem;width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid var(--line-strong,#cfc3ad);border-radius:8px;background:#fff}
.pfm textarea{min-height:112px;resize:vertical;line-height:1.5}
.pfm .ax-mrow{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:10px;margin-bottom:8px;align-items:center}
.pfm .ax-field:has(.ax-mrow>select){}
.pfm .ax-mrow:has(select){grid-template-columns:minmax(0,1fr) 110px auto}
.pfm .pfm-sum{margin:2px 0 0;font-size:.875rem}.pfm .pfm-sum.ok{color:#1f7a4d}.pfm .pfm-sum.bad{color:#b3261e}
.pfm .ax-linkbtn{margin:0 0 10px}
.iv-need{display:grid;grid-template-columns:max-content 1fr;gap:8px 18px;margin:0}.iv-need dt{color:var(--muted,#7b7064)}.iv-need dd{margin:0}
.ax-rail .ax-mrow>*{flex:1 1 100%;min-width:0}.ax-rail .ax-box select,.ax-rail .ax-box input[type=text]{width:100%;box-sizing:border-box}

.iv-flt{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;border-top:1px solid var(--line,#e2d9c8);background:none;font:inherit;color:var(--ink,#191410);padding:10px 4px;cursor:pointer;text-align:left}
.iv-flt:first-of-type{border-top:0}.iv-flt:hover{background:#faf6ec}.iv-flt[aria-pressed=true]{background:#f4ead3}.iv-flt b{font-weight:600;color:var(--muted,#7b7064)}.iv-flt[aria-pressed=true] b{color:var(--ink,#191410)}
.pfm .pfm-acts{display:flex;grid-template-columns:none;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line,#e2d9c8)}
.ax-box textarea{font:inherit;font-size:1rem;line-height:1.5;width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid var(--line-strong,#cfc3ad);border-radius:8px;background:#fff;resize:vertical}

/* invitations table: a small "New" badge beside the title (not a second line), quiet sub-lines */
.iv-t{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.iv-t b{font-weight:600}
.iv-new{display:inline-block;font:600 .75rem var(--sans,system-ui,sans-serif);padding:1px 8px;border-radius:99px;background:var(--oxblood,#8a2b2b);color:#fff;line-height:1.5}
.iv-sub{margin-top:3px;font-size:.75rem;color:var(--muted,#7b7064);line-height:1.4}.iv-sub.warn{color:#b3261e;font-weight:500}
.ax-mtable td .ax-stat+.iv-sub{margin-top:6px}
.iv-t{flex-wrap:nowrap;align-items:flex-start}.iv-t b{min-width:0}.iv-new{flex:none;margin-top:2px}
.iv-table td:first-child{min-width:240px}.iv-table td:nth-child(2){white-space:nowrap}
@media(max-width:860px){.iv-table td:first-child{min-width:0}.iv-table td:nth-child(2){white-space:normal}}
.iv-tag{display:inline-block;font:500 .75rem var(--sans,system-ui,sans-serif);padding:1px 8px;border-radius:99px;background:#ebe5d6;color:var(--ink-soft,#4a4037);line-height:1.5;flex:none}.iv-tag.ok{background:#e4f0e6;color:#2f6b45}
.ov-sechead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ov-seg{display:inline-flex;background:#ebe5d6;border-radius:8px;padding:2px}.ov-seg button{border:0;background:none;font:500 .875rem var(--sans,system-ui,sans-serif);padding:5px 12px;border-radius:6px;color:var(--muted,#7b7064);cursor:pointer}.ov-seg button[aria-pressed=true]{background:#fff;color:var(--ink,#191410);box-shadow:0 1px 2px #0002}
.iv-table td.nw{white-space:nowrap}
@media(max-width:860px){.iv-table td.nw{white-space:normal}}
.mem-role{padding:8px 0;border-top:1px solid var(--line,#e2d9c8)}.mem-role:first-of-type{border-top:0}.mem-role b{font-weight:600}.mem-role p{margin:2px 0 0!important}
.ax-mtable td.em0{color:var(--muted,#7b7064)}
#v-details .ap-form,#v-details .contact-form{max-width:none!important;margin:0}
.br-issue a,a.br-issue{text-decoration:none;color:inherit}
.br-issue .vi{flex:none;width:22px;height:22px;margin-top:2px}
.ax-btn.danger{background:#b3261e;border-color:#b3261e;color:#fff}.ax-btn.danger:hover:not(:disabled){background:#8f1d17;border-color:#8f1d17}.ax-btn.danger:focus-visible{outline:2px solid #b3261e;outline-offset:2px}
.br-sources{margin-top:20px;padding-top:16px;border-top:1px solid var(--line,#e2d9c8)}.br-sources h3{margin:0 0 8px!important;font:600 .875rem var(--sans,system-ui,sans-serif)!important;text-transform:none!important;letter-spacing:0!important;color:var(--ink,#191410)!important}.br-sources ul{margin:0;padding-left:1.1rem;display:grid;gap:6px;font-size:.875rem}.br-sources li span{color:var(--muted,#7b7064)}

/* booking window (TidyCal inside the app) */
.bk-dlg{border:0;border-radius:14px;padding:0;width:min(920px,96vw);height:min(860px,92vh);box-shadow:0 24px 80px #19141055;overflow:hidden}
.bk-dlg[open]{display:flex;flex-direction:column}.bk-dlg::backdrop{background:rgba(25,20,16,.5)}
.bk-head{display:flex;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid var(--line,#e2d9c8);background:#fffdf8}
.bk-head b{font:600 1rem var(--sans,system-ui,sans-serif);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bk-x{border:0;background:none;font-size:1.75rem;line-height:1;cursor:pointer;color:var(--ink,#191410);padding:0 6px;border-radius:6px}.bk-x:hover{background:#f1ebdd}
.bk-body{position:relative;flex:1;min-height:0;background:#fff}.bk-body iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.bk-load{position:absolute;inset:0;display:grid;place-items:center;margin:0;color:var(--muted,#7b7064)}
.bk-foot{margin:0;padding:8px 16px;font-size:.75rem;color:var(--muted,#7b7064);border-top:1px solid var(--line,#e2d9c8);background:#fffdf8}
html.bk-open{overflow:hidden}
@media(max-width:860px){.bk-dlg{width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;border-radius:0}}

/* notification bell (portal header) */
.ax-bellwrap{position:relative;display:inline-block}
.ax-bell,.ax-iconbtn{position:relative;display:inline-grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:50%;background:none;color:var(--ink,#191410);cursor:pointer;text-decoration:none;flex:none}
.ax-iconbtn svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ax-top a.ax-iconbtn,.ax-top .sp a.ax-iconbtn{color:var(--ink,#191410);padding:0;border:0}
.ax-iconbtn:hover{background:rgba(25,20,16,.06)}.ax-iconbtn:focus-visible,.ax-bell:focus-visible{outline:2px solid var(--oxblood,#8a2b2b);outline-offset:1px}
html.embed .ax-iconbtn,html.embed .ax-bellwrap{display:none}
.ax-bell:hover{background:rgba(25,20,16,.06)}.ax-bell svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ax-bell-n{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:var(--oxblood,#8a2b2b);color:#fff;font:600 .75rem/18px var(--sans,system-ui,sans-serif);text-align:center;box-sizing:border-box}
.ax-bellp{position:absolute;z-index:70;right:0;top:calc(100% + 10px);width:min(390px,92vw);background:#fff;border:1px solid var(--line,#e2d9c8);border-radius:12px;box-shadow:0 16px 48px rgba(25,20,16,.18);overflow:hidden;text-align:left}
.ax-bellp[hidden]{display:none}
.bp-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line,#e2d9c8)}.bp-head b{font:600 1rem var(--sans,system-ui,sans-serif)}
.bp-list{max-height:min(60vh,420px);overflow:auto}
.bp-item{display:flex;align-items:flex-start;gap:10px;width:100%;border:0;border-top:1px solid var(--line,#e2d9c8);background:none;font:inherit;text-align:left;padding:12px 16px;cursor:pointer;color:inherit}
.bp-item:first-child{border-top:0}.bp-item:hover{background:#faf6ec}.bp-item.unread{background:#fbf6ea}
.bp-item .dot{flex:none;margin-top:7px;width:8px;height:8px;border-radius:50%;background:transparent}.bp-item .dot.hot{background:var(--oxblood,#8a2b2b)}
.bp-item .nm{flex:1;min-width:0;display:grid;gap:2px}.bp-item .nm b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bp-item .nm small{color:var(--muted,#7b7064);font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bp-item .mt{flex:none;color:var(--muted,#7b7064);font-size:.75rem;margin-top:2px}
.bp-empty{margin:0;padding:24px 16px;text-align:center;color:var(--muted,#7b7064)}
.bp-foot{display:flex;justify-content:space-between;gap:12px;padding:10px 16px;border-top:1px solid var(--line,#e2d9c8);background:#faf6ec}
@media(max-width:860px){.ax-bellp{position:fixed;left:8px;right:8px;top:62px;width:auto}}
/* monthly briefing: tagged items inside one issue */
.br-read .br-intro{font-size:1.0625rem;color:var(--ink,inherit)}
.br-item{margin-top:22px;padding-top:18px;border-top:1px solid var(--line,#e2d9c8)}.br-item h3{margin:0 0 10px;font:600 1.125rem/1.35 var(--sans,system-ui)}
.br-img{display:block;max-width:100%;height:auto;border-radius:10px;margin:0 0 14px}
.br-item .ax-btn{margin:2px 0 10px}.br-isrc{margin:6px 0 0;padding-left:18px;font-size:.875rem;color:var(--muted,#7b7064)}.br-isrc a{color:inherit}

/* ---------- inbox (admin, client, partner): full-width list -> full-width conversation with a details rail (Flowbite pattern) ---------- */
.ib{background:#fff;border:1px solid var(--line,#e2d9c8);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;height:calc(100vh - 250px);min-height:460px}
.ib-list,.ib-conv{display:flex;flex-direction:column;min-width:0;min-height:0;flex:1}
.ib:not(.open) .ib-conv,.ib.open .ib-list{display:none}
.ib-tools{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--line,#e2d9c8);min-height:52px;flex-wrap:wrap;background:#fcfaf5}
.ib-tools .ib-chk{display:flex;align-items:center;width:18px}.ib-tools input[type=checkbox],.ib-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--oxblood,#8a2b2b);cursor:pointer;margin:0}
.ib-tools .sp{flex:1}
.ib-count{font-size:var(--t-sm);color:var(--muted,#7b7064);white-space:nowrap}
.ib-bulk{display:none;gap:6px;align-items:center}.ib-bulk.on{display:flex}
.ib-bulk button,.ib-act{border:1px solid var(--line,#e2d9c8);background:#fff;border-radius:8px;padding:6px 12px;font:500 var(--t-sm) var(--sans,system-ui);color:var(--ink-soft,#4a4037);cursor:pointer;white-space:nowrap}
.ib-bulk button:hover,.ib-act:hover{background:#fbf6ea}.ib-act.pri{background:var(--oxblood,#8a2b2b);border-color:var(--oxblood,#8a2b2b);color:#fff}.ib-act.pri:hover{filter:brightness(1.08)}
.ib-chips{display:flex;gap:4px}.ib-chips button{border:0;background:none;font:500 var(--t-sm) var(--sans,system-ui);color:var(--muted,#7b7064);padding:6px 11px;border-radius:99px;cursor:pointer}.ib-chips button:hover{background:#f6efdd}.ib-chips button[aria-pressed=true]{background:#f4ead3;color:var(--ink,#191410);font-weight:600}
.ib-items{overflow:auto;flex:1;min-height:0}
/* one row = one conversation, laid out in columns that use the whole width */
.ib-row{display:grid;grid-template-columns:18px 34px minmax(160px,230px) minmax(0,1fr) auto 84px;column-gap:14px;align-items:center;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line2,#efe8da);background:none;padding:11px 16px;cursor:pointer;font:inherit;color:inherit;box-sizing:border-box}
.ib-row.nock{grid-template-columns:34px minmax(150px,220px) minmax(0,1fr) auto 84px}
.ib-row:hover{background:#fbf6ea}.ib-row[aria-current=true]{background:#f4ead3}.ib-row.sel{background:#fbf3df}
.ib-row .av,.ib-head .av,.ib-rail .av{position:relative;overflow:hidden;flex:none;width:34px;height:34px;border-radius:50%;background:#efe5cf;display:grid;place-items:center;font:600 var(--t-sm) var(--sans,system-ui)}
.ib-row .av img,.ib-head .av img,.ib-rail .av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%}
.ib-row .nm{display:grid;gap:1px;min-width:0}.ib-row .who{font-size:var(--t-sm);color:var(--ink-soft,#4a4037);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ib-row .tag{font:600 var(--t-xs) var(--sans,system-ui);letter-spacing:.03em;text-transform:uppercase;color:var(--muted,#7b7064);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ib-row .sj{font-size:var(--t-sm);color:var(--muted,#7b7064);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.ib-row .sj b{font-weight:500;color:var(--ink-soft,#4a4037)}
.ib-row .pl{display:flex;gap:6px;justify-content:flex-end}
.ib-row time{font-size:var(--t-sm);color:var(--muted,#7b7064);white-space:nowrap;text-align:right}
.ib-row.unread .who,.ib-row.unread .sj b{color:var(--ink,#191410);font-weight:700}.ib-row.unread .av{background:var(--oxblood,#8a2b2b);color:#fff}.ib-row.unread time{color:var(--oxblood,#8a2b2b);font-weight:600}
.ib-empty{padding:40px 16px;text-align:center;color:var(--muted,#7b7064)}
.ib-st{display:inline-block;align-self:center;white-space:nowrap;font:600 var(--t-xs) var(--sans,system-ui);letter-spacing:.03em;text-transform:uppercase;border-radius:99px;padding:3px 9px;background:#ebe5d9;color:#6b625a}.ib-st.open{background:var(--oxblood,#8a2b2b);color:#fff}.ib-st.waiting{background:#e7efe3;color:#3d5a33}.ib-st.snoozed{background:#e8e6f3;color:#4a4580}
/* conversation view */
.ib-bar{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--line,#e2d9c8);background:#fcfaf5;flex-wrap:wrap}
.ib-back{border:1px solid var(--line,#e2d9c8);background:#fff;border-radius:8px;padding:6px 12px;font:500 var(--t-sm) var(--sans,system-ui);color:var(--ink-soft,#4a4037);cursor:pointer}.ib-back:hover{background:#fbf6ea}
.ib-nav{display:flex;gap:4px}.ib-nav button{border:1px solid var(--line,#e2d9c8);background:#fff;border-radius:8px;width:32px;height:32px;cursor:pointer;color:var(--ink-soft,#4a4037)}.ib-nav button:disabled{opacity:.35;cursor:default}
.ib-bar .sp{flex:1}.ib-bar .acts{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.ib-cv{display:grid;grid-template-columns:minmax(0,1fr);flex:1;min-height:0}
.ib-cv.rail{grid-template-columns:minmax(0,1fr) 340px}
.ib-mainc{display:flex;flex-direction:column;min-width:0;min-height:0}
.ib-head{display:flex;align-items:center;gap:14px;padding:14px 22px 12px}
.ib-head .who{display:grid;gap:2px;min-width:0;flex:1}.ib-head h2{margin:0;font:600 1.25rem/1.3 var(--sans,system-ui);overflow-wrap:anywhere}.ib-head .m{font-size:var(--t-sm);color:var(--muted,#7b7064);overflow-wrap:anywhere}
.ib-thread{flex:1;overflow:auto;padding:6px 22px 16px;display:grid;align-content:start;gap:14px;min-height:0}
.ib-m{border:1px solid var(--line,#e2d9c8);border-radius:12px;padding:12px 16px;background:#fff;max-width:min(86ch,100%);box-sizing:border-box}
.ib-m.me{background:#faf5e8;border-color:#eadfc3;justify-self:end}
.ib-m .mh{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:.75rem;color:var(--muted,#7b7064);margin-bottom:6px}.ib-m .mh b{color:var(--ink-soft,#4a4037);font-weight:600;font-size:var(--t-sm)}
.ib-m h3{margin:0 0 4px;font:600 var(--t-sm) var(--sans,system-ui)}.ib-m .bd{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6;font-size:var(--t-sm)}
.ib-ch{font:600 var(--t-xs) var(--sans,system-ui);letter-spacing:.04em;text-transform:uppercase;border-radius:4px;padding:2px 6px;background:#ebe5d9;color:#6b625a}.ib-ch.email{background:#dfe9f5;color:#254a73}
.ib-comp{border-top:1px solid var(--line,#e2d9c8);padding:10px 22px 14px;display:grid;gap:8px;background:#fcfaf5}
.ib-comp .r{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ib-comp label{font-size:.75rem;color:var(--muted,#7b7064)}
.ib-comp select,.ib-comp input{border:1px solid var(--line,#e2d9c8);border-radius:8px;padding:7px 10px;font:inherit;font-size:var(--t-sm);background:#fff;min-width:0;height:34px;box-sizing:border-box}
.ib-comp input.ib-sub{flex:1 1 200px}.ib-comp select,.ib-comp input{margin:0}
.ib-rcpt{position:relative;flex:1 1 260px;min-width:0}.ib-rcpt input{display:block;width:100%}.ib-who{margin:0;font-size:.75rem;color:var(--muted,#7b7064);min-height:1em}.ib-rcpt ul{position:absolute;z-index:20;top:calc(100% + 4px);left:0;right:0;margin:0;padding:4px;list-style:none;background:#fff;border:1px solid var(--line,#e2d9c8);border-radius:10px;box-shadow:0 10px 30px rgba(25,20,16,.14);max-height:280px;overflow:auto}.ib-rcpt li{display:flex;flex-direction:column;gap:1px;padding:8px 10px;border-radius:7px;cursor:pointer;font-size:var(--t-sm)}.ib-rcpt li:hover{background:#f6f1e7}.ib-rcpt li span,.ib-rcpt li.none{color:var(--muted,#7b7064);font-size:.75rem}.ib-rcpt li.none{cursor:default}.ib-rcpt li.none:hover{background:none}
.ib-comp textarea{width:100%;border:1px solid var(--line,#e2d9c8);border-radius:10px;padding:10px 12px;font:inherit;font-size:var(--t-sm);line-height:1.5;resize:vertical;min-height:72px;max-height:34vh;box-sizing:border-box;background:#fff}
.ib-comp .cm{font-size:.75rem;color:var(--muted,#7b7064);flex:1 1 180px;line-height:1.4}
.ib-rail{border-left:1px solid var(--line,#e2d9c8);overflow:auto;padding:16px 18px;display:grid;align-content:start;gap:16px;background:#fdfbf6;min-height:0}
.ib-rail h4,.ib-sheet h4{margin:0 0 6px;font:600 var(--t-xs) var(--sans,system-ui);letter-spacing:.07em;text-transform:uppercase;color:var(--muted,#7b7064)}
.ib-rail p,.ib-sheet p{margin:0 0 4px;font-size:var(--t-sm);line-height:1.5;overflow-wrap:anywhere}
.ib-rail .ix-box,.ib-sheet .ix-box{max-width:none;margin:0;padding:10px 12px;background:#fff}.ib-rail .ix-form input,.ib-rail .ix-form select,.ib-sheet .ix-form input,.ib-sheet .ix-form select{width:100%;box-sizing:border-box}
.ib-id{display:flex;gap:12px;align-items:center}.ib-id .av{width:44px;height:44px}.ib-id b{display:block;font-size:var(--t-sm)}.ib-id span{font-size:var(--t-sm);color:var(--muted,#7b7064);overflow-wrap:anywhere}
.ib-body{padding:6px 22px 20px;overflow:auto;min-height:0;display:grid;gap:12px;align-content:start;flex:1}
.ib-pick{margin:80px auto;text-align:center;color:var(--muted,#7b7064)}
.ib-overlay{position:fixed;inset:0;background:rgba(25,20,16,.35);z-index:60;display:none}.ib-overlay.on{display:block}
.ib-sheet{position:fixed;top:0;right:0;bottom:0;width:min(380px,92vw);background:#fdfbf6;z-index:61;overflow:auto;padding:16px;display:none;box-shadow:-8px 0 30px rgba(0,0,0,.15)}.ib-sheet.on{display:grid;gap:14px;align-content:start}
.ib-body .ib-m{max-width:78ch}
@media(max-width:1100px){.ib-cv.rail{grid-template-columns:minmax(0,1fr)}}
@media(max-width:860px){
  .ib{height:calc(100vh - 190px);border-radius:10px}
  .ib-row,.ib-row.nock{grid-template-columns:34px minmax(0,1fr) auto;row-gap:2px;padding:10px 12px}.ib-row input[type=checkbox]{display:none}
  .ib-row .nm{grid-column:2}.ib-row .sj{grid-column:2;grid-row:2}.ib-row .pl{display:none}.ib-row time{grid-column:3;grid-row:1}.ib-row .av{grid-row:1/3}
  .ib-head,.ib-thread,.ib-comp,.ib-body{padding-left:14px;padding-right:14px}
}

/* Flowbite pattern: the inbox runs edge to edge, no page title above it, an icon toolbar with paging, full-width rows */
body.ib-full .pg-head{display:none}
body.ib-full .ax-main>main,body.ib-full main{padding:0!important}
body.ib-full .ib{border:0;border-radius:0;height:calc(100vh - 118px);min-height:420px}
.ib-icons{display:flex;gap:2px}.ib-icons button{border:0;background:none;width:34px;height:34px;border-radius:8px;color:var(--ink-soft,#4a4037);cursor:pointer;display:grid;place-items:center}.ib-icons button:hover{background:#f1e8d3;color:var(--ink,#191410)}
.ib-count b{color:var(--ink,#191410);font-weight:600}
.ib-row.adm{grid-template-columns:18px minmax(150px,240px) minmax(0,1fr) auto 100px;padding:12px 18px;column-gap:18px}
.ib-row.adm .who{font-size:var(--t-sm)}.ib-row.adm .sj{font-size:var(--t-sm)}
.ib-row.unread{box-shadow:inset 3px 0 0 var(--oxblood,#8a2b2b)}
.ib-row.adm.unread .sj{color:var(--ink,#191410)}
@media(max-width:860px){body.ib-full .ib{height:calc(100vh - 130px)}.ib-row.adm{grid-template-columns:minmax(0,1fr) auto;padding:10px 14px}.ib-row.adm .nm{grid-column:1}.ib-row.adm .sj{grid-column:1;grid-row:2}.ib-row.adm time{grid-column:2;grid-row:1}.ib-row.adm .pl{display:none}}
/* conversation = an email reading view (Flowbite): title, messages as plain blocks, the reply box at the end of the page */
.ib-tools .ib-back{border:0;background:none;width:34px;height:34px;display:grid;place-items:center;padding:0;border-radius:8px;color:var(--ink-soft,#4a4037)}.ib-tools .ib-back:hover{background:#f1e8d3}
.ib-tools .sx-btn,.ib-tools .ax-btn{height:34px}
.ib-scroll{flex:1;overflow:auto;min-height:0;padding:0 32px 36px;background:#fff}
.ib-title{display:flex;align-items:center;gap:12px;padding:24px 0 16px;border-bottom:1px solid var(--line,#e2d9c8);flex-wrap:wrap}.ib-title h1{margin:0;font:500 var(--t-xl)/1.3 var(--sans,system-ui);overflow-wrap:anywhere}
.ib-msg{display:grid;grid-template-columns:42px minmax(0,1fr);column-gap:14px;padding:20px 0;border-bottom:1px solid var(--line2,#efe8da)}
.ib-msg .av{width:42px;height:42px;border-radius:50%;background:#efe5cf;display:grid;place-items:center;font:600 var(--t-sm) var(--sans,system-ui);align-self:start}.ib-msg.me .av{background:var(--oxblood,#8a2b2b);color:#fff}
.ib-msg .mh{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;min-width:0}.ib-msg .mh b{display:block;font-size:var(--t-sm)}.ib-msg .mh .to{display:block;font-size:var(--t-sm);color:var(--muted,#7b7064)}.ib-msg .mh .dt{font-size:var(--t-sm);color:var(--muted,#7b7064);white-space:nowrap}
.ib-msg h3{grid-column:1/-1;margin:16px 0 0;font:600 1rem var(--sans,system-ui)}
.ib-msg .bd{grid-column:1/-1;margin-top:14px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;font-size:1rem;max-width:100ch}
.ib-appbody{padding:16px 0;display:grid;gap:12px}
.ib-comp{margin-top:26px;border:1px solid var(--line,#e2d9c8);border-radius:12px;padding:14px 16px 16px;background:#fcfaf5;display:grid;gap:10px}
.ib-comp .to{font-size:var(--t-sm);color:var(--muted,#7b7064);overflow-wrap:anywhere}
.ib-comp textarea{min-height:150px;max-height:none;border-radius:10px}
.ib-act.lg{padding:9px 18px;font-size:var(--t-sm);font-weight:600;border-radius:9px}
.ib-cv.rail{grid-template-columns:minmax(0,1fr) 320px}
@media(max-width:1200px){.ib-cv.rail{grid-template-columns:minmax(0,1fr)}}
@media(max-width:860px){.ib-scroll{padding:0 14px 28px}.ib-title h1{font-size:1.125rem}.ib-msg{grid-template-columns:34px minmax(0,1fr);column-gap:10px}.ib-msg .av{width:34px;height:34px}}
.ib-act.sage{border-color:#d9cbe8;background:#f6f1fb;color:#4a3a73}.ib-act.sage:hover{background:#ede4f8}
.ib-row.nock{grid-template-columns:34px minmax(150px,240px) minmax(0,1fr) auto 100px;padding:12px 18px;column-gap:18px}
.ib-row.nock .who{font-size:var(--t-sm)}.ib-row.nock .sj{font-size:var(--t-sm)}.ib-row.nock .nm{grid-auto-rows:auto}
body.ib-full-portal .ax-main>main{padding:0!important}
.ib-msg .av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.ib-msg .av{position:relative;overflow:hidden}
.ib-rail .ax-btn{width:100%;text-align:center;box-sizing:border-box}
@media(max-width:860px){.ib-row.nock{grid-template-columns:34px minmax(0,1fr) auto;padding:10px 14px}.ib-row.nock .nm{grid-column:2}.ib-row.nock .sj{grid-column:2;grid-row:2}.ib-row.nock .pl{display:none}.ib-row.nock time{grid-column:3;grid-row:1}.ib-row.nock .av{grid-row:1/3}}
body.ib-portal .ax-main>main{padding:0!important}body.ib-portal .ax-bc{display:none!important}
body.ib-portal .ib{border:0;border-radius:0;height:calc(100vh - 168px)}

/* files on messages */
.ib-files{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.ib-attrow .ib-files{margin:0;flex:1}
.ib-file{display:inline-flex;align-items:center;gap:8px;max-width:100%;border:1px solid var(--line,#e2d9c8);background:#fff;border-radius:9px;padding:6px 10px;font-size:var(--t-sm);color:var(--ink,#191410);text-decoration:none}
a.ib-file:hover{background:#fbf6ea}.ib-file .ic{color:var(--oxblood,#8a2b2b)}.ib-file b{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}.ib-file i{font-style:normal;color:var(--muted,#7b7064);font-size:var(--t-xs)}
.ib-file.pend{background:#faf5e8}.ib-file button{border:0;background:none;color:var(--muted,#7b7064);cursor:pointer;font-size:1rem;line-height:1;padding:0 2px}.ib-embed{font-size:var(--t-xs);color:var(--muted,#7b7064);display:flex;align-items:center;gap:6px}
/* read vs unread: light touch. Unread = a small dot, a darker name and subject, a white row. Read = a faint tint and muted text. Same scale tokens as the rest of the app. */
.ib-row{background:#fbf9f4}
.ib-row .who,.ib-row .sj,.ib-row .sj b{font-weight:400;color:var(--muted,#7b7064)}
.ib-row:hover{background:#f6efdd}.ib-row[aria-current=true]{background:#f4ead3}.ib-row.sel{background:#fbf3df}
.ib-row.unread{background:#fff;box-shadow:none}
.ib-row.unread .who{font-weight:600;color:var(--ink,#191410)}
.ib-row.unread .sj{color:var(--ink-soft,#4a4037)}.ib-row.unread .sj b{font-weight:500;color:var(--ink,#191410)}
.ib-row.unread .who::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--oxblood,#8a2b2b);margin-right:8px;vertical-align:1px}
.ib-row.unread .av{background:#efe5cf;color:var(--ink,#191410)}
.ib-row.unread time{color:var(--ink-soft,#4a4037);font-weight:500}
.ib-row.unread:hover{background:#fbf6ea}
.ib-row .tag{font-weight:500;letter-spacing:.02em}
.ib-st{font-weight:500}
body.ib-portal #v-inbox{padding:0}
body.ib-portal .ib{height:calc(100dvh - 60px - var(--ftr,52px))}

/* monthly briefing reader: kicker, meta line, "In brief" call-out, sources as site names, contents, annual timeline (same scale tokens as the rest of the app) */
.br-read .br-kicker{margin:0 0 6px;font:600 var(--t-xs) var(--sans,system-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--oxblood,#8a2b2b)}
.br-read h2{font-size:var(--t-2xl);line-height:1.2;margin:0 0 10px}
.br-read .br-meta{display:flex;flex-wrap:wrap;gap:4px 16px;margin:0 0 4px;font-size:var(--t-sm);color:var(--muted,#7b7064)}
.br-read .br-brief{margin:20px 0 6px;padding:14px 18px;border-left:3px solid var(--oxblood,#8a2b2b);background:#faf5e8;border-radius:0 8px 8px 0}
.br-read .br-brief h3{margin:0 0 6px;font:600 var(--t-xs) var(--sans,system-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--oxblood,#8a2b2b)}
.br-read .br-brief p{margin:0 0 8px;font-size:var(--t-base);line-height:1.6}.br-read .br-brief p:last-child{margin:0}
.br-item h3,.br-tl h3{font-size:var(--t-lg);line-height:1.3}
.br-src{display:flex;flex-wrap:wrap;gap:2px 12px;margin-top:6px;font-size:var(--t-sm);color:var(--muted,#7b7064)}.br-src .lb{font:600 var(--t-xs) var(--sans,system-ui);letter-spacing:.08em;text-transform:uppercase}.br-src a{color:var(--oxblood,#8a2b2b)}
.br-sech{margin:30px 0 4px!important;font-size:var(--t-xl)!important}.br-note{margin:0 0 6px;font-size:var(--t-sm);color:var(--muted,#7b7064)}
.br-timeline{display:grid}
.br-tl{display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;padding:20px 0;border-top:1px solid var(--line,#e2d9c8)}
.br-tl .when{font:600 var(--t-sm) var(--sans,system-ui);color:#8a5a14}.br-tl p{max-width:68ch}
.br-disc{margin:26px 0 0!important;padding-top:14px;border-top:1px solid var(--line,#e2d9c8);font-size:var(--t-sm)!important;color:var(--muted,#7b7064)}
.br-toc ol{margin:0;padding-left:18px;display:grid;gap:6px;font-size:var(--t-sm)}.br-toc a{color:inherit;text-decoration:none}.br-toc a:hover{color:var(--oxblood,#8a2b2b);text-decoration:underline}
@media(max-width:640px){.br-tl{grid-template-columns:minmax(0,1fr);gap:6px}}
.br-read .br-item h3,.br-read .br-tl h3{text-transform:none;letter-spacing:0;font-weight:600;color:var(--ink,#191410)}

/* briefing archive tree: year > quarter > months */
.br-arch .br-g{display:block}
.br-gh{display:flex;align-items:center;gap:8px;width:100%;border:0;background:none;padding:8px 6px;cursor:pointer;font:600 var(--t-sm) var(--sans,system-ui);color:var(--ink,#191410);text-align:left;border-radius:8px}
.br-gh:hover{background:#f6efdd}.br-g.l2>.br-gh{font-weight:500;color:var(--ink-soft,#4a4037);padding-left:12px}
.br-gh .chev{width:8px;height:8px;border-right:2px solid var(--muted,#7b7064);border-bottom:2px solid var(--muted,#7b7064);transform:rotate(-45deg);transition:transform .15s;flex:none;margin:0 2px 0 2px}
.br-gh[aria-expanded=true] .chev{transform:rotate(45deg)}
.br-gh .lb{flex:1}.br-gh .ax-pill{margin-left:auto}
.br-gb{padding-left:10px;border-left:1px solid var(--line,#e2d9c8);margin-left:10px}.br-g.l2>.br-gb{margin-left:14px}
.br-gb[hidden]{display:none}
.br-arch .br-issue{width:100%}
.br-read .br-withdrawn{margin:0 0 14px;padding:12px 16px;border:1px solid #e6c9c4;background:#fbeeec;border-radius:10px;font-size:var(--t-sm);line-height:1.5;color:#7a2b22}.br-read .br-withdrawn b{font-weight:700}

/* briefing reader: use the width. When the card is wide enough (container query, not the window), each item = a title column (sticks while you read the item) + a text column that fills the card; the "In brief" call-out always runs the full width. */
.br-read{container-type:inline-size}
.br-read .br-brief p{max-width:none}
@container (min-width: 880px){
  .br-item{display:grid;grid-template-columns:minmax(200px,290px) minmax(0,1fr);column-gap:36px;align-items:start}
  .br-item>h3{grid-column:1;grid-row:1/span 40;position:sticky;top:14px;margin:2px 0 0;padding-right:4px}
  .br-item>*:not(h3){grid-column:2}
  .br-item p,.br-tl p{max-width:86ch}
  .br-tl{grid-template-columns:minmax(150px,210px) minmax(0,1fr);column-gap:36px}
}
.br-read .br-img{max-width:100%}
.ib-act.icon{width:38px;height:38px;padding:0;display:inline-grid;place-items:center;border-radius:9px}
.br-read .br-disc{max-width:none}

/* sample-data preview: plan switch in the banner */
.ax-planswitch{margin-left:10px;font-size:var(--t-sm)}.ax-planswitch a{color:#fff;opacity:.75;margin:0 6px;text-decoration:none;padding:2px 8px;border-radius:99px}.ax-planswitch a:hover{opacity:1}.ax-planswitch a.on{opacity:1;background:rgba(255,255,255,.2);font-weight:600}

/* message layout fixes: the file chips span the whole message (they had landed in the avatar column), the header lines share one centre line with the avatar, the avatar is exactly the column width */
.ib-msg .ib-files{grid-column:1/-1;margin-top:14px}
.ib-msg .av{width:42px;height:42px;justify-self:start;align-self:start;margin:0}
.ib-msg .av img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.ib-msg .mh{align-self:stretch;align-items:center;min-height:42px;margin-bottom:0}
.ib-msg .mh .to,.ib-msg .mh b{line-height:1.35}.ib-msg .mh .dt{display:flex;align-items:center;gap:8px;line-height:1.35}
.ib-file .ic{display:inline-grid;place-items:center;width:20px;height:20px;color:var(--oxblood,#8a2b2b)}
.ib-file{flex:0 1 auto;min-width:0}.ib-file b{min-width:0;flex:0 1 auto}

/* sidebar control (desktop): Expanded | Collapsed (64 px icon rail) | Expand on hover (the sidebar opens and pushes the page over while the pointer is on the rail). One click on the icon (always left of the avatar) moves to the next state. */
.ax-collapse{flex:none;width:32px;height:32px;display:inline-grid;place-items:center;border:0;background:none;border-radius:8px;color:var(--muted,#7b7064);cursor:pointer;margin-right:2px}
.ax-collapse:hover{background:#f1ebdd;color:var(--ink,#191410)}
.ax-collapse:focus-visible{outline:2px solid var(--oxblood,#8a2b2b);outline-offset:2px}
.ax{transition:grid-template-columns .18s ease}
@media(prefers-reduced-motion:reduce){.ax{transition:none}}
@media(max-width:860px){.ax-collapse{display:none!important}}
@media(min-width:861px){
  .ax.collapsed{grid-template-columns:64px minmax(0,1fr)}
  .ax.collapsed .ax-main{grid-column:2}
  .ax.collapsed .ax-side{padding-left:8px;padding-right:8px;overflow:visible}
  .ax.collapsed .ax-foot{left:64px}
  .ax.collapsed.sx-open{grid-template-columns:64px minmax(0,1fr) var(--sxw,26rem)}
  .ax.collapsed:not(.peek) .ax-side .ax-brand{font-size:0;padding-left:0;margin-left:-8px;margin-right:-8px;justify-content:center}
  .ax.collapsed:not(.peek) .ax-side .ax-brand::before{content:"E";font:600 1.5rem var(--serif,Georgia,serif);color:var(--ink,#191410)}
  .ax.collapsed:not(.peek) .ax-brand i,.ax.collapsed:not(.peek) .ax-brand small{display:none}
  .ax.collapsed:not(.peek) .ax-qs,.ax.collapsed:not(.peek) .ax-nav h6,.ax.collapsed:not(.peek) .ax-mlinks,.ax.collapsed:not(.peek) .ax-sub,.ax.collapsed:not(.peek) .ax-subnav{display:none!important}
  .ax.collapsed:not(.peek) .ax-nav{overflow-x:hidden}
  .ax.collapsed:not(.peek) .ax-link{justify-content:center;gap:0;padding:11px 0;position:relative}
  .ax.collapsed:not(.peek) .ax-link>span:not(.ax-pill),.ax.collapsed:not(.peek) .ax-link .chev,.ax.collapsed:not(.peek) .ax-link>svg.chev{display:none}
  .ax.collapsed:not(.peek) .ax-link .ax-pill{position:absolute;top:6px;right:10px;margin:0;min-width:9px;width:9px;height:9px;padding:0;font-size:0;border-radius:50%}
  .ax.collapsed:not(.peek) .ax-user{flex-direction:row;flex-wrap:nowrap;justify-content:center;gap:0;padding:0 3px;margin-left:-8px;margin-right:-8px}   /* the icon stays left of the avatar, in the 64 px rail too */
  .ax.collapsed:not(.peek) .ax-collapse{width:26px;height:30px;margin:0}
  .ax.collapsed:not(.peek) .ax-av{width:32px;height:32px;font-size:var(--t-xs)}
  .ax.collapsed:not(.peek) .ax-userlink{justify-content:center;flex:none;width:auto;padding:0;margin:0 0 0 2px}
  .ax.collapsed:not(.peek) .ax-who,.ax.collapsed:not(.peek) .ax-userlink .chev2{display:none}
  .ax.collapsed:not(.peek) .ax-menu{position:fixed;left:72px;right:auto;bottom:12px;width:260px}
  .ax.collapsed:not(.peek) .ax-switch{display:none}
  /* Expand on hover: the sidebar opens to 248 px and the page moves over (it is never covered) while the pointer is on the rail */
  .ax.collapsed.peek{grid-template-columns:248px minmax(0,1fr)}
  .ax.collapsed.peek .ax-side{padding-left:12px;padding-right:12px}
  .ax.collapsed.peek .ax-foot{left:248px}
  .ax.collapsed.peek.sx-open{grid-template-columns:248px minmax(0,1fr) var(--sxw,26rem)}
}

/* instant, readable tooltips for the inbox icons and the sidebar control (the native title tooltip is slow and easy to miss) */
[data-tip]{position:relative}
[data-tip]:hover::after,[data-tip]:focus-visible::after{content:attr(data-tip);position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);z-index:90;white-space:nowrap;background:#191410;color:#fff;font:500 var(--t-xs) var(--sans,system-ui);padding:6px 10px;border-radius:7px;box-shadow:0 6px 20px rgba(25,20,16,.25);pointer-events:none}
[data-tip]:hover::before,[data-tip]:focus-visible::before{content:"";position:absolute;top:calc(100% + 3px);left:50%;transform:translateX(-50%);z-index:91;border:5px solid transparent;border-top:0;border-bottom-color:#191410;pointer-events:none}
.ib-tools .ib-chk[data-tip]::after,.ib-tools .ib-back[data-tip]::after{left:0;transform:none}
.ib-tools .ib-chk[data-tip]::before,.ib-tools .ib-back[data-tip]::before{left:12px;transform:none}
.ib-nav [data-tip]::after{left:auto;right:0;transform:none}.ib-nav [data-tip]::before{left:auto;right:12px;transform:none}
.ib-nav [data-tip][disabled]::after,.ib-nav [data-tip][disabled]::before{display:none}
.ib-comp [data-tip]::after{top:auto;bottom:calc(100% + 8px)}.ib-comp [data-tip]::before{top:auto;bottom:calc(100% + 3px);border-bottom:0;border-top:5px solid #191410;border-bottom-color:transparent}
.ax-collapse[data-tip]::after{top:auto;bottom:calc(100% + 8px);left:0;transform:none}.ax-collapse[data-tip]::before{top:auto;bottom:calc(100% + 3px);left:12px;transform:none;border-bottom:0;border-top:5px solid #191410;border-bottom-color:transparent}

/* header icons sit at the right edge: their tooltips open leftwards so they are never cut off */
.ax-top [data-tip]::after{left:auto;right:-6px;transform:none}.ax-top [data-tip]::before{left:auto;right:10px;transform:none}
.ax-top .ax-bell[aria-expanded=true]::after,.ax-top .ax-bell[aria-expanded=true]::before,.ax-top .sx-btn[aria-pressed=true]::after,.ax-top .sx-btn[aria-pressed=true]::before{display:none}

/* business metrics (Admin) */
.mx{display:grid;gap:18px;max-width:1280px}
.mx-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}.mx-top h2{margin:0 0 4px;font:600 var(--t-xl) var(--sans,system-ui)}.mx-top .s{margin:0;color:var(--muted,#7b7064);font-size:var(--t-sm)}.mx-act{display:flex;gap:8px}
.mx-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.mx-kpi{background:#fff;border:1px solid var(--line,#e2d9c8);border-radius:12px;padding:14px 16px;display:grid;gap:3px}.mx-kpi .l{font-size:var(--t-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted,#7b7064);font-weight:600}.mx-kpi b{font:600 1.5rem var(--sans,system-ui);letter-spacing:-.01em}.mx-kpi .s{font-size:var(--t-xs);color:var(--muted,#7b7064)}
.mx-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:16px}
.mx-card{background:#fff;border:1px solid var(--line,#e2d9c8);border-radius:12px;padding:18px 20px}.mx-card h3{margin:0 0 6px;font:600 var(--t-base) var(--sans,system-ui)}.mx-card>.s{margin:0 0 10px;color:var(--muted,#7b7064);font-size:var(--t-sm)}
.mx-dl{display:grid;grid-template-columns:minmax(150px,1fr) auto;gap:0;margin:8px 0 0}.mx-dl dt,.mx-dl dd{margin:0;padding:8px 0;border-top:1px solid var(--line2,#efe8da);font-size:var(--t-sm)}.mx-dl dt{color:var(--ink-soft,#4a4037)}.mx-dl dd{text-align:right;font-weight:600}.mx-dl dd .s{font-weight:400;color:var(--muted,#7b7064);font-size:var(--t-xs);margin-left:6px}
.mx-funnel{display:grid;gap:8px}.mx-funnel .row{display:grid;grid-template-columns:minmax(180px,260px) minmax(120px,1fr) 56px minmax(150px,260px);gap:12px;align-items:center;font-size:var(--t-sm)}
.mx-funnel .bar{height:12px;background:#f1ebdd;border-radius:99px;overflow:hidden}.mx-funnel .bar .fill{display:block;height:12px;background:var(--oxblood,#8a2b2b);border-radius:99px}.mx-funnel b{text-align:right}.mx-funnel .cv{color:var(--muted,#7b7064);font-size:var(--t-xs)}
.mx-t{width:100%;border-collapse:collapse;font-size:var(--t-sm)}.mx-t th,.mx-t td{padding:8px 6px;border-top:1px solid var(--line2,#efe8da);text-align:right}.mx-t th:first-child,.mx-t td:first-child{text-align:left}.mx-t th{font-size:var(--t-xs);letter-spacing:.05em;text-transform:uppercase;color:var(--muted,#7b7064);border-top:0}
.mx-trends{display:grid;gap:0}.mx-tr{display:grid;grid-template-columns:minmax(150px,1fr) 130px 120px minmax(120px,1fr);gap:12px;align-items:center;padding:9px 0;border-top:1px solid var(--line2,#efe8da);font-size:var(--t-sm)}.mx-tr:first-child{border-top:0}.mx-tr b{text-align:right}.mx-tr .s,.mx-nohist{color:var(--muted,#7b7064);font-size:var(--t-xs)}
.mx-defs{margin:6px 0 0;padding-left:18px;display:grid;gap:7px;font-size:var(--t-sm);color:var(--ink-soft,#4a4037)}
@media(max-width:860px){.mx-grid{grid-template-columns:minmax(0,1fr)}.mx-funnel .row{grid-template-columns:minmax(0,1fr) 56px}.mx-funnel .row .bar,.mx-funnel .row .cv{grid-column:1/-1}.mx-tr{grid-template-columns:minmax(0,1fr) auto}.mx-tr .sp,.mx-tr .s{display:none}}

/* ---------- Partners overview: list | partner | details rail, edge to edge ---------- */
.pv-wrap{display:flex;flex-direction:column;background:#fff}
.pv-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;padding:12px 18px;background:#faf6ec;border-bottom:1px solid var(--line,#e2d9c8)}
.pv-seg{display:inline-flex;gap:2px;padding:3px;background:#efe8d8;border-radius:10px;max-width:100%;overflow-x:auto}
.pv-tab{border:0;background:none;border-radius:8px;padding:6px 13px;font:inherit;font-size:var(--t-sm,.875rem);font-weight:500;color:var(--muted,#7b7064);cursor:pointer;white-space:nowrap}.pv-tab i{font-style:normal;margin-left:4px;color:#a09585;font-variant-numeric:tabular-nums}.pv-tab:hover{color:var(--ink,#191410)}
.pv-tab[aria-selected=true]{background:#fff;color:var(--ink,#191410);font-weight:600;box-shadow:0 1px 2px rgba(25,20,16,.14)}.pv-tab[aria-selected=true] i{color:var(--accent,#8a2b2b)}
.pv-sw{display:flex;align-items:center;gap:12px;flex:0 1 360px;min-width:220px}.pv-sw .pv-search{flex:1}
.pv-pg{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 18px;border-top:1px solid var(--line,#e2d9c8);background:#fcfaf5;font-size:.8125rem;color:var(--muted,#7b7064)}.pv-pn{display:flex;gap:4px}.pv-pn button{width:30px;height:28px;border:1px solid var(--line,#e2d9c8);background:#fff;border-radius:7px;cursor:pointer;font:inherit}.pv-pn button:disabled{opacity:.4;cursor:default}
.pv{display:grid;grid-template-columns:minmax(250px,310px) minmax(0,1fr);height:calc(100vh - 58px - 59px);background:#fff;min-height:420px}
.pv-list{display:flex;flex-direction:column;min-width:0;min-height:0;border-right:1px solid var(--line,#e2d9c8);background:#fcfaf5}
.pv-top{display:flex;align-items:baseline;gap:10px;padding:16px 18px 6px}.pv-top h1{font:600 1.25rem var(--sans,system-ui);letter-spacing:-.015em;margin:0}.pv-n{color:var(--muted,#7b7064);font-size:var(--t-sm,.875rem)}
.pv-bar{display:grid;gap:10px;padding:8px 18px 12px;border-bottom:1px solid var(--line,#e2d9c8)}
.pv-search{width:100%;border:1px solid var(--line,#e2d9c8);border-radius:8px;padding:0 12px;height:36px;font:inherit;font-size:var(--t-sm,.875rem);background:#fff;margin:0}
.pv-chips{display:flex;flex-wrap:wrap;gap:6px}.pv-chip{border:1px solid var(--line,#e2d9c8);background:#fff;border-radius:99px;padding:3px 10px;font:inherit;font-size:.8125rem;color:var(--ink2,#4a4037);cursor:pointer}.pv-chip i{font-style:normal;color:var(--muted,#7b7064);margin-left:2px}
.pv-chip[aria-pressed=true]{background:var(--ink,#191410);border-color:var(--ink,#191410);color:#fff}.pv-chip[aria-pressed=true] i{color:#d9d0bf}
.pv-rows{overflow:auto;min-height:0;flex:1}
.pv-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:2px 12px;align-items:center;width:100%;text-align:left;padding:12px 18px;border:0;border-bottom:1px solid var(--line2,#efe8da);background:none;cursor:pointer;font:inherit}
.pv-row:hover{background:#f7f1e4}.pv-row[aria-current=true]{background:#f4ead3;box-shadow:inset 3px 0 0 var(--accent,#8a2b2b)}
.pv-rt{display:grid;gap:1px;min-width:0}.pv-rt .n{font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.3}.pv-rt .s,.pv-rs .s{color:var(--muted,#7b7064);font-size:.8125rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv-rs{display:grid;justify-items:end;gap:2px;max-width:120px}.pv-warn{color:#8a5a00}
.pv-av{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#efe6d3;color:#5b4a2e;font:600 .8125rem var(--sans,system-ui);letter-spacing:.02em}.pv-av.lg{width:52px;height:52px;border-radius:13px;font-size:1rem}
.pv-main{display:grid;grid-template-columns:minmax(0,1fr) 320px;min-width:0;min-height:0;overflow:hidden}
.pv-blank{grid-column:1/-1;display:grid;align-content:center;justify-items:center;gap:6px;text-align:center;color:var(--muted,#7b7064);padding:40px}.pv-blank b{color:var(--ink,#191410);font-size:1.0625rem}.pv-blank span{max-width:44ch;font-size:var(--t-sm,.875rem)}
.pv-doc{overflow:auto;min-width:0;min-height:0;padding:0 28px 40px}
.pv-h{display:flex;align-items:center;gap:16px;padding:22px 0 14px;flex-wrap:wrap}.pv-ht{flex:1;min-width:220px}.pv-ht h2{font:600 1.375rem var(--sans,system-ui);letter-spacing:-.02em;margin:0 0 4px}.pv-ht h2 small{font-weight:400;color:var(--muted,#7b7064);font-size:.9em}.pv-ht p{margin:0;color:var(--muted,#7b7064);font-size:var(--t-sm,.875rem);display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.pv-ha{display:flex;gap:8px}
.pv-decide{display:flex;gap:14px 20px;flex-wrap:wrap;align-items:center;justify-content:space-between;background:#faf0d6;border:1px solid #ecd9a4;border-radius:12px;padding:14px 16px;margin:4px 0 8px}.pv-decide b{display:block;margin-bottom:2px}.pv-decide p{margin:0 0 4px;font-size:var(--t-sm,.875rem);color:var(--ink2,#4a4037);max-width:62ch}.pv-da{display:flex;gap:8px;flex-wrap:wrap}.pv-da .btn small{font-weight:500;opacity:.8}
.pv-decide.dec{align-items:flex-start}.pv-decide.dec .dc-main{flex:1 1 420px;min-width:0}.dc-list{list-style:none;margin:8px 0;padding:0;display:grid;gap:5px}.dc-list li{display:grid;grid-template-columns:18px 1fr;gap:8px;font-size:var(--t-sm,.875rem);line-height:1.4}.dc-list li b{display:inline;margin:0 4px 0 0}.dc-i{font-weight:700;text-align:center}.st-ok .dc-i{color:#1f7a45}.st-warn .dc-i{color:#a06a00}.st-block .dc-i{color:#b3261e}.dc-auto{margin-top:8px!important}.linkb{all:unset;cursor:pointer;color:var(--accent,#8a2b2b);text-decoration:underline;font-size:inherit}.linkb:focus-visible{outline:2px solid var(--accent,#8a2b2b);outline-offset:2px}
.pv-tabs{display:flex;gap:2px;border-bottom:1px solid var(--line,#e2d9c8);margin:12px 0 4px;overflow-x:auto;position:sticky;top:0;background:#fff;z-index:2}
.pv-tabs button{border:0;background:none;padding:10px 14px;font:inherit;font-size:var(--t-sm,.875rem);font-weight:500;color:var(--muted,#7b7064);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.pv-tabs button:hover{color:var(--ink,#191410)}.pv-tabs button[aria-selected=true]{color:var(--ink,#191410);border-bottom-color:var(--accent,#8a2b2b);font-weight:600}
.pv-panel{max-width:860px}.pv-note{color:var(--muted,#7b7064);font-size:var(--t-sm,.875rem);margin-top:18px}
.pv-rail{border-left:1px solid var(--line,#e2d9c8);overflow:auto;padding:20px 20px 32px;display:grid;align-content:start;gap:22px;background:#fdfbf6;min-height:0}
.pv-rail h4{font:600 .6875rem var(--sans,system-ui);text-transform:uppercase;letter-spacing:.09em;color:var(--muted,#7b7064);margin:0 0 8px}
.pv-steps{list-style:none;margin:0;padding:0;display:grid;gap:0}.pv-steps li{position:relative;display:grid;grid-template-columns:14px 1fr;column-gap:10px;padding-bottom:12px;font-size:var(--t-sm,.875rem)}
.pv-steps li:not(:last-child)::before{content:"";position:absolute;left:6px;top:14px;bottom:0;width:2px;background:var(--line,#e2d9c8)}.pv-steps li.on:not(:last-child)::before{background:var(--ok,#2f6b45)}
.pv-steps .d{width:14px;height:14px;border-radius:50%;border:2px solid var(--line,#e2d9c8);background:#fff;margin-top:2px}.pv-steps li.on .d{background:var(--ok,#2f6b45);border-color:var(--ok,#2f6b45)}
.pv-steps .l{font-weight:600}.pv-steps li:not(.on) .l{color:var(--muted,#7b7064);font-weight:500}.pv-steps .t{grid-column:2;color:var(--muted,#7b7064);font-size:.8125rem;font-variant-numeric:tabular-nums}
.pv-who{display:grid;justify-items:start;margin:0 0 2px}.pv-who span{color:var(--muted,#7b7064);font-size:.8125rem}.pv-mail{margin:0 0 10px;font-size:var(--t-sm,.875rem);overflow-wrap:anywhere}
.pv-dl{display:grid;grid-template-columns:minmax(80px,auto) 1fr;gap:6px 12px;margin:0;font-size:var(--t-sm,.875rem)}.pv-dl dt{color:var(--muted,#7b7064)}.pv-dl dd{margin:0;overflow-wrap:anywhere}
.pv-links{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:var(--t-sm,.875rem)}.pv-links a{color:var(--accent,#8a2b2b)}
body.ib-full .pv .pill{font-size:.75rem}
@media(max-width:1200px){.pv-main{grid-template-columns:minmax(0,1fr)}.pv-rail{display:none}}
@media(max-width:860px){.pv{grid-template-columns:1fr;height:auto}.pv-list{max-height:48vh;border-right:0;border-bottom:1px solid var(--line,#e2d9c8)}.pv-main{overflow:visible}.pv-doc{overflow:visible;padding:0 16px 32px}}

/* ---------- Overview tables (Partners, Clients) ---------- */
.ot{margin:0;padding:0}
.ot-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px 24px;flex-wrap:wrap;margin-bottom:22px}.ot-head h1{font:600 1.625rem var(--sans,system-ui);letter-spacing:-.02em;margin:0 0 4px}.ot-head p{margin:0;color:var(--muted,#7b7064);font-size:var(--t-sm,.875rem);max-width:62ch}
.ot-ha{display:flex;gap:8px;flex-wrap:wrap}.ot-ha .btn{display:inline-flex;align-items:center;gap:8px}.ot-bn{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:99px;background:var(--accent,#8a2b2b);color:#fff;font-size:.75rem;padding:0 6px}
.ot-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:22px}.ot-stat{background:#fff;border:1px solid var(--line,#e2d9c8);border-radius:12px;padding:12px 16px;display:grid;gap:2px}.ot-stat span{color:var(--muted,#7b7064);font-size:.8125rem}.ot-stat b{font:600 1.5rem var(--sans,system-ui);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.ot-bar{display:flex;gap:10px;margin-bottom:14px}.ot-search{flex:1;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line,#e2d9c8);border-radius:10px;padding:0 14px;height:42px;color:var(--muted,#7b7064)}.ot-search:focus-within{border-color:var(--ink,#191410)}.ot-search input{flex:1;border:0;outline:0;background:none;font:inherit;font-size:var(--t-sm,.875rem);color:var(--ink,#191410);margin:0;min-width:0;height:100%}
.ot-bar select{height:42px;border:1px solid var(--line,#e2d9c8);border-radius:10px;background:#fff;padding:0 12px;font:inherit;font-size:var(--t-sm,.875rem);margin:0}
.ot-wrap{background:#fff;border:1px solid var(--line,#e2d9c8);border-radius:12px;overflow-x:auto}
.ot .ot-t{width:100%;border-collapse:collapse;font-size:var(--t-sm,.875rem);margin:0;border:0;border-radius:0;background:none}.ot .ot-t th{text-align:left;font-weight:500;color:var(--muted,#7b7064);border-bottom:1px solid var(--line,#e2d9c8);padding:0 16px;white-space:nowrap}.ot .ot-t th button{all:unset;cursor:pointer;display:inline-flex;gap:4px;align-items:center;padding:13px 0;box-sizing:border-box}.ot .ot-t th button:hover{color:var(--ink,#191410)}.ot .ot-t th[aria-sort=ascending] button,.ot .ot-t th[aria-sort=descending] button{color:var(--ink,#191410)}.ot .ot-t th i{font-style:normal;width:10px}
.ot .ot-t td{padding:12px 16px;border-bottom:1px solid var(--line2,#efe8da);vertical-align:middle}.ot .ot-t tbody tr:last-child td{border-bottom:0}.ot .ot-t tbody tr[data-or]{cursor:pointer}.ot .ot-t tbody tr[data-or]:hover,.ot .ot-t tbody tr[data-or]:focus{background:#f9f4e8;outline:0}.ot .ot-t .r{text-align:right}
.ot-n{display:block;font-weight:600}tr:hover .ot-n{text-decoration:underline}.ot-s{display:block;color:var(--muted,#7b7064);font-size:.8125rem}.ot-x{color:#b3a897}.ot-w{color:#8a5a00;font-weight:600}
.ot-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#b3a897;margin-right:7px}.ot-dot.verified{background:var(--ok,#2f6b45)}.ot-dot.pending{background:#c28a1a}.ot-dot.lapsed,.ot-dot.rejected{background:var(--bad,#8a2b2b)}
.ot-empty{text-align:center;color:var(--muted,#7b7064);padding:40px 16px!important}
.ot-pg{display:flex;justify-content:space-between;align-items:center;padding:12px 4px;color:var(--muted,#7b7064);font-size:.8125rem}
@media(max-width:700px){.ot-bar{flex-wrap:wrap}.ot-bar select{width:100%}}

/* =====================================================================================================================
   PAGE SHELL v1: the one layout every page of the app uses (Admin, Client, Partner). Do not restyle per page.
   - Workspace pages (inbox, Applications queues) are the only exceptions: full width, no page head.
   - Content column: centred, max 1320px, 28px side gutters (16px on phones), 32px from the top bar, 72px of air at the bottom.
   - Page head: title (24px, 600) with its subtitle (14px, muted) directly below, actions on the right. Every page has both.
   - 24px between the page head and the first block.
   - The breadcrumb is in the top bar, never in the page.
   ===================================================================================================================== */
:root{--pg-max:1320px;--pg-gx:28px;--pg-top:32px;--pg-bottom:72px;--pg-gap:24px}
@media(max-width:860px){:root{--pg-gx:16px;--pg-top:20px;--pg-bottom:96px;--pg-gap:18px}}
.ax-page.adm:not(.ib-full) .ax-main>main,.ax-page.adm:not(.ib-full) main{max-width:var(--pg-max);width:100%;margin:0 auto;padding:var(--pg-top) var(--pg-gx) var(--pg-bottom)}
.ax-page:not(.adm):not(.ib-portal) .ax-view{max-width:var(--pg-max);width:100%;margin-left:auto;margin-right:auto;padding:var(--pg-top) var(--pg-gx) var(--pg-bottom)}
.pg-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;margin:0 0 var(--pg-gap)}
.pg-head[hidden]{display:none}
.pg-t{min-width:0;flex:1 1 320px}
.pg-head h1,.ax-view>h1,.ax-view>.ib-title h1{font:600 1.5rem/1.25 var(--sans,system-ui,sans-serif);letter-spacing:-.015em;margin:0}
.pg-sub,.ax-view>.ax-sub{margin:4px 0 0;color:var(--muted,#7b7064);font:400 .875rem/1.5 var(--sans,system-ui,sans-serif);max-width:84ch}
.pg-sub:empty{display:none}
.pg-act{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.pg-act:empty{display:none}
.ax-page:not(.adm) .ax-view>h1:not(:has(+.ax-sub)){margin-bottom:var(--pg-gap)}
.ax-page:not(.adm) .ax-view>.ax-sub{margin-bottom:var(--pg-gap)}
.ax-page:not(.adm) .ax-view>.ax-sub+*{margin-top:0!important}
.ax-bc,.pg-head .bc,.ax-view .ax-crumbl{display:none!important}
/* breadcrumb in the top bar */
.ax-top #ax-title{position:static!important;width:auto!important;height:auto!important;clip:auto!important;overflow:visible!important;margin:0;padding:0;font:500 .875rem var(--sans,system-ui,sans-serif);color:var(--ink,#191410);display:flex;align-items:center;gap:8px;white-space:nowrap;min-width:0}
.ax-top #ax-title:empty{display:none}
.ax-top #ax-title .crumb-p{display:inline-flex;align-items:center;gap:8px;color:var(--muted,#7b7064);font-weight:400}.ax-top #ax-title a.crumb-p,.ax-top #ax-title button.crumb-p{cursor:pointer}
.ax-top #ax-title .crumb-s{display:inline-flex;color:var(--muted,#7b7064)}.ax-top #ax-title .crumb-c{color:var(--ink,#191410);overflow:hidden;text-overflow:ellipsis}
@media(max-width:640px){.ax-top #ax-title{display:none!important}}
/* Account home is the one special page: centred greeting, centred search, 1180px content. It keeps its own look. */
.ov-hello{margin-top:0}   /* sits at the standard title height (32px under the top bar) */
/* tab bars sit inside the column, under the page head (they used to bleed to the top bar) */
.ax-view .ax-tabsbar{margin:0 0 var(--pg-gap);padding:0;border:0;background:none;overflow-x:auto;white-space:nowrap}
/* breadcrumb: one size, one weight pair, no boxes (buttons and links alike); Home is an icon */
.ax-top #ax-title,.ax-top #ax-title *{font-family:var(--sans,system-ui,sans-serif);font-size:.875rem;line-height:1.2}
.ax-top #ax-title button,.ax-top #ax-title a{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;gap:6px;color:var(--muted,#7b7064);font-family:var(--sans,system-ui,sans-serif);font-size:.875rem;font-weight:400;line-height:1.2;border:0;background:none;padding:0;border-radius:4px}
.ax-top #ax-title button:hover,.ax-top #ax-title a:hover{color:var(--ink,#191410)}
.ax-top #ax-title button:focus-visible,.ax-top #ax-title a:focus-visible{outline:2px solid var(--accent,#8a2b2b);outline-offset:2px}
.ax-top #ax-title .crumb-c{font-weight:600;color:var(--ink,#191410)}
.ax-top #ax-title .crumb-home svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ax-top #ax-title .crumb-s svg{width:14px;height:14px;stroke:var(--muted,#7b7064);fill:none;stroke-width:1.8}
/* the Account home greeting is one size everywhere (Admin, Client, Partner): it must beat `.ax-view>h1` */
.ax-view .ov-wrap>.ov-hello,.ov-wrap>.ov-hello{font:600 1.875rem/1.2 var(--sans,system-ui,sans-serif);letter-spacing:-.015em;text-align:center;margin:0 0 -12px}

/* Announcements admin page */
.an-dlg{width:min(640px,94vw)}.an-dlg form{display:grid;gap:12px}.an-h{margin:0;font:600 1.125rem var(--sans,system-ui)}
.an-prev{border:1px solid var(--line,#e2d9c8);border-radius:10px;overflow:hidden}.an-prev .ax-ann{position:relative}
.an-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.an-3.an-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.an-chk{display:flex;align-items:center;gap:8px;font-size:var(--t-sm,.875rem)}.an-chk input{margin:0}
.an-note{margin:0;color:var(--muted,#7b7064);font-size:.8125rem}.an-btns{display:flex;gap:8px;align-items:center}
@media(max-width:640px){.an-3,.an-3.an-2{grid-template-columns:1fr}}
dialog.adlg{margin:auto;max-height:92vh;overflow:auto}
/* announcement form: tick boxes stay small and sit next to their label (the dialog's full-width input rule must not reach them) */
.an-dlg .an-chk{display:flex;align-items:center;gap:10px;margin:0}
.an-dlg .an-chk input[type=checkbox]{width:18px;height:18px;min-width:18px;flex:none;margin:0;accent-color:var(--accent,#8a2b2b)}
.an-dlg .an-checks{display:flex;gap:10px 28px;flex-wrap:wrap;align-items:center}
.an-dlg .an-sage{display:flex;gap:8px;align-items:center}.an-dlg .an-sage input{flex:1;min-width:0;margin:0}.an-dlg .an-sage .ib-act{white-space:nowrap}
/* ---------- Actions menu (three dots) at the end of table rows: one pattern everywhere ---------- */
.kb{display:inline-block;position:relative}
.kb-b{all:unset;box-sizing:border-box;display:grid;place-items:center;width:32px;height:32px;border-radius:8px;cursor:pointer;color:var(--muted,#7b7064)}
.kb-b:hover,.kb-b[aria-expanded=true]{background:#efe8d8;color:var(--ink,#191410)}.kb-b:focus-visible{outline:2px solid var(--accent,#8a2b2b);outline-offset:1px}
.kb-m{position:fixed;z-index:90;min-width:190px;max-width:calc(100vw - 16px);background:#fff;border:1px solid var(--line,#e2d9c8);border-radius:10px;box-shadow:0 12px 36px rgba(25,20,16,.18);padding:6px;display:grid;gap:1px}
.kb-m[hidden]{display:none}
.kb-i{all:unset;box-sizing:border-box;display:block;width:100%;padding:8px 12px;border-radius:7px;cursor:pointer;font:500 .875rem/1.3 var(--sans,system-ui,sans-serif);color:var(--ink,#191410);white-space:nowrap}
.kb-i:hover,.kb-i:focus-visible{background:#f4ead3;outline:0}.kb-i.bad{color:var(--bad,#8a2b2b)}.kb-i.bad:hover,.kb-i.bad:focus-visible{background:#f6e0dc}
.kb-sep{border:0;border-top:1px solid var(--line,#e2d9c8);margin:4px 2px}
.kb-td{width:1%;white-space:nowrap;text-align:right!important;padding-right:10px!important}

/* announcement details panel (right-hand sheet) */
.an-sh-h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.an-sh-h h3{margin:0 0 6px;font:600 1.0625rem var(--sans,system-ui)}.an-sh-x{all:unset;cursor:pointer;width:30px;height:30px;display:grid;place-items:center;border-radius:8px;font-size:1.4rem;color:var(--muted,#7b7064)}.an-sh-x:hover{background:#efe8d8}
.ib-sheet .an-prev{border:1px solid var(--line,#e2d9c8);border-radius:10px;overflow:hidden}.ib-sheet .an-prev .ax-ann{position:relative;padding:9px 40px 9px 14px;font-size:.8125rem}.ib-sheet .an-prev .ax-ann-x{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:1.1rem}
.an-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.an-stats>div{display:grid;gap:1px;padding:10px 12px;border:1px solid var(--line,#e2d9c8);border-radius:10px;background:#fff}.an-stats span{color:var(--muted,#7b7064);font-size:.75rem}.an-stats b{font:600 1.375rem var(--sans,system-ui);font-variant-numeric:tabular-nums}.an-stats i{font-style:normal;color:var(--muted,#7b7064);font-size:.75rem}
.an-soft{color:var(--muted,#7b7064)}.an-sh-b{display:flex;gap:8px;flex-wrap:wrap}
.ib-sheet .pv-dl{margin:0;grid-template-columns:minmax(80px,auto) 1fr}

/* the portal's older row menu looks exactly like the shared actions menu */
.ax-rowmenu{z-index:90;min-width:190px;border-radius:10px;box-shadow:0 12px 36px rgba(25,20,16,.18);padding:6px;gap:1px}
.ax-rowmenu button{font:500 .875rem/1.3 var(--sans,system-ui,sans-serif);padding:8px 12px;border-radius:7px;white-space:nowrap}.ax-rowmenu button:hover{background:#f4ead3}.ax-rowmenu .bad{color:var(--bad,#8a2b2b)}.ax-rowmenu .bad:hover{background:#f6e0dc}
td.act,.ax-tbl td.act{width:1%;white-space:nowrap;text-align:right}
.kb-m{text-align:left}
.ib-sheet{grid-auto-rows:max-content}
/* =====================================================================================================================
   TABLE STANDARD: every table in Admin looks the same: a white box with a 12px radius, a 48px header row (muted 14px/500, 14px 16px padding),
   rows with 14px 16px padding and a light divider. Sortable headers are the same height as plain ones.
   ===================================================================================================================== */
body.adm main table:not(.plain) thead th,.ot .ot-t thead th{padding:14px 16px;height:48px;box-sizing:border-box;font:500 .875rem/20px var(--sans,system-ui,sans-serif);color:var(--muted,#7b7064);background:#fff;text-align:left;border-bottom:1px solid var(--line,#e2d9c8);white-space:nowrap;vertical-align:middle}
.ot .ot-t thead th button{padding:0;height:20px}
body.adm main table:not(.plain) tbody td,.ot .ot-t tbody td{padding:14px 16px;border-bottom:1px solid var(--line2,#efe8da);vertical-align:middle}
body.adm main table:not(.plain) tbody tr:last-child td,.ot .ot-t tbody tr:last-child td{border-bottom:0}
.ot .ot-t thead th.r,body.adm main table:not(.plain) thead th.r{text-align:right}
.ot .ot-t th[aria-sort=ascending] button,.ot .ot-t th[aria-sort=descending] button{color:var(--ink,#191410)}

/* the actions column header: the settings icon, right aligned over the three dots */
th.kb-th{width:1%;text-align:right!important;padding-right:10px!important;padding-left:8px!important}
.kb-gear{display:inline-grid;place-items:center;width:32px;height:20px;color:var(--muted,#7b7064);vertical-align:middle}
.kb-gear{display:flex!important;align-items:center;justify-content:center;vertical-align:top;line-height:20px}.kb-gear svg{display:block}

/* Billing records: tabs + search above one table box, the main action in the page head (same pattern as Partners and Applications) */
.lg-bar{margin:0 0 14px;border:1px solid var(--line,#e2d9c8);border-radius:12px;background:#faf6ec}
.lg-bar .pv-sw{flex:0 1 460px}.lg-sel{height:36px;border:1px solid var(--line,#e2d9c8);border-radius:8px;background:#fff;padding:0 10px;font:inherit;font-size:var(--t-sm,.875rem);margin:0;min-width:150px}
.ot-hint{margin:12px 2px 0;color:var(--muted,#7b7064);font-size:.875rem;line-height:1.5}

/* Referrals page */
.rf-line{margin:0 0 18px;font-size:.9375rem;line-height:1.6;color:var(--ink2,#4a4037)}.rf-line b{color:var(--ink,#191410)}
.rf-h{margin:22px 0 10px;font:600 1rem var(--sans,system-ui,sans-serif)}.rf-h2{margin:6px 0 0;font:600 .9375rem var(--sans,system-ui,sans-serif)}
.rf-bar{display:inline-block;vertical-align:middle;width:90px;height:8px;border-radius:99px;background:#efe6d3;overflow:hidden;margin-right:8px}.rf-bar span{display:block;height:100%;background:var(--accent,#8a2b2b)}

/* Documents page (table, tabs, progress, status colours); the right-hand panel reuses the Profile rail look */
.ax-dx .ax-dtools{padding:12px 16px;border-bottom:1px solid var(--line,#e2d9c8)}
.ax-dx tr[data-key]{cursor:pointer}.ax-dx tr[data-key]:hover td{background:rgba(138,43,43,.035)}
.ax-dx tr.sel td{background:rgba(138,43,43,.05)}.ax-dx tr.drop td{outline:2px dashed var(--accent,#8a2b2b);outline-offset:-3px}
.ax-dx td.who,.ax-dx td.when{color:var(--muted,#6f665a);white-space:nowrap}
.ax-dx td.act{white-space:nowrap}.ax-dx td.act .ax-btn{margin-right:8px;padding:.35em .9em;vertical-align:middle}.ax-dx td.act .kb-b{vertical-align:middle}
.ax-dx td .em{display:block;font-size:.875rem;color:var(--muted,#6f665a);overflow-wrap:anywhere}
.ax-stat.warn i{background:#d79a1f}.ax-stat.bad i{background:#c0392b}.ax-stat.info i{background:#3f77b5}
.ax-dprog{margin:0 0 14px;display:grid;gap:8px;font-size:.9375rem}.ax-dprog .r{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.ax-dprog .r span{color:var(--muted,#6f665a)}
.ax-segc .dxn{display:inline-block;margin-left:4px;min-width:20px;text-align:center;font-size:.75rem;line-height:1.5;padding:0 6px;border-radius:99px;background:rgba(0,0,0,.07);color:var(--muted,#6f665a)}.ax-segc .on .dxn{background:rgba(138,43,43,.12);color:var(--accent,#8a2b2b)}
@media (max-width:700px){.ax-dx th:nth-child(3),.ax-dx td:nth-child(3){display:none}.ax-dx td.act .ax-btn{margin-right:4px}}
.ax-dx .dxa{display:flex;align-items:center;justify-content:flex-end;gap:8px}.ax-dx td.act .ax-btn{margin-right:0}
.ax-rail .ax-linkbtn{margin:6px 0}
@media (max-width:700px){.ax-dx table.ax-cards td:first-child .em{display:block;margin-top:2px}.ax-dx table.ax-cards td.act{display:block;text-align:left}.ax-dx .dxa{justify-content:flex-start}}
.ax-dx .dx-req{margin-left:auto}.ax-rail .ax-dprog{display:block}.ax-rail .ax-dprog .iv-track{margin:4px 0 8px}
.ax-dx tr.late td.when{color:#a3322a;font-weight:500}

/* Page head with actions in the portal (same as Admin's #pg-head): actions on the right, under the title on phones */
.ax-page:not(.adm) .ax-view>.pg-head+*{margin-top:0!important}
.ax-view .pg-head .pg-sub{margin-bottom:0}
@media(max-width:640px){.ax-view .pg-head .pg-act{width:100%}.ax-view .pg-head .pg-act .ax-btn{flex:1 1 auto}}
.an-dlg form.cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}.an-dlg form.cols .an-btns{grid-column:1/-1}.an-dlg .an-btns{display:flex;gap:8px;align-items:center}.br-dlg{width:min(760px,94vw)}.br-dlg form .field textarea{width:100%}@media(max-width:640px){.an-dlg form.cols{grid-template-columns:1fr}}
.br-dlg{max-height:92vh;overflow:auto}.br-dlg #br-form .actions{position:sticky;bottom:0;background:var(--surface,#fff);padding:12px 0 4px;margin-top:6px;border-top:1px solid var(--line,#e2d9c8);display:flex;gap:8px;flex-wrap:wrap}

/* the settings gear in the header and the three dots in the rows share one box: 32px wide, right aligned, the same right padding (they used to sit 8px apart) */
.kb-gear{display:flex!important;width:32px;margin-left:auto}
th.kb-th{padding-right:10px!important}
td.act,td:has(>.kb-b),td:has(>.dxa){padding-right:10px!important}

/* Documents: the right-hand panel changes quietly: its content fades in, a small grey label says what it is, and it can be closed */
.ax-rail .dxeb{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 4px;font:500 .75rem/1 var(--sans,system-ui,sans-serif);color:var(--muted,#7b7064)}
.ax-rail .dxx{all:unset;box-sizing:border-box;cursor:pointer;width:26px;height:26px;display:grid;place-items:center;border-radius:6px;font-size:18px;line-height:1;color:var(--muted,#7b7064);opacity:.7}
.ax-rail .dxx:hover{opacity:1;background:rgba(0,0,0,.05);color:var(--ink,#191410)}.ax-rail .dxx:focus-visible{outline:2px solid var(--accent,#8a2b2b);outline-offset:1px;opacity:1}
@keyframes dxin{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
#v-documents .ax-rail.dxin>section,#docs .ax-rail.dxin>section{animation:dxin .24s ease-out both}#v-documents .ax-rail.dxin>section:nth-child(2),#docs .ax-rail.dxin>section:nth-child(2){animation-delay:.04s}#v-documents .ax-rail.dxin>section:nth-child(3),#docs .ax-rail.dxin>section:nth-child(3){animation-delay:.08s}
@media (prefers-reduced-motion:reduce){#v-documents .ax-rail.dxin>section,#docs .ax-rail.dxin>section{animation:none}}
#docs .dx-seg{margin:0 0 16px}.br-issue .vi svg,.ax-dx .vi svg,#docs .vi svg{width:100%;height:100%;display:block}#docs .ax-dx td .vi{display:inline-block;width:20px;height:20px;vertical-align:-5px;margin-right:9px}#docs .ax-rail h3 .vi{display:inline-block;width:22px;height:22px;vertical-align:-5px;margin-right:9px}.ax-rail dl{grid-template-columns:minmax(0,1fr)}.ax-rail dd{margin:0;white-space:normal;text-align:right}.ax-rail dt{margin:0}
#docs .ax-dx td:first-child{min-width:150px}#docs .ax-dx td.who{white-space:normal}#docs .ax-dx .ax-stat{white-space:nowrap}#docs .ax-dx td.when{white-space:nowrap}#docs .ax-dx .ax-dtools input{width:100%;max-width:360px}

/* small icons in menus and in the Documents panel links: provider logos in colour, line icons in grey */
.ax-rowmenu button:has(.mi){display:flex;align-items:center;gap:10px}
.mi{flex:none;width:16px;height:16px;display:inline-grid;place-items:center}.mi svg{width:16px;height:16px;display:block}
.mi.line svg{fill:none;stroke:var(--muted,#7b7064);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ax-rowmenu .bad .mi.line svg{stroke:currentColor}
.ax-rail .ax-linkbtn.wi{display:flex;align-items:center;gap:9px}.ax-rail .ax-linkbtn.wi .mi.line svg{stroke:currentColor}
.ax-rowmenu .msep{height:1px;background:var(--line,#e2d9c8);margin:5px 4px}
.an-opt{color:var(--muted,#7b7064);font-weight:400}#an-plans{display:grid;gap:6px}#an-plans .an-chk[hidden]{display:none}
.box-dlg{width:min(920px,95vw);height:min(660px,90vh);padding:0;overflow:hidden}.box-dlg #ax-boxpick{height:100%}

/* Billing > payment method card: the Stripe button sits at the bottom, after the text, with its note above it */
.bp-portal{display:grid;gap:8px;margin-top:12px;justify-items:start}.bp-portal p{margin:0}

/* Admin Inbox > Unmatched: the notice above an unknown sender's messages */
.ix-box.unm{border:1px solid #d9b34a;background:#fbf3d9;border-radius:10px;padding:12px 14px;margin:0 0 14px;max-width:none}.ix-box.unm p{margin:0 0 6px}.ix-box.unm .ax-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.ix-box.unm input{flex:1 1 260px;min-width:0}

/* Admin > application > History */
.hist{display:grid;gap:14px}.hist-i{border-left:3px solid var(--line,#e2d9c8);padding:2px 0 2px 14px}.hist-h{margin:0 0 4px}.hist-h b{display:inline}.hist-l{margin:0 0 4px;padding-left:18px}.hist-l li{margin:2px 0}.hist-l b{display:inline;margin-right:6px}.hist-n{margin:0;color:var(--muted,#7b7064)}

/* A feature the plan does not include: the card stays, with the plan that has it */
.ax-locked{border-style:dashed}.ax-locked .ax-lockline{margin:6px 0 10px;font-weight:600}.ax-locked .ax-sub{opacity:.85}

/* PAGE SHELL: detail pages (a matter, a proposal, an invitation) use the full shell column like every other page: the 980px reading cap of .ax-col made the cards stop short of the right edge with an empty strip */
#v-partners .ax-col,#v-clients .ax-col,#v-proposals .ax-col,#v-invitations .ax-col{max-width:none}

/* ADMIN PANES ON THE HOUSE DESIGN: the older panes (Briefings, Client briefs, Directory, Quality) were a tan card holding a tan box holding the table. The page head already carries the title and subtitle, so the wrapper
   disappears; tables are the white boxes of TABLE STANDARD; settings blocks (a switch, a link field, a form) are white boxes with a 12px radius, like every other Admin page. */
body.adm :is(.card.inv[data-pane],#payments>.card.inv){background:none;border:0;border-radius:0;padding:0;box-shadow:none}
body.adm :is(.card.inv[data-pane],#payments>.card.inv)>.hint{background:none;border:0;border-radius:0;padding:0;font-size:inherit;color:inherit}
body.adm :is(.card.inv[data-pane],#payments>.card.inv)>.hint:not(:has(table)):not(:empty),body.adm :is(.card.inv[data-pane],#payments>.card.inv)>form.cols{background:#fff;border:1px solid var(--line,#e2d9c8);border-radius:12px;padding:20px;box-sizing:border-box}
body.adm :is(.card.inv[data-pane],#payments>.card.inv)>.hint:has(table) table{width:100%}
body.adm :is(.card.inv[data-pane],#payments>.card.inv) .hint-sub,body.adm :is(.card.inv[data-pane],#payments>.card.inv)>.hint>.hint{background:#fff;border:1px solid var(--line,#e2d9c8);border-radius:12px;padding:16px 20px;margin-top:16px}
body.adm .card.inv[data-pane]+.card.inv[data-pane]{margin-top:16px}
body.adm :is(.card.inv[data-pane],#payments>.card.inv)>.hint:has(table)>form,body.adm :is(.card.inv[data-pane],#payments>.card.inv)>.hint:has(table)>p,body.adm :is(.card.inv[data-pane],#payments>.card.inv)>.hint:has(table)>h3{margin-top:16px}
body.adm :is(.card.inv[data-pane],#payments>.card.inv)>.hint:has(table)>form{background:#fff;border:1px solid var(--line,#e2d9c8);border-radius:12px;padding:20px;box-sizing:border-box}
body.adm #scf-card{background:#fff;border:1px solid var(--line,#e2d9c8);border-radius:12px;padding:20px;margin-top:16px}
body.adm #scf-card>.hint{padding:0;background:none;border:0}
body.adm #scf-card>.hint:not(:has(table)):not(:empty){background:none;border:0;padding:0}

/* Activity: the filters sit on the page, the feed is the white box */
body.adm #activity>.card{background:none;border:0;border-radius:0;padding:0;box-shadow:none;overflow:visible}
body.adm #activity .bar{margin:0 0 14px;padding:0;border:0;background:none}
body.adm #activity #actfeed{background:#fff;border:1px solid var(--line,#e2d9c8);border-radius:12px;margin:0;padding:6px 20px;list-style:none}

/* a pane that is just a few fields and a button (team call link, holidays): the whole pane is the white box so the button sits inside it */
body.adm :is(.card.inv[data-pane],#payments>.card.inv):has(>.field){background:#fff;border:1px solid var(--line,#e2d9c8);border-radius:12px;padding:20px;box-sizing:border-box}
body.adm :is(.card.inv[data-pane],#payments>.card.inv):has(>.field)>.field{background:none;border:0;padding:0}
body.adm #payments>.card.inv:has(>form.cols){background:none;border:0;padding:0}
body.adm #payments>.card.inv>form.cols{background:#fff;border:1px solid var(--line,#e2d9c8);border-radius:12px;padding:20px;box-sizing:border-box}

/* DIRECTORY (inside the app): cards, filters, profile. Prefix dr- */
.dr-bar{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 20px}
.dr-bar input[type=search]{flex:1 1 280px;min-width:0;height:42px;box-sizing:border-box;padding:0 14px;border:1px solid var(--line,#e2d9c8);border-radius:10px;background:#fff;font:inherit}
.dr-bar select{flex:0 1 190px;min-width:0;height:42px;box-sizing:border-box;padding:0 12px;border:1px solid var(--line,#e2d9c8);border-radius:10px;background:#fff;font:inherit;color:var(--ink,#191410)}
.dr-sec{margin:26px 0 12px}.dr-sec:first-child{margin-top:4px}.dr-sec h2{font:600 1.0625rem var(--sans,system-ui,sans-serif);margin:0 0 2px;letter-spacing:-.005em}.dr-sec .n{margin:0;font-size:.875rem;color:var(--muted,#7b7064)}
.dr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px}
.dr-card{display:flex;flex-direction:column;gap:12px;background:#fff;border:1px solid var(--line,#e2d9c8);border-radius:12px;padding:20px;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s;min-width:0}
.dr-card:hover,.dr-card:focus-visible{border-color:#cdbf9f;box-shadow:0 6px 18px rgba(60,40,10,.07);transform:translateY(-1px);outline:none}
.dr-card:focus-visible{box-shadow:0 0 0 2px var(--accent,#8a2b2b)}
.ax-box .dr-card h3,.dr-card h3{font:600 1rem/1.3 var(--sans,system-ui,sans-serif);text-transform:none;letter-spacing:0;color:var(--ink,#191410)}
.dr-card.feat{border-color:#d9c9a3;background:linear-gradient(180deg,#fffdf7,#fff 60%)}
.dr-top{display:flex;gap:12px;align-items:center;min-width:0}
.dr-av{flex:none;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#f3ede0;border:1px solid var(--line,#e2d9c8);color:var(--ink,#191410);font:600 .9375rem var(--serif,Georgia,serif);letter-spacing:.02em}
.dr-av.big{width:64px;height:64px;font-size:1.375rem}
.dr-tt{min-width:0}.dr-tt h3{margin:0;font:600 1rem/1.3 var(--sans,system-ui,sans-serif);overflow-wrap:anywhere}.dr-loc{margin:2px 0 0;font-size:.875rem;color:var(--muted,#7b7064)}
.dr-badges{display:flex;flex-wrap:wrap;gap:6px}
.dr-badge{display:inline-block;font:600 .6875rem/1 var(--sans,system-ui,sans-serif);letter-spacing:.04em;text-transform:uppercase;padding:5px 8px;border-radius:999px;background:#f3ede0;color:#5b4a2c}
.dr-badge.ok{background:#e9f3ea;color:#1f5a2c}.dr-badge.feat{background:#f6ecd3;color:#7a5a12}.dr-badge.me{background:#efe7e7;color:#7a2b2b}
.dr-sum{margin:0;font-size:.9375rem;line-height:1.5;color:var(--ink-soft,#4a4037);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.dr-chips{display:flex;flex-wrap:wrap;gap:6px}.dr-chip{font-size:.8125rem;padding:4px 10px;border-radius:999px;background:#f6f1e6;border:1px solid #ece3d0;color:#4a4037}.dr-chip.more{background:none;color:var(--muted,#7b7064)}
.dr-meta{margin:auto 0 0;padding-top:4px;font-size:.8125rem;color:var(--muted,#7b7064)}
.dr-phead{display:flex;gap:18px;align-items:center;margin:8px 0 22px}.dr-phead h1{margin:0 0 2px;font:600 1.5rem/1.25 var(--sans,system-ui,sans-serif);letter-spacing:-.015em}
.dr-prof{padding:6px 24px}.dr-prof section{padding:18px 0;border-top:1px solid var(--line2,#efe8da)}.dr-prof section:first-child{border-top:0}.dr-prof h4{margin:0 0 8px;font:600 .75rem/1 var(--sans,system-ui,sans-serif);letter-spacing:.06em;text-transform:uppercase;color:var(--muted,#7b7064)}.dr-prof p{margin:0;line-height:1.6}.dr-phead .dr-badges{margin-top:10px}
.dr-empty{max-width:640px}.dr-preview{margin:0 0 14px}
.dr-one{max-width:420px;margin:0 0 14px}.dr-one .dr-card{cursor:default}
.lst-line{margin:0 0 8px}
@media(max-width:860px){.dr-grid{grid-template-columns:1fr}.dr-bar select{flex:1 1 45%}.dr-phead{flex-direction:row;align-items:flex-end}}

/* MY FIRM PROFILE (partners): section cards with an accent bar, the logo block with a camera badge, live preview. Prefix fp- */
.fp-card{background:#fff;border:1px solid var(--line,#e2d9c8);border-radius:12px;overflow:hidden}
.fp-h{padding:20px 24px 14px;border-bottom:1px solid var(--line2,#efe8da);position:relative}
.fp-h::before{content:"";position:absolute;left:0;top:20px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:var(--accent,#8a2b2b)}
.fp-h h3{margin:0;font:600 1.0625rem/1.3 var(--sans,system-ui,sans-serif);text-transform:none;letter-spacing:-.005em;color:var(--ink,#191410)}
.fp-h p{margin:3px 0 0;font-size:.875rem;color:var(--muted,#7b7064)}
.fp-b{padding:22px 24px;display:grid;gap:20px}
.fp-logo{display:flex;gap:20px;align-items:center;flex-wrap:wrap;padding-bottom:20px;border-bottom:1px solid var(--line2,#efe8da)}
.fp-logobox{position:relative;flex:none;width:96px;height:96px;border-radius:16px;background:#f3ede0;border:1px solid var(--line,#e2d9c8);display:grid;place-items:center;font:600 1.75rem var(--serif,Georgia,serif);color:var(--ink,#191410);box-shadow:0 2px 10px rgba(60,40,10,.06)}
.fp-logobox img{width:100%;height:100%;object-fit:contain;border-radius:15px;background:#fff}
.fp-cam{position:absolute;right:-8px;bottom:-8px;width:34px;height:34px;border-radius:50%;border:3px solid #fff;background:var(--accent,#8a2b2b);color:#fff;display:grid;place-items:center;cursor:pointer;padding:0}
.fp-cam svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.fp-cam:disabled{opacity:.5;cursor:not-allowed}
.fp-logometa{min-width:0;display:grid;gap:6px}.fp-logometa b{font-weight:600}.fp-hint{margin:0;font-size:.8125rem;color:var(--muted,#7b7064)}.fp-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.fp-field{display:grid;gap:6px}.fp-field label{font-size:.875rem;font-weight:600}
.fp-field input,.fp-field textarea{width:100%;box-sizing:border-box;font:inherit;padding:.7em .85em;border:1px solid var(--line-strong,#cfc3ad);border-radius:8px;background:#fff;color:var(--ink,#191410)}
.fp-field input:disabled,.fp-field textarea:disabled{background:#f7f3ea;color:var(--muted,#7b7064)}
.fp-field textarea{resize:vertical;min-height:110px;line-height:1.5}.fp-count{text-align:right}
.fp-prow{display:grid;gap:6px}.fp-prow h4{margin:0;font:600 .75rem/1 var(--sans,system-ui,sans-serif);letter-spacing:.06em;text-transform:uppercase;color:var(--muted,#7b7064)}
.fp-b>.ax-btn{width:fit-content}
@media(max-width:860px){.fp-h,.fp-b{padding-left:16px;padding-right:16px}.fp-logo{gap:16px}}
.dr-av.has-logo{background:#fff;overflow:hidden;padding:0}.dr-av img{width:100%;height:100%;object-fit:contain;border-radius:inherit}

/* MAPS and OFFICES (directory profile, My firm profile) */
.dr-mapbox{height:280px;border-radius:12px;overflow:hidden;border:1px solid var(--line,#e2d9c8);background:#ece6d8;margin:0 0 16px;position:relative;z-index:0}
.dr-mapbox.pick{height:240px;margin:12px 0 4px}.dr-map-off{display:grid;place-items:center;color:var(--muted,#7b7064);font-size:.875rem}
.mp-wrap{background:none;border:0}.mp-pin{display:block;width:26px;height:26px;margin:0 0 0 0;border-radius:50% 50% 50% 0;background:var(--accent,#8a2b2b);transform:rotate(-45deg);box-shadow:0 2px 6px rgba(0,0,0,.3);position:relative}.mp-pin::after{content:"";position:absolute;left:8px;top:8px;width:10px;height:10px;border-radius:50%;background:#fff}
.dr-offices,.fp-offices{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.dr-offices li,.fp-offices li{display:grid;gap:2px;padding:12px 14px;border:1px solid var(--line2,#efe8da);border-radius:10px;background:#fffdf8}
.dr-offices li>b,.fp-ot b{font-weight:600;margin-right:8px}.fp-ot{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dr-oline{font-size:.9375rem;color:var(--ink-soft,#4a4037)}.dr-oline.dim{font-size:.8125rem;color:var(--muted,#7b7064)}
.dr-olinks{display:flex;gap:16px;flex-wrap:wrap;margin:6px 0 0;font-size:.875rem}.dr-olinks a{color:var(--accent,#8a2b2b);font-weight:600}
.fp-h{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.fp-ht{min-width:0;flex:1 1 260px}.fp-addoff{flex:none;white-space:nowrap}
.fp-dlg{width:min(640px,calc(100vw - 24px))}.fp-ogrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:8px 0 12px}.fp-ogrid .wide{grid-column:1/-1}
.fp-dlg .dcheck{display:flex;gap:10px;align-items:flex-start;margin:6px 0;font-size:.9rem}
@media(max-width:860px){.fp-ogrid{grid-template-columns:1fr}.fp-h{flex-wrap:wrap}.dr-mapbox{height:220px}}

/* TEAM (directory cards and profile, My firm profile) */
.dr-pav{flex:none;width:36px;height:36px;border-radius:50%;display:inline-grid;place-items:center;background:#f3ede0;border:2px solid #fff;color:var(--ink,#191410);font:600 .75rem var(--sans,system-ui,sans-serif);overflow:hidden;box-sizing:border-box;box-shadow:0 0 0 1px var(--line,#e2d9c8)}
.dr-pav img{width:100%;height:100%;object-fit:cover}.dr-pav.sm{width:28px;height:28px;font-size:.6875rem}.dr-pav.md{width:40px;height:40px;font-size:.8125rem}.dr-pav.lg{width:52px;height:52px;font-size:1rem}.dr-pav.more{background:#fff;color:var(--muted,#7b7064)}
.dr-stack{display:flex;align-items:center;margin:2px 0 0}.dr-stack .dr-pav{margin-left:-8px}.dr-stack .dr-pav:first-child{margin-left:0}.dr-stack-l{margin-left:10px;font-size:.8125rem;color:var(--muted,#7b7064)}
.dr-team{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}.dr-tile{display:flex;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line2,#efe8da);border-radius:10px;background:#fffdf8;min-width:0}
.dr-tile b{display:block;font-weight:600;overflow-wrap:anywhere}.dr-tile span:not(.dr-pav){display:block;font-size:.875rem;color:var(--muted,#7b7064)}
.fp-team{list-style:none;margin:0;padding:0;display:grid;gap:10px}.fp-team li{display:flex;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line2,#efe8da);border-radius:10px;background:#fffdf8;flex-wrap:wrap}.fp-tx{flex:1 1 160px;min-width:0}.fp-tx b{display:block;font-weight:600}.fp-tx span{font-size:.875rem;color:var(--muted,#7b7064)}

/* A tick box sits BESIDE its text, wherever it is (a card, a dialog, a form): the box rule `.ax-box label{display:grid}` used to stack the box above the words */
label.dcheck,.ax-box label.dcheck,.ax-dlg label.dcheck{display:flex;flex-direction:row;align-items:flex-start;gap:10px;font-size:.9rem;font-weight:400;line-height:1.45;cursor:pointer;margin:6px 0}
label.dcheck>input[type=checkbox],.ax-box label.dcheck>input[type=checkbox]{flex:none;width:18px;height:18px;margin:2px 0 0;padding:0}
label.dcheck>span{min-width:0}

/* LISTING switch and 30-day counts in the My firm profile rail */
.fp-swrow{display:flex;gap:12px;align-items:center;margin:2px 0 10px}.fp-swl{display:grid;gap:2px;min-width:0}.fp-swl b{font-weight:600}.fp-swl span{font-size:.875rem;color:var(--muted,#7b7064);line-height:1.4}
.fp-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}.fp-stats div{padding:10px 12px;border:1px solid var(--line2,#efe8da);border-radius:10px;background:#fffdf8}.fp-stats b{display:block;font:600 1.375rem var(--sans,system-ui,sans-serif)}.fp-stats span{font-size:.8125rem;color:var(--muted,#7b7064)}

/* LISTING switch and 30-day counts in the My firm profile rail */
.fp-swrow{display:flex;gap:12px;align-items:center;margin:2px 0 10px}.fp-swl{display:grid;gap:2px;min-width:0}.fp-swl b{font-weight:600}.fp-swl span{font-size:.875rem;color:var(--muted,#7b7064);line-height:1.4}
.fp-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}.fp-stats div{padding:10px 12px;border:1px solid var(--line2,#efe8da);border-radius:10px;background:#fffdf8}.fp-stats b{display:block;font:600 1.375rem var(--sans,system-ui,sans-serif)}.fp-stats span{font-size:.8125rem;color:var(--muted,#7b7064)}

/* PROFILE STRENGTH and prompts for what is missing */
.fp-bar{height:8px;border-radius:99px;background:#ece5d6;overflow:hidden;margin:6px 0 8px}.fp-bar i{display:block;height:100%;border-radius:99px;background:var(--accent,#8a2b2b);transition:width .25s}
.fp-check{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px;font-size:.875rem;color:var(--muted,#7b7064)}.fp-check li{display:flex;gap:10px;align-items:center}.fp-check li.on{color:var(--ink,#191410)}
.fp-tick{flex:none;width:18px;height:18px;border-radius:50%;border:1.5px solid #cfc3ad;display:grid;place-items:center;font-size:.6875rem;line-height:1;color:#fff}.fp-check li.on .fp-tick{background:var(--accent,#8a2b2b);border-color:var(--accent,#8a2b2b)}
.dr-todo{border:1.5px dashed #d9ccb0;border-radius:10px;background:#fffdf8;padding:14px 16px!important;margin:12px 0;display:grid;gap:8px}.dr-todo p{margin:0!important;color:var(--muted,#7b7064)}.dr-todo .ax-btn{width:fit-content}
.dr-backadmin{margin-right:14px}

/* DIRECTORY v3: city photo on the card, logo overlapping it, "Serves clients in" at first sight, grid/table toggle */
.dr-card{padding:0;overflow:hidden;gap:0}
.dr-cover{position:relative;height:116px;overflow:hidden;background:#cfc3ad}.dr-cover.tall{height:210px;border-radius:14px;margin:0 0 4px}
.dr-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 32%}
.dr-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05) 35%,rgba(0,0,0,.55) 100%)}
.dr-where{position:absolute;left:14px;bottom:10px;right:14px;display:flex;align-items:center;gap:6px;color:#fff;font:600 .8125rem/1.2 var(--sans,system-ui,sans-serif);text-shadow:0 1px 3px rgba(0,0,0,.45)}.dr-cover.tall .dr-where{left:22px;bottom:16px;font-size:.9375rem}
.dr-where svg,.dr-serves svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dr-badges.on-cover{position:absolute;right:10px;top:10px;margin:0;justify-content:flex-end}.dr-badges.on-cover .dr-badge{background:rgba(255,255,255,.92);box-shadow:0 1px 3px rgba(0,0,0,.15)}
.dr-body{display:flex;flex-direction:column;gap:12px;padding:0 20px 18px}
.dr-top{margin-top:-24px;align-items:flex-end}.dr-av.over{width:52px;height:52px;border:3px solid #fff;box-shadow:0 2px 8px rgba(60,40,10,.18);background:#fff}.dr-top .dr-tt{padding-bottom:2px}
.dr-card.feat{background:#fff}.dr-card.feat::after{content:"";position:absolute;inset:0;border-radius:12px;box-shadow:inset 0 0 0 1.5px #d9c28a;pointer-events:none}.dr-card{position:relative}
.dr-serves{display:grid;gap:5px}.dr-serves-h{font:600 .6875rem/1 var(--sans,system-ui,sans-serif);letter-spacing:.06em;text-transform:uppercase;color:var(--muted,#7b7064)}
.dr-serves-r{display:flex;flex-wrap:wrap;gap:6px;align-items:center;color:var(--accent,#8a2b2b)}.dr-geo{font-size:.8125rem;font-weight:600;padding:4px 10px;border-radius:999px;background:#f6eae8;border:1px solid #ecd3cf;color:#7a2b2b}.dr-geo.more{background:none;border-color:transparent;color:var(--muted,#7b7064)}
.dr-serves.big{margin:14px 0 8px}.dr-serves.big .dr-geo{font-size:.9375rem;padding:6px 14px}.dr-serves.big svg{width:18px;height:18px}
.dr-phead{margin-top:-38px;padding-left:22px;position:relative;align-items:flex-end}.dr-phead .dr-av.big.over{width:84px;height:84px;font-size:1.5rem;border-width:4px}
.dr-credit{position:absolute;right:12px;bottom:8px;font-size:.6875rem;color:rgba(255,255,255,.85);text-decoration:none;text-shadow:0 1px 2px rgba(0,0,0,.5)}.dr-credit:hover{text-decoration:underline}
.dr-seg{margin-left:auto;display:inline-flex;border:1px solid var(--line,#e2d9c8);border-radius:10px;overflow:hidden;background:#fff;height:42px}
.dr-seg button{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:7px;padding:0 14px;cursor:pointer;font:500 .875rem var(--sans,system-ui,sans-serif);color:var(--muted,#7b7064)}.dr-seg button+button{border-left:1px solid var(--line,#e2d9c8)}
.dr-seg button.on{background:#f3ede0;color:var(--ink,#191410);font-weight:600}.dr-seg button:focus-visible{outline:2px solid var(--accent,#8a2b2b);outline-offset:-2px}.dr-seg svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dr-table td{vertical-align:middle}.dr-t1{display:flex;gap:12px;align-items:center;min-width:220px}.dr-av.sm2{width:36px;height:36px;font-size:.8125rem}.dr-tloc{display:block;font-size:.8125rem;color:var(--muted,#7b7064)}.dr-table .dr-geo{font-size:.75rem;padding:3px 8px}
@media(max-width:860px){.dr-seg{display:none}.dr-cover.tall{height:150px}.dr-phead{padding-left:14px}}
/* layering: the logo and the name sit ABOVE the photo, never under it */
.dr-top{position:relative;z-index:2}.dr-phead{z-index:2}.dr-cover.tall .dr-where{display:none}
.dr-bar select{flex:0 1 150px}.dr-bar input[type=search]{flex:1 1 240px}
.dr-card .dr-where{top:11px;bottom:auto;left:14px;right:96px}
.dr-phead>div:not(.dr-av){padding-top:42px}
@media(max-width:860px){.dr-phead>div:not(.dr-av){padding-top:38px}}

/* Admin: choose the city photo */
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.photo-c{all:unset;box-sizing:border-box;cursor:pointer;display:grid;gap:4px;border:1px solid var(--line,#e2d9c8);border-radius:10px;overflow:hidden;background:#fff}.photo-c:hover,.photo-c:focus-visible{border-color:var(--accent,#8a2b2b);box-shadow:0 0 0 2px rgba(138,43,43,.2)}
.photo-c img{width:100%;height:120px;object-fit:cover;display:block}.photo-c span{padding:0 10px;font-size:.8125rem;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.photo-c i{padding:0 10px 10px;font-style:normal;font-size:.75rem;color:var(--muted,#7b7064)}.photo-c:disabled{opacity:.5}

/* the photo is 3:2: the banner is tall enough that towers, spires and rivers are not cut off */
.dr-cover{height:158px}.dr-cover.tall{height:min(340px,32vw);min-height:220px}
.dr-cover img{object-position:center 40%}
@media(max-width:860px){.dr-cover.tall{height:200px;min-height:0}.dr-cover{height:150px}}

/* Introductions list: a reply that is past its clock */
.ax-stat.late{color:#b3261e;border-color:#e6b8b3;background:#fdf1ef}

/* Phones: a single-column grid must be allowed to shrink to the screen. Without minmax(0,1fr) the one implicit column is as wide as its widest unbreakable child (an input, a long word),
   which pushed the application form (My application) and the Profile/Settings boxes past the screen edge. */
.ax-2main,.ax .ax-box,.ax .contact-form{grid-template-columns:minmax(0,1fr)}
.ax-2main>*,.ax .ax-box>*{min-width:0}
/* 320px phones: nothing in a form or a preference row may be wider than its box */
.ax input:not([type=checkbox]):not([type=radio]),.ax select,.ax textarea{max-width:100%}
@media(max-width:560px){.ax-pref{flex-wrap:wrap;padding:12px 16px;gap:10px}.ax-pref .tx{flex:1 1 180px}.ax-pref select{width:100%;max-width:100%}}
/* Touch screens: small controls get a finger-sized target (the guideline is about 44px). Icons keep their look; the hit area grows. */
@media (pointer:coarse){
  .ax .kb-b{min-width:40px;min-height:40px}
  .ax .ax-pencil,.ax .ax-copy,.ax .ax-out{position:relative}
  .ax .ax-pencil::after,.ax .ax-copy::after,.ax .ax-out::after{content:"";position:absolute;inset:-8px}
  .ax .ax-segc button,.ax .ax-tabsbar button,.ax .ib-act,.ax .br-gh,.ax .mbar,.ax .dx-seg button{min-height:40px}
  .ax input[type=checkbox],.ax input[type=radio]{width:24px;height:24px}
  .leaflet-control-zoom a{width:40px!important;height:40px!important;line-height:40px!important}
}

/* Phones: one way into the menu. The bottom bar has "More", so the hamburger in the top bar goes away (it read as a second menu button). */
@media(max-width:860px){.ax-burger{display:none!important}}
/* Phones: the announcement is one line (text cut with an ellipsis, tap the text to read it all), the link and the close button stay in view */
@media(max-width:640px){
  .ax-ann{flex-wrap:nowrap;gap:10px;padding:7px 40px 7px 12px;font-size:.8125rem;line-height:1.3;align-items:center}
  .ax-ann-t{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
  .ax-ann.open .ax-ann-t{white-space:normal;overflow:visible}
  .ax-ann-l{flex:none}
}
.ax input::placeholder{text-overflow:ellipsis}

/* ---------- Phone presentation of long lists (the same data as on a computer, laid out for a thumb) ----------
   1) Lists of matters (Clients / Partners, Introductions, Active): a compact entry, coloured by stage:
        name .......................... stage / received
        what it is .................... fee / reply clock
        next step (only if there is one)
   2) Stat tables (Your performance): one line per row with a quiet bar behind it, never a card per row. */
@media(max-width:860px){
  table.ax-cards.iv-table tr{grid-template-columns:minmax(0,1fr) auto;grid-auto-rows:auto;align-items:center;gap:3px 12px;padding:12px 14px 12px 16px;border-left:4px solid var(--line-strong,#cfc3ad)}
  table.ax-cards.iv-table tr.st-active{border-left-color:#2e7d57}table.ax-cards.iv-table tr.st-introduced{border-left-color:#c98a1a}table.ax-cards.iv-table tr.st-completed{border-left-color:#9a8f80}
  table.ax-cards.iv-table td{display:block;padding:0!important;text-align:left;font-size:.8125rem;min-width:0}
  table.ax-cards.iv-table td::before{display:none}
  table.ax-cards.iv-table td:nth-child(1){grid-column:1;grid-row:1 / span 2;font-size:1rem}
  table.ax-cards.iv-table td:nth-child(2){grid-column:2;grid-row:1;text-align:right;justify-self:end}
  table.ax-cards.iv-table td:nth-child(3){grid-column:2;grid-row:2;text-align:right;justify-self:end;font-weight:600}
  table.ax-cards.iv-table td:nth-child(4){grid-column:1 / span 2;grid-row:3;color:var(--ink-soft,#4a4037);padding-top:4px!important;border-top:1px dashed var(--line,#e2d9c8)!important}
  table.ax-cards.iv-table td.m-dash{display:none}
  table.ax-cards.iv-table td:nth-child(1) .iv-sub{margin-top:2px}
  /* stat tables: a line each, a bar behind the number */
  table.ax-cards.ax-kv tbody{gap:0}
  table.ax-cards.ax-kv tr{display:flex;align-items:baseline;gap:10px;border:0;border-bottom:1px solid var(--line2,#efe8da);border-radius:0;padding:9px 6px;background:linear-gradient(90deg,rgba(138,43,43,.10) var(--w,0%),transparent var(--w,0%))}
  table.ax-cards.ax-kv td{display:block;padding:0!important;text-align:right;white-space:nowrap}
  table.ax-cards.ax-kv td::before{display:none}
  table.ax-cards.ax-kv td:first-child{flex:1;text-align:left;font-size:.9375rem;white-space:normal;padding-bottom:0!important}
  .an-sec{border-top:1px solid var(--line,#e2d9c8);margin-top:8px}
  .an-sec>summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;padding:12px 2px;font:600 .8125rem var(--sans,system-ui,sans-serif);letter-spacing:.04em;text-transform:uppercase;color:var(--muted,#7b7064)}
  .an-sec>summary::-webkit-details-marker{display:none}
  .an-sec>summary::after{content:"+";font-size:1.25rem;line-height:1;color:var(--muted,#7b7064)}
  .an-sec[open]>summary::after{content:"\2212"}
  .an-sec[open]>.ax-tcard{margin-bottom:8px}
  .ax-tcard:has(table.ax-kv){background:none;border:0;box-shadow:none}
}
/* on a computer the sections are plain headings, open */
@media(min-width:861px){.an-sec>summary{list-style:none;cursor:default;font:600 1rem var(--sans,system-ui,sans-serif);margin:18px 0 8px;pointer-events:none}.an-sec>summary::-webkit-details-marker{display:none}}

/* the brand sits in the top bar on a phone (the sidebar with the logo is hidden there) */
.ax-mbrand{display:none}
@media(max-width:860px){
  .ax-mbrand{display:inline-block;font:600 1.375rem var(--serif,Georgia,serif);letter-spacing:-.01em;color:var(--ink,#191410);text-decoration:none;margin-right:auto}
  .ax-mbrand i{color:var(--oxblood,#8a2b2b);font-style:normal}
  .ax-top h2{margin-right:0}
  /* stat tiles: smaller on a phone, so the performance card is a glance, not a scroll */
  .ax-tile{padding:10px 12px;gap:2px}.ax-tile .l{font-size:.6875rem;letter-spacing:.06em}.ax-tile .v{font-size:1.125rem}
  .ax-tiles{gap:8px}
}

/* Detail pages: the "← Back" link sits right above the title, not a screen-height away from it */
.ax-col:has(> .ax-mback){gap:6px}
.ax-col > .ax-mback{margin:0;padding:2px 0;min-height:0;line-height:1.3}
.ax-col > .ax-mback + .ax-mbody{margin-top:0}

/* Spacing: one rhythm. Section gaps 28px on a computer and 22px on a phone; a tab bar sits 16px above its table; section headings inside long reading pages 22px. */
.ov-wrap{gap:28px}
.ax-dbody .ax-tabsbar{margin-bottom:0}
.br-sech{margin:22px 0 4px!important}
@media(max-width:860px){.ov-wrap{gap:22px}.ov-cols{gap:22px 24px}}

/* ---------- Phone home: "Today" ----------
   What needs you comes first; the numbers are a swipeable strip (one card at a time, the next one peeking) instead of a long stack;
   the lists show the first few entries; the greeting is a line, not a headline. */
@media(max-width:860px){
  .ov-wrap>.ov-hello,.ax-view .ov-wrap>.ov-hello{font-size:1.375rem;text-align:left;margin:0 0 -4px}
  .ov-search{max-width:none}
  .ov-cols>:nth-child(2){order:-1}
  .ov-cols>:nth-child(4) .ov-list>*:nth-child(n+4){display:none}
  .ov-grid{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -16px;padding:0 16px 6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .ov-grid::-webkit-scrollbar{display:none}
  .ov-grid>*{flex:0 0 86%;scroll-snap-align:center;min-width:0}
  .ov-grid>*:only-child{flex-basis:100%}
  .ax-act li:nth-child(n+4){display:none}
}

/* folded boxes on a phone (matter page): the title row opens and closes the box */
@media(max-width:860px){
  .ax-box.fold>h3{display:flex;align-items:center;gap:8px;cursor:pointer;margin:0;padding:2px 0;-webkit-tap-highlight-color:transparent}
  .ax-box.fold>h3::after{content:"";margin-left:auto;flex:none;width:8px;height:8px;border-right:2px solid var(--muted,#7b7064);border-bottom:2px solid var(--muted,#7b7064);transform:rotate(-135deg);transition:transform .15s}
  .ax-box.fold.closed>h3::after{transform:rotate(45deg)}
  .ax-box.fold.closed>*:not(h3){display:none}
  .fold-n{font-weight:500;font-size:.8125rem;color:var(--muted,#7b7064)}
}

/* phone: a long plan checklist shows six lines and a "Show all" button */
.ax-checks-cut>li:nth-child(n+7){display:none}
.ax-showall{margin-top:6px}
/* phone: Documents does not say "nothing here" twice */
@media(max-width:860px){.ax-dx .ax-rail section:has(.docRailNone,.dx-none){display:none}}
/* spacing: headings and fine print sit close to the block above */
.br-sech{margin:18px 0 4px!important}.br-disc{margin:16px 0 0!important}
.pfm .pfm-sec{margin:14px 0 8px;padding-top:12px}.pfm .pfm-sec:first-of-type{margin-top:12px}
.ax .ax-field+.pfm-sec{margin-top:6px}
.ax .pfm .ax-field+.pfm-sec,.ax .ax-box .ax-field+h4.pfm-sec{margin-top:0!important;padding-top:10px}

/* proposals + invitations: the same coloured left edge as the matter rows */
@media(max-width:860px){
  table.ax-cards.iv-table tr.st-compare,table.ax-cards.iv-table tr.st-o-proposed{border-left-color:#2e7d57}
  table.ax-cards.iv-table tr.st-waiting,table.ax-cards.iv-table tr.st-o-pending{border-left-color:#c98a1a}
  table.ax-cards.iv-table tr.st-chosen,table.ax-cards.iv-table tr.st-o-declined,table.ax-cards.iv-table tr.st-o-expired{border-left-color:#9a8f80}
}
/* pull to refresh */
.ax-ptr{position:fixed;top:56px;left:50%;z-index:60;width:38px;height:38px;margin-left:0;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#fff;color:var(--oxblood,#8a2b2b);box-shadow:0 2px 10px rgba(0,0,0,.18);opacity:0;transform:translate(-50%,0);pointer-events:none;transition:opacity .15s}
.ax-ptr.spin svg{animation:ax-ptr-spin .8s linear infinite}
@keyframes ax-ptr-spin{to{transform:rotate(360deg)}}
@media(min-width:861px){.ax-ptr{display:none}}
@media(max-width:700px){.ax-sample{display:none}}

/* ===== Residency (EXP-69): case card, permit line and the vertical timeline. rs- prefix. ===== */
.rs-case{padding:20px}.rs-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.rs-head h2{margin:0 0 2px;font:600 var(--t-xl,1.125rem) var(--sans,system-ui,sans-serif)}.rs-head .ax-sub{margin:0}
.rs-sum{margin:14px 0 4px;padding:10px 14px;background:var(--paper,#f6f1e7);border-radius:10px;font-size:.9375rem}
.rs-warn{margin:10px 0;padding:9px 12px;background:#fff7e6;border:1px solid #f0d9a8;border-radius:8px;font-size:.875rem;color:#6b4e0a}
.rs-tl{list-style:none;margin:16px 0 8px;padding:0}.rs-n{position:relative;display:flex;gap:14px;padding:0 0 18px}.rs-n:not(:last-child)::before{content:"";position:absolute;left:7px;top:20px;bottom:0;width:2px;background:var(--line,#e2d9c8)}
.rs-dot{flex:none;width:16px;height:16px;margin-top:2px;border-radius:50%;border:2px solid #b9ae9c;background:#fff;z-index:1}
.rs-done .rs-dot{background:var(--ink,#191410);border-color:var(--ink,#191410)}.rs-done:not(:last-child)::before{background:var(--ink,#191410)}
.rs-next .rs-dot{border-color:var(--oxblood,#8a2b2b);box-shadow:0 0 0 4px rgba(138,43,43,.14)}.rs-over .rs-dot{border-color:#b3261e;background:#b3261e}
.rs-b small{display:block;font:500 .75rem var(--sans,system-ui,sans-serif);letter-spacing:.05em;text-transform:uppercase;color:var(--muted,#7b7064)}.rs-next .rs-b small{color:var(--oxblood,#8a2b2b)}.rs-over .rs-b small{color:#b3261e}
.rs-b b{display:block;font-weight:600;font-size:.9375rem;line-height:1.35}.rs-up .rs-b b{color:var(--muted,#7b7064);font-weight:500}
.rs-foot{display:flex;gap:12px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line2,#efe8da);padding-top:14px;margin-top:8px}.rs-foot p{margin:0;flex:1 1 220px}
.rs-dlg .rs-f{display:grid;gap:5px;margin-bottom:12px}.rs-dlg .rs-f label{font-weight:600;font-size:.875rem}.rs-dlg .rs-f small{color:var(--muted,#7b7064);font-size:.75rem}
.rs-dlg input,.rs-dlg select{font-size:16px;min-height:40px;width:100%;box-sizing:border-box}
.rs-empty h2{margin:0 0 6px}.rs-empty .ax-btn{margin:6px 0 12px}

/* Residency card on Account home (EXP-74) */
.rs-home{margin:0}.rs-hcard{background:#fff;border:1px solid var(--line,#e2d9c8);border-radius:14px;padding:18px 20px;display:grid;gap:12px}
.rs-hlabel{font:600 .75rem var(--sans,system-ui,sans-serif);letter-spacing:.08em;color:var(--muted,#7b7064)}.rs-hcard h2{margin:0;font:600 var(--t-2xl,1.5rem) var(--sans,system-ui,sans-serif)}.rs-hsub{margin:0;color:var(--muted,#7b7064);font-size:.9375rem}
.rs-hcap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.875rem;margin-bottom:6px}.rs-hcap span{color:var(--muted,#7b7064)}
.rs-hbar{display:flex;gap:6px}.rs-hbar i{flex:1;height:6px;border-radius:4px;background:#e4dccd}.rs-hbar i.rs-done{background:var(--ink,#191410)}.rs-hbar i.rs-next{background:var(--oxblood,#8a2b2b)}.rs-hbar i.rs-over{background:#b3261e}
.rs-hnext{all:unset;box-sizing:border-box;display:grid;gap:3px;background:#fbf1dc;border-radius:12px;padding:14px 16px;cursor:pointer}.rs-hnext:focus-visible,.rs-htile:focus-visible,.rs-hpartner:focus-visible{outline:2px solid var(--oxblood,#8a2b2b);outline-offset:2px}
.rs-hnext small{font:600 .75rem var(--sans,system-ui,sans-serif);letter-spacing:.08em;color:#8a5a0a}.rs-hnext b{font-size:1.0625rem}.rs-hnext span{color:#6b5a3a;font-size:.875rem}.rs-hnext em{font-style:normal;color:var(--oxblood,#8a2b2b);font-weight:600;font-size:.875rem;margin-top:4px}
.rs-htiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.rs-htile{all:unset;box-sizing:border-box;display:grid;gap:2px;align-content:start;background:var(--paper,#f6f1e7);border-radius:12px;padding:12px 14px;cursor:pointer;min-height:44px}
.rs-htile small{color:var(--muted,#7b7064);font-size:.8125rem}.rs-htile b{font-size:1.125rem}.rs-htile span{color:var(--muted,#7b7064);font-size:.8125rem}
.rs-hpartner{all:unset;box-sizing:border-box;display:flex;gap:12px;align-items:center;border-top:1px solid var(--line2,#efe8da);padding-top:12px;cursor:pointer;min-height:44px}.rs-hav{flex:none;width:40px;height:40px;border-radius:50%;background:#efe6d8;color:var(--oxblood,#8a2b2b);display:grid;place-items:center;font-weight:600}
.rs-hpartner b{display:block}.rs-hpartner small{color:var(--muted,#7b7064)}.rs-hnote{margin:0}.rs-hempty .ax-btn{justify-self:start}
.rs-upd{margin:10px 0 4px;padding:12px 14px;background:var(--paper,#f6f1e7);border-radius:10px}.rs-upd h3{margin:0 0 6px;font:600 .875rem var(--sans,system-ui,sans-serif)}.rs-upd p{margin:0 0 6px;font-size:.9375rem}.rs-upd small{color:var(--muted,#7b7064);font-weight:600}
@media(max-width:520px){.rs-hcard{padding:16px}.rs-htiles{grid-template-columns:minmax(0,1fr)}}
