/* HN Market: shared foundation, independent of financial logic. */
:root {
  --hn-brand: #087f5b;
  --hn-brand-deep: #064e3b;
  --hn-brand-soft: #e8f5ee;
  --hn-canvas: #f6f8f7;
  --hn-surface: #fff;
  --hn-text: #14251f;
  --hn-secondary: #52665b;
  --hn-border: #dfe8e3;
  --hn-focus: #0d8c69;
  --hn-warning: #9b5706;
  --hn-error: #b33434;
  --hn-radius-control: 8px;
  --hn-radius-card: 14px;
  --hn-space-1: 4px;
  --hn-space-2: 8px;
  --hn-space-3: 12px;
  --hn-space-4: 16px;
  --hn-space-6: 24px;
  --hn-space-8: 32px;
  --hn-space-12: 48px;
  --hn-control-height: 44px;
  --hn-shadow: 0 4px 20px rgb(20 37 31 / 6%);
}
.hn-ui { font-family: Manrope, system-ui, 'Segoe UI', sans-serif; }
.hn-ui h1, .hn-ui h2, .hn-ui h3, .hn-ui h4, .hn-ui h5, .hn-ui h6 {
  font-family: Manrope, system-ui, 'Segoe UI', sans-serif;
  text-wrap: balance;
}
.hn-ui :focus-visible { outline: 3px solid var(--hn-focus); outline-offset: 3px; }
.hn-ui .form-control, .hn-ui .form-select { min-height: var(--hn-control-height); }
.hn-ui .btn { min-height: var(--hn-control-height); }
.hn-ui textarea.form-control { min-height: 120px; }
.hn-ui .table-responsive { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }
.hn-ui .table, .hn-ui .hn-amount, .hn-ui .hn-stat strong,
.hn-ui .hn-activity-value, .hn-ui .hn-admin-focus strong {
  font-variant-numeric: tabular-nums;
}
.hn-ui .hn-amount, .hn-ui .hn-stat strong { overflow-wrap: anywhere; white-space: normal; }
.hn-ui .hn-skip-link { position: fixed; top: 8px; left: 8px; z-index: 9999; transform: translateY(-160%); }
.hn-ui .hn-skip-link:focus { transform: none; padding: 12px 16px; color: #fff; background: var(--hn-brand-deep); border-radius: var(--hn-radius-control); }
.hn-ui .dropdown-menu { max-width: calc(100vw - 24px); }
.hn-ui .hn-chart-data { margin-top: 16px; border-top: 1px solid var(--hn-border); }
.hn-ui .hn-chart-data summary { min-height: 44px; padding: 12px 0; color: var(--hn-brand); font-weight: 600; cursor: pointer; }
.hn-ui .hn-mobile-nav-trigger { display: none; }
.hn-ui .mobile-bottom-menu-wrapper { padding-bottom: env(safe-area-inset-bottom, 0px); }
.hn-update-notice { position: fixed; z-index: 1100; right: 16px; bottom: calc(80px + env(safe-area-inset-bottom, 0px)); max-width: min(400px, calc(100vw - 32px)); padding: 20px; border: 1px solid var(--hn-border); border-radius: 14px; background: var(--hn-surface); color: var(--hn-text); box-shadow: var(--hn-shadow); }
.hn-update-notice p { margin: 0 0 12px; font-size: 14px; line-height: 1.6; }
.hn-update-notice button { min-height: 44px; margin: 4px 8px 0 0; padding: 8px 14px; border: 1px solid var(--hn-border); border-radius: 8px; background: var(--hn-surface); color: var(--hn-text); font: inherit; cursor: pointer; }
.hn-update-notice button:first-of-type { background: var(--hn-brand); border-color: var(--hn-brand); color: #fff; }
@media (max-width: 767px) {
  .hn-ui .form-control, .hn-ui .form-select { font-size: 16px; }
  .hn-ui .hn-hero-grid, .hn-ui .hn-lower-grid { grid-template-columns: minmax(0, 1fr); }
  .hn-ui .hn-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hn-ui .hn-balance { padding: 24px; }
  .hn-ui .hn-balance-bottom { flex-wrap: wrap; }
}
@media (max-width: 359px) {
  .hn-ui .hn-stats { grid-template-columns: minmax(0, 1fr); }
  .hn-ui .hn-amount { font-size: 34px; letter-spacing: -1px; }
}
@media (prefers-reduced-motion: reduce) {
  .hn-ui { scroll-behavior: auto; }
  .hn-ui *, .hn-ui *::before, .hn-ui *::after { animation: none; transition: none; }
}
