/* Shared responsive rules; loaded after each page's own styles. */
html { -webkit-text-size-adjust:100%; scroll-padding-top:132px; }
img { max-width:100%; }
button, a, input, select { -webkit-tap-highlight-color:rgba(233,79,141,.16); }
:focus-visible { outline:3px solid var(--pink-deep,#b82769); outline-offset:3px; }
.pair-cell > div:last-child, .terminal-pair > div:last-child { min-width:0; }
.pair-cell .avatar, .modal-avatar, .brand-mark { flex-shrink:0; }
body.kaf-dialog-open { overflow:hidden; }
.contract-row[hidden], .group[hidden] { display:none; }
.kaf-side-layout .toolbar { top:calc(132px + env(safe-area-inset-top,0px)); }
.token-modal, .leaderboard-profile-dialog, .gacha-modal {
  max-height:calc(var(--kaf-visible-height,100dvh) - 32px);
  overflow-y:auto; overscroll-behavior:contain;
}
.modal-backdrop, .leaderboard-profile-backdrop, .gacha-modal-backdrop {
  top:var(--kaf-visible-top,0px); bottom:auto;
  height:var(--kaf-visible-height,100dvh);
}
@media(max-width:1249px) {
  body.kaf-nav-open { overflow:hidden; }
  .kaf-side-layout .kaf-side-nav {
    top:calc(82px + env(safe-area-inset-top,0px));
    max-height:calc(var(--kaf-visible-height,100dvh) - 98px - env(safe-area-inset-top,0px));
    overscroll-behavior:contain;
    padding-bottom:max(13px,env(safe-area-inset-bottom,0px));
  }
  .kaf-side-layout .kaf-nav-scrim { top:calc(72px + env(safe-area-inset-top,0px)); }
  .kaf-side-layout .nav { padding-top:env(safe-area-inset-top,0px); }
  .kaf-side-layout .kaf-ca-strip { top:calc(72px + env(safe-area-inset-top,0px)); }
  .kaf-side-layout .nav-inner { min-width:0; }
  .kaf-side-layout .brand { min-width:0; }
  .kaf-side-layout .brand > span { min-width:0; }
  .kaf-side-layout .kaf-top-actions { flex-shrink:0; }
  .kaf-side-layout .kaf-menu-toggle { min-width:44px; width:44px; height:44px; }
  body.kaf-nav-open .kaf-side-nav > a:not(.kaf-side-brand),
  body.kaf-nav-open .kaf-side-nav .theme-toggle { min-height:44px; }
  .kaf-side-layout .kaf-wallet-panel {
    position:fixed; top:calc(80px + env(safe-area-inset-top,0px)); right:12px;
    max-height:calc(var(--kaf-visible-height,100dvh) - 96px - env(safe-area-inset-top,0px));
    overscroll-behavior:contain;
  }
}
@media(max-width:900px) {
  .modal-close, .gacha-close, .leaderboard-profile-close,
  .kaf-wallet-panel-head button { min-width:44px; min-height:44px; }
  .kaf-wallet-trigger, .kaf-wallet-actions button, .leaderboard-tab,
  .leaderboard-refresh, .leaderboard-profile-button, .chart-tf,
  .fs-btn, .fs-connect, .fs-tab { min-height:44px; }
  input:not([type=radio]):not([type=checkbox]), select,
  .compact-basket input.basket-amount, html .leaderboard-profile-dialog input { font-size:16px; }
  .compact-basket .basket-pay label { min-height:44px; display:flex; align-items:center; }
  .compact-basket .basket-action { min-height:44px; }
  .chart-toolbar { flex-wrap:wrap; }
  .chart-toolbar button { min-height:44px; min-width:44px; }
  .section-head, .group-head, .leaderboard-toolbar { flex-wrap:wrap; }
  .leaderboard-toolbar > div { min-width:0; }
  .leaderboard-token-title { overflow-wrap:anywhere; }
  .fs-row, .fs-event { min-width:0; }
  .fs-person, .fs-score, .fs-gain { min-width:0; overflow-wrap:anywhere; }
  .fs-cardtop, .fs-headrow, .fs-meta { flex-wrap:wrap; }
  .fs-cardtop > *, .fs-tabs, .fs-stat { min-width:0; }
  .fs-stat strong { overflow-wrap:anywhere; }
}
@media(max-width:760px) {
  .wrap { padding-left:env(safe-area-inset-left,0px); padding-right:env(safe-area-inset-right,0px); }
  .kaf-side-layout .brand { gap:7px; }
  .kaf-side-layout .brand > span { font-size:13px; line-height:1.2; }
  .kaf-side-layout .brand-mark { width:36px; height:36px; }
  .kaf-side-layout .kaf-top-actions { gap:6px; margin-left:auto; }
  .kaf-side-layout .nav-inner { gap:6px; }
  .kaf-wallet-trigger { padding:9px 10px; font-size:12px; gap:6px; }
  .market-overview { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:14px; }
  .market-overview .overview-stat { min-width:0; }
  .market-overview .overview-controls, .market-overview .overview-note { grid-column:1/-1; }
  .overview-stat strong, .basket-error, .basket-summary, .basket-note { overflow-wrap:anywhere; }
  .overview-controls .market-control { max-width:100%; min-width:0; min-height:44px; }
  .compact-basket .basket-head h3 { flex-wrap:wrap; }
  /* Each market becomes a readable card, preserving all of its metrics. */
  .market-table .row.header { display:none; }
  .market-table .row[data-token] {
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    grid-template-areas:"pair price" "cap volume" "liquidity change" "actions actions";
    gap:12px 14px; padding:16px;
  }
  .market-table .row[data-token] > :nth-child(n) { display:block; min-width:0; }
  .market-table .row[data-token] > :nth-child(1) { grid-area:pair; display:flex; }
  .market-table .row[data-token] > :nth-child(2) { grid-area:price; text-align:right; }
  .market-table .row[data-token] > :nth-child(3) { grid-area:change; text-align:right; }
  .market-table .row[data-token] > :nth-child(4) { grid-area:cap; }
  .market-table .row[data-token] > :nth-child(5) { grid-area:volume; text-align:right; }
  .market-table .row[data-token] > :nth-child(6) { grid-area:liquidity; }
  .market-table .row[data-token] > :nth-child(7) { grid-area:actions; display:flex; justify-content:flex-end; flex-wrap:wrap; gap:8px; }
  .market-table .row[data-token] > :nth-child(2)::before { content:"Price in KITTY"; }
  .market-table .row[data-token] > :nth-child(3)::before { content:"24h change"; }
  .market-table .row[data-token] > :nth-child(4)::before { content:"Market cap"; }
  .market-table .row[data-token] > :nth-child(5)::before { content:"24h volume"; }
  .market-table .row[data-token] > :nth-child(6)::before { content:"Liquidity"; }
  .market-table .row[data-token] > :nth-child(n+2):nth-child(-n+6)::before {
    display:block; margin-bottom:4px; color:var(--muted); font-size:10px; font-weight:700;
  }
  .market-table .pair-cell { align-items:flex-start; gap:8px; }
  .market-table .pair-name { white-space:normal; font-size:13px; overflow-wrap:anywhere; }
  .market-table .pair-symbol { font-size:10px; overflow-wrap:anywhere; }
  .market-table .metric-main { font-size:13px; overflow-wrap:anywhere; }
  .market-table .metric-sub { font-size:11px; overflow-wrap:anywhere; }
  .market-table .token-actions button { min-height:44px; }
  .market-table .token-actions .detail-btn { display:inline-flex; align-items:center; }
  .tax-info { min-height:28px; line-height:1.3; letter-spacing:0; }
  .market-table .tax-tooltip {
    position:fixed; left:16px; right:16px; top:auto;
    bottom:calc(16px + env(safe-area-inset-bottom,0px));
    width:auto; max-height:calc(var(--kaf-visible-height,100dvh) - 40px);
    overflow-y:auto; z-index:1100;
  }
  .market-table .tax-tooltip::before { display:none; }
  .modal-backdrop, .leaderboard-profile-backdrop, .gacha-modal-backdrop {
    padding:12px max(12px,env(safe-area-inset-right,0px)) max(12px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));
  }
  .token-modal, .leaderboard-profile-dialog { padding:20px 16px; border-radius:20px; }
  .token-modal .modal-head { padding-right:46px; }
  .token-modal .modal-title { font-size:20px; overflow-wrap:anywhere; }
  .modal-actions a, .modal-actions button { min-height:44px; }
  .treasury-balance, .treasury-metric strong, .fee-market-name { overflow-wrap:anywhere; }
  .treasury-balance { font-size:clamp(30px,10vw,44px); }
  .fee-ledger-row > * { min-width:0; }
  .fee-market-name strong { white-space:normal; }
  .contract-row .copy { min-height:44px; }
  .group-head > * { min-width:0; }
  .foot, .footer { padding-bottom:calc(28px + env(safe-area-inset-bottom,0px)); }
  .kaf-ca-track { animation:none; will-change:auto; }
  .kaf-ca-viewport { overflow-x:auto; scrollbar-width:none; }
  .kaf-ca-viewport::-webkit-scrollbar { display:none; }
  .kaf-ca-track .kaf-ca-set:nth-child(2) { display:none; }
  .kaf-ca-label { min-height:36px; }
  .kaf-ca-strip::before, .kaf-ca-strip::after { display:none; }
  .kaf-ca-toast { bottom:calc(16px + env(safe-area-inset-bottom,0px)); max-width:calc(100vw - 24px); text-align:center; }
}
@media(max-width:380px) {
  .kaf-side-layout .brand > span { max-width:100px; white-space:normal; font-size:12px; }
  .kaf-side-layout .brand span small { display:none; }
  .kaf-side-layout .brand-mark { width:32px; height:32px; }
  .market-table .row[data-token] { padding:14px 12px; gap:12px 10px; }
  .market-table .pair-cell .avatar { width:32px; height:32px; }
  .leaderboard-row { grid-template-columns:32px minmax(0,1fr) minmax(0,.8fr); gap:8px; }
  .leaderboard-balance strong { max-width:100%; }
  .leaderboard-toolbar-actions { flex-wrap:wrap; }
  .card { padding:22px 18px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}
