/* ============================================================================
   PURE — FABLE V5 · STYLES  (brand canon: navy #172E55 · gold #DCCAAF ·
   green #117F39 · ARE blue #29ABE2 · radius 0/5/8/16/360 · ONE shadow)
   ========================================================================== */
:root{
  --navy:#172e55; --navy-2:#122544; --navy-3:#0e1c33; --navy-4:#091222;
  --gold:#dccaaf; --gold-2:#b0a28c; --gold-ink:#847969;
  --gold-50:#f8f4ef; --gold-100:#f1eadf; --gold-200:#eadfcf;
  --green:#117f39; --green-soft:#e3f1e8;
  --blue:#29abe2; --blue-soft:#d4eef9;
  --slate:#5a6b86; --slate-soft:#e7ebf1;
  --red:#ed1c24; --red-soft:#ffe8e8;
  --ink:#000; --ink-2:#404040; --ink-3:#8e8e8e; --line:#bfbfbf; --hair:#e3ddd2;
  --ui:"Open Sans",system-ui,sans-serif; --disp:"Montserrat",sans-serif; --word:"Cinzel",serif;
  --sh:5px 5px 10px 0 rgba(0,0,0,.10);
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:var(--ui);font-size:14px;line-height:1.5;color:var(--ink);background:var(--gold-50);-webkit-font-smoothing:antialiased}
::selection{background:var(--gold);color:var(--navy)}
button{font-family:inherit;cursor:pointer}

/* ---- frame ---- */
.fv{display:flex;flex-direction:column;height:100vh;overflow:hidden}
.fv-top{height:60px;flex-shrink:0;background:var(--navy);display:flex;align-items:center;gap:14px;padding:0 18px;position:relative;z-index:50}
.fv-top::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,transparent,var(--gold) 25%,var(--gold) 75%,transparent);opacity:.65}
.fv-word{display:flex;align-items:center;gap:10px}
.fv-word img{height:30px;display:block}
.fv-lane{font-family:var(--disp);font-weight:800;font-size:11px;letter-spacing:.04em;color:#06121f;background:var(--blue);border-radius:5px;padding:4px 9px;display:inline-flex;align-items:center;gap:6px}
.fv-lane small{font-weight:700;font-size:9px;opacity:.85}
.fv-search{flex:1;max-width:520px;display:flex;align-items:center;gap:9px;background:rgba(255,255,255,.08);border:1px solid rgba(220,202,175,.25);border-radius:360px;padding:8px 16px;color:rgba(255,255,255,.55);font-size:13px;cursor:text;text-align:left;font-family:var(--ui)}
.fv-search:hover{background:rgba(255,255,255,.13);border-color:rgba(220,202,175,.4)}
.fv-search b{color:var(--gold);font-weight:600;font-size:12px}
.fv-topspace{flex:1}
.fv-me{display:flex;align-items:center;gap:10px;background:rgba(17,127,57,.25);border:1px solid rgba(112,178,136,.45);border-radius:360px;padding:5px 14px 5px 6px;cursor:pointer;transition:.13s}
.fv-me:hover{background:rgba(17,127,57,.38)}
.fv-hatmenu{position:absolute;top:calc(100% + 10px);right:0;width:280px;background:#fff;border:1px solid var(--hair);border-radius:12px;box-shadow:0 18px 50px rgba(8,18,34,.35);padding:8px;z-index:120}
.fv-hatmenu-lbl{font-family:var(--disp);font-size:9.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-ink);padding:8px 10px 6px}
.fv-hatmenu-row{display:flex;align-items:center;gap:10px;width:100%;background:none;border:none;border-radius:8px;padding:10px;text-align:left;border-left:4px solid var(--line);margin-bottom:3px;transition:.12s}
.fv-hatmenu-row:hover{background:var(--gold-50)}
.fv-hatmenu-row.on{background:var(--gold-100)}
.fv-hatmenu-row .dot{width:9px;height:9px;border-radius:3px;background:var(--line);flex-shrink:0}
.fv-hatmenu-row.t-navy{border-left-color:var(--navy)} .fv-hatmenu-row.t-navy .dot{background:var(--navy)}
.fv-hatmenu-row.t-gold{border-left-color:var(--gold-2)} .fv-hatmenu-row.t-gold .dot{background:var(--gold-2)}
.fv-hatmenu-row.t-green{border-left-color:var(--green)} .fv-hatmenu-row.t-green .dot{background:var(--green)}
.fv-hatmenu-row.t-blue{border-left-color:var(--blue)} .fv-hatmenu-row.t-blue .dot{background:var(--blue)}
.fv-hatmenu-row b{font-family:var(--disp);font-size:13px;color:var(--navy);display:block;line-height:1.15}
.fv-hatmenu-row small{font-size:10.5px;color:var(--ink-3)}
.fv-hatmenu-row .chk{margin-left:auto;color:var(--green);font-weight:800}
.fv-hatmenu-foot{font-family:var(--disp);font-size:11.5px;font-weight:700;color:var(--navy);background:var(--gold);border-radius:8px;padding:10px;text-align:center;cursor:pointer;margin-top:4px}
.fv-hatmenu-foot:hover{filter:brightness(1.05)}

/* ---- MLS console (real module destination) ---- */
.fvm-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px}
.fvm-q{flex:1;min-width:220px;font-family:var(--ui);font-size:13.5px;color:var(--navy);background:#fff;border:1px solid var(--line);border-radius:360px;padding:11px 18px;min-height:44px}
.fvm-q:focus{outline:none;border-color:var(--gold-2);box-shadow:0 0 0 3px var(--gold-100)}
.fvm-tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.fvm-tbl th{font-family:var(--disp);font-size:9.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#fff;background:var(--navy);padding:11px 12px;text-align:left;white-space:nowrap}
.fvm-tbl td{padding:11px 12px;border-bottom:1px solid var(--gold-100);color:var(--ink-2);vertical-align:middle}
.fvm-tbl tr:last-child td{border-bottom:none}
.fvm-tbl tr:hover td{background:var(--gold-50)}
.fvm-tbl .mono{font-size:11px;color:var(--gold-ink);font-weight:700}
.fvm-tbl .addr{font-weight:700;color:var(--navy)}
.fvm-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fvm-field{display:flex;flex-direction:column;gap:5px}
.fvm-field span{font-family:var(--disp);font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}
.fvm-field input,.fvm-field select{font-family:var(--ui);font-size:14px;color:var(--navy);background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 12px;min-height:44px}
.fvm-field input:focus,.fvm-field select:focus{outline:none;border-color:var(--gold-2);box-shadow:0 0 0 3px var(--gold-100)}
@media(max-width:900px){.fvm-form{grid-template-columns:1fr}.fvm-tbl th:nth-child(n+5),.fvm-tbl td:nth-child(n+5){display:none}.fvm-tbl th:last-child,.fvm-tbl td:last-child{display:table-cell}}

/* ---- money (Pure Books) ---- */
.fv-tabs{display:flex;gap:4px;margin:16px 0 0;border-bottom:1px solid var(--hair);flex-wrap:wrap}
.fv-tabs button{font-family:var(--disp);font-size:12.5px;font-weight:700;color:var(--ink-3);background:none;border:none;padding:10px 16px;border-bottom:2px solid transparent;margin-bottom:-1px}
.fv-tabs button:hover{color:var(--navy)}
.fv-tabs button.on{color:var(--navy);border-bottom-color:var(--gold)}
.fvb-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}
.fvb-kpi{background:#fff;border:1px solid var(--hair);border-radius:12px;box-shadow:var(--sh);padding:14px 16px}
.fvb-kpi .v{font-family:var(--disp);font-weight:800;font-size:20px;color:var(--navy)}
.fvb-kpi .l{font-size:11px;color:var(--ink-3);font-weight:600;margin-top:2px}
.fvb-cda{display:flex;flex-direction:column;gap:0;margin-top:4px}
.fvb-cda-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--gold-100);font-size:13px;color:var(--ink-2)}
.fvb-cda-row:last-child{border-bottom:none}
.fvb-cda-row b{font-family:var(--disp);font-size:15px;color:var(--navy)}
@media(max-width:900px){.fvb-kpis{grid-template-columns:repeat(2,1fr)}}

