:root { color-scheme: light; --pokemon-yellow: #ffcb05; --pokemon-yellow-soft: #ffe46b; --pokemon-blue: #2a75bb; --pokemon-blue-deep: #003a70; --pokemon-red: #ee1515; --pokemon-red-deep: #cc0000; --pokeball-black: #202124; --pokeball-white: #f7f8fb; --bg: #f2f5fa; --bg-alt: #eaf1fb; --surface: #ffffff; --surface-raised: #ffffff; --surface-soft: #f8fafd; --ink: #151923; --ink-soft: #354052; --muted: #687487; --line: #d8deea; --line-strong: #1f2a3b; --focus: #0b63ce; --success: #2eb872; --warning: #ffb800; --danger: #df2f2f; --radius-card: 8px; --radius-control: 8px; --radius-small: 6px; --shadow-control: 0 3px 0 var(--line-strong); --shadow-soft: 0 8px 22px rgba(23, 35, 54, 0.09); --shadow-raised: 0 14px 32px rgba(23, 35, 54, 0.13); --container: 1240px; --font-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; --font-display: "Arial Rounded MT Bold", "Nunito", "Avenir Next Rounded", var(--font-sans); color: var(--ink); background: var(--bg); font-family: var(--font-sans); font-synthesis: none; text-rendering: optimizeLegibility; } * { box-sizing: border-box; } html { scroll-behavior: smooth; scrollbar-gutter: stable; } @supports not (scrollbar-gutter: stable) { html { overflow-y: scroll; } } body { min-width: 320px; margin: 0; color: var(--ink); background: linear-gradient(90deg, rgba(42, 117, 187, 0.08) 1px, transparent 1px) 0 0 / 32px 32px, linear-gradient(rgba(42, 117, 187, 0.08) 1px, transparent 1px) 0 0 / 32px 32px, linear-gradient(180deg, var(--bg) 0%, var(--bg-alt) 100%); } a { color: inherit; text-decoration: none; } button, input, select, textarea { font: inherit; } button { border: 0; } img, svg { display: block; max-width: 100%; } :focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; } .app-shell { min-height: 100vh; } .container { width: min(100%, var(--container)); margin: 0 auto; padding: 0 24px; } .site-header { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid rgba(31, 42, 59, 0.12); background: color-mix(in srgb, var(--surface) 88%, transparent); backdrop-filter: blur(18px); } .top-nav { min-height: 70px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 22px; } .brand-lockup { min-width: 216px; display: inline-flex; align-items: center; gap: 12px; } .pokemon-word { display: inline-block; color: var(--pokemon-yellow); font-family: var(--font-display); font-size: 28px; font-weight: 900; line-height: 0.9; -webkit-text-stroke: 2px var(--pokemon-blue-deep); text-shadow: 2px 3px 0 var(--pokemon-blue); } .brand-subtitle { display: block; margin-top: 2px; color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; } .nav-links { display: flex; justify-content: center; gap: 4px; overflow-x: auto; } .nav-links a { min-height: 38px; display: inline-flex; align-items: center; justify-content: center; padding: 8px 10px; border-radius: var(--radius-control); color: var(--ink-soft); font-size: 14px; font-weight: 850; white-space: nowrap; } .nav-links a:hover { background: rgba(255, 203, 5, 0.24); color: var(--ink); } .nav-links a.router-link-active { background: var(--pokemon-blue); color: #ffffff; } .auth-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; } .auth-user { max-width: 180px; overflow: hidden; color: var(--ink-soft); font-size: 14px; font-weight: 850; text-overflow: ellipsis; white-space: nowrap; } .page { position: relative; --page-padding-x: 24px; width: min(100%, var(--container)); margin: 0 auto; padding: 30px var(--page-padding-x) 58px; } .page-stack { position: relative; display: grid; gap: 18px; } .page-header { display: flex; align-items: end; justify-content: space-between; gap: 16px; } .page-header__copy { display: grid; gap: 8px; min-width: 0; } .page-header__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; } .page-kicker { display: inline-flex; align-items: center; gap: 8px; width: fit-content; color: var(--pokemon-blue); font-size: 13px; font-weight: 900; text-transform: uppercase; } .page-kicker::before { content: ""; width: 18px; height: 18px; border: 3px solid var(--line-strong); border-radius: 50%; background: linear-gradient(to bottom, var(--pokemon-red) 0 44%, var(--line-strong) 44% 56%, var(--surface) 56% 100%); } .page-title { margin: 0; color: var(--ink); font-family: var(--font-display); font-size: 42px; font-weight: 950; line-height: 1.08; } .page-subtitle { margin: 0; color: var(--ink-soft); } .pokeball-mark { position: relative; width: var(--ball-size, 34px); height: var(--ball-size, 34px); display: inline-block; flex: 0 0 auto; border: calc(var(--ball-size, 34px) * 0.07) solid var(--pokeball-black); border-radius: 50%; background: linear-gradient( to bottom, var(--pokemon-red) 0 45%, var(--pokeball-black) 45% 55%, var(--pokeball-white) 55% 100% ); box-shadow: inset 0 4px 0 rgba(255, 255, 255, 0.45), 0 3px 0 rgba(0, 0, 0, 0.18); } .pokeball-mark::after { content: ""; position: absolute; inset: 50% auto auto 50%; width: calc(var(--ball-size, 34px) * 0.34); height: calc(var(--ball-size, 34px) * 0.34); transform: translate(-50%, -50%); border: calc(var(--ball-size, 34px) * 0.055) solid var(--pokeball-black); border-radius: 50%; background: var(--pokeball-white); box-shadow: inset 0 0 0 calc(var(--ball-size, 34px) * 0.055) #dfe5ef; } .ui-button, .primary-button, .link-button, .plain-button, .row-actions button, .inline-row > button, .appearance-row__delete { --btn-bg: var(--surface); --btn-fg: var(--ink); --btn-border: var(--line-strong); min-height: 42px; width: fit-content; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 9px 13px; border: 2px solid var(--btn-border); border-radius: var(--radius-control); background: var(--btn-bg); color: var(--btn-fg); box-shadow: var(--shadow-control); font-weight: 900; line-height: 1.1; cursor: pointer; transition: transform 0.14s ease, box-shadow 0.14s ease, background 0.14s ease, border-color 0.14s ease; white-space: nowrap; } .ui-button:hover, .primary-button:hover, .link-button:hover, .plain-button:hover, .row-actions button:hover, .inline-row > button:hover, .appearance-row__delete:hover { transform: translateY(-2px); box-shadow: 0 5px 0 var(--line-strong); } .ui-button:active, .primary-button:active, .link-button:active, .plain-button:active, .row-actions button:active, .inline-row > button:active, .appearance-row__delete:active { transform: translateY(2px); box-shadow: 0 1px 0 var(--line-strong); } .ui-button--primary, .primary-button { --btn-bg: var(--pokemon-yellow); --btn-fg: #172036; } .ui-button--blue, .link-button { --btn-bg: var(--pokemon-blue); --btn-fg: #ffffff; } .ui-button--red { --btn-bg: var(--pokemon-red); --btn-fg: #ffffff; } .ui-button--ghost, .plain-button, .row-actions button, .inline-row > button, .appearance-row__delete { --btn-bg: var(--surface); --btn-border: var(--line); box-shadow: none; } .ui-button--small { min-height: 36px; padding: 7px 10px; font-size: 14px; box-shadow: 0 2px 0 var(--line-strong); } button:disabled, .ui-button:disabled, .primary-button:disabled, .link-button:disabled, .plain-button:disabled { cursor: not-allowed; opacity: 0.54; transform: none; box-shadow: 0 2px 0 var(--line); } .filter-panel, .toolbar { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 14px; padding: 16px; border: 2px solid var(--line-strong); border-radius: var(--radius-card); background: var(--surface); box-shadow: var(--shadow-control); } .field { display: grid; gap: 7px; align-content: start; } .field label, .field-label { color: var(--ink-soft); font-size: 14px; font-weight: 850; } .field input, .field select, .tags-select__search { width: 100%; min-height: 44px; padding: 10px 12px; border: 2px solid var(--line); border-radius: var(--radius-control); background: var(--surface); color: var(--ink); transition: border-color 0.14s ease, box-shadow 0.14s ease; } .field input:focus, .field select:focus, .tags-select__search:focus { border-color: var(--pokemon-blue); box-shadow: 0 0 0 4px rgba(42, 117, 187, 0.16); outline: none; } .tags-select { position: relative; width: 100%; min-width: 0; } .tags-select__trigger { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; min-height: 44px; padding: 7px 10px; border: 2px solid var(--line); border-radius: var(--radius-control); background: var(--surface); color: var(--ink); text-align: left; cursor: pointer; } .tags-select__trigger.open { border-color: var(--pokemon-blue); box-shadow: 0 0 0 4px rgba(42, 117, 187, 0.16); } .tags-select__selected { display: flex; flex: 1 1 auto; flex-wrap: wrap; gap: 6px; min-width: 0; } .tags-select--single .tags-select__trigger { padding: 10px 12px; } .tags-select--single .tags-select__selected { align-items: center; } .tags-select__single-value { display: block; min-width: 0; overflow: hidden; color: var(--ink); text-overflow: ellipsis; white-space: nowrap; } .tags-select__tag { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 28px; padding: 4px 8px; border: 1px solid rgba(42, 117, 187, 0.28); border-radius: 999px; background: rgba(42, 117, 187, 0.1); color: var(--pokemon-blue-deep); font-size: 13px; font-weight: 850; } .tags-select__remove { min-width: 18px; min-height: 18px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; color: var(--ink-soft); cursor: pointer; } .tags-select__remove:hover { background: rgba(42, 117, 187, 0.14); } .tags-select__placeholder { color: var(--muted); } .tags-select__arrow { flex: 0 0 auto; color: var(--muted); font-size: 18px; line-height: 1; } .tags-select__dropdown { position: absolute; top: calc(100% + 6px); left: 0; z-index: 40; display: grid; gap: 8px; width: 100%; min-width: 240px; padding: 8px; border: 2px solid var(--line-strong); border-radius: var(--radius-card); background: var(--surface); box-shadow: var(--shadow-raised); } .tags-select__options { display: grid; max-height: 240px; overflow: auto; } .tags-select__option { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; min-height: 40px; padding: 8px 10px; border: 0; border-radius: var(--radius-small); background: transparent; color: var(--ink); text-align: left; cursor: pointer; } .tags-select__option:hover, .tags-select__option.active, .tags-select__option.selected { background: rgba(255, 203, 5, 0.22); color: var(--pokemon-blue-deep); } .tags-select__option.active { box-shadow: inset 0 0 0 2px rgba(42, 117, 187, 0.2); } .tags-select__option.selected { font-weight: 850; } .tags-select__create { border-top: 1px solid var(--line); border-radius: 0; color: var(--pokemon-blue); font-weight: 850; } .tags-select__option:disabled { cursor: not-allowed; opacity: 0.45; } .tags-select__state { flex: 0 0 auto; color: var(--pokemon-blue); font-size: 12px; font-weight: 850; } .tags-select__empty { margin: 0; padding: 8px 10px; color: var(--muted); font-size: 13px; } .segmented { display: inline-flex; flex-wrap: wrap; width: fit-content; gap: 4px; padding: 4px; border: 2px solid var(--line); border-radius: var(--radius-control); background: var(--surface-soft); } .segmented button { min-width: 52px; min-height: 34px; padding: 6px 10px; border-radius: var(--radius-small); background: transparent; color: var(--ink-soft); font-weight: 850; cursor: pointer; } .segmented button.active { background: var(--pokemon-blue); color: #ffffff; } .tabs { display: flex; flex-wrap: wrap; gap: 8px; } .tabs > button { min-height: 42px; padding: 9px 13px; border: 2px solid var(--line); border-radius: var(--radius-control); background: var(--surface); color: var(--ink-soft); font-weight: 900; cursor: pointer; } .tabs > button.active { border-color: var(--line-strong); background: var(--pokemon-yellow); color: #172036; box-shadow: 0 2px 0 var(--line-strong); } .tabs--component { display: grid; gap: 14px; } .tab-list { display: flex; flex-wrap: wrap; gap: 6px; border-bottom: 2px solid var(--line); } .tab-button { min-height: 42px; padding: 9px 13px; border-bottom: 3px solid transparent; border-radius: var(--radius-control) var(--radius-control) 0 0; background: transparent; color: var(--ink-soft); font-weight: 900; cursor: pointer; } .tab-button[aria-selected="true"] { border-color: var(--pokemon-yellow); background: var(--surface); color: var(--pokemon-blue-deep); } .skeleton { display: grid; gap: 10px; } .skeleton-line, .skeleton-box { display: block; background: linear-gradient(90deg, var(--line), var(--surface), var(--line)); background-size: 200% 100%; animation: shimmer 1.4s linear infinite; } .skeleton-line { height: 14px; border-radius: 999px; } .skeleton-box { height: 128px; border-radius: var(--radius-card); } .tab-list--skeleton { padding-bottom: 0; } .skeleton-tab { border-radius: var(--radius-control) var(--radius-control) 0 0; } .filter-panel--skeleton { pointer-events: none; } .entity-card--skeleton { pointer-events: none; } .skeleton-entity-mark { border-radius: var(--radius-control); box-shadow: 0 3px 0 var(--line); } .skeleton-chip-row { display: flex; flex-wrap: wrap; gap: 6px; } .skeleton-chip { height: 28px; } .page-header--skeleton { pointer-events: none; } .skeleton-detail-section { pointer-events: none; } .skeleton-detail-section .detail-section__body { gap: 14px; } .skeleton-row-list li { min-height: 43px; } .skeleton-appearance-row { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 12px; } .skeleton-summary { display: grid; gap: 6px; width: 100%; } .skeleton-summary div { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 8px; } .skeleton-form-stack { display: grid; gap: 14px; } .skeleton-auth-state { display: grid; gap: 12px; } @keyframes shimmer { to { background-position: -200% 0; } } .entity-grid, .grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; } .entity-card { min-height: 164px; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; padding: 16px; border: 2px solid var(--line-strong); border-radius: var(--radius-card); background: var(--surface); box-shadow: var(--shadow-control); color: var(--ink); } .entity-card--link { transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease; } .entity-card--link:hover { transform: translateY(-2px); border-color: var(--pokemon-blue); box-shadow: 0 5px 0 var(--line-strong); } .entity-card__mark { width: 42px; height: 42px; display: inline-grid; place-items: center; border: 2px solid var(--line-strong); border-radius: var(--radius-control); background: var(--pokemon-yellow); box-shadow: 0 3px 0 var(--line-strong); color: #172036; font-family: var(--font-display); font-weight: 950; } .entity-card__content { display: grid; align-content: start; gap: 10px; min-width: 0; } .entity-card__title { color: var(--ink); font-family: var(--font-display); font-size: 21px; font-weight: 950; line-height: 1.12; overflow-wrap: anywhere; } .entity-card__subtitle, .meta-line { margin: 0; color: var(--muted); } .edit-meta { margin: 0; color: var(--muted); font-size: 13px; font-weight: 750; } .config-flag { display: inline-flex; align-items: center; min-height: 24px; margin-left: 8px; padding: 3px 7px; border: 1px solid rgba(42, 117, 187, 0.24); border-radius: var(--radius-small); background: var(--surface-soft); color: var(--pokemon-blue-deep); font-size: 12px; font-weight: 850; } .chips { display: flex; flex-wrap: wrap; gap: 6px; } .chip { display: inline-flex; align-items: center; min-height: 28px; padding: 4px 8px; border: 1px solid rgba(42, 117, 187, 0.28); border-radius: 999px; background: rgba(42, 117, 187, 0.1); color: var(--pokemon-blue-deep); font-size: 13px; font-weight: 800; } .detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } .detail-section { display: grid; gap: 12px; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--surface); box-shadow: var(--shadow-soft); } .detail-section__header, .detail-section > h2 { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .detail-section h2 { margin: 0; color: var(--ink); font-family: var(--font-display); font-size: 21px; font-weight: 950; line-height: 1.12; } .section-subtitle { margin: 0; color: var(--ink-soft); font-size: 16px; font-weight: 900; } .detail-section__body { display: grid; gap: 12px; } .detail-section a:not(.ui-button) { color: var(--pokemon-blue-deep); font-weight: 850; } .row-list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; } .row-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--line); } .row-list li:last-child { border-bottom: 0; } .skill-drop-summary li { align-items: flex-start; } .skill-drop-summary .chips { justify-content: flex-end; } .appearance-list li { display: grid; grid-template-columns: max-content minmax(0, 1fr); align-items: start; justify-content: stretch; } .appearance-name { white-space: nowrap; } .appearance-summary { display: grid; gap: 4px; width: 100%; margin: 0; color: var(--muted); text-align: left; } .appearance-summary div { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 8px; } .appearance-summary dt, .appearance-summary dd { margin: 0; } .appearance-summary dt { color: var(--ink-soft); font-weight: 850; } .status-message { position: absolute; right: 0; left: 0; z-index: 80; display: flex; align-items: start; gap: 10px; width: auto; margin: 0; padding: 14px; border: 1px solid var(--status-line, var(--line)); border-left: 6px solid var(--status-accent, var(--pokemon-blue)); border-radius: var(--radius-card); background: var(--status-bg, var(--surface)); box-shadow: var(--shadow-raised); color: var(--ink-soft); font-weight: 800; pointer-events: none; opacity: 1; transform: translateY(0); visibility: visible; transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease; } .page > .status-message { right: var(--page-padding-x); left: var(--page-padding-x); } .status-message--hidden { opacity: 0; transform: translateY(-6px); visibility: hidden; } .status-message::before { content: ""; width: 12px; height: 12px; flex: 0 0 auto; margin-top: 6px; border-radius: 50%; background: var(--status-accent, var(--pokemon-blue)); } .status-message--success { --status-accent: var(--success); --status-line: color-mix(in srgb, var(--success) 38%, var(--line)); --status-bg: color-mix(in srgb, var(--success) 10%, var(--surface)); } .status-message--warning { --status-accent: var(--warning); --status-line: color-mix(in srgb, var(--warning) 42%, var(--line)); --status-bg: color-mix(in srgb, var(--warning) 12%, var(--surface)); } .status-message--danger { --status-accent: var(--danger); --status-line: color-mix(in srgb, var(--danger) 38%, var(--line)); --status-bg: color-mix(in srgb, var(--danger) 10%, var(--surface)); } .status { margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--surface); color: var(--muted); } .auth-page { display: grid; justify-items: center; padding: 24px 0; } .auth-panel { position: relative; width: min(480px, 100%); display: grid; gap: 18px; padding: 22px; border: 2px solid var(--line-strong); border-radius: var(--radius-card); background: var(--surface); box-shadow: var(--shadow-control); } .auth-panel .page-header { display: block; } .auth-panel .page-title { font-size: 34px; } .auth-form { position: relative; display: grid; gap: 14px; } .auth-switch { margin: 0; color: var(--muted); } .auth-switch a { color: var(--pokemon-blue-deep); font-weight: 900; } .auth-message { margin: 0; padding: 10px 12px; border: 1px solid color-mix(in srgb, var(--success) 38%, var(--line)); border-radius: var(--radius-card); background: color-mix(in srgb, var(--success) 10%, var(--surface)); color: var(--ink-soft); font-weight: 800; } .auth-message.error { border-color: color-mix(in srgb, var(--danger) 38%, var(--line)); background: color-mix(in srgb, var(--danger) 10%, var(--surface)); } .admin-layout { display: grid; grid-template-columns: minmax(320px, 420px) minmax(0, 1fr); gap: 16px; align-items: start; } .form-actions, .row-actions, .check-row, .inline-row, .appearance-row { display: flex; gap: 8px; } .form-actions, .check-row { flex-wrap: wrap; align-items: center; } .row-actions { flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; } .row-actions button, .inline-row > button, .appearance-row__delete { min-height: 34px; padding: 6px 10px; font-size: 14px; } .inline-row { align-items: center; } .inline-row > .tags-select { flex: 1 1 180px; min-width: 0; } .inline-row > select { flex: 1; } .inline-row > input { width: 90px; } .skill-drop-list { display: grid; gap: 10px; } .skill-drop-row { display: grid; gap: 8px; padding: 12px; border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--surface-soft); } .skill-drop-row label { margin: 0; } .check-row label { display: inline-flex; align-items: center; gap: 7px; min-height: 36px; color: var(--ink-soft); font-weight: 850; cursor: pointer; } .check-row input { width: 18px; height: 18px; accent-color: var(--pokemon-blue); } .appearance-row { display: grid; grid-template-columns: 1fr; gap: 12px; padding: 12px; border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--surface-soft); } .appearance-row__rarity input { min-width: 64px; } .appearance-row__main { display: grid; grid-template-columns: minmax(260px, 1.2fr) minmax(240px, 1fr) minmax(180px, 0.9fr) 82px max-content; gap: 12px; align-items: start; } .appearance-row__pokemon, .appearance-row__maps, .appearance-row__rarity, .appearance-row__main .switch-group { min-width: 0; width: 100%; } .appearance-row__rarity input { width: 100%; } .appearance-row__delete { align-self: end; justify-self: end; min-height: 32px; padding: 5px 9px; font-size: 13px; } .appearance-row .tags-select, .appearance-row .tags-select__trigger { width: 100%; } .switch-group { min-width: 0; min-inline-size: 0; display: grid; gap: 7px; margin: 0; padding: 0; border: 0; } .switch-group legend { padding: 0; color: var(--ink-soft); font-size: 14px; font-weight: 850; } .switch-group__options { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; } .switch-control { position: relative; display: inline-flex; align-items: center; gap: 9px; min-height: 44px; color: var(--ink-soft); font-weight: 850; cursor: pointer; user-select: none; } .switch-control--stacked { min-width: 62px; align-items: center; flex-direction: column; gap: 6px; } .switch-control__label { color: var(--ink-soft); font-size: 13px; line-height: 1.2; text-align: center; overflow-wrap: anywhere; } .switch-control input { position: absolute; inline-size: 1px; block-size: 1px; min-width: 0; margin: 0; opacity: 0; } .switch-track { position: relative; width: 48px; height: 28px; flex: 0 0 auto; border: 2px solid var(--line-strong); border-radius: 999px; background: var(--line); transition: background 0.16s ease; } .switch-track::after { content: ""; position: absolute; top: 2px; left: 2px; width: 20px; height: 20px; border-radius: 50%; background: var(--surface); box-shadow: 0 2px 0 rgba(0, 0, 0, 0.2); transition: transform 0.16s ease; } .switch-control input:focus-visible + .switch-track { box-shadow: 0 0 0 4px rgba(42, 117, 187, 0.16); } .switch-control input:checked + .switch-track { background: var(--pokemon-blue); } .switch-control input:checked + .switch-track::after { transform: translateX(20px); } @media (max-width: 900px) { .top-nav { grid-template-columns: 1fr; gap: 12px; padding-top: 14px; padding-bottom: 14px; } .brand-lockup, .auth-actions, .nav-links { justify-content: flex-start; min-width: 0; } .nav-links { width: 100%; } .auth-actions { flex-wrap: wrap; } .page-header { align-items: start; flex-direction: column; } .page-header__actions { justify-content: flex-start; } .detail-grid, .admin-layout { grid-template-columns: 1fr; } .appearance-row__main { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (max-width: 640px) { .container, .page { --page-padding-x: 16px; padding-right: var(--page-padding-x); padding-left: var(--page-padding-x); } .page { padding-top: 22px; padding-bottom: 44px; } .page-title { font-size: 32px; } .pokemon-word { font-size: 25px; } .filter-panel, .toolbar, .entity-grid, .grid { grid-template-columns: 1fr; } .entity-card { grid-template-columns: 1fr; } .appearance-list li { grid-template-columns: 1fr; } .appearance-summary div { grid-template-columns: 68px minmax(0, 1fr); } .inline-row { align-items: stretch; flex-direction: column; } .inline-row > input, .inline-row > .tags-select { width: 100%; } .appearance-row__main { grid-template-columns: 1fr; } }