/* Capital Grid Financial — app UI (dashboard, auth, market, ledger, modals, ticker).
   Dark, crypto/AI. All data shown is SIMULATED. Tokens mirror the theme. */

:root {
	--vx-void: #0A0B12;
	--vx-panel: #12141F;
	--vx-panel2: #1A1D2B;
	--vx-line: rgba(255,255,255,0.08);
	--vx-line2: rgba(255,255,255,0.14);
	--vx-aqua: #2DD4BF;
	--vx-aqua-ink: #06231E;
	--vx-violet: #8B7CFF;
	--vx-up: #34D399;
	--vx-down: #FB5C7D;
	--vx-ink: #EDEFF7;
	--vx-muted: #99A0B5;
	--vx-radius: 14px;
	--vx-mono: "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
	--vx-sans: "Inter", system-ui, -apple-system, sans-serif;
	--vx-display: "Space Grotesk", var(--vx-sans);
}

.vest-mono { font-family: var(--vx-mono); font-variant-numeric: tabular-nums; }
.up { color: var(--vx-up) !important; }
.down { color: var(--vx-down) !important; }
.vest-muted { color: var(--vx-muted); }
.vest-noscroll { overflow: hidden; }

/* ---------------- Buttons ---------------- */
.vest-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	font-family: var(--vx-sans); font-weight: 600; font-size: 15px; line-height: 1;
	padding: 12px 20px; border-radius: 10px; border: 1px solid transparent;
	cursor: pointer; text-decoration: none; transition: transform .12s ease, background .12s ease, border-color .12s ease;
}
.vest-btn:hover { transform: translateY(-1px); }
.vest-btn--accent { background: var(--vx-aqua); color: var(--vx-aqua-ink); }
.vest-btn--accent:hover { background: #45e0cd; }
.vest-btn--ghost { background: transparent; color: var(--vx-ink); border-color: var(--vx-line2); }
.vest-btn--ghost:hover { border-color: var(--vx-aqua); color: var(--vx-aqua); }
.vest-btn--sell { background: transparent; color: var(--vx-down); border-color: rgba(251,92,125,0.45); }
.vest-btn--sell:hover { background: rgba(251,92,125,0.12); }
.vest-btn--sm { padding: 8px 14px; font-size: 13px; border-radius: 8px; }
.vest-btn--block { width: 100%; }

/* ---------------- Typography helpers ---------------- */
.vest-h2 { font-family: var(--vx-display); font-size: clamp(24px,3vw,32px); font-weight: 600; color: var(--vx-ink); margin: 0 0 8px; letter-spacing: -0.01em; }
.vest-h3 { font-family: var(--vx-display); font-size: 19px; font-weight: 600; color: var(--vx-ink); margin: 0; letter-spacing: -0.01em; }

/* ---------------- Auth ---------------- */
.vest-authwrap { max-width: 1000px; margin: 0 auto; padding: 40px 20px 72px; }
.vest-authcard {
	display: grid; grid-template-columns: 1fr 1fr; gap: 0;
	background: var(--vx-panel); border: 1px solid var(--vx-line); border-radius: var(--vx-radius); overflow: hidden;
}
.vest-authcard__brandside {
	padding: 40px; background:
		radial-gradient(120% 120% at 0% 0%, rgba(139,124,255,0.18), transparent 55%),
		radial-gradient(120% 120% at 100% 100%, rgba(45,212,191,0.16), transparent 55%),
		var(--vx-panel2);
	border-right: 1px solid var(--vx-line);
}
.vest-authcard__brandside h2 { font-family: var(--vx-display); font-size: 28px; font-weight: 600; color: var(--vx-ink); margin: 0 0 12px; letter-spacing: -0.01em; }
.vest-authcard__brandside p { color: var(--vx-muted); font-size: 15px; line-height: 1.6; margin: 0 0 18px; }
.vest-authcard__brandside ul { list-style: none; padding: 0; margin: 0 0 18px; }
.vest-authcard__brandside li { color: var(--vx-ink); font-size: 14px; padding: 8px 0 8px 26px; position: relative; border-bottom: 1px solid var(--vx-line); }
.vest-authcard__brandside li::before { content: ""; position: absolute; left: 2px; top: 13px; width: 9px; height: 9px; border-radius: 3px; background: var(--vx-aqua); }
.vest-authcard__demo { font-size: 12px; color: var(--vx-muted); border: 1px dashed var(--vx-line2); border-radius: 8px; padding: 8px 12px; display: inline-block; }
.vest-authcard__forms { padding: 40px; }
.vest-authtabs { display: flex; gap: 8px; margin-bottom: 20px; }
.vest-authtab { flex: 1; padding: 12px; background: transparent; border: 1px solid var(--vx-line); border-radius: 10px; color: var(--vx-muted); font-family: var(--vx-sans); font-weight: 600; font-size: 14px; cursor: pointer; }
.vest-authtab.is-active { background: var(--vx-panel2); color: var(--vx-ink); border-color: var(--vx-line2); }
.vest-authform { display: none; }
.vest-authform.is-active { display: block; }
.vest-authform label { display: block; font-size: 13px; color: var(--vx-muted); font-weight: 600; margin-bottom: 14px; }
.vest-authform input[type="text"], .vest-authform input[type="email"], .vest-authform input[type="password"], .vest-authform input[type="tel"], .vest-authform select {
	display: block; width: 100%; margin-top: 6px; padding: 12px 14px; box-sizing: border-box;
	background: var(--vx-void); border: 1px solid var(--vx-line2); border-radius: 10px; color: var(--vx-ink); font-size: 15px; font-family: var(--vx-sans);
}
.vest-authform select { -webkit-appearance: none; appearance: none; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2399A0B5' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 14px center; padding-right: 38px; }
.vest-authform select option { background: var(--vx-panel); color: var(--vx-ink); }
.vest-authform input:focus, .vest-authform select:focus { outline: none; border-color: var(--vx-aqua); }
.vest-authagree { display: flex !important; align-items: flex-start; gap: 9px; font-weight: 500 !important; font-size: 12.5px !important; color: var(--vx-muted); line-height: 1.5; margin-bottom: 18px; }
.vest-authagree input { margin-top: 2px; flex: 0 0 auto; accent-color: var(--vx-aqua); }
.vest-authagree a { color: var(--vx-aqua); font-weight: 600; }
.vest-authrow { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.vest-authremember { display: flex !important; align-items: center; gap: 8px; margin: 0 !important; }
.vest-authlink, .vest-authswitch a { color: var(--vx-aqua); text-decoration: none; font-weight: 600; }
.vest-authswitch { font-size: 13px; color: var(--vx-muted); margin: 14px 0 0; }
.vest-authhint { font-size: 12px; color: var(--vx-muted); margin: 0 0 14px; }
.vest-authmsg { padding: 12px 14px; border-radius: 10px; font-size: 14px; margin-bottom: 16px; }
.vest-authmsg--err { background: rgba(251,92,125,0.12); color: #ffc0cd; border: 1px solid rgba(251,92,125,0.35); }
.vest-authmsg--ok { background: rgba(52,211,153,0.12); color: #b6f2da; border: 1px solid rgba(52,211,153,0.35); }

.vest-panel { background: var(--vx-panel); border: 1px solid var(--vx-line); border-radius: var(--vx-radius); padding: 40px; }
.vest-panel--center { text-align: center; max-width: 560px; margin: 0 auto; }
.vest-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 20px; }

/* ---------------- Dashboard ---------------- */
.vest-dash { max-width: 1180px; margin: 0 auto; padding: 32px 20px 80px; }
.vest-dash__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 24px; flex-wrap: wrap; }
.vest-dash__hi { font-size: 13px; color: var(--vx-muted); text-transform: uppercase; letter-spacing: .08em; }
.vest-dash__name { font-family: var(--vx-display); font-size: clamp(26px,4vw,38px); font-weight: 600; color: var(--vx-ink); margin: 4px 0 0; letter-spacing: -0.02em; }
.vest-dash__headactions { display: flex; gap: 10px; flex-wrap: wrap; }

.vest-flash { padding: 14px 18px; border-radius: 12px; margin-bottom: 20px; font-size: 14px; }
.vest-flash--ok { background: rgba(52,211,153,0.12); color: #b6f2da; border: 1px solid rgba(52,211,153,0.35); }
.vest-flash--err { background: rgba(251,92,125,0.12); color: #ffc0cd; border: 1px solid rgba(251,92,125,0.35); }

.vest-stats { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 14px; margin-bottom: 20px; }
.vest-stat { background: var(--vx-panel); border: 1px solid var(--vx-line); border-radius: var(--vx-radius); padding: 20px 22px; }
.vest-stat--hero { background:
	radial-gradient(140% 140% at 100% 0%, rgba(45,212,191,0.12), transparent 60%), var(--vx-panel); }
.vest-stat__k { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--vx-muted); text-transform: uppercase; letter-spacing: .07em; }
.vest-stat__v { display: block; font-size: clamp(22px,3vw,34px); font-weight: 700; color: var(--vx-ink); margin-top: 8px; letter-spacing: -0.01em; }
.vest-stat--hero .vest-stat__v { font-size: clamp(30px,5vw,48px); }
.vest-stat__sub { display: block; margin-top: 6px; font-size: 14px; font-family: var(--vx-mono); }
.vest-stat__sub[data-dir="up"] { color: var(--vx-up); }
.vest-stat__sub[data-dir="down"] { color: var(--vx-down); }
.vest-live { font-family: var(--vx-sans); font-size: 10px; font-weight: 700; color: var(--vx-aqua); border: 1px solid rgba(45,212,191,0.4); border-radius: 5px; padding: 2px 6px; letter-spacing: .05em; position: relative; }
.vest-live::after { content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--vx-aqua); margin-left: 5px; animation: vest-pulse 1.6s infinite; vertical-align: middle; }
@keyframes vest-pulse { 0%,100% { opacity: .35; } 50% { opacity: 1; } }

.vest-card { background: var(--vx-panel); border: 1px solid var(--vx-line); border-radius: var(--vx-radius); padding: 22px; margin-bottom: 20px; }
.vest-card__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; gap: 12px; }
.vest-card__head .vest-muted { font-size: 13px; font-weight: 400; }
.vest-chartwrap { width: 100%; }
#vest-chart { width: 100%; height: 240px; display: block; }

.vest-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }

.vest-tablewrap { overflow-x: auto; }
.vest-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.vest-table th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--vx-muted); font-weight: 600; padding: 8px 10px; border-bottom: 1px solid var(--vx-line); }
.vest-table td { padding: 12px 10px; border-bottom: 1px solid var(--vx-line); color: var(--vx-ink); vertical-align: middle; }
.vest-table tr:last-child td { border-bottom: none; }
.vest-table .r { text-align: right; }
.vest-sym { display: block; font-family: var(--vx-display); font-weight: 600; font-size: 15px; color: var(--vx-ink); }
.vest-aname { display: block; font-size: 12px; color: var(--vx-muted); }
.vest-empty { padding: 28px; text-align: center; color: var(--vx-muted); font-size: 14px; border: 1px dashed var(--vx-line2); border-radius: 12px; }
.vest-sellform { margin: 0; }

