/* shell.css - Security Van's clean shell. Everything here is under body.sv, so
 * the classic layout (a row under your name) is exactly as it was.
 *
 * The brief, from Evan's BioForge screenshots: big text, big buttons, clear
 * buttons, no clutter, a clean band at the top, minimal. One blue, one grey,
 * white cards. Nothing a finger has to aim for is smaller than 44px. */

.sv-brand,.sv-gear{display:none}

body.sv{
  --bg:#f4f5f7; --panel:#ffffff; --panel2:#ffffff; --ink:#16181d; --dim:#4f5766; --dimmer:#7d8594;
  --line:#e1e5eb; --accent:#1f5fbf; --accent2:#174a96; --accent-ink:#ffffff;
  --sv-line:#d9dee6; --sv-soft:#eef3fb;
  background:var(--bg); color:var(--ink);
}

/* ── the band ── */
body.sv #menubar{display:flex!important;align-items:center;gap:8px;height:68px;padding:0 20px;
  background:#fff;border-bottom:1px solid var(--line);backdrop-filter:none;position:relative;z-index:60}
body.sv .mb-mark,body.sv .mb-text,body.sv #btnApprovals,body.sv #btnCounts,body.sv #btnBell,body.sv .mb-clock{display:none!important}
body.sv .mb{display:none}
body.sv.sv-doc .mb{display:inline-flex;align-items:center;height:44px;padding:0 12px;border-radius:10px;
  font:500 15px var(--sans);color:var(--dim);background:none;border:0}
