/* HC Well Viewer. Dark editorial. Red is reserved for as-drilled wells in the scene; UI chrome never uses it. */
@font-face{font-family:"Inter";src:url("/assets/fonts/Inter-400.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Inter";src:url("/assets/fonts/Inter-500.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Inter";src:url("/assets/fonts/Inter-600.woff2") format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Inter Tight";src:url("/assets/fonts/InterTight-700.woff2") format("woff2");font-weight:700;font-display:swap}
:root{--bg:#07090d;--panel:#0b0f16;--card:#11151c;--card2:#171c26;--ink:#f3f1ec;--muted:#a9b0bd;--line:rgba(255,255,255,.12);--focus:#ffd166;--hot:rgba(255,209,102,.2);--plan:#4cc9f0;--bar:3.6rem;--font:"Inter","Liberation Sans",sans-serif;--display:"Inter Tight","Inter",sans-serif}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.4;color-scheme:dark}
body.vw{display:flex;flex-direction:column;height:100dvh;overflow:hidden}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.vw-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.vw-skip{position:absolute;left:.5rem;top:-6rem;z-index:50;background:var(--ink);color:#07090d;padding:.55rem .8rem;border-radius:.5rem;font-weight:600}
.vw-skip:focus{top:.5rem}
.vw-bar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;min-height:var(--bar);padding:.5rem .9rem;border-bottom:1px solid var(--line);background:rgba(11,15,22,.96);flex:0 0 auto}
.vw-brand{display:flex;align-items:center;flex:0 0 auto}
.vw-brand img{height:36px;width:auto;display:block}
.vw-title{margin:0;font-family:var(--display);font-size:1.05rem;letter-spacing:-.01em;font-weight:700;padding-left:1rem;border-left:1px solid var(--line)}
.vw-tools{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin-left:auto}
.vw-btn{font:inherit;font-weight:600;font-size:.88rem;color:var(--ink);background:var(--card2);border:1px solid var(--line);border-radius:.6rem;min-height:2.5rem;padding:.35rem .85rem;cursor:pointer}
.vw-btn:hover:not(:disabled){background:#202736;border-color:rgba(255,255,255,.28)}
.vw-btn:disabled{opacity:.45;cursor:default}
.vw-btn[aria-pressed=true]{background:var(--ink);color:#07090d}
.vw-showcase{border-color:rgba(255,209,102,.75)}
.vw-showcase:not(:disabled){color:#ffe08a}
.vw-showcase:disabled{opacity:1;color:#c4a15a;border-color:rgba(255,209,102,.4)}
.vw-showcase:hover:not(:disabled){background:#2c2618;border-color:#ffd166;color:#fff8e6}
.vw-showcase[aria-pressed=true]{background:#ffd166;color:#07090d;border-color:#ffd166}
.vw-btn-primary{background:var(--ink);color:#07090d;border-color:var(--ink)}
.vw-btn-primary:hover:not(:disabled){background:#fff}
.vw-seg{display:inline-flex;border:1px solid var(--line);border-radius:.6rem;overflow:hidden}
.vw-seg button{font:inherit;font-weight:600;font-size:.88rem;color:var(--muted);background:transparent;border:0;min-height:2.5rem;min-width:3.4rem;padding:.35rem .8rem;cursor:pointer}
.vw-seg button+button{border-left:1px solid var(--line)}
.vw-seg button[aria-checked=true]{background:var(--card2);color:var(--ink)}
.vw-seg button:focus-visible{outline-offset:-3px}
.vw-ctl{display:inline-flex;align-items:center;gap:.45rem;font-size:.82rem;color:var(--muted)}
.vw-ctl select,.vw-search input{font:inherit;font-size:.9rem;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:.55rem;min-height:2.5rem;padding:.3rem .6rem}
.vw-ve input{width:7.5rem;accent-color:#9fb3c8;min-height:2.5rem}
.vw-ve output{min-width:2.6rem;color:var(--ink);font-variant-numeric:tabular-nums}
.vw-chk{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--muted);min-height:2.5rem;cursor:pointer}
.vw-chk input{width:1.1rem;height:1.1rem;accent-color:#9fb3c8}
.vw-dupe .vw-chk{flex-wrap:wrap;row-gap:.1rem}.vw-dupe-note{flex-basis:100%;padding-left:1.5rem;font-size:.78rem;color:#e3b766}
.vw-main{flex:1 1 auto;display:flex;min-height:0;position:relative}
.vw-side{flex:0 0 23rem;display:flex;flex-direction:column;min-height:0;background:var(--panel);border-right:1px solid var(--line)}
.vw-side-h{padding:.7rem .7rem .4rem}
.vw-search{display:block;font-size:.78rem;color:var(--muted)}
.vw-search input{display:block;width:100%;margin-top:.25rem;font-size:.95rem}
.vw-side-row{display:flex;justify-content:space-between;align-items:center;gap:.4rem;margin-top:.35rem;font-size:.8rem;color:var(--muted);min-height:1.8rem;flex-wrap:wrap}
.vw-side-acts{display:flex;align-items:center;gap:.35rem;margin-left:auto;min-width:0}
.vw-pop{font-size:.78rem;min-height:2rem;padding:.15rem .55rem;flex:0 0 auto}
.vw-link{font:inherit;font-size:.82rem;font-weight:600;color:var(--ink);background:none;border:0;text-decoration:underline;cursor:pointer;min-height:2rem;padding:0 .2rem}
.vw-link:disabled{opacity:.4;cursor:default;text-decoration:none}
.vw-listwrap{flex:1 1 auto;overflow:auto;min-height:6rem;border-top:1px solid var(--line)}
.vw-list{list-style:none;margin:0;padding:.25rem 0}
.vw-row{display:flex;align-items:stretch;border-left:3px solid transparent}
.vw-row.is-hot{background:var(--hot);border-left-color:var(--focus)}
.vw-row.is-sel{background:var(--card2);border-left-color:var(--ink)}
.vw-row.is-sel.is-hot{background:var(--hot)}
.vw-row.is-off .vw-well-n,.vw-row.is-off .vw-well-m{color:var(--muted)}.vw-row.is-off .vw-dot{opacity:.5}.vw-row.is-off .vw-badge{color:var(--muted);border-color:var(--line)}.vw-row.is-off .vw-well-n{font-weight:400}
.vw-vis{flex:0 0 1.1rem;width:1.1rem;height:1.1rem;margin:auto .35rem auto .5rem;accent-color:#9fb3c8;cursor:pointer}
.vw-well{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:.5rem;text-align:left;font:inherit;color:var(--ink);background:none;border:0;padding:.5rem .6rem .5rem .2rem;min-height:2.9rem;cursor:pointer}
.vw-well:focus-visible{outline-offset:-3px}
.vw-well-t{flex:1;min-width:0;display:flex;flex-direction:column}
.vw-well-n{font-size:.9rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vw-well-m{font-size:.76rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vw-dot{flex:0 0 .8rem;width:.8rem;height:.8rem;border-radius:50%;display:inline-block;box-shadow:0 0 0 1px rgba(255,255,255,.35)}
.vw-badge{flex:0 0 auto;font-size:.68rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--ink);border:1px solid rgba(255,255,255,.3);border-radius:.4rem;padding:.08rem .35rem}
.vw-badge.proto{border-style:dashed;border-color:#f2c230;color:#f2c230}
.vw-badge.plan{border-color:#4cc9f0}
.vw-dot.proto{border-radius:.12rem;transform:rotate(45deg) scale(.8);box-shadow:0 0 0 1px rgba(255,255,255,.55)}
.vw-pri{flex:0 0 auto;font-size:.72rem;color:var(--ink);line-height:1}
.vw-tog{display:inline-flex;gap:.5rem}.vw-tog .vw-link[aria-pressed=true]{text-decoration:none;color:#07090d;background:var(--ink);border-radius:.4rem;padding:0 .45rem}
.vw-row.vw-sub{padding-left:1.1rem}
.vw-tree{list-style:none;margin:0;padding:0}
.vw-node>.vw-row{align-items:center}
.vw-branch.vw-well{min-height:2.15rem;padding-top:.22rem;padding-bottom:.22rem}
.vw-branch .vw-well-n{font-size:.84rem}
.vw-node[data-level="operator"]>.vw-row .vw-well-n{font-size:.92rem}
.vw-node[data-level="county"]>.vw-row{padding-left:.6rem}
.vw-node[data-level="site"]>.vw-row{padding-left:1.15rem}
.vw-node[data-level="well"]>.vw-row{padding-left:1.7rem}
.vw-leaf{padding-left:2.45rem}
.vw-chev{width:.9rem;flex:0 0 .9rem;display:inline-block;text-align:center;color:var(--muted)}
.vw-hc{flex:0 0 auto;font-size:.66rem;font-weight:700;color:#07090d;background:#cfe3f1;border-radius:.3rem;padding:.05rem .3rem}
.vw-nomatch{padding:.8rem;color:var(--muted);margin:0}
.vw-off{flex:0 0 auto;max-height:42%;display:flex;flex-direction:column;border-top:1px solid var(--line);background:var(--panel)}
.vw-off h2{margin:0;padding:.6rem .8rem .3rem;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600}
.vw-off h2 span{display:block;color:var(--ink);font-size:.9rem;letter-spacing:0;text-transform:none;margin-top:.1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vw-off-list{list-style:none;margin:0;padding:0 0 .4rem;overflow:auto}
.vw-off-row{display:flex;align-items:center;gap:.5rem;width:100%;font:inherit;color:var(--ink);background:none;border:0;border-left:3px solid transparent;padding:.4rem .7rem;min-height:2.5rem;text-align:left;cursor:pointer}
.vw-off-row:hover,.vw-off-row:focus-visible{background:var(--hot);border-left-color:var(--focus)}
.vw-off-row:focus-visible{outline-offset:-3px}
.vw-off-n{flex:1;min-width:0;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vw-off-d{font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:600}
.vw-stage{position:relative;flex:1 1 auto;min-width:0;min-height:0;background:radial-gradient(120% 90% at 50% 0%,#0f1520 0%,#07090d 70%)}
#vw-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;outline-offset:-3px}
.vw-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.vw-lab{position:absolute;left:0;top:0;white-space:nowrap;font-size:.72rem;font-weight:600;color:var(--ink);text-shadow:0 0 4px #000,0 0 2px #000;will-change:transform}
.vw-lab.pad{margin:-1.6rem 0 0 .7rem}
.vw-lab.tick{margin:0;padding:0;font-weight:500;font-size:.68rem;font-variant-numeric:tabular-nums;line-height:1}
.vw-lab.tick::after{content:"";position:absolute;left:100%;top:50%;width:11px;height:0;margin-left:5px;border-top:2px solid currentColor;transform:translateY(-50%)}
.vw-lab.axis{margin:-.5rem 0 0 .4rem;font-size:.74rem}
.vw-tip{position:absolute;left:0;top:0;z-index:5;pointer-events:none;min-width:12rem;max-width:20rem;background:rgba(11,15,22,.97);border:1px solid rgba(255,255,255,.28);border-radius:.7rem;padding:.6rem .75rem;box-shadow:0 8px 28px rgba(0,0,0,.55)}
.vw-tip-h{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.vw-tip-h strong{font-family:var(--display);font-size:1rem}
.vw-tip-s{margin-top:.15rem;font-size:.8rem;color:var(--muted)}
.vw-tip-g{display:grid;grid-template-columns:auto 1fr;gap:.1rem .7rem;margin:.45rem 0 0;font-size:.85rem}
.vw-tip-g dt{color:var(--muted)}.vw-tip-g dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}
.vw-empty{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}
.vw-empty-card{pointer-events:auto;text-align:center;padding:2rem 2.4rem;border:1px dashed rgba(255,255,255,.28);border-radius:1.1rem;background:rgba(17,21,28,.7)}
.vw-empty-card h2{margin:0 0 1rem;font-family:var(--display);font-size:1.4rem}
.vw-progress{position:absolute;left:1rem;right:1rem;top:.8rem;width:auto;height:.35rem;accent-color:#9fb3c8}
.vw-status{position:absolute;left:1rem;bottom:1rem;margin:0;max-width:calc(100% - 2rem);background:rgba(17,21,28,.95);border:1px solid var(--line);border-radius:.6rem;padding:.45rem .75rem;font-size:.85rem}
.vw-status.is-error{border-color:#ffd166}
.vw-dropmask{position:absolute;inset:.6rem;display:none;place-items:center;border:2px dashed var(--focus);border-radius:1rem;background:rgba(7,9,13,.7);font-family:var(--display);font-size:1.3rem;z-index:30;pointer-events:none}
body.is-drag .vw-dropmask{display:grid}
.vw-table{flex:0 0 min(34rem,44vw);display:flex;flex-direction:column;min-height:0;background:var(--panel);border-left:1px solid var(--line)}
.vw-table-h{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.6rem .8rem .3rem}
.vw-table-t{display:flex;align-items:center;gap:.5rem;min-width:0;flex-wrap:wrap}
.vw-table-t h2{margin:0;font-family:var(--display);font-size:1.05rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.vw-table-bar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.3rem .8rem .6rem}
.vw-table-bar .vw-ctl{margin-right:auto;min-width:0;flex:1 1 12rem}
.vw-table-bar select{min-width:0;flex:1;max-width:100%}
.vw-tscroll{flex:1 1 auto;overflow:auto;border-top:1px solid var(--line);min-height:0;outline-offset:-3px}
.vw-tbl{border-collapse:separate;border-spacing:0;width:100%;font-size:.8rem;font-variant-numeric:tabular-nums}
.vw-tbl th{position:sticky;top:0;z-index:2;background:#151a23;color:var(--ink);font-weight:600;font-size:.72rem;text-align:right;padding:.5rem .6rem;white-space:nowrap;border-bottom:1px solid var(--line-strong,rgba(255,255,255,.2))}
.vw-tbl td{padding:.3rem .6rem;text-align:right;border-bottom:1px solid rgba(255,255,255,.05);white-space:nowrap}
.vw-tbl tbody tr:hover,.vw-tbl tbody tr.is-hot{background:var(--hot);box-shadow:inset 3px 0 0 var(--focus)}
.vw-sort{font:inherit;font-weight:600;color:var(--ink);background:none;border:0;cursor:pointer;display:inline-flex;gap:.35rem;align-items:center;padding:.15rem .25rem;min-height:1.8rem;margin:-.15rem -.25rem}
.vw-arrow{font-size:.6rem}
.vw-only-phone{display:none}
@media (max-width:900px){
  .vw-title{border:0;padding:0}
  .vw-bar{gap:.5rem .8rem}.vw-tools{margin-left:0;width:100%}
  .vw-ve input{width:6rem}
  .vw-only-phone{display:inline-flex;align-items:center}
  .vw-side{position:absolute;left:0;right:0;bottom:0;top:auto;height:58%;z-index:12;transform:translateY(102%);transition:transform .22s ease;border-right:0;border-top:1px solid var(--line);box-shadow:0 -10px 30px rgba(0,0,0,.5)}
  body.side-open .vw-side{transform:none}
  .vw-table{position:absolute;left:0;right:0;bottom:0;height:62%;z-index:14;border-left:0;border-top:1px solid var(--line);box-shadow:0 -10px 30px rgba(0,0,0,.55)}
  .vw-tbl{font-size:.82rem}
}
@media (max-width:640px){
  input,select,textarea{font-size:16px!important}
  .vw-ctl span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .vw-ve span,.vw-table-bar .vw-ctl span{position:static;width:auto;height:auto;clip:auto}
  .vw-ve{flex:1 1 100%}.vw-ve input{flex:1;width:auto}
  .vw-btn,.vw-seg button{min-height:2.75rem}
  .vw-tip{max-width:16rem}
}
@media (prefers-reduced-motion:reduce){.vw-side{transition:none}}
@media (max-width:900px),(pointer:coarse){
  .vw-btn,.vw-seg button,.vw-ctl select,.vw-search input,.vw-ve input,.vw-chk,.vw-link,.vw-off-row,.vw-sort{min-height:44px}
  .vw-pl-bar .vw-link,.vw-pl>summary{min-height:46px}.vw-pl-bar .vw-link{min-width:44px}
  .vw-well{min-height:48px}
  .vw-vis{width:1.35rem;height:1.35rem;flex-basis:1.35rem}
  .vw-chk input{width:1.35rem;height:1.35rem}
}
.vw-opts{display:contents}
@media (max-width:900px){
  .vw-bar{padding:.4rem .7rem;gap:.35rem .8rem;min-height:0}
  .vw-tools{gap:.45rem}
  .vw-opts{display:none;flex:1 1 100%;flex-wrap:wrap;align-items:center;gap:.3rem .9rem;padding:.2rem 0}
  body.opts-open .vw-opts{display:flex}
  .vw-ve{flex:1 1 100%!important}.vw-ve input{flex:1!important;width:auto!important}
  .vw-table{height:54%}
  .vw-side{height:60%}
}

.vw-tsys{flex-basis:100%;font-size:.74rem;color:var(--muted)}
.vw-tip-src{opacity:.85}
.vw-dq{display:inline-grid;place-items:center;width:1rem;height:1rem;margin-left:.3rem;border:1px solid var(--muted);border-radius:50%;font-size:.65rem;font-style:italic;font-weight:700;color:var(--muted);flex:none}
.vw-tip-dq{color:#ffd166}
.vw-tdq{color:#ffd166}

.vw-dlg{border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);padding:0;width:min(42rem,96vw);max-height:92vh}
.vw-dlg::backdrop{background:rgba(0,0,0,.6)}
.vw-sh{display:grid;grid-template-columns:minmax(0,1fr);gap:.8rem;padding:1rem 1.1rem;font-size:.9rem}
.vw-sh-hd{display:flex;justify-content:space-between;align-items:center}.vw-sh-hd h2{margin:0;font:600 1.1rem var(--display)}
.vw-sh-set{border:1px solid var(--line);border-radius:8px;margin:0;padding:.6rem .8rem;display:grid;gap:.5rem}.vw-sh-set legend{padding:0 .3rem;color:var(--muted);font-size:.8rem}
.vw-sh-tools{display:flex;gap:.9rem;align-items:center;flex-wrap:wrap}.vw-sh-cnt{margin-left:auto;font-size:.8rem;color:var(--muted)}.vw-sh-cnt.is-bad{color:#ffd166}
.vw-sh-list{list-style:none;margin:0;padding:0;max-height:13rem;overflow:auto;border:1px solid var(--line);border-radius:6px}.vw-sh-list li{padding:.15rem .5rem}.vw-sh-list .vw-chk{display:flex;gap:.45rem;align-items:center;min-height:2rem}
.vw-sh-radios,.vw-sh-opts{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}.vw-sh-f input,.vw-sh-f select,.vw-sh-f textarea{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:6px;padding:.35rem .5rem;min-height:2.2rem}.vw-proj-newf .vw-sh-f input,.vw-proj-newf .vw-sh-f textarea{width:100%;box-sizing:border-box}.vw-sh-f textarea{min-height:4.5rem;resize:vertical}.vw-trial-yesmsg{margin:.2rem 0 0;font-weight:600;color:var(--ink)}
.vw-sh-note{margin:0;color:var(--muted)}.vw-sh-msg{margin:0;min-height:1.2rem}.vw-sh-msg[role=alert]{color:#ffd166}
.vw-sh-res{display:flex;gap:.5rem;min-width:0}.vw-sh-res input{flex:1;min-width:0;font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:6px;padding:.4rem .6rem}
.vw-sh-mine h3{margin:.2rem 0 .4rem;font-size:.95rem}.vw-sh-links{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}
.vw-sh-link{display:flex;gap:.5rem;align-items:center;border:1px solid var(--line);border-radius:8px;padding:.45rem .6rem}.vw-sh-lt{flex:1;display:grid;gap:.1rem;min-width:0}.vw-sh-lm,.vw-sh-ls{font-size:.78rem;color:var(--muted)}.vw-sh-link.is-gone{opacity:.7}
.vw-gate{display:flex;gap:.6rem;align-items:end;justify-content:center;margin-top:.8rem}.vw-gate input{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:6px;padding:.45rem .6rem;min-height:2.4rem}.vw-gate-msg{color:#ffd166;min-height:1.2rem;margin:.6rem 0 0}
.vw-sharetitle{font-weight:400;color:var(--muted);font-size:.85em}
.no-tables .vw-table{display:none!important}

.vw-pl{border-top:1px solid var(--line);padding:.2rem .7rem .4rem}.vw-pl>summary{cursor:pointer;font-weight:600;font-size:.85rem;min-height:2.2rem;display:flex;align-items:center;gap:.5rem}.vw-pl-n{font-weight:400;color:var(--muted);font-size:.78rem}
.vw-pl-bar{display:flex;gap:.8rem}.vw-pl-list{list-style:none;margin:.2rem 0 0;padding:0;max-height:9rem;overflow:auto}
.vw-plrow{display:flex;align-items:center;gap:.4rem;min-height:2.4rem;border-bottom:1px solid rgba(255,255,255,.05)}.vw-plrow .vw-vis{margin:auto .1rem}
.vw-sw{flex:0 0 1.1rem;height:.28rem;border-radius:2px}.vw-pl-t{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}.vw-pl-nm{font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vw-pl-cur{flex:0 0 auto;display:inline-flex;align-items:center;gap:.25rem;font-size:.76rem;color:var(--muted);cursor:pointer}.vw-pl-cur input{width:1rem;height:1rem;accent-color:#9fb3c8}
.vw-plrow.is-off .vw-pl-nm{color:var(--muted)}
.vw-plrow .vw-rm{margin-left:.35rem}
.vw-pl-chg{max-height:14rem;overflow:auto}
.vw-cur{border:1px solid var(--line);border-radius:.5rem;margin:.4rem 0;padding:.3rem .5rem;display:flex;flex-wrap:wrap;gap:.5rem .8rem;align-items:end}.vw-cur legend{font-size:.75rem;color:var(--muted);padding:0 .3rem}.vw-cur input[type=number]{width:6.5rem}.vw-cur output{font-size:.8rem;min-width:2.2rem}
/* edit mode / updated notice */
.vw-editbar,.vw-upd{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;padding:.4rem .8rem;border-bottom:1px solid var(--line);background:var(--card)}
.vw-editbar[hidden],.vw-upd[hidden]{display:none}
.vw-edit-t{font-weight:600}.vw-edit-s{color:var(--muted);margin-right:auto;font-size:.85rem}.vw-edit-s.is-bad{color:#ffd166}
.vw-rm{font:inherit;font-size:.74rem;color:var(--muted);background:none;border:1px solid var(--line);border-radius:.35rem;padding:.1rem .4rem;cursor:pointer;margin-left:.3rem;flex:none}
.vw-rm:hover,.vw-rm:focus-visible{color:var(--ink);border-color:var(--ink)}
.vw-row{align-items:center}
.vw-sh-same{padding:.2rem .6rem;color:var(--muted);font-size:.85rem}
.vw-sh-note.is-bad{color:#ffd166}
.vw-sh-lbl{font-size:.8rem;color:var(--muted)}
@media (max-width:900px),(pointer:coarse){.vw-rm{min-height:44px;min-width:44px}}
/* Share: red, top right, only when wells are loaded (red is allowed for this button only; well lines keep red for as-drilled) */
.vw-share{order:1;margin-left:auto;background:#b91c1c;border-color:#fca5a5;color:#fff;font-size:.95rem;padding:.35rem 1.3rem;box-shadow:0 1px 6px rgba(185,28,28,.5)}
.vw-share:hover:not(:disabled){background:#991b1b}
.vw-share:focus-visible{outline:3px solid #fff;outline-offset:2px;box-shadow:0 0 0 5px #07090d}
.vw-share:disabled{background:var(--card2);border-color:var(--line);color:var(--muted);box-shadow:none;cursor:default}
.vw-tools{order:2;flex:1 1 100%;justify-content:flex-end}
@media (max-width:900px),(pointer:coarse){.vw-share{min-height:44px}.vw-tools{justify-content:flex-start}}
.vw-dot.tgt{background:#6ee7a8;border-radius:0;transform:rotate(45deg) scale(.8)}.vw-badge.tgt{color:#6ee7a8;border-color:#6ee7a8}

/* phone: map first. Wells list is a sheet, a tapped well gets a compact card, the full table is an expanded sheet */
.vw-sheet-h,.vw-card{display:none}
.vw-wells-n{font-weight:600;margin-left:.45em;padding:0 .45em;border-radius:99px;background:rgba(255,255,255,.14)}.vw-wells-n:empty{display:none}
@media (max-width:900px){
  .vw-bar{flex-wrap:wrap}
  .vw-title{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .vw-brand img{width:104px;height:auto}
  .vw-tools{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:.1rem}.vw-tools::-webkit-scrollbar{display:none}.vw-tools>*{flex:0 0 auto}
  .vw-wells-btn{order:1;margin-left:auto}.vw-share{margin-left:0}
  .vw-side{height:72%;visibility:hidden;transition:transform .22s ease,visibility 0s linear .22s}
  body.side-open .vw-side{visibility:visible;transition-delay:0s}
  .vw-sheet-h{display:flex;justify-content:space-between;align-items:center;padding:.4rem .8rem;border-bottom:1px solid var(--line);flex:0 0 auto}
  .vw-sheet-h h2{margin:0;font:600 1.05rem var(--display)}
  .vw-side{z-index:15}
  .vw-table{height:88%;z-index:16}
  .vw-card:not([hidden]){display:block;position:absolute;left:.5rem;right:.5rem;bottom:calc(.5rem + env(safe-area-inset-bottom,0px));z-index:11;background:var(--panel);border:1px solid var(--line);border-radius:.8rem;padding:.55rem .8rem .65rem;box-shadow:0 6px 24px rgba(0,0,0,.55)}
  .vw-card-h{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.vw-card-h h2{margin:0;font:600 1rem var(--display);flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
  .vw-card-p{font-size:.72rem;font-weight:600;border:1px solid var(--line);border-radius:.3rem;padding:.05rem .35rem;color:var(--ink)}
  .vw-card-f{margin:.25rem 0 0;font-size:.85rem}.vw-card-m{color:var(--muted);font-size:.78rem}
  .vw-card-a{display:flex;gap:.5rem;margin-top:.5rem}.vw-card-a .vw-btn{flex:1}
}

.vw-sharedlbl{font-weight:400;color:var(--muted);font-size:.85em}

/* guided tour (per-share setting): spotlight never intercepts pointer events, so the map stays usable */
.vw-tour-btn{order:1;margin-left:auto}
.vw-tour-btn:not([hidden])~.vw-share{margin-left:0}
.vw-tour-btn:not([hidden])+.vw-wells-btn{margin-left:0}
@media (max-width:900px),(pointer:coarse){.vw-tour-btn{min-height:44px}}
.vw-tour-hl{position:fixed;z-index:70;pointer-events:none;border-radius:10px;box-shadow:0 0 0 9999px rgba(3,6,10,.58);outline:2px solid #e9eef7;outline-offset:0;transition:left .2s,top .2s,width .2s,height .2s}
.vw-tour{position:fixed;z-index:72;box-sizing:border-box;padding:.85rem .95rem;background:#10161f;color:#eef2f8;border:1px solid #3a4658;border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.55);font-size:.95rem;line-height:1.4;max-height:60vh;overflow:auto}
.vw-tour:focus{outline:2px solid #e9eef7;outline-offset:2px}
.vw-tour-h{display:flex;flex-direction:column;gap:.1rem;margin-bottom:.35rem}
.vw-tour-n{font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:#aab4c4}
.vw-tour h2{margin:0;font-size:1.05rem;font-family:var(--display)}
.vw-tour p{margin:0 0 .7rem}
.vw-tour-act{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}
.vw-tour-act .vw-btn{min-height:40px}.vw-tour-act a.vw-btn{text-decoration:none;display:inline-flex;align-items:center}
@media (max-width:900px){.vw-tour{padding:.7rem .8rem;font-size:.9rem}.vw-tour-act .vw-btn{min-height:44px}}
@media (prefers-reduced-motion:reduce){.vw-tour-hl{transition:none}}
@media (max-width:900px){body.opts-open .vw-tools{flex-wrap:wrap;overflow-x:visible}body.opts-open .vw-tools>.vw-opts{flex:1 1 100%;min-width:0}}

/* Toolbox: rightmost in the top row, same size and baseline as Share, secondary style */
.vw-back{order:1;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;text-decoration:none;color:var(--ink);white-space:nowrap}
.vw-share,.vw-back{height:2.5rem;min-height:2.5rem;box-sizing:border-box}
@media (max-width:900px),(pointer:coarse){.vw-share,.vw-back{height:44px;min-height:44px}}
@media (max-width:900px){.vw-bar{gap:.35rem .5rem}.vw-brand img{width:88px}.vw-wells-btn,.vw-tour-btn,.vw-share,.vw-back{padding-left:.5rem;padding-right:.5rem}}
@media (max-width:900px){body.is-editing .vw-tour-btn{display:none}}

/* Tour button on narrow phones: compact "?" (44px) so Toolbox stays rightmost in the top row */
@media (max-width: 520px) {
  .vw-tour-btn { font-size: 0; width: 44px; min-width: 44px; padding: 0; }
  .vw-tour-btn::before { content: "?"; font-size: 1.15rem; font-weight: 700; }
  .vw-bar { gap: .35rem .3rem; padding-left: .5rem; padding-right: .5rem; }
  .vw-brand img { width: 72px; }
  .vw-wells-btn, .vw-share, .vw-back { padding-left: .4rem; padding-right: .4rem; }
}

/* ===== phone polish: toolbar wraps (never clips), sheets leave a dismissible map strip, safe-area insets ===== */
.vw-scrim{display:none}
@media (max-width:900px){
  .vw-bar{padding-left:max(.5rem,env(safe-area-inset-left));padding-right:max(.5rem,env(safe-area-inset-right));padding-top:max(.4rem,env(safe-area-inset-top))}
  .vw-tools{flex-wrap:wrap;overflow:visible;row-gap:.35rem}
  .vw-tools>.vw-opts{flex:1 1 100%}
  .vw-table{height:60%;max-height:calc(100% - 6.5rem);padding-bottom:env(safe-area-inset-bottom,0px);border-radius:14px 14px 0 0}
  /* The sheet is pinned to the visual viewport (100svh). A percentage of .vw-main can extend past the
     phone screen, and the page itself never scrolls, so that overflow was unreachable. The whole sheet
     scrolls, with the title stuck, so the Polylines block at the bottom (curtain range and every row)
     can be brought fully into view. Desktop keeps the sidebar: this block is max-width 900px only. */
  body:not(.vw-float) .vw-side{position:fixed;left:0;right:0;bottom:0;top:auto;height:72%;height:min(72svh,calc(100svh - 6.5rem));max-height:calc(100% - 6.5rem);max-height:calc(100svh - 6.5rem);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:max(1rem,env(safe-area-inset-bottom,0px));scroll-padding-bottom:max(1rem,env(safe-area-inset-bottom,0px));border-radius:14px 14px 0 0}
  body:not(.vw-float) .vw-listwrap{flex:0 0 auto;overflow:visible}
  body:not(.vw-float) .vw-pl,body:not(.vw-float) .vw-off{flex:0 0 auto}
  body:not(.vw-float) .vw-pl-list{max-height:none;overflow:visible}
  body:not(.vw-float) .vw-off{max-height:none}
  body:not(.vw-float) .vw-off-list{max-height:40vh}
  .vw-table-h,.vw-sheet-h{position:relative;touch-action:pan-x;padding-top:1rem}
  body:not(.vw-float) .vw-sheet-h{position:sticky;top:0;z-index:2;background:var(--panel)}
  .vw-table-h::before,.vw-sheet-h::before{content:"";position:absolute;top:.4rem;left:50%;width:2.6rem;height:.28rem;margin-left:-1.3rem;border-radius:99px;background:rgba(255,255,255,.35)}
  .vw-table-h .vw-x,.vw-sheet-h .vw-x{min-width:5rem;min-height:44px;flex:0 0 auto}
  body.table-open .vw-scrim,body.side-open .vw-scrim{display:block;position:absolute;inset:0;z-index:13;background:rgba(3,6,10,.22)}
  .vw-scrim-btn{position:absolute;top:.5rem;left:50%;transform:translateX(-50%);background:rgba(16,22,31,.92)}
  .vw-card:not([hidden]){left:max(.5rem,env(safe-area-inset-left));right:max(.5rem,env(safe-area-inset-right))}
}
@media (max-width:900px) and (orientation:landscape) and (max-height:520px){
  .vw-table,.vw-side{left:auto;right:0;top:0;bottom:0;width:min(62%,34rem);height:auto;max-height:none;border-radius:0;border-top:0;border-left:1px solid var(--line)}
  body:not(.vw-float) .vw-side{left:auto;right:0;top:0;bottom:0;width:min(62%,34rem);height:auto;max-height:none;border-radius:0} /* the scrolling phone sheet above must not undo the landscape side panel */
  .vw-table-h,.vw-sheet-h{padding-top:.5rem}.vw-table-h::before,.vw-sheet-h::before{display:none}
  .vw-scrim-btn{left:.5rem;transform:none}
  .vw-card:not([hidden]){right:auto;width:min(22rem,50%)}
}
@media (max-width:360px){
  .vw-brand img{width:64px}.vw-bar{gap:.35rem .25rem;padding-left:.4rem;padding-right:.4rem}
  .vw-wells-n{display:none}.vw-wells-btn,.vw-tour-btn,.vw-share,.vw-back{padding-left:.35rem;padding-right:.35rem}
}
@media (max-width:430px){
  .vw-tools{gap:.3rem}.vw-tools .vw-btn,.vw-tools .vw-seg button{padding-left:.55rem;padding-right:.55rem;font-size:.88rem}
}
@media (max-width:360px){
  .vw-tools{gap:.25rem}.vw-tools .vw-btn,.vw-tools .vw-seg button{padding-left:.42rem;padding-right:.42rem;font-size:.84rem}
}
@media (max-width:900px){
  .vw-editbar{gap:.3rem .35rem;padding:.3rem max(.5rem,env(safe-area-inset-left))}
  .vw-editbar .vw-btn{padding-left:.5rem;padding-right:.5rem;font-size:.85rem}
  .vw-edit-t{font-size:.9rem}
}

/* the page never scrolls: sheets/cards overlay the map and must not shift or resize it */
html,body{overflow:hidden;overscroll-behavior:none}
body.vw{position:fixed;top:0;left:0;right:0;width:100%}
.vw-main{overflow:hidden}
/* QR code for the share link (red is an allowed exception here) */
.vw-qr{display:grid;gap:.5rem;justify-items:start}.vw-qr-p{display:grid;gap:.5rem;justify-items:start}
.vw-qr-img{background:#fff;border-radius:.6rem;padding:.4rem;width:min(15rem,70vw);height:auto;aspect-ratio:1}
.vw-qr-act{display:flex;gap:.5rem;flex-wrap:wrap}.vw-qr-st{min-height:0}
.vw-qr .vw-btn{min-height:2.5rem}@media (max-width:900px){.vw-qr .vw-btn{min-height:44px}}
/* owner / share password prompts: keep the field label visible on phones */
#vw-own .vw-ctl,#vw-ed-pw .vw-ctl{display:grid;gap:.3rem}#vw-own .vw-ctl span,#vw-ed-pw .vw-ctl span{position:static;width:auto;height:auto;clip:auto;overflow:visible}
/* header lockup (SVG only): Atlas wordmark -> /Atlas | red+black slash | Heseman Consulting -> / */
.vw-lockup{display:flex;align-items:center;gap:.55rem;flex:0 0 auto;min-width:0}
.vw-atlas,.vw-bar .vw-brand{display:flex;align-items:center;flex:0 0 auto;border-radius:.35rem;padding:.2rem}
.vw-atlas img{height:22px;width:auto;display:block}
.vw-bar .vw-brand img{height:32px;width:auto;display:block}
.vw-slash{flex:0 0 auto;display:block;width:11px;height:30px;transform:skewX(-22deg);background:linear-gradient(90deg,#bf0000 0 36%,#000 36% 64%,#bf0000 64%);border-radius:1px}
.vw-title:not(.is-shared){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);padding:0;border:0}
@media (max-width:900px){.vw-lockup{gap:.4rem}.vw-atlas img{height:17px}.vw-bar .vw-brand img{height:25px;width:auto}.vw-slash{width:9px;height:24px}}
@media (max-width:520px){.vw-lockup{flex:1 1 100%}.vw-atlas img{height:18px}.vw-bar .vw-brand img{height:26px;width:auto}}
@media (max-width:340px){.vw-atlas img{height:15px}.vw-bar .vw-brand img{height:22px}.vw-slash{width:8px;height:20px}}
/* lockup alignment: Heseman a little smaller; its HESEMAN wordmark sits on the same centre line as ATLAS (CONSULTING hangs below).
   15.2% = offset of the HESEMAN word centre from the SVG box centre (68/447 viewBox units). */
.vw-bar .vw-brand img{height:28px;transform:translateY(15.2%)}
@media (max-width:900px){.vw-bar .vw-brand img{height:22px}}
@media (max-width:520px){.vw-bar .vw-brand img{height:23px}}
@media (max-width:340px){.vw-bar .vw-brand img{height:19px}}

/* ATLAS projects (preview) */
.vw-proj-btn{order:1;background:transparent;border:1px solid rgba(226,232,240,.6);color:var(--ink);font-weight:600;white-space:nowrap}
.vw-proj-btn:hover{background:rgba(255,255,255,.08);border-color:#fff}
.vw-proj-btn:focus-visible{outline:3px solid #fff;outline-offset:2px}
.vw-tour-btn:not([hidden])~.vw-proj-btn{margin-left:0}
.vw-proj-btn,.vw-share{height:2.5rem;min-height:2.5rem;box-sizing:border-box}
body.is-project .vw-share{display:none}
body.is-project .vw-tools>[data-load]{display:none}
.vw-projbar{flex:none}
button.vw-proj-namebtn{font:inherit;font-weight:600;color:inherit;background:none;border:0;padding:0;margin:0;min-height:0;min-width:0;line-height:inherit;cursor:pointer;text-align:left;border-radius:.3rem;max-width:100%}
button.vw-proj-namebtn{padding:0 .3rem;margin-left:-.3rem}
button.vw-proj-namebtn:hover{text-decoration:underline;background:rgba(127,127,127,.18)}
button.vw-proj-namebtn:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.vw-proj-rename-row{display:flex;gap:.5rem;align-items:flex-end}.vw-proj-rename-row .vw-proj-namef{flex:1 1 auto;min-width:0}
.vw-proj-note{margin-left:auto;color:var(--muted);font-size:.85rem}
.vw-proj-link .vw-sh-res input{min-width:0;flex:1 1 auto}
.vw-proj-res{display:grid;gap:.6rem}
.vw-proj-del summary{cursor:pointer;color:var(--muted)}
@media (max-width:900px),(pointer:coarse){.vw-proj-btn{height:44px;min-height:44px;padding-left:.5rem;padding-right:.5rem}.vw-projbar .vw-btn{min-height:44px}}
@media (max-width:900px){.vw-proj-note{margin-left:0;flex:1 1 100%}}
@media (max-width:520px){.vw-proj-btn{padding-left:.4rem;padding-right:.4rem;font-size:.85rem}}

/* Select wells (preview): box filter. Accent is violet, never red. */
:root{--sel:#a78bfa}
.vw-sel-btn[aria-pressed=true]{background:rgba(167,139,250,.18);color:#ede9fe;border-color:var(--sel)}
.vw-sellayer{position:absolute;inset:0;z-index:4;cursor:crosshair;touch-action:none;user-select:none;-webkit-user-select:none}
.vw-sellayer.is-zooming{cursor:ns-resize}
.vw-selrect{position:absolute;left:0;top:0;border:2px solid var(--sel);background:rgba(167,139,250,.14);border-radius:2px;pointer-events:none}
.vw-selrect.is-add{border-style:dashed}
.vw-selbar{position:absolute;left:50%;top:.75rem;transform:translateX(-50%);z-index:6;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;justify-content:center;max-width:calc(100% - 1.5rem);background:rgba(11,15,22,.95);border:1px solid var(--sel);border-radius:999px;padding:.35rem .5rem .35rem .9rem;font-size:.85rem;color:#e2e8f0;box-shadow:0 4px 18px rgba(0,0,0,.4)}
.vw-selbar[hidden]{display:none}
.vw-sel-hint{color:#ddd6fe}
.vw-sel-n:empty{display:none}
.vw-sel-f .vw-link{color:#ddd6fe;text-decoration:underline;background:none;border:0;padding:.35rem .1rem;font:inherit;cursor:pointer;min-height:44px}
.vw-selbar .vw-btn{min-height:2.25rem}
@media (max-width:900px){.vw-selbar{top:.5rem;font-size:.8rem;border-radius:.8rem;padding:.35rem .6rem}.vw-sel-f .vw-link{min-height:44px}}

/* Fly to: well search popover (preview) */
.vw-flypop{position:fixed;z-index:40;background:rgba(11,15,22,.98);border:1px solid rgba(255,255,255,.28);border-radius:.7rem;padding:.5rem;box-shadow:0 10px 30px rgba(0,0,0,.5)}
.vw-flypop[hidden]{display:none}
.vw-flypop input{width:100%;box-sizing:border-box;font:inherit;font-size:.95rem;color:#e2e8f0;background:#0b0f16;border:1px solid rgba(255,255,255,.35);border-radius:.5rem;padding:.55rem .7rem;min-height:44px}
.vw-flypop input:focus{outline:2px solid var(--sel);outline-offset:1px}
.vw-fly-list{list-style:none;margin:.3rem 0 0;padding:0;max-height:50vh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.vw-fly-list[hidden]{display:none}
.vw-fly-o{display:flex;flex-direction:column;gap:.1rem;padding:.45rem .6rem;border-radius:.45rem;cursor:pointer;min-height:44px;justify-content:center;border-left:3px solid transparent}
.vw-fly-o.is-act,.vw-fly-o:hover{background:rgba(167,139,250,.16);border-left-color:var(--sel)}
.vw-fly-n{font-weight:600;color:#f1f5f9;font-size:.9rem}.vw-fly-p{color:#a9b0bd;font-size:.78rem}
.vw-fly-o.is-sel .vw-fly-n{color:#ddd6fe}
.vw-fly-note{margin:.35rem .35rem 0;color:#a9b0bd;font-size:.75rem}.vw-fly-note:empty{display:none}
@media (max-width:900px){.vw-sel-dot{display:none}.vw-sel-n{white-space:nowrap}.vw-fly-o{min-height:48px}.vw-fly-list{max-height:45vh}}

/* ATLAS anti-collision view: floating panel on desktop, bottom sheet on phone. Level colors appear only here and on the heat map. */
.vw-ac-btn[aria-pressed=true]{background:rgba(60,207,122,.16);color:#d9f7e6;border-color:#3ccf7a}
body.no-ac .vw-ac-btn{display:none}
.vw-ac{position:absolute;top:.75rem;right:.75rem;z-index:9;width:min(38rem,calc(100% - 1.5rem));max-height:calc(100% - 1.5rem);display:flex;flex-direction:column;overflow:hidden;background:rgba(11,15,22,.97);border:1px solid var(--line);border-radius:.8rem;padding:.55rem .75rem .7rem;box-shadow:0 8px 28px rgba(0,0,0,.55)}
.vw-ac-scroll{overflow:auto;overscroll-behavior:contain;min-height:0;flex:1 1 auto}
.vw-ac-acts{display:flex;align-items:center;gap:.35rem;flex:0 0 auto}
.vw-ac[hidden]{display:none}
.vw-ac-h{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.vw-ac-h h2{margin:0;font:600 .74rem var(--font);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);min-width:0}
.vw-ac-h h2 span{display:block;color:var(--ink);font:600 .98rem var(--display);letter-spacing:0;text-transform:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vw-ac-sum{margin:.35rem 0 .2rem;font-size:.82rem;min-height:1.1em}
.vw-ac.is-busy .vw-ac-sum{color:var(--muted)}
.vw-ac.is-busy .vw-ac-chart,.vw-ac.is-busy .vw-ac-tw{opacity:.45}
.vw-ac-legend{display:flex;flex-wrap:wrap;gap:.2rem .7rem;font-size:.74rem;color:var(--muted);margin:.15rem 0 .3rem}
.vw-ac-key{display:inline-flex;align-items:center;gap:.3rem}
.vw-ac-chip{display:inline-block;width:.7rem;height:.7rem;border-radius:.2rem;flex:0 0 auto;background:#3ccf7a}
.vw-ac-chip.l1{background:#f2c230}.vw-ac-chip.l2{background:#f28c28}.vw-ac-chip.l3{background:#e5383b}.vw-ac-chip.l-1{background:#9aa4ad}
.vw-ac-chart{cursor:crosshair}
.vw-ac-svg{display:block;width:100%;height:auto}
.vw-ac-plot{fill:rgba(255,255,255,.03);stroke:var(--line)}
.vw-ac-ax{font-size:8px;fill:#a9b0bd;font-family:var(--font)}
.vw-ac-mk{stroke:#fff;stroke-width:1.2}
.vw-ac-md{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;font-size:.8rem;color:var(--muted);margin:.25rem 0 .35rem}
.vw-ac-md input{flex:1;min-width:0;accent-color:#ffffff;min-height:2rem}
.vw-ac-md output{min-width:13rem;text-align:right;color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.vw-ac-mdcue{flex:1 0 100%;color:var(--ink);font-variant-numeric:tabular-nums}
.vw-ac-tw{max-height:16rem;overflow:auto;border-top:1px solid var(--line);outline-offset:-2px}
.vw-ac-tbl{width:100%;border-collapse:collapse;font-size:.78rem;font-variant-numeric:tabular-nums}
.vw-ac-tbl th{position:sticky;top:0;background:#151a23;font-weight:600;font-size:.7rem;text-align:right;padding:.35rem .35rem;white-space:nowrap}
.vw-ac-tbl th:first-child,.vw-ac-tbl td:first-child{text-align:left}
.vw-ac-tbl td{text-align:right;padding:.3rem .35rem;border-bottom:1px solid rgba(255,255,255,.06);white-space:nowrap}
.vw-ac-tbl tbody tr:hover,.vw-ac-tbl tbody tr:focus-visible{background:var(--hot);outline:none}
.vw-ac-tbl td.vw-ac-n{white-space:normal;text-align:left;max-width:none;overflow:visible;text-overflow:clip;vertical-align:top}
.vw-ac-namewrap{display:flex;flex-wrap:wrap;align-items:flex-start;column-gap:.35rem;row-gap:.1rem}
.vw-ac-name{flex:1 1 10rem;min-width:8rem;overflow-wrap:anywhere;white-space:normal}
.vw-ac-namewrap .vw-ac-chip{margin-right:0;vertical-align:-.05rem}
.vw-ac-nm{display:block;flex:1 1 100%;font-size:.66rem;color:var(--muted)}
.vw-ac-sf{font-weight:700}
.vw-ac-lv{font-weight:600}.vw-ac-lv.l0{color:#3ccf7a}.vw-ac-lv.l1{color:#f2c230}.vw-ac-lv.l2{color:#f28c28}.vw-ac-lv.l3{color:#ff6b6e}.vw-ac-lv.l-1{color:#9aa4ad}
.vw-ac-empty{text-align:left!important;color:var(--muted);white-space:normal!important}
.vw-ac-note{margin:.4rem 0 0;font-size:.75rem;color:var(--muted)}
.vw-ac-pol{border-left:2px solid #f2c230;padding-left:.45rem}
.vw-ac-set{margin-top:.45rem;font-size:.8rem}
.vw-ac-set summary{cursor:pointer;font-weight:600;min-height:2rem;display:flex;align-items:center}
.vw-ac-th{display:flex;gap:.5rem;flex-wrap:wrap;margin:.2rem 0}
.vw-ac-th input{font:inherit;width:4.2rem;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:.45rem;padding:.25rem .4rem;min-height:2.2rem}
.vw-ac-setmsg{margin:.2rem 0;color:#f2c230;font-size:.75rem}.vw-ac-setmsg:empty{display:none}
.vw-ac-set .vw-chk{display:flex;font-size:.8rem}
.vw-ac-fine{margin:.3rem 0 0;font-size:.72rem;color:var(--muted)}
@media (max-width:900px){
  .vw-ac{top:auto;left:0;right:0;bottom:0;width:auto;max-height:none;height:min(48%,26rem);border-radius:.9rem .9rem 0 0;border-left:0;border-right:0;border-bottom:0;z-index:13;padding:.45rem .75rem calc(.6rem + env(safe-area-inset-bottom,0px))}
  body.ac-on .vw-card{display:none!important}
  .vw-ac-tw{max-height:none}
  .vw-ac-th .vw-ctl span{position:static;width:auto;height:auto;clip:auto}
}

/* Manage ATLAS Project: red once a project exists (approved exception, same red as Share / QR) */
.vw-proj-btn.is-manage{background:#b91c1c;border-color:#fca5a5;color:#fff;box-shadow:0 1px 6px rgba(185,28,28,.5)}
.vw-proj-btn.is-manage:hover{background:#991b1b;border-color:#fca5a5}
.vw-proj-acts{display:flex;gap:.5rem;flex-wrap:wrap}
/* phone (<= 640px): compact top bar. Collapsed: lockup + Menu, then 3D/Plan/Section (+ Load EDM, + Anticollision while on), then the project title + Import EDMs.
   Menu (body.menu-open) shows every control in place, in the normal flow (never over the map). Desktop and tablet never see .vw-menu-btn. */
.vw-menu-btn{display:none}
@media (max-width:640px){
  .vw-menu-btn{display:inline-flex;align-items:center;justify-content:center;order:0;flex:0 0 5rem;width:5rem;height:44px;min-height:44px;padding:0 .4rem;margin-left:auto}
  .vw-lockup{flex:1 1 calc(100% - 5.4rem)}
  body:not(.menu-open) .vw-tour-btn,body:not(.menu-open) .vw-wells-btn,body:not(.menu-open) .vw-proj-btn,body:not(.menu-open) .vw-login-bar,body:not(.menu-open) .vw-share{display:none!important}
  body:not(.menu-open) .vw-tools>:not(.vw-seg):not([data-load]):not(.vw-ac-btn[aria-pressed=true]):not(.vw-showcase){display:none!important}
  body:not(.menu-open) .vw-projbar{flex-wrap:nowrap;padding-top:.25rem;padding-bottom:.25rem}
  body:not(.menu-open) .vw-projbar .vw-edit-t{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem}
  body:not(.menu-open) .vw-projbar button.vw-proj-namebtn{min-height:44px;line-height:44px}
  body:not(.menu-open) .vw-projbar .vw-proj-note,body:not(.menu-open) .vw-projbar .vw-edit-s:not(.is-bad){display:none}
  body:not(.menu-open) .vw-projbar .vw-edit-s.is-bad{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:0}
  body:not(.menu-open) .vw-projbar .vw-btn{flex:0 0 auto}
  body.menu-open .vw-menu-btn{background:var(--ink);color:#07090d;border-color:var(--ink)}
}
/* Create ATLAS Project: name + Create, then link + QR */
.vw-proj-newf{width:100%;box-sizing:border-box}.vw-proj-newf .vw-proj-res{grid-template-columns:minmax(0,1fr);min-width:0}
.vw-proj-namef{display:grid;gap:.35rem}.vw-proj-namef input{width:100%;box-sizing:border-box;min-height:2.6rem;font-size:1rem}
.vw-proj-newf .vw-sh-act .vw-btn-primary:disabled{opacity:.5;cursor:not-allowed}
.vw-proj-made{margin:0;font-weight:600;color:var(--ink);overflow-wrap:anywhere}
#vw-proj-new{width:min(30rem,96vw)}
.vw-proj-namef span{position:static!important;width:auto!important;height:auto!important;clip:auto!important;overflow:visible!important;font-size:.9rem;font-weight:600;color:var(--ink)}
#vw-proj-open{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-width:6rem}
@media (max-width:900px){#vw-proj-open,#vw-proj-go{min-height:44px}}

/* Login, and Account on the same control: Heseman Consulting red (#e10600), the as-drilled red. */
.vw-login-bar,#vw-login-btn{background:#e10600;border-color:#e10600;color:#fff}
.vw-login-bar:hover:not(:disabled),#vw-login-btn:hover:not(:disabled){background:#be0500;border-color:#be0500;color:#fff}
#vw-login-btn{margin-left:auto;margin-right:.5rem}
#vw-acct{width:min(40rem,96vw);overflow:auto}
.vw-acct-sec{margin:.2rem 0 0;font:600 1rem var(--display)}
.vw-acct-empty{margin:0}
.vw-acct-list{list-style:none;margin:.2rem 0 0;padding:0;display:grid;gap:.55rem}
.vw-acct-row{display:grid;gap:.35rem;border:1px solid var(--line);border-radius:8px;padding:.55rem .7rem;background:var(--card)}
.vw-acct-row strong{overflow-wrap:anywhere}
.vw-acct-acts{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}
.vw-acct-acts .vw-btn,.vw-acct-acts a.vw-btn{text-decoration:none;min-height:2.2rem}
.vw-acct-confirm{margin:.2rem 0 0}
#vw-acct-out{margin-left:auto}
#vw-acct .vw-acct-find{display:grid;gap:.3rem;margin:.15rem 0 .45rem}
#vw-acct .vw-acct-find span{position:static;width:auto;height:auto;clip:auto;overflow:visible;font-size:.9rem;font-weight:600}
#vw-acct-search{width:100%;box-sizing:border-box}
.vw-acct-star.is-on{background:#e10600;border-color:#e10600;color:#fff}

/* North compass: top-left of the plot, clear of the top bar and the Anticollision sheet.
   Sizes: 6rem, 5.25rem on a phone, 4.5rem in a short landscape. Only this control takes
   pointer events, so map drag and pinch still start on the canvas.
   The N badge is #bf0000, the ATLAS wordmark red (atlas-wordmark-red.svg) and the header
   slash. The plate stays dark. The badge sits outside the arrow tip. */
.vw-compass{position:absolute;z-index:5;top:max(1rem,env(safe-area-inset-top,0px));left:max(1rem,env(safe-area-inset-left,0px));width:6rem;height:6rem;margin:0;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer;touch-action:manipulation;pointer-events:auto;user-select:none;-webkit-user-select:none;filter:drop-shadow(0 6px 14px rgba(0,0,0,.72))}
.vw-compass-svg{display:block;width:100%;height:100%}
.vw-compass-plate{fill:#10151d}
.vw-compass-ring{fill:none;stroke:#f4f1ea;stroke-width:4}
.vw-compass-tick{stroke:#f4f1ea;stroke-width:4;stroke-linecap:round}
.vw-compass-north{fill:#ffffff}
.vw-compass-badge{fill:#bf0000}
.vw-compass-south{fill:#8b95a3}
.vw-compass-hub{fill:#10151d;stroke:#ffffff;stroke-width:2.5}
.vw-compass-letter{fill:#ffffff;font-family:"Inter Tight","Inter",sans-serif;font-weight:700;font-size:16px}
.vw-compass:hover .vw-compass-ring,.vw-compass:focus-visible .vw-compass-ring{stroke:#ffffff}
.vw-compass:active{transform:scale(.98)}
.vw-compass.is-cue{cursor:default}
.vw-compass.is-cue:hover .vw-compass-ring,.vw-compass.is-cue:focus-visible .vw-compass-ring{stroke:#f4f1ea}
.vw-compass.is-cue:active{transform:none}
.vw-stage:has(#vw-selbar:not([hidden])) .vw-compass{top:4.8rem}
@media (max-width:900px){
  .vw-compass{width:5.25rem;height:5.25rem}
}
@media (max-width:900px) and (orientation:landscape) and (max-height:520px){
  .vw-compass{width:4.5rem;height:4.5rem}
}
/* Desktop wells list: arrow docks it, the right edge resizes it. Anticollision resizes from the lower-left corner. */
.vw-dock{display:none}
.vw-grip{display:none;touch-action:none}
@media (min-width:901px){
  .vw-side{position:relative}
  .vw-dock{display:flex;align-items:center;justify-content:center;flex:0 0 auto;align-self:stretch;width:1.6rem;margin:0;padding:0;border:0;border-right:1px solid var(--line);background:#121820;color:var(--ink);cursor:pointer;font:700 1.45rem/1 var(--font)}
  .vw-dock:hover,.vw-dock:focus-visible{color:#fff;background:#1c2433}
  .vw-grip{display:block}
  .vw-grip-ew{position:absolute;top:0;right:0;bottom:0;width:.55rem;margin:0;padding:0;border:0;background:transparent;cursor:ew-resize;z-index:4}
  .vw-grip-ew:hover,.vw-grip-ew:focus-visible{background:rgba(255,209,102,.35)}
  .vw-grip-ac{position:absolute;left:.15rem;bottom:.15rem;width:1.05rem;height:1.05rem;margin:0;padding:0;border:0;background:transparent;cursor:nesw-resize;z-index:4}
  .vw-grip-ac::after{content:"";position:absolute;left:.1rem;bottom:.1rem;width:.62rem;height:.62rem;border-left:2px solid var(--muted);border-bottom:2px solid var(--muted)}
  .vw-grip-ac:hover::after,.vw-grip-ac:focus-visible::after{border-color:var(--focus)}
  body.wells-docked .vw-side{flex:0 0 0!important;width:0!important;min-width:0!important;overflow:hidden!important;border-right:0;padding:0}
  body.wells-floated .vw-dock{visibility:hidden;width:0;border:0;padding:0}
}
body.vw-float{height:100dvh;margin:0;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}
body.vw-float .vw-side{position:relative;transform:none;visibility:visible;inset:auto;width:auto;height:auto;max-height:none;flex:1 1 auto;min-height:0;border:0;border-radius:0;box-shadow:none;z-index:auto}
body.vw-float .vw-ac{position:relative;top:auto;right:auto;bottom:auto;left:auto;width:auto;height:auto;max-width:none;max-height:none;flex:1 1 auto;min-height:0;border:0;border-radius:0;box-shadow:none}
body.vw-float .vw-grip{display:none}
body.vw-float .vw-sheet-h{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.4rem .8rem;border-bottom:1px solid var(--line);flex:0 0 auto;position:relative}
body.vw-float .vw-sheet-h h2{margin:0;font:600 1.05rem var(--display);min-width:0}
body.vw-float .vw-sheet-h .vw-x{margin-left:auto;align-self:center;flex:0 0 auto;min-width:5rem;min-height:44px;height:44px}