.vest-tag { font-size: 11px; font-weight: 700; padding: 3px 8px; border-radius: 6px; text-transform: uppercase; letter-spacing: .04em; }
.vest-tag--buy { background: rgba(45,212,191,0.14); color: var(--vx-aqua); }
.vest-tag--sell { background: rgba(251,92,125,0.14); color: var(--vx-down); }
.vest-tag--deposit { background: rgba(139,124,255,0.16); color: var(--vx-violet); }
.vest-tag--withdraw { background: rgba(153,160,181,0.16); color: var(--vx-muted); }

/* ---------------- Modals ---------------- */
.vest-modal { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(4,5,10,0.72); backdrop-filter: blur(4px); }
.vest-modal[hidden] { display: none; }
.vest-modal__box { position: relative; width: 100%; max-width: 420px; background: var(--vx-panel); border: 1px solid var(--vx-line2); border-radius: var(--vx-radius); padding: 28px; }
.vest-modal__box h3 { margin-bottom: 8px; }
.vest-modal__box p { color: var(--vx-muted); font-size: 14px; margin: 0 0 18px; }
.vest-modal__box label { display: block; font-size: 13px; color: var(--vx-muted); font-weight: 600; margin-bottom: 16px; }
.vest-modal__box input[type="number"] { display: block; width: 100%; margin-top: 6px; padding: 12px 14px; box-sizing: border-box; background: var(--vx-void); border: 1px solid var(--vx-line2); border-radius: 10px; color: var(--vx-ink); font-size: 16px; font-family: var(--vx-mono); }
.vest-modal__box input:focus { outline: none; border-color: var(--vx-aqua); }
.vest-modal__x { position: absolute; top: 12px; right: 14px; background: none; border: none; color: var(--vx-muted); font-size: 26px; line-height: 1; cursor: pointer; }
.vest-modal__x:hover { color: var(--vx-ink); }