body.sv.sv-doc .mb:hover{background:#f1f3f6;color:var(--ink)}
body.sv.sv-doc .mb.on{background:var(--accent);color:#fff}
body.sv .sv-brand{display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 14px 0 2px;border:0;background:none;
  font:700 19px var(--sans);letter-spacing:-.2px;color:var(--ink);cursor:pointer}
body.sv .sv-brand i{width:11px;height:11px;border-radius:50%;background:var(--accent);display:block}
body.sv .mb-nav{gap:8px;margin:0 8px 0 0}
body.sv .mb-navbtn{width:48px;height:48px;border:1.5px solid var(--sv-line);border-radius:12px;background:#fff;color:var(--ink)}
body.sv .mb-navbtn svg{width:20px;height:20px}
body.sv .mb-navbtn:hover:not(:disabled){background:#f6f7f9;border-color:#aeb6c3;color:var(--ink)}
body.sv .mb-navbtn.on{background:var(--sv-soft);border-color:var(--accent);color:var(--accent)}
body.sv .mb-navbtn:disabled{opacity:.35}
body.sv .mb-right{display:flex;align-items:center;gap:10px;margin-left:auto}
body.sv .sv-gear{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:1.5px solid var(--sv-line);
  border-radius:12px;background:#fff;color:var(--ink);cursor:pointer}
body.sv .sv-gear:hover,body.sv #whoami:hover{border-color:#aeb6c3;background:#f6f7f9}
body.sv #whoami{display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 14px 0 6px;border:1.5px solid var(--sv-line);
  border-radius:12px;background:#fff;color:var(--ink);font:600 17px var(--sans);cursor:pointer}
body.sv #whoami .who-av{width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;font:700 14px var(--sans);
  display:grid;place-items:center;margin:0}

/* the menus that open from the band */
body.sv .menu-pop{min-width:260px;padding:6px;border-radius:14px;background:#fff;border:1px solid var(--line);
  box-shadow:0 16px 40px rgba(16,24,40,.14)}
body.sv .menu-pop .mi{min-height:46px;padding:0 14px;border-radius:10px;font-size:16px;color:var(--ink)}
body.sv .menu-pop .mi:hover{background:var(--sv-soft);color:var(--accent)}
body.sv .menu-pop .mi.sep{min-height:0;height:1px;padding:0;margin:5px 8px;background:var(--line)}

/* the builder sits under the taller band */
body.sv .window{inset:68px 0 0 0!important;border-radius:0;box-shadow:none;border:0}
body.sv .work{top:68px;background:var(--bg)}

/* ── the desktop ── */
.sv-desk{max-width:1400px;margin:0 auto;padding:40px 40px 80px}
.sv-hello{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:28px}
.sv-hello h1{margin:0;font:700 34px/1.15 var(--sans);letter-spacing:-.5px;color:var(--ink)}
.sv-hello span{font-size:19px;color:var(--dim)}
.sv-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.sv-tile{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:30px 28px;min-height:250px;
  background:#fff;border:1.5px solid var(--line);border-radius:20px;cursor:pointer;font:inherit;color:var(--ink);
  box-shadow:0 1px 2px rgba(16,24,40,.04);transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}
.sv-tile:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(16,24,40,.08);border-color:#cfd6e2}
.sv-tile:active{transform:none}
.sv-tile:focus-visible,.sv-row:focus-visible,.sv-btn:focus-visible,.sv-all:focus-visible{outline:3px solid rgba(31,95,191,.35);outline-offset:2px}
.sv-ico{width:72px;height:72px;border-radius:18px;background:var(--sv-soft);color:var(--accent);display:grid;place-items:center;margin-bottom:26px}
.sv-tile b{font:700 24px/1.2 var(--sans);letter-spacing:-.2px;margin-bottom:10px}
.sv-tile i{font-style:normal;font-size:17px;line-height:1.5;color:var(--dim)}
.sv-all{display:flex;align-items:center;gap:10px;margin:34px auto 0;height:52px;padding:0 24px;border:1.5px solid var(--sv-line);
  border-radius:14px;background:#fff;font:600 17px var(--sans);color:var(--ink);cursor:pointer}
.sv-all:hover{border-color:var(--accent);color:var(--accent)}
@media (max-width:1180px){.sv-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:880px){.sv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.sv-grid{grid-template-columns:1fr;gap:14px}.sv-tile{min-height:0;padding:22px 20px;flex-direction:row;align-items:center;gap:18px;flex-wrap:wrap}
  .sv-ico{margin:0;width:60px;height:60px}.sv-tile b{margin:0;font-size:21px}.sv-tile i{flex-basis:100%;font-size:16px}}

/* All apps: the grouped list, set larger */
body.sv .ws-in{max-width:1400px;padding:40px 40px 80px}
body.sv .ws-head h1{font-size:34px;font-weight:700}
body.sv .ws-find,body.sv .ws-btn{height:52px;font-size:17px;padding:0 18px}
body.sv .ws-find{width:300px;border:1.5px solid var(--sv-line);background:#fff}
body.sv .ws-btn{border:1.5px solid var(--sv-line);background:#fff;border-radius:14px}
body.sv .ws-glabel{font-size:13px;color:var(--dim);margin-bottom:12px}
body.sv .ws-glabel i{font-size:15px}
body.sv .ws-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}
body.sv .ws-tile{padding:20px 22px;border-radius:16px;background:#fff;border:1.5px solid var(--line)}
body.sv .ws-tile b{font-size:19px;font-weight:700}
body.sv .ws-tile i{font-size:15.5px;line-height:1.45}
body.sv .ws-ico{font-size:24px;color:var(--accent)}
body.sv .ws-tile.mine{border-left:1.5px solid var(--line)}
body.sv .ws-foot{font-size:15px}

/* ── the Customers folder and a customer's page ── */
.sv-page{max-width:1200px;margin:0 auto;padding:34px 40px 90px}
.sv-pagehead{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:8px}
.sv-pagehead h1{margin:0;font:700 34px var(--sans);letter-spacing:-.5px}
.sv-search{width:min(480px,100%);height:56px;padding:0 20px;font:400 18px var(--sans);color:var(--ink);
  border:1.5px solid var(--sv-line);border-radius:14px;background:#fff}
.sv-search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px rgba(31,95,191,.12)}
.sv-count{color:var(--dim);font-size:16.5px;margin:8px 0 18px}
.sv-list{display:flex;flex-direction:column;gap:10px}
.sv-row{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;text-align:left;padding:16px 22px;min-height:78px;
  background:#fff;border:1.5px solid var(--line);border-radius:16px;cursor:pointer;font:inherit;color:inherit}
.sv-row:hover{border-color:var(--accent)}
.sv-rname{min-width:0}
.sv-rname b{display:block;font-size:19px;font-weight:700}
.sv-rname i{display:block;font-style:normal;font-size:15.5px;color:var(--dim);margin-top:3px}
.sv-rtags{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.sv-tag{font-size:14px;font-weight:700;padding:6px 12px;border-radius:999px;white-space:nowrap}
.sv-tag.owe{background:#fdf0d5;color:#7a4f00}
.sv-tag.inc{background:var(--sv-soft);color:var(--accent)}
.sv-empty{color:var(--dimmer);font-size:16.5px;margin:4px 0 0}
.sv-crumb{border:0;background:none;font:600 17px var(--sans);color:var(--accent);padding:10px 0;min-height:44px;cursor:pointer;margin-bottom:8px}
.sv-chead{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;
  padding-bottom:22px;border-bottom:2.5px solid var(--accent);margin-bottom:26px}
.sv-chead h1{margin:0 0 6px;font:700 34px/1.15 var(--sans);letter-spacing:-.5px}
.sv-addr{margin:0;font-size:18px;color:var(--dim)}
.sv-actions{display:flex;gap:10px;flex-wrap:wrap}
.sv-btn{display:inline-flex;align-items:center;height:52px;padding:0 20px;border:1.5px solid var(--sv-line);border-radius:14px;
  background:#fff;font:600 17px var(--sans);color:var(--ink);text-decoration:none;cursor:pointer}
.sv-btn:hover{border-color:var(--accent);color:var(--accent)}
.sv-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.sv-btn.primary:hover{background:var(--accent2);color:#fff}
.sv-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.sv-card{background:#fff;border:1.5px solid var(--line);border-radius:18px;padding:24px 26px;min-width:0}
.sv-card h2{margin:0 0 14px;font:700 13px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.sv-dl{display:grid;grid-template-columns:90px 1fr;gap:10px 16px;margin:0;font-size:17px}
.sv-dl dt{color:var(--dim)} .sv-dl dd{margin:0;overflow-wrap:anywhere}
.sv-card a{color:var(--accent);font-weight:600;text-decoration:none}
.sv-card a:hover{text-decoration:underline}
.sv-big-line{font-size:18px;margin:0 0 12px}
.sv-links{display:flex;gap:22px;flex-wrap:wrap;margin:0;font-size:17px}
.sv-links a{display:inline-flex;align-items:center;min-height:44px}
.sv-chips{display:flex;gap:8px;flex-wrap:wrap}
.sv-chip{font-size:16px;font-weight:600;padding:8px 14px;border-radius:999px;background:var(--sv-soft);color:var(--accent)}
.sv-note{color:var(--dim);font-size:15px;margin:10px 0 0}
.sv-owed{font:700 30px var(--sans);margin:0}
.sv-owed.owes{color:#8a4b00}
.sv-lines{list-style:none;margin:12px 0 0;padding:0}
.sv-lines li{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:11px 0;border-top:1px solid var(--line);font-size:16.5px}
.sv-lines li:first-child{border-top:0}
.sv-lines li span{min-width:0}
.sv-lines li i{font-style:normal;color:var(--dim);font-size:15px;margin-left:6px}
.sv-lines li b{white-space:nowrap;font-size:15.5px}
@media (max-width:880px){.sv-cards{grid-template-columns:1fr}}

/* ── tools opened over the desktop: bigger type, bigger buttons ── */
body.sv .modal{border-radius:20px}
body.sv .modal-head{padding:18px 24px}
body.sv .modal-head h2{font-size:21px;font-weight:700}
body.sv .modal-body{padding:18px 24px;font-size:16px}
body.sv .modal-foot{padding:16px 24px;gap:10px;flex-wrap:wrap}
body.sv .modal .btn{min-height:46px;padding:0 18px;font-size:16px;border-radius:12px}
body.sv .modal .btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
body.sv .modal input.f,body.sv .modal select.f{min-height:46px;font-size:16px}
body.sv .modal textarea.f{font-size:16px}
body.sv .modal .iv-l{font-size:13px}

/* the first-time card */
.sv-fr-demo{position:relative;height:230px;border:1.5px solid var(--line);border-radius:16px;background:#f7f8fa;overflow:hidden;margin:4px 0 18px}
.sv-fr-band{height:58px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;padding:0 12px}
.sv-fr-name{display:inline-flex;align-items:center;gap:8px;padding:5px 10px 5px 5px;border:2px solid var(--accent);border-radius:12px;
  font:700 16px var(--sans);color:var(--ink);animation:svpulse 1.8s ease-in-out infinite}
.sv-fr-av{width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:12px}
.sv-fr-menu{position:absolute;right:12px;top:66px;width:220px;background:#fff;border:1px solid var(--line);border-radius:12px;
  box-shadow:0 12px 30px rgba(16,24,40,.12);padding:6px}
.sv-fr-menu div{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;font-size:16px}
.sv-fr-menu div.on{background:var(--sv-soft);color:var(--accent);font-weight:700}
.sv-fr-text{font-size:19px;line-height:1.5;margin:0}
@keyframes svpulse{0%,100%{box-shadow:0 0 0 0 rgba(31,95,191,.35)}50%{box-shadow:0 0 0 8px rgba(31,95,191,0)}}
@media (prefers-reduced-motion:reduce){.sv-fr-name{animation:none}.sv-tile{transition:none}}

/* ── signing in: one white card on a quiet page ── */
body.sv .welcome-bg{background:var(--bg)!important}
body.sv .welcome-card{width:min(460px,92vw);padding:36px 34px 28px;text-align:left;color:var(--ink);background:#fff!important;
  border:1.5px solid var(--line);border-radius:22px;box-shadow:0 14px 40px rgba(16,24,40,.08);backdrop-filter:none}
body.sv .w-brand{justify-content:flex-start;margin:0 0 22px}
body.sv .w-brand img{max-width:200px}
.sv-signh{margin:0 0 8px;font:700 30px var(--sans);letter-spacing:-.4px;color:var(--ink)}
.sv-signp{margin:0 0 20px;font-size:17px;line-height:1.5;color:var(--dim)}
body.sv .who-grid{display:flex;flex-direction:column;gap:10px}
body.sv .who{display:grid;grid-template-columns:46px 1fr auto;column-gap:14px;align-items:center;text-align:left;width:100%;
  padding:12px 16px;min-height:72px;border:1.5px solid var(--sv-line);border-radius:14px;background:#fff;color:var(--ink);cursor:pointer}
body.sv .who:hover{border-color:var(--accent);background:#fbfcfe}
body.sv .who .who-av{grid-row:1 / span 2;width:44px;height:44px;border-radius:50%;background:var(--accent);color:#fff;
  display:grid;place-items:center;font:700 15px var(--sans);margin:0}
body.sv .who b{grid-column:2;font-size:19px;color:var(--ink)}
body.sv .who small{grid-column:2;font-size:14.5px;color:var(--dim)}
body.sv .who .who-tag{grid-column:3;grid-row:1 / span 2}
body.sv .w-foot{color:var(--dimmer);font-size:14.5px;text-align:left}
body.sv .welcome .avatar{background:var(--accent);color:#fff}
body.sv .w-h{color:var(--ink);font-size:26px}
body.sv .w-sub{color:var(--dim);font-size:17px}
body.sv .w-name{width:100%;height:56px;padding:0 16px;font-size:20px;text-align:left;color:var(--ink);background:#fff;
  border:1.5px solid var(--sv-line);border-radius:14px}
body.sv .w-name::placeholder{color:#a3aab6}
body.sv .w-name:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 4px rgba(31,95,191,.12)}
body.sv .welcome .btn{min-height:52px;font-size:17px;border-radius:14px}
body.sv .welcome .btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
body.sv .w-link{color:var(--accent);font-size:16px;min-height:44px}
body.sv .w-err{color:#b42318;font-size:16px}

/* ── phones ── */
@media (max-width:640px){
  body.sv #menubar{padding:0 12px;gap:6px}
  body.sv .sv-brand span,body.sv #btnNavForward,body.sv #whoami .who-name,body.sv #whoami svg{display:none}
  body.sv #whoami{padding:0 5px}
  .sv-desk,.sv-page{padding:22px 16px 60px}
  .sv-hello h1,.sv-pagehead h1,.sv-chead h1{font-size:28px}
  .sv-row{flex-wrap:wrap}
  .sv-btn{flex:1 1 auto;justify-content:center}
}
body.sv .sv-lbl{display:block;margin:14px 0 6px;font:600 15px var(--sans);color:var(--ink)}
body.sv .sv-lbl + .w-name{margin:0}

/* the server's one-line notice (RRS_BANNER), along the bottom, above everything */
.sv-banner{position:fixed;left:0;right:0;bottom:0;z-index:300;padding:9px 16px;text-align:center;
  background:#fdf0d5;color:#5c3d00;border-top:1px solid #f0d49a;font:600 15px var(--sans,system-ui)}
