/* Shared application surfaces, aligned with the approved Mygeste home page.
   Page templates keep their existing content, controls and event bindings. */
.mygeste-app {
  --app-ink: #102142;
  --app-muted: #64748b;
  --graphite: var(--app-ink);
  --muted: var(--app-muted);
  --green: var(--up);
  --red: var(--down);
  --amber: #b45309;
  color: var(--app-ink);
  font-size: .875rem;
  line-height: 1.5;
}
:root[data-theme='dark'] .mygeste-app {
  --app-ink: #e5edf9;
  --app-muted: #a2b1c7;
  --up: #35d794;
  --down: #ff6c78;
  --amber: #fbbf24;
  color-scheme: dark;
}
.mygeste-app main.container { padding-top: 12px; padding-bottom: 4px; }
.mygeste-app .card { margin: 12px 0; box-shadow: none; }
.mygeste-app .card-header { padding: 13px 17px; }
.mygeste-app .card-body { padding: 16px 17px; min-width: 0; }
.mygeste-app :is(.card-title, .asset-section-title, .section-title, .form-section-title) {
  font-size: .82rem;
  letter-spacing: .045em;
  color: var(--app-ink);
}
.mygeste-app .card-header :is(h2, h3, h4) { margin: 0; }
.mygeste-app :is(.card h3, .asset-subsection-title, .security-option-title, .support-category-item h3) {
  letter-spacing: .045em;
  line-height: 1.4;
}
.mygeste-app :is(.wallets-hero, .wallet-summary-grid, .security-summary-grid) { margin-bottom: 12px; }
.mygeste-app .wallets-hero { align-items: center; padding: 8px 0 4px; }
.mygeste-app :is(.wallets-page-title, .asset-hero-title) {
  font-size: 1.35rem;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: -.025em;
}
.mygeste-app .wallets-page-subtitle { margin-top: 6px; font-size: .82rem; line-height: 1.6; }
.mygeste-app :is(.wallet-summary-grid, .security-summary-grid) { gap: 10px; }
.mygeste-app :is(.wallet-stat-card, .security-metric) {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 14px 16px;
  min-width: 0;
  min-height: 92px;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--panel);
  box-shadow: none;
}
.mygeste-app :is(.wallet-stat-label, .metric .label) {
  margin: 0;
  color: var(--app-muted);
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .06em;
}
.mygeste-app :is(.wallet-stat-value, .metric .value) {
  margin-top: 6px;
  font-size: 1.35rem;
  line-height: 1.3;
  letter-spacing: -.025em;
  font-variant-numeric: tabular-nums;
}
.mygeste-app .metric .security-metric-value--sm { font-size: 1rem; }
.mygeste-app :is(.wallet-stat-note, .metric .delta) { margin-top: 4px; font-size: .75rem; color: var(--app-muted); }
.mygeste-app :is(.wallets-main-grid, .wallet-charts-grid, .wallets-balance-grid,
  .open-orders-main-grid, .my-assets-overview-grid, .my-assets-main-grid,
  .my-fees-overview-grid, .support-main-grid, .security-grid) { gap: 12px; margin-bottom: 12px; }
.mygeste-app :is(.wallets-main-grid, .wallet-charts-grid, .wallets-balance-grid,
  .open-orders-main-grid, .my-assets-overview-grid, .my-assets-main-grid,
  .my-fees-overview-grid, .support-main-grid, .security-grid) > * { min-width: 0; }
.mygeste-app :is(.wallets-main-grid, .wallet-charts-grid, .wallets-balance-grid,
  .open-orders-main-grid, .my-assets-overview-grid, .my-assets-main-grid,
  .my-fees-overview-grid, .support-main-grid, .security-grid) > .card { margin: 0; }