/* ---------------- Ticker (homepage) ---------------- */
.vest-tickerbar { background: var(--vx-panel); border-top: 1px solid var(--vx-line); border-bottom: 1px solid var(--vx-line); overflow: hidden; }
#vest-ticker { overflow: hidden; white-space: nowrap; }
.vest-tick__track { display: inline-flex; gap: 34px; padding: 12px 0; animation: vest-marquee 90s linear infinite; }
.vest-tickerbar:hover .vest-tick__track { animation-play-state: paused; }
@keyframes vest-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.vest-tick { display: inline-flex; align-items: baseline; gap: 8px; }
.vest-tick__sym { font-family: var(--vx-display); font-weight: 600; color: var(--vx-ink); font-size: 14px; }
.vest-tick__px { font-size: 13px; color: var(--vx-muted); }
.vest-tick__chg { font-family: var(--vx-mono); font-size: 12px; }
.vest-tick__chg.up { color: var(--vx-up); }
.vest-tick__chg.down { color: var(--vx-down); }

/* ---------------- Trading terminal ---------------- */
.vest-term__head { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; margin-bottom: 18px; }
.vest-term__id { display: flex; flex-direction: column; }
.vest-term__sym { font-family: var(--vx-display); font-weight: 700; font-size: 24px; color: var(--vx-ink); letter-spacing: -0.01em; }
.vest-term__name { font-size: 13px; color: var(--vx-muted); }
.vest-term__px { display: flex; align-items: baseline; gap: 10px; }
#vt-price { font-size: 26px; font-weight: 700; color: var(--vx-ink); }
#vt-chg { font-size: 15px; }
.vest-term__tf { display: flex; gap: 6px; margin-left: auto; }
.vest-tf { padding: 7px 15px; border: 1px solid var(--vx-line2); background: transparent; color: var(--vx-muted); border-radius: 8px; font-family: var(--vx-mono); font-size: 13px; cursor: pointer; transition: all .12s ease; }
.vest-tf:hover { color: var(--vx-ink); }
.vest-tf.is-active { background: var(--vx-aqua); color: var(--vx-aqua-ink); border-color: var(--vx-aqua); }

.vest-term__stats { display: flex; gap: 22px; }
.vest-term__stats > div { display: flex; flex-direction: column; gap: 2px; }
.vest-term__stats .k { font-size: 11px; color: var(--vx-muted); text-transform: uppercase; letter-spacing: .04em; }
.vest-term__stats .v { font-size: 14px; color: var(--vx-ink); }

