/* Dashboard-only styles. Colors, fonts, nav, buttons, type badges and tables come from
   /assets/site.css. */

.dash-head{ padding:2.4rem 0 0; }
.dash-hero h1{ margin-bottom:.4rem; }
.dash-hero .sub{ margin-bottom:1.4rem; }
.dash-main{ padding-top:2rem; padding-bottom:4rem; min-height:60vh; }
.dash-main > .tab-panel{ padding:0; }
.small{ font-size:.85rem; }
.mono{ font-family:var(--font-mono); font-variant-numeric:tabular-nums; }
.muted{ color:var(--ink-soft); }

/* Tabs */
.tabs{ display:flex; gap:.2rem; overflow-x:auto; scrollbar-width:none; }
.tabs::-webkit-scrollbar{ display:none; }
.tab{
  display:inline-flex; align-items:center; gap:.5rem; white-space:nowrap;
  font-family:var(--font-display); font-size:.95rem; font-weight:600;
  background:none; border:0; border-bottom:3px solid transparent; color:var(--ink-soft);
  padding:.8rem 1.05rem; cursor:pointer; border-radius:10px 10px 0 0;
}
.tab svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.tab:hover{ color:var(--ink); background:color-mix(in srgb, var(--surface) 60%, transparent); }
.tab.active{ color:var(--accent); border-bottom-color:var(--accent); background:var(--surface); }

/* Account chip in the nav */
.account{ display:inline-flex; align-items:center; gap:.6rem; }
.account .btn{ padding:.45rem .95rem; }
.account-chip{ display:inline-flex; align-items:center; gap:.5rem; font-family:var(--font-display); font-weight:600; font-size:.88rem; }
.account-chip .avatar{ margin:0; width:30px; height:30px; box-shadow:0 0 0 2px var(--accent); }
@media (max-width:640px){ .account .account-name{ display:none; } }

svg.icon-fill{ width:18px; height:18px; fill:currentColor; }

/* Generic panels */
.panel{
  background:var(--surface); border:1px solid var(--border); border-radius:18px;
  padding:1.3rem 1.4rem; box-shadow:var(--shadow); min-width:0;
}
.panel-head{ display:flex; align-items:baseline; justify-content:space-between; gap:1rem; margin-bottom:.9rem; flex-wrap:wrap; }
.panel-head h3{ font-size:1.05rem; margin:0; }
.section-title{ display:flex; align-items:baseline; justify-content:space-between; gap:1rem; margin:2.4rem 0 1rem; }
.section-title h2{ font-size:1.35rem; margin:0; }
.sub-h{ font-size:.78rem; text-transform:uppercase; letter-spacing:.1em; color:var(--ink-faint); margin:1.2rem 0 .6rem; }
.link-btn{ background:none; border:0; color:var(--accent); font-family:var(--font-display); font-weight:600; cursor:pointer; padding:0; font-size:.9rem; }
.link-btn:hover{ text-decoration:underline; }
.grid-2{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:1rem; margin-top:1rem; }
.hero-grid-2{ display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:1rem; }
.eyebrow-sm{ font-family:var(--font-display); font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }
.empty-note{ grid-column:1 / -1; text-align:center; color:var(--ink-soft); margin:1.2rem 0; }
.error-card{ color:var(--warn); }

