/* ═══════════════════════════════════════════════════════════════════
   DASHBOARD v3 — Today · Needs you · Jobs (dashboard-v3.js)
   Scoped to html.ui-v3. Sits on the v2 shell: the sidebar (≥1024px) and
   the bottom nav (<1024px) stay; the v2 top bar, stat tiles, card grid
   and search bar are hidden.
   ═══════════════════════════════════════════════════════════════════ */
#v3-root{display:none;}
html.ui-v3{
  --v3-ground:#f6f4ef; --v3-card:#ffffff; --v3-card2:#faf8f3;
  --v3-line:#e6e1d6; --v3-line2:#efebe2; --v3-line3:#f3f0e8;
  --v3-ink:#14202c; --v3-muted:#5d6b78; --v3-faint:#8a97a4;
  --v3-navy:#183e61; --v3-navy-d:#10263d; --v3-navy-h:#0f2a44;
  --v3-soft:#f3f6f9; --v3-soft-line:#d6dfe8;
  --v3-done:#183e61; --v3-warn:#d58a12; --v3-cur:#7fa3c7; --v3-todo:#c9d2dc; --v3-red:#c2321f;
  --v3-good-bg:#e8f3ec; --v3-good-fg:#1f6b43;
  --v3-warn-bg:#fdf1dc; --v3-warn-fg:#7a4d00;
  --v3-alert-bg:#fdeceb; --v3-alert-fg:#a12a1f;
  --v3-info-bg:#e8eff7; --v3-info-fg:#183e61;
  --v3-gray-bg:#f1efe9; --v3-gray-fg:#4f5b66;
  --v3-sans:'Instrument Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --v3-serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
}
html.ui-v3 body.dark-mode{
  --v3-ground:#0c1622; --v3-card:#132131; --v3-card2:#0f1c2b;
  --v3-line:#24374b; --v3-line2:#1f3144; --v3-line3:#1b2c3e;
  --v3-ink:#e8eef6; --v3-muted:#9fb0c6; --v3-faint:#6f819a;
  --v3-navy:#2f6a9e; --v3-navy-d:#0a1623; --v3-navy-h:#3a79b0;
  --v3-soft:#16283b; --v3-soft-line:#2c4059;
  --v3-done:#7fb2e0; --v3-cur:#4f7aa3; --v3-todo:#3a4f66;
  --v3-good-bg:#11301f; --v3-good-fg:#7fd6a4;
  --v3-warn-bg:#33260f; --v3-warn-fg:#f0bf6a;
  --v3-alert-bg:#3a1714; --v3-alert-fg:#ff9b8f;
  --v3-info-bg:#15293d; --v3-info-fg:#9fc4ea;
  --v3-gray-bg:#1a2939; --v3-gray-fg:#b3c0cf;
}