.vest-term__grid { display: grid; grid-template-columns: 1fr 244px 280px; gap: 16px; align-items: stretch; }
.vest-term__chart { background: var(--vx-void); border: 1px solid var(--vx-line); border-radius: 12px; padding: 10px 8px; min-width: 0; }
#vest-cndl { width: 100%; height: 440px; display: block; }
.vest-term__side { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.vest-term__trade { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.vest-position { background: var(--vx-void); border: 1px solid var(--vx-line); border-radius: 12px; padding: 14px 16px; }
.vest-position__row { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; font-size: 13px; color: var(--vx-muted); border-bottom: 1px solid var(--vx-line); }
.vest-position__row:last-child { border-bottom: none; }
.vest-position__row .vest-mono { color: var(--vx-ink); }
.vest-position__empty { font-size: 13px; color: var(--vx-muted); padding: 8px 0; }

/* Order book */
.vest-book, .vest-trades { background: var(--vx-void); border: 1px solid var(--vx-line); border-radius: 12px; padding: 12px; }
.vest-book { flex: 1 1 auto; }
.vest-book__title, .vest-trades .vest-book__title { font-size: 12px; font-weight: 600; color: var(--vx-muted); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 8px; }
.vest-book__cols, .vest-trades__cols { display: grid; grid-template-columns: 1fr auto auto; gap: 10px; font-size: 10px; text-transform: uppercase; letter-spacing: .04em; color: var(--vx-muted); padding: 0 2px 6px; }
.vest-book__cols .r, .vest-trades__cols .r { text-align: right; }
.vest-book__row { position: relative; display: grid; grid-template-columns: 1fr auto auto; gap: 10px; padding: 2.5px 2px; font-size: 12px; overflow: hidden; }
.vest-book__bar { position: absolute; top: 0; bottom: 0; right: 0; z-index: 0; border-radius: 3px; }
.vest-book__row--ask .vest-book__bar { background: rgba(251,92,125,0.13); }
.vest-book__row--bid .vest-book__bar { background: rgba(52,211,153,0.13); }
.vest-book__p, .vest-book__s, .vest-book__c { position: relative; z-index: 1; font-family: var(--vx-mono); }
.vest-book__s, .vest-book__c { text-align: right; color: var(--vx-muted); }
.vest-book__row--ask .vest-book__p { color: var(--vx-down); }
.vest-book__row--bid .vest-book__p { color: var(--vx-up); }
.vest-book__spread { display: flex; justify-content: space-between; align-items: center; padding: 7px 2px; margin: 4px 0; border-top: 1px solid var(--vx-line); border-bottom: 1px solid var(--vx-line); font-size: 14px; color: var(--vx-ink); }
.vest-book__sprd { font-size: 11px; color: var(--vx-muted); font-family: var(--vx-mono); }

/* Recent trades */
.vest-trades { flex: 0 0 auto; }
.vest-trades__list { max-height: 168px; overflow-y: auto; scrollbar-width: thin; }
.vest-trades__row { display: grid; grid-template-columns: 1fr auto auto; gap: 10px; padding: 2.5px 2px; font-size: 12px; }
.vest-trades__t { color: var(--vx-muted); font-family: var(--vx-mono); }
.vest-trades__p { text-align: right; font-family: var(--vx-mono); }
.vest-trades__s { text-align: right; color: var(--vx-muted); }

/* Portfolio value + allocation row */
.vest-portrow { display: grid; grid-template-columns: 1.7fr 1fr; gap: 20px; margin-bottom: 20px; }
.vest-portrow .vest-card { margin-bottom: 0; }
.vest-alloc__wrap { display: flex; justify-content: center; }
#vest-donut { width: 100%; max-width: 200px; height: 176px; display: block; }
.vest-alloc__legend { margin-top: 12px; display: flex; flex-direction: column; gap: 2px; }
.vest-alloc__leg { display: flex; align-items: center; gap: 8px; padding: 5px 0; border-bottom: 1px solid var(--vx-line); font-size: 13px; }
.vest-alloc__leg:last-child { border-bottom: none; }
.vest-alloc__dot { width: 10px; height: 10px; border-radius: 3px; flex: 0 0 auto; }
.vest-alloc__lbl { color: var(--vx-ink); flex: 1; }
.vest-alloc__pct { color: var(--vx-muted); }

.vest-ticket { display: flex; flex-direction: column; background: var(--vx-void); border: 1px solid var(--vx-line); border-radius: 12px; padding: 18px; }
.vest-ticket__tabs { display: flex; gap: 6px; margin-bottom: 18px; }
.vest-ticket__tab { flex: 1; padding: 11px; background: transparent; border: 1px solid var(--vx-line2); border-radius: 9px; color: var(--vx-muted); font-family: var(--vx-sans); font-weight: 600; font-size: 14px; cursor: pointer; }
.vest-ticket__tab.is-active { background: var(--vx-panel2); color: var(--vx-ink); border-color: var(--vx-line2); }
.vest-ticket__form { display: none; flex-direction: column; gap: 14px; }
.vest-ticket__form.is-active { display: flex; }
.vest-ticket__form label { display: block; font-size: 13px; color: var(--vx-muted); font-weight: 600; }
.vest-ticket__form input[type="number"] { display: block; width: 100%; margin-top: 6px; padding: 12px 14px; box-sizing: border-box; background: var(--vx-panel); border: 1px solid var(--vx-line2); border-radius: 10px; color: var(--vx-ink); font-size: 16px; font-family: var(--vx-mono); }
.vest-ticket__form input:focus { outline: none; border-color: var(--vx-aqua); }
.vest-ticket__row { display: flex; justify-content: space-between; align-items: center; font-size: 13px; color: var(--vx-muted); }
.vest-ticket__row .vest-mono { color: var(--vx-ink); }
.vt-unitwrap { display: flex; gap: 8px; margin-top: 6px; }
.vt-unitwrap input { flex: 1; }
.vt-max { flex: 0 0 auto; padding: 0 14px; background: transparent; border: 1px solid var(--vx-line2); border-radius: 10px; color: var(--vx-aqua); font-weight: 600; cursor: pointer; }
.vt-max:hover { border-color: var(--vx-aqua); }

.vest-assetstrip { display: flex; gap: 10px; overflow-x: auto; margin-top: 18px; padding-bottom: 8px; scrollbar-width: thin; }
.vest-assetchip { flex: 0 0 auto; width: 148px; text-align: left; background: var(--vx-void); border: 1px solid var(--vx-line); border-radius: 12px; padding: 12px 12px 8px; cursor: pointer; transition: border-color .12s ease, background .12s ease; }
.vest-assetchip:hover { border-color: var(--vx-line2); }
.vest-assetchip.is-active { border-color: var(--vx-aqua); background: rgba(45,212,191,0.06); }
.vest-assetchip__top { display: flex; justify-content: space-between; align-items: center; }
.vest-assetchip__sym { font-family: var(--vx-display); font-weight: 600; font-size: 14px; color: var(--vx-ink); }
.vest-assetchip__chg { font-family: var(--vx-mono); font-size: 11px; }
.vest-assetchip__px { display: block; font-size: 13px; color: var(--vx-muted); margin: 4px 0 6px; }
.vest-assetchip__spark { width: 100%; height: 34px; display: block; }

.vest-rowspark { width: 120px; height: 34px; display: block; }

/* ---------------- Breakpoints ---------------- */
@media (max-width: 1180px) {
	.vest-term__grid { grid-template-columns: 1fr 210px 240px; gap: 12px; }
}
@media (max-width: 1024px) {
	.vest-stats { grid-template-columns: 1fr 1fr; }
	.vest-stat--hero { grid-column: 1 / -1; }
	.vest-portrow { grid-template-columns: 1fr; }
	.vest-term__grid { grid-template-columns: 1fr 1fr; }
	.vest-term__chart { grid-column: 1 / -1; }
	.vest-term__stats { width: 100%; order: 3; }
}
@media (max-width: 767px) {
	.vest-term__grid { grid-template-columns: 1fr; }
	.vest-authcard { grid-template-columns: 1fr; }
	.vest-authcard__brandside { border-right: none; border-bottom: 1px solid var(--vx-line); }
	.vest-authcard__forms, .vest-authcard__brandside, .vest-panel { padding: 26px; }
	.vest-grid2 { grid-template-columns: 1fr; }
	.vest-dash__head { align-items: flex-start; }
	.vest-hidesm { display: none; }
	#vest-cndl { height: 280px; }
	.vest-term__head { gap: 14px; }
	.vest-term__tf { margin-left: 0; }
	#vt-price { font-size: 22px; }
	.vest-term__sym { font-size: 20px; }
}
@media (max-width: 480px) {
	.vest-stats { grid-template-columns: 1fr; }
	.vest-dash { padding: 20px 14px 64px; }
	.vest-btn { padding: 11px 16px; font-size: 14px; }
	.vest-authwrap { padding: 20px 14px 48px; }
	.vest-assetchip { width: 130px; }
	#vest-cndl { height: 240px; }
}

/* ============================================================
   Multi-asset app shell (v2). Denser, sharper "terminal" scale
   than the marketing pages. All data SIMULATED / practice.
   ============================================================ */
.vest-app-shell:has(.vest-app){max-width:none;padding:0;}
.vest-app{display:grid;grid-template-columns:232px 1fr;min-height:calc(100vh - 60px);background:var(--vx-void);color:var(--vx-ink);}
.vest-app *{box-sizing:border-box;}

/* sidebar */
.vest-side{border-right:1px solid var(--vx-line);background:var(--vx-panel);display:flex;flex-direction:column;padding:16px 12px;position:sticky;top:0;height:100vh;}
.vest-side__brand{display:flex;align-items:center;gap:8px;font-family:var(--vx-display);font-weight:700;font-size:1.05rem;color:var(--vx-ink);text-decoration:none;padding:6px 8px 16px;}
.vest-side__mark{color:var(--vx-aqua);}
.vest-side__markets{color:var(--vx-muted);font-weight:500;}
.vest-side__nav{display:flex;flex-direction:column;gap:2px;flex:1;}
.vest-side__link{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:8px;color:var(--vx-muted);text-decoration:none;font-size:.92rem;font-weight:500;transition:background .12s,color .12s;}
.vest-side__link:hover{background:var(--vx-panel2);color:var(--vx-ink);}
.vest-side__link.is-active{background:rgba(45,212,191,0.12);color:var(--vx-aqua);}
.vest-ico{width:18px;height:18px;flex:none;}
.vest-side__foot{padding:8px;}
.vest-pill{display:inline-flex;align-items:center;gap:5px;font-size:.68rem;font-weight:600;letter-spacing:.04em;padding:4px 9px;border-radius:999px;text-transform:uppercase;}
.vest-pill--practice{background:rgba(139,124,255,0.14);color:var(--vx-violet);border:1px solid rgba(139,124,255,0.3);}
.vest-pill--practice.sm{font-size:.6rem;padding:2px 6px;}

/* top bar */
.vest-main{min-width:0;display:flex;flex-direction:column;}
.vest-top{display:flex;align-items:center;gap:18px;padding:12px 24px;border-bottom:1px solid var(--vx-line);background:var(--vx-panel);position:sticky;top:0;z-index:5;}
.vest-top__search{flex:1;max-width:460px;display:flex;align-items:center;gap:8px;background:var(--vx-void);border:1px solid var(--vx-line);border-radius:9px;padding:7px 12px;color:var(--vx-muted);}
.vest-top__search input{flex:1;background:none;border:none;outline:none;color:var(--vx-ink);font:inherit;font-size:.9rem;}
.vest-top__meta{display:flex;align-items:center;gap:22px;margin-left:auto;}
.vest-top__acct{display:flex;align-items:center;gap:8px;}
.vest-top__acctlabel{font-weight:600;font-size:.9rem;}
.vest-top__nlv,.vest-top__pl{display:flex;flex-direction:column;line-height:1.2;}
.vest-top__nlvlabel,.vest-top__pllabel{font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;color:var(--vx-muted);}
.vest-top__nlv strong{font-size:1.02rem;}
.vest-top__pl.up strong{color:var(--vx-up);}.vest-top__pl.down strong{color:var(--vx-down);}

/* view + page */
.vest-view{padding:24px;flex:1;}
.vest-page__head{margin-bottom:16px;}
.vest-page__sub{color:var(--vx-muted);font-size:.9rem;margin-top:4px;}
.vest-h2{font-family:var(--vx-display);font-size:1.5rem;font-weight:700;margin:0;}
.vest-h3{font-family:var(--vx-display);font-size:1.05rem;font-weight:600;margin:0;}
.vest-h4{font-family:var(--vx-display);font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--vx-muted);margin:0;}
.vest-mono{font-family:var(--vx-mono);}
.vest-muted{color:var(--vx-muted);}
.up{color:var(--vx-up);}.down{color:var(--vx-down);}

/* class tabs */
.vest-tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:14px;border-bottom:1px solid var(--vx-line);}
.vest-tab{padding:8px 14px;color:var(--vx-muted);text-decoration:none;font-size:.88rem;font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;}
.vest-tab:hover{color:var(--vx-ink);}
.vest-tab.is-active{color:var(--vx-aqua);border-bottom-color:var(--vx-aqua);}

