/* Atlas v2 — Engraved Plate product UI.
   Paper / cobalt / one serif / square corners / hairline rules.
   No backdrop-filter, no drop shadows, no second type family. */

/* ---- reset: undo style.css's global button/input skin on this page.
   v2.css is page-scoped and loads after style.css (base.html late_head),
   so plain-element selectors here safely re-neutralize the globals. ---- */
button, [role="button"] {
  font: inherit; font-weight: inherit; letter-spacing: inherit; text-transform: none;
  padding: 0; background: none; color: inherit; border: none; border-radius: 0; transition: none;
}
button:hover, [role="button"]:hover { background: none; color: inherit; border-color: currentColor; }
input[type="text"], input[type="number"], input[type="search"], input[type="email"], select, textarea {
  font: inherit; padding: 0; border: none; background: transparent; color: inherit;
  border-radius: 0; letter-spacing: inherit; width: auto;
}
input:focus, select:focus, textarea:focus { outline: none; border-color: transparent; box-shadow: none; }
input[type="search"]::-webkit-search-cancel-button { display: none; }
/* our components set display:flex/grid — [hidden] must still win */
body.is-v2 [hidden] { display: none !important; }

/* ---- page chrome: full-bleed app, base.html masthead/footer hidden ---- */
body.is-v2 { margin: 0; overflow: hidden; background: var(--paper); }
body.is-v2 .masthead, body.is-v2 footer, body.is-v2 .site-footer { display: none; }
body.is-v2 main.atlas-main { padding: 0; margin: 0; max-width: none; }
body.is-v2 #app {
  position: fixed; inset: 0; overflow: hidden;
  font: var(--text-body); color: var(--royal-body); letter-spacing: .01em;
}