/* ---- shell ---- */
html.ui-v3 body{background:var(--v3-ground);}
html.ui-v3 body.on-dashboard{padding:0!important;}
/* Between phone and desktop the floating Toolbox button would sit on the bottom bar. */
@media (max-width:1023px){ html.ui-v3 body.on-dashboard #toolbox-pill{bottom:calc(88px + env(safe-area-inset-bottom,0px))!important;} }
/* Home-screen app on iOS draws the status bar over the page: give it a navy band. */
html.ui-v3 body.on-dashboard::before{content:'';position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top,0px);background:#10263d;z-index:45;pointer-events:none;}
/* The floating toolbox pill sat on the sidebar's sign-out row: keep it clear. */
@media (min-width:1024px){ html.ui-v3 body.on-dashboard #toolbox-pill{left:auto!important;right:24px!important;} }
html.ui-v3 .v2-topbar{display:none!important;}
html.ui-v3 .dash-body-wrap > :not(#v3-root){display:none!important;}
html.ui-v3 .dash-body-wrap{max-width:none;padding:0;margin:0;}
html.ui-v3 #v3-root{display:block;}
html.ui-v3 .v2-sidebar{background:var(--v3-navy-d)!important;}
html.ui-v3 .v2-sidebar nav button{position:relative;}
.v3-side-badge{margin-left:auto;background:#c8a96e;color:#10263d;font-size:11px;font-weight:700;border-radius:99px;padding:1px 7px;line-height:1.5;}

/* bottom nav (phone): flat bar, square + button */
html.ui-v3 .v2-botnav{background:var(--v3-card);border-top:1px solid var(--v3-line);box-shadow:none;align-items:center;min-height:64px;}
html.ui-v3 .v2-bn{color:var(--v3-muted);font-size:11px;font-weight:600;}
html.ui-v3 .v2-bn.on{color:var(--v3-navy);font-weight:700;}
html.ui-v3 .v2-bn .v2-bn-badge{background:var(--v3-red);color:#fff;font-size:10px;}
html.ui-v3 .v2-fab button{width:52px;height:52px;margin-top:0;border-radius:16px;border:none;background:var(--v3-navy);box-shadow:0 6px 16px -8px rgba(16,38,61,.7);}
html.ui-v3 .v2-fab span{display:none;}

/* ---- page ---- */
#v3-root{font-family:var(--v3-sans);color:var(--v3-ink);padding:calc(18px + env(safe-area-inset-top,0px)) 16px 24px;max-width:1480px;margin:0 auto;box-sizing:border-box;-webkit-font-smoothing:antialiased;}
#v3-root *,#v3-root *::before,#v3-root *::after{box-sizing:border-box;}
#v3-root button{font-family:inherit;}
#v3-root h1,#v3-root h2{border:none!important;padding:0!important;}
.v3-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* header */
.v3-head{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;}
.v3-head-text{display:flex;flex-direction:column;gap:2px;flex:1 1 0;min-width:0;}
.v3-date{font-size:11.5px;font-weight:600;letter-spacing:1.1px;text-transform:uppercase;color:var(--v3-muted);}
#v3-root h1.v3-greet{text-align:left!important;letter-spacing:0;margin:0!important;font-family:var(--v3-serif);font-weight:600;font-size:30px!important;line-height:1.1;color:var(--v3-navy-d);}
body.dark-mode .v3-greet{color:var(--v3-ink);}
.v3-summary{margin:2px 0 0;font-size:13.5px;color:var(--v3-muted);line-height:1.4;}
.v3-search{display:none;align-items:center;gap:8px;height:44px;padding:0 12px;background:var(--v3-card);border:1px solid var(--v3-line);border-radius:10px;color:var(--v3-muted);position:relative;flex:1 1 100%;order:3;}
.v3-search svg{width:16px;height:16px;flex:none;}
.v3-search input{border:none!important;outline:none;flex:1;min-width:0;font-size:15px;font-family:inherit;background:transparent!important;color:var(--v3-ink);margin:0!important;padding:0!important;box-shadow:none!important;height:auto;}
.v3-search kbd{display:none;font:inherit;font-size:11px;border:1px solid var(--v3-line);border-radius:5px;padding:1px 5px;}
.v3-search:focus-within{border-color:var(--v3-navy);box-shadow:0 0 0 3px rgba(24,62,97,.12);}
#v3-root.v3-searching .v3-search{display:flex;}
html.ui-v3 body.dark-mode #v3-root .v3-search input,html.ui-v3 body.dark-mode #v3-root .v3-search input:focus{background:transparent!important;color:var(--v3-ink)!important;border:none!important;box-shadow:none!important;}
html.ui-v3 body.dark-mode #v3-root label.v3-search{color:var(--v3-muted)!important;}
.v3-iconbtn.v3-theme{display:none;}
.v3-head-link{margin-left:auto;padding:0;font-size:13px;}
.v3-iconbtn{width:44px;height:44px;border-radius:12px;border:1px solid var(--v3-line);background:var(--v3-card);color:var(--v3-ink);display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none;}
.v3-iconbtn svg{width:18px;height:18px;}
.v3-new{display:none;height:44px;align-items:center;gap:8px;padding:0 18px;background:var(--v3-navy);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;}
.v3-new svg{width:16px;height:16px;}
.v3-new:hover{background:var(--v3-navy-h);}

/* buttons, chips */
.v3-btn{height:40px;padding:0 14px;border-radius:9px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;}
.v3-btn svg{width:17px;height:17px;}
.v3-btn-primary{background:var(--v3-navy);color:#fff;}
.v3-btn-primary:hover{background:var(--v3-navy-h);}
.v3-btn-ghost{background:var(--v3-card);color:var(--v3-navy);border-color:#cfd8e2;}
body.dark-mode .v3-btn-ghost{color:var(--v3-info-fg);border-color:var(--v3-soft-line);}
.v3-btn-soft{height:34px;padding:0 12px;background:var(--v3-soft);color:var(--v3-navy);border-color:var(--v3-soft-line);}
body.dark-mode .v3-btn-soft{color:var(--v3-info-fg);}
.v3-btn-soft:hover{background:var(--v3-info-bg);}
.v3-btn-quiet{height:34px;padding:0 8px;background:none;color:var(--v3-muted);}
.v3-link{background:none;border:none;padding:8px 0 0;color:var(--v3-navy);font-size:13px;font-weight:600;cursor:pointer;text-align:left;}
body.dark-mode .v3-link{color:var(--v3-info-fg);}
.v3-chips{display:flex;gap:6px;flex-wrap:wrap;}
.v3-chip{font-size:12px;font-weight:600;border-radius:99px;padding:3px 9px;line-height:1.35;}
.v3-t-good{background:var(--v3-good-bg);color:var(--v3-good-fg);}
.v3-t-warn{background:var(--v3-warn-bg);color:var(--v3-warn-fg);}
.v3-t-alert{background:var(--v3-alert-bg);color:var(--v3-alert-fg);}
.v3-t-info{background:var(--v3-info-bg);color:var(--v3-info-fg);}
.v3-t-gray{background:var(--v3-gray-bg);color:var(--v3-gray-fg);}

/* section heads */
.v3-sec-head{display:flex;align-items:baseline;gap:10px;margin-bottom:10px;}
.v3-sec-head h2{margin:0!important;font-size:15px;font-weight:700;color:var(--v3-ink);font-family:inherit;display:flex;align-items:center;gap:7px;}
.v3-sec-head > span{font-size:13px;color:var(--v3-muted);}
.v3-count{font-size:11.5px;font-weight:700;border-radius:99px;padding:1px 7px;background:var(--v3-alert-bg);color:var(--v3-alert-fg);}

/* top area */
.v3-top{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;margin-top:18px;}
.v3-today,.v3-needs{min-width:0;}

/* Today */
.v3-today-list{display:flex;gap:12px;overflow-x:auto;margin:0 -16px;padding:0 16px 6px;scroll-snap-type:x mandatory;scrollbar-width:none;}
.v3-today-list::-webkit-scrollbar{display:none;}
.v3-tcard{flex:0 0 min(300px,84vw);scroll-snap-align:start;background:var(--v3-card);border:1px solid var(--v3-line);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:11px;}
.v3-today-list > .v3-tcard:only-child{flex-basis:100%;}
.v3-tcard-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.v3-time{font-size:13px;font-weight:700;color:var(--v3-info-fg);background:var(--v3-info-bg);border-radius:8px;padding:4px 9px;}
.v3-kind{font-size:12px;color:var(--v3-muted);}
.v3-tcard-addr{display:flex;flex-direction:column;gap:2px;background:none;border:none;padding:0;text-align:left;cursor:pointer;color:inherit;}
.v3-tcard-addr b{font-size:16px;font-weight:600;color:var(--v3-ink);}
.v3-tcard-addr span{font-size:13px;color:var(--v3-muted);}
.v3-tcard-btns{display:flex;gap:8px;margin-top:auto;}
.v3-tcard-btns .v3-btn{height:44px;}
.v3-tcard-btns .v3-btn-primary{flex:1;}
.v3-dir span{display:none;}
.v3-dir{width:44px;padding:0;}
.v3-empty-card{flex:1;background:var(--v3-card);border:1px dashed var(--v3-line);border-radius:16px;padding:18px;color:var(--v3-muted);font-size:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}

/* Needs you */
.v3-needs{background:var(--v3-card);border:1px solid var(--v3-line);border-radius:16px;padding:14px 16px;align-self:start;}
.v3-needs .v3-sec-head{margin-bottom:4px;}
.v3-need{display:flex;align-items:center;gap:10px;border-top:1px solid var(--v3-line3);min-height:54px;}
.v3-dot{width:9px;height:9px;border-radius:99px;flex:none;}
.v3-d-alert{background:var(--v3-red);} .v3-d-warn{background:var(--v3-warn);} .v3-d-info{background:var(--v3-cur);}
.v3-need-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;background:none;border:none;padding:9px 0;text-align:left;cursor:pointer;color:inherit;}
.v3-need-text b{font-size:14px;font-weight:600;color:var(--v3-ink);}
.v3-need-text span{font-size:12.5px;color:var(--v3-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.v3-need > .v3-btn-soft{display:none;}
.v3-need-chev{color:var(--v3-faint);display:flex;}
.v3-need-chev svg{width:16px;height:16px;}
.v3-need-empty{border-top:1px solid var(--v3-line3);padding:14px 0 4px;font-size:13.5px;color:var(--v3-muted);}

/* Jobs */
.v3-jobs{margin-top:20px;}
.v3-jobs-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;margin-bottom:10px;}
.v3-jobs-head h2{margin:0!important;font-size:15px;font-weight:700;color:var(--v3-ink);font-family:inherit;}
.v3-sync{font-size:12px;color:var(--v3-muted);margin-left:auto;}
.v3-sync.bad{color:var(--v3-alert-fg);}
.v3-tabs{order:3;flex:1 1 100%;display:flex;gap:6px;overflow-x:auto;margin:0 -16px;padding:0 16px 2px;scrollbar-width:none;}
.v3-tabs::-webkit-scrollbar{display:none;}
.v3-tab{flex:none;height:36px;padding:0 13px;border-radius:99px;border:1px solid var(--v3-line);background:var(--v3-card);color:var(--v3-muted);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;}
.v3-tab.on{background:var(--v3-navy);border-color:var(--v3-navy);color:#fff;}
.v3-tab-n{font-size:11.5px;font-weight:700;opacity:.8;margin-left:2px;}
.v3-cols{display:none;}
.v3-list{background:var(--v3-card);border:1px solid var(--v3-line);border-radius:16px;overflow:hidden;}
.v3-list-empty{padding:26px 18px;text-align:center;color:var(--v3-muted);font-size:14px;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;}

/* a job row: phone layout first */
.v3-row{display:grid;grid-template-columns:minmax(0,1fr) auto 36px;grid-template-areas:"prop owed more" "steps steps steps" "next next next";column-gap:8px;row-gap:6px;align-items:center;padding:12px 8px 12px 14px;border-bottom:1px solid var(--v3-line3);cursor:pointer;outline:none;}
.v3-row:last-child{border-bottom:none;}
.v3-row:hover{background:var(--v3-card2);}
.v3-row:focus-visible{box-shadow:inset 0 0 0 2px var(--v3-navy);}
.v3-c-date{display:none;}
.v3-c-prop{grid-area:prop;display:flex;flex-direction:column;gap:2px;min-width:0;}
.v3-c-prop b{font-size:15px;font-weight:600;color:var(--v3-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:6px;}
.v3-c-prop span{font-size:12.5px;color:var(--v3-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.v3-sub-desk{display:none;}
.v3-unread{flex:none;min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:var(--v3-red);color:#fff;font-size:10.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;}
.v3-onsite{flex:none;font-size:10.5px;font-weight:700;color:var(--v3-alert-fg);background:var(--v3-alert-bg);border-radius:99px;padding:1px 7px;}
.v3-c-steps{grid-area:steps;}
.v3-c-next{grid-area:next;font-size:13px;font-weight:600;line-height:1.35;}
.v3-c-owed{grid-area:owed;font-size:14px;font-weight:700;color:var(--v3-faint);text-align:right;white-space:nowrap;}
.v3-c-owed.due{color:var(--v3-alert-fg);}
.v3-c-owed:not(.due){visibility:hidden;}
.v3-more{grid-area:more;width:36px;height:36px;border:none;background:none;border-radius:8px;color:var(--v3-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;}
.v3-more:hover{background:var(--v3-soft);}
.v3-more svg{width:18px;height:18px;}
.v3-x-alert{color:var(--v3-alert-fg);} .v3-x-warn{color:var(--v3-warn-fg);} .v3-x-good{color:var(--v3-good-fg);} .v3-x-info{color:var(--v3-info-fg);} .v3-x-gray{color:var(--v3-gray-fg);}

/* the five-step track */
.v3-steps{display:flex;gap:4px;align-items:center;}
.v3-s{display:inline-block;width:22px;height:7px;border-radius:99px;flex:none;}
.v3-s-done{background:var(--v3-done);}
.v3-s-warn{background:var(--v3-warn);}
.v3-s-current{background:var(--v3-cur);}
.v3-s-todo{border:2px solid var(--v3-todo);}
.v3-s-wait{background:var(--v3-line2);animation:v3-pulse 1.4s ease-in-out infinite;}
@keyframes v3-pulse{50%{opacity:.45;}}
.v3-legend{display:flex;flex-wrap:wrap;gap:8px 16px;padding:10px 4px 0;font-size:12px;color:var(--v3-muted);}
.v3-legend > span{display:inline-flex;align-items:center;gap:6px;}
.v3-legend .v3-s{width:14px;}
.v3-legend-steps{flex-basis:100%;}

/* ⋯ menu */
.v3-menu{position:fixed;z-index:9500;min-width:220px;max-height:calc(100vh - 16px);overflow-y:auto;overscroll-behavior:contain;background:var(--v3-card,#fff);border:1px solid var(--v3-line,#e6e1d6);border-radius:12px;box-shadow:0 14px 40px -12px rgba(16,38,61,.35);padding:6px;display:flex;flex-direction:column;font-family:var(--v3-sans,system-ui);}
.v3-menu button{display:block;width:100%;text-align:left;padding:10px 12px;border:none;background:none;border-radius:8px;font-family:inherit;font-size:14px;font-weight:500;color:var(--v3-ink,#14202c);cursor:pointer;}
.v3-menu button:hover,.v3-menu button:focus-visible{background:var(--v3-soft,#f3f6f9);outline:none;}
.v3-menu .v3-menu-danger{color:var(--v3-alert-fg,#a12a1f);border-top:1px solid var(--v3-line2,#efebe2);border-radius:0 0 8px 8px;margin-top:4px;}

/* ---- tablet and up ---- */
@media (min-width:620px){
  #v3-root{padding:calc(24px + env(safe-area-inset-top,0px)) 24px 28px;}
  #v3-root h1.v3-greet{font-size:32px!important;}
  .v3-search-toggle{display:none;}
  .v3-search{display:flex;flex:0 1 320px;order:0;}
  .v3-search kbd{display:inline;}
  .v3-new{display:flex;}
  .v3-today-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;margin:0;padding:0;}
  .v3-today-list > .v3-tcard:only-child{grid-column:1 / -1;}
  .v3-need > .v3-btn-soft{display:inline-flex;}
  .v3-need-chev{display:none;}
  .v3-tabs{margin:0;padding:0;}
  .v3-legend-steps{flex-basis:auto;}
}

/* ---- desktop: two columns up top, the jobs list as a table ---- */
@media (min-width:1024px){ .v3-iconbtn.v3-theme{display:flex;} }
@media (min-width:1240px){
  #v3-root{padding:calc(28px + env(safe-area-inset-top,0px)) 36px 32px;}
  #v3-root h1.v3-greet{font-size:34px!important;}
  .v3-top{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px;margin-top:22px;}
  .v3-jobs{margin-top:22px;background:var(--v3-card);border:1px solid var(--v3-line);border-radius:14px;overflow:hidden;}
  .v3-jobs-head{flex-wrap:nowrap;gap:6px;margin:0;padding:12px 18px 0;border-bottom:1px solid var(--v3-line2);}
  .v3-jobs-head h2{margin:0 14px 12px 0!important;}
  .v3-sync{margin-bottom:12px;}
  .v3-tabs{order:0;flex:0 1 auto;gap:2px;overflow:visible;}
  .v3-tab{height:40px;border:none;border-radius:0;background:none;padding:0 12px;color:var(--v3-muted);margin-bottom:-1px;border-bottom:2px solid transparent;font-size:13.5px;}
  .v3-tab.on{background:none;color:var(--v3-ink);border-bottom-color:var(--v3-navy);}
  .v3-tab-n{font-size:11.5px;border-radius:99px;padding:1px 7px;margin-left:4px;background:var(--v3-gray-bg);color:var(--v3-muted);opacity:1;}
  .v3-tab.on .v3-tab-n{background:var(--v3-info-bg);color:var(--v3-info-fg);}
  .v3-cols,.v3-row{display:grid;grid-template-columns:120px minmax(0,2.2fr) 150px minmax(0,1.6fr) 96px 40px;grid-template-areas:none;gap:14px;align-items:center;}
  .v3-cols{padding:9px 18px;font-size:11.5px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:var(--v3-muted);border-bottom:1px solid var(--v3-line2);}
  .v3-cols .r{text-align:right;}
  .v3-list{border:none;border-radius:0;}
  .v3-row{padding:11px 18px;row-gap:0;}
  .v3-row > *{grid-area:auto;}
  .v3-c-date{display:flex;flex-direction:column;}
  .v3-c-date b{font-size:13.5px;font-weight:600;}
  .v3-c-date span{font-size:12px;color:var(--v3-muted);}
  .v3-sub-desk{display:block;}
  .v3-c-owed:not(.due){visibility:visible;}
  .v3-sub-phone{display:none;}
  .v3-c-next{font-size:13.5px;}
  .v3-s{width:24px;height:8px;}
  .v3-legend{padding:10px 18px;border-top:1px solid var(--v3-line2);}
}
@media (min-width:1400px){
  .v3-cols,.v3-row{grid-template-columns:120px minmax(0,2.2fr) 180px minmax(0,1.6fr) 100px 40px;}
  .v3-s{width:28px;}
}

/* ═══ the job panel: full screen on a phone, a drawer from 1024px ═══ */
#v3-panel-wrap{position:fixed;inset:0;z-index:900;font-family:var(--v3-sans);color:var(--v3-ink);}
#v3-panel-wrap *,#v3-panel-wrap *::before,#v3-panel-wrap *::after{box-sizing:border-box;}
#v3-panel-wrap button{font-family:inherit;}
.v3-scrim{position:absolute;inset:0;background:rgba(16,38,61,.28);display:none;}
.v3-panel{position:absolute;inset:0;background:var(--v3-card);display:flex;flex-direction:column;outline:none;animation:v3-in .18s ease-out;}
@keyframes v3-in{from{transform:translateY(12px);opacity:.4;}}
body.v3-panel-open{overflow:hidden;}
.v3-p-head{display:flex;flex-direction:column;gap:8px;padding:calc(12px + env(safe-area-inset-top,0px)) 16px 14px;border-bottom:1px solid var(--v3-line2);}
.v3-p-back{align-self:flex-start;height:40px;display:flex;align-items:center;gap:4px;background:none;border:none;padding:0;font-size:14px;font-weight:600;color:var(--v3-navy);cursor:pointer;}
body.dark-mode .v3-p-back{color:var(--v3-info-fg);}
.v3-p-back svg{width:18px;height:18px;}
.v3-p-close{display:none;}
.v3-p-titles{display:flex;flex-direction:column;gap:2px;min-width:0;}
.v3-p-eyebrow{font-size:11.5px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--v3-muted);}
#v3-panel-wrap h2{margin:0;border:none;padding:0;font-family:var(--v3-serif);font-size:27px;font-weight:600;line-height:1.15;color:var(--v3-navy-d);text-align:left;}
body.dark-mode #v3-panel-wrap h2{color:var(--v3-ink);}
.v3-p-sub{font-size:14px;color:var(--v3-muted);}
.v3-p-body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:16px 16px 24px;display:flex;flex-direction:column;gap:18px;}
.v3-p-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;}
.v3-p-step{display:flex;flex-direction:column;gap:5px;min-width:0;}
.v3-p-step b{font-size:11px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.v3-p-step span:last-child{font-size:11px;color:var(--v3-muted);overflow:hidden;text-overflow:ellipsis;}
.v3-p-bar{height:6px;border-radius:99px;display:block;}
.v3-p-bar.v3-s-todo{border:none;background:var(--v3-line2);}
.v3-p-next{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;}
.v3-p-next > div{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;}
.v3-p-next b{font-size:15px;font-weight:600;}
.v3-p-next .v3-p-primary{display:none;}
.v3-nb-warn{background:var(--v3-warn-bg);color:var(--v3-warn-fg);}
.v3-nb-alert{background:var(--v3-alert-bg);color:var(--v3-alert-fg);}
.v3-nb-good{background:var(--v3-good-bg);color:var(--v3-good-fg);}
.v3-nb-info{background:var(--v3-info-bg);color:var(--v3-info-fg);}
.v3-nb-gray{background:var(--v3-gray-bg);color:var(--v3-gray-fg);}
.v3-p-cap{font-size:11.5px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;}
.v3-p-body section{display:flex;flex-direction:column;gap:10px;}
.v3-p-body h3{margin:0;font-size:12.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--v3-muted);border:none;padding:0;}
.v3-p-muted{font-size:13px;color:var(--v3-muted);line-height:1.45;}
.v3-p-lines{border:1px solid var(--v3-line2);border-radius:12px;overflow:hidden;}
.v3-p-line{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;padding:11px 14px;border-bottom:1px solid var(--v3-line3);}
.v3-p-line-name{font-size:14px;flex:1;min-width:80px;overflow-wrap:anywhere;}
.v3-p-card b,#v3-panel-wrap h2,.v3-p-sub,.v3-p-ev span:last-child{overflow-wrap:anywhere;}
.v3-p-amt{font-size:14px;font-weight:600;min-width:64px;text-align:right;}
.v3-p-line-tools{flex-basis:100%;display:flex;gap:16px;}
.v3-p-line-tools .v3-link{padding:0;}
.v3-p-owed{display:flex;align-items:center;padding:11px 14px;background:var(--v3-card2);font-size:14px;font-weight:700;}
.v3-p-owed span{flex:1;}
.v3-p-owed .due{color:var(--v3-alert-fg);} .v3-p-owed .ok{color:var(--v3-good-fg);}
.v3-p-row-btns{display:flex;gap:8px;flex-wrap:wrap;}
.v3-p-grid2{display:grid;grid-template-columns:1fr;gap:10px;}
.v3-p-card{border:1px solid var(--v3-line2);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:3px;min-width:0;}
.v3-p-card .v3-p-cap{color:var(--v3-muted);font-weight:600;text-transform:none;letter-spacing:0;font-size:12px;}
.v3-p-card b{font-size:14px;font-weight:600;}
.v3-p-card a{font-size:13px;color:var(--v3-navy);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
body.dark-mode .v3-p-card a{color:var(--v3-info-fg);}
.v3-p-contact{font-size:13px;color:var(--v3-muted);}
.v3-p-grid4{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.v3-p-grid4 .v3-btn{height:44px;}
.v3-p-switch,#v3-panel-wrap label.v3-p-switch{display:flex!important;align-items:center;gap:8px;font-size:13.5px!important;font-weight:500!important;text-transform:none!important;letter-spacing:0!important;color:var(--v3-ink)!important;cursor:pointer;margin:0!important;}
#v3-panel-wrap .v3-p-switch input{-webkit-appearance:checkbox!important;appearance:auto!important;width:18px!important;height:18px!important;min-height:0!important;margin:0!important;padding:0!important;flex:none;accent-color:var(--v3-navy);box-shadow:none!important;}
/* The floating toolbox buttons sat on top of the panel. */
body.v3-panel-open #toolbox-pill,body.v3-panel-open #mobile-toolbar-tab{display:none!important;}
.v3-p-ev{display:flex;gap:12px;font-size:13.5px;line-height:1.4;}
.v3-p-ev span:first-child{width:92px;flex:none;color:var(--v3-muted);}
.v3-p-foot{display:flex;flex-wrap:wrap;gap:4px 18px;padding-top:12px;border-top:1px solid var(--v3-line2);}
.v3-p-foot .v3-link{padding:6px 0;}
.v3-p-bottom{display:flex;gap:8px;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--v3-line2);background:var(--v3-card);}
.v3-p-bottom .v3-p-primary{flex:1;height:48px;font-size:15px;}
.v3-p-bottom .v3-iconbtn{width:48px;height:48px;}
.v3-menu-head{padding:10px 12px 4px;font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--v3-muted,#5d6b78);}
#v3-panel-wrap ~ .v3-menu,.v3-menu{z-index:9500;}

@media (max-width:379px){ .v3-p-step b{font-size:10px;letter-spacing:-.1px;} .v3-p-steps{gap:4px;} }
@media (min-width:620px){
  .v3-p-grid2{grid-template-columns:repeat(2,minmax(0,1fr));}
  .v3-p-grid4{grid-template-columns:repeat(4,minmax(0,1fr));}
  .v3-p-step b{font-size:12.5px;}
}
@media (min-width:1024px){
  .v3-scrim{display:block;}
  .v3-panel{left:auto;width:560px;max-width:100%;box-shadow:-18px 0 48px rgba(16,38,61,.18);animation:v3-slide .2s ease-out;}
  @keyframes v3-slide{from{transform:translateX(24px);opacity:.5;}}
  body.v3-panel-open{overflow:auto;}
  .v3-p-head{flex-direction:row;align-items:flex-start;gap:12px;padding:22px 26px 18px;}
  .v3-p-back{display:none;}
  .v3-p-titles{flex:1;}
  #v3-panel-wrap h2{font-size:28px;}
  .v3-p-close{display:flex;width:38px;height:38px;border-radius:10px;}
  .v3-p-body{padding:18px 26px 26px;}
  .v3-p-next .v3-p-primary{display:inline-flex;height:42px;padding:0 18px;font-size:14px;}
  .v3-p-bottom{display:none;}
}