/* tables */
.vest-tablewrap{overflow-x:auto;border:1px solid var(--vx-line);border-radius:10px;background:var(--vx-panel);}
.vest-table{width:100%;border-collapse:collapse;font-size:.88rem;}
.vest-table th{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:var(--vx-muted);font-weight:600;padding:11px 14px;border-bottom:1px solid var(--vx-line);position:sticky;top:0;background:var(--vx-panel);}
.vest-table td{padding:10px 14px;border-bottom:1px solid var(--vx-line);white-space:nowrap;}
.vest-table tr:last-child td{border-bottom:none;}
.vest-table tbody tr:hover{background:var(--vx-panel2);}
.vest-table .l{text-align:left;}.vest-table .r{text-align:right;}
.vest-table__empty{text-align:center;color:var(--vx-muted);padding:26px;}
.vest-sym{color:var(--vx-aqua);font-weight:700;text-decoration:none;font-family:var(--vx-mono);}
.vest-sym:hover{text-decoration:underline;}
.vest-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;vertical-align:middle;}
.vest-dot.is-open{background:var(--vx-up);box-shadow:0 0 0 3px rgba(52,211,153,0.16);}
.vest-dot.is-closed{background:var(--vx-muted);}
.vest-status{font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:5px;text-transform:capitalize;}
.vest-status--filled{background:rgba(52,211,153,0.14);color:var(--vx-up);}
.vest-status--cancelled,.vest-status--rejected,.vest-status--expired{background:rgba(251,92,125,0.12);color:var(--vx-down);}

.vest-btn--sm{padding:5px 12px;font-size:.78rem;}

/* instrument detail */
.vest-inst__head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:16px;flex-wrap:wrap;}
.vest-inst__id{display:flex;align-items:center;gap:10px;}
.vest-inst__id .vest-h2{font-family:var(--vx-mono);}
.vest-tag{font-size:.68rem;font-weight:600;padding:3px 9px;border-radius:5px;background:var(--vx-panel2);color:var(--vx-ink);border:1px solid var(--vx-line);}
.vest-inst__name{color:var(--vx-muted);margin:4px 0 0;}
.vest-inst__px{text-align:right;display:flex;flex-direction:column;gap:3px;align-items:flex-end;}
.vest-inst__last{font-size:1.7rem;}
.vest-inst__status{font-size:.8rem;color:var(--vx-muted);}
.vest-inst__grid{display:grid;grid-template-columns:1fr 340px;gap:16px;align-items:start;}
.vest-card{background:var(--vx-panel);border:1px solid var(--vx-line);border-radius:10px;}
.vest-card__head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--vx-line);}
.vest-inst__chart canvas{width:100%;display:block;padding:8px;}
.vest-chartbar{display:flex;gap:2px;}
.vest-chartbar button{background:var(--vx-void);border:1px solid var(--vx-line);color:var(--vx-muted);font:inherit;font-size:.76rem;padding:4px 10px;border-radius:6px;cursor:pointer;}
.vest-chartbar button.is-active{color:var(--vx-aqua);border-color:var(--vx-aqua);}