.mygeste-app :is(.open-orders-side-column, .my-assets-side-column, .support-side-column) { gap: 12px; }
.mygeste-app :is(.open-orders-side-column, .my-assets-side-column, .support-side-column) > .card { margin: 0; }
.mygeste-app .security-inner-card { margin: 0 0 12px; }
.mygeste-app :is(.wallet-panel-kv, .wallet-funding-box, .wallet-legend-item,
  .security-option-box, .security-protection-box, .support-category-item, .profile-photo-card) {
  border-radius: 4px;
  box-shadow: none;
}
.mygeste-app :is(.wallet-panel-kv span, .wallet-funding-label, .wallet-donut-center-label) {
  font-size: .7rem;
  letter-spacing: .045em;
}
.mygeste-app :is(.wallet-panel-kv strong, .wallet-funding-value) { font-size: .875rem; font-variant-numeric: tabular-nums; }
.mygeste-app .wallet-chart-body { grid-template-columns: minmax(160px, .8fr) minmax(0, 1fr); gap: 16px; }
.mygeste-app .wallet-donut { width: min(100%, 200px); height: auto; aspect-ratio: 1; }
.mygeste-app .wallet-legend { width: 100%; min-width: 0; }
.mygeste-app .wallet-legend-item { grid-template-columns: 10px minmax(0, 1fr) auto; gap: 8px; font-size: .8rem; }
.mygeste-app .wallet-legend-item span { overflow-wrap: anywhere; }
.mygeste-app :is(.open-orders-note-list p, .support-category-item p) { font-size: .82rem; line-height: 1.6; }
.mygeste-app :is(.security-mini-list > div, .security-check, .profile-delete-check) { font-size: .82rem; }

/* Form controls share the compact, square geometry used by market filters. */
.mygeste-app :is(.input, .select, .textarea, .asset-input, .btn, .button, .segment-btn, .chart-tf-btn) {
  font-family: inherit;
  font-size: .8rem;
  line-height: 1.4;
  border-radius: 4px;
}
.mygeste-app :is(.input, .select, .textarea, .asset-input) { padding: 9px 11px; min-height: 38px; }
.mygeste-app :is(.input, .select, .textarea)::placeholder { color: var(--app-muted); opacity: 1; }
.mygeste-app :is(.btn, .button) { padding: 8px 12px; min-height: 36px; font-weight: 600; text-decoration: none; }
.mygeste-app .btn { color: var(--app-ink); }
.mygeste-app :is(.button.secondary, .btn, .segment-btn):hover { border-color: var(--accent); }
.mygeste-app :is(button, a, input, select, textarea):focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.mygeste-app :is(.button, .btn):disabled { opacity: .55; cursor: not-allowed; }
.mygeste-app :is(.label, .profile-label, .asset-form-label, .kv > label) {
  font-size: .75rem;
  line-height: 1.5;
  color: var(--app-muted);
  font-weight: 600;
  letter-spacing: .02em;
}
.mygeste-app :is(.label, .profile-label) { margin-bottom: 6px; }
.mygeste-app :is(.helper, .profile-file-name) { font-size: .75rem; line-height: 1.6; }
.mygeste-app .helper a { color: var(--accent); text-underline-offset: 3px; }
.mygeste-app .actions { flex-wrap: wrap; }
.mygeste-app .profile-top-layout { gap: 24px; }
.mygeste-app .profile-stack { gap: 14px; }
.mygeste-app .profile-subtitle { font-size: .82rem; margin: 12px 0 0; }
.mygeste-app .profile-photo-placeholder { font-size: .75rem; }
.mygeste-app :is(.grid-2, .grid-3) > * { min-width: 0; }
.mygeste-app form > .grid-2 + .grid-2 { margin-top: 12px; }
.mygeste-app input[type='file'] { max-width: 100%; }
.mygeste-app input[type='file']::file-selector-button {
  font: inherit; margin-right: 10px; padding: 6px 10px; cursor: pointer;
  color: var(--app-ink); background: var(--panel-subtle); border: 1px solid var(--border); border-radius: 3px;
}

/* Wide data stays scrollable inside its panel instead of stretching the page. */
.mygeste-app :is(.table-wrap, .open-orders-table-wrap, .my-assets-table-wrap, .card-body:has(> .table)) {
  max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain;
}
.mygeste-app .table { font-size: .81rem; font-variant-numeric: tabular-nums; }
.mygeste-app .table :is(th, td) { padding: 10px 16px; }
.mygeste-app .table thead th { font-size: .68rem; font-weight: 600; letter-spacing: .045em; color: var(--app-muted); white-space: nowrap; }
.mygeste-app .table tr:last-child td { border-bottom: 0; }
.mygeste-app .table tbody tr:hover { background: var(--panel-subtle); }
.mygeste-app :is(.badge, .order-side-tag, .order-status-tag, .fee-type-tag, .support-priority-tag) {
  border-radius: 3px; font-size: .7rem; letter-spacing: .025em; padding: 4px 8px; line-height: 1.4;
}
:root[data-theme='dark'] .mygeste-app :is(.badge.upcoming, .support-priority-tag--low, .support-status-tag--awaiting) { color: var(--amber); }
:root[data-theme='dark'] .mygeste-app .badge.live { color: var(--up); }

