/* 星宿アニマル・星のアパート・人生すごろく専用のスタイル。
   この3ページだけが読み込む（styles.css に入れると記事を含む全66ページで読まれるため）。
   共通ナビのスタイルは全ページで要るので styles.css 側にある。 */

.animal-result { margin-top: 18px; }
.animal-form { display: flex; flex-direction: column; align-items: center; gap: 18px; margin: 12px auto 4px; }
.apt-form .animal-date { width: min(440px, 100%); }
.apt-kicker, .legal-card .apt-summary h2 { margin: 4px 0 12px; color: var(--paper-50); font-size: clamp(30px, 5vw, 44px); }
.apt-form .apt-check input[type="checkbox"] { flex: none; width: 18px; height: 18px; min-height: 0; margin: 0; padding: 0; border: none; accent-color: var(--gold-500); }
.sgr-venus { --z: #c98fa0; }
.legal-card .sgr-clock { margin: 12px 0 4px; color: var(--paper-50); font-size: 14px; }
.sgr-stage { margin: 16px 0; padding: 12px 14px 4px; border: 1px solid var(--rule); border-radius: 4px; }
.sgr-subcards { display: grid; gap: 8px; }
.animal-pal { display: flex; gap: 12px; align-items: center; margin: 8px 0; padding: 10px 14px; border: 1px dashed rgba(111, 162, 123, .8); background: rgba(111, 162, 123, .08); }
.animal-pair-side { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.animal-card { display: grid; grid-template-columns: minmax(220px, 340px) 1fr; gap: clamp(18px, 4vw, 40px); align-items: center; }
.animal-art { position: relative; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 50% 45%, rgba(216, 168, 78, .14), rgba(17, 19, 41, .6) 70%); }
.animal-art img { position: absolute; inset: 14%; width: 72%; height: 72%; object-fit: contain; }
.animal-ring { position: absolute; inset: 0; width: 100%; height: 100%; }
.animal-ring .tick { stroke: rgba(216, 168, 78, .55); stroke-width: 1.2; stroke-linecap: round; }
.animal-ring .tick.is-here { stroke: var(--gold-300); stroke-width: 2.4; }
.animal-ring .moon { fill: var(--gold-300); font-size: 13px; }
.animal-kicker { margin: 0; color: var(--gold-500); font-family: var(--serif-en); font-size: 12px; letter-spacing: .18em; }
.legal-card .animal-name { margin: 4px 0 0; color: var(--paper-50); font-size: clamp(40px, 7vw, 60px); line-height: 1.1; }
.legal-card .animal-title { margin: 8px 0 10px; color: var(--gold-300); font-family: var(--serif); font-size: 18px; }
.legal-card .animal-line { color: var(--paper-100); font-size: 15px; }
.animal-foe { display: flex; gap: 12px; align-items: center; margin: 16px 0 8px; padding: 10px 14px; border: 1px dashed rgba(169, 66, 47, .7); background: rgba(169, 66, 47, .08); }
.animal-foe img { flex: none; width: 64px; height: 64px; object-fit: contain; }
.legal-card .animal-foe p { margin: 0; font-size: 13px; }
.animal-foe strong { color: #e8866f; }
.legal-card .animal-same { margin: 0; font-size: 12px; color: rgba(227, 207, 170, .6); }
.legal-card .animal-note { font-size: 12px; color: rgba(227, 207, 170, .62); }
.animal-share .learn-cta { cursor: pointer; background: transparent; }
.animal-share .animal-note, .animal-share .apt-note, .animal-share .sgr-note { flex-basis: 100%; margin: 0; white-space: pre-wrap; }
.animal-shared { margin-bottom: 18px; border-color: rgba(216, 168, 78, .5); }
.animal-pair-row { display: flex; align-items: center; justify-content: center; gap: 12px; }
.animal-pair-row img { width: min(140px, 36vw); height: auto; }
.animal-pair-x { color: var(--gold-500); font-size: 28px; }
.legal-card .animal-pair-head { margin: 12px 0 4px; color: var(--gold-300); font-family: var(--serif); font-size: 20px; text-align: center; }
.animal-index { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; margin: 16px 0 0; padding: 0 !important; list-style: none; }
.animal-index-item { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 12px 8px; border: 1px solid var(--rule); text-align: center; }
.animal-index-item img { width: 96px; height: 96px; object-fit: contain; }
.animal-index-item strong { color: var(--paper-50); font-family: var(--serif); font-size: 16px; }
.animal-index-item span { font-size: 11px; line-height: 1.6; color: rgba(227, 207, 170, .78); }
.animal-index-item small { font-size: 11px; color: #e8866f; }
.animal-form .primary-action { width: 100%; }
.animal-img-missing { display: inline-flex; align-items: center; justify-content: center; max-width: 100%; border: 1px dashed var(--rule); border-radius: 50%; color: rgba(227, 207, 170, .5); font-family: var(--serif); font-size: 14px; }
.animal-art .animal-img-missing { position: absolute; inset: 14%; width: 72% !important; height: 72% !important; }
.animal-index-item .animal-img-missing { width: 96px !important; height: 96px !important; }
.animal-details { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; text-align: left; }
.animal-detail { padding: 14px 16px; border: 1px solid var(--rule); background: rgba(251, 244, 231, .03); }
.legal-card .animal-detail h3 { margin: 0 0 8px; color: var(--gold-300); font-size: 15px; letter-spacing: .06em; }
.legal-card .animal-detail p, .legal-card .animal-detail li { font-size: 13px; line-height: 1.85; }
.legal-card .animal-detail ul { padding-left: 1.1em; }
.legal-card .animal-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 8px; }
.animal-tags span { padding: 2px 10px; border: 1px solid rgba(216, 168, 78, .5); border-radius: 999px; color: var(--paper-50); font-size: 12px; }
.animal-browse { position: relative; margin: 16px 0; padding: 18px; border: 1px solid rgba(216, 168, 78, .45); background: rgba(17, 19, 41, .5); scroll-margin-top: 16px; }
.animal-close { position: absolute; top: 10px; right: 10px; z-index: 1; padding: 4px 12px; border: 1px solid var(--rule); background: transparent; color: var(--paper-100); cursor: pointer; font-size: 12px; }
button.animal-index-item { width: 100%; height: 100%; background: transparent; color: inherit; cursor: pointer; font: inherit; }
button.animal-index-item:hover, button.animal-index-item:focus-visible { border-color: var(--gold-500); background: rgba(216, 168, 78, .08); outline: none; }
.animal-form .animal-date { width: min(420px, 100%); margin: 0; }
.animal-form .date-selects select { width: 100%; padding: 10px 4px; border: none; background: transparent; color: var(--paper-50); font-family: var(--serif); font-size: 20px; color-scheme: dark; text-align: center; }
.animal-form .date-selects select option { background: var(--ink-900); color: var(--paper-50); }
.legal-card:has(.animal-form) > h2, .legal-card:has(.animal-form) > p { text-align: center; }
.animal-form .date-selects { grid-template-columns: 1.3fr 1fr 1fr; gap: 10px; }
.animal-detail-no { margin-right: 8px; color: rgba(216, 168, 78, .55); font-family: var(--serif-en); font-size: 12px; letter-spacing: .1em; }
.legal-card .animal-phrase { color: var(--paper-50); font-family: var(--serif); font-size: 17px; }
.legal-card .animal-naks { padding-left: 1.1em; }
.animal-naks a { color: var(--gold-300); }
.apt-label { display: block; margin-bottom: 2px; color: var(--gold-500); font-family: var(--serif); font-size: 13px; letter-spacing: .12em; text-align: center; }
.apt-form .apt-time .date-selects { grid-template-columns: 1fr 1fr; }
.apt-form .apt-pref { grid-template-columns: 1fr; }
.apt-form .apt-pref select { font-size: 18px; }
.apt-check { display: flex; justify-content: center; align-items: center; gap: 8px; margin-top: 8px; color: rgba(227, 207, 170, .8); font-size: 13px; cursor: pointer; }
.apt-form select:disabled { opacity: .35; }
.apt-result { margin-top: 24px; }
.apt-summary { text-align: center; }
.legal-card .apt-facts { display: inline-block; margin: 0 auto 8px; padding: 0 !important; list-style: none; text-align: left; }
.legal-card .apt-facts li { margin: 4px 0; font-size: 14px; }
.apt-facts strong { color: var(--gold-300); font-weight: 500; }
.apt-building { max-width: 760px; margin: 20px auto 0; }
.apt-roof { position: relative; margin: 0 24px; padding: 18px 0 10px; clip-path: polygon(8% 100%, 50% 0, 92% 100%); background: linear-gradient(180deg, rgba(216, 168, 78, .35), rgba(216, 168, 78, .12)); color: var(--paper-50); font-family: var(--serif); font-size: 15px; letter-spacing: .3em; text-align: center; padding-top: 34px; }
.apt-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; padding: 10px; border: 2px solid rgba(216, 168, 78, .45); border-top: none; background: rgba(17, 19, 41, .55); }
.apt-room { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; min-height: 132px; padding: 8px 4px 10px; border: 1px solid var(--rule); background: rgba(251, 244, 231, .045); color: inherit; cursor: pointer; font: inherit; }
.apt-room::before { content: ""; position: absolute; top: 8px; right: 8px; width: 14px; height: 10px; border: 1px solid rgba(240, 207, 125, .35); background: rgba(240, 207, 125, .12); }
.apt-room.is-empty { background: rgba(0, 0, 0, .18); }
.apt-room.is-empty::before { background: transparent; }
.apt-room:hover, .apt-room:focus-visible { border-color: var(--gold-500); outline: none; }
.apt-room.is-active { border-color: var(--gold-300); background: rgba(216, 168, 78, .14); box-shadow: 0 0 0 1px var(--gold-300) inset; }
.apt-room-no { color: var(--gold-500); font-family: var(--serif-en); font-size: 13px; letter-spacing: .08em; }
.apt-room-name { color: var(--paper-100); font-family: var(--serif); font-size: 12px; line-height: 1.4; }
.apt-room-who { display: flex; flex-wrap: wrap; justify-content: center; gap: 2px 4px; margin-top: auto; }
.apt-vacant { color: rgba(227, 207, 170, .4); font-size: 11px; letter-spacing: .2em; }
.apt-token { display: inline-flex; flex-direction: column; align-items: center; width: 44px; }
.apt-token img { width: 34px; height: 34px; object-fit: contain; }
.apt-glyph { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border: 1px solid rgba(240, 207, 125, .6); border-radius: 50%; background: rgba(17, 19, 41, .7); color: var(--gold-300); font-size: 16px; line-height: 1; }
.apt-token-name { color: var(--paper-50); font-size: 10px; line-height: 1.5; white-space: nowrap; }
.apt-ground { height: 10px; margin: 0 -12px; background: linear-gradient(90deg, transparent, rgba(216, 168, 78, .4), transparent); }
.legal-card .apt-hint { margin: 10px 0 0; font-size: 12px; text-align: center; color: rgba(227, 207, 170, .6); }
.apt-detail { max-width: 760px; margin: 14px auto 0; padding: 18px 20px; border: 1px solid rgba(216, 168, 78, .45); background: rgba(251, 244, 231, .04); }
.apt-detail:empty { display: none; }
.legal-card .apt-detail-no { margin: 0; color: var(--gold-500); font-family: var(--serif-en); font-size: 12px; letter-spacing: .1em; }
.legal-card .apt-detail h3 { margin: 2px 0 2px; color: var(--paper-50); font-size: 22px; }
.legal-card .apt-detail-theme { margin: 0 0 6px; color: var(--gold-300); font-size: 13px; }
.apt-resident { display: flex; gap: 12px; align-items: flex-start; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--rule); }
.apt-resident .apt-token { flex: none; width: 52px; }
.apt-resident .apt-token img { width: 44px; height: 44px; }
.apt-resident .apt-glyph { width: 40px; height: 40px; font-size: 20px; }
.apt-resident strong { color: var(--gold-300); font-family: var(--serif); font-weight: 500; }
.legal-card .apt-resident p { margin: 2px 0 0; font-size: 13px; }
.legal-card .apt-empty-note { margin-top: 10px; font-size: 13px; color: rgba(227, 207, 170, .75); }
.apt-roster { max-width: 760px; margin: 18px auto 0; }
.legal-card .apt-roster h3 { text-align: center; }
.legal-card .apt-roster ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; padding: 0 !important; list-style: none; }
.apt-roster li { display: flex; gap: 8px; align-items: center; padding: 6px 8px; border: 1px solid var(--rule); font-size: 12px; }
.apt-roster li strong { display: block; color: var(--paper-50); font-weight: 500; }
.legal-card .apt-note { font-size: 12px; color: rgba(227, 207, 170, .62); }
.legal-card .apt-room-list { grid-template-columns: 11em 1fr; gap: 6px 16px; }
.apt-token img, .apt-glyph { width: 26px; height: 26px; font-size: 13px; }
.legal-card .apt-room-list dd { margin-bottom: 8px; }
.apt-resident > div, .apt-detail { text-align: left; }
.apt-detail > p, .apt-detail > h3 { text-align: center; }
.apt-intro { max-width: 760px; margin: 0 auto; }
.legal-card .apt-intro-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px; margin: 12px 0 4px; padding: 0 !important; list-style: none; }
.apt-intro-grid li { padding: 8px 12px; border: 1px solid var(--rule); font-size: 13px; text-align: left; }
.apt-intro-grid strong { color: var(--gold-300); font-weight: 500; }
.legal-card .apt-self { margin: 4px 0 0; padding: 6px 10px; border-left: 2px solid var(--gold-500); background: rgba(216, 168, 78, .07); font-size: 13px; }
.animal-prefill, .apt-prefill { text-align: center; margin-top: 8px !important; }
.sgr-sun { --z: #d9a441; }
.sgr-moon { --z: #9fb3c8; }
.sgr-mars { --z: #c0574a; }
.sgr-rahu { --z: #7d6a9e; }
.sgr-jupiter { --z: #d8c56b; }
.sgr-saturn { --z: #5f7391; }
.sgr-mercury { --z: #6fa27b; }
.sgr-ketu { --z: #8c8577; }
.sgr-result { margin-top: 24px; }
.sgr-summary { text-align: center; }
.legal-card .sgr-summary h2 { margin: 4px 0 12px; color: var(--paper-50); font-size: clamp(30px, 5vw, 44px); }
.legal-card .sgr-facts { display: inline-block; margin: 0 auto 8px; padding: 0 !important; list-style: none; text-align: left; }
.legal-card .sgr-facts li { margin: 4px 0; font-size: 14px; }
.sgr-facts strong { color: var(--gold-300); font-weight: 500; }
.sgr-board { display: grid; grid-template-columns: repeat(10, 1fr); gap: 3px; max-width: 760px; margin: 20px auto 0; padding: 10px; border: 2px solid rgba(216, 168, 78, .45); background: rgba(17, 19, 41, .55); }
.sgr-cell { position: relative; aspect-ratio: 1; display: flex; align-items: center; justify-content: center; border-radius: 6px; background: color-mix(in srgb, var(--z) 55%, #171936); cursor: pointer; overflow: hidden; }
.sgr-cell.is-past { opacity: .45; }
.sgr-cell.is-now { outline: 3px solid var(--gold-300); outline-offset: 1px; z-index: 1; animation: sgr-pulse 1.8s ease-in-out infinite; }
.sgr-age { position: absolute; top: 2px; left: 4px; color: rgba(251, 244, 231, .75); font-family: var(--serif-en); font-size: 11px; line-height: 1; }
.sgr-cell .sgr-token { width: 78%; height: 78%; object-fit: contain; }
.sgr-glyph { color: var(--paper-50); font-size: 18px; line-height: 1; }
.sgr-flag { position: absolute; bottom: 1px; left: 0; right: 0; color: var(--paper-50); font-family: var(--serif-en); font-size: 9px; letter-spacing: .08em; text-align: center; }
.sgr-me { position: absolute; bottom: 2px; left: 50%; transform: translateX(-50%); padding: 0 4px; border-radius: 3px; background: var(--gold-300); color: var(--ink-950); font-size: 9px; font-weight: 700; white-space: nowrap; }
.legal-card .sgr-hint { margin: 10px 0 0; font-size: 12px; text-align: center; color: rgba(227, 207, 170, .6); }
.sgr-legend { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 6px; max-width: 760px; margin: 16px auto 0; }
.sgr-zone { display: flex; align-items: center; gap: 8px; padding: 6px 10px; border: 1px solid var(--rule); border-left: 6px solid var(--z); background: rgba(251, 244, 231, .03); color: inherit; cursor: pointer; font: inherit; text-align: left; }
.sgr-zone .sgr-token { width: 32px; height: 32px; object-fit: contain; flex: none; }
.sgr-zone .sgr-glyph { width: 32px; text-align: center; flex: none; }
.sgr-zone strong { display: block; color: var(--paper-50); font-family: var(--serif); font-size: 14px; font-weight: 500; }
.sgr-zone small { color: rgba(227, 207, 170, .7); font-size: 11px; }
.sgr-zone.is-current { box-shadow: 0 0 0 1px var(--gold-300) inset; }
.sgr-zone.is-active { background: rgba(216, 168, 78, .14); border-color: var(--gold-500); border-left-color: var(--z); }
.sgr-detail { max-width: 760px; margin: 14px auto 0; padding: 18px 20px; border: 1px solid rgba(216, 168, 78, .45); background: rgba(251, 244, 231, .04); text-align: left; }
.sgr-detail-head { display: flex; gap: 14px; align-items: center; }
.sgr-detail-head .sgr-token { width: 64px; height: 64px; object-fit: contain; flex: none; }
.sgr-detail-head .sgr-glyph { font-size: 36px; width: 64px; text-align: center; }
.legal-card .sgr-detail-kicker { margin: 0; color: var(--gold-500); font-size: 12px; }
.legal-card .sgr-detail h3 { margin: 0; color: var(--paper-50); font-size: 22px; }
.legal-card .sgr-detail-range { margin: 0; font-size: 13px; }
.legal-card .sgr-detail-theme { margin: 12px 0 4px; color: var(--gold-300); font-size: 13px; }
.legal-card .sgr-detail h4 { margin: 16px 0 6px; color: var(--paper-50); font-family: var(--serif); font-size: 15px; font-weight: 500; }
.legal-card .sgr-subs { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 4px 12px; padding: 0 !important; list-style: none; }
.sgr-subs li { display: flex; flex-wrap: wrap; gap: 0 8px; align-items: baseline; padding: 4px 8px; border-left: 2px solid var(--rule); font-size: 12px; }
.sgr-subs li.is-past { opacity: .5; }
.sgr-subs li.is-now { border-left-color: var(--gold-300); background: rgba(216, 168, 78, .1); }
.sgr-subs strong { color: var(--paper-50); font-weight: 500; }
.sgr-subs em { color: var(--gold-300); font-style: normal; font-weight: 700; }
.legal-card .sgr-note { font-size: 12px; color: rgba(227, 207, 170, .62); }
.sgr-me, .sgr-flag { font-size: 7px; }
.sgr-progress { height: 8px; margin: 0 0 8px; border-radius: 99px; background: rgba(251, 244, 231, .1); overflow: hidden; }
.sgr-progress span { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, var(--gold-500), var(--gold-300)); }
.sgr-apt-link, .sgr-reflect { margin: 14px 0; padding: 12px 14px; border: 1px solid rgba(216, 168, 78, .4); background: rgba(216, 168, 78, .07); }
.sgr-apt-link strong, .sgr-reflect strong { color: var(--gold-300); font-family: var(--serif); font-weight: 500; }
.legal-card .sgr-apt-link p, .legal-card .sgr-reflect p { margin: 4px 0 6px; font-size: 13px; }
.sgr-apt-link a { color: var(--gold-300); font-size: 12px; }
.sgr-reflect { border-style: dashed; background: transparent; }
.sgr-blocks { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 14px 0; }
.sgr-block { padding: 12px 14px; border: 1px solid var(--rule); background: rgba(251, 244, 231, .03); }
.legal-card .sgr-block h4 { margin: 0 0 6px; font-size: 14px; }
.legal-card .sgr-block ul { padding-left: 1.1em !important; }
.legal-card .sgr-block li { font-size: 12.5px; line-height: 1.8; }
.sgr-block.is-caution { border-color: rgba(192, 87, 74, .5); }
.legal-card .sgr-subs-title { margin-top: 20px !important; }
.legal-card .sgr-subs li { display: block; padding: 8px 10px; border: 1px solid var(--rule); border-left: 4px solid var(--z); }
.sgr-sub-top { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 8px; }
.sgr-sub-top .sgr-token { width: 26px; height: 26px; object-fit: contain; }
.sgr-sub-top .sgr-glyph { font-size: 14px; }
.sgr-sub-top span { color: rgba(227, 207, 170, .7); font-size: 11px; }
.legal-card .sgr-subs li p { margin: 4px 0 0; font-size: 12px; line-height: 1.7; }
.legal-card .sgr-subs li.is-now { border-color: var(--gold-300); border-left-color: var(--z); background: rgba(216, 168, 78, .1); }
.legal-card .sgr-sub-count { color: var(--gold-300) !important; font-weight: 700; }
.sgr-stage.is-now { border-color: var(--gold-300); background: rgba(216, 168, 78, .05); }
.sgr-stage.is-past { opacity: .92; }
.legal-card .sgr-stage-head { display: flex; align-items: center; gap: 10px; margin: 0 0 8px !important; color: var(--paper-50); font-size: 15px; }
.sgr-stage-label { padding: 1px 10px; border-radius: 99px; background: var(--gold-500); color: var(--ink-950); font-family: var(--sans); font-size: 12px; font-weight: 700; }
.sgr-stage .sgr-reflect { margin: 6px 0 10px; }
.sgr-stage .sgr-blocks { margin: 8px 0; }
.sgr-sub-age { padding: 0 6px; border-radius: 3px; background: rgba(251, 244, 231, .1); color: var(--paper-50) !important; font-size: 11px !important; font-weight: 700; }
.legal-card .sgr-subs li.is-focus { outline: 2px solid var(--paper-50); outline-offset: 1px; }
.sgr-subcard { border: 1px solid var(--rule); border-left: 5px solid var(--z); border-radius: 4px; background: rgba(251, 244, 231, .03); }
.sgr-subcard.is-now { border-color: var(--gold-300); border-left-color: var(--z); background: rgba(216, 168, 78, .07); }
.sgr-subcard.is-past > summary { opacity: .75; }
.sgr-subcard > summary { display: flex; align-items: center; gap: 10px; padding: 8px 12px; cursor: pointer; list-style: none; }
.sgr-subcard > summary::-webkit-details-marker { display: none; }
.sgr-subcard > summary::after { content: "＋"; margin-left: 4px; color: var(--gold-500); font-size: 14px; }
.sgr-subcard[open] > summary::after { content: "－"; }
.sgr-subcard > summary .sgr-token { width: 30px; height: 30px; object-fit: contain; flex: none; }
.sgr-subcard-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; flex: 1; }
.sgr-subcard-title strong { color: var(--paper-50); font-family: var(--serif); font-size: 15px; font-weight: 500; }
.sgr-subcard-title small { color: rgba(227, 207, 170, .7); font-size: 11px; }
.sgr-subcard-tag { flex: none; padding: 1px 8px; border-radius: 99px; border: 1px solid var(--rule); color: rgba(227, 207, 170, .8); font-size: 11px; font-style: normal; }
.sgr-subcard.is-now .sgr-subcard-tag { border-color: var(--gold-300); background: var(--gold-300); color: var(--ink-950); font-weight: 700; }
.sgr-subcard.is-focus-target { outline: 2px solid var(--paper-50); }
.sgr-subcard-body { padding: 4px 14px 12px; }
.legal-card .sgr-subcard-lead { margin: 4px 0 8px; color: var(--paper-50); font-size: 14px; }
.legal-card .sgr-subcard-body .sgr-sub-count { margin: 0 0 8px; color: var(--gold-300); font-size: 13px; font-weight: 700; }
.sgr-subcard-body .sgr-apt-link, .sgr-subcard-body .sgr-reflect { margin: 8px 0; }
.animal-pal-imgs { display: flex; flex: none; gap: 2px; }
.animal-pal-imgs img { width: 48px; height: 48px; object-fit: contain; }
.legal-card .animal-pal p { margin: 0; font-size: 13px; }
.animal-pal strong { color: #8fcf9c; }
.animal-index-item small.animal-index-pal { color: #8fcf9c; }
.animal-pair-who { padding: 1px 12px; border-radius: 99px; background: rgba(216, 168, 78, .16); color: var(--gold-300); font-size: 12px; letter-spacing: .1em; }
.animal-pair-side img { width: min(140px, 32vw); height: auto; }
.legal-card .animal-pair-name { color: var(--paper-50); font-family: var(--serif); font-size: 17px; font-weight: 500; }
.animal-pair-next { justify-content: center; margin-top: 16px; }
.animal-form .primary-action { width: min(320px, 100%); padding: 0 28px; }
.apt-check { white-space: nowrap; }
.legal-card .sgr-subs { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 8px; }

@media (max-width: 720px) {
  .animal-card { grid-template-columns: 1fr; text-align: center; }
  .animal-art { width: min(300px, 80vw); margin-inline: auto; }
  .animal-foe { text-align: left; }
  .animal-form { flex-direction: column; align-items: stretch; }
  .animal-details { grid-template-columns: 1fr; }
  .apt-grid { gap: 4px; padding: 6px; }
  .apt-room { min-height: 112px; padding: 6px 2px 8px; }
  .apt-room::before { display: none; }
  .apt-room-name { font-size: 10px; }
  .apt-token { width: 36px; }
  .apt-token-name { font-size: 9px; }
  .legal-card .apt-room-list { grid-template-columns: 1fr; gap: 0; }
  .sgr-board { gap: 2px; padding: 5px; }
  .sgr-age { font-size: 8px; top: 1px; left: 2px; }
  .sgr-blocks { grid-template-columns: 1fr; }
  .sgr-subcard > summary { flex-wrap: wrap; }
  .animal-pal { flex-direction: column; text-align: left; }
}

/* すごろく：これから来るゾーンの鍵（詳細鑑定で開く） */
.sgr-cell.is-locked { opacity: .82; }
.sgr-cell.is-locked::after { content: "🔒"; position: absolute; top: 2px; right: 3px; font-size: 9px; opacity: .8; }
.sgr-lock { margin: 14px 0 4px; padding: 16px 18px; border: 1px solid rgba(216, 168, 78, .55); border-radius: 4px; background: linear-gradient(180deg, rgba(216, 168, 78, .12), rgba(216, 168, 78, .04)); }
.legal-card .sgr-lock-title { margin: 0 0 8px; color: var(--gold-300); font-family: var(--serif); font-size: 17px; }
.legal-card .sgr-lock ul { margin: 0 0 10px; padding-left: 1.2em !important; }
.legal-card .sgr-lock li { font-size: 13px; line-height: 1.9; }
.legal-card .sgr-lock-note { font-size: 12px; color: rgba(227, 207, 170, .75); }
.sgr-lock .article-next { justify-content: flex-start; }
.sgr-lock .primary-action { width: auto; min-height: 52px; padding: 0 24px; font-size: 14px; }
.sgr-subcard-tag.is-locked { border-color: rgba(216, 168, 78, .6); color: var(--gold-300); }
.legal-card .sgr-thanks { margin: 12px auto 0; padding: 10px 14px; max-width: 520px; border: 1px solid var(--gold-300); background: rgba(216, 168, 78, .12); color: var(--paper-50); font-size: 14px; text-align: center; }