/* ticket */
.vest-ticket{padding:14px 16px;}
.vest-ticket__tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:12px;}
.vest-ticket__tabs button{padding:9px;border:1px solid var(--vx-line);background:var(--vx-void);color:var(--vx-muted);font:inherit;font-weight:600;border-radius:7px;cursor:pointer;}
.vest-ticket__tabs button[data-side="buy"].is-active{background:rgba(52,211,153,0.14);color:var(--vx-up);border-color:rgba(52,211,153,0.4);}
.vest-ticket__tabs button[data-side="sell"].is-active{background:rgba(251,92,125,0.12);color:var(--vx-down);border-color:rgba(251,92,125,0.4);}
.vest-field{display:flex;flex-direction:column;gap:5px;margin-bottom:10px;}
.vest-field span{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--vx-muted);}
.vest-field input,.vest-field select{background:var(--vx-void);border:1px solid var(--vx-line);border-radius:7px;padding:9px 11px;color:var(--vx-ink);font:inherit;outline:none;}
.vest-field input:focus,.vest-field select:focus{border-color:var(--vx-aqua);}
/* Account view */
.vest-account{max-width:640px;}
.vest-account__head{margin-bottom:18px;}
.vest-account__sec h2{font-size:1.05rem;margin:0 0 14px;}
.vest-acctform{display:flex;flex-direction:column;gap:14px;}
.vest-acctform .vest-field{display:flex;flex-direction:column;gap:5px;}
.vest-acctform .vest-field input,.vest-acctform .vest-field select{width:100%;box-sizing:border-box;padding:11px 13px;}
.vest-acctform__foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:4px;}
.vest-acctmsg{font-size:.85rem;}
.vest-acctmsg.is-ok{color:var(--vx-up);}
.vest-acctmsg.is-err{color:var(--vx-down);}
.vest-account__danger{border-color:rgba(251,92,125,0.35);}
.vest-account__danger h2{color:var(--vx-down);}
.vest-btn--danger{background:var(--vx-down);color:#2a0810;}
.vest-btn--danger:hover{background:#ff728e;}
.vest-inst__tv{height:440px;width:100%;}
.vest-inst__chart--tv{padding:0;overflow:hidden;}
.vest-ticket__calc{border-top:1px solid var(--vx-line);margin:12px 0;padding-top:10px;display:flex;flex-direction:column;gap:6px;}
.vest-ticket__calc>div{display:flex;justify-content:space-between;font-size:.82rem;}
.vest-ticket__calc span:first-child{color:var(--vx-muted);}
.vest-btn--lg{width:100%;}
.vest-ticket__msg{font-size:.82rem;margin:10px 0 0;min-height:1.1em;}
.vest-ticket__msg.is-ok{color:var(--vx-up);}.vest-ticket__msg.is-err{color:var(--vx-down);}
.vest-ticket__note{font-size:.7rem;color:var(--vx-muted);margin:8px 0 0;text-align:center;}
.vest-ticket__pos{border-top:1px solid var(--vx-line);margin-top:14px;padding-top:12px;}
.vest-kv{display:flex;justify-content:space-between;padding:6px 0;font-size:.86rem;border-bottom:1px solid var(--vx-line);}
.vest-kv:last-child{border-bottom:none;}
.vest-kv span:first-child{color:var(--vx-muted);}

/* stats + account */
.vest-inst__stats{margin-top:16px;padding:0 16px 16px;}
.vest-statgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1px;background:var(--vx-line);border:1px solid var(--vx-line);border-radius:8px;overflow:hidden;margin:14px 0;}
.vest-stat{background:var(--vx-panel);padding:11px 14px;display:flex;flex-direction:column;gap:3px;}
.vest-stat__k{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:var(--vx-muted);}
.vest-inst__blurb{color:var(--vx-muted);font-size:.88rem;}
.vest-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px;}
.vest-chip{background:var(--vx-void);border:1px solid var(--vx-line);color:var(--vx-ink);font:inherit;font-size:.82rem;padding:8px 14px;border-radius:8px;cursor:pointer;}
.vest-chip:hover{border-color:var(--vx-aqua);color:var(--vx-aqua);}

/* responsive */
@media(max-width:1024px){
	.vest-app{grid-template-columns:64px 1fr;}
	.vest-side__link span,.vest-side__brand .vest-side__markets,.vest-side__foot{display:none;}
	.vest-side__brand{justify-content:center;}
	.vest-inst__grid{grid-template-columns:1fr;}
	.vest-top__meta{gap:14px;}
}
@media(max-width:767px){
	.vest-app{grid-template-columns:1fr;}
	.vest-side{position:sticky;top:0;z-index:6;height:auto;flex-direction:row;overflow-x:auto;padding:6px 8px;-webkit-overflow-scrolling:touch;}
	.vest-side__brand{display:none;} /* header already carries the Capital Grid logo — free the rail for icons */
	.vest-side__nav{flex-direction:row;gap:2px;justify-content:space-between;width:100%;}
	.vest-side__link{flex:1;justify-content:center;padding:9px 6px;}
	.vest-side__link span{display:none;}
	.vest-top{flex-wrap:wrap;gap:10px;padding:10px 14px;}
	.vest-view{padding:14px;}
	.vest-top__search{max-width:none;order:3;flex-basis:100%;}
}

/* chart toolbar (Phase 5) */
.vest-chart-head{flex-wrap:wrap;gap:10px;}
.vest-chart-tools{display:flex;align-items:center;gap:8px;}
.vest-chart-tools select{background:var(--vx-void);border:1px solid var(--vx-line);color:var(--vx-ink);font:inherit;font-size:.8rem;padding:5px 8px;border-radius:6px;cursor:pointer;outline:none;}
.vest-chart-tools select:focus{border-color:var(--vx-aqua);}
.vest-drop{position:relative;}
.vest-drop__btn{background:var(--vx-void);border:1px solid var(--vx-line);color:var(--vx-muted);font:inherit;font-size:.8rem;padding:5px 12px;border-radius:6px;cursor:pointer;}
.vest-drop__btn:hover{color:var(--vx-ink);}
.vest-drop__menu{position:absolute;right:0;top:calc(100% + 6px);z-index:20;background:var(--vx-panel2);border:1px solid var(--vx-line2);border-radius:9px;padding:8px;min-width:170px;display:none;box-shadow:0 12px 32px rgba(0,0,0,.45);}
.vest-drop.is-open .vest-drop__menu{display:block;}
.vest-drop__grp{display:block;font-size:.64rem;text-transform:uppercase;letter-spacing:.05em;color:var(--vx-muted);margin:6px 4px 3px;}
.vest-drop__menu label{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:6px;font-size:.84rem;cursor:pointer;color:var(--vx-ink);}
.vest-drop__menu label:hover{background:var(--vx-void);}
.vest-chart-readout{font-family:var(--vx-mono);font-size:.76rem;color:var(--vx-muted);padding:6px 12px 0;min-height:1.1em;}
.vest-inst__chart canvas{height:360px;}

/* options chain (Phase 6) */
.vest-chain{margin-bottom:20px;}
.vest-chain__exp{font-family:var(--vx-display);font-weight:600;font-size:.95rem;margin:0 0 8px;padding:8px 12px;background:var(--vx-panel2);border:1px solid var(--vx-line);border-radius:8px;}
.vest-chain__tbl th.c-calls{text-align:left;color:var(--vx-up);}
.vest-chain__tbl th.c-puts{text-align:right;color:var(--vx-down);}
.vest-chain__tbl .c-strike{text-align:center;font-weight:700;background:var(--vx-panel2);border-left:1px solid var(--vx-line);border-right:1px solid var(--vx-line);}
.vest-chain__tbl td.is-itm{background:rgba(45,212,191,0.06);}
.vest-chain__tbl a.vest-sym{color:var(--vx-ink);}
.vest-chain__tbl a.vest-sym:hover{color:var(--vx-aqua);}