/* ---- map canvas + washes (ref:32–53) ---- */
.v2-map { position: absolute; inset: 0; background: #4a4438; /* ref:32 */ }
.v2-map .cesium-viewer, .v2-map .cesium-widget, .v2-map canvas { width: 100%; height: 100%; }
.v2-map .cesium-viewer-bottom, .v2-map .cesium-widget-credits { display: none !important; }
.v2-map-wash { display: none; }
.v2-map-defocus {
  position: absolute; inset: 0; pointer-events: none; z-index: 2;
  background: rgba(246,243,236,.28);
}

/* ---- plates (replaces the old glass stack) ---- */
.v2-plate, .v2-plate-bar, .glass-panel, .glass-raised-panel, .glass-raised, .glass-bar, .glass-bar-v {
  background: var(--paper-raised);
  border: 1px solid var(--ink-rule);
  border-radius: 0;
  box-shadow: none;
}

/* ---- icon masks (ref uses lucide CDN masks throughout) ---- */
.icon-mask { display: inline-block; flex: none; mask: var(--icon) center/contain no-repeat; -webkit-mask: var(--icon) center/contain no-repeat; }
.i-10 { width: 10px; height: 10px; } .i-11 { width: 11px; height: 11px; }
.i-12 { width: 12px; height: 12px; } .i-13 { width: 13px; height: 13px; }
.i-14 { width: 14px; height: 14px; } .i-15 { width: 15px; height: 15px; }
.i-16 { width: 16px; height: 16px; } .i-17 { width: 17px; height: 17px; }
.i-18 { width: 18px; height: 18px; } .i-19 { width: 19px; height: 19px; }

/* ---- motion (ref:23–24 + tokens/motion.css) ---- */
@keyframes atlasOrb { 0%,100% { opacity: 1; } 50% { opacity: .3; } }
@keyframes atlasSweep { 0% { transform: translateX(-100%); } 100% { transform: translateX(220%); } }
@keyframes atlasRise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { body.is-v2 * { animation: none !important; } }

/* =================== TOP BAR =================== */
.v2-topbar {
  position: absolute; left: 24px; right: 24px; top: 24px; height: 56px; z-index: 30;
  display: flex; align-items: center; gap: 14px; padding: 0 8px 0 12px;
}
.v2-brand {
  display: flex; align-items: center; height: 100%; padding: 0 4px;
  border: none; background: transparent; cursor: pointer; color: inherit;
}
.v2-brand-logo {
  display: block; height: 38px; width: auto;
  background: transparent;
}
.v2-brand-mark, .v2-brand-name { display: none; }
.v2-topbar-sep { width: 1px; height: 24px; background: var(--ink-faint); }
.v2-topbar-flex { flex: 1; }

.v2-place { position: relative; }
.v2-place-btn {
  display: flex; align-items: center; gap: 7px; height: 34px; padding: 0 12px;
  border: 1px solid var(--ink-faint); border-radius: 0;
  background: transparent; cursor: pointer; color: inherit;
  transition: background-color var(--dur-fast) var(--ease-glass);
}
.v2-place-btn:hover { background: var(--atlas-blue-12); }
.v2-place-primary { font: 600 15.5px/1 var(--font-body); color: var(--royal-body); }
.v2-place-secondary { font: 15.5px/1 var(--font-body); color: var(--text-tertiary); }
.v2-place-menu { position: absolute; left: 0; top: 42px; min-width: 200px; padding: 6px; z-index: 40; }
.v2-menu-label { padding: 8px 10px 4px; font: 600 var(--fs-micro)/var(--lh-micro) var(--font-body); letter-spacing: var(--ls-micro); text-transform: uppercase; color: var(--text-tertiary); }
.v2-menu-opt {
  display: block; width: 100%; padding: 8px 10px; border: none; border-radius: 0;
  background: transparent; text-align: left; cursor: pointer;
  font: 600 15px/1.3 var(--font-body); color: var(--royal-body);
  transition: background-color var(--dur-fast) var(--ease-glass);
}
.v2-menu-opt:hover { background: var(--paper-deep); }
.v2-menu-opt.is-on { background: var(--atlas-blue-12); box-shadow: inset 0 0 0 1px var(--cobalt); }

/* underline tabs — no pills, no container fill */
.v2-tabs, .v2-seg {
  display: flex; align-items: stretch; gap: 0; padding: 0;
  background: transparent; width: fit-content;
  box-shadow: inset 0 -1px 0 var(--ink-faint);
}
.v2-tabs .v2-seg-btn, .v2-seg-btn {
  position: relative; height: 28px; padding: 0 14px; border: none; border-radius: 0;
  background: transparent; font: 600 15px/1 var(--font-body); color: var(--cobalt); cursor: pointer;
  transition: color var(--dur-fast) var(--ease-glass);
}
.v2-tabs .v2-seg-btn:hover, .v2-seg-btn:hover { color: var(--rust); }
.v2-seg-btn > .v2-seg-on {
  position: absolute; left: 0; right: 0; bottom: 0; height: 2px; top: auto;
  border-radius: 0; background: var(--rust); box-shadow: none;
}
.v2-seg-btn > span:last-child { position: relative; }

/* search (ref:687–708) */
.v2-search { position: relative; width: 268px; flex: 0 1 268px; min-width: 150px; }
/* narrow windows: shed secondary chrome before anything clips (ref is 1440w) */
@media (max-width: 1220px) { .v2-top-link { display: none; } }
@media (max-width: 1020px) { .v2-dealcount { display: none; } .v2-seg-btn { padding: 0 10px; } }
.v2-search-field {
  display: flex; align-items: center; gap: 8px; height: 34px; padding: 0 10px 0 12px;
  border-radius: 0; background: rgba(255,255,255,.46); border: 1px solid var(--ink-faint);
}
.v2-search-field input { flex: 1; min-width: 0; border: none; background: transparent; outline: none; font: 15px/1 var(--font-body); color: var(--royal-body); }
.v2-search-field input::placeholder { color: var(--text-tertiary); }
.v2-search-clear { width: 18px; height: 18px; flex: none; display: grid; place-items: center; border: none; border-radius: 0; background: var(--paper-deep); cursor: pointer; }
.v2-search-menu { position: absolute; left: 0; right: 0; top: 42px; padding: 6px; z-index: 40; }
.v2-sug {
  display: flex; align-items: center; gap: 9px; width: 100%; padding: 8px 10px; border: none;
  border-radius: var(--r-sm); background: transparent; text-align: left; cursor: pointer;
  transition: background-color 140ms var(--ease-glass); /* ref:696 */
}
.v2-sug:hover, .v2-sug.is-active { background: rgba(10,27,61,.06); }
.v2-sug-main { flex: 1; min-width: 0; }
.v2-sug-n { display: block; font: 600 15px/1.3 var(--font-body); color: var(--royal-body); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v2-sug-m { display: block; margin-top: 2px; font: 14px/1.3 var(--font-body); color: var(--text-tertiary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v2-sug-t { flex: none; font: 13px/1 var(--font-body); color: var(--text-tertiary); letter-spacing: .16em; text-transform: uppercase; }
.v2-nohits { padding: 10px; font: 15px/1.4 var(--font-body); color: var(--text-tertiary); }

.v2-dealcount { display: inline-flex; align-items: baseline; gap: 5px; padding: 0 10px 0 6px; }
.v2-dealcount b { font: 600 15.5px/1 var(--font-body); font-variant-numeric: tabular-nums; color: var(--royal-body); }
.v2-dealcount span { font: 15px/1 var(--font-body); color: var(--text-tertiary); }
.v2-top-link {
  height: 34px; display: inline-flex; align-items: center; padding: 0 13px; border: none; border-radius: 0;
  background: transparent; font: 600 15px/1 var(--font-body); color: var(--cobalt);
  cursor: pointer; text-decoration: none; border-bottom: none;
  transition: color var(--dur-fast) var(--ease-glass), background-color var(--dur-fast) var(--ease-glass);
}
.v2-top-link:hover { background: var(--paper-deep); color: var(--rust); }

.v2-btn-primary {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px; height: 34px; padding: 0 14px;
  border: none; border-radius: 0; background: var(--cobalt); color: var(--paper);
  font: 600 15.5px/1 var(--font-body); cursor: pointer; text-decoration: none;
  box-shadow: none;
  transition: background-color var(--dur-fast) var(--ease-glass), color var(--dur-fast) var(--ease-glass), box-shadow var(--dur-fast) var(--ease-glass);
}
.v2-btn-primary:hover { background: var(--paper); color: var(--cobalt); box-shadow: inset 0 0 0 1px var(--cobalt); }
.v2-btn-secondary, .v2-btn-glass {
  display: inline-flex; align-items: center; justify-content: center; height: 34px; padding: 0 14px;
  border: none; border-radius: 0; background: var(--paper-deep);
  color: var(--text-muted); font: 600 15.5px/1 var(--font-body); cursor: pointer; box-shadow: none;
  transition: background-color var(--dur-fast) var(--ease-glass), color var(--dur-fast) var(--ease-glass);
}
.v2-btn-secondary:hover, .v2-btn-glass:hover { background: var(--paper-deepest); color: var(--royal-body); }
.v2-btn-secondary:disabled, .v2-btn-glass:disabled { opacity: .45; cursor: not-allowed; }
.v2-grow { flex: 1; }

.v2-round-btn {
  width: 30px; height: 30px; flex: none; display: grid; place-items: center; border: none;
  border-radius: 0; background: var(--paper-deep); color: var(--text-muted); cursor: pointer;
  transition: background-color var(--dur-fast) var(--ease-glass), color var(--dur-fast) var(--ease-glass);
}
.v2-round-btn:hover { background: var(--paper-deepest); color: var(--royal-body); }
.v2-quiet-btn {
  height: 30px; padding: 0 12px; border: none; border-radius: 0;
  background: var(--paper-deep); color: var(--text-muted); font: 600 14px/1 var(--font-body); cursor: pointer;
}
.v2-quiet-btn:hover { background: var(--paper-deepest); color: var(--royal-body); }

/* =================== LEFT RAIL =================== */
.v2-rail {
  position: absolute; left: 24px; top: 50%; transform: translateY(-50%); width: 64px; z-index: 30;
  display: flex; flex-direction: column; gap: 4px; padding: 10px 4px;
}
.v2-rail-btn {
  position: relative; display: flex; flex-direction: column; align-items: center; gap: 5px; padding: 9px 0;
  border: none; border-radius: 0; background: transparent; color: var(--text-muted); cursor: pointer;
  transition: background-color var(--dur-fast) var(--ease-glass), color var(--dur-fast) var(--ease-glass);
}
.v2-rail-btn:hover { background: var(--paper-deep); color: var(--royal-body); }
.v2-rail-on { position: absolute; inset: 0; border-radius: 0; background: var(--atlas-blue-12); box-shadow: inset 0 0 0 1px var(--cobalt); }
.v2-rail-btn .icon-mask, .v2-rail-label { position: relative; }
.v2-rail-label { font: 600 12px/1 var(--font-body); letter-spacing: .18em; text-transform: uppercase; }

/* =================== MAP CHROME =================== */
.v2-navctl {
  position: absolute; right: 24px; bottom: 24px; z-index: 30;
  display: flex; flex-direction: row; gap: 6px; align-items: center; padding: 6px; /* ref:740 */
}
.v2-nav-btn {
  width: 30px; height: 30px; display: grid; place-items: center; border: none; border-radius: 0;
  background: transparent; color: var(--text-muted); cursor: pointer;
  transition: background-color var(--dur-fast) var(--ease-glass), color var(--dur-fast) var(--ease-glass);
}
.v2-nav-btn:hover { background: var(--paper-deep); color: var(--royal-body); }
.v2-nav-btn.is-accent { background: var(--atlas-blue-12); color: var(--cobalt); }
.v2-nav-n { font: 600 14px/1 var(--font-body); letter-spacing: .16em; }
.v2-nav-sep { width: 1px; height: 18px; background: var(--ink-faint); }
.v2-layers-menu { position: absolute; right: 24px; bottom: 72px; min-width: 190px; padding: 6px; z-index: 35; }
.v2-layers-menu button {
  display: block; width: 100%; padding: 8px 10px; border: none; border-radius: var(--r-sm); background: transparent;
  text-align: left; cursor: pointer; font: 500 12.5px/1.3 var(--font-ui); color: var(--text-primary);
}
.v2-layers-menu button:hover { background: rgba(10,27,61,.06); }
.v2-layers-menu button[aria-checked="true"] { background: var(--atlas-blue-12); box-shadow: inset 0 0 0 1px var(--atlas-blue); }

.v2-status {
  position: absolute; left: 104px; bottom: 30px; z-index: 20; max-width: 40vw;
  font: 12px/1.4 var(--font-ui); color: var(--text-secondary);
  text-shadow: 0 1px 3px rgba(246,243,236,.8);
}
.v2-status:empty { display: none; }
.v2-status-hint { bottom: 52px; }
.v2-empty { position: absolute; left: 50%; top: 40%; transform: translate(-50%,-50%); z-index: 20; padding: 24px 28px; text-align: center; }
.v2-empty .empty-title { font: 500 var(--fs-section)/var(--lh-section) var(--font-editorial); }
.v2-empty .empty-body { margin-top: 8px; font: 13px/1.5 var(--font-ui); color: var(--text-secondary); }

.photo-key-banner { position: absolute; left: 50%; top: 120px; transform: translateX(-50%); z-index: 40; padding: 18px 20px; width: 420px; }
.photo-key-banner p { font: 13px/1.5 var(--font-ui); }
.photo-key-row { margin-top: 10px; display: flex; gap: 8px; }
.photo-key-row input { flex: 1; height: 34px; padding: 0 12px; border: 1px solid var(--line-quiet); border-radius: var(--r-sm); background: var(--paper-raised); font: 12.5px/1 var(--font-ui); outline: none; }
.photo-key-row input:focus-visible { box-shadow: var(--focus-shadow); }

/* =================== ASSET FRAME (ref:63–394) =================== */
.v2-asset {
  position: absolute; inset: 0; z-index: 25; pointer-events: none;
  /* Side plates stop above the evidence strip; evidence sits above the map nav. */
  --asset-nav-clear: 60px;
  --asset-evidence-h: 138px;
  --asset-stack-gap: 46px;
  --asset-side-bottom: calc(var(--asset-nav-clear) + var(--asset-evidence-h) + var(--asset-stack-gap));
}
.v2-asset > * { pointer-events: auto; }
.v2-asset.is-arrived .v2-snap,
.v2-asset.is-arrived .v2-right,
.v2-asset.is-arrived .v2-evidence {
  animation: atlasRise 380ms var(--ease-glass);
}

.v2-loc-pill { display: none !important; }
.v2-loc-pill .v2-loc-a { font: 600 15px/1.15 var(--font-body); display: block; color: var(--cobalt); }
.v2-loc-pill .v2-loc-b { font: 14px/1.15 var(--font-body); color: var(--text-muted); display: block; margin-top: 3px; }

.v2-snap {
  position: absolute; left: 104px; top: 96px; bottom: var(--asset-side-bottom); width: 360px;
  display: flex; flex-direction: column; overflow: hidden;
}
.v2-snap-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 20px 22px 4px; }
.v2-snap-actions { display: flex; align-items: center; gap: 8px; }
.v2-snap-head h2 { margin: 0; font: 600 21px/1.1 var(--font-display); font-variant: small-caps; letter-spacing: .06em; color: var(--cobalt); }
.v2-snap-body { flex: 1; min-height: 0; overflow: auto; padding: 14px 22px 18px; }
.v2-thesis-kicker {
  margin: 0 0 14px;
  padding: 10px 12px;
  border: 1px solid var(--line, rgba(20, 28, 45, 0.12));
  background: var(--paper, #fff);
}
.v2-thesis-kicker .v2-thesis-stance {
  display: inline-block;
  font: 600 10px/1 var(--font-ui);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--cobalt, #1b3a6b);
  margin-bottom: 6px;
}
.v2-thesis-kicker p { margin: 0; font: 13px/1.4 var(--font-ui); color: var(--royal-body, #1c2434); }
.v2-thesis-kicker .v2-thesis-best { margin-top: 4px; font: 12px/1.35 var(--font-ui); color: var(--text-secondary, #556); }
.v2-thesis-kicker.is-pursue { border-color: rgba(26, 122, 74, 0.35); }
.v2-thesis-kicker.is-distrust,
.v2-thesis-kicker.is-withhold { border-color: rgba(176, 92, 16, 0.4); }
.v2-thesis-prose { margin: 6px 0 0; font: 13px/1.5 var(--font-ui); color: var(--royal-body, #1c2434); }
.v2-row { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 13px 0; border-top: 1px solid var(--ink-faint); }
.v2-row-k { font: 15.5px/1.4 var(--font-body); color: var(--text-tertiary); }
.v2-row-v { text-align: right; font: 600 16px/1.4 var(--font-body); color: var(--royal-body); }
.v2-row-v.is-num { font-variant-numeric: tabular-nums; }
.v2-snap-foot { flex: none; padding: 0 22px 20px; /* ref:124 */ }
.v2-tile-row { display: flex; gap: 8px; /* ref:125 */ }
.v2-tile {
  position: relative; flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 7px;
  padding: 11px 6px 10px; border: 1px solid var(--ink-faint); border-radius: 0;
  background: var(--paper-raised); box-shadow: none;
  cursor: pointer; font: inherit; color: var(--text-muted);
  transition: background var(--dur-fast) var(--ease-glass), border-color var(--dur-fast) var(--ease-glass), color var(--dur-fast) var(--ease-glass);
}
.v2-tile:hover { background: var(--paper-deep); color: var(--royal-body); }
.v2-tile-label { font: 600 14px/1.2 var(--font-body); text-align: center; position: relative; }
.v2-tile.is-sm .v2-tile-label { font: 600 14px/1.25 var(--font-body); text-wrap: pretty; }
.v2-tile-on { position: absolute; inset: -1px; border-radius: 0; border: 1px solid var(--cobalt); background: var(--atlas-blue-12); box-shadow: none; pointer-events: none; }
.v2-tile .icon-mask { position: relative; }
.v2-tile:disabled { opacity: .45; cursor: not-allowed; }

.v2-detail {
  position: absolute; left: 104px; top: 96px; bottom: var(--asset-side-bottom); width: 360px; z-index: 3;
  display: flex; flex-direction: column; overflow: hidden;
}
.v2-detail-head { display: flex; align-items: center; gap: 10px; padding: 16px 20px 14px; border-bottom: 1px solid var(--line-hairline); /* ref:135 */ }
.v2-detail-title { font: 500 15px/1.25 var(--font-ui); }
.v2-detail-body { flex: 1; overflow: auto; padding: 6px 20px 18px; /* ref:140 */ }
.v2-eyebrow { padding: 14px 0 8px; font: 500 11px/1.2 var(--font-ui); letter-spacing: .08em; text-transform: uppercase; color: var(--text-tertiary); /* ref:143 */ }
.v2-drow { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 9px 0; border-top: 1px solid var(--line-hairline); /* ref:144 */ }
.v2-drow-k { font: 13px/1.4 var(--font-ui); color: var(--text-secondary); }
.v2-drow-v { display: flex; align-items: baseline; gap: 8px; }
.v2-drow-val { font: 500 13px/1.4 var(--font-ui); text-align: right; }
.v2-drow-val.is-num { font-family: var(--font-data); font-variant-numeric: tabular-nums; }
.v2-drow-val.is-dim { color: var(--text-tertiary); }
.v2-prov { font: 600 13.5px/1 var(--font-body); letter-spacing: .16em; text-transform: uppercase; }
.v2-prov.is-verified { color: var(--cobalt); }
.v2-prov.is-estimated, .v2-prov.is-inferred { color: var(--text-tertiary); }
.v2-prov.is-missing, .v2-prov.is-conflict { color: var(--rust); }
.v2-prov.is-caution, .v2-prov.is-stale { color: var(--terracotta); }
.v2-links { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line-hairline); display: flex; flex-wrap: wrap; gap: 8px; align-items: baseline; /* ref:156 */ }
.v2-links a { font: 12px/1 var(--font-ui); color: var(--text-link); text-decoration: none; border-bottom: 1px solid var(--atlas-blue-32); }
.v2-links a:hover { color: var(--text-link-hover); border-bottom-color: var(--atlas-blue); }
.v2-links .dot { color: var(--text-tertiary); }
.v2-known li { display: flex; gap: 9px; font: 13px/1.45 var(--font-ui); color: var(--text-secondary); /* ref:170 */ }
.v2-known { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 9px; }
.v2-risk { display: flex; gap: 10px; /* ref:177 */ }
.v2-risk-k { flex: none; width: 74px; font: 500 10.5px/1.6 var(--font-ui); letter-spacing: .06em; text-transform: uppercase; }
.v2-risk-v { font: 13px/1.45 var(--font-ui); color: var(--text-secondary); }
.v2-verify { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding-bottom: 9px; border-bottom: 1px solid var(--line-hairline); /* ref:187 */ }
.v2-verify span:first-child { font: 13px/1.45 var(--font-ui); color: var(--text-secondary); }
.v2-next-block { margin-top: 20px; padding: 14px 0 0; border-top: 1px solid var(--line-quiet); /* ref:193 */ }
.v2-next-block p { margin-top: 8px; font: 13px/1.5 var(--font-ui); color: var(--text-secondary); }
.v2-btn-sm { height: 34px; padding: 0 14px; font: 500 13px/1 var(--font-ui); /* ref:197 */ }
.v2-fin-chips { display: flex; flex-wrap: wrap; gap: 6px; padding: 4px 0 12px; }
.v2-fin-chip {
  border: 0; background: var(--paper-deep); color: var(--text-secondary);
  font: 500 11px/1.2 var(--font-ui); letter-spacing: .04em;
  padding: 7px 10px; border-radius: 999px; cursor: pointer;
}
.v2-fin-chip:hover { color: var(--royal-body); }
.v2-fin-chip.is-on { background: var(--atlas-blue-12); color: var(--cobalt); box-shadow: inset 0 0 0 1px var(--cobalt); }
.v2-fin-row { display: flex; align-items: baseline; justify-content: space-between; padding: 10px 0; border-top: 1px solid var(--line-hairline); /* ref:212 */ }
.v2-fin-row .k { font: 13px/1.4 var(--font-ui); color: var(--text-secondary); }
.v2-fin-row .k small { display: block; font: 11px/1.3 var(--font-ui); color: var(--text-tertiary); }
.v2-fin-row .v { font: 500 14px/1.4 var(--font-data); font-variant-numeric: tabular-nums; }
.v2-fin-total { display: flex; align-items: baseline; justify-content: space-between; padding: 14px 0 10px; border-top: 1px solid var(--line-quiet); /* ref:216 */ }
.v2-fin-total .k { font: 500 13px/1.4 var(--font-ui); }
.v2-fin-total .k small { display: block; font: 11px/1.3 var(--font-ui); font-weight: 400; color: var(--text-tertiary); }
.v2-fin-total .v { font: 500 20px/1.1 var(--font-data); font-variant-numeric: tabular-nums; color: var(--atlas-blue); }
.v2-fin-note { margin: 2px 0 0; font: 12px/1.45 var(--font-ui); color: var(--text-tertiary); /* ref:217 */ }
.v2-ev-row { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 9px 0; border-top: 1px solid var(--line-hairline); /* ref:223 */ }
.v2-ev-row .k { font: 13px/1.4 var(--font-ui); color: var(--text-secondary); }
.v2-ev-row .v { text-align: right; }
.v2-ev-row .v b { display: block; font: 500 12.5px/1.4 var(--font-ui); }
.v2-ev-row .v b.is-num { font-family: var(--font-data); font-variant-numeric: tabular-nums; }
.v2-ev-row .v small { display: block; font: 11px/1.3 var(--font-ui); color: var(--text-tertiary); }

.v2-right {
  position: absolute; right: 24px; top: 96px; bottom: var(--asset-side-bottom); width: 344px;
  display: flex; flex-direction: column; overflow: hidden;
}
.v2-mode-wrap { padding: 16px 18px 12px; border-bottom: 1px solid var(--line-hairline); /* ref:238 */ }
.v2-mode-wrap .v2-seg { width: 100%; }
.v2-mode-wrap .v2-seg-btn { flex: 1; height: 30px; font: 500 12.5px/1 var(--font-ui); }
.v2-viewer-host { flex: 1; display: flex; flex-direction: column; min-height: 0; background: var(--paper-raised); /* ref:245 */ }
.v2-viewer { flex: 1; display: flex; align-items: center; justify-content: center; padding: 20px; min-height: 0; background: var(--paper-raised); position: relative; }
.v2-viewer-note { padding: 0 18px 12px; text-align: center; font: 14px/1.45 var(--font-body); color: var(--text-tertiary); background: var(--paper-raised); }
.v2-viewer-btns { padding: 0 18px 16px; background: var(--paper-raised); /* ref:291 */ }
.v2-legal {
  margin: 0 0 10px;
  padding: 10px 12px;
  border: 1px solid var(--line, rgba(20, 28, 45, 0.1));
  background: var(--paper, #fff);
  color: var(--text-secondary, #445);
  font: 12.5px/1.45 var(--font-ui, inherit);
}
.v2-legal p { margin: 0 0 4px; }
.v2-legal p:last-child { margin: 0; }
.v2-legal.is-missing { color: var(--text-secondary, #667); }
.v2-legal.is-kicker { padding: 8px 10px; margin-bottom: 8px; }
.v2-legal.is-kicker p { font: 600 12px/1.35 var(--font-ui, inherit); }
.v2-viewer-btns .v2-tile-row { gap: 6px; /* ref:292 */ }
.v2-viewer-btns .v2-tile-row.is-wrap { flex-wrap: wrap; }
.v2-viewer-btns .v2-tile { padding: 10px 6px 9px; /* ref:293 */ }
.v2-viewer-btns .v2-tile.is-consulta { border-style: dashed; opacity: 0.92; }
.v2-viewer-btns .v2-tile.is-restricted { opacity: 0.62; }
.v2-right-foot { padding: 14px 20px; border-top: 1px solid var(--line-hairline); display: flex; gap: 8px; /* ref:311 */ }
.v2-right-foot .v2-btn-primary { height: 34px; font: 500 13px/1 var(--font-ui); }

/* stage.js engine embedded in the ref viewer — its own chrome off */
.v2-viewer .deal-stage { position: absolute; inset: 0; display: flex; }
.v2-viewer .deal-stage[hidden] { display: none; }
.v2-viewer .stage-head, .v2-viewer .stage-states, .v2-viewer .stage-caption { display: none !important; }
.v2-viewer model-viewer { width: 100%; height: 100%; background: transparent; --poster-color: transparent; }
.v2-viewer-alt { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: var(--paper-raised); }
/* mesh view — floor slabs (ref:268–274) */
.v2-mesh { position: relative; width: 126px; height: 92px; transform-style: preserve-3d; transform: rotateX(-58deg) rotateZ(34deg); }
.v2-mesh .slab { position: absolute; left: 0; top: 0; width: 126px; height: 92px; }
.v2-mesh.is-real {
  width: min(300px, 92%);
  height: auto;
  transform: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.v2-mesh.is-real svg { width: 100%; height: auto; display: block; }
.v2-mesh-legend {
  max-width: 280px;
  text-align: center;
  font: 11px/1.35 var(--font-data);
  color: var(--text-tertiary);
}
/* 2d view — footprint plan (ref:276–283) */
.v2-plan { position: relative; width: 186px; height: 136px; border: 1.5px solid var(--cobalt); background: rgba(20,57,198,.06); }
.v2-plan .inner { position: absolute; inset: 10px; border: 1px solid rgba(10,27,61,.22); }
.v2-plan .dim-top { position: absolute; left: 0; right: 0; top: -22px; display: flex; align-items: center; justify-content: center; gap: 6px; font: 11px/1 var(--font-data); color: var(--text-tertiary); }
.v2-plan .dim-top i { flex: 1; height: 1px; background: rgba(10,27,61,.2); }
.v2-plan .dim-left { position: absolute; left: -46px; top: 50%; transform: translateY(-50%); font: 11px/1 var(--font-data); color: var(--text-tertiary); }
.v2-plan.is-real {
  width: min(280px, 92%);
  height: auto;
  border: 0;
  background: transparent;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding-top: 18px;
}
.v2-plan.is-real .dim-top { position: static; width: 100%; }
.v2-plan.is-real svg { width: 100%; height: auto; display: block; }
.v2-plan.is-real path {
  fill: rgba(20,57,198,.08);
  stroke: var(--cobalt);
  stroke-width: 1.6;
}
.v2-plan-floors {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px 10px;
  margin: 0;
  padding: 0;
  list-style: none;
  font: 11px/1.3 var(--font-data);
  color: var(--text-tertiary);
}
.v2-plan-floors b { font-weight: 600; color: var(--text-secondary); }
.v2-plan-link {
  font: 12px/1.3 var(--font-ui);
  color: var(--cobalt);
  text-decoration: none;
}
.v2-plan-link:hover { text-decoration: underline; }
.v2-plan-rc { font: 11px/1.3 var(--font-data); color: var(--text-tertiary); }
.v2-plan.is-missing {
  width: min(260px, 90%);
  height: auto;
  border: 1px dashed rgba(20,57,198,.35);
  background: transparent;
  padding: 18px 14px;
  text-align: center;
}
.v2-plan.is-missing p {
  margin: 0 0 8px;
  font: 13px/1.4 var(--font-ui);
  color: var(--text-secondary);
}
.v2-plan.is-missing p:last-child { margin: 0; color: var(--text-tertiary); }

/* evidence strip — compressed, sits above the map nav cluster */
.v2-evidence {
  position: absolute; left: 104px; right: 24px; bottom: var(--asset-nav-clear);
  height: var(--asset-evidence-h);
  display: flex; flex-direction: column; gap: 6px; padding: 10px 14px;
  border-radius: 0;
  background: var(--paper-raised); border: 1px solid var(--ink-rule); box-shadow: none;
}
.v2-ev-title { font: 600 15px/1.1 var(--font-body); color: var(--cobalt); letter-spacing: .06em; font-variant: small-caps; }
.v2-ev-cards { flex: 1; display: flex; gap: 8px; min-height: 0; }
.v2-ev-card {
  position: relative; flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px;
  padding: 8px 10px; border: 1px solid var(--ink-faint); border-radius: 0;
  background: var(--paper-raised); text-align: left; cursor: pointer; font: inherit; color: inherit; text-decoration: none;
  box-shadow: none;
  transition: border-color var(--dur-fast) var(--ease-glass);
}
.v2-ev-card:hover { box-shadow: none; border-color: rgba(20,57,198,.34); }
.v2-ev-card.is-off { opacity: .45; cursor: not-allowed; }
.v2-ev-card.is-linked { border-color: var(--cobalt); }
.v2-ev-card.is-off:hover { box-shadow: none; border-color: var(--ink-faint); }
.v2-ev-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.v2-ev-name { font: 600 14px/1.15 var(--font-body); }
.v2-ev-body { flex: 1; min-height: 0; display: flex; align-items: center; gap: 8px; }
.v2-ev-ic { display: grid; place-items: center; width: 26px; height: 26px; flex: none; background: var(--atlas-blue-12); }
.v2-ev-sub { flex: 1; min-width: 0; font: 13px/1.25 var(--font-body); color: var(--text-tertiary); overflow: hidden; }

/* =================== BOARD FRAMES (tasks/cal/time — ref:396–666) =================== */
.v2-board { position: absolute; inset: 0; z-index: 26; pointer-events: none; }
.v2-board > * { pointer-events: auto; }
.v2-panel-tasks { /* ref:397 */
  position: absolute; left: 104px; top: 96px; bottom: 24px; width: 660px;
  display: flex; flex-direction: column; overflow: hidden;
}
.v2-panel-wide { /* ref:553/605 */
  position: absolute; left: 104px; right: 24px; top: 96px; bottom: 24px;
  display: flex; flex-direction: column; overflow: hidden;
}
.v2-panel-sel { /* ref:484 task detail */
  position: absolute; left: 780px; right: 24px; top: 96px; bottom: 24px;
  display: flex; flex-direction: column; overflow: hidden;
}
.v2-bhead { padding: 18px 22px 14px; border-bottom: 1px solid var(--line-hairline); /* ref:398 */ }
.v2-bhead-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.v2-live { display: flex; align-items: center; gap: 8px; }
.v2-orb { width: 8px; height: 8px; border-radius: 50%; background: var(--cobalt); animation: atlasOrb 1.8s var(--ease-glass) infinite; }
.v2-folio { font: 600 13px/1.2 var(--font-body); letter-spacing: .18em; text-transform: uppercase; color: var(--text-tertiary); }
.v2-folio b { color: var(--rust); font-weight: 600; }
.v2-folio .slash { color: var(--ink-faint); }
.v2-bhead h2 { margin-top: 8px; font: 600 34px/1.02 var(--font-display); font-variant: small-caps; letter-spacing: .004em; color: var(--cobalt); }
.v2-bhead .sub { margin-top: 6px; font: 12.5px/1.45 var(--font-ui); color: var(--text-secondary); /* ref:403 */ }
.v2-bhead-actions { display: flex; gap: 6px; flex: none; }
.v2-tsearch { /* ref:410 */
  margin-top: 14px; display: flex; align-items: center; gap: 9px; height: 36px; padding: 0 12px;
  border-radius: var(--r-pill); background: rgba(255,255,255,.55); border: 1px solid var(--line-quiet);
}
.v2-tsearch input { flex: 1; min-width: 0; border: none; background: transparent; outline: none; font: 13px/1 var(--font-ui); color: var(--text-primary); }
.v2-tsearch-clear { width: 20px; height: 20px; flex: none; display: grid; place-items: center; border: none; border-radius: var(--r-pill); background: rgba(10,27,61,.07); color: var(--text-secondary); cursor: pointer; /* ref:414 */ }
.v2-filter-seg { margin-top: 10px; /* ref:417 */ }
.v2-filter-seg .v2-seg-btn { padding: 0 16px; font: 500 12px/1 var(--font-ui); }
.v2-task-nav {
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-top: 10px;
}
.v2-task-nav .v2-btn-mini { min-height: 30px; display: inline-flex; align-items: center; gap: 3px; }
.v2-task-nav select {
  height: 30px; max-width: 150px; padding: 0 24px 0 9px; border: 1px solid var(--line-quiet);
  border-radius: var(--r-sm); background: rgba(255,255,255,.55); color: var(--text-secondary);
  font: 500 11.5px/1 var(--font-ui);
}
.v2-task-nav-state { flex-basis: 100%; min-height: 15px; color: var(--text-tertiary); font: 11px/1.35 var(--font-ui); }
.v2-orig-subject { padding: 10px 0; border-bottom: 1px solid var(--line-hairline); font: 600 13px/1.35 var(--font-ui); color: var(--text-primary); }

.v2-tlist { flex: 1; overflow: auto; padding: 4px 22px 16px; /* ref:425 */ }
.v2-group-head { display: flex; align-items: baseline; justify-content: space-between; padding: 16px 0 8px; /* ref:432 */ }
.v2-group-head .g { font: 500 11px/1.2 var(--font-ui); letter-spacing: .08em; text-transform: uppercase; color: var(--text-tertiary); }
.v2-group-head .n { font: 500 11px/1.2 var(--font-data); font-variant-numeric: tabular-nums; color: var(--text-tertiary); }
.v2-tgroup { display: flex; flex-direction: column; gap: 8px; }
.v2-task { /* ref:439 */
  position: relative; overflow: hidden; padding: 13px 15px 13px 44px;
  border: 1px solid var(--line-hairline); border-radius: var(--r-md); background: rgba(255,255,255,.46);
  cursor: pointer; transition: background-color 180ms var(--ease-glass);
}
.v2-task:hover { background: rgba(255,255,255,.62); }
.v2-task-on { position: absolute; inset: 0; border-radius: 0; background: var(--atlas-blue-12); box-shadow: inset 0 0 0 1px var(--atlas-blue); pointer-events: none; /* ref:441 */ }
.v2-task-move { position: absolute; left: 9px; top: 11px; display: flex; flex-direction: column; gap: 3px; cursor: grab; /* ref:443 */ }
.v2-move-btn { /* ref:444 */
  width: 24px; height: 22px; display: grid; place-items: center; border: none; border-radius: 0;
  background: rgba(10,27,61,.05); color: var(--text-secondary); cursor: pointer;
  transition: background-color var(--dur-fast) var(--ease-glass);
}
.v2-move-btn:hover { background: rgba(10,27,61,.12); color: var(--text-primary); }
.v2-move-btn .icon-mask { pointer-events: none; }
.v2-sweep { position: absolute; left: 0; top: 0; height: 2px; width: 34%; background: var(--rust); animation: atlasSweep 2.4s var(--ease-glass) infinite; }
.v2-task-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.v2-task-title { font: 500 14px/1.35 var(--font-ui); /* ref:451 */ }
.v2-task-prog { flex: none; font: 500 11px/1 var(--font-data); font-variant-numeric: tabular-nums; color: var(--text-tertiary); /* ref:452 */ }
.v2-task-meta { margin-top: 9px; display: flex; align-items: center; gap: 8px; /* ref:454 */ }
.v2-pill { display: inline-flex; align-items: center; gap: 6px; height: 22px; padding: 0 9px; border-radius: var(--r-pill); font: 500 11px/1 var(--font-ui); /* ref:455 */ }
.v2-pill .v2-orb { width: 9px; height: 9px; }
.v2-task-meta .m { font: 12px/1.3 var(--font-ui); color: var(--text-tertiary); }
.v2-task-sum { margin-top: 9px; font: 12.5px/1.45 var(--font-ui); color: var(--text-secondary); /* ref:463 */ }
.v2-task-next { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--line-hairline); display: flex; align-items: baseline; gap: 8px; /* ref:464 */ }
.v2-task-next .k { font: 500 10.5px/1.4 var(--font-ui); letter-spacing: .06em; text-transform: uppercase; color: var(--text-tertiary); flex: none; }
.v2-task-next .v { font: 12.5px/1.4 var(--font-ui); color: var(--text-secondary); }
.v2-task-empty { padding: 36px 4px; text-align: center; font: 13.5px/1.5 var(--font-ui); color: var(--text-secondary); /* ref:427 */ }
.v2-task.is-dragging { opacity: .5; }
.v2-task.is-dropover { box-shadow: inset 0 0 0 1px var(--atlas-blue); }

.v2-composer-wrap { padding: 14px 22px 16px; border-top: 1px solid var(--line-hairline); /* ref:475 */ }
.v2-composer { /* ref:476 */
  display: flex; align-items: center; gap: 10px; height: 44px; padding: 0 6px 0 16px;
  border-radius: var(--r-pill); background: rgba(255,255,255,.5); border: 1px solid var(--line-quiet);
}
.v2-composer input, .v2-composer textarea {
  flex: 1; min-width: 0; border: none; background: transparent; outline: none; resize: none;
  font: 14px/1 var(--font-ui); color: var(--text-primary); height: 100%; padding: 13px 0;
}
.v2-composer input::placeholder, .v2-composer textarea::placeholder { color: var(--text-tertiary); }
.v2-send {
  width: 32px; height: 32px; flex: none; display: grid; place-items: center; border: none; border-radius: 0;
  background: var(--cobalt); color: var(--paper); cursor: pointer;
  box-shadow: none; transition: background-color var(--dur-fast) var(--ease-glass), color var(--dur-fast) var(--ease-glass), box-shadow var(--dur-fast) var(--ease-glass);
}
.v2-send:hover { background: var(--paper); color: var(--cobalt); box-shadow: inset 0 0 0 1px var(--cobalt); }
.v2-send:disabled { opacity: .45; cursor: default; }

/* =================== GROK WORKBENCH =================== */
.v2-grok-panel { position: absolute; left: 104px; right: 24px; top: 96px; bottom: 24px; display: flex; flex-direction: column; overflow: hidden; }
.v2-grok-auth { display: inline-flex; align-items: center; min-height: 30px; padding: 0 11px; border-radius: var(--r-pill); background: rgba(10,27,61,.06); color: var(--text-secondary); font: 500 11.5px/1 var(--font-ui); }
.v2-grok-auth[data-state="ready"] { background: rgba(32,155,93,.12); color: #176a43; }
.v2-grok-auth[data-state="blocked"] { background: rgba(190,115,20,.11); color: #81500f; }
.v2-grok-grid { min-height: 0; flex: 1; display: grid; grid-template-columns: minmax(360px,.82fr) minmax(460px,1.18fr); }
.v2-grok-launch, .v2-grok-monitor { min-height: 0; padding: 20px 22px; overflow: auto; }
.v2-grok-launch { border-right: 1px solid var(--line-hairline); }
.v2-grok-missions { display: flex; gap: 7px; flex-wrap: wrap; margin-bottom: 18px; }
.v2-grok-label { display: block; margin-bottom: 8px; font: 500 10.5px/1.3 var(--font-ui); letter-spacing: .075em; text-transform: uppercase; color: var(--text-tertiary); }
.v2-grok-prompt { width: 100%; min-height: 155px; box-sizing: border-box; resize: vertical; padding: 14px 15px; border: 1px solid var(--line-quiet); border-radius: var(--r-md); outline: none; background: rgba(255,255,255,.58); color: var(--text-primary); font: 13.5px/1.55 var(--font-ui); }
.v2-grok-prompt:focus { border-color: var(--atlas-blue); box-shadow: none; }
.v2-grok-context { margin-top: 13px; padding: 12px 13px; border: 1px solid var(--line-hairline); border-radius: var(--r-sm); background: rgba(255,255,255,.42); color: var(--text-secondary); font: 12px/1.5 var(--font-ui); }
.v2-grok-context summary { cursor: pointer; font-weight: 500; color: var(--text-primary); }
.v2-grok-context pre { margin: 9px 0 0; white-space: pre-wrap; overflow-wrap: anywhere; font: 11.5px/1.5 var(--font-data); }
.v2-grok-context small { display: block; margin-top: 6px; color: var(--text-tertiary); }
.v2-grok-confirm { display: flex; align-items: flex-start; gap: 8px; margin-top: 13px; color: var(--text-secondary); font: 12px/1.45 var(--font-ui); }
.v2-grok-confirm input { margin-top: 2px; accent-color: var(--action-primary); }
.v2-grok-launch-row { display: flex; align-items: center; gap: 11px; margin-top: 15px; }
.v2-grok-launch-row .v2-btn-mini:disabled { opacity: .42; cursor: not-allowed; box-shadow: none; }
.v2-grok-muted { color: var(--text-tertiary); font: 11.5px/1.4 var(--font-ui); }
.v2-grok-login { margin-top: 18px; padding: 14px; border: 1px solid rgba(190,115,20,.2); border-radius: var(--r-md); background: rgba(255,244,222,.62); }
.v2-grok-login b { font: 500 13px/1.4 var(--font-ui); }
.v2-grok-login p { margin: 6px 0 10px; color: var(--text-secondary); font: 12px/1.45 var(--font-ui); }
.v2-grok-login code { display: block; max-height: 80px; margin-bottom: 10px; padding: 9px 10px; overflow: auto; border-radius: 0; background: rgba(10,27,61,.06); white-space: pre-wrap; overflow-wrap: anywhere; font: 10.5px/1.45 var(--font-data); }
.v2-grok-monitor-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.v2-grok-monitor-head > div { display: flex; align-items: baseline; gap: 9px; }
.v2-grok-monitor-head .v2-grok-label { margin: 0; }
.v2-grok-runs { display: flex; gap: 7px; overflow-x: auto; padding: 1px 1px 11px; }
.v2-grok-run { flex: 0 0 190px; min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 9px; padding: 10px 11px; border: 1px solid var(--line-hairline); border-radius: var(--r-sm); background: rgba(255,255,255,.42); color: var(--text-primary); text-align: left; cursor: pointer; }
.v2-grok-run.is-on { border-color: var(--atlas-blue); background: var(--atlas-blue-12); }
.v2-grok-run span { min-width: 0; }
.v2-grok-run b, .v2-grok-run small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2-grok-run b { font: 500 12px/1.3 var(--font-ui); }
.v2-grok-run small { margin-top: 3px; color: var(--text-tertiary); font: 9.5px/1.3 var(--font-data); }
.v2-grok-run em { flex: none; padding: 4px 7px; border-radius: var(--r-pill); background: rgba(10,27,61,.06); color: var(--text-secondary); font: normal 500 9.5px/1 var(--font-ui); }
.v2-grok-run em[data-state="running"] { background: var(--atlas-blue-12); color: var(--atlas-blue); }
.v2-grok-run em[data-state="needs_review"] { background: rgba(32,155,93,.12); color: #176a43; }
.v2-grok-detail { border-top: 1px solid var(--line-hairline); padding-top: 17px; }
.v2-grok-detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.v2-grok-detail-head .v2-grok-label { margin-bottom: 4px; }
.v2-grok-detail-head h3 { font: 500 20px/1.2 var(--font-editorial); }
.v2-grok-model { color: var(--text-tertiary); font: 10.5px/1.4 var(--font-data); }
.v2-grok-events { margin-top: 15px; display: flex; flex-direction: column; gap: 8px; }
.v2-grok-event { display: grid; grid-template-columns: 118px 1fr; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--line-hairline); }
.v2-grok-event time { color: var(--text-tertiary); font: 9.5px/1.4 var(--font-data); }
.v2-grok-event b { font: 500 11.5px/1.4 var(--font-ui); }
.v2-grok-event p { margin: 4px 0 0; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--text-secondary); font: 12px/1.5 var(--font-ui); }
.v2-grok-result { margin-top: 18px; padding: 15px; border: 1px solid var(--line-hairline); border-radius: var(--r-md); background: rgba(255,255,255,.56); }
.v2-grok-result pre { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--text-primary); font: 12.5px/1.6 var(--font-ui); }
.v2-grok-links { margin-top: 15px; display: flex; flex-direction: column; gap: 6px; }
.v2-grok-links a { overflow-wrap: anywhere; color: var(--atlas-blue); font: 11.5px/1.4 var(--font-data); text-decoration: none; }
.v2-grok-links a:hover { text-decoration: underline; }
.v2-grok-error { margin-top: 14px; padding: 10px; border-radius: var(--r-sm); background: rgba(190,35,35,.08); color: #892727; white-space: pre-wrap; font: 11.5px/1.45 var(--font-data); }
@media (max-width: 900px) {
  .v2-grok-panel { overflow: auto; }
  .v2-grok-grid { display: block; flex: 0 0 auto; min-height: auto; overflow: visible; }
  .v2-grok-launch, .v2-grok-monitor { overflow: visible; }
  .v2-grok-launch { border-right: 0; border-bottom: 1px solid var(--line-hairline); }
}

/* task detail (ref:484–548) */
.v2-sel-head { padding: 18px 22px 16px; border-bottom: 1px solid var(--line-hairline); }
.v2-sel-ref { font: 500 11px/1.2 var(--font-ui); letter-spacing: .08em; text-transform: uppercase; color: var(--text-tertiary); /* ref:488 */ }
.v2-sel-title { margin-top: 7px; font: 500 23px/1.16 var(--font-editorial); letter-spacing: -.012em; text-wrap: pretty; /* ref:489 */ }
.v2-sel-meta { margin-top: 10px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; /* ref:490 */ }
.v2-sel-meta .m { font: 12px/1.3 var(--font-ui); color: var(--text-tertiary); }
.v2-sel-body { flex: 1; overflow: auto; padding: 18px 22px 22px; /* ref:503 */ }
.v2-del-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; /* ref:504 */ }
.v2-del-hint { font: 11.5px/1.3 var(--font-ui); color: var(--text-tertiary); /* ref:506 */ }
.v2-del-id { margin-top: 10px; display: flex; align-items: center; gap: 11px; /* ref:508 */ }
.v2-del-ic { width: 34px; height: 34px; flex: none; display: grid; place-items: center; border-radius: var(--r-sm); background: var(--atlas-blue-12); color: var(--atlas-blue); /* ref:509 */ }
.v2-del-name { font: 500 14px/1.35 var(--font-ui); text-wrap: pretty; /* ref:511 */ }
.v2-del-kind { margin-top: 2px; font: 12px/1.3 var(--font-ui); color: var(--text-tertiary); /* ref:512 */ }
.v2-del-body { /* ref:517 */
  margin-top: 12px; padding: 15px 16px; border: 1px solid var(--line-hairline); border-radius: var(--r-md);
  background: rgba(255,255,255,.56); white-space: pre-wrap; font: 12.5px/1.62 var(--font-ui);
  color: var(--text-secondary); cursor: text;
}
.v2-del-edit { /* ref:523 */
  margin-top: 12px; display: block; width: 100%; min-height: 190px; resize: vertical; padding: 15px 16px;
  border: 1px solid var(--atlas-blue); border-radius: var(--r-md); background: var(--paper-raised); outline: none;
  font: 12.5px/1.62 var(--font-ui); color: var(--text-primary); box-shadow: none;
}
.v2-del-btns { margin-top: 10px; display: flex; gap: 8px; align-items: center; /* ref:518 */ }
.v2-btn-mini { height: 32px; padding: 0 14px; border: none; border-radius: var(--r-pill); font: 500 12.5px/1 var(--font-ui); cursor: pointer; display: inline-flex; align-items: center; gap: 7px; }
.v2-btn-mini.is-primary { background: var(--cobalt); color: var(--paper); box-shadow: none; }
.v2-btn-mini.is-primary:hover { background: var(--paper); color: var(--cobalt); box-shadow: inset 0 0 0 1px var(--cobalt); }
.v2-btn-mini.is-quiet { background: rgba(10,27,61,.05); color: var(--text-secondary); }
.v2-btn-mini.is-quiet:hover { background: rgba(10,27,61,.11); color: var(--text-primary); }
.v2-del-type { height: 32px; padding: 0 10px; border: 1px solid var(--line-quiet); border-radius: var(--r-sm); background: var(--paper-raised); font: 12.5px/1 var(--font-ui); color: var(--text-primary); }
.v2-log-sec { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--line-hairline); /* ref:530 */ }
.v2-log { margin-top: 12px; display: flex; flex-direction: column; gap: 10px; }
.v2-log-row { display: flex; align-items: baseline; gap: 12px; /* ref:534 */ }
.v2-log-on { flex: none; width: 74px; font: 500 11.5px/1.4 var(--font-data); font-variant-numeric: tabular-nums; color: var(--text-tertiary); }
.v2-log-who { flex: none; width: 88px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 500 12px/1.4 var(--font-ui); color: var(--text-secondary); }
.v2-log-what { font: 12.5px/1.4 var(--font-ui); color: var(--text-secondary); }
.v2-next-line { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--line-hairline); display: flex; align-items: baseline; gap: 10px; /* ref:543 */ }
.v2-next-line .k { flex: none; font: 500 10.5px/1.4 var(--font-ui); letter-spacing: .06em; text-transform: uppercase; color: var(--text-tertiary); }
.v2-next-line .v { font: 12.5px/1.5 var(--font-ui); color: var(--text-secondary); }
.v2-conflict { margin-top: 10px; font: 12px/1.4 var(--font-ui); color: var(--atlas-blocked); }

/* =================== v3 task detail — deliverable-first (Atlas-UI_v3) =================== */
/* workspace tabs — Draft / To-do / Original request */
.v2-wtabs { margin-bottom: 18px; display: inline-flex; align-items: stretch; gap: 0; padding: 0; border: none; border-radius: 0; background: transparent; box-shadow: inset 0 -1px 0 var(--ink-faint); }
.v2-wtab { position: relative; display: inline-flex; align-items: center; gap: 7px; height: 28px; padding: 0 13px; border: none; border-radius: 0; cursor: pointer; font: 600 15px/1 var(--font-body); background: transparent; color: var(--cobalt); transition: color 140ms var(--ease-glass); }
.v2-wtab:hover { color: var(--rust); }
.v2-wtab.is-on { background: transparent; color: var(--cobalt); box-shadow: none; }
.v2-wtab.is-on::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--rust); }

/* deliverable header — kind chip + "chosen by Atlas" */
.v2-del-kindrow { display: flex; align-items: center; gap: 9px; min-width: 0; }
.v2-del-ic-sm { width: 26px; height: 26px; flex: none; display: grid; place-items: center; border-radius: 0; background: var(--atlas-blue-12); color: var(--atlas-blue); }
.v2-del-kindname { font: 500 15px/1.2 var(--font-ui); letter-spacing: -.004em; color: var(--text-primary); }
.v2-del-chosen { font: 11.5px/1.3 var(--font-ui); color: var(--text-tertiary); }

/* typed artifact cards */
.v2-del-artifact { margin-top: 12px; cursor: text; }
.v2-art-text { padding: 22px 24px; border: 1px solid var(--line-hairline); border-radius: var(--r-md); background: rgba(255,255,255,.62); white-space: pre-wrap; overflow-wrap: anywhere; font: 13.5px/1.72 var(--font-ui); color: var(--text-primary); }
.v2-art-text.is-letter { background: rgba(255,255,255,.62); }
.v2-art-links { margin: 0; padding: 6px 4px; list-style: none; display: flex; flex-direction: column; gap: 2px; }
.v2-art-links li { display: flex; align-items: center; gap: 9px; padding: 8px 10px; border-radius: 0; }
.v2-art-links li:hover { background: rgba(255,255,255,.55); }
.v2-art-links a { font: 500 13px/1.4 var(--font-ui); color: var(--atlas-blue); text-decoration: none; }
.v2-art-links a:hover { text-decoration: underline; }
.v2-art-links .host { font: 11.5px/1.3 var(--font-ui); color: var(--text-tertiary); }
.v2-art-checklist { margin: 0; padding: 2px 0; list-style: none; display: flex; flex-direction: column; gap: 2px; }
.v2-art-checklist li { display: flex; align-items: center; gap: 11px; padding: 8px 10px; border-radius: 0; }
.v2-art-checklist .box { width: 17px; height: 17px; flex: none; display: grid; place-items: center; border-radius: 0; color: #fff; background: rgba(255,255,255,.6); border: 1px solid rgba(10,27,61,.20); }
.v2-art-checklist li.is-checked .box { background: var(--action-primary); border-color: var(--action-primary); }
.v2-art-checklist .lbl { font: 13px/1.4 var(--font-ui); text-wrap: pretty; }
.v2-art-checklist li.is-checked .lbl { color: var(--text-tertiary); }
.v2-art-table-wrap { overflow-x: auto; border: 1px solid var(--line-hairline); border-radius: var(--r-md); background: rgba(255,255,255,.56); }
.v2-art-table { width: 100%; border-collapse: collapse; font: 12.5px/1.5 var(--font-ui); }
.v2-art-table th { text-align: left; font: 500 10.5px/1.4 var(--font-ui); letter-spacing: .06em; text-transform: uppercase; color: var(--text-tertiary); }
.v2-art-table th, .v2-art-table td { padding: 9px 13px; border-bottom: 1px solid var(--line-hairline); }
.v2-art-table tr:last-child td { border-bottom: none; }
.v2-art-cards { display: flex; flex-direction: column; gap: 8px; }
.v2-art-cards.is-grid { display: grid; grid-template-columns: 1fr 1fr; }
.v2-art-cards article { padding: 14px 16px; border: 1px solid var(--line-hairline); border-radius: var(--r-md); background: rgba(255,255,255,.5); }
.v2-art-cards h4 { margin: 0; font: 500 13.5px/1.35 var(--font-ui); }
.v2-art-cards p { margin-top: 5px; font: 12.5px/1.5 var(--font-ui); color: var(--text-secondary); }
.v2-art-cards a { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; font: 500 12px/1.3 var(--font-ui); color: var(--atlas-blue); text-decoration: none; }
.v2-art-cards a:hover { text-decoration: underline; }
.v2-art-media { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.v2-art-media figure { margin: 0; border: 1px solid var(--line-hairline); border-radius: var(--r-md); overflow: hidden; background: rgba(255,255,255,.5); }
.v2-art-media img { display: block; width: 100%; height: auto; }
.v2-art-media figcaption { padding: 7px 10px; font: 11.5px/1.3 var(--font-ui); }
.v2-art-media a { color: var(--atlas-blue); text-decoration: none; }
.v2-art-diagram { padding: 16px; border: 1px solid var(--line-hairline); border-radius: var(--r-md); background: rgba(255,255,255,.5); display: flex; flex-direction: column; gap: 10px; }
.v2-art-diagram .flow { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.v2-art-diagram .node { padding: 6px 11px; border: 1px solid var(--line-quiet); border-radius: var(--r-pill); background: rgba(255,255,255,.7); font: 500 12px/1.3 var(--font-ui); }
.v2-art-diagram .arr { color: var(--text-tertiary); }

/* markdown-lite prose card */
.v2-art-md { padding: 20px 24px; border: 1px solid var(--line-hairline); border-radius: var(--r-md); background: rgba(255,255,255,.62); white-space: pre-wrap; overflow-wrap: anywhere; font: 13px/1.66 var(--font-ui); color: var(--text-primary); }
.v2-art-md a { color: var(--atlas-blue); text-decoration: none; overflow-wrap: anywhere; }
.v2-art-md a:hover { text-decoration: underline; }
.v2-art-md .md-h { display: block; margin: 6px 0 2px; font: 500 14.5px/1.35 var(--font-ui); letter-spacing: -.006em; }
.v2-art-md .md-li { display: block; padding-left: 16px; position: relative; }
.v2-art-md .md-li::before { content: "·"; position: absolute; left: 4px; color: var(--text-tertiary); }

/* flight options — Atlas-UI_v3 fare cards */
.v2-flight-live { display: flex; align-items: center; gap: 8px; margin: 10px 0 2px; font: 11.5px/1.4 var(--font-ui); color: var(--text-tertiary); }
.v2-flight-live .v2-att-chip { gap: 6px; height: 22px; padding: 0 9px; }
.v2-flights { margin-top: 12px; display: flex; flex-direction: column; gap: 8px; }
.v2-flight { padding: 14px 16px; border: 1px solid var(--line-hairline); border-radius: var(--r-md); background: rgba(255,255,255,.5); }
.v2-flight.is-rec { border-color: var(--atlas-blue); background: var(--atlas-blue-12); box-shadow: none; }
.v2-flight-top { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; }
.v2-flight-name { min-width: 0; display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.v2-flight-name .air { font: 500 14px/1.3 var(--font-ui); }
.v2-flight-name .code { font: 11.5px/1.3 var(--font-data); color: var(--text-tertiary); }
.v2-flight-recchip { display: inline-flex; align-items: center; height: 20px; padding: 0 9px; border-radius: var(--r-pill); font: 500 10.5px/1 var(--font-ui); background: var(--atlas-blue); color: #fff; }
.v2-flight-price { flex: none; font: 500 17px/1.1 var(--font-data); font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.v2-flight-grid { margin-top: 11px; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 10px; }
.v2-flight-grid .k { font: 500 10.5px/1.2 var(--font-ui); letter-spacing: .06em; text-transform: uppercase; color: var(--text-tertiary); }
.v2-flight-grid .v { margin-top: 4px; font: 12.5px/1.35 var(--font-ui); overflow-wrap: anywhere; }
.v2-flight-foot { margin-top: 11px; padding-top: 10px; border-top: 1px solid var(--line-hairline); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.v2-flight-foot span { font: 11.5px/1.4 var(--font-ui); color: var(--text-tertiary); }
.v2-flight-foot a { flex: none; display: inline-flex; align-items: center; gap: 6px; font: 500 12px/1.3 var(--font-ui); color: var(--atlas-blue); text-decoration: none; }
.v2-flight-foot a:hover { text-decoration: underline; }
.v2-flight-why { margin-top: 10px; display: flex; align-items: baseline; gap: 8px; }
.v2-flight-why .k { flex: none; font: 500 11px/1.4 var(--font-ui); letter-spacing: .06em; text-transform: uppercase; color: var(--text-tertiary); }
.v2-flight-why .v { font: 12.5px/1.5 var(--font-ui); color: var(--text-secondary); text-wrap: pretty; }
.v2-flight-extra { margin-top: 10px; font: 12px/1.5 var(--font-ui); color: var(--text-tertiary); }

/* original request — read-only inbound record */
.v2-orig { padding: 20px 22px; border: 1px solid var(--line-hairline); border-radius: var(--r-md); background: rgba(255,255,255,.5); }
.v2-orig-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.v2-orig-from { font: 500 13.5px/1.3 var(--font-ui); color: var(--text-primary); }
.v2-orig-addr { margin-top: 3px; font: 11.5px/1.3 var(--font-data); color: var(--text-tertiary); }
.v2-orig-on { flex: none; font: 11.5px/1.3 var(--font-data); font-variant-numeric: tabular-nums; color: var(--text-tertiary); }
.v2-orig-body { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line-hairline); white-space: pre-wrap; overflow-wrap: anywhere; font: 13px/1.72 var(--font-ui); color: var(--text-secondary); }

/* completion checklist — package items with progress */
.v2-check-sec { margin-top: 4px; }
.v2-check-count { font: 500 11.5px/1.3 var(--font-data); font-variant-numeric: tabular-nums; color: var(--text-tertiary); }
.v2-check-bar { margin-top: 10px; height: 3px; border-radius: var(--r-pill); background: rgba(10,27,61,.08); overflow: hidden; }
.v2-check-bar > div { height: 100%; border-radius: var(--r-pill); background: var(--action-primary); transition: width 220ms var(--ease-glass); }
.v2-check-list { margin-top: 12px; display: flex; flex-direction: column; gap: 6px; }
.v2-check-item { padding-bottom: 4px; }
.v2-check-row { display: flex; align-items: center; gap: 11px; width: 100%; padding: 8px 10px; margin-left: -10px; border: none; border-radius: 0; background: transparent; text-align: left; cursor: pointer; font: inherit; color: inherit; }
.v2-check-row:hover { background: rgba(255,255,255,.55); }
.v2-check-row .box { width: 17px; height: 17px; flex: none; display: grid; place-items: center; border-radius: 0; color: #fff; background: rgba(255,255,255,.6); border: 1px solid rgba(10,27,61,.20); transition: background-color 140ms var(--ease-glass); }
.v2-check-row .box.is-on { background: var(--action-primary); border-color: var(--action-primary); }
.v2-check-row .lbl { flex: 1; min-width: 0; font: 13px/1.4 var(--font-ui); text-wrap: pretty; color: var(--text-primary); }
.v2-check-row .lbl.is-done { color: var(--text-tertiary); }
.v2-check-note { margin: 0 0 4px 38px; font: 11.5px/1.4 var(--font-ui); color: var(--text-secondary); }
.v2-att-chip { flex: none; display: inline-flex; align-items: center; height: 20px; padding: 0 8px; border-radius: var(--r-pill); font: 500 10.5px/1 var(--font-ui); }
.v2-att-files { margin: 2px 0 6px 38px; display: flex; flex-wrap: wrap; gap: 6px; }
.v2-att-file { display: inline-flex; align-items: center; gap: 7px; padding: 6px 10px; border: 1px solid var(--line-hairline); border-radius: var(--r-pill); background: rgba(255,255,255,.6); font: 11.5px/1.3 var(--font-ui); color: var(--text-tertiary); }
.v2-att-file a { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--atlas-blue); text-decoration: none; font-weight: 500; }
.v2-att-file a:hover { text-decoration: underline; }
.v2-att-file button { display: grid; place-items: center; width: 16px; height: 16px; border: none; border-radius: 50%; background: rgba(10,27,61,.06); color: var(--atlas-blocked); cursor: pointer; }
.v2-att-upload { position: relative; display: inline-flex; min-height: 28px; align-items: center; margin-left: 38px; padding: 0 10px; border: 1px dashed rgba(9,87,255,.38); border-radius: var(--r-sm); color: var(--atlas-blue); cursor: pointer; font: 500 11px/1 var(--font-ui); }
.v2-att-upload span { display: inline-flex; align-items: center; gap: 6px; }
.v2-att-upload input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.v2-att-upload:focus-within { outline: 2px solid var(--atlas-blue-12); outline-offset: 2px; }
.v2-dash-note { margin-top: 12px; padding: 10px 12px; border: 1px dashed rgba(10,27,61,.18); border-radius: var(--r-sm); font: 11.5px/1.4 var(--font-ui); color: var(--text-tertiary); }

/* lifecycle footer — verb → armed two-step → receipt */
.v2-sel-foot { flex: none; padding: 12px 22px 14px; border-top: 1px solid var(--line-hairline); background: rgba(255,255,255,.34); display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.v2-foot-note { font: 11.5px/1.4 var(--font-ui); color: var(--text-tertiary); text-wrap: pretty; }
.v2-foot-warn { font: 11.5px/1.4 var(--font-ui); color: var(--text-primary); text-wrap: pretty; }
.v2-foot-actions { flex: none; display: flex; align-items: center; gap: 8px; }
.v2-verb-btn { height: 32px; padding: 0 16px; border: 1px solid var(--line-quiet); border-radius: var(--r-pill); background: rgba(255,255,255,.6); color: var(--text-primary); font: 500 12.5px/1 var(--font-ui); cursor: pointer; }
.v2-verb-btn:hover { background: var(--paper-raised); }
.v2-sent-chip { display: inline-flex; align-items: center; gap: 7px; height: 32px; padding: 0 14px; border-radius: var(--r-pill); font: 500 12.5px/1 var(--font-ui); background: rgba(30,122,90,.12); color: var(--atlas-positive); }
.v2-sendback { margin: 0 22px 12px; padding: 12px 14px; border: 1px solid var(--line-quiet); border-radius: var(--r-md); background: rgba(255,255,255,.6); }
.v2-sendback textarea { display: block; width: 100%; min-height: 64px; resize: vertical; padding: 10px 12px; border: 1px solid var(--line-quiet); border-radius: var(--r-sm); background: var(--paper-raised); outline: none; font: 12.5px/1.55 var(--font-ui); color: var(--text-primary); }
.v2-sendback textarea:focus { border-color: var(--atlas-blue); box-shadow: none; }

/* message + attachment package — the message body stays metadata-free */
.v2-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.v2-pkg { display: flex; flex-direction: column; gap: 12px; }
.v2-pkg-unsent { padding: 5px 9px; border-radius: var(--r-pill); background: rgba(169,118,26,.12); color: var(--atlas-caution); font: 500 10.5px/1 var(--font-ui); letter-spacing: .04em; text-transform: uppercase; }
.v2-pkg-meta { display: grid; gap: 7px; margin: 0; padding: 11px 13px; border-radius: var(--r-sm); background: rgba(10,27,61,.045); }
.v2-pkg-meta div { display: grid; grid-template-columns: 56px minmax(0,1fr); gap: 8px; }
.v2-pkg-meta dt { font: 500 10px/1.4 var(--font-ui); letter-spacing: .06em; text-transform: uppercase; color: var(--text-tertiary); }
.v2-pkg-meta dd { margin: 0; font: 500 12px/1.4 var(--font-ui); color: var(--text-primary); overflow-wrap: anywhere; }
.v2-pkg-label { font: 500 11px/1.3 var(--font-ui); letter-spacing: .06em; text-transform: uppercase; color: var(--text-tertiary); }
.v2-pkg-message { display: block; width: 100%; min-height: 240px; resize: vertical; padding: 15px 16px; border: 1px solid var(--line-quiet); border-radius: var(--r-md); background: rgba(255,255,255,.66); outline: none; font: 12.5px/1.62 var(--font-ui); color: var(--text-primary); }
.v2-pkg-message:focus { border-color: var(--atlas-blue); box-shadow: none; background: var(--paper-raised); }
.v2-pkg-state { margin: 0; font: 11.5px/1.4 var(--font-ui); color: var(--text-tertiary); }
.v2-pkg-state.is-error { color: var(--atlas-blocked); }
.v2-pkg-manifest-head { margin-top: 6px; padding-top: 15px; border-top: 1px solid var(--line-hairline); }
.v2-pkg-manifest-head h4 { margin: 0; font: 500 15px/1.3 var(--font-ui); }
.v2-pkg-manifest-head p { margin-top: 4px; font: 11.5px/1.45 var(--font-ui); color: var(--text-secondary); }
.v2-pkg-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.v2-pkg-item { padding: 11px 12px; border: 1px solid var(--line-hairline); border-radius: var(--r-md); background: rgba(255,255,255,.46); }
.v2-pkg-item.is-collected { border-color: rgba(9,87,255,.28); background: var(--atlas-blue-12); }
.v2-pkg-item.is-ready { border-color: rgba(30,122,90,.32); background: rgba(30,122,90,.07); }
.v2-pkg-item-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.v2-pkg-item-head strong { display: block; font: 500 12.5px/1.4 var(--font-ui); color: var(--text-primary); }
.v2-pkg-item-head p { margin-top: 3px; font: 11px/1.4 var(--font-ui); color: var(--text-secondary); }
.v2-pkg-item-head select { height: 28px; padding: 0 8px; border: 1px solid var(--line-quiet); border-radius: var(--r-sm); background: var(--paper-raised); font: 500 11px/1 var(--font-ui); color: var(--text-primary); }
.v2-pkg-empty { margin: 8px 0; font: 11px/1.4 var(--font-ui); color: var(--text-tertiary); }
.v2-pkg-upload { position: relative; display: inline-flex; min-height: 30px; align-items: center; padding: 0 10px; border: 1px dashed rgba(9,87,255,.38); border-radius: var(--r-sm); color: var(--atlas-blue); cursor: pointer; font: 500 11px/1 var(--font-ui); }
.v2-pkg-upload span { display: inline-flex; align-items: center; gap: 6px; }
.v2-pkg-upload input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.v2-pkg-upload:focus-within { outline: 2px solid var(--atlas-blue-12); outline-offset: 2px; }
.v2-pkg-files { display: grid; gap: 5px; margin: 8px 0; padding: 0; list-style: none; }
.v2-pkg-files li { display: flex; align-items: center; gap: 8px; min-width: 0; font: 11px/1.35 var(--font-ui); color: var(--text-tertiary); }
.v2-pkg-files a { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--atlas-blue); }
.v2-pkg-files button { margin-left: auto; border: none; background: none; color: var(--atlas-blocked); cursor: pointer; font: 500 10.5px/1 var(--font-ui); }
.v2-pkg-intent { margin-top: 7px; padding-top: 15px; border-top: 1px solid var(--line-hairline); }
.v2-pkg-intent p { margin-top: 7px; font: 12px/1.5 var(--font-ui); color: var(--text-secondary); }
@media (max-width: 720px) { .v2-pkg-item-head { flex-direction: column; } .v2-pkg-item-head label, .v2-pkg-item-head select { width: 100%; } }

/* calendar (ref:552–601) */
.v2-week { flex: 1; overflow: hidden; display: grid; grid-template-columns: repeat(7, 1fr); /* ref:566 */ }
.v2-day { display: flex; flex-direction: column; min-width: 0; border-right: 1px solid var(--line-hairline); /* ref:568 */ }
.v2-day-head { padding: 12px 12px 10px; border-bottom: 1px solid var(--line-hairline); display: flex; align-items: baseline; gap: 7px; /* ref:569 */ }
.v2-day-head .d { font: 500 11px/1.2 var(--font-ui); letter-spacing: .08em; text-transform: uppercase; color: var(--text-tertiary); }
.v2-day-head .n { font: 500 15px/1 var(--font-data); font-variant-numeric: tabular-nums; color: var(--text-primary); }
.v2-day-today { margin-left: auto; width: 7px; height: 7px; border-radius: 50%; background: var(--atlas-blue); /* ref:572 */ }
.v2-day-body { flex: 1; overflow: auto; padding: 10px; display: flex; flex-direction: column; gap: 7px; /* ref:574 */ }
.v2-event { position: relative; padding: 9px 10px 9px 12px; border: 1px solid var(--line-hairline); border-radius: var(--r-sm); background: rgba(255,255,255,.52); overflow: hidden; /* ref:576 */ }
.v2-event-bar { position: absolute; left: 0; top: 0; bottom: 0; width: 2px; /* ref:577 */ }
.v2-event-at { font: 500 11px/1 var(--font-data); font-variant-numeric: tabular-nums; color: var(--text-tertiary); /* ref:578 */ }
.v2-event-title { margin-top: 5px; font: 500 12px/1.35 var(--font-ui); color: var(--text-primary); text-wrap: pretty; /* ref:579 */ }
.v2-day-empty { font: 12px/1.4 var(--font-ui); color: var(--text-tertiary); /* ref:583 */ }
.v2-cal-foot { padding: 14px 22px 16px; border-top: 1px solid var(--line-hairline); display: flex; align-items: center; gap: 10px; /* ref:590 */ }
.v2-cal-foot .v2-seg { flex: none; }
.v2-cal-foot .v2-seg-btn { height: 26px; padding: 0 10px; font: 500 11.5px/1 var(--font-ui); /* ref:593 */ }
.v2-cal-foot .v2-composer { flex: 1; }
.v2-clarify { margin: 0 22px 10px; padding: 12px 14px; border: 1px solid var(--line-quiet); border-radius: var(--r-md); background: rgba(255,255,255,.6); }
.v2-clarify .q { font: 12.5px/1.45 var(--font-ui); color: var(--text-secondary); }
.v2-clarify .row { margin-top: 8px; display: flex; gap: 8px; }
.v2-clarify input { flex: 1; height: 30px; padding: 0 10px; border: 1px solid var(--line-quiet); border-radius: var(--r-sm); background: var(--paper-raised); font: 12.5px/1 var(--font-ui); outline: none; }

/* timeline (ref:604–665) */
.v2-legend { display: flex; align-items: center; gap: 14px; /* ref:613 */ }
.v2-legend span { display: inline-flex; align-items: center; gap: 6px; font: 12px/1 var(--font-ui); color: var(--text-tertiary); }
.v2-leg-done { width: 14px; height: 9px; border-radius: 0; background: rgba(10,27,61,.13); border: 1px solid rgba(10,27,61,.16); /* ref:614 */ }
.v2-leg-run { width: 14px; height: 9px; border-radius: 0; background: var(--action-primary); /* ref:615 */ }
.v2-leg-plan { width: 14px; height: 9px; border-radius: 0; background: rgba(255,255,255,.5); border: 1px dashed rgba(10,27,61,.22); /* ref:616 */ }
.v2-months { display: flex; padding: 12px 22px 8px; border-bottom: 1px solid var(--line-hairline); /* ref:622 */ }
.v2-months .lbl { width: 230px; flex: none; }
.v2-months .grid { flex: 1; display: grid; }
.v2-months .grid span { font: 500 11px/1.2 var(--font-ui); letter-spacing: .08em; text-transform: uppercase; color: var(--text-tertiary); /* ref:626 */ }
.v2-months .pct { width: 96px; flex: none; }
.v2-projects { flex: 1; overflow: auto; padding: 6px 22px 22px; /* ref:632 */ }
.v2-proj { display: flex; align-items: stretch; padding: 14px 0; border-bottom: 1px solid var(--line-hairline); /* ref:634 */ }
.v2-proj-info { width: 230px; flex: none; padding-right: 18px; }
.v2-proj-name { font: 500 15px/1.3 var(--font-ui); /* ref:636 */ }
.v2-proj-meta { margin-top: 7px; display: flex; align-items: center; gap: 8px; }
.v2-proj-status { display: inline-flex; align-items: center; height: 21px; padding: 0 9px; border-radius: var(--r-pill); font: 500 11px/1 var(--font-ui); background: rgba(10,27,61,.06); color: var(--text-secondary); /* ref:638 */ }
.v2-proj-owner { font: 12px/1.3 var(--font-ui); color: var(--text-tertiary); }
.v2-proj-track { flex: 1; position: relative; min-height: 72px; /* ref:642 */ }
.v2-proj-grid { position: absolute; inset: 0; display: grid; }
.v2-proj-grid span { border-left: 1px solid var(--line-hairline); /* ref:645 */ }
.v2-today-line { position: absolute; top: 0; bottom: 0; width: 1px; background: var(--atlas-blue); opacity: .5; /* ref:648 */ }
.v2-proj-bars { position: relative; height: 100%; display: flex; flex-direction: column; justify-content: center; gap: 6px; /* ref:649 */ }
.v2-bar-lane { position: relative; height: 26px; /* ref:651 */ }
.v2-bar {
  position: absolute; top: 50%; transform: translateY(-50%); height: 26px; display: flex; align-items: center;
  padding: 0 10px; border-radius: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
  font: 500 11.5px/1 var(--font-ui); /* ref:1037 */
}
.v2-bar.is-done { background: var(--paper-deepest); border: 1px solid var(--ink-faint); color: var(--text-muted); }
.v2-bar.is-active { background: var(--cobalt); border: 1px solid var(--cobalt); color: var(--paper); }
.v2-bar.is-plan { background: transparent; border: 1px dashed var(--ink-faint); color: var(--text-tertiary); }
.v2-bar-out { position: absolute; top: 50%; transform: translateY(-50%); white-space: nowrap; font: 500 11.5px/1 var(--font-ui); color: var(--text-secondary); /* ref:1038 */ }
.v2-proj-pct { width: 96px; flex: none; padding-left: 18px; text-align: right; /* ref:658 */ }
.v2-proj-pct .n { font: 500 19px/1 var(--font-data); font-variant-numeric: tabular-nums; }
.v2-proj-pct .l { margin-top: 6px; font: 11.5px/1.3 var(--font-ui); color: var(--text-tertiary); }

/* jarvis chat dock — console behaviour carried, glass skin */
.v2-jarvis-panel { position: absolute; left: 104px; top: 96px; bottom: 24px; width: 480px; display: flex; flex-direction: column; overflow: hidden; }
.v2-chat-log { flex: 1; overflow: auto; padding: 16px 22px; display: flex; flex-direction: column; gap: 10px; }
.v2-msg { max-width: 86%; padding: 10px 13px; border-radius: var(--r-md); font: 13px/1.5 var(--font-ui); white-space: pre-wrap; }
.v2-msg.is-user { align-self: flex-end; background: var(--atlas-blue-12); color: var(--text-primary); }
.v2-msg.is-bot { align-self: flex-start; background: rgba(255,255,255,.6); border: 1px solid var(--line-hairline); color: var(--text-secondary); }

/* =================== PHONE (≤768px) — Atlas-Mobile-2E =================== */
@media (max-width: 768px) {
  body.is-v2 #app {
    --mbar-h: calc(58px + env(safe-area-inset-top, 0px));
    --mtab-h: calc(62px + env(safe-area-inset-bottom, 0px));
  }

  .v2-topbar, .v2-navctl, .v2-layers-menu, .v2-status,
  .v2-loc-pill, .v2-snap, .v2-detail, .v2-right, .v2-evidence { display: none !important; }
  .v2-asset { pointer-events: none; inset: 0; }

  .v2-mbar {
    display: flex; align-items: center; gap: 10px;
    position: absolute; left: 0; right: 0; top: 0; z-index: 34;
    padding: calc(10px + env(safe-area-inset-top, 0px)) 12px 10px;
    background: var(--paper-raised); border-bottom: 1px solid var(--ink-rule);
  }
  .v2-mbrand {
    display: flex; align-items: center; height: 44px; padding: 0;
    border: 0; background: none; cursor: pointer;
  }
  .v2-mbrand-logo { display: block; width: 124px; height: auto; mix-blend-mode: darken; }
  .v2-mbar-flex { flex: 1; }
  .v2-micon {
    width: 44px; height: 44px; flex: none; display: grid; place-items: center;
    border: 1px solid var(--ink-faint); background: var(--paper); cursor: pointer;
  }
  .v2-micon.is-on { border-color: var(--cobalt); background: var(--cobalt); }
  .v2-micon.is-on .icon-mask { background: var(--paper) !important; }

  .v2-mmenu {
    display: block; position: absolute; left: 0; right: 0; top: var(--mbar-h); z-index: 35;
    padding: 14px; background: var(--paper-raised); border-bottom: 1px solid var(--ink-rule);
  }
  .v2-mmenu[hidden] { display: none !important; }
  .v2-mmenu-label {
    display: block; font: 600 10.5px/1 var(--font-display);
    letter-spacing: .22em; text-transform: uppercase; color: var(--text-muted);
  }
  .v2-mmenu-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
  .v2-mchip-btn {
    display: inline-block; padding: 8px 12px; min-height: 36px;
    border: 1px solid var(--ink-faint); background: var(--paper); color: var(--cobalt);
    font: 600 13.5px/1.35 var(--font-body); cursor: pointer;
  }
  .v2-mchip-btn.is-on { border-color: var(--cobalt); background: var(--cobalt); color: var(--paper); }
  .v2-mmenu-foot {
    display: flex; align-items: center; justify-content: space-between;
    margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--ink-faint);
    font: 14.5px/1 var(--font-body); color: var(--text-muted);
  }
  .v2-mmenu-foot .v2-btn-primary {
    height: 40px; padding: 0 16px;
    font: 600 12px/1 var(--font-display); letter-spacing: .2em; text-transform: uppercase;
  }

  .v2-mhint {
    display: block; position: absolute; left: 0; right: 0; bottom: var(--mtab-h); z-index: 20;
    padding: 13px 16px; background: rgba(247,237,216,.94); border-top: 1px solid var(--ink-rule);
    font: 600 12px/1 var(--font-display); letter-spacing: .2em; text-transform: uppercase;
    color: var(--cobalt); text-align: center;
  }
  .v2-mhint[hidden] { display: none !important; }

  .v2-mback {
    display: grid; place-items: center;
    position: absolute; left: 12px; top: calc(var(--mbar-h) + 12px); z-index: 28;
    width: 44px; height: 44px; border: 1px solid var(--ink-rule); background: rgba(247,237,216,.94);
    cursor: pointer;
  }
  .v2-mback[hidden] { display: none !important; }

  .v2-mchip {
    display: flex; flex-direction: column; align-items: center;
    position: absolute; left: 50%; top: 38%; transform: translate(-50%, -100%); z-index: 22;
    pointer-events: none;
  }
  .v2-mchip[hidden] { display: none !important; }
  .v2-mchip-street {
    padding: 5px 10px; background: rgba(247,237,216,.95); border: 1px solid var(--cobalt);
    font: 600 11px/1 var(--font-display); letter-spacing: .16em; text-transform: uppercase;
    color: var(--cobalt); white-space: nowrap; max-width: 78vw;
    overflow: hidden; text-overflow: ellipsis;
  }
  .v2-mchip-stem { width: 1px; height: 30px; background: var(--cobalt); }
  .v2-mchip-mark {
    width: 16px; height: 16px; margin-top: -9px; transform: rotate(45deg);
    background: var(--rust); box-shadow: 0 0 0 4px rgba(242,228,201,.8);
  }

  .v2-mpeek {
    display: flex; flex-direction: column;
    position: absolute; left: 12px; right: 12px; bottom: calc(var(--mtab-h) + 14px); z-index: 30;
    background: var(--paper-raised); border: 1px solid var(--ink-rule);
    animation: atlasRise 340ms 80ms both;
  }
  .v2-mpeek[hidden] { display: none !important; }
  .v2-mpeek-top {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    padding: 8px 10px 8px 14px; border-bottom: 1px solid var(--ink-faint);
  }
  .v2-mfolio { font: 600 11px/1 var(--font-display); letter-spacing: .18em; color: var(--rust); }
  .v2-mpeek-nav { display: flex; gap: 8px; }
  .v2-mnav {
    width: 46px; height: 44px; display: grid; place-items: center;
    border: 1px solid var(--ink-faint); background: var(--paper); cursor: pointer;
  }
  .v2-mpeek-body {
    display: flex; width: 100%; padding: 0; border: 0; background: none;
    text-align: left; cursor: pointer; color: inherit; font: inherit;
  }
  .v2-mpeek-twin {
    flex: none; width: 104px; position: relative; align-self: stretch;
    overflow: hidden; background: var(--paper-deep); border-right: 1px solid var(--ink-faint);
    min-height: 118px;
  }
  .v2-mpeek-copy { flex: 1; min-width: 0; padding: 14px 12px 13px 14px; }
  .v2-mpeek-street {
    display: block; font: 600 20px/1.06 var(--font-display); font-variant: small-caps;
    letter-spacing: .03em; color: var(--cobalt);
  }
  .v2-mpeek-place { display: block; margin-top: 1px; font: 12.5px/1.3 var(--font-body); color: var(--text-muted); }
  .v2-mpeek-metrics { display: flex; margin-top: 12px; border: 1px solid var(--ink-faint); }
  .v2-mpeek-metrics > span {
    flex: 1; min-width: 0; padding: 8px 9px; background: var(--paper);
  }
  .v2-mpeek-metrics > span + span { border-left: 1px solid var(--ink-faint); }
  .v2-mpeek-k {
    display: block; font: 600 9.5px/1 var(--font-display);
    letter-spacing: .18em; text-transform: uppercase; color: var(--text-muted);
  }
  .v2-mpeek-k.is-rust { color: var(--rust); }
  .v2-mpeek-v { display: block; margin-top: 6px; font: 600 18px/1 var(--font-display); color: var(--cobalt); }
  .v2-mpeek-foot {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    width: 100%; padding: 10px 12px 10px 14px; border: 0; border-top: 1px solid var(--ink-faint);
    background: var(--paper); color: var(--royal-body); font: 13.5px/1.25 var(--font-body);
    cursor: pointer; text-align: left;
  }
  .v2-mpeek-foot span span { color: var(--text-muted); }
  .v2-mpeek-more {
    display: flex; align-items: center; gap: 5px; flex: none;
    font: 600 10.5px/1 var(--font-display); letter-spacing: .2em; text-transform: uppercase; color: var(--rust);
  }

  .v2-mfull {
    display: flex; flex-direction: column;
    position: absolute; left: 0; right: 0; top: var(--mbar-h); bottom: var(--mtab-h); z-index: 31;
    background: var(--paper); animation: atlasRise 320ms var(--ease-glass);
  }
  .v2-mfull[hidden] { display: none !important; }
  .v2-mfull-bar {
    flex: none; display: flex; align-items: center; gap: 1px;
    background: var(--ink-faint); border-bottom: 1px solid var(--ink-rule);
  }
  .v2-mfull-nav {
    width: 52px; height: 48px; flex: none; display: grid; place-items: center;
    border: 0; background: var(--paper-raised); cursor: pointer;
  }
  .v2-mfull-bar .v2-mfolio {
    flex: 1; height: 48px; display: flex; align-items: center; justify-content: center;
    background: var(--paper-raised); font: 600 12px/1 var(--font-display); letter-spacing: .22em;
  }
  .v2-mfull-scroll { flex: 1; min-height: 0; overflow: auto; -webkit-overflow-scrolling: touch; }
  .v2-mfull-hero {
    position: relative; height: 200px; background: var(--paper-deep); overflow: hidden;
  }
  .v2-mfull-hero::after {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(180deg, rgba(242,228,201,0) 46%, var(--paper) 100%);
  }
  .v2-mfull-head { padding: 2px 16px 0; }
  .v2-mfull-head h3 {
    margin: 0; font: 600 26px/1.04 var(--font-display); font-variant: small-caps;
    letter-spacing: .03em; color: var(--cobalt);
  }
  .v2-mfull-head p { margin: 2px 0 0; font: 15px/1.35 var(--font-body); color: var(--text-muted); }
  .v2-mfull-metrics { display: flex; margin: 16px 16px 0; border: 1px solid var(--ink-faint); }
  .v2-mfull-metrics > div { flex: 1; padding: 12px; background: var(--paper-raised); }
  .v2-mfull-metrics > div + div { border-left: 1px solid var(--ink-faint); }
  .v2-mfull-v { display: block; margin-top: 7px; font: 600 21px/1 var(--font-display); color: var(--cobalt); }
  .v2-mfull-blurb { margin: 12px 16px 0; font: 15px/1.45 var(--font-body); color: var(--text-muted); }
  .v2-msec {
    display: flex; align-items: center; gap: 10px; padding: 20px 16px 8px;
    font: 600 12px/1 var(--font-display); letter-spacing: .22em; text-transform: uppercase;
  }
  .v2-msec-n { color: var(--rust); }
  .v2-msec-slash { color: var(--ink-rule); }
  .v2-msec-t { color: var(--cobalt); }
  .v2-msec-rule { flex: 1; height: 1px; background: var(--ink-faint); }
  .v2-mscen { display: flex; flex-direction: column; gap: 8px; padding: 0 16px; }
  .v2-mscen-row {
    padding: 12px 13px; border: 1px solid var(--ink-faint); background: var(--paper);
    text-align: left; cursor: pointer; color: inherit; font: inherit;
  }
  .v2-mscen-row.is-on { border-color: var(--cobalt); background: var(--paper-raised); }
  .v2-mscen-top, .v2-mscen-sub { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
  .v2-mscen-sub { margin-top: 5px; font: 14px/1.3 var(--font-body); color: var(--text-muted); }
  .v2-mscen-n { font: 600 16.5px/1.25 var(--font-body); color: var(--cobalt); }
  .v2-mscen-v { font: 600 18px/1 var(--font-display); color: var(--cobalt); white-space: nowrap; }
  .v2-mscen-d { font: 600 13px/1 var(--font-display); letter-spacing: .1em; color: var(--rust); }
  .v2-mscen-empty { padding: 12px 13px; border: 1px solid var(--ink-faint); color: var(--text-muted); font: 14.5px/1.4 var(--font-body); }
  .v2-mfacts {
    display: grid; grid-template-columns: 1fr 1fr; gap: 1px;
    margin: 0 16px; background: var(--ink-faint); border: 1px solid var(--ink-faint);
  }
  .v2-mfact { padding: 11px 12px; background: var(--paper-raised); }
  .v2-mfact span {
    display: block; font: 600 11px/1 var(--font-display);
    letter-spacing: .18em; text-transform: uppercase; color: var(--text-muted);
  }
  .v2-mfact b { display: block; margin-top: 6px; font: 600 16px/1.2 var(--font-body); color: var(--cobalt); }
  .v2-mlegal { margin: 0; padding: 14px 16px 26px; font: 13.5px/1.5 var(--font-body); color: var(--text-muted); }

  .v2-mpeek-twin .deal-stage,
  .v2-mfull-hero .deal-stage { position: absolute; inset: 0; display: flex; }
  .v2-mpeek-twin .deal-stage[hidden],
  .v2-mfull-hero .deal-stage[hidden] { display: none !important; }
  .v2-mpeek-twin .stage-head,
  .v2-mpeek-twin .stage-states,
  .v2-mpeek-twin .stage-caption,
  .v2-mfull-hero .stage-head,
  .v2-mfull-hero .stage-states,
  .v2-mfull-hero .stage-caption { display: none !important; }
  .v2-mpeek-twin model-viewer,
  .v2-mfull-hero model-viewer {
    width: 100%; height: 100%; background: transparent; --poster-color: transparent;
  }
  .v2-mpeek-twin model-viewer { pointer-events: none; }

  .v2-msearch {
    display: flex; flex-direction: column;
    position: absolute; left: 0; right: 0; top: var(--mbar-h); bottom: var(--mtab-h); z-index: 36;
    background: var(--paper); animation: atlasRise 260ms var(--ease-glass);
  }
  .v2-msearch[hidden] { display: none !important; }
  .v2-msearch-bar {
    flex: none; display: flex; align-items: center; gap: 9px;
    padding: 12px; background: var(--paper-raised); border-bottom: 1px solid var(--ink-rule);
  }
  .v2-msearch-field {
    display: flex; align-items: center; gap: 9px; flex: 1; min-width: 0; height: 46px;
    padding: 0 11px; border: 1px solid var(--cobalt); background: var(--paper);
  }
  .v2-msearch-field input {
    flex: 1; min-width: 0; border: 0; background: transparent; outline: none;
    font: 16px/1 var(--font-body); color: var(--cobalt);
    appearance: none; -webkit-appearance: none; box-shadow: none;
  }
  .v2-msearch-field input::-webkit-search-decoration,
  .v2-msearch-field input::-webkit-search-cancel-button,
  .v2-msearch-field input::-webkit-search-results-button { display: none; }
  .v2-msearch-cancel {
    height: 46px; padding: 0 12px; flex: none; border: 0; background: none;
    font: 600 12px/1 var(--font-display); letter-spacing: .18em; text-transform: uppercase;
    color: var(--rust); cursor: pointer;
  }
  .v2-msearch-body { flex: 1; min-height: 0; overflow: auto; }
  .v2-msearch-label {
    padding: 16px 16px 8px; font: 600 11px/1 var(--font-display);
    letter-spacing: .22em; text-transform: uppercase; color: var(--text-muted);
  }
  .v2-mhit {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    width: 100%; min-height: 64px; padding: 12px 16px; border: 0; border-bottom: 1px solid var(--ink-faint);
    background: var(--paper); text-align: left; cursor: pointer; font: inherit;
  }
  .v2-mhit-n { display: block; font: 600 17px/1.2 var(--font-body); color: var(--cobalt); }
  .v2-mhit-s { display: block; margin-top: 2px; font: 13.5px/1.3 var(--font-body); color: var(--text-muted); }
  .v2-mhit-side { flex: none; text-align: right; }
  .v2-mhit-v { display: block; margin-top: 5px; font: 600 17px/1 var(--font-display); color: var(--cobalt); }
  .v2-mhit-t { flex: none; font: 600 10.5px/1 var(--font-display); letter-spacing: .16em; text-transform: uppercase; color: var(--text-muted); }
  .v2-mrecent {
    display: flex; align-items: center; gap: 10px; width: 100%; min-height: 52px;
    padding: 0 16px; border: 0; border-bottom: 1px solid var(--ink-faint);
    background: var(--paper); font: 16px/1.3 var(--font-body); color: var(--royal-body);
    text-align: left; cursor: pointer;
  }
  .v2-mnohits { padding: 12px 16px; font: 15px/1.4 var(--font-body); color: var(--text-muted); }

  .v2-rail {
    left: 0; right: 0; bottom: 0; top: auto; width: auto; transform: none;
    flex-direction: row; justify-content: stretch; gap: 1px; padding: 0;
    padding-bottom: env(safe-area-inset-bottom, 0px);
    background: var(--ink-faint); border-left: 0; border-right: 0; border-bottom: 0; z-index: 33;
  }
  .v2-rail-btn {
    flex: 1; min-width: 0; min-height: 62px; padding: 8px 4px;
    background: var(--paper-raised); color: var(--text-muted);
  }
  .v2-rail-btn:hover { background: var(--paper-raised); }
  .v2-rail-on { display: none !important; }
  .v2-rail-btn:has(.v2-rail-on:not([hidden])) {
    background: var(--paper-deep); color: var(--cobalt);
  }
  .v2-rail-label { font: 600 11px/1 var(--font-display); letter-spacing: .2em; }

  .v2-panel-tasks, .v2-panel-wide, .v2-panel-sel, .v2-jarvis-panel, .v2-grok-panel {
    left: 10px; right: 10px; top: calc(var(--mbar-h) + 10px); bottom: calc(var(--mtab-h) + 10px); width: auto;
  }
  .v2-task-nav { display: none; }
  .v2-panel-sel { z-index: 6; }
  .v2-bhead { padding: 14px 16px 12px; }
  .v2-bhead h2 { font-size: 22px; }
  .v2-tlist, .v2-sel-body { padding-left: 16px; padding-right: 16px; }
  .v2-sel-head { padding: 14px 16px 12px; }
  .v2-sel-title { font-size: 19px; }
  .v2-composer-wrap { padding: 10px 16px 12px; }
  .v2-sel-foot { padding: 10px 16px 12px; flex-wrap: wrap; row-gap: 8px; }
  .v2-foot-actions { flex-wrap: wrap; }
  .v2-sendback { margin: 0 16px 10px; }
  .v2-wtabs { display: flex; flex-wrap: wrap; row-gap: 3px; }
  .v2-del-hint { display: none; }
  .v2-del-head { flex-wrap: wrap; row-gap: 6px; }
  .v2-flight-live { flex-wrap: wrap; row-gap: 4px; }
  .v2-flight-grid { grid-template-columns: 1fr 1fr; }
  .v2-art-cards.is-grid, .v2-art-media { grid-template-columns: 1fr; }
  .v2-log-on { width: 60px; }
  .v2-log-who { width: 64px; }
  .v2-week { grid-template-columns: 1fr; overflow: auto; }
  .v2-day { border-right: none; border-bottom: 1px solid var(--line-hairline); }
  .v2-day-body { overflow: visible; }
  .v2-cal-foot { flex-wrap: wrap; padding: 10px 16px 12px; }
  .v2-cal-foot .v2-seg { order: 2; width: 100%; overflow-x: auto; }
  .v2-cal-foot .v2-composer { flex: 1 1 100%; }
  .v2-months .lbl, .v2-proj-info { width: 108px; }
  .v2-months .pct, .v2-proj-pct { width: 56px; padding-left: 8px; }
  .v2-proj-pct .n { font-size: 15px; }
  .v2-legend { display: none; }

  .intake-overlay {
    align-items: flex-end; padding: 0; background: rgba(20, 36, 111, .26);
  }
  .intake-card {
    width: 100%; max-height: 86vh; border-left: 0; border-right: 0; border-bottom: 0;
    padding: 18px 16px calc(24px + env(safe-area-inset-bottom, 0px));
  }
  .intake-media { display: flex; gap: 8px; }
  .intake-media-btn {
    flex: 1; display: flex; align-items: center; justify-content: center; gap: 8px;
    min-height: 48px; padding: 0 10px; border: 1px solid var(--ink-faint); background: var(--paper);
    font: 600 14px/1.2 var(--font-body); color: var(--cobalt); cursor: pointer;
  }

  .photo-key-banner { left: 12px; right: 12px; top: calc(var(--mbar-h) + 12px); width: auto; transform: none; }
  .v2-empty { left: 16px; right: 16px; top: 42%; width: auto; transform: translateY(-50%); }
}

/* focus */
body.is-v2 :focus-visible { outline: none; box-shadow: var(--focus-shadow); }

/* scrollbars — quiet, on-glass */
body.is-v2 ::-webkit-scrollbar { width: 8px; height: 8px; }
body.is-v2 ::-webkit-scrollbar-thumb { background: var(--atlas-navy-16); border-radius: 0; }
body.is-v2 ::-webkit-scrollbar-track { background: transparent; }

/* ── Intake upload overlay (intake.js) ─────────────────────────── */
.intake-overlay {
  position: fixed; inset: 0; z-index: 60;
  background: rgba(20, 36, 111, .26);
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
}
.intake-card {
  width: min(640px, 94vw); max-height: 86vh; overflow-y: auto;
  border-radius: 0; padding: 26px 28px 22px;
  display: flex; flex-direction: column; gap: 18px;
  background: var(--paper-raised);
  border: 1px solid var(--ink-rule);
  box-shadow: var(--plate-frame);
  animation: atlasRise 380ms var(--ease-glass);
}
.intake-head { display: flex; align-items: center; justify-content: space-between; }
.intake-head h2 { font: 600 30px/1.02 var(--font-display); font-variant: small-caps; letter-spacing: .004em; color: var(--cobalt); }
.intake-head h2 .stop { color: var(--rust); }
.intake-folio { font: 600 13px/1.2 var(--font-body); letter-spacing: .18em; text-transform: uppercase; color: var(--text-tertiary); }
.intake-folio b { color: var(--rust); }
.intake-x {
  width: 30px; height: 30px; border: 0; background: var(--paper-deep);
  font-size: 1.2rem; line-height: 1; color: var(--text-muted); cursor: pointer;
}
.intake-x:hover { background: var(--paper-deepest); color: var(--rust); }
.intake-drop {
  border: 1px dashed var(--ink-rule); border-radius: 0;
  padding: 44px 20px; text-align: center; cursor: pointer;
  background: var(--paper);
  transition: border-color var(--dur-fast) var(--ease-glass), background var(--dur-fast) var(--ease-glass);
}
.intake-drop:hover, .intake-drop.hot {
  border-color: var(--cobalt); background: var(--paper-deep);
}
.intake-drop-inner { display: flex; flex-direction: column; gap: 6px; align-items: center; }
.intake-drop-icon { font-size: 22px; color: var(--cobalt); }
.intake-drop-inner b { color: var(--cobalt); font: 600 22px/1.05 var(--font-display); font-variant: small-caps; letter-spacing: .03em; }
.intake-drop-inner span { font-size: 14px; color: var(--text-tertiary); }
.intake-pastebar { display: flex; gap: 8px; }
.intake-pastebar input {
  flex: 1; border: 1px solid var(--atlas-navy-16); border-radius: 0;
  padding: 8px 12px; font: inherit; background: var(--atlas-clear);
  color: var(--text-primary);
}
.intake-pastebar input:focus { outline: none; border-color: var(--atlas-blue); }
.intake-status { font-size: .8rem; color: var(--text-secondary); }
.intake-status.err { color: var(--atlas-blocked); }
.intake-list { display: flex; flex-direction: column; gap: 6px; }
.intake-row {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 10px; border-radius: 0; background: var(--atlas-navy-08);
  cursor: pointer;
}
.intake-row-main { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.intake-row-main b {
  font-size: .85rem; color: var(--text-primary);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.intake-row-main span { font-size: .72rem; color: var(--text-tertiary); }
.intake-price {
  width: 110px; border: 1px solid var(--atlas-navy-16); border-radius: 0;
  padding: 5px 8px; font: inherit; font-size: .8rem; text-align: right;
  background: var(--atlas-clear); color: var(--text-primary);
}
.intake-foot {
  display: flex; align-items: center; justify-content: space-between;
  font-size: .8rem; color: var(--text-secondary);
}
.intake-media { display: none; }

/* Phone chrome is inert on desktop. Must stay *before* the ≤768 rules
   or it wins the cascade and hides the new header on phones too. */
@media (min-width: 769px) {
  .v2-mbar, .v2-mmenu, .v2-mhint, .v2-mback, .v2-mchip,
  .v2-mpeek, .v2-mfull, .v2-msearch { display: none; }
}

/* Phone intake must follow the base overlay rules or the centered card wins. */
@media (max-width: 768px) {
  .intake-overlay {
    align-items: flex-end; justify-content: stretch; padding: 0;
    background: rgba(20, 36, 111, .26);
  }
  .intake-card {
    width: 100%; max-width: none; max-height: 86vh;
    border-left: 0; border-right: 0; border-bottom: 0;
    padding: 18px 16px calc(24px + env(safe-area-inset-bottom, 0px));
  }
  .intake-media { display: flex; gap: 8px; }
  .intake-media-btn {
    flex: 1; display: flex; align-items: center; justify-content: center; gap: 8px;
    min-height: 48px; padding: 0 10px; border: 1px solid var(--ink-faint); background: var(--paper);
    font: 600 14px/1.2 var(--font-body); color: var(--cobalt); cursor: pointer;
  }
}