/* ---- CRM ---- */
.fvc-pipe{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:12px}
.fvc-stage{background:var(--gold-50);border:1px solid var(--hair);border-radius:12px;padding:10px;min-height:120px}
.fvc-stage-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.fvc-stage-h b{font-family:var(--disp);font-size:11px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:.04em}
.fvc-stage-h span{font-size:10px;font-weight:800;background:var(--navy);color:var(--gold);border-radius:360px;min-width:18px;height:18px;display:grid;place-items:center;padding:0 5px}
.fvc-stage-body{display:flex;flex-direction:column;gap:7px}
.fvc-chip{background:#fff;border:1px solid var(--hair);border-left:3px solid var(--gold);border-radius:8px;box-shadow:var(--sh);padding:9px 11px;text-align:left;width:100%}
.fvc-chip b{display:block;font-size:12px;color:var(--navy);font-weight:700;line-height:1.2}
.fvc-chip small{display:block;font-size:10.5px;color:var(--ink-3);margin-top:1px}
.fvc-chip:hover{transform:translateY(-1px)}
.fvc-empty{color:var(--line);font-size:18px;text-align:center;padding:8px 0}
.fvc-segs{display:flex;gap:8px;margin:14px 0 10px;flex-wrap:wrap}
.fvc-seg{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:360px;padding:7px 14px;font-size:12.5px;font-weight:600;color:var(--ink-2)}
.fvc-seg span{font-size:10px;font-weight:800;background:var(--gold-100);color:var(--gold-ink);border-radius:360px;padding:1px 7px}
.fvc-seg.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.fvc-seg.on span{background:var(--gold);color:var(--navy)}
.fvc-heat{font-size:10px;font-weight:800;border-radius:360px;padding:3px 10px;text-transform:uppercase;letter-spacing:.04em}
.fvc-link{font-family:var(--disp);font-size:11px;font-weight:700;color:var(--navy);background:var(--gold);border:none;border-radius:360px;padding:6px 13px;white-space:nowrap}
.fvc-link.ghost{background:#fff;border:1px solid var(--line);color:var(--ink-2)}
.fvc-link:hover{filter:brightness(1.04)}
.fvc-tbl td{vertical-align:middle}
.fvc-scrim{position:fixed;inset:0;background:rgba(8,18,34,.5);display:grid;place-items:center;z-index:120;padding:20px}
.fvc-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px rgba(8,18,34,.4);padding:22px;width:100%;max-width:460px}
.fvc-modal-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.fvc-modal-h b{font-family:var(--disp);font-size:17px;color:var(--navy);font-weight:800}
.fvc-modal-h button{background:none;border:none;font-size:16px;color:var(--ink-3)}
.fvc-ai{background:var(--blue-soft);border:1px solid #b6e2f5;border-radius:10px;padding:11px 13px;font-size:12px;color:#196788;margin-bottom:14px;line-height:1.45}
@media(max-width:900px){.fvc-pipe{grid-template-columns:1fr 1fr;gap:8px}.fvc-tbl th:nth-child(3),.fvc-tbl td:nth-child(3),.fvc-tbl th:nth-child(4),.fvc-tbl td:nth-child(4){display:none}}

/* ---- CRM contact detail ---- */
.fvc-trow{cursor:pointer}
.fvc-trow:hover{background:var(--gold-50)}
.fvc-detail-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.fvc-detail-av{width:54px;height:54px;border-radius:50%;background:linear-gradient(135deg,var(--navy),var(--navy-3));color:var(--gold);font-family:var(--disp);font-weight:800;font-size:19px;display:grid;place-items:center;flex-shrink:0}
.fvc-detail-meta{font-size:12.5px;color:var(--ink-3);margin-top:5px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.fvc-catchip2{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--gold-ink);background:var(--gold-100);border-radius:360px;padding:2px 8px}
.fvc-tl{display:flex;flex-direction:column}
.fvc-tl-row{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--gold-100)}
.fvc-tl-row:last-child{border-bottom:none}
.fvc-tl-ic{width:30px;height:30px;border-radius:8px;background:var(--gold-50);display:grid;place-items:center;font-size:13px;flex-shrink:0}
.fvc-tl-tx{flex:1;min-width:0}
.fvc-tl-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.fvc-tl-h b{font-family:var(--disp);font-size:13px;color:var(--navy)}
.fvc-tl-h .when{font-size:10.5px;color:var(--ink-3);font-weight:600;flex-shrink:0}
.fvc-tl-tx small{font-size:12px;color:var(--ink-3)}
.fvc-logbar{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.fvc-logbtn{font-size:12px;font-weight:600;color:var(--navy);background:var(--gold-50);border:1px solid var(--hair);border-radius:360px;padding:7px 14px;min-height:36px}
.fvc-logbtn:hover{background:var(--gold-100)}
.fvc-next-big{font-family:var(--disp);font-size:15px;font-weight:700;color:var(--navy);background:var(--gold-50);border-radius:10px;padding:14px 16px;border-left:3px solid var(--gold)}
.fvc-fact{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--gold-100);font-size:12.5px;color:var(--ink-3)}
.fvc-fact:last-child{border-bottom:none}
.fvc-fact b{font-family:var(--disp);font-size:12.5px;color:var(--navy)}

/* ---- Action Plans ---- */
.fva-run{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--hair);border-radius:12px;box-shadow:var(--sh);padding:14px 18px}
.fva-run-tx{flex:1;min-width:0}
.fva-run-tx b{font-family:var(--disp);font-size:13.5px;color:var(--navy);display:block}
.fva-run-tx small{font-size:11.5px;color:var(--ink-3)}
.fva-run-tx strong{color:var(--ink-2)}
.fva-next{font-size:11.5px;font-weight:700;color:var(--gold-ink);margin-top:4px}
.fva-run-r{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0;width:150px}
.fva-prog{width:100%;height:6px;border-radius:360px;background:var(--gold-100);overflow:hidden}
.fva-prog i{display:block;height:100%;background:linear-gradient(90deg,var(--gold-2),var(--green));border-radius:360px}
.fva-lib{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:start;margin-top:14px}
.fva-list{display:flex;flex-direction:column;gap:8px}
.fva-libitem{background:#fff;border:1px solid var(--hair);border-radius:10px;box-shadow:var(--sh);padding:12px 14px;text-align:left;border-left:3px solid transparent}
.fva-libitem b{display:block;font-family:var(--disp);font-size:12.5px;color:var(--navy);line-height:1.25}
.fva-libitem small{display:block;font-size:10.5px;color:var(--ink-3);margin:2px 0 6px}
.fva-cat{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;border-radius:360px;padding:2px 8px}
.fva-cat.crm{background:var(--green-soft);color:var(--green)} .fva-cat.txn{background:var(--blue-soft);color:#196788}
.fva-libitem.on{border-left-color:var(--gold);background:var(--gold-50)}
.fva-detail h4{display:flex;align-items:center;gap:9px}
.fva-trig{background:var(--navy);color:#fff;border-radius:8px;padding:9px 14px;font-size:12.5px;margin-bottom:14px}
.fva-trig b{color:var(--gold)}
.fva-steps{display:flex;flex-direction:column}
.fva-step{display:flex;gap:14px;align-items:flex-start;position:relative}
.fva-day{font-family:var(--disp);font-size:10.5px;font-weight:800;color:var(--gold-ink);width:64px;flex-shrink:0;text-align:right;padding-top:2px}
.fva-line{width:2px;background:var(--gold-200);align-self:stretch;flex-shrink:0;position:relative;margin:0 2px}
.fva-step:not(:last-child) .fva-step-tx{padding-bottom:16px}
.fva-step-tx{flex:1;min-width:0}
.fva-step-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fva-step-h b{font-size:13px;color:var(--navy)}
.fva-kind{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;border-radius:360px;padding:2px 8px}
.fva-step-tx small{display:block;font-size:11.5px;color:var(--ink-3);margin-top:2px}
.fva-targets{display:flex;flex-direction:column;gap:7px;margin-top:6px;max-height:320px;overflow-y:auto}
.fva-target{display:flex;align-items:center;gap:11px;background:var(--gold-50);border:1px solid var(--hair);border-radius:9px;padding:10px 13px;text-align:left}
.fva-target:hover{background:var(--gold-100)}
.fva-target-ic{width:28px;height:28px;border-radius:7px;background:var(--navy);color:var(--gold);display:grid;place-items:center;font-size:13px;flex-shrink:0}
.fva-target .tx{flex:1;min-width:0}
.fva-target .tx b{font-family:var(--disp);font-size:13px;color:var(--navy);display:block;line-height:1.2}
.fva-target .tx small{font-size:11px;color:var(--ink-3)}
.fva-target-go{font-family:var(--disp);font-size:11px;font-weight:700;color:var(--gold-ink);flex-shrink:0}
@media(max-width:900px){.fva-lib{grid-template-columns:1fr}.fva-run{flex-wrap:wrap}.fva-run-r{width:100%;flex-direction:row;align-items:center}.fva-prog{flex:1}}

/* ---- Client Room (the deal from the client's side) ---- */
.fvcl-head{background:linear-gradient(135deg,var(--green),#0c6e30);border-radius:16px;box-shadow:var(--sh);padding:24px 26px;color:#fff}
.fvcl-head-tag{font-family:var(--disp);font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#bfe6cc}
.fvcl-head-addr{font-family:var(--disp);font-weight:800;font-size:23px;letter-spacing:-.4px;margin-top:5px}
.fvcl-head-sub{font-size:13px;color:#d6efde;margin-top:4px}
.fvcl-journey{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.fvcl-jstep{display:flex;align-items:flex-start;gap:9px;background:#fff;border:1px solid var(--hair);border-radius:12px;box-shadow:var(--sh);padding:11px 14px;flex:1;min-width:150px}
.fvcl-jstep .dot{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-family:var(--disp);font-weight:800;font-size:11px;flex-shrink:0;background:var(--gold-100);color:var(--ink-3)}
.fvcl-jstep.done .dot{background:var(--green);color:#fff}
.fvcl-jstep.now{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft),var(--sh);flex:2}
.fvcl-jstep.now .dot{background:var(--green);color:#fff}
.fvcl-jstep .tx b{font-family:var(--disp);font-size:12.5px;color:var(--navy);display:block;line-height:1.2}
.fvcl-jstep .tx small{display:block;font-size:11.5px;color:var(--ink-2);margin-top:3px;line-height:1.4}
.fvcl-now{background:#fff;border:2px solid var(--green);border-radius:16px;box-shadow:var(--sh);padding:16px 18px}
.fvcl-now-h{font-family:var(--disp);font-weight:700;font-size:14px;color:var(--green);margin-bottom:10px}
.fvcl-signrow{display:flex;align-items:center;justify-content:space-between;gap:12px}
.fvcl-signrow b{font-size:13.5px;color:var(--navy);display:block} .fvcl-signrow small{font-size:11.5px;color:var(--ink-3)}
.fvcl-done-chip{font-size:12px;font-weight:700;color:var(--green);background:var(--green-soft);border-radius:360px;padding:7px 14px}
.fvcl-docs{display:flex;flex-direction:column;gap:8px}
.fvcl-doc{display:flex;align-items:center;gap:12px;background:var(--gold-50);border:1px solid var(--hair);border-radius:10px;padding:11px 14px;text-align:left;width:100%}
.fvcl-doc .ic{width:30px;height:30px;border-radius:8px;background:#fff;border:1px solid var(--hair);display:grid;place-items:center;color:var(--gold-ink);flex-shrink:0}
.fvcl-doc .tx{flex:1;min-width:0}
.fvcl-doc .tx b{font-size:12.5px;color:var(--navy);display:block;line-height:1.2}
.fvcl-doc .tx small{font-size:11px;color:var(--ink-3)}
.fvcl-doc .open{font-family:var(--disp);font-size:11px;font-weight:700;color:var(--navy);background:var(--gold);border-radius:360px;padding:5px 12px}
.fvcl-doc:hover{background:var(--gold-100)}
.fvcl-priv{background:var(--gold-50)}
.fvcl-privrow{display:flex;gap:11px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--gold-100)}
.fvcl-privrow:last-child{border-bottom:none}
.fvcl-privrow .lock{flex-shrink:0;font-size:14px;filter:grayscale(.3)}
.fvcl-privrow b{font-size:12.5px;color:var(--ink-2);display:block;line-height:1.25}
.fvcl-privrow small{font-size:11.5px;color:var(--ink-3);display:block;margin-top:2px;line-height:1.4}
.fvcl-team{display:flex;flex-direction:column;gap:9px}
.fvcl-member{display:flex;align-items:center;gap:11px}
.fvcl-member .av{width:34px;height:34px;border-radius:50%;background:var(--navy);color:var(--gold);font-size:11px;font-weight:800;display:grid;place-items:center;flex-shrink:0}
.fvcl-member .tx{flex:1;min-width:0}
.fvcl-member .tx b{font-size:13px;color:var(--navy);display:block;line-height:1.15}
.fvcl-member .tx small{font-size:11px;color:var(--ink-3)}
.fvcl-msg{font-size:11px;font-weight:700;color:var(--navy);background:#fff;border:1px solid var(--line);border-radius:360px;padding:6px 13px}
.fvcl-msg:hover{background:var(--gold-50)}
.fvcl-next{display:flex;flex-direction:column}
.fvcl-nextrow{display:flex;gap:12px;padding:9px 0;border-bottom:1px solid var(--gold-100)}
.fvcl-nextrow:last-child{border-bottom:none}
.fvcl-nextrow .when{font-family:var(--disp);font-size:11px;font-weight:800;color:var(--gold-ink);width:80px;flex-shrink:0}
.fvcl-nextrow .tx{font-size:12.5px;color:var(--ink-2)}
.fvcl-assure{background:var(--navy);border-radius:16px;padding:18px 20px;margin-top:14px;color:#fff}
.fvcl-assure b{font-family:var(--disp);font-size:14px;color:var(--gold);display:block;margin-bottom:5px}
.fvcl-assure p{margin:0;font-size:12.5px;color:#d7dde6;line-height:1.5}

/* ---- Calendar ---- */
.fvk-layers{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.fvk-layer{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--line);border-radius:360px;padding:6px 13px;font-size:12px;font-weight:600;color:var(--ink-3)}
.fvk-layer .sw{width:11px;height:11px;border-radius:3px;background:var(--lc);opacity:.3}
.fvk-layer.on{color:var(--navy);border-color:var(--lc)}
.fvk-layer.on .sw{opacity:1}
.fvk-grid2{display:grid;grid-template-columns:1.5fr 1fr;gap:16px;align-items:start;margin-top:14px}
.fvk-cal{padding:18px}
.fvk-month{font-family:var(--disp);font-weight:800;font-size:16px;color:var(--navy);margin-bottom:12px}
.fvk-dows{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px}
.fvk-dows span{font-family:var(--disp);font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);text-align:center}
.fvk-days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.fvk-cell{aspect-ratio:1;background:var(--gold-50);border:1px solid var(--hair);border-radius:8px;padding:6px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;position:relative}
.fvk-cell.empty{background:none;border:none}
.fvk-cell .dn{font-family:var(--disp);font-size:12px;font-weight:700;color:var(--ink-2)}
.fvk-cell .dots{display:flex;gap:3px;flex-wrap:wrap}
.fvk-cell .dots i{width:6px;height:6px;border-radius:50%}
.fvk-cell:hover{border-color:var(--gold-2)}
.fvk-cell.today{background:var(--gold-100)}
.fvk-cell.today .dn{color:var(--gold-ink)}
.fvk-cell.sel{border-color:var(--navy);box-shadow:0 0 0 2px var(--navy)}
.fvk-day h4{display:flex;align-items:center;gap:9px}
.fvk-evlist{display:flex;flex-direction:column;gap:8px}
.fvk-ev{display:flex;align-items:center;gap:12px;background:var(--gold-50);border:1px solid var(--hair);border-left:3px solid var(--navy);border-radius:8px;padding:10px 13px}
.fvk-ev-tx{flex:1;min-width:0}
.fvk-ev-tx b{font-size:12.5px;color:var(--navy);display:block;line-height:1.25}
.fvk-ev-tx small{font-size:11px;color:var(--ink-3)}
.fvk-agenda{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:12px}
.fvk-agday{background:#fff;border:1px solid var(--hair);border-radius:12px;box-shadow:var(--sh);padding:13px 15px}
.fvk-agday-h{font-family:var(--disp);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--gold-ink);margin-bottom:9px}
.fvk-agrow{display:flex;align-items:center;gap:9px;padding:5px 0}
.fvk-agrow .t{font-family:var(--disp);font-size:11px;font-weight:700;color:var(--ink-2);width:42px;flex-shrink:0}
.fvk-agrow .sw{width:9px;height:9px;border-radius:3px;flex-shrink:0}
.fvk-agrow .nm{font-size:12px;color:var(--navy)}
@media(max-width:900px){.fvk-grid2{grid-template-columns:1fr}}
.fvk-draft-note{font-size:11.5px;color:var(--ink-3);background:var(--gold-50);border-radius:8px;padding:9px 12px;margin-top:4px;line-height:1.45}

/* ---- Pure Sign ---- */
.fvs-grid{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:start;margin-top:14px}
.fvs-list{display:flex;flex-direction:column;gap:8px}
.fvs-item{background:#fff;border:1px solid var(--hair);border-radius:10px;box-shadow:var(--sh);padding:12px 14px;text-align:left;border-left:3px solid transparent}
.fvs-item-h{display:flex;align-items:center;justify-content:space-between;gap:8px}
.fvs-item-h b{font-family:var(--disp);font-size:12.5px;color:var(--navy);line-height:1.2}
.fvs-item small{font-size:10.5px;color:var(--ink-3);display:block;margin-top:3px}
.fvs-item.on{border-left-color:var(--gold);background:var(--gold-50)}
.fvs-detail h4{display:flex;align-items:center;gap:9px}
.fvs-deal-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--ink-2);padding:8px 0 4px}
.fvs-sub-h{font-family:var(--disp);font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-ink);margin:16px 0 8px}
.fvs-signers{display:flex;flex-direction:column;gap:8px}
.fvs-signer{display:flex;align-items:center;gap:11px;background:var(--gold-50);border:1px solid var(--hair);border-radius:8px;padding:9px 12px}
.fvs-signer .num{width:22px;height:22px;border-radius:50%;background:var(--navy);color:var(--gold);font-family:var(--disp);font-size:11px;font-weight:800;display:grid;place-items:center;flex-shrink:0}
.fvs-signer .tx{flex:1;min-width:0}
.fvs-signer .tx b{font-size:12.5px;color:var(--navy);display:block;line-height:1.15}
.fvs-signer .tx small{font-size:11px;color:var(--ink-3)}
.fvs-sgstate{font-size:11.5px;font-weight:700;white-space:nowrap}
.fvs-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px rgba(8,18,34,.4);padding:22px;width:100%;max-width:480px}
.fvs-paper{background:#fff;border:1px solid var(--line);border-radius:8px;padding:22px;box-shadow:inset 0 0 0 1px var(--gold-50)}
.fvs-paper-h{font-family:var(--disp);font-weight:800;font-size:16px;color:var(--navy)}
.fvs-paper-sub{font-size:11px;color:var(--ink-3);margin:2px 0 14px}
.fvs-paper-body p{font-size:12.5px;color:var(--ink-2);line-height:1.5;margin:0 0 10px}
.fvs-sigline{display:flex;align-items:center;gap:10px;margin-top:14px;padding-top:14px;border-top:1px dashed var(--line)}
.fvs-sigline span{font-size:11px;font-weight:700;color:var(--gold-ink);white-space:nowrap}
.fvs-sigline i{flex:1;height:38px;border-bottom:2px solid var(--navy)}
.fvs-done{text-align:center;padding:14px 8px}
.fvs-done-ic{width:54px;height:54px;border-radius:50%;background:var(--green-soft);color:var(--green);font-size:26px;display:grid;place-items:center;margin:0 auto 12px}
.fvs-done b{font-family:var(--disp);font-size:17px;color:var(--navy);display:block}
.fvs-done p{font-size:12.5px;color:var(--ink-2);line-height:1.5;max-width:36ch;margin:6px auto 16px}
@media(max-width:900px){.fvs-grid{grid-template-columns:1fr}}

/* ---- Association ---- */
.fvaa-committees{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:6px}
.fvaa-comm{background:#fff;border:1px solid var(--hair);border-radius:12px;box-shadow:var(--sh);padding:15px 17px}
.fvaa-comm.mine{border-color:var(--gold-2);background:var(--gold-50)}
.fvaa-comm-h{display:flex;align-items:center;justify-content:space-between;gap:8px}
.fvaa-comm-h b{font-family:var(--disp);font-size:14px;color:var(--navy)}
.fvaa-chip{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;background:var(--gold);color:var(--navy);border-radius:360px;padding:3px 8px}
.fvaa-comm-meta{font-size:11.5px;color:var(--ink-3);margin:4px 0}
.fvaa-comm-next{font-size:12px;color:var(--ink-2);font-weight:600;margin-bottom:10px}
.fvaa-990row{display:flex;align-items:center;gap:12px;padding:7px 0;border-bottom:1px solid var(--gold-100)}
.fvaa-990row:last-child{border-bottom:none}
.fvaa-990row .src{font-size:12.5px;color:var(--navy);width:180px;flex-shrink:0}
.fvaa-990row .bar{flex:1;height:8px;background:var(--gold-100);border-radius:360px;overflow:hidden}
.fvaa-990row .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold-2),var(--gold));border-radius:360px}
.fvaa-990row .amt{font-family:var(--disp);font-size:12.5px;font-weight:700;color:var(--navy);width:80px;text-align:right;flex-shrink:0}
.fvaa-990row .pct{font-size:11px;color:var(--ink-3);width:36px;text-align:right;flex-shrink:0}
@media(max-width:900px){.fvaa-990row .src{width:120px}}

/* ---- Legal Forms ---- */
.fvlf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-top:14px}
.fvlf-card{background:#fff;border:1px solid var(--hair);border-radius:12px;box-shadow:var(--sh);padding:15px 17px;text-align:left;display:flex;flex-direction:column;gap:4px}
.fvlf-card:hover{transform:translateY(-2px);border-color:var(--gold-2)}
.fvlf-code{display:flex;align-items:center;justify-content:space-between;font-family:var(--disp);font-weight:800;font-size:12px;color:var(--gold-ink);letter-spacing:.03em}
.fvlf-cat{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;border-radius:360px;padding:3px 8px;color:#fff}
.fvlf-cat.c-trec{background:var(--navy)} .fvlf-cat.c-txr{background:var(--blue)} .fvlf-cat.c-financing{background:var(--green)} .fvlf-cat.c-company{background:var(--gold-ink)}
.fvlf-card b{font-family:var(--disp);font-size:13.5px;color:var(--navy);line-height:1.25;margin-top:4px}
.fvlf-card small{font-size:11.5px;color:var(--ink-3);flex:1}
.fvlf-foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding-top:10px;border-top:1px solid var(--gold-100);font-size:10.5px;color:var(--ink-3)}
.fvlf-go{font-family:var(--disp);font-weight:700;font-size:11px;color:var(--navy)}
.fvlf-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:900px){.fvlf-form{grid-template-columns:1fr}}

/* ---- Comms / Messages ---- */
.fvmg-grid{display:grid;grid-template-columns:280px 1fr;gap:16px;align-items:start;margin-top:14px}
.fvmg-list{display:flex;flex-direction:column;gap:8px}
.fvmg-thread{background:#fff;border:1px solid var(--hair);border-radius:12px;box-shadow:var(--sh);padding:13px 15px;text-align:left;border-left:3px solid transparent}
.fvmg-thread-h{display:flex;align-items:center;justify-content:space-between;gap:8px}
.fvmg-thread-h b{font-family:var(--disp);font-size:13px;color:var(--navy)}
.fvmg-unread{font-size:10px;font-weight:800;background:var(--green);color:#fff;border-radius:360px;min-width:18px;height:18px;display:grid;place-items:center;padding:0 5px}
.fvmg-thread small{font-size:11.5px;color:var(--ink-3);display:block;margin:2px 0 6px}
.fvmg-parties{font-size:10.5px;color:var(--gold-ink);font-weight:600}
.fvmg-thread.on{border-left-color:var(--gold);background:var(--gold-50)}
.fvmg-conv{display:flex;flex-direction:column;padding:0;overflow:hidden}
.fvmg-conv-h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 18px;border-bottom:1px solid var(--hair)}
.fvmg-msgs{display:flex;flex-direction:column;gap:12px;padding:18px;max-height:440px;overflow-y:auto}
.fvmg-msg{display:flex;gap:9px;align-items:flex-end;max-width:78%}
.fvmg-msg.me{align-self:flex-end;flex-direction:row-reverse}
.fvmg-av{width:28px;height:28px;border-radius:50%;background:var(--navy);color:var(--gold);font-size:9px;font-weight:800;display:grid;place-items:center;flex-shrink:0}
.fvmg-bub{background:var(--gold-50);border:1px solid var(--hair);border-radius:14px;padding:10px 14px}
.fvmg-msg.me .fvmg-bub{background:var(--navy);border-color:var(--navy)}
.fvmg-from{font-family:var(--disp);font-size:10.5px;font-weight:700;color:var(--gold-ink);display:block;margin-bottom:3px}
.fvmg-bub p{margin:0;font-size:13px;color:var(--ink-2);line-height:1.45}
.fvmg-msg.me .fvmg-bub p{color:#fff}
.fvmg-time{font-size:10px;color:var(--ink-3);display:block;margin-top:5px}
.fvmg-msg.me .fvmg-time{color:rgba(255,255,255,.6)}
.fvmg-compose{display:flex;gap:10px;padding:14px 18px;border-top:1px solid var(--hair)}
.fvmg-compose input{flex:1;font-family:var(--ui);font-size:14px;color:var(--navy);border:1px solid var(--line);border-radius:360px;padding:11px 16px;min-height:44px}
.fvmg-compose input:focus{outline:none;border-color:var(--gold-2);box-shadow:0 0 0 3px var(--gold-100)}
.fvmg-foot{font-size:10.5px;color:var(--ink-3);text-align:center;padding:0 18px 14px}
@media(max-width:900px){.fvmg-grid{grid-template-columns:1fr}}

/* ---- Documents Vault ---- */
.fvdv-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:16px;flex-wrap:wrap}
.fvdv-search{font-family:var(--ui);font-size:13px;color:var(--navy);border:1px solid var(--line);border-radius:360px;padding:9px 16px;min-width:220px;min-height:40px}
.fvdv-search:focus{outline:none;border-color:var(--gold-2);box-shadow:0 0 0 3px var(--gold-100)}
.fvdv-list{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.fvdv-row{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--hair);border-radius:10px;box-shadow:var(--sh);padding:12px 16px}
.fvdv-ic{width:34px;height:34px;border-radius:8px;background:var(--navy-soft,#eef1f6);color:var(--navy);display:grid;place-items:center;font-size:14px;flex-shrink:0}
.fvdv-tx{flex:1;min-width:0}
.fvdv-tx b{font-family:var(--disp);font-size:13px;color:var(--navy);display:block;line-height:1.2}
.fvdv-tx small{font-size:11px;color:var(--ink-3)}
.fvdv-share{font-size:11.5px;color:var(--ink-2);width:130px;flex-shrink:0;text-align:right}
.fvdv-share em{color:var(--ink-3);font-style:normal}
.fvdv-acts{display:flex;gap:6px;flex-shrink:0}
@media(max-width:900px){.fvdv-share{display:none}.fvdv-tx{flex-basis:60%}}

/* ---- Marketplace storefront ---- */
.fvmk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-top:14px}
.fvmk-card{background:#fff;border:1px solid var(--hair);border-radius:14px;box-shadow:var(--sh);overflow:hidden;display:flex;flex-direction:column}
.fvmk-card.installed{border-color:var(--green)}
.fvmk-card-main{text-align:left;padding:16px 17px 12px;background:none;border:none;flex:1;display:flex;flex-direction:column;gap:8px}
.fvmk-card-h{display:flex;align-items:flex-start;gap:11px}
.fvmk-ic{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,var(--navy),var(--navy-3));color:var(--gold);font-family:var(--disp);font-weight:800;font-size:18px;display:grid;place-items:center;flex-shrink:0}
.fvmk-card-tt{flex:1;min-width:0}
.fvmk-card-tt b{font-family:var(--disp);font-size:14px;color:var(--navy);display:block;line-height:1.2;margin-bottom:4px}
.fvmk-catchip{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--blue);background:var(--blue-soft);border-radius:360px;padding:2px 8px}
.fvmk-installed-chip{font-size:9.5px;font-weight:800;color:var(--green);background:var(--green-soft);border-radius:360px;padding:3px 9px;white-space:nowrap}
.fvmk-card-main p{margin:0;font-size:12px;color:var(--ink-2);line-height:1.45;flex:1}
.fvmk-card-meta{font-size:11px;color:var(--ink-3)}
.fvmk-stars{color:var(--gold-2);font-size:12px;letter-spacing:1px}
.fvmk-stars .dim{color:var(--gold-100)}
.fvmk-stars small{color:var(--ink-3);font-size:11px;letter-spacing:0}
.fvmk-card-foot{display:flex;align-items:center;justify-content:space-between;padding:11px 17px;border-top:1px solid var(--gold-100);background:var(--gold-50)}
.fvmk-price{font-family:var(--disp);font-weight:800;font-size:18px;color:var(--navy)}
.fvmk-price small{font-size:11px;font-weight:600;color:var(--ink-3)}
.fvmk-price.sm{font-size:15px}
.fvmk-detail-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.fvmk-detail-ic{width:56px;height:56px;border-radius:14px;background:linear-gradient(135deg,var(--navy),var(--navy-3));color:var(--gold);font-family:var(--disp);font-weight:800;font-size:26px;display:grid;place-items:center;flex-shrink:0}
.fvmk-detail-meta{font-size:12.5px;color:var(--ink-3);margin-top:5px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.fvmk-buy{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.fvmk-feats{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.fvmk-feat{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--ink-2)}
.fvmk-feat span{width:18px;height:18px;border-radius:50%;background:var(--green-soft);color:var(--green);font-size:10px;font-weight:800;display:grid;place-items:center;flex-shrink:0}
.fvmk-bill{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--gold-100);font-size:12.5px;color:var(--ink-2)}
.fvmk-bill:last-of-type{border-bottom:none}
.fvmk-bill b{font-family:var(--disp);font-size:12.5px;color:var(--navy)}
@media(max-width:900px){.fvmk-detail-head{flex-direction:column;align-items:flex-start}.fvmk-buy{align-items:flex-start}}

/* ---- Vendors ---- */
.fvvn-portal-note{background:var(--navy);color:#fff;border-radius:8px;padding:11px 15px;font-size:12.5px;margin-top:16px}
.fvvn-portal-note b{color:var(--gold)}
.fvvn-jobtabs{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.fvvn-jobtab{background:#fff;border:1px solid var(--hair);border-radius:10px;box-shadow:var(--sh);padding:11px 15px;text-align:left;border-left:3px solid transparent}
.fvvn-jobtab b{font-family:var(--disp);font-size:13px;color:var(--navy);display:block}
.fvvn-jobtab small{font-size:11px;color:var(--ink-3)}
.fvvn-jobtab.on{border-left-color:var(--gold);background:var(--gold-50)}
.fvvn-task{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--gold-100)}
.fvvn-task:last-child{border-bottom:none}
.fvvn-task .nm{font-size:12.5px;color:var(--navy)}
.fvvn-see{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--ink-2);padding:6px 0}
.fvvn-see .ok{width:18px;height:18px;border-radius:50%;background:var(--green-soft);color:var(--green);font-size:10px;font-weight:800;display:grid;place-items:center;flex-shrink:0}
.fvvn-see.hid{color:var(--ink-3)}
.fvvn-see .lock{flex-shrink:0;filter:grayscale(.3)}

/* ---- Property Intel ---- */
.fvpi-subjects{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
.fvpi-subject{background:#fff;border:1px solid var(--hair);border-radius:10px;box-shadow:var(--sh);padding:11px 15px;text-align:left;border-left:3px solid transparent}
.fvpi-subject b{font-family:var(--disp);font-size:13px;color:var(--navy);display:block}
.fvpi-subject small{font-size:11px;color:var(--ink-3)}
.fvpi-subject.on{border-left-color:var(--gold);background:var(--gold-50)}
.fvpi-est{font-family:var(--disp);font-weight:800;font-size:34px;color:var(--navy);letter-spacing:-.5px;margin:6px 0 2px}
.fvpi-band{display:flex;align-items:center;gap:10px;margin:8px 0 14px}
.fvpi-band .lo,.fvpi-band .hi{font-size:11px;color:var(--ink-3);font-weight:600;flex-shrink:0}
.fvpi-band .bar{flex:1;height:8px;border-radius:360px;background:linear-gradient(90deg,var(--gold-100),var(--gold),var(--green));position:relative}
.fvpi-band .bar i{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--navy);transform:translate(-50%,-50%)}
.fvpi-facts{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.fvpi-facts div{background:var(--gold-50);border-radius:8px;padding:8px 10px}
.fvpi-facts span{font-size:10px;color:var(--ink-3);font-weight:600;display:block;text-transform:uppercase;letter-spacing:.03em}
.fvpi-facts b{font-family:var(--disp);font-size:14px;color:var(--navy)}
.fvpi-hist{display:flex;flex-direction:column}
.fvpi-hist-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--gold-100)}
.fvpi-hist-row:last-child{border-bottom:none}
.fvpi-hist-row .yr{font-family:var(--disp);font-weight:800;font-size:12px;color:var(--gold-ink);width:42px;flex-shrink:0}
.fvpi-hist-row .ev{flex:1;font-size:12.5px;color:var(--ink-2)}
.fvpi-hist-row .pr{font-family:var(--disp);font-weight:700;font-size:13px;color:var(--navy)}
.fvpi-hood{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fvpi-hood-kpi{background:var(--gold-50);border-radius:8px;padding:10px 12px}
.fvpi-hood-kpi .v{font-family:var(--disp);font-weight:800;font-size:17px;color:var(--navy)}
.fvpi-hood-kpi .l{font-size:11px;color:var(--ink-3);font-weight:600}
@media(max-width:560px){.fvpi-facts{grid-template-columns:1fr 1fr}}

/* ---- Pure Sites ---- */
.fvst-pages{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-top:14px}
.fvst-page{background:#fff;border:1px solid var(--hair);border-radius:14px;box-shadow:var(--sh);overflow:hidden}
.fvst-page-prev{height:88px;background:linear-gradient(135deg,var(--navy),var(--navy-3));display:flex;align-items:flex-end;padding:12px}
.fvst-type{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--navy);background:var(--gold);border-radius:360px;padding:3px 9px}
.fvst-page-body{padding:13px 15px}
.fvst-page-body b{font-family:var(--disp);font-size:14px;color:var(--navy);display:block}
.fvst-url{font-size:11.5px;color:var(--blue);cursor:pointer;display:block;margin:3px 0 8px}
.fvst-page-meta{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--ink-3)}
.fvst-rev-head{display:flex;gap:18px;align-items:center;margin-top:16px;flex-wrap:wrap}
.fvst-rev-score{background:#fff;border:1px solid var(--hair);border-radius:14px;box-shadow:var(--sh);padding:16px 24px;text-align:center}
.fvst-rev-score .n{font-family:var(--disp);font-weight:800;font-size:34px;color:var(--navy)}
.fvst-rev-score .s{color:var(--gold-2);font-size:15px;letter-spacing:2px}
.fvst-rev-score .c{font-size:11px;color:var(--ink-3);margin-top:3px}
.fvst-reviews{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:14px}
.fvst-review{background:#fff;border:1px solid var(--hair);border-radius:12px;box-shadow:var(--sh);padding:15px 17px}
.fvst-review.pending{opacity:.7;border-style:dashed}
.fvst-review-h{display:flex;align-items:center;justify-content:space-between;gap:8px}
.fvst-review-h b{font-family:var(--disp);font-size:13px;color:var(--navy)}
.fvst-stars{color:var(--gold-2);font-size:13px;letter-spacing:1px}
.fvst-stars .dim{color:var(--gold-100)}
.fvst-review p{font-size:12.5px;color:var(--ink-2);line-height:1.5;margin:8px 0}
.fvst-review-f{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px}
.fvst-review-f .ok{color:var(--green);font-weight:700}
.fvst-review-f .pend{color:var(--gold-ink);font-weight:700}

/* ---- Listing Tools ---- */
.fvlt-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--gold-100)}
.fvlt-row:last-child{border-bottom:none}
.fvlt-row .nm{font-size:12.5px;color:var(--navy);font-weight:600}
.fvlt-row .meta{font-size:11.5px;color:var(--ink-3);margin-left:auto;margin-right:10px}
.st-muted{background:var(--gold-100);color:var(--ink-3)}
.fvlt-activity{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:12px}
.fvlt-act{background:#fff;border:1px solid var(--hair);border-radius:12px;box-shadow:var(--sh);padding:14px 16px}
.fvlt-act .v{font-family:var(--disp);font-weight:800;font-size:22px;color:var(--navy)}
.fvlt-act .l{font-size:11.5px;color:var(--ink-2);font-weight:600;margin-top:2px}
.fvlt-act .d{font-size:10.5px;color:var(--green);font-weight:700;margin-top:3px}
@media(max-width:760px){.fvlt-activity{grid-template-columns:1fr 1fr}}

/* ---- Property Search ---- */
.fvsh-filters{display:flex;align-items:flex-end;gap:12px;margin-top:16px;flex-wrap:wrap;background:#fff;border:1px solid var(--hair);border-radius:12px;box-shadow:var(--sh);padding:14px 16px}
.fvsh-f{display:flex;flex-direction:column;gap:5px}
.fvsh-f span{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3)}
.fvsh-f select{font-family:var(--ui);font-size:14px;color:var(--navy);border:1px solid var(--line);border-radius:8px;padding:9px 12px;background:#fff;min-height:40px}
.fvsh-count{margin-left:auto;font-family:var(--disp);font-weight:700;font-size:13px;color:var(--gold-ink);align-self:center}
.fvsh-saved-row{display:flex;align-items:center;gap:8px;margin-top:14px;flex-wrap:wrap}
.fvsh-saved-lbl{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}
.fvsh-chip{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--navy);background:#fff;border:1px solid var(--hair);border-radius:360px;padding:6px 8px 6px 13px}
.fvsh-chip span{font-size:10px;font-weight:800;background:var(--gold-100);color:var(--gold-ink);border-radius:360px;padding:2px 7px}
.fvsh-chip:hover{border-color:var(--gold-2)}
.fvsh-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:14px}
.fvsh-card{background:#fff;border:1px solid var(--hair);border-radius:14px;box-shadow:var(--sh);overflow:hidden}
.fvsh-photo{height:130px;display:flex;justify-content:space-between;padding:11px}
.fvsh-heart{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.92);border:none;font-size:17px;color:var(--red);align-self:flex-start;line-height:1;display:grid;place-items:center;cursor:pointer}
.fvsh-heart.on{background:#fff}
.fvsh-heart:hover{transform:scale(1.08)}
.fvsh-card-body{padding:13px 15px}
.fvsh-price{font-family:var(--disp);font-weight:800;font-size:19px;color:var(--navy)}
.fvsh-addr{font-size:12.5px;color:var(--ink-2);margin:2px 0 6px}
.fvsh-specs{font-size:11.5px;color:var(--ink-3)}
.fvsh-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:11px;padding-top:11px;border-top:1px solid var(--gold-100);font-size:10.5px;color:var(--ink-3)}
.fvsh-empty{grid-column:1/-1;text-align:center;color:var(--ink-3);padding:36px;font-size:13px}

/* ---- Settings / Account ---- */
.fvse-head{display:flex;align-items:center;gap:14px}
.fvse-av{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,var(--navy),var(--navy-3));color:var(--gold);font-family:var(--disp);font-weight:800;font-size:17px;display:grid;place-items:center;flex-shrink:0}
.fvse-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--gold-100);padding:13px 0}
.fvse-toggle-row:last-of-type{border-bottom:none}
.fvse-toggle-row .tx b{font-family:var(--disp);font-size:13.5px;color:var(--navy);display:block}
.fvse-toggle-row .tx small{font-size:11.5px;color:var(--ink-3)}
.fvse-sw{width:42px;height:24px;border-radius:360px;background:var(--line);position:relative;flex-shrink:0;transition:.16s}
.fvse-sw.on{background:var(--green)}
.fvse-sw i{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.16s}
.fvse-sw.on i{left:21px}
.fvse-hats{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.fvse-hat{display:flex;align-items:center;gap:13px;background:#fff;border:1px solid var(--hair);border-radius:12px;box-shadow:var(--sh);padding:15px 17px}
.fvse-hat .dot{width:12px;height:12px;border-radius:4px;flex-shrink:0}
.fvse-hat.t-navy .dot{background:var(--navy)} .fvse-hat.t-gold .dot{background:var(--gold-2)}
.fvse-hat.t-green .dot{background:var(--green)} .fvse-hat.t-blue .dot{background:var(--blue)}
.fvse-hat .tx{flex:1;min-width:0}
.fvse-hat .tx b{font-family:var(--disp);font-size:14px;color:var(--navy);display:block}
.fvse-hat .tx small{font-size:11.5px;color:var(--gold-ink);font-weight:600}
.fvse-hat .tx .desc{font-size:12px;color:var(--ink-3);margin-top:2px}
.fvse-hat-on{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--green);background:var(--green-soft);border-radius:360px;padding:3px 9px;flex-shrink:0}
.fvse-brand-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--gold-100);font-size:13px;color:var(--navy);font-weight:600}
.fvse-swatches{display:flex;gap:8px}
.fvse-swatch{width:30px;height:30px;border-radius:8px;border:2px solid transparent;cursor:pointer}
.fvse-swatch.on{border-color:var(--navy);box-shadow:0 0 0 2px #fff inset}
.fvse-sec{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--gold-100);font-size:13px;color:var(--navy)}
.fvse-sub-h{font-family:var(--disp);font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-ink);margin:16px 0 8px}
.fvse-session{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--gold-100)}
.fvse-session:last-child{border-bottom:none}
.fvse-session b{font-size:12.5px;color:var(--navy);display:block} .fvse-session small{font-size:11px;color:var(--ink-3)}

/* ---- Room: post bar + done tasks ---- */
.fv-postbar{display:flex;gap:10px}
.fv-postbar input{flex:1;font-family:var(--ui);font-size:14px;color:var(--navy);border:1px solid var(--line);border-radius:360px;padding:10px 16px;min-height:42px}
.fv-postbar input:focus{outline:none;border-color:var(--gold-2);box-shadow:0 0 0 3px var(--gold-100)}
.fv-task.done{color:var(--ink-3);text-decoration:line-through}

/* ---- Deal Spine ---- */
.fvds-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;background:linear-gradient(135deg,var(--navy),var(--navy-3));border-radius:16px;padding:20px 22px;color:#fff}
.fvds-eyebrow{font-family:var(--disp);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.fvds-hero .fv-h1{color:#fff}
.fvds-hero .fv-sub{color:rgba(255,255,255,.82)}
.fvds-lens-btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--disp);font-size:12px;font-weight:700;color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:360px;padding:9px 15px;cursor:pointer;flex-shrink:0}
.fvds-lens-btn.on{background:var(--gold);color:var(--navy);border-color:var(--gold)}
.fvds-lens-btn .eye{font-size:13px}
.fvds-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}
.fvds-stat{background:#fff;border:1px solid var(--hair);border-radius:12px;box-shadow:var(--sh);padding:14px 16px;text-align:center}
.fvds-stat .v{font-family:var(--disp);font-weight:800;font-size:24px;color:var(--navy)}
.fvds-stat .l{font-size:11px;color:var(--ink-3);font-weight:600;margin-top:2px}
.fvds-spine{position:relative;margin-top:8px}
.fvds-node{display:flex;gap:16px;align-items:stretch}
.fvds-rail{position:relative;width:34px;flex-shrink:0;display:flex;justify-content:center}
.fvds-rail::before{content:'';position:absolute;top:0;bottom:-0;width:2px;background:var(--gold-100)}
.fvds-node:first-child .fvds-rail::before{top:17px}
.fvds-node:last-child .fvds-rail::before{bottom:auto;height:17px}
.fvds-dot{position:relative;z-index:1;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-family:var(--disp);font-weight:800;font-size:13px;background:var(--gold-100);color:var(--ink-3);flex-shrink:0}
.fvds-node.done .fvds-dot{background:var(--green);color:#fff}
.fvds-node.active .fvds-dot{background:var(--gold);color:var(--navy);box-shadow:0 0 0 4px var(--gold-100)}
.fvds-card{flex:1;min-width:0;background:#fff;border:1px solid var(--hair);border-radius:14px;box-shadow:var(--sh);padding:15px 17px;margin-bottom:14px}
.fvds-node.active .fvds-card{border-color:var(--gold-2);border-left:3px solid var(--gold)}
.fvds-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.fvds-mod{display:inline-flex;align-items:center;gap:8px;font-family:var(--disp);font-weight:700;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--gold-ink)}
.fvds-mod .ic{width:22px;height:22px;border-radius:6px;background:var(--navy);color:var(--gold);display:grid;place-items:center;font-size:11px}
.fvds-state{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;border-radius:360px;padding:3px 9px}
.fvds-state.st-done{background:var(--green-soft);color:var(--green)}
.fvds-state.st-active{background:var(--gold-100);color:var(--gold-ink)}
.fvds-state.st-todo{background:var(--line);color:var(--ink-3)}
.fvds-title{font-family:var(--disp);font-weight:800;font-size:16px;color:var(--navy);margin:8px 0 3px}
.fvds-detail{font-size:12.5px;color:var(--ink-2);line-height:1.5;margin:0}
.fvds-statline{font-size:11.5px;color:var(--gold-ink);font-weight:700;margin-top:8px;background:var(--gold-50);border-radius:7px;padding:6px 10px;display:inline-block}
.fvds-artifact{display:flex;align-items:center;gap:9px;margin-top:10px;padding:9px 11px;background:var(--paper,#faf7f2);border:1px solid var(--gold-100);border-radius:9px;flex-wrap:wrap}
.fvds-artifact .lab{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}
.fvds-artifact b{font-size:12.5px;color:var(--navy);flex:1;min-width:0}
.fvds-lens{margin-top:11px;padding-top:11px;border-top:1px dashed var(--gold-100)}
.fvds-lens .lab{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--blue)}
.fvds-pips{display:flex;align-items:center;gap:5px;margin-top:7px;flex-wrap:wrap}
.fvds-pip{width:24px;height:24px;border-radius:50%;background:var(--navy);color:#fff;font-size:9px;font-weight:800;display:grid;place-items:center;flex-shrink:0}
.fvds-lens-note{font-size:11px;color:var(--ink-3);margin-left:4px}
.fvds-go{margin-top:12px;font-family:var(--disp);font-weight:700;font-size:12px;color:var(--navy);background:var(--gold);border:none;border-radius:360px;padding:8px 15px;cursor:pointer}
.fvds-go:hover{filter:brightness(1.05)}
.fv-roomhead-r{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.fv-spine-btn,.fvcl-spine-btn{font-family:var(--disp);font-weight:700;font-size:12px;color:var(--navy);background:var(--gold);border:none;border-radius:360px;padding:7px 14px;cursor:pointer}
.fvcl-spine-btn{margin-top:12px;background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.28)}
.fv-spine-btn:hover{filter:brightness(1.05)}
@media(max-width:680px){.fvds-summary{grid-template-columns:1fr 1fr}}

/* ---- Document Trace ---- */
.fvds-artifact .fvds-trace{margin-left:auto;font-family:var(--disp);font-weight:700;font-size:11px;color:var(--navy);background:var(--gold-100);border:none;border-radius:360px;padding:5px 12px;cursor:pointer}
.fvds-artifact .fvds-trace:hover{background:var(--gold)}
.fvdt-picker{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.fvdt-chip{font-size:12px;font-weight:600;color:var(--ink-2);background:#fff;border:1px solid var(--hair);border-radius:360px;padding:7px 13px;cursor:pointer;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fvdt-chip.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.fvdt-doc{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,var(--navy),var(--navy-3));border-radius:14px;padding:16px 18px;margin-top:14px;color:#fff}
.fvdt-doc-ic{width:42px;height:42px;border-radius:10px;background:rgba(220,202,175,.16);color:var(--gold);display:grid;place-items:center;font-size:19px;flex-shrink:0}
.fvdt-doc-tx{flex:1;min-width:0}
.fvdt-doc-tx b{font-family:var(--disp);font-size:16px;display:block}
.fvdt-doc-tx small{font-size:12px;color:rgba(255,255,255,.8)}
.fvdt-doc-tx .st{color:#fff}
.fvdt-doc-stat{text-align:center;flex-shrink:0}
.fvdt-doc-stat b{font-family:var(--disp);font-weight:800;font-size:20px;color:var(--gold);display:block}
.fvdt-doc-stat span{font-size:10px;color:rgba(255,255,255,.75)}
.fvdt-chain{margin-top:16px}
.fvdt-hop{display:flex;gap:14px}
.fvdt-rail{position:relative;width:32px;flex-shrink:0;display:flex;justify-content:center}
.fvdt-rail::before{content:'';position:absolute;top:0;bottom:0;width:2px;background:var(--gold-100)}
.fvdt-hop:first-child .fvdt-rail::before{top:16px}
.fvdt-hop:last-child .fvdt-rail::before{height:16px;bottom:auto}
.fvdt-dot{position:relative;z-index:1;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:13px;flex-shrink:0;background:var(--navy);color:#fff}
.fvdt-hop.t-green .fvdt-dot{background:var(--green)} .fvdt-hop.t-gold .fvdt-dot{background:var(--gold);color:var(--navy)}
.fvdt-hop.t-red .fvdt-dot{background:var(--red)} .fvdt-hop.t-navy .fvdt-dot{background:var(--navy)}
.fvdt-hop-card{flex:1;min-width:0;background:#fff;border:1px solid var(--hair);border-radius:12px;box-shadow:var(--sh);padding:12px 15px;margin-bottom:12px}
.fvdt-hop.t-red .fvdt-hop-card{border-style:dashed;border-color:var(--red)}
.fvdt-hop-top{display:flex;align-items:center;gap:10px}
.fvdt-av{width:28px;height:28px;border-radius:50%;background:var(--navy);color:#fff;font-size:10px;font-weight:800;display:grid;place-items:center;flex-shrink:0}
.fvdt-av.muted{background:var(--line);color:var(--ink-3)}
.fvdt-hop-who{flex:1;min-width:0}
.fvdt-hop-who b{font-family:var(--disp);font-size:13.5px;color:var(--navy);display:block}
.fvdt-kind{font-size:10.5px;font-weight:700}
.fvdt-kind.t-green{color:var(--green)} .fvdt-kind.t-gold{color:var(--gold-ink)}
.fvdt-kind.t-red{color:var(--red)} .fvdt-kind.t-navy{color:var(--gold-ink)}
.fvdt-when{font-size:11px;color:var(--ink-3);flex-shrink:0}
.fvdt-note{font-size:12.5px;color:var(--ink-2);line-height:1.5;margin:7px 0 0}
.fvdt-blocked{margin-top:8px;background:var(--paper,#faf7f2);border:1px solid var(--gold-100);border-radius:12px;padding:15px 17px}
.fvdt-blocked-h{font-family:var(--disp);font-weight:800;font-size:13px;color:var(--red);margin-bottom:10px}
.fvdt-blocked-list{display:flex;flex-direction:column;gap:8px}
.fvdt-blocked-row{display:flex;align-items:center;gap:10px;font-size:12.5px}
.fvdt-blocked-row b{color:var(--navy);font-family:var(--disp);font-size:13px}
.fvdt-blocked-row .why{color:var(--ink-3);font-size:11.5px;margin-left:auto;text-align:right;max-width:50%}

/* ---- Identity Graph ---- */
.fvig-me{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,var(--navy),var(--navy-3));border-radius:16px;padding:20px 22px;color:#fff;flex-wrap:wrap}
.fvig-me-av{width:54px;height:54px;border-radius:50%;background:var(--gold);color:var(--navy);font-family:var(--disp);font-weight:800;font-size:19px;display:grid;place-items:center;flex-shrink:0}
.fvig-me-tx{flex:1;min-width:140px}
.fvig-me-tx b{font-family:var(--disp);font-weight:800;font-size:19px;display:block}
.fvig-me-tx small{font-size:12.5px;color:rgba(255,255,255,.8)}
.fvig-me-stats{display:flex;gap:18px;flex-wrap:wrap}
.fvig-me-stats div{text-align:center}
.fvig-me-stats b{font-family:var(--disp);font-weight:800;font-size:20px;color:var(--gold);display:block}
.fvig-me-stats span{font-size:10.5px;color:rgba(255,255,255,.7)}
.fvig-stem{width:2px;height:24px;background:var(--gold-100);margin:0 auto}
.fvig-hats{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.fvig-hat{background:#fff;border:1px solid var(--hair);border-radius:14px;box-shadow:var(--sh);padding:16px 17px;border-top:4px solid var(--navy)}
.fvig-hat.t-navy{border-top-color:var(--navy)} .fvig-hat.t-gold{border-top-color:var(--gold-2)}
.fvig-hat.t-green{border-top-color:var(--green)} .fvig-hat.t-blue{border-top-color:var(--blue)}
.fvig-hat.on{box-shadow:0 0 0 2px var(--gold),var(--sh)}
.fvig-hat-head{display:flex;align-items:center;gap:10px}
.fvig-hat-dot{width:12px;height:12px;border-radius:4px;flex-shrink:0}
.fvig-hat.t-navy .fvig-hat-dot{background:var(--navy)} .fvig-hat.t-gold .fvig-hat-dot{background:var(--gold-2)}
.fvig-hat.t-green .fvig-hat-dot{background:var(--green)} .fvig-hat.t-blue .fvig-hat-dot{background:var(--blue)}
.fvig-hat-id{flex:1;min-width:0}
.fvig-hat-id b{font-family:var(--disp);font-size:14px;color:var(--navy);display:block}
.fvig-hat-id small{font-size:11px;color:var(--gold-ink);font-weight:600}
.fvig-wear{font-family:var(--disp);font-weight:700;font-size:11px;color:var(--navy);background:var(--gold-100);border:none;border-radius:360px;padding:5px 11px;cursor:pointer;flex-shrink:0}
.fvig-wear:hover{background:var(--gold)}
.fvig-wearing{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--green);background:var(--green-soft);border-radius:360px;padding:4px 9px;flex-shrink:0}
.fvig-perm{font-size:11.5px;color:var(--ink-2);margin:9px 0;padding:6px 10px;background:var(--gold-50);border-radius:7px;display:inline-block;font-weight:600}
.fvig-touch-lbl{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin-bottom:7px}
.fvig-touch{display:flex;flex-wrap:wrap;gap:6px}
.fvig-node{font-size:11.5px;font-weight:600;color:var(--navy);background:#fff;border:1px solid var(--line);border-radius:360px;padding:5px 11px;cursor:pointer}
.fvig-node:hover{border-color:var(--gold-2);background:var(--gold-50)}
.fvig-node.deal{background:var(--navy);color:#fff;border-color:var(--navy)}
.fvig-node.deal:hover{filter:brightness(1.15)}

/* ---- Vision Tour ---- */
.fvt-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:linear-gradient(135deg,var(--navy),var(--navy-3));border-radius:16px;padding:20px 24px;margin-bottom:18px}
.fvt-hero-tx{flex:1;min-width:200px}
.fvt-hero-btn{font-family:var(--disp);font-weight:700;font-size:14px;color:var(--navy);background:var(--gold);border:none;border-radius:360px;padding:12px 22px;cursor:pointer;flex-shrink:0;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.fvt-hero-btn:hover{filter:brightness(1.05)}
.fvt-wrap{position:fixed;inset:0;z-index:90;pointer-events:none;display:flex;align-items:flex-end;justify-content:center;padding:0 16px 28px}
.fvt-wrap::before{content:'';position:absolute;inset:0;background:radial-gradient(120% 80% at 50% 100%,rgba(23,46,85,.22),transparent 70%)}
.fvt-card{position:relative;pointer-events:auto;width:min(560px,94vw);background:#fff;border-radius:16px;box-shadow:0 18px 50px rgba(23,46,85,.30);padding:20px 24px 16px;border-top:4px solid var(--gold);animation:fvtIn .3s cubic-bezier(.2,.7,.2,1)}
@keyframes fvtIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.fvt-x{position:absolute;top:13px;right:14px;width:26px;height:26px;border-radius:50%;border:none;background:var(--gold-50);color:var(--ink-2);font-size:12px;cursor:pointer}
.fvt-x:hover{background:var(--gold-100)}
.fvt-tag{font-family:var(--disp);font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-ink)}
.fvt-title{font-family:var(--disp);font-weight:800;font-size:21px;color:var(--navy);margin:5px 0 7px;letter-spacing:-.2px}
.fvt-body{font-size:14px;color:var(--ink-2);line-height:1.55;margin:0}
.fvt-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:16px;flex-wrap:wrap}
.fvt-dots{display:flex;gap:6px}
.fvt-dot{width:8px;height:8px;border-radius:50%;background:var(--gold-100)}
.fvt-dot.on{background:var(--gold-2);transform:scale(1.25)}
.fvt-dot.done{background:var(--green)}
.fvt-btns{display:flex;gap:8px;margin-left:auto}
.fvt-btn{font-family:var(--disp);font-weight:700;font-size:13px;color:#fff;background:var(--navy);border:none;border-radius:360px;padding:9px 18px;cursor:pointer}
.fvt-btn:hover{filter:brightness(1.12)}
.fvt-btn.ghost{background:var(--gold-50);color:var(--navy)}
.fvt-count{font-size:10.5px;color:var(--ink-3);margin-top:10px;text-align:center;font-weight:600}
.fvt-hint{color:var(--ink-3);opacity:.8}
.fvt-prog{position:absolute;top:0;left:0;height:4px;width:0;background:var(--gold-2);border-radius:16px 16px 0 0}
.fvt-prog.run{animation:fvtProg linear forwards}
@keyframes fvtProg{from{width:0}to{width:100%}}
.fvt-play{width:34px;height:34px;border-radius:50%;border:none;background:var(--gold-50);color:var(--navy);font-size:12px;cursor:pointer;flex-shrink:0}
.fvt-play:hover{background:var(--gold-100)}
.fvt-dot{cursor:pointer}
.fvt-spot{position:fixed;z-index:89;border-radius:14px;pointer-events:none;border:2.5px solid var(--gold);box-shadow:0 0 0 3px rgba(220,202,175,.45),0 0 0 9999px rgba(23,46,85,.34);transition:top .35s cubic-bezier(.2,.7,.2,1),left .35s cubic-bezier(.2,.7,.2,1),width .35s,height .35s}

/* ---- Comms ---- */
.fvms-grid{display:grid;grid-template-columns:280px 1fr;gap:16px;align-items:start;margin-top:16px}
.fvms-list{display:flex;flex-direction:column;gap:8px}
.fvms-thread{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--hair);border-radius:10px;box-shadow:var(--sh);padding:11px 13px;text-align:left;border-left:3px solid transparent}
.fvms-ic{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;font-size:14px;flex-shrink:0}
.fvms-ic.room{background:var(--navy);color:var(--gold)} .fvms-ic.direct{background:var(--gold-100);color:var(--gold-ink)}
.fvms-thread .tx{flex:1;min-width:0}
.fvms-thread .tx b{font-family:var(--disp);font-size:12.5px;color:var(--navy);display:block;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fvms-thread .tx small{font-size:11px;color:var(--ink-3)}
.fvms-thread.on{border-left-color:var(--gold);background:var(--gold-50)}
.fvms-unread{background:var(--green);color:#fff;font-size:10px;font-weight:800;border-radius:360px;min-width:18px;height:18px;display:grid;place-items:center;padding:0 5px;flex-shrink:0}
.fvms-convo{padding:0;overflow:hidden;display:flex;flex-direction:column;height:540px}
.fvms-convo-h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid var(--hair);flex-shrink:0}
.fvms-convo-h b{font-family:var(--disp);font-size:14px;color:var(--navy)} .fvms-convo-h small{font-size:11.5px;color:var(--ink-3);display:block}
.fvms-body{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:12px;background:var(--gold-50)}
.fvms-msg{display:flex;gap:9px;max-width:78%}
.fvms-msg.me{align-self:flex-end;flex-direction:row-reverse}
.fvms-av{width:28px;height:28px;border-radius:50%;background:var(--navy);color:var(--gold);font-size:10px;font-weight:800;display:grid;place-items:center;flex-shrink:0;align-self:flex-end}
.fvms-bub{background:#fff;border:1px solid var(--hair);border-radius:12px;padding:9px 13px;box-shadow:var(--sh)}
.fvms-msg.me .fvms-bub{background:var(--navy);border-color:var(--navy)}
.fvms-from{font-family:var(--disp);font-size:10.5px;font-weight:700;color:var(--gold-ink);margin-bottom:2px}
.fvms-txt{font-size:13px;color:var(--ink-2);line-height:1.45}
.fvms-msg.me .fvms-txt{color:#fff}
.fvms-time{font-size:9.5px;color:var(--ink-3);margin-top:3px;text-align:right}
.fvms-msg.me .fvms-time{color:rgba(255,255,255,.55)}
.fvms-compose{display:flex;gap:9px;padding:13px 16px;border-top:1px solid var(--hair);flex-shrink:0}
.fvms-compose input{flex:1;font-family:var(--ui);font-size:14px;border:1px solid var(--line);border-radius:360px;padding:10px 16px;min-height:44px}
.fvms-compose input:focus{outline:none;border-color:var(--gold-2);box-shadow:0 0 0 3px var(--gold-100)}
.fvms-foot{font-size:10.5px;color:var(--ink-3);text-align:center;padding:8px;background:var(--gold-50);border-top:1px solid var(--hair);flex-shrink:0}
@media(max-width:900px){.fvms-grid{grid-template-columns:1fr}.fvms-convo{height:60vh}}

/* ---- Platform (Super Admin) ---- */
.fvpl-grid{width:100%;border-collapse:collapse;font-size:12px;min-width:560px}
.fvpl-grid th{font-family:var(--disp);font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);text-align:center;padding:8px 6px;border-bottom:1px solid var(--hair)}
.fvpl-grid th:first-child{text-align:left}
.fvpl-grid td{padding:7px 6px;border-bottom:1px solid var(--gold-100);text-align:center}
.fvpl-grid td.mod{text-align:left;font-family:var(--disp);font-size:12px;font-weight:600;color:var(--navy)}
.fvpl-grid tr:last-child td{border-bottom:none}
.fvpl-cell{font-size:10.5px;font-weight:700;border:none;border-radius:6px;padding:5px 12px;width:100%;min-height:30px}
.fvpl-org{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid var(--gold-100)}
.fvpl-org:last-child{border-bottom:none}
.fvpl-orgdot{width:11px;height:11px;border-radius:3px;flex-shrink:0}
.fvpl-orgdot.lvl0{background:var(--navy)} .fvpl-orgdot.lvl1{background:var(--blue)} .fvpl-orgdot.lvl2{background:var(--green)} .fvpl-orgdot.lvl3{background:var(--gold-2)} .fvpl-orgdot.lvl4{background:var(--gold-ink)}
.fvpl-org .tx{flex:1;min-width:0}
.fvpl-org .tx b{font-family:var(--disp);font-size:13px;color:var(--navy);display:block;line-height:1.15}
.fvpl-org .tx small{font-size:11px;color:var(--ink-3)}
.fvpl-orgmeta{font-size:11px;color:var(--ink-3);font-weight:600;white-space:nowrap}
.fvpl-svc{display:flex;align-items:center;gap:11px;padding:10px 0;border-bottom:1px solid var(--gold-100)}
.fvpl-svc:last-child{border-bottom:none}
.fvpl-svc .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.fvpl-svc .dot.ok{background:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
.fvpl-svc .tx{flex:1;min-width:0}
.fvpl-svc .tx b{font-family:var(--disp);font-size:13px;color:var(--navy);display:block;line-height:1.15}
.fvpl-svc .tx small{font-size:11.5px;color:var(--ink-3)}
.fv-me .av{width:30px;height:30px;border-radius:50%;background:var(--gold);color:var(--navy);font-family:var(--disp);font-weight:800;font-size:12px;display:grid;place-items:center}
.fv-me .nm{color:#fff;font-weight:700;font-size:13px;line-height:1.1}
.fv-me .hats{color:#9fd4b3;font-size:10px;font-weight:600}

.fv-body{flex:1;display:flex;min-height:0}
.fv-sb{width:236px;flex-shrink:0;background:linear-gradient(168deg,var(--navy-2),var(--navy-4));padding:16px 12px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}
.fv-sb-lbl{font-family:var(--disp);font-size:9px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--gold-ink);padding:14px 10px 6px}
.fv-nav{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:5px;font-size:13px;font-weight:600;color:var(--gold);background:none;border:none;width:100%;text-align:left;transition:.13s var(--ease)}
.fv-nav .ic{width:24px;height:24px;border-radius:6px;background:rgba(220,202,175,.1);display:grid;place-items:center;font-size:12px;flex-shrink:0}
.fv-nav:hover{color:#fff;background:rgba(220,202,175,.08)}
.fv-nav.on{background:var(--gold);color:var(--navy);font-weight:700}
.fv-nav.on .ic{background:var(--navy);color:var(--gold)}
.fv-nav .ct{margin-left:auto;font-size:10px;font-weight:800;background:rgba(220,202,175,.18);color:var(--gold);border-radius:360px;padding:2px 8px}
.fv-nav.on .ct{background:var(--navy);color:var(--gold)}

.fv-main{flex:1;min-width:0;overflow-y:auto;overflow-x:hidden}
.fv-pad{max-width:1280px;margin:0 auto;padding:26px 30px 70px}

/* ---- type ---- */
.fv-h1{font-family:var(--disp);font-weight:800;font-size:24px;letter-spacing:-.4px;color:var(--navy);margin:0}
.fv-sub{color:var(--ink-2);font-size:13.5px;margin:4px 0 0}
.fv-h2{font-family:var(--disp);font-weight:700;font-size:15px;color:var(--navy);margin:26px 0 10px;display:flex;align-items:center;gap:10px}
.fv-h2 .badge{font-size:10px;font-weight:700;background:var(--gold-100);color:var(--gold-ink);border:1px solid var(--gold-200);border-radius:360px;padding:3px 10px}
.fv-note{font-size:12.5px;color:var(--ink-3);max-width:64ch}

/* ---- hat strip ---- */
.fv-hats{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.fv-hat{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--hair);border-radius:8px;box-shadow:var(--sh);padding:10px 14px;min-height:44px;border:none;text-align:left}
.fv-hat .dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}
.fv-hat b{font-family:var(--disp);font-size:12.5px;color:var(--navy);display:block;line-height:1.15}
.fv-hat small{font-size:10.5px;color:var(--ink-3);display:block}
.fv-hat.t-navy .dot{background:var(--navy)} .fv-hat.t-gold .dot{background:var(--gold-2)}
.fv-hat.t-green .dot{background:var(--green)} .fv-hat.t-blue .dot{background:var(--blue)}

/* ---- today list ---- */
.fv-urg{font-family:var(--disp);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin:22px 0 8px;display:flex;align-items:center;gap:8px}
.fv-urg.now{color:var(--red)} .fv-urg.today{color:var(--gold-ink)} .fv-urg.week{color:var(--ink-3)}
.fv-item{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--hair);border-radius:8px;box-shadow:var(--sh);padding:13px 16px;margin-bottom:8px}
.fv-item .hatchip{font-family:var(--disp);font-size:9.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border-radius:5px;padding:4px 8px;flex-shrink:0;width:86px;text-align:center}
.hat-super{background:var(--navy);color:var(--gold)} .hat-broker{background:var(--gold);color:var(--navy)}
.hat-client{background:var(--green-soft);color:var(--green)} .hat-assoc{background:var(--blue-soft);color:#196788}
.fv-item .tx{flex:1;min-width:0}
.fv-item .tx b{font-family:var(--disp);font-size:13.5px;color:var(--navy);display:block}
.fv-item .tx small{font-size:12px;color:var(--ink-3)}
.fv-go{font-family:var(--disp);font-size:11px;font-weight:700;color:var(--navy);background:var(--gold);border:none;border-radius:360px;padding:9px 16px;min-height:36px;flex-shrink:0;transition:.13s}
.fv-go:hover{filter:brightness(1.05)}
.fv-go.ghost{background:#fff;border:1px solid var(--line);color:var(--ink-2)}

/* ---- rooms ---- */
.fv-rooms{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px;margin-top:14px}
.fv-room{background:#fff;border:1px solid var(--hair);border-radius:16px;box-shadow:var(--sh);padding:18px 20px;text-align:left;border:none;transition:.15s var(--ease)}
.fv-room:hover{transform:translateY(-2px)}
.fv-room .addr{font-family:var(--disp);font-weight:700;font-size:15px;color:var(--navy)}
.fv-room .meta{font-size:12px;color:var(--ink-3);margin:3px 0 12px}
.fv-stage{height:6px;border-radius:360px;background:var(--gold-100);overflow:hidden;margin:10px 0 6px}
.fv-stage i{display:block;height:100%;background:linear-gradient(90deg,var(--gold-2),var(--gold));border-radius:360px}
.fv-room .stg{font-size:11px;font-weight:700;color:var(--gold-ink)}
.fv-room .ppl{display:flex;margin-top:12px}
.fv-room .ppl span{width:26px;height:26px;border-radius:50%;background:var(--navy);color:var(--gold);font-size:9px;font-weight:800;display:grid;place-items:center;border:2px solid #fff;margin-left:-6px}
.fv-room .ppl span:first-child{margin-left:0}
.fv-room .ppl small{align-self:center;margin-left:8px;font-size:11px;color:var(--ink-3)}

/* ---- room view ---- */
.fv-back{background:none;border:none;font-size:12px;font-weight:700;color:var(--gold-ink);padding:0 0 12px}
.fv-roomhead{background:linear-gradient(135deg,var(--navy),var(--navy-3));border-radius:16px;box-shadow:var(--sh);padding:22px 26px;color:#fff}
.fv-roomhead .addr{font-family:var(--disp);font-weight:800;font-size:20px;letter-spacing:-.3px}
.fv-roomhead .sub{color:var(--gold);font-size:12.5px;margin-top:3px}
.fv-roomhead .fv-stage{background:rgba(220,202,175,.18);max-width:420px}
.fv-parties{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.fv-party{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.07);border:1px solid rgba(220,202,175,.25);border-radius:360px;padding:5px 13px 5px 6px}
.fv-party .av{width:26px;height:26px;border-radius:50%;background:var(--gold);color:var(--navy);font-size:9px;font-weight:800;display:grid;place-items:center}
.fv-party b{font-size:12px;color:#fff;line-height:1.1;display:block}
.fv-party small{font-size:10px;color:var(--gold);display:block}
.fv-party.me{background:rgba(17,127,57,.3);border-color:rgba(112,178,136,.5)}

.fv-grid2{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;align-items:start;margin-top:16px}
.fv-card{background:#fff;border:1px solid var(--hair);border-radius:16px;box-shadow:var(--sh);padding:18px 20px}
.fv-card h4{font-family:var(--disp);font-size:13.5px;font-weight:700;color:var(--navy);margin:0 0 12px;display:flex;align-items:center;gap:9px}
.fv-card h4 .badge{font-size:9.5px;font-weight:700;background:var(--gold-100);color:var(--gold-ink);border-radius:360px;padding:2px 9px}

/* the permission matrix — the showpiece */
.fv-mx{width:100%;border-collapse:collapse;font-size:12px}
.fv-mx th{font-family:var(--disp);font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);text-align:center;padding:6px 4px;border-bottom:1px solid var(--hair);max-width:64px}
.fv-mx th:first-child{text-align:left;max-width:none}
.fv-mx td{padding:9px 4px;border-bottom:1px solid var(--gold-100);text-align:center;vertical-align:middle}
.fv-mx td:first-child{text-align:left}
.fv-mx tr:last-child td{border-bottom:none}
.fv-mx .doc b{font-size:12px;color:var(--navy);display:block;line-height:1.2}
.fv-mx .doc small{font-size:10.5px;color:var(--ink-3)}
.fv-dot{display:inline-block;width:14px;height:14px;border-radius:5px;background:var(--green-soft);position:relative}
.fv-dot::after{content:"✓";position:absolute;inset:0;display:grid;place-items:center;font-size:9px;font-weight:800;color:var(--green)}
.fv-dot.no{background:var(--gold-100)} .fv-dot.no::after{content:"—";color:var(--line)}
.fv-mx .st{font-size:10px;font-weight:700;border-radius:360px;padding:3px 9px;white-space:nowrap}
.st-ok{background:var(--green-soft);color:var(--green)} .st-warn{background:var(--gold-100);color:var(--gold-ink)} .st-act{background:var(--red-soft);color:var(--red)}

.fv-tl{display:flex;flex-direction:column;gap:0}
.fv-tl-row{display:flex;gap:12px;padding:9px 0;border-bottom:1px solid var(--gold-100)}
.fv-tl-row:last-child{border-bottom:none}
.fv-tl-row .when{font-size:10.5px;color:var(--ink-3);width:84px;flex-shrink:0;font-weight:600}
.fv-tl-row .tx b{font-size:12px;color:var(--navy)} .fv-tl-row .tx{font-size:12px;color:var(--ink-2)}

.fv-signrow{display:flex;align-items:center;gap:12px;background:var(--red-soft);border:1px solid #f3c2c4;border-radius:8px;padding:11px 14px;margin-bottom:8px}
.fv-signrow b{font-size:12.5px;color:var(--navy);display:block} .fv-signrow small{font-size:11px;color:var(--ink-3)}
.fv-task{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--gold-100);font-size:12.5px;color:var(--ink-2)}
.fv-task:last-child{border-bottom:none}
.fv-task input{width:16px;height:16px;accent-color:var(--green)}
.fv-task .due{margin-left:auto;font-size:10.5px;font-weight:700;color:var(--gold-ink)}

/* ---- ledger ---- */
.fv-ledger .fv-tl-row .when{width:100px}
.fv-kind{font-size:10px;font-weight:800;border-radius:360px;padding:3px 10px;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;align-self:center}
.k-granted{background:var(--green-soft);color:var(--green)} .k-revoked{background:var(--red-soft);color:var(--red)} .k-denied{background:var(--gold-100);color:var(--gold-ink)}
.fv-revoke{margin-left:auto;align-self:center;font-size:11px;font-weight:700;color:var(--red);background:none;border:1px solid #f3c2c4;border-radius:360px;padding:5px 12px}

/* ---- market ---- */
.fv-market{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-top:14px}
.fv-app{background:#fff;border:1px solid var(--hair);border-radius:16px;box-shadow:var(--sh);padding:18px}
.fv-app .cat{font-size:9.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--blue)}
.fv-app b{font-family:var(--disp);font-size:14px;color:var(--navy);display:block;margin:6px 0 4px}
.fv-app p{font-size:12px;color:var(--ink-2);margin:0 0 12px}
.fv-app .price{font-size:11.5px;font-weight:700;color:var(--gold-ink)}

/* ---- vision ---- */
.fv-thesis{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.fv-th{background:#fff;border:1px solid var(--hair);border-left:4px solid var(--gold);border-radius:8px;box-shadow:var(--sh);padding:16px 20px}
.fv-th b{font-family:var(--disp);font-size:14px;color:var(--navy);display:block;margin-bottom:4px}
.fv-th p{margin:0;font-size:13px;color:var(--ink-2);max-width:78ch}

/* ---- toast ---- */
.fv-toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;font-size:12.5px;font-weight:600;border-radius:360px;padding:10px 22px;box-shadow:var(--sh);z-index:200;border:1px solid rgba(220,202,175,.4)}

/* ---- responsive (mobile-first sizing checked at 390px) ---- */
@media(max-width:900px){
  .fv-grid2{grid-template-columns:1fr}
  .fv-sb{position:fixed;left:-240px;top:60px;bottom:0;z-index:60;transition:left .2s var(--ease)}
  .fv-sb.open{left:0;box-shadow:10px 0 30px rgba(8,18,34,.45)}
  .fv-burger{display:grid !important}
  .fv-search{display:none}
  .fv-pad{padding:18px 14px 60px}
  .fv-mx th:nth-child(n+6),.fv-mx td:nth-child(n+6){display:none}
}
.fv-burger{display:none;place-items:center;width:38px;height:38px;border-radius:8px;background:rgba(220,202,175,.12);border:1px solid rgba(220,202,175,.3);color:var(--gold);font-size:16px}

/* ---- command palette (⌘K) ---- */
.fvp-scrim{position:fixed;inset:0;background:rgba(8,18,34,.5);backdrop-filter:blur(3px);z-index:300;display:flex;justify-content:center;align-items:flex-start;padding-top:12vh}
.fvp{width:100%;max-width:600px;background:#fff;border-radius:16px;box-shadow:0 30px 80px rgba(8,18,34,.5);overflow:hidden;display:flex;flex-direction:column;max-height:70vh;animation:fvp-in .14s var(--ease)}
@keyframes fvp-in{from{opacity:0;transform:translateY(-8px) scale(.99)}to{opacity:1;transform:none}}
.fvp-input{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--hair)}
.fvp-input .ic{font-size:18px;color:var(--gold-ink)}
.fvp-input input{flex:1;border:none;outline:none;font-family:var(--ui);font-size:16px;color:var(--navy)}
.fvp-input input::placeholder{color:var(--ink-3)}
.fvp-esc{font-size:10px;font-weight:700;color:var(--ink-3);background:var(--gold-50);border:1px solid var(--hair);border-radius:5px;padding:3px 7px}
.fvp-list{overflow-y:auto;padding:8px}
.fvp-empty{padding:28px;text-align:center;color:var(--ink-3);font-size:13px}
.fvp-group{margin-bottom:6px}
.fvp-group-h{font-family:var(--disp);font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-ink);padding:8px 12px 4px}
.fvp-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:none;border:none;border-radius:9px;padding:9px 12px;cursor:pointer}
.fvp-row.on{background:var(--gold-50)}
.fvp-ic{width:28px;height:28px;border-radius:7px;background:var(--navy-soft,#eef1f6);color:var(--navy);display:grid;place-items:center;font-size:12px;font-weight:800;flex-shrink:0}
.fvp-row.on .fvp-ic{background:var(--navy);color:var(--gold)}
.fvp-tx{flex:1;min-width:0}
.fvp-tx b{font-family:var(--disp);font-size:13.5px;color:var(--navy);font-weight:600;display:block;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fvp-tx small{font-size:11.5px;color:var(--ink-3);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fvp-go{font-size:12px;color:var(--ink-3);opacity:0;flex-shrink:0}
.fvp-row.on .fvp-go{opacity:1}
.fvp-foot{display:flex;align-items:center;gap:16px;padding:10px 18px;border-top:1px solid var(--hair);font-size:11px;color:var(--ink-3)}
.fvp-foot b{font-family:var(--disp);background:var(--gold-50);border:1px solid var(--hair);border-radius:4px;padding:1px 5px;color:var(--ink-2);font-weight:700}
.fvp-foot-r{margin-left:auto;color:var(--gold-ink);font-weight:600}
@media(max-width:600px){.fvp{max-width:94vw}.fvp-foot span:not(.fvp-foot-r){display:none}}

/* ---- top-bar: + New, bell, menus ---- */
.fv-iconbtn{display:inline-flex;align-items:center;gap:6px;background:var(--gold);color:var(--navy);font-family:var(--disp);font-weight:700;font-size:12.5px;border:none;border-radius:360px;padding:8px 15px;min-height:38px}
.fv-iconbtn span{font-size:15px;line-height:1}
.fv-iconbtn:hover{filter:brightness(1.05)}
.fv-bell{position:relative;width:38px;height:38px;border-radius:50%;background:rgba(220,202,175,.12);border:1px solid rgba(220,202,175,.25);font-size:15px;display:grid;place-items:center}
.fv-bell:hover{background:rgba(220,202,175,.2)}
.fv-bell-dot{position:absolute;top:-3px;right:-3px;min-width:17px;height:17px;border-radius:360px;background:var(--red);color:#fff;font-size:10px;font-weight:800;display:grid;place-items:center;padding:0 4px;border:2px solid var(--navy)}
.fv-menu{position:absolute;top:48px;right:0;width:264px;background:#fff;border-radius:14px;box-shadow:0 20px 50px rgba(8,18,34,.4);padding:8px;z-index:120;animation:fvp-in .13s var(--ease)}
.fv-menu-lbl{font-family:var(--disp);font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-ink);padding:8px 10px 6px;display:flex;align-items:center;justify-content:space-between}
.fv-menu-clear{font-size:10px;font-weight:700;color:var(--blue);background:none;border:none;text-transform:none;letter-spacing:0}
.fv-menu-row{display:block;width:100%;text-align:left;background:none;border:none;border-radius:8px;padding:10px 11px;font-size:13px;font-weight:600;color:var(--navy)}
.fv-menu-row:hover{background:var(--gold-50)}
.fv-notifs{width:330px}
.fv-notif{display:flex;align-items:flex-start;gap:10px;width:100%;text-align:left;background:none;border:none;border-radius:9px;padding:10px 11px}
.fv-notif:hover{background:var(--gold-50)}
.fv-notif-ic{width:30px;height:30px;border-radius:8px;background:var(--navy-soft,#eef1f6);color:var(--navy);display:grid;place-items:center;font-size:13px;flex-shrink:0}
.fv-notif.unread .fv-notif-ic{background:var(--navy);color:var(--gold)}
.fv-notif-tx{flex:1;min-width:0}
.fv-notif-tx b{font-family:var(--disp);font-size:12.5px;font-weight:600;color:var(--navy);display:block;line-height:1.25}
.fv-notif-tx small{font-size:11px;color:var(--ink-3)}
.fv-notif-dot{width:8px;height:8px;border-radius:50%;background:var(--green);flex-shrink:0;margin-top:5px}
@media(max-width:680px){.fv-iconbtn span:last-child,.fv-iconbtn{font-size:0}.fv-iconbtn span{font-size:18px}.fv-menu{right:-40px}}

/* ---- onboarding (#3 one login, choose your hats) ---- */
.fvo{position:fixed;inset:0;background:linear-gradient(150deg,var(--navy-2),var(--navy-4) 60%,#06101d);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;overflow-y:auto;z-index:100}
.fvo-card{width:100%;max-width:560px;background:#fff;border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.4);padding:30px 34px;margin:auto}
.fvo-brand{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
.fvo-brand img{height:30px}
.fvo-lane{font-family:var(--disp);font-weight:800;font-size:10px;letter-spacing:.05em;color:#06121f;background:var(--blue);border-radius:5px;padding:4px 9px}
.fvo-steps{display:flex;gap:8px;margin-bottom:26px}
.fvo-step{flex:1;display:flex;align-items:center;gap:7px;font-family:var(--disp);font-size:10.5px;font-weight:700;color:var(--ink-3);border-top:2px solid var(--hair);padding-top:9px}
.fvo-step .n{width:18px;height:18px;border-radius:50%;background:var(--hair);color:#fff;display:grid;place-items:center;font-size:10px;flex-shrink:0}
.fvo-step.on{color:var(--navy);border-top-color:var(--gold)}
.fvo-step.on .n{background:var(--gold);color:var(--navy)}
.fvo-step.done{color:var(--green);border-top-color:var(--green)}
.fvo-step.done .n{background:var(--green)}
.fvo-body h1{font-family:var(--disp);font-weight:800;font-size:26px;letter-spacing:-.5px;color:var(--navy);margin:0 0 8px;line-height:1.1}
.fvo-body > p{font-size:14px;color:var(--ink-2);margin:0 0 20px;line-height:1.55}
.fvo-id{background:var(--gold-50);border:1px solid var(--hair);border-radius:12px;padding:16px;margin-bottom:20px}
.fvo-id-row{display:flex;align-items:center;gap:12px}
.fvo-id-row .av{width:42px;height:42px;border-radius:50%;background:var(--navy);color:var(--gold);font-family:var(--disp);font-weight:800;font-size:15px;display:grid;place-items:center}
.fvo-id-row b{font-family:var(--disp);font-size:15px;color:var(--navy);display:block}
.fvo-id-row small{font-size:12px;color:var(--ink-3)}
.fvo-vch{margin-left:auto;font-size:11px;font-weight:700;color:var(--green);background:var(--green-soft);border-radius:360px;padding:5px 12px}
.fvo-id-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px;font-size:11px;color:var(--ink-2);font-weight:600}
.fvo-cta{width:100%;font-family:var(--disp);font-weight:700;font-size:15px;color:var(--navy);background:var(--gold);border:none;border-radius:10px;padding:15px;min-height:50px;transition:.13s}
.fvo-cta:hover{filter:brightness(1.05)}
.fvo-cta:disabled{opacity:.45;cursor:not-allowed}
.fvo-fine{font-size:11.5px;color:var(--ink-3);margin:14px 0 0;line-height:1.5}
.fvo-claims{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}
.fvo-claim{display:flex;align-items:flex-start;gap:13px;background:#fff;border:1.5px solid var(--hair);border-radius:12px;padding:15px 16px;text-align:left;transition:.13s;border-left:4px solid var(--line)}
.fvo-claim.t-navy{border-left-color:var(--navy)} .fvo-claim.t-gold{border-left-color:var(--gold-2)}
.fvo-claim.t-green{border-left-color:var(--green)} .fvo-claim.t-blue{border-left-color:var(--blue)}
.fvo-claim.on{background:var(--gold-50);border-color:var(--gold);border-left-color:var(--gold)}
.fvo-check{width:26px;height:26px;border-radius:50%;background:var(--hair);color:#fff;display:grid;place-items:center;font-size:14px;font-weight:800;flex-shrink:0;margin-top:1px}
.fvo-claim.on .fvo-check{background:var(--green)}
.fvo-claim-tx b{font-family:var(--disp);font-size:14px;color:var(--navy);display:block}
.fvo-claim-tx small{font-size:12px;color:var(--ink-2);display:block;margin:2px 0 6px}
.fvo-verify{font-size:10.5px;font-weight:700;color:var(--green)}
.fvo-verify.manual{color:var(--gold-ink)}
.fvo-done{text-align:center}
.fvo-burst{font-size:44px;color:var(--gold);animation:fvpop .5s var(--ease)}
@keyframes fvpop{from{transform:scale(0) rotate(-30deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}
.fvo-claimed{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:6px 0 20px}
.fvo-tag{font-family:var(--disp);font-size:11.5px;font-weight:700;border-radius:360px;padding:6px 14px}
.fvo-tag.t-navy{background:var(--navy);color:var(--gold)} .fvo-tag.t-gold{background:var(--gold);color:var(--navy)}
.fvo-tag.t-green{background:var(--green-soft);color:var(--green)} .fvo-tag.t-blue{background:var(--blue-soft);color:#196788}
.fvo-foot{color:rgba(220,202,175,.6);font-size:11px;margin-top:20px;text-align:center}
@media(max-width:560px){.fvo-card{padding:24px 20px}.fvo-body h1{font-size:22px}.fvo-step{font-size:0}.fvo-step .n{margin:0 auto}}

/* ---- workspace (#2 hat-aware shell at scale) ---- */
.fv-hatswitch{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.fv-hsw{display:flex;flex-direction:column;align-items:flex-start;gap:1px;background:#fff;border:1px solid var(--hair);border-radius:8px;box-shadow:var(--sh);padding:11px 16px 11px 14px;position:relative;min-width:150px;border-left:4px solid var(--line)}
.fv-hsw .dot{display:none}
.fv-hsw b{font-family:var(--disp);font-size:13px;color:var(--navy)}
.fv-hsw small{font-size:10.5px;color:var(--ink-3)}
.fv-hsw.t-navy{border-left-color:var(--navy)} .fv-hsw.t-gold{border-left-color:var(--gold-2)}
.fv-hsw.t-green{border-left-color:var(--green)} .fv-hsw.t-blue{border-left-color:var(--blue)}
.fv-hsw.t-slate{border-left-color:var(--slate)}

/* ---- 5th hat (Vendor) · slate tone across all hat surfaces ---- */
.fv-hat.t-slate .dot{background:var(--slate)}
.fv-hatmenu-row.t-slate{border-left-color:var(--slate)} .fv-hatmenu-row.t-slate .dot{background:var(--slate)}
.fvse-hat.t-slate .dot{background:var(--slate)}
.fvig-hat.t-slate{border-top-color:var(--slate)} .fvig-hat.t-slate .fvig-hat-dot{background:var(--slate)}
.fvo-claim.t-slate{border-left-color:var(--slate)}
.fvo-tag.t-slate{background:var(--slate-soft);color:var(--slate)}
.hat-vendor{background:var(--slate-soft);color:var(--slate)}

/* ---- Vendor Portal ---- */
.fvvp-jobs{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.fvvp-job{background:#fff;border:1px solid var(--hair);border-radius:10px;box-shadow:var(--sh);padding:11px 15px;text-align:left;border-left:3px solid transparent}
.fvvp-job b{font-family:var(--disp);font-size:13px;color:var(--navy);display:block}
.fvvp-job small{font-size:11px;color:var(--ink-3)}
.fvvp-job.on{border-left-color:var(--slate);background:var(--slate-soft)}
.fvvp-doc{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--gold-100)}
.fvvp-doc:last-of-type{border-bottom:none}
.fvvp-doc-ic{width:26px;height:26px;border-radius:7px;background:var(--slate-soft);color:var(--slate);display:grid;place-items:center;font-size:12px;flex-shrink:0}
.fvvp-doc b{flex:1;min-width:0;font-family:var(--disp);font-size:12.5px;color:var(--navy);font-weight:600}
.fvvp-scope{font-size:10px;font-weight:700;color:var(--ink-3);background:var(--gold-50);border-radius:360px;padding:3px 9px;white-space:nowrap}
.fvvp-scope.edit{color:var(--green);background:var(--green-soft)}
.fvvp-hidden{margin-top:14px;background:var(--paper,#faf7f2);border:1px solid var(--gold-100);border-radius:12px;padding:15px 17px}
.fvvp-hidden-h{font-family:var(--disp);font-weight:800;font-size:13px;color:var(--red);margin-bottom:10px}
.fvvp-hidden-list{display:flex;flex-wrap:wrap;gap:7px}
.fvvp-hidden-chip{font-size:11.5px;font-weight:600;color:var(--ink-3);background:#fff;border:1px dashed var(--line);border-radius:360px;padding:5px 11px;text-decoration:line-through}

/* ---- live money loop ---- */
.fvb-approved{font-size:12px;font-weight:700;color:var(--green);background:var(--green-soft);border-radius:360px;padding:7px 13px}
.badge.fvb-ok{background:var(--green-soft);color:var(--green)}
.fv-tl-row.fvb-new{background:var(--green-soft);border-radius:8px;padding:8px 10px;margin:0 -4px;animation:fvbPost .5s var(--ease)}
@keyframes fvbPost{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.fv-hsw.on{background:var(--navy);box-shadow:0 6px 18px rgba(8,18,34,.25)}
.fv-hsw.on b{color:#fff} .fv-hsw.on small{color:var(--gold)}
.fv-grp-lbl{font-family:var(--disp);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-ink);margin:22px 0 8px}
.fv-modgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.fv-mod{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--hair);border-radius:8px;box-shadow:var(--sh);padding:13px 15px;text-align:left;border:none;transition:.13s var(--ease)}
.fv-mod:hover{transform:translateY(-2px)}
.fv-mod-ic{width:34px;height:34px;border-radius:8px;background:var(--navy);color:var(--gold);display:grid;place-items:center;font-size:15px;flex-shrink:0}
.fv-mod-tx b{font-family:var(--disp);font-size:13px;color:var(--navy);display:block;line-height:1.2}
.fv-mod-tx small{font-size:11px;color:var(--ink-3)}
@media(max-width:900px){.fv-hsw{flex:1;min-width:130px}}

/* ---- room tabs + deepened panels (v4.1 #1) ---- */
.fv-roomtabs{display:flex;gap:4px;margin:18px 0 4px;border-bottom:1px solid var(--hair);flex-wrap:wrap}
.fv-rtab{font-family:var(--disp);font-weight:700;font-size:12.5px;color:var(--ink-3);background:none;border:none;padding:10px 14px;border-bottom:2px solid transparent;margin-bottom:-1px}
.fv-rtab:hover{color:var(--navy)}
.fv-rtab.on{color:var(--navy);border-bottom-color:var(--gold)}
.fv-dot{cursor:pointer;border:none;padding:0}
.fv-dot.own{background:var(--navy)}.fv-dot.own::after{content:"●";color:var(--gold);font-size:7px}
.fv-statgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.fv-stat{background:var(--gold-50);border:1px solid var(--hair);border-radius:8px;padding:12px;text-align:center}
.fv-stat .v{font-family:var(--disp);font-weight:800;font-size:18px;color:var(--navy)}
.fv-stat .l{font-size:10.5px;color:var(--ink-3);margin-top:2px}
.fv-money{width:100%;border-collapse:collapse;font-size:13px}
.fv-money td{padding:9px 4px;border-bottom:1px solid var(--gold-100)}
.fv-money td.amt{text-align:right;font-family:var(--disp);font-weight:600;color:var(--navy)}
.fv-money tr.net td{border-top:2px solid var(--navy);border-bottom:none;font-weight:800;padding-top:11px}
.fv-money tr.net td.amt{color:var(--green);font-size:15px}
.fv-cda .row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--gold-100);font-size:13px;color:var(--ink-2)}
.fv-cda .row:last-child{border-bottom:none}
.fv-cda .row b{color:var(--navy);font-family:var(--disp)}
@media(max-width:900px){.fv-statgrid{grid-template-columns:repeat(2,1fr)}}