/* funding wizard (Phase 7) — responsive deposit/withdraw modal */
.vest-noscroll{overflow:hidden;}
.vest-fund{position:fixed;inset:0;z-index:100;background:rgba(6,8,14,0.72);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:20px;}
.vest-fund[hidden]{display:none;}
.vest-fund__box{position:relative;width:100%;max-width:440px;max-height:92vh;overflow-y:auto;background:var(--vx-panel);border:1px solid var(--vx-line2);border-radius:16px;padding:26px;box-shadow:0 24px 60px rgba(0,0,0,.5);}
.vest-fund__x{position:absolute;top:14px;right:16px;background:none;border:none;color:var(--vx-muted);font-size:1.5rem;cursor:pointer;line-height:1;}
.vest-fund__x:hover{color:var(--vx-ink);}
.vest-fund__head{margin-bottom:16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.vest-fund__head h2{font-family:var(--vx-display);font-size:1.3rem;margin:0;}
.vest-fund__head p{width:100%;margin:2px 0 0;font-size:.88rem;}
.vest-fund__back{background:none;border:1px solid var(--vx-line);color:var(--vx-ink);border-radius:7px;width:30px;height:30px;cursor:pointer;font-size:1rem;}
.vest-fund__methods{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.vest-fund__method{display:flex;flex-direction:column;gap:6px;align-items:flex-start;text-align:left;padding:18px 16px;background:var(--vx-void);border:1px solid var(--vx-line);border-radius:12px;cursor:pointer;color:var(--vx-ink);transition:border-color .12s,transform .12s;}
.vest-fund__method:hover{border-color:var(--vx-aqua);transform:translateY(-2px);}
.vest-fund__ico{font-size:1.5rem;color:var(--vx-aqua);}
.vest-fund__mt{font-family:var(--vx-display);font-weight:600;}
.vest-fund__md{font-size:.74rem;color:var(--vx-muted);}
.vest-fund__addr,.vest-fund__wire{background:var(--vx-void);border:1px solid var(--vx-line);border-radius:10px;padding:14px;margin:6px 0 14px;}
.vest-fund__addrlabel{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--vx-muted);margin-bottom:8px;}
.vest-fund__addrbox{display:flex;gap:8px;align-items:center;}
.vest-fund__addrbox code{flex:1;font-family:var(--vx-mono);font-size:.8rem;word-break:break-all;color:var(--vx-aqua);}
.vest-fund__hint{display:block;font-size:.74rem;color:var(--vx-muted);margin-top:8px;}
.vest-fund__wirerow{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--vx-line);font-size:.84rem;}
.vest-fund__wirerow:last-child{border-bottom:none;}
.vest-fund__wirerow span{color:var(--vx-muted);}
.vest-fund__wirerow code{font-family:var(--vx-mono);color:var(--vx-ink);text-align:right;}
.vest-fund__msg{font-size:.84rem;min-height:1.1em;margin:10px 0 0;}
.vest-fund__msg.is-err{color:var(--vx-down);}.vest-fund__msg.is-ok{color:var(--vx-up);}
.vest-fund__note{font-size:.72rem;color:var(--vx-muted);text-align:center;margin:10px 0 0;}
.vest-fund__proc,.vest-fund__done{text-align:center;padding:26px 10px;}
.vest-fund__proc h2,.vest-fund__done h2{font-family:var(--vx-display);margin:16px 0 6px;}
.vest-spin{width:44px;height:44px;border-radius:50%;border:3px solid var(--vx-line2);border-top-color:var(--vx-aqua);margin:0 auto;animation:vest-spin 0.8s linear infinite;}
@keyframes vest-spin{to{transform:rotate(360deg);}}
.vest-fund__check{width:56px;height:56px;border-radius:50%;background:rgba(52,211,153,0.16);color:var(--vx-up);display:flex;align-items:center;justify-content:center;font-size:1.8rem;margin:0 auto 4px;}
.vest-fund__done .vest-btn{margin-top:16px;}
@media(max-width:520px){
	.vest-fund{padding:0;}
	.vest-fund__box{max-width:none;max-height:100vh;height:100vh;border-radius:0;padding:22px 18px;}
	.vest-fund__methods{grid-template-columns:1fr;}
}

/* crypto deposit QR (owner supplies the image at assets/images/deposit-qr.png) */
.vest-fund__qr{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:12px;}
.vest-fund__qr img{width:150px;height:150px;border-radius:10px;background:#fff;padding:8px;object-fit:contain;}
.vest-fund__qrlabel{font-size:.72rem;color:var(--vx-muted);}
.vest-fund__qr.is-missing img{display:none;}
.vest-fund__qr.is-missing::before{content:"QR code";display:flex;align-items:center;justify-content:center;width:150px;height:150px;border:1px dashed var(--vx-line2);border-radius:10px;color:var(--vx-muted);font-size:.78rem;}

/* proof-of-payment upload step (Phase 7) */
.vest-fund__upload{display:flex;flex-direction:column;align-items:center;gap:5px;padding:26px 16px;border:1.5px dashed var(--vx-line2);border-radius:12px;cursor:pointer;text-align:center;transition:border-color .12s,background .12s;margin-bottom:12px;}
.vest-fund__upload:hover{border-color:var(--vx-aqua);background:var(--vx-void);}
.vest-fund__upload.has-file{border-style:solid;border-color:var(--vx-up);}
.vest-fund__uploadico{font-size:1.6rem;color:var(--vx-aqua);}
.vest-fund__uploadt{font-weight:600;font-size:.9rem;}
.vest-fund__uploadhint{font-size:.72rem;color:var(--vx-muted);}
.vest-fund__preview{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:12px;}
.vest-fund__preview img{max-width:100%;max-height:180px;border-radius:10px;border:1px solid var(--vx-line);}
.vest-fund__preview span{font-size:.74rem;color:var(--vx-muted);word-break:break-all;}

/* watch star + alert setter + screener + learn (Phase 7) */
.vest-inst__actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;}
.vest-star{display:inline-flex;align-items:center;gap:6px;background:var(--vx-void);border:1px solid var(--vx-line);color:var(--vx-muted);font:inherit;font-size:.8rem;padding:6px 12px;border-radius:7px;cursor:pointer;}
.vest-star:hover{border-color:var(--vx-amber);color:var(--vx-ink);}
.vest-star.is-on{border-color:var(--vx-amber);color:var(--vx-amber);}
.vest-star__ico{font-size:.95rem;}
.vest-alertset{display:flex;align-items:center;gap:6px;}
.vest-alertset select,.vest-alertset input{background:var(--vx-void);border:1px solid var(--vx-line);color:var(--vx-ink);font:inherit;font-size:.8rem;padding:6px 8px;border-radius:7px;outline:none;}
.vest-alertset input{width:96px;}
.vest-alertset select:focus,.vest-alertset input:focus{border-color:var(--vx-aqua);}
.vest-screener{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;background:var(--vx-panel);border:1px solid var(--vx-line);border-radius:10px;padding:14px 16px;margin-bottom:14px;}
.vest-screener .vest-field{margin-bottom:0;min-width:140px;}
.vest-learn{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;}
.vest-learn__card{padding:18px 20px;}
.vest-learn__card h2{margin-bottom:8px;}
.vest-learn__card p{font-size:.9rem;line-height:1.55;}
@media(max-width:520px){ .vest-inst__actions{width:100%;} .vest-alertset{width:100%;} .vest-alertset input{flex:1;} }