/* The property workspace uses the same panels, ink and market colours. */
.mygeste-app :is(.asset-page, .asset-top-grid, .asset-bottom-grid, .asset-stack, .asset-details-split) { gap: 12px; }
.mygeste-app .asset-page .card { margin: 0; }
.mygeste-app .asset-top-grid { grid-template-columns: minmax(260px, .9fr) minmax(290px, 1fr) minmax(380px, 1.45fr); }
.mygeste-app :is(.asset-top-grid, .asset-bottom-grid) > * { min-width: 0; }
.mygeste-app .asset-description-copy { font-size: .875rem; }
.mygeste-app .asset-details-table th { width: 42%; }
.mygeste-app .asset-details-table :is(th, td) { padding: 10px 12px; overflow-wrap: anywhere; }
.mygeste-app .asset-details-table th { font-size: .75rem; text-transform: none; }
.mygeste-app .gallery-grid { gap: 10px; }
.mygeste-app .gallery-item { box-shadow: none; border: 1px solid var(--border); }
.mygeste-app .segment-btn { min-height: 34px; padding: 7px 9px; }
.mygeste-app .segment-btn.active { color: var(--accent); background: var(--panel-subtle); box-shadow: none; }
.mygeste-app .segment-btn.buy.active { color: var(--up); border-color: var(--up); }
.mygeste-app .segment-btn.sell.active { color: var(--down); border-color: var(--down); }
.mygeste-app .trading-surface {
  --terminal-bg: var(--panel); --terminal-bg-2: var(--panel-subtle);
  --terminal-canvas: var(--panel); --terminal-toolbar-bg: var(--panel);
  --terminal-text: var(--app-ink); --terminal-muted: var(--app-muted); --terminal-axis: var(--app-muted);
  --terminal-line: var(--border); --terminal-border: var(--border); --terminal-grid: var(--border);
  --terminal-green: var(--up); --terminal-red: var(--down); --terminal-amber: var(--amber);
  --terminal-bid: var(--up); --terminal-ask: var(--down);
  --terminal-price-line: var(--accent); --terminal-price-tag: var(--accent); --terminal-price-tag-text: #fff;
}
/* More specific than the property's legacy dark palette. */
:root[data-theme='dark'] .mygeste-app .trading-surface {
  --terminal-bg: var(--panel); --terminal-bg-2: var(--panel-subtle);
  --terminal-canvas: var(--panel); --terminal-toolbar-bg: var(--panel);
  --terminal-text: var(--app-ink); --terminal-muted: var(--app-muted); --terminal-axis: var(--app-muted);
  --terminal-line: var(--border); --terminal-border: var(--border); --terminal-grid: var(--border);
  --terminal-green: var(--up); --terminal-red: var(--down); --terminal-amber: var(--amber);
  --terminal-bid: var(--up); --terminal-ask: var(--down);
  --terminal-price-line: var(--accent); --terminal-price-tag: var(--accent); --terminal-price-tag-text: #fff;
}
.mygeste-app .terminal-panel { background: var(--panel); }
.mygeste-app .orderbook-table .ob-col-size { padding-left: 4px; padding-right: 4px; white-space: nowrap; font-size: .72rem; }
.mygeste-app :is(.terminal-pill, .chart-tf-btn, .chart-overlay-stats, .trade-row, .ob-depth) { border-radius: 3px; }
.mygeste-app .chart-tf-btn.active { background: var(--accent); border-color: var(--accent); color: #fff; }
.mygeste-app .chart-controls-overlay { gap: 4px; }
.mygeste-app .chart-overlay-stats { top: 49px; left: 0; right: auto; max-width: 100%; justify-content: flex-start; gap: 8px; }
.mygeste-app .preview-grid .thumb { border-color: var(--border); border-radius: 4px; background: var(--panel-subtle); }

@media (min-width: 1700px) {
  .mygeste-app main.container { max-width: 1700px; margin-left: auto; margin-right: auto; }
}
@media (max-width: 1180px) {
  .mygeste-app :is(.asset-top-grid, .asset-bottom-grid) { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 1100px) {
  .mygeste-app .wallet-chart-body { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .mygeste-app .wallets-hero { align-items: flex-start; }
  .mygeste-app .grid-3 { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 700px) {
  .mygeste-app :is(.grid-2, .kv, .asset-details-split) { grid-template-columns: minmax(0, 1fr); }
  .mygeste-app .kv > div:empty { display: none; }
  .mygeste-app .card-body { padding: 14px; }
  .mygeste-app .profile-photo-card { grid-template-columns: 84px minmax(0, 1fr); gap: 12px; padding: 12px; }
  .mygeste-app .profile-photo-preview-wrap { width: 84px; height: 84px; }
  .mygeste-app .profile-file-name { max-width: 100%; }
}
@media (max-width: 380px) {
  .mygeste-app .profile-photo-card { grid-template-columns: minmax(0, 1fr); }
  .mygeste-app :is(.trade-row, .trades-head) { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr) minmax(0, .8fr); gap: 4px; }
}

/* Semantic dark text links. Brand/filled CTA colours and all light styles stay intact.
   Unvisited and visited links deliberately share the same accessible text colour. */
:root[data-theme='dark']{--text-link:#A7B9FF;--text-link-hover:#C7D3FF;--text-link-focus:#A7B9FF}
:root[data-theme='dark'] :is(.mygeste-app,.mygeste-home) :is(.mg-info a:not(.button):not(.btn),main a:not([class]):not([role="button"]),.mg-terms a,.helper a,.mg-reset-card a,.mg-login-help a,.signup-login a,.wallet-table-actions a:not(.button):not(.btn),.am-row-actions a:not(.button):not(.btn),.terminal-order-form a,.guest-order34-signup,.home-page section[aria-labelledby="home-platform-title"] .card-body a){color:var(--text-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em}
:root[data-theme='dark'] :is(.mygeste-app,.mygeste-home) :is(.mg-info a:not(.button):not(.btn),main a:not([class]):not([role="button"]),.mg-terms a,.helper a,.mg-reset-card a,.mg-login-help a,.signup-login a,.wallet-table-actions a:not(.button):not(.btn),.am-row-actions a:not(.button):not(.btn),.terminal-order-form a,.guest-order34-signup,.home-page section[aria-labelledby="home-platform-title"] .card-body a):hover{color:var(--text-link-hover);text-decoration-thickness:2px}
:root[data-theme='dark'] :is(.mygeste-app,.mygeste-home) :is(.mg-info .mg-info-nav a:not(.button):not(.btn),.site-header .nav-link,.site-header .user-menu-link,.mg-footer-links a,.footer-links a,.mg-socials a,.mg-store){color:var(--text-link);text-decoration:none;text-underline-offset:.18em}
:root[data-theme='dark'] :is(.mygeste-app,.mygeste-home) :is(.mg-info .mg-info-nav a:not(.button):not(.btn),.site-header .nav-link,.site-header .user-menu-link,.mg-footer-links a,.footer-links a,.mg-socials a,.mg-store):hover{color:var(--text-link-hover);text-decoration:underline;text-decoration-thickness:2px}
:root[data-theme='dark'] :is(.mygeste-app,.mygeste-home) :is(.mg-info .mg-info-nav a:not(.button):not(.btn),.site-header .nav-link,.site-header .user-menu-link,.mg-footer-links a,.footer-links a,.mg-socials a,.mg-store)[aria-current="page"]{color:var(--text-link);font-weight:700;text-decoration:underline;text-decoration-thickness:2px;background:var(--panel-subtle)}
:root[data-theme='dark'] :is(.mygeste-app,.mygeste-home) .site-header .user-menu-link[aria-current="page"]{box-shadow:inset 2px 0 var(--text-link)}
:root[data-theme='dark'] :is(.mygeste-app,.mygeste-home) .mg-footer a:not(.button):not(.btn):hover{color:var(--text-link-hover)}
:root[data-theme='dark'] :is(.mygeste-app,.mygeste-home) .home-view-link,:root[data-theme='dark'] :is(.mygeste-app,.mygeste-home) .home-view-link:visited{color:var(--text-link);border-color:var(--text-link);text-decoration:none}
:root[data-theme='dark'] :is(.mygeste-app,.mygeste-home) .home-view-link:hover{color:#fff;background:var(--accent);border-color:var(--accent);text-decoration:none}
:root[data-theme='dark'] :is(.mygeste-app,.mygeste-home) .home-property:hover strong{color:var(--text-link-hover)}
:root[data-theme='dark'] :is(.mygeste-app,.mygeste-home) a[href]:focus-visible{outline:3px solid var(--text-link-focus)!important;outline-offset:3px}