/* Progress bars */
.bar{ height:8px; border-radius:999px; background:var(--surface-2); overflow:hidden; flex:1 1 auto; min-width:40px; }
.bar > span{ display:block; height:100%; border-radius:inherit; background:var(--blue); transition:width .6s ease; }
.bar-lg{ height:14px; }
.bar-red > span{ background:linear-gradient(90deg, var(--accent), #ff7a52); }
.bar-gold > span{ background:linear-gradient(90deg, #f5b400, var(--gold)); }
.bar-blue > span{ background:linear-gradient(90deg, var(--blue-strong), var(--blue)); }
.bar-green > span{ background:linear-gradient(90deg, #2f9e5b, #5fd68c); }
.bar-orange > span{ background:linear-gradient(90deg, #e8741c, #ffa257); }
.bar-grey > span{ background:var(--ink-faint); }

/* Loading skeletons */
.skeleton{ border-radius:14px; background:linear-gradient(90deg, var(--surface-2) 25%, var(--surface) 50%, var(--surface-2) 75%); background-size:200% 100%; animation:shimmer 1.3s infinite linear; min-height:64px; }
.skeleton-row{ display:grid; gap:.8rem; grid-template-columns:repeat(auto-fill, minmax(220px,1fr)); }
.skeleton-row .skeleton{ min-height:110px; }
.skeleton-card{ min-height:220px; }
@keyframes shimmer{ to{ background-position:-200% 0; } }

/* Login prompt */
.login-card{
  display:flex; align-items:center; gap:1.4rem; flex-wrap:wrap;
  background:var(--surface); border:1px solid var(--border); border-radius:18px; padding:1.6rem 1.8rem; box-shadow:var(--shadow-lift);
}
.login-card > div:nth-child(2){ flex:1 1 260px; }
.login-card h3{ margin:0 0 .3rem; }
.login-card p{ margin:0; color:var(--ink-soft); }
.login-card .btn svg{ width:18px; height:18px; }

/* Trainer card */
.trainer-card{ position:relative; overflow:hidden; display:flex; flex-direction:column; gap:1rem; }
.trainer-card::after{
  content:""; position:absolute; right:-70px; top:-70px; width:200px; height:200px; border-radius:50%;
  border:26px solid var(--accent-soft); opacity:.8; pointer-events:none;
}
.trainer-top{ display:flex; gap:1rem; align-items:center; position:relative; z-index:1; }
.trainer-avatar{ width:84px; height:84px; flex:none; border-radius:20px; background:var(--surface-2); display:flex; align-items:center; justify-content:center; overflow:hidden; box-shadow:inset 0 0 0 2px var(--border); }
.trainer-avatar img{ width:100%; height:100%; object-fit:contain; }
.trainer-id h2{ font-size:1.6rem; margin:.1rem 0 .4rem; }
.trainer-meta{ display:flex; gap:.4rem; flex-wrap:wrap; }
.meta-chip{ display:inline-flex; align-items:center; gap:.3rem; font-size:.78rem; font-weight:600; color:var(--ink-soft); background:var(--surface-2); border-radius:999px; padding:.2rem .65rem; }
.meta-chip svg{ width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:2; }
.trainer-bio{ margin:0; color:var(--ink-soft); font-style:italic; border-left:3px solid var(--gold); padding-left:.8rem; position:relative; z-index:1; }
.level-row{ display:flex; align-items:center; gap:1rem; }
.level-badge{
  width:60px; height:60px; flex:none; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1;
  background:linear-gradient(160deg, var(--accent), var(--accent-strong)); color:#fff; box-shadow:0 0 0 4px var(--accent-soft);
}
.level-badge small{ font-size:.62rem; font-weight:700; letter-spacing:.1em; opacity:.85; }
.level-badge strong{ font-family:var(--font-display); font-size:1.2rem; }
.level-bar{ flex:1; display:flex; flex-direction:column; gap:.4rem; min-width:0; }
.level-bar-label{ display:flex; justify-content:space-between; gap:.6rem; font-size:.82rem; color:var(--ink-soft); flex-wrap:wrap; }
.membership-row{ display:flex; gap:.45rem; flex-wrap:wrap; }
.membership{ display:inline-flex; align-items:center; gap:.3rem; font-size:.78rem; font-weight:600; padding:.3rem .7rem; border-radius:999px; border:1px dashed var(--border); color:var(--ink-faint); }
.membership svg{ width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:3; }
.membership.active{ border-style:solid; border-color:transparent; background:var(--glow-gold); color:var(--gold-strong); }
.membership small{ font-weight:500; opacity:.8; }
.gem-row{ display:flex; gap:.4rem; align-items:center; flex-wrap:wrap; }
.gem{ font-family:var(--font-mono); font-size:.76rem; padding:.15rem .5rem; border-radius:6px; background:var(--surface-2); border-left:3px solid var(--blue); }
.gem-0{ border-left-color:#f05b5b; } .gem-1{ border-left-color:#6478e8; } .gem-2{ border-left-color:#22bdeb; }
.gem-3{ border-left-color:#e962ad; } .gem-4{ border-left-color:#68d879; } .gem-5{ border-left-color:#e8d98a; }

/* Partner card, tinted by the Pokemon's types */
.partner-card{
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:.5rem;
  background:
    radial-gradient(circle at 50% 38%, color-mix(in srgb, var(--t1, var(--blue)) 35%, transparent), transparent 62%),
    linear-gradient(160deg, color-mix(in srgb, var(--t1, var(--blue)) 14%, var(--surface)), color-mix(in srgb, var(--t2, var(--blue)) 10%, var(--surface)));
}
.partner-card h3{ margin:0; font-size:1.3rem; }
.partner-meta{ display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; justify-content:center; }

/* Sprites */
.sprite{ display:flex; align-items:center; justify-content:center; position:relative; }
.sprite img{ max-width:100%; max-height:100%; object-fit:contain; filter:drop-shadow(0 6px 5px rgba(0,0,0,.18)); }
.sprite-sm{ width:64px; height:64px; }
.sprite-md{ width:96px; height:96px; }
.sprite-xl{ width:180px; height:180px; }
.sprite-fallback{
  width:56%; height:56%; border-radius:50%; opacity:.35;
  background:linear-gradient(to bottom, var(--ink-faint) 0 46%, var(--ink) 46% 54%, var(--surface-2) 54%);
  box-shadow:inset 0 0 0 3px var(--ink);
}

/* Wallet */
.wallet-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(165px, 1fr)); gap:.75rem; }
.wallet-tile{
  position:relative; background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:.95rem 1rem .95rem 1.1rem;
  display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto auto; column-gap:.55rem; row-gap:.2rem; overflow:hidden; box-shadow:var(--shadow);
}
.wallet-tile::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--c); }
.wallet-dot{ width:10px; height:10px; border-radius:50%; background:var(--c); align-self:center; box-shadow:0 0 0 3px color-mix(in srgb, var(--c) 22%, transparent); }
.wallet-label{ font-size:.78rem; color:var(--ink-soft); font-weight:600; }
.wallet-value{ grid-column:1 / -1; font-family:var(--font-display); font-weight:800; font-size:1.35rem; letter-spacing:-.01em; font-variant-numeric:tabular-nums; }

/* KPI tiles */
.kpi-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(170px, 1fr)); gap:.75rem; }
.kpi-grid.compact{ grid-template-columns:repeat(auto-fill, minmax(120px, 1fr)); }
.kpi{ background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:1rem 1.1rem; display:flex; flex-direction:column; gap:.15rem; box-shadow:var(--shadow); }
.panel .kpi{ background:var(--surface-2); border-color:transparent; box-shadow:none; }
.kpi-label{ font-size:.76rem; font-weight:600; color:var(--ink-soft); }
.kpi-value{ font-family:var(--font-display); font-weight:800; font-size:1.5rem; letter-spacing:-.01em; font-variant-numeric:tabular-nums; }
.kpi-note{ font-size:.74rem; color:var(--ink-faint); }

/* Variants and type bars */
.variant-list{ display:grid; grid-template-columns:repeat(auto-fill, minmax(120px,1fr)); gap:.5rem; }
.variant{ display:flex; justify-content:space-between; align-items:center; padding:.5rem .75rem; border-radius:10px; background:var(--surface-2); font-size:.85rem; font-weight:600; border-left:3px solid var(--ink-faint); }
.variant.v-1{ border-left-color:#f5b400; } .variant.v-2{ border-left-color:#6478e8; }
.variant.v-3{ border-left-color:#3fae6a; } .variant.v-4{ border-left-color:#c22e6b; }
.type-bars{ display:flex; flex-direction:column; gap:.35rem; max-height:330px; overflow-y:auto; padding-right:.3rem; }
.type-bar{ display:grid; grid-template-columns:92px 1fr 56px; align-items:center; gap:.7rem; background:none; border:0; padding:.2rem .3rem; border-radius:8px; cursor:pointer; color:var(--ink); text-align:right; font-size:.85rem; }
.type-bar:hover{ background:var(--surface-2); }
.type-bar .type{ justify-self:start; }
.type-bar-track{ height:8px; border-radius:999px; background:var(--surface-2); overflow:hidden; }
.type-bar-track span{ display:block; height:100%; border-radius:inherit; }

/* Mini strips (recent / strongest) */
.mini-strip{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:.6rem; }

/* Ranks */
.rank-list{ display:flex; flex-direction:column; gap:.35rem; }
.rank-item{ display:grid; grid-template-columns:80px 1fr auto; gap:.6rem; align-items:center; padding:.5rem .7rem; border-radius:10px; background:var(--surface-2); font-size:.9rem; }
.rank-pos{ font-family:var(--font-display); font-weight:800; color:var(--blue-strong); }
.rank-item.top .rank-pos{ color:var(--gold-strong); }
.rank-name{ font-weight:600; }

/* Toolbars */
.toolbar{ display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; margin-bottom:.9rem; }
.search-wrap{ position:relative; flex:1 1 240px; max-width:360px; }
.search-wrap svg{ position:absolute; left:.8rem; top:50%; transform:translateY(-50%); width:17px; height:17px; fill:none; stroke:var(--ink-faint); stroke-width:2; stroke-linecap:round; pointer-events:none; }
.toolbar input[type="search"], .toolbar select{
  font-family:var(--font-body); font-size:.9rem;
  background:var(--surface); color:var(--ink);
  border:1px solid var(--border); border-radius:999px; padding:.6rem 1rem;
}
.toolbar input[type="search"]{ width:100%; padding-left:2.3rem; }
.toolbar select{ cursor:pointer; padding-right:.8rem; }
.toolbar input:focus-visible, .toolbar select:focus-visible{ outline:2px solid var(--accent); outline-offset:1px; }
.toolbar input::placeholder{ color:var(--ink-faint); }
.check{ color:var(--ink-soft); font-size:.9rem; cursor:pointer; display:inline-flex; align-items:center; gap:.4rem; font-weight:600; }
.check input{ accent-color:var(--accent); width:16px; height:16px; }
.result-count{ font-size:.84rem; color:var(--ink-faint); margin:0 0 .9rem; min-height:1.2em; }

/* Pokemon cards */
.poke-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(178px, 1fr)); gap:.9rem; margin-bottom:1.4rem; }
.poke-card, .dex-card{
  position:relative; display:flex; flex-direction:column; align-items:center; gap:.3rem; text-align:center;
  font:inherit; color:var(--ink); cursor:pointer;
  border:1px solid var(--border); border-radius:18px; padding:1rem .8rem .9rem;
  background:
    radial-gradient(circle at 50% 30%, color-mix(in srgb, var(--t1, #8a93a6) 30%, transparent), transparent 58%),
    linear-gradient(170deg, color-mix(in srgb, var(--t1, #8a93a6) 12%, var(--surface)) 0%, var(--surface) 60%, color-mix(in srgb, var(--t2, #8a93a6) 10%, var(--surface)) 100%);
  box-shadow:var(--shadow);
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.poke-card:hover, .poke-card:focus-visible, .dex-card:hover, .dex-card:focus-visible{
  transform:translateY(-3px); box-shadow:var(--shadow-lift); border-color:color-mix(in srgb, var(--t1, var(--accent)) 70%, var(--border)); outline:none;
}
.poke-card:hover .sprite img, .dex-card:hover .sprite img{ transform:scale(1.06); }
.sprite img{ transition:transform .2s ease; }
.poke-card.compact{ padding:.7rem .4rem .6rem; border-radius:14px; }
.poke-card.compact .sprite-md{ width:72px; height:72px; }
.poke-card.compact .poke-name{ font-size:.85rem; }
.poke-name{ font-family:var(--font-display); font-weight:700; font-size:1rem; line-height:1.2; overflow-wrap:anywhere; }
.poke-species{ font-size:.75rem; color:var(--ink-faint); margin-top:-.2rem; }
.poke-meta{ display:flex; flex-wrap:wrap; gap:.35rem; align-items:center; justify-content:center; }
.lvl{ font-family:var(--font-mono); font-size:.75rem; font-weight:600; background:var(--ink); color:var(--surface); border-radius:6px; padding:.1rem .45rem; }
.gender{ font-weight:700; }
.g-male{ color:#3d7fd6; } .g-female{ color:#e0508f; } .g-transgender{ color:#9b6fd6; }
.card-badges{ position:absolute; top:.55rem; left:.55rem; right:.55rem; display:flex; gap:.25rem; flex-wrap:wrap; pointer-events:none; }
.badge{ display:inline-flex; align-items:center; gap:.2rem; font-family:var(--font-display); font-size:.64rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; border-radius:999px; padding:.15rem .5rem; background:var(--surface-2); color:var(--ink-soft); }
.badge-shiny{ background:#f5b400; color:#2b1f00; }
.badge-shiny.v-2{ background:#6478e8; color:#fff; } .badge-shiny.v-3{ background:#3fae6a; color:#fff; } .badge-shiny.v-4{ background:#c22e6b; color:#fff; }
.badge-mega{ background:linear-gradient(90deg, #6f35fc, #e3350d); color:#fff; }
.badge-fav{ margin-left:auto; background:none; padding:0; color:#e0508f; }
.badge-fav svg{ width:17px; height:17px; fill:currentColor; }
.badge-fav-text{ background:#fde2ef; color:#b8326f; }
.badge-rare{ background:var(--glow-gold); color:var(--gold-strong); }
.badge-owned{ background:#dff5e7; color:#1e7a45; }
.badge-missing{ background:var(--surface-2); color:var(--ink-faint); }
.badge-z{ margin-left:.4rem; background:var(--blue); color:#fff; }

/* Pokedex */
.dex-progress{ margin-bottom:1.1rem; }
.dex-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:.8rem; }
.dex-grid .skeleton{ min-height:180px; }
.dex-card{ padding:.8rem .6rem .8rem; }
.dex-card .sprite-md{ width:88px; height:88px; }
.dex-num{ position:absolute; top:.55rem; left:.7rem; font-size:.72rem; color:var(--ink-faint); font-weight:600; }
.dex-name{ font-family:var(--font-display); font-weight:700; font-size:.95rem; }
.dex-card .types{ justify-content:center; }
.dex-card .type{ font-size:.6rem; padding:.16rem .5rem; }
.dex-caught{
  position:absolute; top:.55rem; right:.6rem; width:16px; height:16px; border-radius:50%;
  background:linear-gradient(to bottom, var(--accent) 0 44%, var(--ink) 44% 56%, #fff 56%); box-shadow:0 0 0 1.5px var(--ink);
}
.dex-card.missing .sprite img{ filter:grayscale(1) brightness(.6) opacity(.55); }
.dex-card.missing .dex-name{ color:var(--ink-soft); }
.load-more{ display:flex; justify-content:center; margin-top:1.4rem; }

/* Pager */
.pager{ display:flex; justify-content:center; align-items:center; gap:.4rem; margin-top:1.2rem; flex-wrap:wrap; }
.page-num{ min-width:38px; height:38px; border-radius:999px; border:1px solid var(--border); background:var(--surface); color:var(--ink); font-family:var(--font-display); font-weight:600; cursor:pointer; }
.page-num:hover{ border-color:var(--accent); }
.page-num.current{ background:var(--accent); border-color:var(--accent); color:#fff; }
.pager-gap{ color:var(--ink-faint); padding:0 .3rem; font-size:.88rem; }

/* Leaderboards */
.board-note{ color:var(--ink-soft); margin:0 0 .9rem; }
.you-banner{
  display:flex; align-items:center; gap:1rem; flex-wrap:wrap; margin-bottom:1rem;
  background:var(--glow-gold); border:1px solid color-mix(in srgb, var(--gold) 50%, transparent); border-radius:14px; padding:.8rem 1.1rem;
}
.you-banner .mono{ margin-left:auto; font-weight:600; }
.podium{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:.8rem; align-items:end; max-width:620px; margin:0 auto 1.6rem; }
.podium-spot{ display:flex; flex-direction:column; align-items:center; gap:.3rem; text-align:center; min-width:0; }
.podium-avatar{ width:56px; height:56px; border-radius:50%; box-shadow:0 0 0 3px var(--surface), 0 0 0 5px var(--border); }
.p1 .podium-avatar{ width:72px; height:72px; box-shadow:0 0 0 3px var(--surface), 0 0 0 5px var(--gold); }
.podium-name{ font-family:var(--font-display); font-size:.95rem; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.podium-value{ font-size:.75rem; color:var(--ink-soft); }
.podium-block{
  width:100%; border-radius:12px 12px 0 0; display:flex; align-items:flex-start; justify-content:center; padding-top:.5rem;
  font-family:var(--font-display); font-weight:800; font-size:1.6rem; color:#fff;
}
.p1 .podium-block{ height:110px; background:linear-gradient(180deg, #ffd43b, #e0a800); color:#3b2c00; }
.p2 .podium-block{ height:80px; background:linear-gradient(180deg, #c9d3e3, #8e9bb3); }
.p3 .podium-block{ height:62px; background:linear-gradient(180deg, #e7a56b, #c07a3c); }
.podium-spot.you .podium-name{ color:var(--accent); }
table.board th.num{ text-align:right; }

/* Detail modal */
body.modal-open{ overflow:hidden; }
.dex-modal{
  width:min(980px, calc(100vw - 2rem)); max-height:calc(100vh - 2rem); padding:0; border:0; border-radius:22px;
  background:var(--bg); color:var(--ink); box-shadow:0 40px 90px -30px rgba(0,0,0,.6); overflow:hidden;
}
.dex-modal[open]{ display:flex; flex-direction:column; animation:pop .2s ease; }
.dex-modal::backdrop{ background:rgba(8,12,24,.62); backdrop-filter:blur(3px); }
@keyframes pop{ from{ opacity:0; transform:translateY(10px) scale(.98); } }
.modal-body{ overflow-y:auto; padding:0 0 1.6rem; }
.modal-close{
  position:absolute; top:.8rem; right:.8rem; z-index:3; width:38px; height:38px; border-radius:50%;
  border:1px solid var(--border); background:var(--surface); color:var(--ink); cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.modal-close:hover{ border-color:var(--accent); color:var(--accent); }
.modal-close svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2.4; stroke-linecap:round; }
.modal-loading{ display:flex; flex-direction:column; align-items:center; gap:.8rem; padding:4rem 1rem; color:var(--ink-soft); }
.pokeball.spin{ animation:spin 1s linear infinite; }
@keyframes spin{ to{ transform:rotate(360deg); } }

.detail-hero{
  display:grid; grid-template-columns:220px 1fr; gap:1.6rem; align-items:center; padding:1.8rem 1.8rem 1.4rem;
  background:
    radial-gradient(circle at 18% 50%, color-mix(in srgb, var(--t1) 40%, transparent), transparent 55%),
    linear-gradient(135deg, color-mix(in srgb, var(--t1) 20%, var(--surface)), color-mix(in srgb, var(--t2) 14%, var(--surface)));
  border-bottom:1px solid var(--border);
}
.detail-hero-art{ display:flex; flex-direction:column; align-items:center; gap:.6rem; }
.detail-hero-art .sprite-xl{ width:200px; height:200px; }
.shiny-toggle{ padding:.35rem .9rem; font-size:.8rem; }
.shiny-toggle[aria-pressed="true"]{ background:var(--gold); color:#2b1f00; border-color:transparent; }
.detail-hero-text{ display:flex; flex-direction:column; gap:.5rem; min-width:0; }
.detail-dex{ font-size:.82rem; color:var(--ink-soft); font-weight:600; }
.detail-hero-text h2{ font-size:clamp(1.7rem, 4vw, 2.4rem); margin:0; letter-spacing:-.02em; }
.detail-species{ margin:-.3rem 0 0; color:var(--ink-soft); font-weight:600; }
.detail-tags{ display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; }
.detail-level{ display:flex; flex-direction:column; gap:.35rem; max-width:420px; margin-top:.3rem; }
.detail-desc{ margin:1.2rem 1.8rem 0; color:var(--ink-soft); font-style:italic; }
.detail-desc.inline{ margin:.2rem 0 0; max-width:60ch; }
.detail-cols{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:1rem; padding:0 1.8rem; }
.detail-cols .detail-block{ margin-left:0; margin-right:0; }
.detail-block{ background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:1.1rem 1.2rem; margin:1rem 1.8rem 0; min-width:0; }
.detail-cols .detail-block{ margin-top:1rem; }
.detail-block-head{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; margin-bottom:.8rem; flex-wrap:wrap; }
.detail-block h3{ font-size:1rem; margin:0; }
.detail-actions{ display:flex; justify-content:flex-end; padding:1.2rem 1.8rem 0; }

.info-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:.55rem; margin:0; }
.info-grid > div{ background:var(--surface-2); border-radius:10px; padding:.5rem .7rem; min-width:0; }
.info-grid dt{ font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-faint); }
.info-grid dd{ margin:.1rem 0 0; font-weight:600; font-size:.9rem; overflow-wrap:anywhere; }

.stat-table{ display:flex; flex-direction:column; gap:.1rem; font-size:.88rem; }
.stat-row{ display:grid; grid-template-columns:82px 40px 1fr; gap:.6rem; align-items:center; padding:.3rem .2rem; border-radius:6px; }
.stat-table.owned .stat-row{ grid-template-columns:82px 36px 36px 36px 1fr 58px; }
.stat-row.head{ font-size:.66rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-faint); }
.stat-row.total{ border-top:1px solid var(--border); margin-top:.2rem; padding-top:.5rem; font-weight:700; }
.stat-label{ font-weight:600; color:var(--ink-soft); white-space:nowrap; }
.stat-row .num{ text-align:right; }
.stat-row .strong{ font-weight:700; color:var(--ink); }
.nat.up{ color:#e0503a; font-size:.7rem; } .nat.down{ color:#3d7fd6; font-size:.7rem; }
.nature-up{ background:color-mix(in srgb, #e0503a 8%, transparent); }
.nature-down{ background:color-mix(in srgb, #3d7fd6 8%, transparent); }
.boost-list{ display:flex; gap:.4rem; flex-wrap:wrap; }
.boost{ font-size:.8rem; font-weight:600; padding:.25rem .65rem; border-radius:999px; background:var(--surface-2); }
.boost strong{ color:#2f9e5b; }

/* Evolution family tree: stages flow left to right, branches stack vertically. */
.evo-scroll{ overflow-x:auto; padding-bottom:.3rem; }
.evo-tree{ display:inline-flex; min-width:100%; }
.evo-branch{ display:flex; align-items:center; gap:.4rem; }
.evo-children{ display:flex; flex-direction:column; gap:.5rem; }
.evo-children.split{ position:relative; padding-left:.7rem; border-left:2px solid var(--border); margin-left:.3rem; }
.evo-tree.has-fan{ display:block; }
.evo-branch.fan{ flex-direction:column; align-items:flex-start; }
.evo-children.fan{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(160px, 1fr)); gap:.5rem; width:100%;
  border-left:0; border-top:2px solid var(--border); margin:.2rem 0 0; padding:.7rem 0 0;
}
.evo-step{ display:flex; flex-direction:column; align-items:center; min-width:44px; }
.evo-step-arrow{ font-size:1.2rem; line-height:1; color:var(--ink-faint); }
.evo-node{
  display:flex; flex-direction:column; align-items:center; gap:.2rem; font:inherit; color:var(--ink); cursor:pointer;
  background:var(--surface-2); border:1px solid transparent; border-radius:14px; padding:.5rem .6rem .55rem; min-width:104px;
  transition:border-color .15s ease, transform .15s ease;
}
.evo-node:hover:not(:disabled){ border-color:var(--accent); transform:translateY(-2px); }
.evo-node:disabled{ cursor:default; }
.evo-node.current{ background:var(--accent-soft); border-color:var(--accent); }
.evo-node .types{ justify-content:center; }
.evo-node .type{ font-size:.56rem; padding:.12rem .42rem; }
.evo-name{ font-family:var(--font-display); font-weight:700; font-size:.85rem; }
.evo-label{ font-size:.7rem; color:var(--ink-soft); font-family:var(--font-mono); white-space:nowrap; }

/* Form picker in the Pokedex entry */
.form-picker{ display:flex; gap:.5rem; flex-wrap:wrap; }
.form-chip{
  display:inline-flex; align-items:center; gap:.45rem; font:inherit; font-size:.84rem; font-weight:600; color:var(--ink); cursor:pointer;
  background:var(--surface-2); border:1px solid transparent; border-radius:999px; padding:.25rem .85rem .25rem .3rem;
}
.form-chip:hover{ border-color:var(--accent); }
.form-chip[aria-pressed="true"]{ background:var(--accent); color:#fff; border-color:var(--accent); }
.form-chip.kind-mega[aria-pressed="false"]{ background:linear-gradient(90deg, color-mix(in srgb, #6f35fc 16%, var(--surface-2)), var(--surface-2)); }
.sprite-xs{ width:34px; height:34px; border-radius:50%; background:var(--surface); }
.sprite-xs img{ filter:none; }
.form-ability{ margin:0; color:var(--ink-soft); }
.dex-forms{
  position:absolute; bottom:.55rem; right:.55rem; font-family:var(--font-display); font-size:.6rem; font-weight:700;
  padding:.1rem .45rem; border-radius:999px; background:linear-gradient(90deg, #6f35fc, #e3350d); color:#fff;
}
.dex-card{ padding-bottom:1.5rem; }
.mega-item{ display:flex; gap:.6rem; align-items:center; flex-wrap:wrap; padding:.5rem .7rem; border-radius:10px; background:var(--surface-2); margin-top:.45rem; font-size:.88rem; }
.form-list .mega-item:first-child{ margin-top:0; }

table.moves{ width:100%; border-collapse:collapse; font-size:.86rem; }
table.moves th{ text-align:left; font-size:.66rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-faint); padding:.45rem .5rem; border-bottom:1px solid var(--border); }
table.moves td{ padding:.45rem .5rem; border-bottom:1px solid var(--border); font-weight:500; }
table.moves tr:last-child td{ border-bottom:0; }
table.moves .num{ text-align:right; }
.cat{ font-size:.8rem; font-weight:600; }
.cat-physical{ color:#e0503a; } .cat-special{ color:#3d7fd6; } .cat-status{ color:var(--ink-faint); }
.moves-details summary{ cursor:pointer; font-weight:600; color:var(--accent); margin-bottom:.6rem; }
.ev-yield{ display:grid; grid-template-columns:repeat(6, minmax(0,1fr)); gap:.45rem; }
.ev{ display:flex; flex-direction:column; align-items:center; gap:.1rem; padding:.5rem .3rem; border-radius:10px; background:var(--surface-2); font-size:.74rem; color:var(--ink-faint); font-weight:600; }
.ev strong{ font-size:1.05rem; color:var(--ink-faint); }
.ev.has{ background:var(--blue-soft); color:var(--blue-strong); }
.ev.has strong{ color:var(--blue-strong); }

@media (max-width:900px){
  .hero-grid-2, .grid-2, .detail-cols{ grid-template-columns:1fr; }
  .detail-hero{ grid-template-columns:1fr; text-align:center; justify-items:center; }
  .detail-tags, .detail-level{ justify-content:center; }
  .detail-level{ width:100%; }
}
@media (max-width:640px){
  .dash-head{ padding-top:1.6rem; }
  .tab{ padding:.7rem .75rem; font-size:.88rem; }
  .tab svg{ display:none; }
  .search-wrap{ max-width:none; flex-basis:100%; }
  .toolbar select{ flex:1 1 45%; }
  .poke-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:.6rem; }
  .dex-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:.6rem; }
  .mini-strip{ grid-template-columns:repeat(3, minmax(0,1fr)); }
  .panel{ padding:1.05rem; }
  .dex-modal{ width:100vw; max-width:100vw; max-height:100vh; height:100vh; border-radius:0; }
  .detail-hero{ padding:1.6rem 1rem 1.2rem; }
  .detail-cols{ padding:0 1rem; }
  .detail-block{ margin:1rem 1rem 0; padding:1rem; }
  .detail-desc{ margin:1rem 1rem 0; }
  .detail-actions{ padding:1rem 1rem 0; }
  .stat-table.owned .stat-row{ grid-template-columns:62px 30px 30px 30px 1fr 50px; gap:.35rem; font-size:.8rem; }
  .ev-yield{ grid-template-columns:repeat(3, minmax(0,1fr)); }
  .type-bar{ grid-template-columns:84px 1fr 44px; }
  .rank-item{ grid-template-columns:64px 1fr auto; }
  table.board th, table.board td{ padding:.6rem .7rem; }
  .podium-block{ font-size:1.2rem; }
}

/* ============ Shared additions: picker, team, breeding, cards, market, analytics ============ */
.section-title.first{ margin-top:0; }
.section-title select{
  font:inherit; font-size:.88rem; color:var(--ink); background:var(--surface);
  border:1px solid var(--border); border-radius:999px; padding:.45rem .9rem; cursor:pointer;
}
.callout.warn{ border-left-color:var(--accent); }
.callout .type{ margin:0 .15rem; }

/* Public profile switch */
.share-panel{ margin-top:1rem; }
.share-row{ display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.share-text{ display:flex; flex-direction:column; gap:.15rem; flex:1 1 260px; }
.share-actions{ display:flex; gap:.5rem; }
.switch{ position:relative; display:inline-flex; width:52px; height:30px; flex:none; cursor:pointer; }
.switch input{ position:absolute; inset:0; opacity:0; margin:0; cursor:pointer; z-index:1; }
.switch-track{ width:100%; height:100%; border-radius:999px; background:var(--surface-2); box-shadow:inset 0 0 0 1px var(--border); transition:background .2s ease; }
.switch-track::after{ content:""; position:absolute; top:4px; left:4px; width:22px; height:22px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.3); transition:transform .2s ease; }
.switch input:checked + .switch-track{ background:var(--accent); box-shadow:none; }
.switch input:checked + .switch-track::after{ transform:translateX(22px); }
.switch input:focus-visible + .switch-track{ outline:2px solid var(--accent); outline-offset:2px; }

/* Picker dialog */
.picker{ padding:1.8rem; }
.picker h2{ margin:0 0 .4rem; padding-right:2.5rem; }
.picker-grid{ grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); }
.sprite-xs{ width:34px; height:34px; }

/* Team builder */
.team-slots{ display:grid; grid-template-columns:repeat(6, minmax(0,1fr)); gap:.8rem; margin-bottom:1.2rem; }
.team-slot{ position:relative; min-width:0; }
.team-slot .poke-card{ width:100%; height:100%; }
.team-slot.empty{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.6rem; min-height:220px; width:100%;
  font:inherit; font-weight:600; color:var(--ink-soft); cursor:pointer;
  background:transparent; border:2px dashed var(--border); border-radius:18px;
}
.team-slot.empty:hover{ border-color:var(--accent); color:var(--accent); }
.team-slot.empty .pokeball{ opacity:.35; }
.slot-remove{
  position:absolute; top:-8px; right:-8px; z-index:2; width:28px; height:28px; border-radius:50%; cursor:pointer;
  background:var(--surface); border:1px solid var(--border); color:var(--ink-soft); display:flex; align-items:center; justify-content:center;
}
.slot-remove:hover{ color:var(--accent); border-color:var(--accent); }
.slot-remove svg{ width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:2.6; stroke-linecap:round; }

table.compare{ width:100%; border-collapse:collapse; font-size:.88rem; }
table.compare th, table.compare td{ padding:.5rem .6rem; border-bottom:1px solid var(--border); text-align:left; vertical-align:middle; }
table.compare thead th{ font-size:.72rem; font-weight:700; color:var(--ink-soft); }
table.compare thead th .sprite-xs{ display:inline-flex; vertical-align:middle; margin-right:.3rem; }
table.compare tbody th{ font-weight:600; color:var(--ink-soft); white-space:nowrap; }
table.compare td{ min-width:92px; }
table.compare td .bar{ height:6px; margin-top:.3rem; }
table.compare td.best .mono{ font-weight:700; color:var(--ink); }
table.compare tr.total th, table.compare tr.total td{ font-weight:700; border-bottom:0; }

table.type-matrix{ border-collapse:separate; border-spacing:2px; font-size:.78rem; width:100%; }
table.type-matrix th{ font-weight:700; color:var(--ink-faint); text-align:center; padding:.15rem; }
table.type-matrix thead th .sprite-xs{ margin:0 auto; width:30px; height:30px; }
table.type-matrix tbody th{ text-align:left; }
table.type-matrix td{ text-align:center; font-family:var(--font-mono); font-weight:700; border-radius:6px; height:28px; min-width:30px; }
.m-1{ background:var(--surface-2); }
.m-x2{ background:#f7b267; color:#3a1d00; }
.m-x4{ background:#e3350d; color:#fff; }
.m-h{ background:#9ad9a8; color:#0b3a19; }
.m-q{ background:#3fae6a; color:#fff; }
.m-immune{ background:var(--ink); color:var(--surface); }
table.type-matrix td.sum{ background:none; color:var(--ink-soft); }
table.type-matrix td.sum.bad{ color:#e3350d; }
table.type-matrix td.sum.good{ color:#2f9e5b; }
.coverage-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(120px,1fr)); gap:.4rem; }
.coverage{ display:flex; justify-content:space-between; align-items:center; padding:.35rem .5rem; border-radius:10px; background:var(--surface-2); font-size:.8rem; }
.coverage.hit{ box-shadow:inset 3px 0 0 #2f9e5b; }
.coverage.hit .mono{ color:#2f9e5b; font-weight:700; }
.coverage.miss{ opacity:.7; box-shadow:inset 3px 0 0 #e3350d; }

/* Breeding */
.breed-parents{ display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:1rem; align-items:center; max-width:640px; margin-bottom:1.4rem; }
.breed-slot{ display:flex; flex-direction:column; gap:.5rem; align-items:stretch; }
.breed-slot .team-slot.empty{ min-height:200px; }
.breed-slot.male .eyebrow-sm{ color:#3d7fd6; }
.breed-slot.female .eyebrow-sm{ color:#e0508f; }
.breed-plus{ font-family:var(--font-display); font-size:2rem; font-weight:800; color:var(--ink-faint); }
.breed-table td.best .badge{ margin-left:.4rem; }
.warn-list{ margin:.4rem 0 0; padding-left:1.2rem; }

/* TCG cards */
.rarity-row{ display:flex; flex-wrap:wrap; gap:.4rem; margin:.9rem 0 1.2rem; }
.rarity-chip{ font-size:.76rem; font-weight:600; padding:.2rem .65rem; border-radius:999px; background:var(--surface-2); color:var(--ink-soft); }
.rarity-chip.r9{ background:linear-gradient(90deg,#f7d02c,#f95587,#6390f0); color:#1b1400; }
.rarity-chip.r7{ background:#6f35fc; color:#fff; }
.rarity-chip.r5{ background:#2a75bb; color:#fff; }
.rarity-chip.r4{ background:var(--glow-gold); color:var(--gold-strong); }
.card-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:.9rem; }
.card-skeleton{ aspect-ratio:63 / 88; }
.tcg-card{
  position:relative; aspect-ratio:63 / 88; padding:0; border:0; border-radius:10px; cursor:pointer; background:var(--surface-2);
  overflow:hidden; box-shadow:0 6px 16px -8px rgba(0,0,0,.45); transition:transform .15s ease, box-shadow .15s ease;
}
.tcg-card img{ width:100%; height:100%; object-fit:cover; display:block; }
.tcg-card:hover, .tcg-card:focus-visible{ transform:translateY(-4px) rotate(-.6deg); box-shadow:0 16px 28px -12px rgba(0,0,0,.55); outline:none; }
.tcg-card.r9::after, .tcg-card.r7::after{
  content:""; position:absolute; inset:0; pointer-events:none; mix-blend-mode:color-dodge; opacity:.35;
  background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,.7) 45%, transparent 60%);
}
.tcg-qty, .tcg-grade{ position:absolute; top:.4rem; font-family:var(--font-display); font-weight:800; font-size:.72rem; padding:.1rem .45rem; border-radius:999px; }
.tcg-qty{ right:.4rem; background:var(--ink); color:var(--surface); }
.tcg-grade{ left:.4rem; background:var(--gold); color:#2b1f00; }
.tcg-name{ position:absolute; left:0; right:0; bottom:0; padding:.3rem .4rem; font-size:.7rem; font-weight:600; color:#fff; background:linear-gradient(transparent, rgba(0,0,0,.75)); opacity:0; transition:opacity .15s; }
.tcg-card:hover .tcg-name, .tcg-card:focus-visible .tcg-name{ opacity:1; }
.tcg-missing{ display:flex; height:100%; align-items:center; justify-content:center; padding:.6rem; text-align:center; font-weight:600; color:var(--ink-soft); }
.card-detail{ display:grid; grid-template-columns:minmax(0,300px) 1fr; gap:1.6rem; padding:1.8rem; }
.card-detail-art img{ width:100%; border-radius:14px; box-shadow:0 20px 40px -18px rgba(0,0,0,.6); }
.card-detail-info{ display:flex; flex-direction:column; gap:.7rem; min-width:0; }
.card-detail-info h2{ margin:0; font-size:1.9rem; }
.attack-list{ display:flex; flex-direction:column; gap:.5rem; }
.attack{ background:var(--surface-2); border-radius:10px; padding:.6rem .8rem; }
.attack-head{ display:flex; justify-content:space-between; gap:.6rem; }
.attack p{ margin:.3rem 0 0; color:var(--ink-soft); }

/* Market */
.price{ font-family:var(--font-display); font-weight:700; white-space:nowrap; }
.price.gold{ color:var(--gold-strong); }
.price.redeem{ color:var(--accent); }
.price small{ font-weight:500; opacity:.8; }
.market-table td{ vertical-align:top; }
.market-price{ margin-top:.3rem; }
.sales-list{ display:flex; flex-direction:column; gap:.3rem; }
.sale{ display:grid; grid-template-columns:1fr auto auto; gap:1rem; align-items:center; padding:.4rem .6rem; border-radius:8px; background:var(--surface-2); font-size:.86rem; }

/* Analytics chart: one series, so one hue and no legend. */
.views-wrap{ position:relative; padding-left:2.6rem; }
.views-max{ position:absolute; left:0; top:0; font-size:.7rem; color:var(--ink-faint); }
.views-chart{ display:flex; align-items:flex-end; gap:2px; height:180px; border-bottom:1px solid var(--border); }
.views-bar{ flex:1; height:100%; display:flex; align-items:flex-end; cursor:default; outline:none; }
.views-bar span{ display:block; width:100%; min-height:2px; background:var(--accent); border-radius:4px 4px 0 0; opacity:.85; }
.views-bar:hover span, .views-bar:focus-visible span{ opacity:1; }
.views-bar:focus-visible span{ outline:2px solid var(--ink); outline-offset:1px; }
.chart-tip{
  position:absolute; top:-6px; transform:translate(-50%, -100%); pointer-events:none; white-space:nowrap;
  display:flex; flex-direction:column; align-items:center; gap:.05rem;
  background:var(--ink); color:var(--surface); font-size:.76rem; padding:.35rem .6rem; border-radius:8px;
}

.type-bar.static{ cursor:default; }
.type-bar.static:hover{ background:none; }

@media (max-width:900px){
  .team-slots{ grid-template-columns:repeat(3, minmax(0,1fr)); }
  .card-detail{ grid-template-columns:1fr; }
  .card-detail-art{ max-width:280px; margin:0 auto; }
}
@media (max-width:640px){
  .team-slots{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .breed-parents{ grid-template-columns:1fr; }
  .breed-plus{ text-align:center; }
  .card-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .picker{ padding:1.2rem 1rem; }
  .sale{ grid-template-columns:1fr auto; }
  .sale .muted{ display:none; }
}

/* Equipped form on collection cards */
.poke-form{
  font-size:.68rem; font-weight:700; letter-spacing:.03em; margin-top:-.1rem;
  padding:.08rem .5rem; border-radius:999px; background:var(--glow-blue); color:var(--blue-strong);
  max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}

/* !find filters panel */
.filter-toggle{ gap:.4rem; }
.filter-toggle svg{ width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:2; stroke-linejoin:round; }
.filter-toggle[aria-expanded="true"]{ border-color:var(--accent); color:var(--accent); }
.filter-count{ min-width:1.3rem; height:1.3rem; border-radius:999px; background:var(--accent); color:#fff; font-size:.72rem; display:inline-flex; align-items:center; justify-content:center; padding:0 .35rem; }
.find-panel{ margin-bottom:1rem; display:flex; flex-direction:column; gap:.6rem; }
.find-head{ display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.find-head .btn{ padding:.35rem .8rem; font-size:.8rem; }
.find-chips{ display:flex; flex-wrap:wrap; gap:.35rem; }
.find-chip{ font-size:.76rem; padding:.3rem .75rem; }
.find-label{ font-family:var(--font-display); font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); margin-top:.3rem; }
.find-input{
  font-family:var(--font-mono); font-size:.88rem; color:var(--ink); background:var(--surface-2);
  border:1px solid var(--border); border-radius:10px; padding:.6rem .8rem; width:100%;
}
.find-input:focus-visible{ outline:2px solid var(--accent); outline-offset:1px; }
.find-guide summary{ cursor:pointer; font-weight:600; color:var(--accent); font-size:.88rem; }
.find-help{ margin:.3rem 0 .6rem; padding-left:1.1rem; display:flex; flex-direction:column; gap:.3rem; font-size:.84rem; color:var(--ink-soft); }
.find-help .cmd{ margin-right:.15rem; }

/* Exists counts */
.form-count{ margin-left:.15rem; font-size:.7rem; padding:.05rem .4rem; border-radius:999px; background:var(--surface); color:var(--ink-soft); }
.form-chip[aria-pressed="true"] .form-count{ background:rgba(255,255,255,.25); color:#fff; }

/* Shared Pokemon page */
.share-owner{ display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; margin-bottom:1rem; }
.share-owner .avatar{ margin:0; width:36px; height:36px; }
.share-owner .btn{ padding:.4rem .9rem; font-size:.82rem; }
.share-card{ padding:0; overflow:hidden; margin-bottom:1rem; }
.share-card .detail-desc{ margin:1rem 1.4rem 1.2rem; }
.share-foot{ margin-top:1.4rem; text-align:center; }
#share-root > .detail-block, #share-root .grid-2 .detail-block{ margin-left:0; margin-right:0; }