/* mobile overflow fix: let chart card + toolbar shrink and wrap (Phase 8) */
.vest-inst__grid{min-width:0;}
.vest-inst__grid > *{min-width:0;}
.vest-inst__chart{min-width:0;overflow:hidden;}
.vest-inst__chart canvas{max-width:100%;}
@media(max-width:1024px){
	.vest-chart-head{flex-direction:column;align-items:stretch;gap:8px;}
	.vest-chart-tools{flex-wrap:wrap;}
	.vest-chartbar{flex-wrap:wrap;}
	.vest-chart-readout{white-space:normal;}
}

/* sidebar brand: one line, no wrap (Capital Grid) */
.vest-side__brand{white-space:nowrap;}
.vest-side__wm{white-space:nowrap;}

/* Homepage laptop-mockup hero + live mini dashboard (Capital Grid redesign) */
.cg-hero .vest-hero__inner{align-items:center;}
.cg-hero__badges{display:flex;flex-wrap:wrap;align-items:center;margin-top:24px;}
.cg-badge{color:var(--vx-muted);font-size:13px;font-weight:500;}
.cg-badge:not(:last-child)::after{content:"\00b7";margin:0 10px;color:rgba(255,255,255,0.28);}
.cg-laptop{position:relative;width:100%;max-width:560px;margin-left:auto;}
.cg-laptop__screen{background:#0d0f18;border:1px solid var(--vx-line2);border-radius:14px 14px 4px 4px;padding:10px;box-shadow:0 34px 80px -30px rgba(0,0,0,.85);}
.cg-laptop__base{height:14px;background:linear-gradient(#1a1d2b,#0f111a);border:1px solid var(--vx-line2);border-top:none;border-radius:0 0 14px 14px;margin:0 -22px;position:relative;}
.cg-laptop__notch{position:absolute;top:0;left:50%;transform:translateX(-50%);width:76px;height:6px;background:rgba(0,0,0,.45);border-radius:0 0 7px 7px;}
.cg-mini{background:var(--vx-void);border-radius:8px;padding:14px;}
.cg-mini__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:12px;}
.cg-mini__brand{font-family:var(--vx-display);font-weight:600;color:var(--vx-ink);display:flex;align-items:center;gap:7px;}
.cg-mini__dot{width:8px;height:8px;border-radius:2px;background:var(--vx-aqua);}
.cg-mini__nlv{color:var(--vx-muted);}
.cg-mini__nlv b{color:var(--vx-ink);font-weight:600;}
.cg-mini__charthead{display:flex;align-items:baseline;gap:10px;margin-bottom:2px;}
.cg-mini__sym{font-family:var(--vx-mono);font-weight:700;color:var(--vx-aqua);font-size:14px;}
.cg-mini__px{color:var(--vx-ink);font-size:15px;}
.cg-mini__chg{font-size:12px;}
.cg-mini__chart canvas{width:100%;display:block;}
.cg-mini__rows{margin-top:12px;display:flex;flex-direction:column;gap:1px;}
.cg-mini__row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:8px;border-radius:6px;font-size:13px;transition:background .12s;}
.cg-mini__row:hover{background:var(--vx-panel);}
.cg-mini__rsym{font-family:var(--vx-mono);color:var(--vx-ink);}
.cg-mini__rchg{font-size:12px;text-align:right;min-width:58px;}
@media(max-width:900px){ .cg-laptop{max-width:520px;margin:10px auto 0;} }

/* card entrance/hover polish */
.vest-classcard,.vest-feature{will-change:transform;}
.vest-feature{transition:transform .14s ease,border-color .14s ease;}
.vest-feature:hover{transform:translateY(-3px);}

/* Laptop 3D perspective — angled sideways, tipped from above, keyboard deck hint */
.cg-laptop{ transform: perspective(2000px) rotateY(-13deg) rotateX(5deg); transform-origin:center; transition:transform .5s cubic-bezier(.2,.7,.2,1); }
.cg-laptop:hover{ transform: perspective(2000px) rotateY(-5deg) rotateX(2deg); }
.cg-laptop__screen{ box-shadow:-34px 46px 100px -34px rgba(0,0,0,.9); }
.cg-laptop__base{ height:22px; margin:0 -28px; background:linear-gradient(#242736,#12141d); }
.cg-laptop__base::after{ content:""; position:absolute; left:50%; bottom:6px; transform:translateX(-50%); width:92px; height:9px; background:rgba(255,255,255,.07); border-radius:0 0 4px 4px; } /* trackpad */
@media(max-width:900px){ .cg-laptop{ transform:none; } .cg-laptop:hover{ transform:none; } }
.cg-mini__name{color:var(--vx-muted);font-size:12px;margin-right:auto;}

/* Learn: clickable cards + article view */
.vest-learn__card{display:block;text-decoration:none;transition:transform .14s ease,border-color .14s ease;}
.vest-learn__card:hover{transform:translateY(-3px);border-color:rgba(45,212,191,0.4);}
.vest-learn__read{display:inline-block;margin-top:12px;color:var(--vx-aqua);font-size:.82rem;font-weight:600;}
.vest-article{max-width:720px;}
.vest-article__back{display:inline-block;color:var(--vx-muted);text-decoration:none;font-size:.86rem;margin-bottom:14px;}
.vest-article__back:hover{color:var(--vx-aqua);}
.vest-article__body{margin-top:8px;}
.vest-article__body p{color:var(--vx-ink);font-size:1rem;line-height:1.7;margin:0 0 18px;}
.vest-article__cta{margin-top:10px;}
