/* machi9 additions on top of the mockup stylesheets in css/base. Only what the mockup markup does not already cover. */
/* Brand colours as variables: the theme a member picks in 個人設定 (data-theme on <html>, set by font-size.js from the machi9-theme meta) only swaps these. Keep contrast with white text at 4.5:1 or more. */
:root{--star:#f6c33b;--star-edge:#f0a500;--brand:#335ac0;--brand-vivid:#254dea;--brand-deep:#1d3f9a;--brand-deeper:#1a3bb8;--brand-tint:#eaf0ff;--brand-tint2:#eff4ff;--brand-tint3:#f5f8ff;--brand-tint4:#e8eefb;--brand-soft:#9ab4fb;--brand-rgb:51,90,192;--brand-vivid-rgb:37,77,234;--night:#172f69;--night-line:#254785;--night-hover:#2a4781;--night-dot:#7f9cd0;--night-scroll:#617dac;--night-top:#16306e;--night-bottom:#0c1c46;--night-glow:120,170,255;--night-accent:#a8c2ff;--night-light:#9fb8ec;--night-lamp:#8fc0ff;--night-head:#e8f0ff}
:root[data-theme="green"]{--brand:#2f7a4f;--brand-vivid:#1b7f43;--brand-deep:#1f5c3a;--brand-deeper:#17492e;--brand-tint:#e8f5ec;--brand-tint2:#eef8f1;--brand-tint3:#f5fbf7;--brand-tint4:#e3f1e8;--brand-soft:#8fd0a8;--brand-rgb:47,122,79;--brand-vivid-rgb:27,127,67;--night:#174a31;--night-line:#25694a;--night-hover:#2a6a47;--night-dot:#7fd0a0;--night-scroll:#5f9c7b;--night-top:#1b4f35;--night-bottom:#0b2a1b;--night-glow:120,220,170;--night-accent:#a8e6c2;--night-light:#9fe3bd;--night-lamp:#8fe8b8;--night-head:#e8fff1}
:root[data-theme="purple"]{--brand:#6a4bb5;--brand-vivid:#7a3fd1;--brand-deep:#4d3590;--brand-deeper:#3d2877;--brand-tint:#f0ebfa;--brand-tint2:#f4f0fc;--brand-tint3:#f9f7fd;--brand-tint4:#ece6f8;--brand-soft:#b9a6ea;--brand-rgb:106,75,181;--brand-vivid-rgb:122,63,209;--night:#2f2468;--night-line:#473a8a;--night-hover:#4a3d8c;--night-dot:#a08fd8;--night-scroll:#8a7cc2;--night-top:#352872;--night-bottom:#1c1442;--night-glow:170,140,255;--night-accent:#c4b5f5;--night-light:#bcaef0;--night-lamp:#b8a6ff;--night-head:#f2edff}
:root[data-theme="pink"]{--brand:#b0467a;--brand-vivid:#c2306e;--brand-deep:#8a3361;--brand-deeper:#6f284d;--brand-tint:#fbebf3;--brand-tint2:#fcf0f6;--brand-tint3:#fdf6f9;--brand-tint4:#f8e5ee;--brand-soft:#eaa3c4;--brand-rgb:176,70,122;--brand-vivid-rgb:194,48,110;--night:#5c2442;--night-line:#7f3a5e;--night-hover:#7d3a5c;--night-dot:#d996b8;--night-scroll:#b8708f;--night-top:#64274a;--night-bottom:#36132a;--night-glow:255,150,200;--night-accent:#f5b5d3;--night-light:#f0aecb;--night-lamp:#ffa6cc;--night-head:#ffedf5}
:root[data-theme="orange"]{--brand:#b3571a;--brand-vivid:#c24e00;--brand-deep:#8a4213;--brand-deeper:#6e340f;--brand-tint:#fdf0e6;--brand-tint2:#fef4ec;--brand-tint3:#fef9f4;--brand-tint4:#fbebdd;--brand-soft:#f0b88c;--brand-rgb:179,87,26;--brand-vivid-rgb:194,78,0;--night:#5a2d10;--night-line:#7d4620;--night-hover:#7b4420;--night-dot:#e0a574;--night-scroll:#b98258;--night-top:#623214;--night-bottom:#341a08;--night-glow:255,185,120;--night-accent:#f5c79e;--night-light:#f0c096;--night-lamp:#ffc08a;--night-head:#fff0e3}
:root[data-theme="slate"]{--brand:#475569;--brand-vivid:#334155;--brand-deep:#2b3646;--brand-deeper:#1e2733;--brand-tint:#eceff3;--brand-tint2:#f0f2f5;--brand-tint3:#f6f7f9;--brand-tint4:#e6eaef;--brand-soft:#a3afbf;--brand-rgb:71,85,105;--brand-vivid-rgb:51,65,85;--night:#1e2733;--night-line:#334155;--night-hover:#334155;--night-dot:#8696ab;--night-scroll:#6b7a8f;--night-top:#263241;--night-bottom:#131a23;--night-glow:160,185,215;--night-accent:#b4c2d6;--night-light:#aebdd0;--night-lamp:#a8bad2;--night-head:#eef2f7}
.ui-icon{display:inline-block;width:1.15em;height:1.15em;flex-shrink:0;vertical-align:-.2em}
.button .ui-icon,.text-link .ui-icon{width:18px;height:18px}
.header-logout{display:contents}
.site-header .account-action .ui-icon{width:21px;height:21px}
/* Header buttons (マイページ, 募集する): the same rounded square as 「位置を調整」 — 8px corners, a 1px border, bold text, the icon on the left; 募集する stays blue. */
.site-header .header-actions .button.account-action,.site-header .header-actions .button.header-post{align-items:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid;border-radius:8px;
  font-size:14px;font-weight:700;line-height:1;white-space:nowrap;box-shadow:none}
.site-header .header-actions .button.account-action{display:inline-flex;border-color:#c9d6ef;background:#fff;color:#1f3a6e}
.site-header .header-actions .button.account-action:hover{border-color:#9fb5e4;background:#f4f7ff;color:var(--brand-deeper)}
.site-header .header-actions .button.header-post{border-color:var(--brand-vivid);background:var(--brand-vivid);color:#fff}
.site-header .header-actions .button.header-post:hover{border-color:var(--brand-deeper);background:var(--brand-deeper);color:#fff}
.site-header .header-actions .button.account-action .ui-icon,.site-header .header-actions .button.header-post .ui-icon{width:18px;height:18px}
.site-header .header-actions:has(.mypage-link){gap:10px}
@media(max-width:600px){.site-header .header-actions .button.account-action{min-height:38px;padding:0 12px;font-size:13px;gap:6px}}
.svc-nav-icon .ui-icon,.m-mobile-nav .ui-icon{width:22px;height:22px}
.post-facts>span{display:inline-flex;align-items:center;gap:5px}.post-facts .ui-icon{width:14px;height:14px}
.save-button .ui-icon{width:22px;height:22px}.saved-filter .ui-icon,.saved-counter .ui-icon{width:15px;height:15px;vertical-align:-.25em}
.area-buttons a .ui-icon{width:14px;height:14px}.area-hint .ui-icon,.local-note .ui-icon{width:16px;height:16px;margin-right:6px}
.hero-note .ball .ui-icon{width:22px;height:22px}.note-icon .ui-icon,.partner-banner-mark .ui-icon{width:22px;height:22px}
.empty-state>.ui-icon,.reg-empty>.ui-icon{display:block;width:34px;height:34px;margin:0 auto 12px;color:#8aa0c8}
.reg-region-buttons .ui-icon{width:14px;height:14px;margin-left:auto}.reg-city-options .ui-icon{width:14px;height:14px;margin-right:4px}.reg-selected-areas .ui-icon{width:13px;height:13px;margin-left:6px}
.reg-mail-symbol .ui-icon{width:40px;height:40px}.svc-invite-icon .ui-icon{width:40px;height:40px}
.search-pagination .ui-icon{width:15px;height:15px}
[hidden]{display:none!important}

/* Form feedback */
.m-help{font-size:13px;color:#687d9f;line-height:1.8;margin:6px 0 14px}
.m-field small,.reg-field small{display:block;font-size:12px;color:#7486a6;margin-top:6px;line-height:1.7}
.input-limit{display:block;font-size:12px;color:#7486a6;margin-top:4px}
.m-form-error.visible,.reg-error.visible{display:block}
.m-form-errors,.reg-error-list{grid-column:1/-1;padding:16px 20px;border:1px solid #efc4ca;background:#fff4f5;color:#a4323f;border-radius:10px;margin:0 0 20px;outline:none}
.m-form-errors h2,.reg-error-list h2{font-size:15px;margin:0 0 6px}.m-form-errors ul,.reg-error-list ul{margin:0;padding-left:20px;font-size:13px;line-height:1.8}.m-form-errors p,.reg-error-list p{font-size:12px;margin:6px 0 0}
.m-notice.success{background:#eaf7f0;border-left-color:#5fb487;color:#236447}
.svc-note{font-size:13px;color:#6178a3;background:#f3f6fd;border-radius:10px;padding:12px 14px;line-height:1.8}
.svc-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.svc-status.pending{background:#fff1df;color:#94581f}.svc-status.complete{background:#e9edf5;color:#4d5b7a}
.button.danger{background:#b23a48;color:#fff;border-color:#b23a48}.button.danger:hover{background:#962f3b}
.danger-panel h2{color:#a4323f}
.m-memory{grid-column:1/-1;background:#f6f8fd;border-radius:12px;padding:14px 16px;margin:4px 0 16px}.m-memory .m-check{margin:0 0 6px}.m-memory .text-link{font-size:13px;padding:0;background:none;border:0;cursor:pointer}

/* Area picker hosts the mockup's reg-map-picker markup */
.area-picker-field{margin-top:8px}.area-picker-field>[data-area-view]>.reg-placeholder{padding:18px}
.reg-prefecture-buttons button,.reg-city-options button,.reg-region-buttons button{display:inline-flex;align-items:center;gap:4px}

/* Team search */
.reg-search-row{display:flex;gap:10px;margin-top:8px}.reg-search-row input{flex:1;min-width:0;margin:0}.reg-search-row .button{white-space:nowrap}
.reg-field>label{font-weight:700;font-size:14px}

/* Verification code boxes use the mockup's .reg-code-boxes grid */
.reg-code-boxes .code-box{text-align:center;font-size:24px;font-weight:800;font-variant-numeric:tabular-nums;padding:12px 0}
.reg-resend form{display:contents}.reg-resend button{background:none;border:0;color:var(--brand-vivid);font-size:13px;cursor:pointer;padding:0}.reg-resend button:disabled{color:#98a6bf;cursor:default}
.account-flow>form+form{margin-top:12px}

/* Member home */
.svc-row>.svc-status{white-space:nowrap}

/* Guest comments */
.comment-panel h2 small{font-size:14px;color:#7486a6;font-weight:600;margin-left:6px}
.guest-comment{margin:14px 0;padding:18px 20px;background:#f6f8fd;border-radius:14px;scroll-margin-top:24px}
.guest-comment:target{outline:2px solid #5271ed}
.comment-heading{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px}
.comment-heading strong{display:inline-flex;align-items:center;gap:8px;font-size:14px}.comment-heading time{color:#7486a6;font-size:12px}
.comment-heading .avatar{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#e2ebff;color:var(--brand-vivid);font-size:12px;font-weight:800}
.comment-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.85;margin:10px 0}
.comment-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:16px;font-size:13px}.comment-actions small{margin-right:auto;color:#7486a6}
.comment-actions .text-link{display:inline-flex;align-items:center;gap:4px}
.guest-comment.comment-depth-1{margin-left:24px;border-left:3px solid #c3d2f5}.guest-comment.comment-depth-2{margin-left:48px;border-left:3px solid #c3d2f5}.guest-comment.comment-depth-3{margin-left:72px;border-left:3px solid #c3d2f5}
.deleted-comment{font-size:13px;font-style:italic;color:#7486a6;margin:0}
.comment-editor{border-top:1px solid #e3e9f5;margin-top:26px;padding-top:22px}.comment-editor h3{grid-column:1/-1;margin-bottom:12px}
.reply-context{grid-column:1/-1;margin:0 0 14px;padding:12px 16px;border-left:3px solid #5271ed;background:#eef3ff;border-radius:0 10px 10px 0;overflow-wrap:anywhere}.reply-context p{white-space:pre-wrap;margin:6px 0}
#comments,#comment-editor{scroll-margin-top:24px}
.comment-fold{margin-top:26px;border-top:1px solid #e3e9f5;padding-top:18px}
.comment-fold>summary{display:flex;align-items:center;gap:8px;min-height:44px;box-sizing:border-box;padding:0 14px;border:1px solid #cfdaf3;border-radius:8px;background:#fff;color:var(--brand-vivid);font-size:14px;font-weight:800;cursor:pointer;list-style:none}
.comment-fold>summary::-webkit-details-marker{display:none}
.comment-fold>summary::after{content:"";margin-left:auto;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .15s}
.comment-fold[open]>summary::after{transform:rotate(-135deg)}
.comment-fold>summary:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.comment-fold>.comment-editor{border-top:0;margin-top:0;padding-top:18px}
@media(min-width:900px){body.recruit-detail .m-side nav{position:sticky;top:20px;max-height:calc(100vh - 40px);overflow-y:auto;scrollbar-width:thin}}
@media(max-width:700px){.guest-comment{padding:14px}.guest-comment.comment-depth-1{margin-left:12px}.guest-comment.comment-depth-2{margin-left:24px}.guest-comment.comment-depth-3{margin-left:36px}.svc-grid.two{grid-template-columns:1fr}.reg-search-row{flex-direction:column}}
.team-panel .button.light,.s-login-panel .m-form>.button{justify-content:center;gap:10px}
.svc-row>.svc-status{background:#edf0f5;color:#68778c}
.svc-emblem .ui-icon{width:36px;height:36px}
/* Team image upload */
.team-image-row{display:flex;gap:18px;align-items:flex-start;margin-top:8px}.team-image-row input[type=file]{padding:10px;background:#fff}
.team-image-preview{flex-shrink:0;display:grid;place-items:center;overflow:hidden;background:#eef3fc;border:1px dashed #b9c9e8;color:#7486a6;font-size:13px}
.team-image-preview img{width:100%;height:100%;object-fit:cover}
.team-image-preview.logo{width:88px;height:88px;border-radius:50%;font-size:30px}.team-image-preview.cover{width:200px;height:112px;border-radius:12px}
@media(max-width:700px){.team-image-row{flex-direction:column}}
.reg-team-symbol.team-logo{object-fit:cover;padding:0;background:#fff}.reg-team-symbol .ui-icon{width:22px;height:22px}
/* Required marks: one solid badge everywhere in the brand blue family so required fields stand out without breaking the palette. */
.reg-badge.required{color:#fff;background:var(--brand);font-weight:700;letter-spacing:.5px}
/* One size for every 必須/任意 badge, wherever it sits (span, legend, summary, heading). */
.reg-badge{margin-left:6px;font-size:12px;line-height:1.5;padding:1px 6px;vertical-align:1px}
/* Recruitment cards: poster with a user icon, and posted / deadline / comment count. */
.post-bottom .organizer{display:inline-flex;align-items:center;gap:6px;min-width:0}.post-bottom .organizer .ui-icon{width:20px;height:20px;padding:3px;border-radius:50%;background:var(--brand-tint);color:var(--brand-vivid);flex-shrink:0}
.post-bottom .organizer>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.post-meta{display:flex;flex-wrap:wrap;gap:4px 14px;margin:10px 0 2px;font-size:12px;color:#7486a6}.post-meta>span{display:inline-flex;align-items:center;gap:4px}.post-meta .ui-icon{width:13px;height:13px}.post-meta b{color:#3a4f75;font-weight:700}
/* Sign-up method illustrations */
.s-option-art{display:block;line-height:0}.s-option-art svg{width:88px;height:88px}
.post-meta .soon,.post-meta .soon b{color:var(--brand)}.post-meta .soon b{font-weight:800}
/* Readability for 40–50s: form explanations 14px; card meta 13px so it still fits on one line. */
.m-field small,.reg-field small,.m-help,.input-limit{font-size:14px;line-height:1.75}
.post-meta{font-size:13px}
/* Team members and join applications */
.count-badge{display:inline-block;margin-left:6px;padding:2px 10px;border-radius:999px;background:var(--brand);color:#fff;font-size:13px;font-weight:700;vertical-align:2px}
.panel-count{margin-left:6px;font-size:14px;color:#7486a6;font-weight:600}
.join-alert{display:flex;align-items:center;gap:10px;margin-top:0;font-size:15px;font-weight:700;color:var(--brand);text-decoration:none}.join-alert .ui-icon{width:20px;height:20px;flex-shrink:0}
.join-request{margin:16px 0;padding:18px 20px;background:#f6f8fd;border-radius:14px}
.join-request-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px}
.join-request-head strong{display:inline-flex;align-items:center;gap:8px;font-size:17px}.join-request-head strong .ui-icon{width:22px;height:22px;padding:3px;border-radius:50%;background:var(--brand-tint);color:var(--brand-vivid)}
.join-request-head small{color:#68778c;font-size:14px}
.join-request .svc-facts{margin:16px 0}
.join-request .m-actions{display:flex;flex-wrap:wrap;gap:10px}.join-request .m-actions form{margin:0}
.member-row h3{overflow-wrap:anywhere}.member-role{flex-shrink:0;padding:4px 10px;border-radius:8px;background:var(--brand-tint4);color:var(--brand);font-size:13px;font-weight:700}
@media(max-width:700px){.join-request{padding:14px}.join-request .m-actions form,.join-request .m-actions .button{width:100%;justify-content:center}}
/* Team search: the picked row shows its own submit button in place of 「選択」, so the next step is right there. */
.reg-team-go{display:none;margin-left:auto;flex:none;padding:10px 18px;font-size:14px}
.reg-team-result:has(input:checked) .reg-team-pick{display:none}.reg-team-result:has(input:checked) .reg-team-go{display:inline-flex}
.reg-team-more{display:flex;justify-content:center;width:100%;margin-top:4px}
.reg-team-result{scroll-margin-top:24px}
.side-count{margin-left:auto;padding:1px 9px;border-radius:999px;background:var(--brand);color:#fff;font-size:12px;font-weight:700;line-height:1.7}
@media(max-width:1000px){.reg-team-result:has(input:checked) .reg-team-go{flex-basis:100%;justify-content:center}}
/* 「もっと見る」 jumps straight to the first new team; the mockup's smooth scrolling felt dizzying there. */
html:has(.team-search){scroll-behavior:auto}
/* My posts (member) */
.my-posts-actions{margin:0 0 20px}
.my-post{padding:18px 0;border-bottom:1px solid #e5eaf2}.my-post:last-of-type{border-bottom:0}
.my-post-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.my-post-type{font-size:13px;color:var(--brand);font-weight:700}
.my-post h3{margin:8px 0 4px;font-size:17px;overflow-wrap:anywhere}.my-post h3 a{color:#20365f}.my-post h3 a:hover{color:var(--brand-deeper)}
.my-post .m-actions{margin-top:12px}
.svc-status.expired{background:#edf0f4;color:#68778c}
/* Recruitment categories: icon tiles on the form (tap once to choose) and an icon inside each type tag. */
.category-picker{border:0;padding:0;margin:0;min-width:0}.category-picker legend{padding:0;margin-bottom:8px;font-weight:700}
.category-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.category-tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:104px;padding:14px 8px;border:1px solid #d6e0f2;border-radius:14px;background:#fff;cursor:pointer;text-align:center;font-size:14px;font-weight:700;color:#264676}
.category-tile input{position:absolute;opacity:0;pointer-events:none}
.category-tile .category-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#eef3ff;color:var(--brand)}.category-tile .category-icon .ui-icon{width:26px;height:26px}
.category-tile:hover{border-color:var(--brand-soft)}
.category-tile:has(input:checked){border-color:var(--brand-vivid);background:var(--brand-tint2);box-shadow:0 0 0 1px var(--brand-vivid)}.category-tile:has(input:checked) .category-icon{background:var(--brand-vivid);color:#fff}
.category-tile:has(input:focus-visible){outline:3px solid var(--brand-soft);outline-offset:2px}
.type-tag{display:inline-flex;align-items:center;gap:4px}.type-tag .ui-icon{width:14px;height:14px;flex:none}
.summary-body-title{margin:18px 0 6px;font-size:15px}
@media(max-width:700px){.category-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.category-tile{min-height:92px}}
/* Saved venues: one tap fills the place and its area. */
.venue-choices{grid-column:1/-1;margin:-4px 0 6px}.venue-choices-title{display:block;font-size:14px;font-weight:700;color:#264676;margin-bottom:8px}
.venue-buttons{display:flex;flex-wrap:wrap;gap:8px}
.venue-button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;max-width:100%;padding:9px 14px;border:1px solid #d6e0f2;border-radius:10px;background:#fff;text-align:left;cursor:pointer}
.venue-button strong{font-size:14px;color:#264676;overflow-wrap:anywhere}.venue-button small{font-size:12px;color:#7486a6}
.venue-button:hover{border-color:var(--brand-soft)}.venue-button[aria-pressed=true]{border-color:var(--brand-vivid);background:var(--brand-tint2);box-shadow:0 0 0 1px var(--brand-vivid)}
/* Poster mark in lists: team logo (square-ish) or member photo (round); icons when no image. */
.search-author{display:inline-flex;align-items:center;gap:8px;min-width:0}.search-author>span:last-child{overflow-wrap:anywhere}
.author-mark{flex:none;width:28px;height:28px;border-radius:7px;object-fit:cover;background:#fff;border:1px solid #e1e8f5}
.author-mark.photo{border-radius:50%}
.author-icon{display:inline-grid;place-items:center;background:var(--brand-tint);color:var(--brand-vivid);border-color:transparent}.author-icon .ui-icon{width:16px;height:16px}
.post-bottom .organizer .author-mark{width:24px;height:24px}.post-bottom .organizer .author-icon .ui-icon{width:14px;height:14px;padding:0;background:none}
/* No-team member home: a draft board under stadium lights, so the page feels like being scouted rather than empty. */
.svc-welcome.draft-hero{position:relative;overflow:hidden;min-height:260px;padding-right:46%;border:0;color:#fff;
  background:radial-gradient(ellipse at 12% 0,#3f6fe0 0,transparent 55%),radial-gradient(ellipse at 88% 0,#3a64d4 0,transparent 50%),linear-gradient(160deg,#10245a 0%,#173a8f 60%,#1d4fc0 100%)}
.draft-hero .draft-art{position:absolute;right:12px;bottom:0;width:44%;max-width:440px;height:auto}
.draft-hero>small{color:#ffe9a8;font-weight:800;letter-spacing:3px}
.draft-hero h1,.draft-hero p{position:relative;color:#fff}.draft-hero p{color:#dbe6ff}
.draft-hero .svc-status{position:relative;background:#ffffff26;color:#fff}
.draft-hero .m-notice{position:relative;background:#ffffff1f;border-left-color:#ffe9a8;color:#fff}
.draft-hero .button{position:relative}
.draft-hero .button.primary{background:#fff;color:var(--brand-deep)}
.draft-hero .button.umpire-go-button{margin:10px 0 0;background:transparent;color:#fff;border:1px solid #ffffffb3}.draft-hero .button.umpire-go-button:hover{background:#ffffff1f}
@media(max-width:700px){.svc-welcome.draft-hero{padding:24px 20px 170px}.draft-hero .draft-art{right:50%;transform:translateX(50%);width:92%}}
.draft-hero .svc-status{margin-top:4px}.draft-hero p{margin:12px 0 18px;line-height:1.8}
/* Member comments: fixed author name shown instead of an input; author mark next to the name. */
.member-author strong{display:block;padding:10px 0 4px;font-size:16px;color:#20365f}
.comment-heading strong .author-mark{width:26px;height:26px}.comment-heading .member-role{margin-left:4px}
/* Comment actions are plain links (no underline); guest posts are labelled 非会員 next to the poster name. */
.comment-actions .text-link{border-bottom:0;padding:4px 0}.comment-actions .text-link:hover{color:var(--brand-deeper)}
.guest-role{display:inline-block;margin-left:4px;padding:4px 10px;border-radius:8px;background:#edf0f5;color:#68778c;font-size:13px;font-weight:700}
/* Header user chip: who is logged in, with team logo or photo, nickname and team・role. It opens the member page. */
.user-chip{display:inline-flex;align-items:center;gap:10px;min-width:0;max-width:300px;padding:6px 14px 6px 6px;border:1px solid #d6e0f2;border-radius:8px;background:#fff;color:#20365f}
.user-chip:hover{border-color:var(--brand-soft);background:var(--brand-tint3)}
.user-chip-mark{flex:none;width:38px;height:38px;border-radius:10px;object-fit:cover;border:1px solid #e1e8f5;background:#fff}
.user-chip-mark.photo{border-radius:50%}
.user-chip-mark.icon{display:grid;place-items:center;background:var(--brand-tint);color:var(--brand-vivid);border-color:transparent}.user-chip-mark.icon .ui-icon{width:20px;height:20px}
.user-chip-text{display:flex;flex-direction:column;min-width:0;line-height:1.35}
.user-chip-text strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-chip-text small{font-size:12px;color:#68778c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.site-header .header-actions:has(.user-chip){gap:14px}
@media(max-width:760px){.user-chip{max-width:190px;padding:4px 12px 4px 4px}.user-chip-mark{width:32px;height:32px}.user-chip-text small{display:none}}
/* A light in the team color (brand blue without one) circles the chip's border; the chip itself stays still. */
@property --chip-glow-angle{syntax:"<angle>";initial-value:0deg;inherits:false}
.user-chip{position:relative}
@supports (mask-composite:exclude){
  .user-chip::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:2px;pointer-events:none;
    background:conic-gradient(from var(--chip-glow-angle),transparent 0turn .7turn,color-mix(in srgb,var(--chip-glow,var(--brand)) 25%,transparent) .85turn,var(--chip-glow,var(--brand)) .96turn,transparent 1turn);
    mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;
    filter:drop-shadow(0 0 3px color-mix(in srgb,var(--chip-glow,var(--brand)) 60%,transparent));animation:chip-glow-orbit 6s linear infinite}
}
@keyframes chip-glow-orbit{to{--chip-glow-angle:360deg}}
@media(prefers-reduced-motion:reduce){.user-chip::before{animation:none;--chip-glow-angle:45deg}}
.user-chip-team{display:flex;min-width:0}.user-chip-team span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.user-chip-team b{flex:none;font-weight:700;color:var(--brand)}
/* Mail notice switches: large toggles; the per-kind switches are dimmed while the master switch is off. */
.notice-settings{display:block}
.notice-switch{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-bottom:1px solid #e5eaf2;cursor:pointer}
.notice-switch input{position:absolute;opacity:0;pointer-events:none}
.notice-switch strong{display:block;font-size:15px;color:#20365f}.notice-switch small{display:block;font-size:14px;color:#68778c;margin-top:2px}
.notice-toggle{position:relative;flex:none;width:48px;height:28px;margin-top:2px;border-radius:999px;background:#cbd5e6;transition:background .15s}
.notice-toggle::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .15s}
.notice-switch input:checked~.notice-toggle{background:var(--brand)}.notice-switch input:checked~.notice-toggle::after{transform:translateX(20px)}
.notice-switch input:focus-visible~.notice-toggle{outline:3px solid var(--brand-soft);outline-offset:2px}
.notice-all{border-bottom:2px solid #d6e0f2}
.notice-kinds{border:0;padding:0 0 0 12px;margin:6px 0 0}.notice-kinds legend{padding:10px 0 0;font-weight:700;font-size:14px;color:#264676}
.notice-kinds.off{opacity:.45}
/* Share buttons (brand blue, no LINE green). */
.share-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}
/* Ground (opponent posts): radio chips on the form, a small tag in lists. Blue family; "なし" is the quieter one. */
.ground-choice{border:0;padding:0;margin:0 0 12px;min-width:0}.ground-choice legend{padding:0;margin-bottom:8px;font-weight:700}
.ground-options{display:flex;flex-wrap:wrap;gap:8px}
.ground-option{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;border:1px solid #d6e0f2;border-radius:10px;background:#fff;cursor:pointer;font-weight:700;font-size:14px;color:#264676}
.ground-option input{position:absolute;opacity:0;pointer-events:none}
.ground-option:has(input:checked){border-color:var(--brand-vivid);background:var(--brand-tint2);box-shadow:0 0 0 1px var(--brand-vivid);color:var(--brand-deep)}
.ground-option:has(input:focus-visible){outline:3px solid var(--brand-soft);outline-offset:2px}
/* ホーム球場の背景（/my/team/stadium）: 絵つきの選択カード */
.stadium-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.stadium-option{position:relative;display:flex;flex-direction:column;gap:4px;padding:8px;border:1px solid #d6e0f2;border-radius:10px;background:#fff;cursor:pointer;color:#264676}
.stadium-option input{position:absolute;opacity:0;pointer-events:none}
.stadium-option img{display:block;width:100%;height:auto;aspect-ratio:400/415;border-radius:6px}
.stadium-option .shop-ground{border-radius:6px;overflow:hidden}.stadium-option .shop-ground img{aspect-ratio:auto;border-radius:0}
.stadium-option .board-mock{border-radius:6px}
/* 外野看板のデザイン（shop/parts boardMock）: フェンスの一部と看板3枚 */
.board-mock{display:block;width:100%;height:auto;aspect-ratio:2/1}
/* 中継の演出パック（shop/parts effectMock）と、設定の「標準の演出」 */
.effect-mock{display:block;width:100%;height:auto;aspect-ratio:2/1}
.card-mock{display:block;width:100%;height:auto;aspect-ratio:240/126}
.scoreboard-mock{display:block;width:100%;height:auto;aspect-ratio:2/1}
.book-cover{display:block;width:100%;height:auto;aspect-ratio:3/4;border-radius:6px}
.stadium-option .book-cover{max-width:160px;margin:0 auto}
.shop-grid-book{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.shop-grid-book .book-cover{max-width:200px;margin:0 auto}
.shop-book-large{max-width:300px}
.book-cover-sheet{display:flex;justify-content:center}.book-cover-sheet .book-cover{max-width:360px;box-shadow:0 6px 24px rgba(23,51,92,.25)}
.book-games .game-row{cursor:default}
@media print{.book-page .m-side,.book-page .m-mobile-nav,.book-page .book-tools,.book-page .m-page-heading,.book-page header.site-header,.book-page .site-foot,.book-page .page-top,.book-page .m-actions{display:none!important}
.book-page .m-shell{display:block}.book-page .m-panel{box-shadow:none;border:0;break-inside:avoid}.book-page .book-cover-sheet{break-after:page;page-break-after:always;min-height:260mm;align-items:center}
.book-page .book-cover-sheet .book-cover{max-width:150mm;box-shadow:none}.book-page .book-sheet{margin:0 0 8mm}.book-page .rx-table-wrap{overflow:visible}}
.stadium-option .scoreboard-mock{border-radius:6px}
.stadium-option .card-mock{border-radius:6px}
.stadium-option .effect-mock{border-radius:6px}
.effect-none{display:flex;align-items:center;justify-content:center;aspect-ratio:2/1;border-radius:6px;background:#123d26;color:#e8f1ea;font-size:13px;font-weight:700}
.shop-board-large{max-width:720px;border-radius:10px;overflow:hidden}
.stadium-option strong{display:flex;align-items:center;gap:6px;font-size:14px}
.stadium-option small{font-size:12px;color:#5b6b85}
.stadium-option:has(input:checked){border-color:var(--brand-vivid);background:var(--brand-tint2);box-shadow:0 0 0 1px var(--brand-vivid)}
.stadium-option:has(input:focus-visible){outline:3px solid var(--brand-soft);outline-offset:2px}
.stadium-option.locked:not(:has(input:checked)){cursor:not-allowed}
.stadium-option.locked:not(:has(input:checked)) img{filter:grayscale(.6);opacity:.7}
.stadium-pro{display:inline-flex;align-items:center;gap:2px;margin-left:auto;padding:1px 6px;border-radius:4px;background:#eef3fc;color:#335ac0;font-size:11px}
.stadium-pro svg{width:12px;height:12px}
.stadium-owned{margin-left:auto;padding:1px 6px;border-radius:4px;background:#eef3fc;color:#335ac0;font-size:11px}
/* マチナインショップ（/shop）: 絵の上に中継と同じ線とベースを重ねた見本のカード */
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin:0;padding:0;list-style:none}
.shop-card{border:1px solid #d6e0f2;border-radius:10px;background:#fff;overflow:hidden}
.shop-card-link{display:flex;flex-direction:column;color:#264676}
.shop-card-link:hover{box-shadow:0 4px 14px #1b2a4a1f}
.shop-card-body{display:flex;flex-direction:column;gap:4px;padding:10px 12px 12px}
.shop-card-body strong{display:flex;align-items:center;gap:6px;font-size:15px}
.shop-card-body small{font-size:12px;color:#5b6b85}
/* 背景の絵は 400:415（中継と同じ、2026-10-18）。以前の 400:285 の絵（.old）は試合の範囲（上 80・下 50 をあけた所）に置き、上下は暗い色 */
.shop-ground{position:relative;display:block;aspect-ratio:400/415;background:#0d1a33}
.shop-ground img{position:absolute;inset:0;width:100%;height:100%}
.shop-ground.old img:first-child{top:19.277%;height:68.675%}
/* 絵のチーム合わせの場所（電光掲示板・ロゴ・名前の帯）のプレビュー（shop-slots.js） */
.shop-ground .shop-slots{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.shop-ground-large{max-width:540px;border-radius:10px;overflow:hidden}
.shop-new,.shop-owned{padding:1px 6px;border-radius:4px;font-size:11px;background:#eef3fc;color:#335ac0}
.shop-owned{margin-left:auto}
/* 期間限定・テーマセット（2026-10-20）: 期間限定は注目色（オレンジ）の表示。セットは含まれる商品の見本を並べる */
.shop-limited{padding:1px 6px;border-radius:4px;font-size:11px;font-weight:700;background:var(--attn-tint,#fff1e8);color:var(--attn-strong,#c24a06)}
.shop-grid-set{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
.set-parts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:8px;background:#f4f7fd}
.set-parts .set-part{min-width:0;aspect-ratio:1/1;overflow:hidden;border-radius:6px;background:#fff}
.set-parts svg{display:block;width:100%;height:100%}
.set-parts .shop-ground{display:block;width:100%}
.set-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:12px 0;padding:0;list-style:none}
.set-list li{display:flex;flex-direction:column;gap:4px;min-width:0}
.set-list a{display:flex;flex-direction:column;gap:6px;color:inherit}
.set-list svg,.set-list .shop-ground{display:block;width:100%;height:auto;border-radius:6px;overflow:hidden}
.set-list small{font-size:12px;color:#5b6b85}
/* 特設ページの「このチームのデザイン」 */
.match-designs{margin:16px 0}.match-designs ul{display:flex;flex-wrap:wrap;gap:8px 16px;margin:0 0 8px;padding:0;list-style:none}.match-designs small{color:#5b6b85}
.shop-price{font-weight:700;color:#1b2a4a}
.m-panel .shop-price-large{margin:0 0 8px;font-size:22px;font-weight:700;color:#1b2a4a}
/* チームのスポンサー（/my/team/sponsors）: ロゴと入力欄を横に並べる（スマホは縦） */
.sponsor-row{display:grid;grid-template-columns:96px 1fr;gap:16px;padding:16px 0;border-top:1px solid #e3e9f4}
.sponsor-row:first-of-type{border-top:0}
.sponsor-logo{display:flex;align-items:center;justify-content:center;width:96px;height:96px;border:1px solid #e3e9f4;border-radius:8px;background:#f7f9fd;color:#5b6b85;font-size:12px;overflow:hidden}
.sponsor-logo img{max-width:100%;max-height:100%;object-fit:contain}
.sponsor-fields{display:grid;gap:10px;min-width:0}
.sponsor-line{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}
.sponsor-sort input{width:96px}
@media(max-width:600px){.sponsor-row{grid-template-columns:1fr}}
/* ホームページのスキン: トップの絵（16:9）と、色の見本（shop/parts skinMock） */
.skin-art{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:6px}
.skin-mock{display:block;width:100%;height:auto;border-radius:6px;border:1px solid #e3e9f4}
.skin-none{display:flex;align-items:center;justify-content:center;aspect-ratio:16/9;border-radius:6px;background:#f2f5fb;color:#5b6b85;font-size:13px}
.shop-skin-pair{display:grid;grid-template-columns:3fr 2fr;gap:0;background:#0d1a33}
.shop-skin-pair .skin-art,.shop-skin-pair .skin-mock{border-radius:0;border:0;height:100%}
.shop-skin-large{display:grid;gap:12px;max-width:820px;align-items:start}
@media(min-width:700px){.shop-skin-large{grid-template-columns:3fr 2fr}}
.shop-description{margin:12px 0 0;white-space:pre-wrap;line-height:1.8;color:#334563}
/* チャットのスタンプ（shop/parts stampMock）: 中継チャットと同じ色のテーマ（live app.css .stamp-pack_*）で、中継の濃い紺の上に並べる */
.shop-stamp-box{display:flex;align-items:center;justify-content:center;aspect-ratio:400/285;padding:16px;background:#0d1a33}
.shop-stamp-large{max-width:720px;border-radius:10px}
.shop-stamps{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.shop-stamp{display:inline-block;padding:6px 12px;border:2px solid #fff;border-radius:8px;background:#335ac0;color:#fff;font-size:15px;font-weight:800;box-shadow:0 2px 0 rgba(0,0,0,.25);transform:rotate(-2deg);white-space:nowrap}
.shop-stamp:nth-child(even){transform:rotate(2deg)}
.shop-stamp.stamp-pack_navy{border-color:#f5d442;background:#0f1b33;color:#f5d442}
.shop-stamp.stamp-pack_blue{background:#2f7bff}
.shop-stamp.stamp-pack_sky{border-color:#fff;background:#bfe3ff;color:#0f2a5c}
.shop-stamp.stamp-pack_white{border-color:#335ac0;background:#fff;color:#335ac0}
.shop-stamp.stamp-pack_green{background:#1f8a5b}
.shop-stamp-large .shop-stamp{font-size:18px;padding:8px 16px}
.ground-tag{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:700;background:var(--brand-tint4);color:var(--brand)}.ground-tag.NEED{background:#edf0f5;color:#5d6b82}
.search-subject .ground-tag{align-self:flex-start;justify-self:start;width:fit-content;margin-left:0}
/* 個人情報: section jump links, current area line, the quiet "clear area" link. */
/* Tab rows use the home category tabs look everywhere (type-tabs type-tabs-inline): icon + label, no border, | between.
   Icons from common/icon (ui-icon) get the same size as the home tab icons. */
.type-tabs-inline .ui-icon{flex:none;width:20px;height:20px}
@media(max-width:760px){.type-tabs-inline .ui-icon{width:18px;height:18px}}
.design-atlas .type-tabs.type-tabs-inline.profile-jump{padding:0 0 12px;margin:0 0 12px}
.m-panel[id]{scroll-margin-top:24px}
.profile-current{display:flex;align-items:center;gap:8px;font-weight:700;color:#20365f}.profile-current .ui-icon{width:18px;height:18px;color:var(--brand)}
.profile-clear{margin-top:8px}.profile-clear .text-link{background:none;border:0;padding:4px 0;color:#5d6b82;font-size:14px;cursor:pointer}
.profile-clear .text-link:hover{color:var(--brand-deeper)}
/* No-team home with the member's own background photo: the photo under a dark blue veil instead of the draft board art. */
.svc-welcome.has-cover{isolation:isolate;padding-right:32px;background:#10245a}
.welcome-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.svc-welcome.has-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,#0b1d4de6 0%,#0b1d4d99 60%,#0b1d4d59 100%);z-index:-1}
@media(max-width:700px){.svc-welcome.draft-hero.has-cover{padding:24px 20px}}
/* No-team home panels: area invitation, nearby posts and teams, profile progress. */
.area-invite{display:flex;align-items:center;gap:18px;background:var(--brand-tint2);border:1px solid #ccdafe}
.area-invite h2{margin:0 0 6px}.area-invite p{margin:0}.area-invite>div{flex:1;min-width:0}
.area-invite-icon{flex:none;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--brand);color:#fff}.area-invite-icon .ui-icon{width:26px;height:26px}
@media(max-width:700px){.area-invite{flex-direction:column;align-items:flex-start}.area-invite .button{width:100%;justify-content:center}}
.near-post{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-bottom:1px solid #e5eaf2;color:#20365f}
.near-post:hover strong{color:var(--brand-deeper)}
.near-date{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;width:62px;padding:8px 0;border-radius:10px;background:#eef3ff;color:var(--brand-deep)}
.near-date strong{font-size:17px}.near-date small{font-size:12px}
.near-body{display:flex;flex-direction:column;gap:3px;min-width:0}.near-body strong{font-size:16px;overflow-wrap:anywhere}
.near-body small{font-size:13px;color:#68778c}.near-body small.soon{color:#d6334a;font-weight:700}
.near-body .type-tag{align-self:flex-start;font-size:13px;font-weight:700;color:var(--brand)}
.near-team{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #e5eaf2}
.near-team .near-team-mark{width:40px;height:40px;border-radius:10px}.near-team .author-icon .ui-icon{width:20px;height:20px}
.near-team-name{display:flex;flex-direction:column;flex:1;min-width:0}.near-team-name strong{overflow-wrap:anywhere}.near-team-name small{font-size:13px;color:#68778c}
.near-team form{margin:0;flex:none}
@media(max-width:700px){.near-team{flex-wrap:wrap}.near-team form{flex-basis:100%}.near-team form .button{width:100%;justify-content:center}}
.profile-meter{display:flex;align-items:center;gap:14px;margin:4px 0 12px;font-weight:700;color:#20365f}
.profile-meter progress{flex:1;max-width:320px;height:12px;border:0;border-radius:999px;background:#e3e9f5;accent-color:var(--brand);overflow:hidden}
.profile-meter progress::-webkit-progress-bar{background:#e3e9f5;border-radius:999px}
.profile-meter progress::-webkit-progress-value{background:var(--brand);border-radius:999px}
.profile-meter progress::-moz-progress-bar{background:var(--brand);border-radius:999px}
/* Members: managers can make another member a manager. */
.member-row form{margin:0}
/* Floating TOP button on long pages (app.js decides when it shows). Above the mobile bottom menu. */
.page-top{position:fixed;right:20px;bottom:24px;z-index:25;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:56px;height:56px;border:0;border-radius:50%;background:var(--brand);color:#fff;font-size:11px;font-weight:800;letter-spacing:.5px;box-shadow:0 6px 18px #1d3f9a59;cursor:pointer}
.page-top[hidden]{display:none}
.page-top .ui-icon{width:20px;height:20px}
.page-top:hover{background:var(--brand-vivid)}.page-top:focus-visible{outline:3px solid var(--brand-soft);outline-offset:3px}
@media(max-width:760px){.page-top{right:14px;bottom:calc(84px + env(safe-area-inset-bottom));width:52px;height:52px}.auth-page .page-top{bottom:20px}}
/* Scouting: page tabs, player cards (manager side) and offers (both sides). */
.design-atlas .type-tabs.type-tabs-inline.page-tabs{padding:0 0 12px;margin:0 0 12px}
.scout-search-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 16px;margin-top:8px}.scout-search-row .m-field{flex:1;min-width:180px;margin:0}
.scout-card{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 0;border-bottom:1px solid #e5eaf2;scroll-margin-top:24px}
.scout-player{display:flex;gap:16px;min-width:0;flex:1}
.scout-photo{flex:none;width:64px;height:64px;border-radius:50%;object-fit:cover;border:1px solid #e1e8f5;background:#fff}
.scout-photo-empty{display:grid;place-items:center;background:var(--brand-tint);color:var(--brand-vivid);border-color:transparent}.scout-photo-empty .ui-icon{width:30px;height:30px}
.scout-player-body{min-width:0;flex:1}.scout-player-body h3{margin:2px 0 4px;font-size:18px;overflow-wrap:anywhere}
.scout-player-area{display:flex;align-items:center;gap:6px;margin:0 0 8px;color:#5d6b82;font-size:14px}.scout-player-area .ui-icon{width:16px;height:16px;color:var(--brand)}
.scout-facts{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:14px}.scout-facts dt{color:#68778c}.scout-facts dd{margin:0;overflow-wrap:anywhere}
.scout-intro{margin:10px 0 0;padding:10px 14px;border-radius:10px;background:#f6f8fd;font-size:14px;overflow-wrap:anywhere}
.scout-card-action{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:6px;max-width:220px;text-align:right}.scout-card-action small{color:#68778c;font-size:13px}
.scout-more{margin-top:16px}
.scout-offer{padding:18px 0;border-bottom:1px solid #e5eaf2}.scout-offer:last-of-type{border-bottom:0}
.scout-offer-head,.scout-team{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.scout-offer-head strong{font-size:17px}.scout-offer-head small{color:#68778c}
.scout-team>div{display:flex;flex-direction:column;flex:1;min-width:0}.scout-team strong{font-size:17px;overflow-wrap:anywhere}.scout-team small{color:#68778c;font-size:13px}
.scout-team .scout-team-mark{width:44px;height:44px;border-radius:10px}.scout-team .author-icon .ui-icon{width:22px;height:22px}
.scout-message{margin:12px 0 6px;padding:12px 16px;border-left:4px solid var(--brand);background:#f3f6fc;overflow-wrap:anywhere}
.scout-offer-meta{margin:6px 0 0;color:#68778c;font-size:14px}
.scout-offer .m-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.scout-offer .m-actions form{margin:0}
.scout-cancel{margin-top:6px}.scout-cancel .text-link{background:none;border:0;padding:4px 0;color:#5d6b82;font-size:14px;cursor:pointer}.scout-cancel .text-link:hover{color:var(--brand-deeper)}
.svc-status.waiting{background:var(--brand-tint4);color:var(--brand)}
@media(max-width:700px){.scout-card{flex-direction:column}.scout-card-action{align-items:stretch;max-width:none;text-align:left;width:100%}.scout-card-action .button{justify-content:center}
  .scout-offer .m-actions form,.scout-offer .m-actions .button{width:100%;justify-content:center}}
/* Links inside a sentence: bold brand blue, no underline (the mockup text-link has a green rule). */
.inline-link{color:var(--brand);font-weight:700;text-decoration:none}.inline-link:hover{color:var(--brand-deeper)}
.scout-search .m-field select{width:100%}
.scout-search .scout-search-row{grid-column:1/-1}.scout-search .scout-search-row .button{margin-bottom:0}.scout-search-help{margin:8px 0 0}
/* Links never get an underline on hover (user decision); the colour change shows the hover instead. Covers the mockup rules too. */
a:hover,a:focus-visible{text-decoration:none}
.recruit-table .search-detail:hover,.legal-footer a:hover{text-decoration:none}
/* Chat: conversation list rows, the room header, bubbles (mine on the right in brand blue), the input at the bottom. */
.chat-room-row{display:flex;align-items:center;gap:14px;padding:14px 8px;border-bottom:1px solid #e5eaf2;color:#20365f;border-radius:10px}
.chat-room-row:hover{background:var(--brand-tint3)}.chat-room-row.unread .chat-room-preview{color:#20365f;font-weight:700}
.chat-mark{width:48px;height:48px;border-radius:12px}.chat-mark.photo{border-radius:50%}.chat-mark.author-icon .ui-icon{width:24px;height:24px}
.chat-room-body{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}
.chat-room-top{display:flex;align-items:baseline;gap:8px;min-width:0}.chat-room-top strong{font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-room-top small{color:#68778c;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-room-top time{margin-left:auto;flex:none;color:#7486a6;font-size:13px}
.chat-room-preview{color:#5d6b82;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-room-context{color:#7486a6;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-help{margin:12px 0 0;padding-left:20px;color:#5d6b82;line-height:1.9}
.chat-head{display:flex;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid #e5eaf2}
.chat-back{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;color:var(--brand);flex:none}.chat-back:hover{background:#eef3ff}
.chat-head-name{flex:1;min-width:0}.chat-head-name h1{margin:0;font-size:20px;overflow-wrap:anywhere}.chat-head-name small{color:#68778c}
.chat-head form{margin:0;flex:none}.chat-block{background:none;border:0;color:#5d6b82;font-size:14px;cursor:pointer;padding:6px 4px}.chat-block:hover{color:var(--brand-deeper)}
.chat-context{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:12px 0 0;padding:10px 14px;border-radius:10px;background:#f3f6fc;font-size:14px;color:#5d6b82}
.chat-context .ui-icon{width:16px;height:16px;color:var(--brand)}
.svc-chat.chat-log{display:flex;flex-direction:column;max-height:min(60vh,560px);min-height:220px;margin:12px 0;padding:12px 4px}
.chat-bubble{margin:0 0 12px;padding:12px 16px;max-width:78%;align-self:flex-start}
.chat-bubble p{margin:0;line-height:1.7}
.chat-bubble.mine{align-self:flex-end;background:var(--brand);color:#fff;border-radius:16px 0 16px 16px}
.chat-bubble.deleted p{color:#7486a6;font-style:italic}.chat-bubble.mine.deleted{background:var(--brand-tint4)}
.chat-bubble-meta{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:4px}
.chat-bubble-meta time{font-size:12px;color:#7486a6;margin:0}.chat-bubble.mine .chat-bubble-meta time{color:#dbe6ff}
.chat-bubble-meta form{margin:0}.chat-delete{background:none;border:0;padding:0;font-size:12px;color:#dbe6ff;cursor:pointer}.chat-delete:hover{color:#fff}
.chat-empty{margin:auto;color:#7486a6;text-align:center}
.chat-form{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.chat-form .m-form-error{flex-basis:100%}
.chat-form textarea{flex:1;min-width:0;min-height:52px;padding:12px 14px;border:1px solid #d6e0f2;border-radius:12px;font:inherit;resize:vertical}
.chat-note{margin-top:10px}
.chat-invite .chat-start{margin-top:8px}
.chat-start{margin:0}
.chat-start-row{margin-top:10px}
.member-row{flex-wrap:wrap}.member-row>div:first-child{flex:1;min-width:0}
@media(max-width:700px){.chat-bubble{max-width:90%}.chat-form .button{width:100%;justify-content:center}.svc-chat.chat-log{max-height:55vh}}
/* Mobile bottom menu: unread count on チャット. */
.mobile-chat{position:relative}.mobile-count{position:absolute;top:2px;left:calc(50% + 6px);min-width:18px;padding:0 5px;border-radius:999px;background:var(--brand);color:#fff;font-size:11px;line-height:18px;text-align:center}
/* Bubbles keep the mockup's tail; mine sits right with the tail on the right, brand blue with white text (the mockup's green is not used). */
.svc-chat .chat-bubble{margin:0 0 12px;max-width:78%;border-radius:16px}
.svc-chat .chat-bubble.mine{background:var(--brand)}.svc-chat .chat-bubble.mine:before{left:auto;right:-6px;transform:rotate(-35deg)}
.svc-chat .chat-bubble.mine p{color:#fff}
.svc-chat .chat-bubble.mine.deleted{background:var(--brand-tint4)}.svc-chat .chat-bubble.deleted p{color:#7486a6;font-style:italic}
.svc-chat .chat-bubble.mine.deleted .chat-bubble-meta time,.svc-chat .chat-bubble.mine.deleted .chat-delete{color:#7486a6}
@media(max-width:700px){.svc-chat .chat-bubble{max-width:88%}}
/* Team room: others' bubbles show who wrote them; the team home shows the latest lines. */
.chat-sender{display:flex;align-items:center;gap:6px;margin-bottom:4px;font-size:13px;color:#264676}.chat-sender .author-mark{width:22px;height:22px}
.chat-sender .author-icon .ui-icon{width:13px;height:13px}
.chat-room-row.team-room{background:#f3f6fc;margin-bottom:6px}.chat-room-row.team-room:hover{background:var(--brand-tint)}
.team-talk-row{display:flex;align-items:baseline;gap:10px;padding:10px 0;border-bottom:1px solid #e5eaf2;min-width:0}
.team-talk-row strong{flex:none;font-size:14px;color:#264676}.team-talk-row span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3d4c63}
.team-talk-row time{flex:none;font-size:12px;color:#7486a6}
.team-talk .m-actions{margin-top:14px}
.chat-context.note{flex-wrap:nowrap;align-items:flex-start}.chat-context.note .ui-icon{flex:none;margin-top:3px}
.chat-bubble:not(.mine) .chat-delete{color:#7486a6}.chat-bubble:not(.mine) .chat-delete:hover{color:var(--brand-deeper)}
/* Player sign-up: choosing a team is optional; this card sits above the team search. */
.reg-skip-team{display:flex;align-items:center;gap:18px;margin:0 0 24px;padding:20px 24px;border:1px solid #ccdafe;border-radius:16px;background:var(--brand-tint2)}
.reg-skip-team h2{margin:0 0 6px;font-size:18px;color:var(--brand-deep)}.reg-skip-team p{margin:0;font-size:14px;line-height:1.8;color:#3d4c63}
.reg-skip-team>div{flex:1;min-width:0}.reg-skip-team form{margin:0;flex:none}
.reg-skip-icon{flex:none;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--brand);color:#fff}.reg-skip-icon .ui-icon{width:26px;height:26px}
@media(max-width:760px){.reg-skip-team{flex-direction:column;align-items:flex-start;padding:18px}.reg-skip-team form,.reg-skip-team .button{width:100%;justify-content:center}}
/* Chat lines: the sender's round photo beside every bubble (mine on the right). The log never scrolls sideways;
   the side padding keeps the bubble tails inside it. */
.svc-chat.chat-log{overflow-x:hidden;overflow-y:auto;padding:12px 14px}
.chat-line{display:flex;align-items:flex-start;gap:10px;margin:0 0 12px;min-width:0}
.chat-line.mine{flex-direction:row-reverse}
.chat-avatar{flex:none;width:40px;height:40px;border-radius:50%;object-fit:cover;background:#fff;border:1px solid #d6e0f2}
.chat-avatar-empty{display:grid;place-items:center;background:var(--brand-tint);color:var(--brand);border-color:transparent}.chat-avatar-empty .ui-icon{width:22px;height:22px}
.svc-chat .chat-line .chat-bubble{margin:0;min-width:0;max-width:calc(100% - 100px)}
.chat-sender{margin-bottom:2px}
/* Tail: a plain triangle pointing at the middle of the photo (instead of the mockup's rotated square). */
.svc-chat .chat-line .chat-bubble:before{top:14px;left:-8px;width:9px;height:12px;border-radius:0;transform:none;clip-path:polygon(100% 0,0 50%,100% 100%)}
.svc-chat .chat-line .chat-bubble.mine:before{left:auto;right:-8px;clip-path:polygon(0 0,100% 50%,0 100%)}
@media(max-width:700px){.chat-avatar{width:34px;height:34px}.svc-chat.chat-log{padding:10px 10px}.svc-chat .chat-line .chat-bubble{max-width:calc(100% - 52px)}.svc-chat .chat-line .chat-bubble:before{top:11px}}
/* Pending applicant: 入団申請を取り消す and チームに質問する side by side with a gap. */
.welcome-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.welcome-actions form{margin:0}
@media(max-width:700px){.welcome-actions{flex-wrap:nowrap;gap:8px}.welcome-actions>form{flex:1 1 0;min-width:0}.welcome-actions .button,.welcome-actions .chat-start .button{width:100%;padding:10px 6px;gap:6px}}
/* Umpire home: the same stadium banner as the no-team home, with an umpire and the count board. The umpire state of a game is emphasised in brand blue. */
.near-body small.umpire-state{color:var(--brand);font-weight:700}
/* Umpire activity areas: the multi-select map keeps the save button inside its box; the home shows the count and a change link. */
.area-picker-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px 20px;border-top:1px solid #dae5f8;background:#fff}
.area-picker-footer small{color:#57739e;font-size:14px}
@media(max-width:700px){.area-picker-footer{padding:14px 16px}.area-picker-footer .button{width:100%;justify-content:center}}
.umpire-area-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 4px}.umpire-area-line .ui-icon{width:16px;height:16px;color:var(--brand)}
/* 個人情報 saves each section and comes back to its anchor: jump there at once instead of an animated scroll. */
html:has(.profile-jump){scroll-behavior:auto}
/* マチナインとは (/about): the same blue hero card as the home page, then plain sections in the brand blue. */
.about-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:28px;margin:16px 0 8px;padding:40px 44px;border-radius:24px;color:#fff;background:var(--brand-vivid) radial-gradient(circle at 100% 100%,#5c7bfc 0,transparent 60%);box-shadow:0 16px 40px #284db214}
.about-hero .variant-kicker{color:#c5d3ff;font-size:13px;font-weight:750;letter-spacing:1.8px}
.about-hero h1{margin:14px 0 18px}
.about-lead{max-width:640px;font-size:16px;line-height:1.95;color:#e0e7ff}
.about-who{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:22px 0 0;padding:0}
.about-who li{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:30px;background:#ffffff1f;border:1px solid #ffffff33;font-size:14px;font-weight:700}
.about-who .ui-icon{width:18px;height:18px}
.about-hero .hero-links{margin-top:26px}
.about-hero .hero-links .text-link{gap:8px}
.about-hero-art{min-width:0}.about-art{display:block;width:100%;max-width:520px;height:auto;margin-left:auto}
.about-hero-post{display:inline-flex;align-items:center;gap:8px;color:#fff;font-weight:700;font-size:15px}.about-hero-post:hover{color:#ffce65}
.about-section{padding:48px 0 8px}
.about-heading{margin-bottom:24px}.about-heading h2{font-size:28px;letter-spacing:-.8px;margin-top:6px;color:#193968}
.about-heading>p:not(.eyebrow){margin-top:8px;font-size:15px;color:#4d6286}
.about-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.about-feature{padding:24px;border:1px solid #d8e2f6;border-radius:16px;background:#fff}
.about-feature h3{margin:14px 0 8px;font-size:18px;color:#193968}.about-feature p{font-size:15px;line-height:1.85;color:#3d4c63}
.about-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--brand-tint);color:var(--brand-vivid)}.about-icon .ui-icon{width:26px;height:26px}
.about-points{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.about-points li{display:flex;gap:18px;padding:24px;border-radius:16px;background:var(--brand-tint2);border:1px solid #d5e2fb}
.about-points li>span{flex:none;font:700 26px/1.2 monospace;color:var(--brand-vivid)}
.about-points h3{font-size:18px;color:#193968;margin-bottom:6px}.about-points p{font-size:15px;line-height:1.85;color:#3d4c63}
.about-table-wrap{border:1px solid #d8e2f6;border-radius:16px;background:#fff;overflow:hidden}
.about-compare{width:100%;border-collapse:collapse;font-size:15px}
.about-compare th,.about-compare td{padding:14px 18px;border-bottom:1px solid #e5eaf2;text-align:center;vertical-align:middle;color:#3d4c63}
.about-compare tbody tr:last-child>*{border-bottom:0}
.about-compare thead th{background:#f3f6fc;font-size:14px;color:#4d6286}
.about-compare thead th.member{background:var(--brand);color:#fff}
.about-compare tbody th{text-align:left;font-weight:700;color:#193968}
.about-compare td.member{background:var(--brand-tint3);font-weight:700;color:var(--brand-deep)}
.about-compare .yes{color:var(--brand-vivid);font-size:18px}.about-compare .no{color:#9aa7bd}
.about-compare small{display:block;font-size:13px;font-weight:400;color:#57739e}
.about-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.about-steps li{padding:24px;border-top:3px solid var(--brand-vivid);background:#fff;border-radius:0 0 16px 16px;border-left:1px solid #d8e2f6;border-right:1px solid #d8e2f6;border-bottom:1px solid #d8e2f6}
.about-steps li>span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--brand-vivid);color:#fff;font-weight:800}
.about-steps h3{margin:12px 0 6px;font-size:18px;color:#193968}.about-steps p{font-size:15px;line-height:1.85;color:#3d4c63}
.about-cta{margin:48px 0 40px;padding:36px;border-radius:20px;background:var(--brand-tint);border:1px solid #d5e2fb;text-align:center}
.about-cta h2{font-size:26px;color:#193968}.about-cta p{margin-top:8px;color:#4d6286;font-size:15px}
.about-cta-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:22px}
@media(max-width:1000px){.about-features{grid-template-columns:repeat(2,minmax(0,1fr))}.about-hero{grid-template-columns:minmax(0,1fr) minmax(0,.8fr);padding:34px 30px}}
@media(max-width:760px){
 .about-hero{grid-template-columns:1fr;gap:18px;padding:28px 22px;border-radius:16px;margin-top:5px}.about-art{max-width:380px;margin:0 auto}.about-lead{font-size:15px}.about-lead br{display:none}
 .about-who li{font-size:13px;padding:6px 12px}
 .about-section{padding-top:36px}.about-heading h2{font-size:23px}
 .about-features,.about-points,.about-steps{grid-template-columns:1fr;gap:12px}
 .about-feature,.about-points li,.about-steps li{padding:20px}
 .about-compare{font-size:14px}.about-compare th,.about-compare td{padding:12px 8px}
 .about-compare thead th{font-size:13px}.about-compare tbody th{width:40%}
 .about-cta{padding:26px 18px;margin-bottom:90px}.about-cta-actions .button{width:100%}
}
/* Home hero: three points of the service and a link to マチナインとは for first-time visitors. */
.hero-points{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px}
.hero-points li{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:#fff}
.hero-points .ui-icon{flex:none;width:18px;height:18px;padding:3px;border-radius:50%;background:#ffce65;color:#182957;stroke-width:2.4}
.hero-sublinks{display:flex;flex-wrap:wrap;gap:6px 20px;margin:14px 0 0}.hero-about,.hero-switch{display:inline-flex;align-items:center;gap:7px;color:#d2ddff;font-size:14px;font-weight:700}.hero-about:hover,.hero-switch:hover{color:#fff}
.hero-about .ui-icon,.hero-switch .ui-icon{width:18px;height:18px}
@media(max-width:760px){.hero-points{margin-top:14px}.hero-points li{font-size:13px}}
/* Empty listing: invite the first post and point to マチナインとは. */
.empty-state .empty-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.empty-state .empty-about{margin:16px 0 0;font-size:14px}
/* Page footer with more than one link. */
.m-footer-links{display:flex;flex-wrap:wrap;gap:6px 18px}
/* Recruitment detail for visitors: a short note about the service. */
.about-invite{display:flex;align-items:center;gap:16px}.about-invite>div{flex:1;min-width:0}
.about-invite h2{margin-bottom:4px}.about-invite p{margin:0;color:#3d4c63}
@media(max-width:700px){.about-invite{flex-direction:column;align-items:stretch}.about-invite .button{justify-content:center}}
/* Team invite (/join/{code}): the team card at the top, the roster names to pick, and the one-step sign-up. */
.invite-team-card{display:flex;align-items:center;gap:18px;margin:0 0 24px;padding:22px 24px;border:1px solid #ccdafe;border-radius:16px;background:var(--brand-tint2)}
.invite-team-card>div{flex:1;min-width:0}.invite-team-card small{color:#57739e;font-size:13px;font-weight:700}
.invite-team-card h2{margin:2px 0 8px;font-size:24px;color:#193968;overflow-wrap:anywhere}
.invite-team-logo{flex:none;width:72px;height:72px;border-radius:16px;object-fit:cover;background:#fff;border:1px solid #d6e0f2}
.invite-team-logo.icon{display:grid;place-items:center;color:var(--brand)}.invite-team-logo.icon .ui-icon{width:36px;height:36px}
.invite-team-facts{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;color:#3d4c63;font-size:14px}
.invite-team-facts>span{display:inline-flex;align-items:center;gap:5px}.invite-team-facts .ui-icon{width:16px;height:16px;color:var(--brand)}
.invite-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 10px;margin:12px 0}
.invite-roster .reg-team-symbol .ui-icon{width:20px;height:20px}
.invite-remember{display:flex;align-items:center;gap:8px;margin:18px 0 6px;font-size:14px;color:#3d4c63}
.invite-member .invite-roster{margin-bottom:4px}
.invite-code-input{font-family:monospace;font-size:20px;letter-spacing:2px;text-transform:uppercase}
/* Managers: the invite call-out on チームメンバー and the invite page itself. */
.invite-cta{display:flex;align-items:center;gap:18px;background:var(--brand-tint2);border-color:#ccdafe}
.invite-cta>div{flex:1;min-width:0}.invite-cta h2{margin-bottom:4px}.invite-cta p{margin:0;color:#3d4c63}
.invite-cta-icon{flex:none;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--brand);color:#fff}.invite-cta-icon .ui-icon{width:26px;height:26px}
.invite-steps{list-style:none;margin:14px 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.invite-steps li{display:flex;align-items:center;gap:10px;padding:14px;border-radius:12px;background:#f3f6fc;font-size:14px;font-weight:700;color:#264676}
.invite-steps li>span{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--brand-vivid);color:#fff;font-weight:800}
.invite-joined{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0;font-weight:700;color:#264676}.invite-joined .ui-icon{color:var(--brand)}
.invite-stopped{border-color:#c9d6f2;background:#f5f7fb}
.invite-message{width:100%;box-sizing:border-box;padding:14px;border:1px solid #d6e0f2;border-radius:12px;background:#f8faff;font:inherit;font-size:14px;line-height:1.8;color:#1f2f4a;resize:vertical}
.invite-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:20px;align-items:start}
.invite-url{margin:0 0 12px;padding:12px 14px;border-radius:10px;background:#f3f6fc;font-family:monospace;font-size:14px;color:#1f2f4a;overflow-wrap:anywhere}
.invite-code-heading{margin:22px 0 6px;font-size:16px;color:#193968}
.invite-code{margin:0 0 8px;font:800 30px/1.3 monospace;letter-spacing:3px;color:var(--brand-vivid)}
.invite-qr-panel{text-align:center}.invite-qr-panel .m-actions{justify-content:center}
.invite-qr{display:block;width:240px;max-width:100%;height:auto;margin:6px auto 10px;border:1px solid #d6e0f2;border-radius:12px;image-rendering:pixelated}
/* チームメンバー: roster link under a member, removing a player, and the members without an account. */
.member-linked{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:4px;font-size:13px;color:#57739e}
.member-linked form{margin:0}
.text-button{padding:0;border:0;background:none;color:var(--brand-vivid);font:inherit;font-weight:700;cursor:pointer}.text-button:hover{color:var(--brand-deeper)}
.roster-badge{background:#f1f3f7;color:#57739e}
.roster-edit{position:relative}.roster-edit>summary{list-style:none;cursor:pointer}.roster-edit>summary::-webkit-details-marker{display:none}
.roster-edit-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:10px;padding:14px;border:1px solid #d6e0f2;border-radius:12px;background:#f8faff}
.roster-edit-form .m-field{margin:0;min-width:160px;flex:1}.roster-edit-form .roster-jersey{flex:0 0 90px;min-width:0}
.roster-edit[open]{flex-basis:100%}
.roster-add{margin-top:18px}.roster-add textarea{width:100%;box-sizing:border-box}
.roster-errors{margin:0 0 12px;padding-left:20px}
/* Mail address not confirmed yet (members who joined with an invite). */
.email-confirm{display:flex;gap:18px;border-color:#ccdafe;background:var(--brand-tint2)}
.email-confirm>div{flex:1;min-width:0}.email-confirm p{color:#3d4c63}
.email-confirm-icon{flex:none;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--brand);color:#fff}.email-confirm-icon .ui-icon{width:24px;height:24px}
.email-confirm-change{margin-top:12px}.email-confirm-change>summary{cursor:pointer;color:var(--brand-vivid);font-weight:700;font-size:14px}
.email-confirm-change .m-form{margin-top:10px}
@media(max-width:700px){
 .invite-team-card{padding:16px;gap:12px}.invite-team-card h2{font-size:20px}.invite-team-logo{width:56px;height:56px}
 .invite-roster{grid-template-columns:1fr}
 .invite-cta,.email-confirm{flex-direction:column;align-items:stretch}.invite-cta .button{justify-content:center}
 .invite-steps{grid-template-columns:1fr}
 .invite-grid{grid-template-columns:1fr}
 .invite-code{font-size:26px}
 .email-confirm-icon,.invite-cta-icon{display:none}
}
/* The mockup's panel paragraph and team-result rules are more specific; keep the code large and the roster badges narrow. */
.m-panel p.invite-code{font:800 30px/1.3 monospace;letter-spacing:3px;color:var(--brand-vivid)}
.invite-roster .reg-team-result{flex-wrap:nowrap}
.invite-roster .reg-team-result>.reg-team-symbol{flex:none;min-width:48px}
.invite-roster .reg-team-result>span:last-child{flex:1;min-width:0}
@media(max-width:700px){.m-panel p.invite-code{font-size:26px}}
/* Team schedule (予定・出欠). Answers use the brand blue when chosen (the mockup's green pressed state is not used). */
[data-game-only][hidden]{display:none!important}
.category-tiles.event-kinds{grid-template-columns:repeat(3,minmax(0,1fr))}
.event-area{padding:0;border:0}.event-area>summary{cursor:pointer;font-weight:700;color:var(--brand-vivid);padding:6px 0;list-style-position:inside}
.event-area[open]>summary{margin-bottom:10px}
.schedule-actions{margin:0 0 16px}
.event-month{margin:22px 0 0;padding-bottom:6px;border-bottom:2px solid #dce5f5;font-size:15px;color:var(--brand)}
.event-card{padding:14px 0 16px;border-bottom:1px solid #e5eaf2;scroll-margin-top:24px}
.event-card .near-post{padding:0;border:0}
.event-card.canceled .near-body strong{text-decoration:line-through;color:#68778c}
.event-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.event-kind{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:700;color:var(--brand)}.event-kind .ui-icon{width:18px;height:18px}
.event-canceled,.event-unanswered{display:inline-block;padding:1px 8px;border-radius:6px;font-size:12px;font-weight:700;line-height:1.7}
.event-canceled{background:#edf0f4;color:#5d6b82}.event-unanswered{border:1px solid var(--brand);color:var(--brand);background:#fff}
.event-counts{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin:10px 0 0 76px;font-size:14px;color:#5d6b82}
.event-counts .count-yes{font-weight:700;color:var(--brand-deep)}.event-counts .count-short{color:var(--brand)}
.event-my-answer{margin:8px 0 0 76px;font-size:14px;font-weight:700;color:var(--brand-deep)}
.answer-buttons{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0 76px}
.answer-button{min-height:44px;padding:8px 16px;gap:4px}.answer-button b{font-size:17px;line-height:1}
.answer-button[aria-pressed=true],.svc-pickup-soft .button.answer-button[aria-pressed=true]{background:var(--brand-vivid);border-color:var(--brand-vivid);color:#fff}
.answer-buttons.large{margin:0 0 16px}.answer-buttons.large .answer-button{flex:1;min-width:0;min-height:56px;justify-content:center;font-size:17px}
@media(max-width:700px){.event-counts,.answer-buttons,.event-my-answer{margin-left:0}.answer-buttons .answer-button{flex:1;min-width:0;justify-content:center;padding:8px 6px}}
/* Calendar: the mockup's svc-calendar grid. On phones only the start time shows; the month's list follows below. */
.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.calendar-head h2{margin:0;font-size:22px}
.svc-calendar>div{min-width:0}.svc-calendar>div.today{background:#f3f7ff}
.calendar-day{display:inline-grid;place-items:center;min-width:26px;height:26px;font-weight:700;color:#20365f}
.svc-calendar .blank .calendar-day{color:#9aa6b8;font-weight:400}.svc-calendar .today .calendar-day{border-radius:50%;background:var(--brand-vivid);color:#fff}
.svc-calendar a.calendar-event{display:flex;gap:4px;border-radius:6px;line-height:1.35;border-left:3px solid transparent}
.svc-calendar a.calendar-event.unanswered{border-left-color:var(--brand-vivid)}
.svc-calendar a.calendar-event.canceled{background:#edf0f4;color:#68778c;text-decoration:line-through}
.calendar-time{flex:none;font-weight:700}.calendar-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.legend-unanswered{display:inline-block;width:14px;height:14px;border-left:3px solid var(--brand-vivid);background:#e9f0ff}
@media(max-width:700px){.svc-calendar>b{padding:8px 0}.calendar-title{display:none}.svc-calendar a.calendar-event{justify-content:center;font-size:11px;padding:3px 1px}.calendar-day{min-width:22px;height:22px;font-size:12px}.calendar-head h2{font-size:18px}}
/* Detail: facts, the member's own answer, everyone's answers and the manager's proxy buttons. */
.event-head h2{margin:10px 0 0;font-size:24px;overflow-wrap:anywhere}.event-facts{margin:18px 0}.event-facts dd{overflow-wrap:anywhere}
.event-facts .event-place-area,.svc-facts .event-place-area{display:block;color:#68778c;font-size:14px}.event-facts .past-deadline{color:#5d6b82}
.my-answer-form .m-field{margin-top:0}
.attendance-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 12px}
.attendance-summary span{display:flex;flex-direction:column;align-items:center;padding:10px 4px;border-radius:12px;background:#f3f6fc;font-size:13px;color:#5d6b82}
.attendance-summary b{font-size:26px;line-height:1.2;color:#20365f}.attendance-summary .YES{background:#eef3ff}.attendance-summary .YES b{color:var(--brand-vivid)}
.short-of-nine{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin:0 0 12px;padding:14px 16px;border-radius:12px;background:#eef3ff;color:var(--brand-deep)}
.attendance-group h3{margin:20px 0 4px;font-size:16px;color:var(--brand)}
/* 出欠のグループは見出しで開閉できる（閉じた状態はブラウザが覚える）。自分の行は閉じても残る。 */
.attendance-toggle{display:flex;align-items:center;gap:6px;width:100%;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}
.attendance-toggle .ui-icon{width:18px;height:18px;flex:none;transform:rotate(90deg);transition:transform .15s}
.attendance-group.collapsed .attendance-toggle .ui-icon{transform:none}
.attendance-group.collapsed .attendance-line:not(.me){display:none}
.attendance-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 8px;border-bottom:1px solid #e5eaf2}
.attendance-line.me{background:var(--brand-tint3)}
.attendance-who{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;min-width:0}.attendance-who strong{overflow-wrap:anywhere}.attendance-who strong small{margin-left:6px;color:#68778c;font-weight:400}
.attendance-badges{display:flex;flex-wrap:wrap;gap:4px}
.line-badge{padding:1px 7px;border-radius:6px;background:#edf0f4;color:#5d6b82;font-size:12px;font-weight:700;line-height:1.7}.line-badge.helper{background:var(--brand-tint4);color:var(--brand)}.line-badge.late{border:1px solid var(--brand);background:#fff;color:var(--brand)}
.attendance-note{flex-basis:100%;font-size:14px;color:#4a5a72}.attendance-note:before{content:'「'}.attendance-note:after{content:'」'}
.proxy-buttons{flex:none;display:flex;gap:4px}
.proxy-button{display:grid;place-items:center;width:40px;height:40px;border:1px solid #cbd9e9;border-radius:8px;background:#fff;color:#36577c;font-size:16px;font-weight:700;cursor:pointer}
.proxy-button[aria-pressed=true]{background:var(--brand-vivid);border-color:var(--brand-vivid);color:#fff}.proxy-button.clear{width:auto;padding:0 8px;font-size:13px;color:#5d6b82}
.helper-add{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px;margin-top:18px}.helper-add .m-field{flex:1;min-width:200px;margin:0}
@media(max-width:700px){.attendance-summary b{font-size:22px}.attendance-line{flex-wrap:wrap}.proxy-buttons{margin-left:auto}}
/* Team home NEXT GAME (mockup svc-pickup) with the answer buttons. */
.next-event h2{margin:8px 0;overflow-wrap:anywhere}.next-event .event-kind{color:var(--brand)}
.next-event .answer-buttons,.next-event .event-counts{margin-left:0}.next-answer-label{margin:0;font-weight:700}
.next-more{margin-top:18px;border-top:1px solid #dce5f0}.next-more .svc-row{padding:12px 0;border-bottom-color:#dce5f0}.next-more .svc-row>div{flex:1;min-width:0}
.next-event>.m-actions{margin-top:12px}
.type-tag.event-kind{background:var(--brand-tint4);color:var(--brand)}
/* 審判に行けます: the same tag colors as 審判依頼 (portal.css). */
.type-tag.umpirego{background:#f0ebf5;color:#827198}
/* Schedule form: fixed fields of an added game, opponent picker and search, umpire. */
.event-fixed{min-width:0;margin:0;padding:0;border:0;display:contents}
.event-fixed:disabled .category-tile{opacity:.6}
.opponent-input{display:flex;gap:8px}.opponent-input input{flex:1;min-width:0}.opponent-input .button{flex:none}
.opponent-chosen{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:8px 0 0;font-size:14px;color:#4a5a72}
.opponent-chosen[hidden],[data-umpire-post][hidden],[data-umpire-post-fields][hidden]{display:none!important}
.opponent-choices{margin-top:10px}.opponent-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.opponent-label{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;min-width:0}
.opponent-label strong,.opponent-team-info{min-width:0;overflow-wrap:anywhere}
.opponent-badge{flex:none;white-space:nowrap}
.opponent-sharing{margin:10px 0 0;padding:10px 12px;background:#f2f6ff;border-radius:8px}
.opponent-sharing p{margin:0}.opponent-sharing p+p{margin-top:6px}
.opponent-history{margin-top:10px}.opponent-history>summary{cursor:pointer;font-weight:700;color:var(--brand-vivid);padding:6px 0}
.opponent-history ul{list-style:none;margin:6px 0 0;padding:0;max-height:260px;overflow:auto;border:1px solid #e5eaf2;border-radius:10px}
.opponent-history-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;width:100%;padding:10px 12px;border:0;border-bottom:1px solid #eef2f8;background:#fff;text-align:left;cursor:pointer;color:#20365f}
.opponent-history-row small{flex:none;color:#68778c}.opponent-history-row:hover{background:var(--brand-tint3)}
.opponent-results:empty{display:none}.opponent-results{margin-top:10px}
.opponent-found{display:flex;flex-direction:column;gap:6px}
.opponent-team{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:1px solid #d6e0f2;border-radius:10px;background:#fff;text-align:left;cursor:pointer;color:#20365f}
.opponent-team:hover{border-color:var(--brand-soft)}.opponent-team img,.opponent-emblem{flex:none;width:36px;height:36px;border-radius:50%;object-fit:cover}
.opponent-emblem{display:grid;place-items:center;background:#eef3ff;color:var(--brand)}.opponent-team small{display:block;color:#68778c}
.umpire-field{border:0;padding:0;margin:0 0 4px}.umpire-field>legend{font-weight:700;margin-bottom:8px}
.umpire-post{margin-top:12px;padding:14px 16px;border-radius:12px;background:#f3f6fc}.umpire-post .m-check{font-size:15px;color:#20365f}
/* Detail and lists: the opponent team's answer, requests from other teams. */
.match-state{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:6px;font-size:12px;font-weight:700;line-height:1.7;background:#edf0f4;color:#5d6b82}
.match-state.pending{border:1px solid var(--brand);background:#fff;color:var(--brand)}.match-state.accepted{background:var(--brand-tint4);color:var(--brand)}
.event-umpire-link{margin-left:10px}
/* Event detail (managers): post or ask for what a coming game lacks, and the direct umpire requests. */
.event-recruit{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:6px}.event-recruit .inline-link{display:inline-flex;align-items:center;gap:5px}.event-recruit .ui-icon{flex:none;width:16px;height:16px}
.event-umpire-requests{display:grid;gap:6px;margin:8px 0 0;padding:0;list-style:none;font-size:14px}.event-umpire-requests li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.umpire-game-facts{margin:10px 0}
.match-requests{border-color:var(--brand-soft)}
.match-request{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:14px 0;border-top:1px solid #e5eaf2}
.match-request p{margin:4px 0 0;color:#4a5a72}.match-request .m-actions{margin:0}
@media(max-width:700px){.opponent-input .button{padding-inline:12px}.match-request .m-actions{width:100%;flex-direction:column;gap:8px}.match-request .m-actions form,.match-request .m-actions .button{width:100%;justify-content:center}}
/* Team home NEXT GAME countdown: flip cards in the brand navy; the changed card flips down. No motion when the OS asks for less. */
.event-countdown{margin:0 0 18px}
.event-countdown-label{margin:0 0 8px;font-weight:700;color:#315e9b}
.event-countdown.finished .event-countdown-label{font-size:18px;color:var(--brand-deep)}
.flip-clock{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px;font-weight:700;color:var(--brand-deep)}
.flip-unit{display:flex;flex-direction:column;align-items:center;gap:5px}.flip-unit[hidden]{display:none}
.flip-unit small{font-size:12px;font-weight:700;color:#617b9b}
.flip-card{position:relative;display:grid;place-items:center;min-width:58px;height:62px;padding:0 6px;border-radius:10px;background:var(--brand-deep);color:#fff;
  font-size:34px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;overflow:hidden;perspective:240px;box-shadow:0 4px 12px #1d3f9a33}
.flip-card:after{content:'';position:absolute;left:0;right:0;top:50%;height:1px;background:#ffffff38}
.flip-value{grid-area:1/1;display:block;backface-visibility:hidden}
.flip-out{animation:flip-out .45s ease-in forwards}.flip-in{animation:flip-in .45s ease-out}
@keyframes flip-out{to{transform:translateY(55%) rotateX(-75deg);opacity:0}}
@keyframes flip-in{from{transform:translateY(-55%) rotateX(75deg);opacity:0}}
@media(prefers-reduced-motion:reduce){.flip-out,.flip-in{animation:none}.flip-out{display:none}}
@media(max-width:700px){.flip-clock{gap:8px}.flip-card{min-width:50px;height:54px;font-size:28px}}
/* Team header on member pages of a team member: the team's cover photo (the stadium picture when none) under a navy shade, with the square logo and name
   at the top left in a fixed size, like a team website. The team home (/my) opens it tall; app.js shrinks the bar while scrolling, then it scrolls away. */
.site-header.team-header{border-bottom:0;background:#0b1d40}
.team-header-bar{position:relative;isolation:isolate;overflow:hidden;color:#fff;display:flex;flex-direction:column;justify-content:flex-start;background:linear-gradient(90deg,rgba(9,28,64,.72),rgba(9,28,64,.25)),url('/images/team-default-bg.jpg') center/cover}
.team-header-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.team-header-bar:has(.team-header-cover):after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(7,20,48,.55),rgba(7,20,48,.08) 70%),linear-gradient(0deg,rgba(7,20,48,.3),transparent 60%)}
.team-header .header-inner{width:100%;margin:0 auto;min-height:132px;gap:24px}
.team-brand{display:flex;align-items:center;gap:18px;min-width:0;color:#fff;--logo:80px}
.team-brand-logo{flex:none;width:var(--logo);height:var(--logo);border-radius:calc(var(--logo) * .18);object-fit:cover;background:#fff;border:3px solid #ffffffb3;background-clip:padding-box;box-shadow:0 4px 18px #0006}
/* 出席ランク (server/docs/daily.md, 2026-10-25): last month's team attendance frames the logo — いつもの＝semi-transparent white, 河川敷＝bronze, 市民球場＝silver
   with stitches, 県営球場＝gold with laurel, ドーム＝platinum with laurel and a crown. The metal colors are allowed here (AGENTS.md 色の例外). */
.rank-frame{position:relative;isolation:isolate;flex:none;display:inline-flex;border-radius:calc(var(--logo) * .18)}
.rank-frame:is(.frame-1,.frame-2,.frame-3,.frame-4) .team-brand-logo{border-color:transparent;background:linear-gradient(#fff,#fff) padding-box,var(--rank-metal) border-box}
.rank-frame.frame-1{--rank-metal:linear-gradient(135deg,#f0c08e,#cf8a4a 50%,#8f5426)}
.rank-frame.frame-2{--rank-metal:linear-gradient(135deg,#f6f8fb,#c4ccd8 50%,#8d98aa)}
.rank-frame.frame-3{--rank-metal:linear-gradient(135deg,#fbe38a,#e8b82e 50%,#b07d12)}
.rank-frame.frame-4{--rank-metal:linear-gradient(135deg,#fff,#dfe7f2 35%,#a9b8cc 65%,#eef3f9)}
.rank-frame:is(.frame-2,.frame-3,.frame-4) .team-brand-logo{border-width:4px}
.rank-frame.frame-2:before{content:'';position:absolute;inset:1.5px;border:1px dashed #6f7b8f;border-radius:inherit;pointer-events:none}
.rank-frame.frame-3 .team-brand-logo{box-shadow:0 4px 18px #0006,0 0 14px #ffc94a80}
.rank-frame.frame-4 .team-brand-logo{box-shadow:0 4px 18px #0006,0 0 16px #e6eefacc}
.rank-frame:is(.frame-3,.frame-4):after{content:'';position:absolute;left:calc(var(--logo) * -.248);top:calc(var(--logo) * .593);width:calc(var(--logo) * 1.495);height:calc(var(--logo) * .598);pointer-events:none;z-index:-1;
 background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 90 160 64'%3E%3Cg fill='%235e9a3a' stroke='%23ffffff' stroke-width='1.4'%3E%3Cellipse cx='68.2' cy='147' rx='8' ry='3.8' transform='rotate(10 68.2 147)'/%3E%3Cellipse cx='51.3' cy='141.6' rx='8' ry='3.8' transform='rotate(25 51.3 141.6)'/%3E%3Cellipse cx='36.3' cy='132.1' rx='8' ry='3.8' transform='rotate(40 36.3 132.1)'/%3E%3Cellipse cx='24.3' cy='119' rx='8' ry='3.8' transform='rotate(55 24.3 119)'/%3E%3Cellipse cx='16.1' cy='103.3' rx='8' ry='3.8' transform='rotate(70 16.1 103.3)'/%3E%3Cellipse cx='91.8' cy='147' rx='8' ry='3.8' transform='rotate(-10 91.8 147)'/%3E%3Cellipse cx='108.7' cy='141.6' rx='8' ry='3.8' transform='rotate(-25 108.7 141.6)'/%3E%3Cellipse cx='123.7' cy='132.1' rx='8' ry='3.8' transform='rotate(-40 123.7 132.1)'/%3E%3Cellipse cx='135.7' cy='119' rx='8' ry='3.8' transform='rotate(-55 135.7 119)'/%3E%3Cellipse cx='143.9' cy='103.3' rx='8' ry='3.8' transform='rotate(-70 143.9 103.3)'/%3E%3C/g%3E%3C/svg%3E") center/100% 100% no-repeat}
.rank-frame.frame-4:before{content:'';position:absolute;left:calc(var(--logo) * .341);top:calc(var(--logo) * -.182);width:calc(var(--logo) * .318);height:calc(var(--logo) * .224);pointer-events:none;z-index:1;
 background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='63 7 34 24'%3E%3Cdefs%3E%3ClinearGradient id='c' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23fbe38a'/%3E%3Cstop offset='1' stop-color='%23d9a21f'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M65 29 L67 13 L74 20 L80 9 L86 20 L93 13 L95 29 Z' fill='url(%23c)' stroke='%23a87a10' stroke-width='1.2' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% 100% no-repeat}
.team-rank{display:flex;align-items:center;gap:6px;font-weight:700}.team-rank b{color:#ffd45c;letter-spacing:1px}
.team-brand-logo.icon{display:grid;place-items:center;color:var(--brand)}.team-brand-logo.icon .ui-icon{width:calc(var(--logo) * .48);height:calc(var(--logo) * .48)}
.team-brand-text{display:flex;flex-direction:column;min-width:0;gap:2px}
.team-brand-text strong{font-size:clamp(24px,2.6vw,34px);font-weight:850;line-height:1.25;letter-spacing:-.5px;text-shadow:0 2px 12px #0008;overflow-wrap:anywhere}
.team-brand-text small{font-size:14px;color:#dbe5ff;text-shadow:0 1px 6px #0008}
/* Side menu top (team members on member pages): the logged-in member (photo, number, name, role) on the navy panel; it opens 個人情報. */
.m-side nav>a.side-member{display:flex;align-items:center;gap:12px;min-height:0;padding:12px;margin-bottom:14px;border-radius:12px;background:#ffffff14;border:1px solid #ffffff2e;color:#fff}
.m-side nav>a.side-member:hover{background:#ffffff22}
.side-member-photo{flex:none;width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid #ffffffb3;background:#fff}
.side-member-photo.icon{display:grid;place-items:center;background:#ffffff2e;color:#fff}.side-member-photo.icon .ui-icon{width:24px;height:24px}
.side-member-text{display:flex;flex-direction:column;align-items:flex-start;min-width:0;gap:4px;line-height:1.35}
.side-member-text strong{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.side-member-number{margin-right:6px;color:var(--night-accent);font-weight:850}
.side-member-role{padding:0 8px;border-radius:999px;background:#ffffff2e;color:#eef3ff;font-size:12px;font-weight:700}
/* The side menu scrolls with the page instead of inside itself. */
.m-side nav{position:static;max-height:none;overflow:visible}
/* Tall header on /my (225px, half of the 1.5 times version): the wrapper keeps the tall height; the bar sticks at the top and shrinks (app.js sets --team-bar), then leaves with the page. */
.team-header-tall{--team-header-tall:225px;height:var(--team-header-tall)}
.team-header-tall .team-header-bar{position:sticky;top:0;z-index:5;height:var(--team-bar,var(--team-header-tall))}
@media(max-width:1200px){.team-header .header-inner{row-gap:14px}}
@media(max-width:760px){
 .team-header .header-inner{min-height:0;padding-top:18px;padding-bottom:14px;gap:12px}
 .team-brand{gap:12px;flex:1;--logo:56px}.team-brand-text strong{font-size:21px}.team-brand-text small{font-size:13px}
 .team-header-tall{--team-header-tall:188px}
}
/* Log out: at the bottom of the side menu, apart from the other items. Below 900px (no side menu) it is at the bottom of 個人情報. */
.side-logout{margin-top:2px;padding-top:10px;border-top:1px solid #dfe6f5}
.side-logout button{display:flex;align-items:center;width:100%;min-height:48px;padding:12px 16px;font-size:15px;font-weight:750;color:#566b93;border-radius:10px;text-align:left}
.side-logout button:hover{background:#e8effd}
/* Side menu group headings (team members only): small labels between the items, always expanded. */
.m-side nav>p.side-heading{margin:16px 0 6px;padding:0 12px;font-size:12px;font-weight:800;letter-spacing:.06em;color:var(--night-accent)}
/* 左メニューの見出し（チーム・試合・記録・つながる・アカウント）は、押して折りたたんだり開いたりできる。開閉と記憶は app.js */
.m-side nav>button.side-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;box-sizing:border-box;margin:16px 0 6px;padding:6px 12px;border:0;border-radius:8px;background:transparent;font:inherit;font-size:12px;font-weight:800;letter-spacing:.06em;color:var(--night-accent);text-align:left;cursor:pointer}
.m-side nav>button.side-heading:hover{background:#00000008}.m-side nav>button.side-heading:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.m-side nav>button.side-heading::after{content:"";flex:none;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .15s}
.m-side nav>button.side-heading[aria-expanded=false]::after{transform:rotate(-45deg)}
.m-side nav>button.side-heading .side-dot{width:8px;height:8px;margin-left:auto;margin-right:4px;border-radius:50%;background:var(--brand)}
.m-side nav>a.side-folded{display:none !important}
/* Cover photo position (managers, /my?cover=adjust): drag the photo in the header or use the slider; a panel at the bottom right saves or cancels.
   Adjusting is for PC: the small button on the photo and the link on チーム情報 are hidden where the side menu is hidden. */
.team-header-bar:has(.cover-adjust){cursor:grab;touch-action:none;outline:3px dashed #ffffffb3;outline-offset:-8px}
.team-header-bar.dragging{cursor:grabbing}
.team-header-bar.dragging .team-header-cover{will-change:object-position}
.cover-adjust{position:absolute;right:24px;bottom:18px;z-index:2;display:flex;flex-direction:column;gap:10px;max-width:360px;padding:14px 16px;border-radius:12px;cursor:default;
  color:#fff;background:rgba(8,22,50,.62);border:1px solid rgba(255,255,255,.4);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.cover-adjust p{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;line-height:1.5}.cover-adjust p .ui-icon{flex:none;width:20px;height:20px}
.cover-adjust-range{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700}.cover-adjust-range input{flex:1;accent-color:var(--brand-soft)}
.cover-adjust-actions{display:flex;justify-content:flex-end;gap:8px}
.team-image-field .cover-adjust-link{display:inline-block;margin-top:8px}
.cover-adjust-open,.header-pill{position:absolute;right:16px;bottom:12px;z-index:2;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:8px;font-size:12px;font-weight:700;color:#fff;
  background:rgba(8,22,50,.45);border:1px solid rgba(255,255,255,.4);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:.85}
.cover-adjust-open:hover,.header-pill:hover{opacity:1;background:rgba(8,22,50,.65);color:#fff}.cover-adjust-open .ui-icon,.header-pill .ui-icon{width:16px;height:16px}
@media(max-width:900px){.cover-adjust-link,.cover-adjust-open{display:none!important}.cover-adjust{left:16px;right:16px;max-width:none}}

/* お知らせ: list rows (also on the team home), the notice with its byline, read count and comments. */
.notice-list{display:grid;gap:10px;margin-top:6px}
.notice-row{display:grid;gap:4px;padding:14px 16px;border:1px solid #e3e9f5;border-radius:12px;background:#fff;color:#1f2f4a;min-width:0}
.notice-row:hover{border-color:#b9c9ee;background:#f8faff}
.notice-row.unread{border-color:#b9c9ee;background:#f4f7ff}
.notice-row-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}
.notice-title{font-size:16px;overflow-wrap:anywhere;min-width:0}
.notice-row.unread .notice-title{color:var(--brand-deeper)}
.notice-pin,.notice-unread{flex:none;display:inline-flex;align-items:center;gap:3px;padding:1px 8px;border-radius:6px;font-size:12px;font-weight:700;line-height:1.7}
.notice-pin{background:var(--brand-tint4);color:var(--brand)}.notice-pin .ui-icon{width:13px;height:13px}
.notice-unread{background:var(--brand);color:#fff}
.notice-excerpt{font-size:14px;color:#3d4c63;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.notice-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13px;color:#7486a6}
.notice-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin:14px 0}
.notice-photo{display:block;border:1px solid #e3e9f5;border-radius:8px;overflow:hidden;background:#f4f7ff}
.notice-photo img{display:block;width:100%;height:auto;max-height:420px;object-fit:contain}
.notice-photos-field{border:0;padding:0;margin:0}.notice-photos-field legend{display:flex;align-items:center;gap:8px;font-weight:700;padding:0;margin-bottom:8px}
.notice-photo-edit{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:10px}
.notice-photo-item{display:grid;gap:6px;border:1px solid #e3e9f5;border-radius:8px;padding:6px;background:#fff}
.notice-photo-item img{width:100%;height:110px;object-fit:cover;border-radius:6px}
.notice-comments{display:inline-flex;align-items:center;gap:3px}.notice-comments .ui-icon{width:14px;height:14px}
.notice-actions{margin-bottom:4px}
.notice-article-title{font-size:22px;line-height:1.5;overflow-wrap:anywhere;margin:6px 0 10px}
.notice-byline{display:flex;align-items:center;gap:10px;padding-bottom:14px;border-bottom:1px solid #e5eaf2}
.notice-byline>span:last-child{display:grid;gap:2px}.notice-byline strong{font-size:14px}.notice-byline small{font-size:13px;color:#7486a6}
.notice-byline .chat-avatar{width:36px;height:36px}
.notice-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9;font-size:16px;margin:16px 0 4px}
.notice-reads h2 strong{margin-left:6px;color:var(--brand)}
.notice-not-read summary{cursor:pointer;font-weight:700;color:var(--brand)}
.notice-not-read p{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 6px}
.notice-name{padding:3px 10px;border-radius:999px;background:#f1f4fa;font-size:14px}
.notice-not-read small{color:#7486a6;font-size:13px}
.comment-actions .comment-delete{display:inline}
.comment-actions .comment-delete button{display:inline-flex;align-items:center;gap:4px;padding:4px 0;border:0;background:none;font:inherit;font-size:13px;font-weight:inherit;cursor:pointer}
.comment-actions .comment-delete button .ui-icon{width:16px;height:16px}
.notice-comment .author-mark{border-radius:50%;object-fit:cover}

/* My page panel titles: an icon on the left of each section heading (team home, no-team home, umpire home). */
.m-panel h2.panel-title{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.panel-title-icon{flex:none;display:inline-grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--brand-tint);color:var(--brand)}
.panel-title-icon .ui-icon{width:20px;height:20px}
.svc-eyebrow .panel-title-icon{width:28px;height:28px;border-radius:8px;margin-right:8px;vertical-align:middle}.svc-eyebrow .panel-title-icon .ui-icon{width:17px;height:17px}
@media(max-width:700px){.panel-title-icon{width:30px;height:30px}.panel-title-icon .ui-icon{width:18px;height:18px}}
/* NEXT GAME uses the same white background as the other panels. */
.svc-pickup.svc-pickup-soft.next-event{background:#fff;border-color:#dbe4f5;box-shadow:0 5px 18px #254dea03}
/* No link is underlined at rest either (user decision 2026-09-29): the mockup text-link rule (bottom border) and the mockup's
   underlined small links become bold links. The selected tab keeps its underline as the selection mark. */
.text-link{border-bottom:0}
.s-already-member a,.search-reset,.area-refine small a,.area-source a,.account-login-options>a,.account-withdraw-link,.review-strip a,
.reg-context a,.reg-remove-image,.reg-resend button,.reg-resend a,.reg-area-source a{text-decoration:none;font-weight:700}
/* NEXT GAME scoreboard band: a night-stadium board (navy with LED dots) across the top of the panel. Our team VS the opponent
   for games, the title for practice and other events, and the date on the right. Below 700px the date moves next to the caption. */
.next-event{overflow:hidden}
.scoreboard{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"head match date";align-items:center;gap:14px 24px;
  padding:20px 30px;color:#fff;border-bottom:3px solid var(--brand);
  background:radial-gradient(circle at 1px 1px,rgba(255,255,255,.09) 1px,transparent 1.6px) 0 0/6px 6px,
    radial-gradient(ellipse at 15% -40%,rgba(var(--night-glow),.35),transparent 60%),radial-gradient(ellipse at 85% -40%,rgba(var(--night-glow),.3),transparent 60%),
    linear-gradient(180deg,var(--night-top),var(--night-bottom))}
.scoreboard-head{grid-area:head;display:flex;align-items:center;gap:8px;white-space:nowrap}
.scoreboard-head strong{font-size:15px;letter-spacing:3px;color:var(--night-head);text-shadow:0 0 8px rgba(var(--night-glow),.7)}
.scoreboard-head small{font-size:12px;color:var(--night-light)}
.scoreboard-lamp{width:9px;height:9px;border-radius:50%;background:var(--night-lamp);box-shadow:0 0 6px 2px var(--night-lamp)}
.scoreboard-match{grid-area:match;display:flex;align-items:center;justify-content:center;gap:16px;min-width:0}
.scoreboard-match.single{justify-content:flex-start;gap:10px}
.scoreboard-team{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.scoreboard-team:first-child{justify-content:flex-end}
.scoreboard-team strong,.scoreboard-match.single strong{font-size:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.scoreboard-logo{flex:none;width:40px;height:40px;border-radius:8px;object-fit:cover;background:#fff;border:2px solid rgba(255,255,255,.85)}
.scoreboard-logo.empty{display:grid;place-items:center;background:rgba(255,255,255,.12);color:var(--night-light);border-color:rgba(255,255,255,.35)}
.scoreboard-logo.empty .ui-icon{width:22px;height:22px}
.scoreboard-vs{flex:none;padding:3px 10px;border:1px solid rgba(var(--night-glow),.6);border-radius:6px;font-size:14px;letter-spacing:2px;color:var(--night-accent);background:rgba(0,0,0,.2)}
.scoreboard-date{grid-area:date;display:grid;justify-items:end;line-height:1.2;font-variant-numeric:tabular-nums}
.scoreboard-date strong{font-size:26px;letter-spacing:1px;color:#fff;text-shadow:0 0 10px rgba(var(--night-glow),.6)}
.scoreboard-date small{font-size:13px;color:var(--night-light)}
@media(max-width:700px){
  .scoreboard{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"head date" "match match";padding:16px 18px;gap:12px}
  .scoreboard-match{gap:10px}.scoreboard-team{flex-direction:column;gap:6px;text-align:center}.scoreboard-team:first-child{justify-content:flex-start}
  .scoreboard-team strong,.scoreboard-match.single strong{font-size:15px;max-width:100%}
  .scoreboard-logo{width:36px;height:36px}.scoreboard-date strong{font-size:22px}
}
/* Where the band sits: across the top of the NEXT GAME panel, and of the game detail panel (its padding follows the mockup
   breakpoints, so the band reaches both edges). */
.next-event .scoreboard{margin:-30px -30px 24px}
@media(max-width:700px){.next-event .scoreboard{margin:-22px -22px 20px}}
.m-panel.event-head.has-board{--pad:26px;overflow:hidden;padding:0 var(--pad) var(--pad)}
.event-head.has-board .scoreboard{margin:0 calc(var(--pad) * -1) 20px}
@media(max-width:1200px){.m-panel.event-head.has-board{--pad:22px}}
@media(max-width:760px){.m-panel.event-head.has-board{--pad:17px;padding-bottom:20px}}
@media(max-width:360px){.m-panel.event-head.has-board{--pad:14px;padding-bottom:18px}}
/* Game detail: messages (saved, cancelled, added game) sit right under the scoreboard band. */
.event-board-notes .m-notice,.event-board-notes .m-form-error{margin:0 0 12px}
/* 応募: the apply box on the post page, the applications under each of the member's posts, and 応募した募集. */
.apply-note{color:#4a5a72}
.apply-state{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.apply-badge{flex:none;display:inline-block;padding:2px 10px;border-radius:999px;font-size:13px;font-weight:700;line-height:1.7;border:1px solid transparent}
.apply-badge.pending{background:#fff;border-color:var(--brand);color:var(--brand)}.apply-badge.accepted{background:var(--brand);color:#fff}
.apply-badge.declined{background:#edf0f4;color:#5d6b82}
.apply-message{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0;padding:10px 14px;border-radius:10px;background:#f6f8fd;font-size:14px;color:#3d4c63}
.apply-form>p{margin-top:0}
.apply-list{margin-top:16px;padding-top:14px;border-top:1px dashed #d6e0f2}.apply-list h4{margin:0 0 8px;font-size:15px}
.apply-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:10px 12px;padding:12px 0;border-bottom:1px solid #e5eaf2}
.apply-row:last-child{border-bottom:0}
.apply-row .author-mark{width:40px;height:40px}.apply-row .author-icon .ui-icon{width:20px;height:20px}
.apply-who{display:grid;gap:2px;min-width:0}.apply-who strong{font-size:15px;overflow-wrap:anywhere}.apply-who small{font-size:13px;color:#7486a6}
.apply-actions{grid-column:2/-1;display:flex;flex-wrap:wrap;gap:8px}.apply-actions form{margin:0}
.apply-row.mine{grid-template-columns:auto minmax(0,1fr) auto}.apply-row.mine .type-tag{margin-top:2px}
@media(max-width:700px){.apply-row,.apply-row.mine{grid-template-columns:auto minmax(0,1fr)}.apply-row>.apply-badge{grid-column:2;justify-self:start}
  .apply-actions{grid-column:1/-1}.apply-actions .button{flex:1 1 auto}}
/* Team header, bottom right (managers): the photo position button, and on the team home the buttons to add a missing logo or cover photo
   (white pills so they stand out on the dark header). */
.team-header-tools{position:absolute;right:16px;bottom:12px;z-index:2;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:calc(100% - 32px)}
.team-header-tools .cover-adjust-open,.team-header-tools .header-pill{position:static}
/* 「ひとこと」 of the player page: big at the bottom right of the cover (over the share buttons of the owner). */
.header-one-liner{position:absolute;right:20px;bottom:14px;z-index:2;margin:0;max-width:calc(100% - 40px);text-align:right;font-size:28px;font-weight:800;line-height:1.3;letter-spacing:.02em;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.65),0 0 2px rgba(0,0,0,.5);overflow-wrap:anywhere}
.team-header-tools~.header-one-liner{bottom:54px}
@media(max-width:700px){.header-one-liner{right:14px;bottom:10px;max-width:calc(100% - 28px);font-size:18px}.team-header-tools~.header-one-liner{bottom:46px}}
.team-image-prompt{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;font-size:13px;font-weight:700;color:var(--brand-deeper);
  background:rgba(255,255,255,.94);box-shadow:0 4px 14px rgba(8,22,50,.3)}
.team-image-prompt:hover{background:#fff;color:var(--brand-vivid)}.team-image-prompt .ui-icon{width:17px;height:17px}
@media(max-width:700px){.team-header-tools{right:12px;bottom:10px;gap:6px}.team-image-prompt{padding:6px 11px;font-size:12px}}
/* Phones: the page link and the logo/cover prompts are left out of the header (PC only). */
@media(max-width:700px){.team-header-tools .team-page-pill,.team-header-tools .team-image-prompt{display:none}}
/* メンバー: each member's (and applicant's) photo next to the name, a rounded square; a person icon without one. */
.member-photo{flex:none;width:56px;height:56px;border-radius:12px;object-fit:cover;background:#fff;border:1px solid #d6e0f2}
.member-photo.empty{display:inline-grid;place-items:center;background:var(--brand-tint);color:var(--brand);border-color:transparent}
.member-photo.empty .ui-icon,.join-request-head strong .member-photo.empty .ui-icon{width:26px;height:26px;padding:0;background:none}
.member-row{column-gap:14px}.member-row>div:first-of-type{flex:1;min-width:0}
.join-request-head strong .member-photo{width:52px;height:52px;border-radius:11px}
/* Choices with only a few options are a row of buttons (like グラウンド), not a drop-down list; no fieldset box around them. */
.m-form fieldset.ground-choice{border:0;border-radius:0;margin:0 0 12px;padding:0}
/* Team colors (チーム情報): the member card at the top of the side menu is the main color with text in the sub color. */
.m-side nav>a.side-member.team-colored,.team-color-preview-side .side-member.team-colored{background:var(--team-main);border-color:color-mix(in srgb,var(--team-sub) 40%,transparent);color:var(--team-sub)}
.m-side nav>a.side-member.team-colored:hover{background:var(--team-main);filter:brightness(1.08)}
.side-member.team-colored .side-member-number{color:var(--team-sub)}
.side-member.team-colored .side-member-role{background:color-mix(in srgb,var(--team-sub) 20%,transparent);color:var(--team-sub)}
.side-member.team-colored .side-member-photo{border-color:var(--team-sub)}
.side-member.team-colored .side-member-photo.icon{background:color-mix(in srgb,var(--team-sub) 22%,transparent);color:var(--team-sub)}
.m-form fieldset.team-color-field{border:0;border-radius:0;padding:0;margin:8px 0 20px;min-width:0}
.team-color-field legend{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:650;color:#46618a;margin-bottom:6px}
.team-color-row,.team-color-preview{display:grid;grid-template-columns:150px minmax(0,1fr);gap:8px 16px;align-items:start;padding:12px 0;border-top:1px solid #e5eaf2}
.team-color-label{font-size:14px;font-weight:700;color:#3a5078;padding-top:10px}
.team-swatches{display:flex;flex-wrap:wrap;gap:8px}
.team-swatch{position:relative;display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:6px 12px 6px 8px;border:1px solid #d6e0f2;border-radius:10px;background:#fff;cursor:pointer;font-size:14px;font-weight:700;color:#264676}
.team-swatch>input[type=radio]{position:absolute;opacity:0;pointer-events:none}
.team-swatch:has(input[type=radio]:checked){border-color:var(--brand-vivid);background:var(--brand-tint2);box-shadow:0 0 0 1px var(--brand-vivid);color:var(--brand-deep)}
.team-swatch:has(input[type=radio]:focus-visible){outline:3px solid var(--brand-soft);outline-offset:2px}
.team-swatch-chip{flex:none;width:24px;height:24px;border-radius:50%;border:1px solid #0000002e;background:#fff}
.team-swatch.none .team-swatch-chip{background:linear-gradient(135deg,#fff 45%,#c3cde0 45%,#c3cde0 55%,#fff 55%)}
.team-color-picker{position:absolute;left:8px;bottom:0;width:1px;height:1px;opacity:0;border:0;padding:0}
.team-color-preview-side{padding:14px;border-radius:14px;background:var(--night);max-width:300px}
.team-color-preview-side .side-member{display:flex;align-items:center;gap:12px;padding:12px;border-radius:12px;background:#ffffff14;border:1px solid #ffffff2e;color:#fff}
.team-color-swap{grid-column:2;justify-self:start}
.team-color-warning{grid-column:2;margin:0;font-size:14px;font-weight:700;color:var(--brand)}
.public-page-link{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin:0 0 16px;padding:10px 14px;border-radius:10px;background:#f3f6fc;font-size:14px;color:#3d4c63}
.public-page-link .ui-icon{width:18px;height:18px;color:var(--brand)}.public-page-link a{overflow-wrap:anywhere}
.team-day-options{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:700px){.team-color-row,.team-color-preview{grid-template-columns:1fr}.team-color-label{padding-top:0}.team-color-swap,.team-color-warning{grid-column:1}
  .team-swatch{padding:6px 10px 6px 7px;font-size:13px}}
/* Public team page /t/ and player page /p/: panels under the team (player) header. */
.public-number{margin-right:8px;font-weight:850}
.public-join{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.public-team-link{margin:0 0 16px}
.public-join>p{flex:1 1 320px;margin:0}.public-join form{margin:0}
.public-intro{margin:0 0 8px}
.public-facts{margin:16px 0 0}
.public-subtitle{margin:12px 0 4px;font-size:15px;color:#3a5078}
.public-games{list-style:none;margin:0;padding:0}
.public-games li{display:flex;align-items:baseline;gap:14px;padding:12px 0;border-bottom:1px solid #e5eaf2}
.public-game-date{flex:none;min-width:92px;font-weight:800;color:#20365f}
.public-game-body{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;min-width:0}.public-game-body strong{overflow-wrap:anywhere}
.public-game-body small{font-size:13px;color:#68778c}
.public-members{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.public-member{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid #e1e8f4;border-radius:12px;color:#20365f;min-width:0}
.public-member:hover{border-color:var(--brand-soft);background:#f6f9ff}
.public-member .member-photo{width:48px;height:48px;border-radius:10px}.public-member .member-photo.empty .ui-icon{width:22px;height:22px}
.public-member-text{display:flex;flex-direction:column;min-width:0}.public-member-text strong{overflow-wrap:anywhere}
.public-member-text small{font-size:13px;color:#68778c}
.public-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.public-stat{display:flex;flex-direction:column;align-items:flex-start;padding:14px 16px;border-radius:14px;background:#f3f6fc}
.public-stat small{font-size:13px;font-weight:700;color:#5b6f93}
.public-stat strong{font-size:34px;line-height:1.2;color:#172f69}.public-stat strong.small{font-size:20px;line-height:1.9}
.public-stat span{font-size:13px;color:#68778c}
.public-history{list-style:none;margin:0;padding:0}
.public-history li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #e5eaf2}
.public-history .near-team-mark{width:40px;height:40px;border-radius:10px}.public-history .author-icon .ui-icon{width:20px;height:20px}
.public-history-text{display:flex;flex-direction:column;flex:1;min-width:0}.public-history-text a{overflow-wrap:anywhere}
.public-history-text small{font-size:13px;color:#68778c}
@media(max-width:700px){
  .public-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.public-games li{flex-direction:column;gap:2px}.public-game-date{min-width:0}}
/* Public pages look like the team's (player's) own site: its header in place of the マチナイン one, no side menu for visitors. */
.m-shell.no-side{grid-template-columns:minmax(0,1fr);max-width:1100px}
.public-header-name{color:inherit}.public-header-name:hover{opacity:.9}
.public-header-facts{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;margin-top:6px;font-size:14px;font-weight:700;color:#e6edff;text-shadow:0 1px 6px #0008}
.public-header-facts>a,.public-header-facts>span{display:inline-flex;align-items:center;gap:6px;color:inherit}
.public-header-facts .ui-icon{width:17px;height:17px}.public-header-facts img{width:22px;height:22px;border-radius:5px;object-fit:cover;background:#fff}
.public-header-facts>a:hover{text-decoration:none;opacity:.85}
.team-brand-logo.photo{border-radius:50%}
.public-header.team-colored .team-header-bar:not(:has(.team-header-cover)){background:var(--team-main)}
.public-header.team-colored .team-header-bar:not(:has(.team-header-cover)) .team-brand,
.public-header.team-colored .team-header-bar:not(:has(.team-header-cover)) .public-header-facts{color:var(--team-sub)}
.public-header.team-colored .team-header-bar:not(:has(.team-header-cover)) .team-brand-text strong,
.public-header.team-colored .team-header-bar:not(:has(.team-header-cover)) .public-header-facts{text-shadow:none}
.public-header-stripe{position:absolute;left:0;right:0;bottom:0;z-index:3;height:8px;background:linear-gradient(var(--team-main) 0 50%,var(--team-sub) 50% 100%)}
.public-join-actions{display:flex;flex-wrap:wrap;gap:10px}.public-join-actions form{margin:0}
.public-footer{margin:40px 0 8px;padding-top:20px;border-top:1px solid #dbe4f4;text-align:center;font-size:13px;color:#68778c}
.public-footer p{margin:0}.public-footer a{color:var(--brand);font-weight:700}
.public-footer nav{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 18px;margin-top:8px}
.inquiry-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
@media(max-width:700px){.public-header-facts{font-size:13px;gap:2px 12px}.public-join-actions>*,.public-join-actions .button{width:100%}}
.public-page .m-page-content>.share-actions:first-child{margin-bottom:16px}
.next-more-row{justify-content:flex-start}.next-more-row>div:first-of-type{flex:1;min-width:0}
.next-more-logo{flex:none;width:40px;height:40px;border-radius:9px;object-fit:cover;background:#fff;border:1px solid #d6e0f2}
.next-more-logo.icon{display:grid;place-items:center;background:var(--brand-tint);color:var(--brand);border-color:transparent}.next-more-logo.icon .ui-icon{width:22px;height:22px}
.next-more-vs{display:block;color:#5b6f93}
/* Team header (member pages, team page, player page): the logo and name sit at the bottom left, so the photo shows above them. */
.team-header-bar{justify-content:flex-end}
.public-header.team-header-tall{--team-header-tall:270px}
button.header-pill{font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.team-header-tools .header-pill{opacity:.9}
@media(max-width:760px){.team-header-tools{top:10px;bottom:auto}.public-header.team-header-tall{--team-header-tall:226px}}
/* The member card is the header of the side menu panel: full width at the top, in the team colors when set. */
@media(min-width:901px){
 .m-side nav>a.side-member{margin:-18px -14px 14px;padding:18px;border:0;box-shadow:inset 0 -1px 0 #ffffff26;border-radius:17px 17px 0 0}
 .m-side nav>a.side-member.team-colored{box-shadow:inset 0 -1px 0 color-mix(in srgb,var(--team-sub) 35%,transparent)}
}
.team-color-preview-side{padding:0 14px 14px;overflow:hidden}
.team-color-preview-side .side-member{margin:0 -14px 12px;border:0;border-radius:0;padding:16px 18px}
.team-color-preview-menu{display:block;margin-top:8px;padding:10px 14px;border-radius:10px;background:#ffffff0a;border:1px solid #ffffff15;color:#ecf2ff;font-size:14px;font-weight:700}
/* 募集 and 予定 lists: each item is its own card with a colored edge, so where one ends and the next begins is clear at a glance.
   Blue edge: open post / upcoming game; lighter blue: practice and other events; grey: ended, past or canceled. */
.my-post,.event-card{position:relative;margin:0 0 12px;padding:16px 18px 16px 22px;border:1px solid #dbe4f4;border-radius:14px;background:#fff;box-shadow:0 2px 10px #1a3b8a0f}
.my-post:last-of-type,.event-card:last-of-type{border-bottom:1px solid #dbe4f4}
.my-post:before,.event-card:before{content:'';position:absolute;left:0;top:14px;bottom:14px;width:5px;border-radius:0 5px 5px 0;background:var(--brand)}
.event-card.kind-practice:before,.event-card.kind-other:before{background:#8fa8e8}
.my-post.ended:before,.event-card.past:before,.event-card.canceled:before{background:#c3cde0}
.my-post.ended,.event-card.past{background:#fafbfd}
.event-month+.event-card{margin-top:4px}
@media(max-width:700px){.my-post,.event-card{padding:14px 14px 14px 18px}}
/* メンバーを招待する with the three-step picture (show the URL → send to the group → everyone joins). */
.invite-cta.invite-guide{display:block}
.invite-guide>p{margin:0 0 12px;color:#3d4c63}
.invite-figure{margin:0 0 8px;padding:16px 12px 12px;border-radius:14px;background:#fff;border:1px solid #d6e2fb}
.invite-art{display:block;width:100%;max-width:720px;height:auto;margin:0 auto}
.invite-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-width:720px;margin:10px auto 0;padding:0;list-style:none;text-align:center}
.invite-steps li{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:14px;font-weight:700;color:#20365f;line-height:1.5}
.invite-steps b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--brand);color:#fff;font-size:13px}
@media(max-width:700px){.invite-steps li{font-size:12px}.invite-figure{padding:12px 6px 10px}}

/* 保存 (hearts): pressed hearts are filled in brand blue (the mockup's orange is not used). */
.save-button[aria-pressed=true],.saved-filter.active{color:var(--brand-vivid)}
.save-button[aria-pressed=true] .ui-icon,.save-toggle[aria-pressed=true] .ui-icon{fill:currentColor}
.post-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0 4px}.post-tools .share-actions{margin:0}
.save-toggle[aria-pressed=true]{background:#eef3ff;border-color:var(--brand-vivid);color:var(--brand-vivid)}
.saved-row>.svc-status{align-self:start}.saved-row.ended{background:#fafbfd}
@media(max-width:700px){.saved-row>.svc-status{grid-column:2;justify-self:start}}

/* 募集のお知らせ: the box under the search form, and the list on 個人情報. */
.search-alert{display:flex;align-items:center;gap:16px;margin-top:16px;padding:18px 22px;border:1px solid #d9e4f7;border-radius:14px;background:var(--brand-tint3)}
.search-alert-icon{width:42px;height:42px;display:grid;place-items:center;flex-shrink:0;border-radius:10px;background:#e3ebff;color:var(--brand-vivid)}
.search-alert-icon .ui-icon{width:22px;height:22px}
.search-alert-text{flex:1;min-width:0}.search-alert h2{font-size:16px;color:#24436c}
.search-alert-text p{font-size:14px;color:#50688e;margin-top:3px;overflow-wrap:anywhere}.search-alert-text .search-alert-done{color:var(--brand-vivid);font-weight:700}
.search-alert form{margin:0}.search-alert-guest{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.search-alert-guest small{font-size:13px;color:#657c9e;max-width:280px;text-align:right}
@media(max-width:760px){.search-alert{flex-wrap:wrap;padding:16px}.search-alert form,.search-alert-guest{width:100%}.search-alert .button{width:100%}
  .search-alert-guest{align-items:stretch}.search-alert-guest small{max-width:none;text-align:left}}
.alert-list{list-style:none;padding:0;margin:12px 0;display:grid;gap:8px}
.alert-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid #d9e4f7;border-radius:10px;background:#fff}
.alert-icon{display:grid;color:var(--brand-vivid)}.alert-icon .ui-icon{width:20px;height:20px}
.alert-label{flex:1;min-width:0;font-weight:700;color:#24436c;overflow-wrap:anywhere}.alert-row form{margin:0}

/* 応募: the event a 助っ人に来てほしい offers. */
.apply-offer{color:var(--brand-vivid)!important;font-weight:700}
.apply-events small{display:block;margin-top:6px}

/* Team and player page links on every screen: logo/photo and name open the public page together. In lists the text keeps its color
   and turns brand blue on hover. Without a page (guests, private players, umpires) the <a> has no href and stays plain text. */
.page-link{color:inherit;text-decoration:none}
a.page-link[href]:hover{color:var(--brand-deeper)}
a.page-link:not([href]){cursor:text}
.page-link-mark{display:inline-flex;flex:none;align-self:center}
a.page-link-mark[href]:hover img,a.page-link-mark[href]:hover .author-icon,a.page-link-mark[href]:hover .member-photo,a.page-link-mark[href]:hover .chat-avatar,a.page-link-mark[href]:hover .scout-photo{opacity:.85}
.comment-author,.author-page-link{display:inline-flex;align-items:center;gap:8px;min-width:0}
.author-page-link{font-weight:700}
.join-request-head strong .page-link{display:inline-flex;align-items:center;gap:8px}
.chat-line .page-link-mark{align-self:flex-start}
.scoreboard a.page-link[href]:hover{color:#cfe0ff}
/* Search results: the kind, state and ground tags on one line above the title; the countdown of posts closing within 24 hours. */
.recruit-table td>span.search-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;font-size:inherit;color:inherit}
.search-tags .status-tag,.search-tags .ground-tag{margin:0;white-space:nowrap}
.recruit-table td>span.deadline-countdown{display:inline-flex;align-items:center;gap:4px;margin-top:8px;padding:3px 8px;border-radius:6px;background:var(--brand-tint4);color:var(--brand);font-size:12px;font-weight:700;white-space:nowrap}
.deadline-countdown .ui-icon{width:14px;height:14px;flex:none}
.deadline-countdown b{font-variant-numeric:tabular-nums;font-size:14px}
.deadline-countdown.finished{background:#edf0f5;color:#5d6b82}
.search-results-heading .search-sort{padding:0;font-size:14px}
/* 入団申請: 承認する・お断りする・メッセージ on one line with the same height. */
.join-request-actions{flex-wrap:wrap}
/* Team search: teams that do not accept join applications cannot be chosen. */
.reg-team-result.closed{cursor:default;opacity:.72}.reg-team-result.closed:hover{border-color:inherit}
.reg-team-closed{margin-left:auto;flex:none;padding:4px 10px;border-radius:6px;background:#edf0f5;color:#5d6b82;font-size:13px;font-weight:700;white-space:nowrap}
/* NEXT GAME without events: 「予定を登録する」 below the text, the same blue round button as the other panels of the team home. */
.svc-pickup-soft.next-event>a.button.primary{margin-top:16px;background:var(--brand-vivid);color:#fff;border-color:var(--brand-vivid);border-radius:8px;font-size:13px;gap:16px}
/* チーム情報: 創部 year, 年 and month on one line. */
.team-founded{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:8px}
.team-founded-label{font-weight:700;color:#20365f;min-width:3em}
.team-founded label{display:flex;align-items:center;gap:8px;margin:0}
.team-founded input{width:120px}.team-founded select{width:auto;min-width:150px}
.team-history-text{display:block;margin-top:14px}.team-history-text>span{display:block;margin-bottom:6px;font-weight:700}
/* Team page: 選手募集中 title and the wanted players over the whole width, the text and buttons below. */
.public-join>.panel-title,.public-join>.public-wanted{flex:1 1 100%;margin:0}
.reg-context .reg-team-symbol{background:#fff}
/* ===== Mobile (760px and below) — PC is unchanged: everything below is inside the media query. ===== */
@media(max-width:760px){
/* Header: マイページ sits next to the logo on the same line (the base rule made the actions 100% wide, so they wrapped under the logo). */
.site-header:not(.team-header) .header-inner{flex-wrap:nowrap;min-height:0;padding-top:12px;padding-bottom:12px;gap:8px}
.site-header:not(.team-header) .header-actions{width:auto;flex:0 1 auto;min-width:0;margin-left:auto}
/* Search results: one card per recruitment instead of a table that scrolls sideways. */
.search-table-wrap{overflow:visible;border:0;border-radius:0;background:transparent}
.recruit-table,.recruit-table tbody{display:block;width:100%;min-width:0}
.recruit-table thead{display:none}
.recruit-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"date save" "subject subject" "area area" "author fee";column-gap:0;row-gap:10px;margin:0 0 12px;padding:14px;border:1px solid #d9e4f7;border-radius:14px;background:#fff}
.recruit-table tbody tr:hover{background:#fff}
.recruit-table td{display:block;min-width:0;padding:0;border:0}
.recruit-table td.search-date{grid-area:date;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding-right:10px}
.recruit-table td.search-date>strong{display:inline;font-size:17px}
.recruit-table td.search-date>span{display:inline-block;margin:0}
.recruit-table td.search-date>span.deadline-countdown{margin:0}
.recruit-table td.search-subject{grid-area:subject}
.recruit-table td.search-subject .search-detail{font-size:16px;margin:8px 0 4px}
.recruit-table td:nth-child(3){grid-area:area}
.recruit-table td:nth-child(4){grid-area:author;align-self:center;padding-top:10px;border-top:1px solid #e6ecf7}
.recruit-table td.search-fee{grid-area:fee;text-align:right;padding-top:10px;border-top:1px solid #e6ecf7}
.recruit-table td.search-fee>small,.recruit-table td.search-fee>strong{display:inline}
.recruit-table td.search-fee>small{margin-right:6px}
.recruit-table td:nth-child(6){grid-area:save;justify-self:end;align-self:start}
.recruit-table .save-button{margin:-6px -6px 0 0}
}
/* The one footer of every page (common/footer :: legal): brand and links, then the operator and copyright. PC: brand left, links right. */
.legal-footer.site-foot{margin-top:40px;padding:0;text-align:left;background:#f7f9fc;border-top:1px solid #dce4ef;color:#738198;font-size:13px}
.site-foot .site-foot-main,.site-foot .site-foot-legal{max-width:1400px;margin:0 auto;padding:28px 36px;display:flex;align-items:center;justify-content:space-between;gap:16px 40px;flex-wrap:wrap}
.site-foot .site-foot-legal{padding-top:14px;padding-bottom:18px;border-top:1px solid #e3e9f2}
.site-foot .site-foot-legal p{margin:0}.site-foot .site-foot-legal small{font-size:12px;letter-spacing:.2px}
.site-foot .site-foot-brand{display:flex;flex-direction:column;align-items:flex-start;gap:4px;color:var(--brand);font-weight:700;font-size:13px}
.site-foot .site-foot-brand img{display:block;width:170px;height:56px;object-fit:contain;object-position:left center;mix-blend-mode:multiply}
.site-foot .site-foot-made{margin:0;font-size:14px;color:#68778c}.site-foot .site-foot-made a{color:var(--brand);font-weight:700}
.site-foot .site-foot-links{display:grid;grid-template-columns:repeat(2,auto);justify-content:end;gap:10px 32px;margin:0}
.site-foot .site-foot-links a{display:inline-flex;align-items:center;min-height:32px;color:#486184;font-weight:700}
.legal-footer.site-foot .site-foot-links a:hover{color:var(--brand-deeper)}
/* The first two links are about the service, the next two about support: two per line; on public pages the three service links share the first line. */
.site-foot .site-foot-made~.site-foot-links{grid-template-columns:repeat(3,auto)}
.site-foot .site-foot-made~.site-foot-links a:nth-child(n+4){grid-row:2}
@media(max-width:760px){
.legal-footer.site-foot{margin-top:24px;text-align:center}
.site-foot .site-foot-main{flex-direction:column;align-items:center;padding:24px 16px 8px;gap:14px}
.site-foot .site-foot-brand{align-items:center}.site-foot .site-foot-brand img{width:150px;height:50px;object-position:center}
.site-foot .site-foot-links,.site-foot .site-foot-made~.site-foot-links{grid-template-columns:repeat(2,minmax(0,auto));justify-content:center;gap:0 24px}
.site-foot .site-foot-made~.site-foot-links a:nth-child(n+4){grid-row:auto}
.site-foot .site-foot-links a{min-height:44px;justify-content:center}
.site-foot .site-foot-legal{flex-direction:column;justify-content:center;gap:4px;padding:12px 16px 20px}
}
/* 文字サイズ (footer): 大・特大 enlarge the whole page slightly (zoom keeps the layout within the screen width). */
html[data-font-size="large"] body{zoom:1.08}
html[data-font-size="xlarge"] body{zoom:1.16}
.site-foot .font-size-choice{max-width:1400px;margin:0 auto;padding:0 36px 16px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:#68778c}
.font-size-choice span{margin-right:4px;font-weight:700}
.font-size-choice button{min-height:36px;padding:0 14px;border:1px solid #c9d6ef;border-radius:8px;background:#fff;color:#1f3a6e;font:inherit;font-weight:700;cursor:pointer}
.font-size-choice button[data-font-size="large"]{font-size:15px}.font-size-choice button[data-font-size="xlarge"]{font-size:17px}
.font-size-choice button[aria-pressed="true"]{background:var(--brand-vivid);border-color:var(--brand-vivid);color:#fff}
/* Public pages: the マチナイン logo under 「作成されています」 only on phones. */
.site-foot .site-foot-pub-logo{display:none}
/* Member pages on narrow screens: the side menu slides in from the left (app.js adds the メニュー button and the backdrop). */
.side-open{display:none}
@media(max-width:900px){
.m-side{display:block;position:fixed;top:0;left:0;bottom:0;z-index:1001;width:min(300px,86vw);overflow-y:auto;padding:16px;background:#fff;border:0;box-shadow:4px 0 24px #0f22501f;transform:translateX(-105%);visibility:hidden;transition:transform .25s ease,visibility .25s}
.m-side.open{transform:none;visibility:visible}
.side-backdrop{position:fixed;inset:0;z-index:1000;background:#0f22504d}
.side-backdrop[hidden]{display:none}
.side-open{position:fixed;left:16px;bottom:24px;z-index:25;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:56px;height:56px;border:0;border-radius:50%;background:var(--brand);color:#fff;font-size:11px;font-weight:700;box-shadow:0 6px 18px #254dea40;cursor:pointer}
.side-open .ui-icon{width:22px;height:22px}
body.side-drawer-open{overflow:hidden}
}
@media(max-width:760px){
.side-open{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
.site-foot .font-size-choice{justify-content:center;padding:4px 16px 12px}
/* Member pages: logo and catch copy only, no links and no dividing line. */
.site-foot-member .site-foot-links{display:none}
.site-foot-member .site-foot-legal{border-top:0}
/* Team and player pages: 「作成されています」, the logo, then the operator. */
.site-foot-public .site-foot-links{display:none}
.site-foot-public .site-foot-pub-logo{display:block}
.site-foot-public .site-foot-pub-logo img{display:block;width:140px;height:46px;object-fit:contain;mix-blend-mode:multiply}
.site-foot-public .site-foot-legal{border-top:0;padding-top:0}
/* Chat room: the conversation fills the screen (no outer margins, no rounded frame). */
.m-panel.chat-room{margin:0 -16px;padding:0;border:0;border-radius:0;box-shadow:none}
}
@media(max-width:360px){.m-panel.chat-room{margin:0 -12px}}
/* Slide menu (900px and below): the dark menu panel fills the drawer; the logged-in member card sits at the very top, edge to edge. */
@media(max-width:900px){
.m-side{padding:0}
.m-side nav{min-height:100%;padding:0 16px 16px}
.m-side nav>a.side-member{display:flex;align-items:center;min-height:76px;margin:0 -16px 14px;padding:calc(14px + env(safe-area-inset-top,0px)) 16px 14px 22px;border:0;border-radius:0;box-shadow:none}
.m-side nav>a.side-member:not(.team-colored){background:var(--night)}
}
/* Chat room on phones: white page, white 「きっかけ」 line, message area and input without frames or rounded corners, small gaps,
   送信 at its normal size on the right. */
@media(max-width:760px){
body:has(.m-panel.chat-room),body:has(.m-panel.chat-room) #mock-app,body:has(.m-panel.chat-room) .m-shell{background:#fff}
.m-panel.chat-room .chat-context{margin:0;border-radius:0;background:#fff;border-bottom:1px solid #e5eaf2}
.m-panel.chat-room .svc-chat.chat-log{margin:0;border:0;border-radius:0;box-shadow:none}
.m-panel.chat-room .chat-form{gap:6px;padding:6px 0 0}
.m-panel.chat-room .chat-form textarea{flex:1 1 100%;width:100%;border:0;border-radius:0;background:#fff}
.m-panel.chat-room .chat-form .button{width:auto;margin-left:auto;margin-right:10px}
}
/* Chat room on phones: ブロックする with its icon, a little away from the right edge. */
.chat-block{display:inline-flex;align-items:center;gap:4px}.chat-block .ui-icon{width:16px;height:16px;flex:none}
@media(max-width:760px){.m-panel.chat-room .chat-head form{margin-right:10px}}

/* Login: a ballpark background behind the form (no page heading, no footer). While we ask people for their opinion,
   a bar at the bottom switches between the candidates (app.js, remembered in this browser). */
body.login-stage{background:#0e1a33}
.login-stage .login-bg{position:fixed;inset:var(--login-bg-top,0px) 0 0 0;z-index:0;background:#0e1a33 center/cover no-repeat;overflow:hidden}
.login-stage .login-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,25,60,.08),rgba(10,25,60,.35))}
@keyframes login-bg-enter{from{transform:scale(1.14);filter:blur(3px) brightness(.7)}to{transform:none;filter:none}}
.login-stage #mock-app{position:relative;z-index:1}
.login-stage .site-header{position:relative;z-index:2}
.login-stage .m-shell{padding-top:clamp(28px,7vh,72px);padding-bottom:48px}
.login-welcome{width:fit-content;max-width:100%;margin:0 auto 18px;padding:8px 20px;border-radius:999px;background:rgba(10,22,50,.72);color:#fff;font-size:15px;font-weight:700;letter-spacing:.08em;text-align:center}
.login-stage .s-login-panel.m-panel{background:rgba(255,255,255,.97);border-color:rgba(255,255,255,.7);box-shadow:0 24px 60px rgba(6,18,50,.38)}
.login-stage .s-signup-invite{background:rgba(234,240,255,.95);border-color:rgba(255,255,255,.7);box-shadow:0 16px 40px rgba(6,18,50,.28)}
.login-stage .s-auth-guest{background:rgba(255,255,255,.93);border-radius:14px;padding:12px 16px}
@keyframes login-rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.login-stage .page-top{display:none!important}
@media(max-width:760px){.login-stage .m-shell{padding-bottom:40px}.login-welcome{font-size:14px}}
@media(prefers-reduced-motion:reduce){.login-stage .login-bg,.login-stage .s-login-panel.m-panel,.login-stage .s-signup-invite,.login-stage .s-auth-guest{animation:none}}

/* PC login scene. The form stays usable without JS; all decorative layers ignore pointer input. */
.login-stage [hidden]{display:none!important}
.login-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.login-panel-heading .panel-title{margin-bottom:0}
.login-panel-heading .login-collapse{flex:none}
.login-motion-option{margin:4px 0 8px;font-size:13px}
.login-ball-track{display:none;position:fixed;top:var(--login-bg-top,0px);left:0;z-index:1;pointer-events:none;width:0;height:0}
.login-ball{position:absolute;width:80px;height:80px;left:-40px;top:-40px;overflow:visible;filter:drop-shadow(0 8px 7px #101c3855)}
.login-weather{position:fixed;left:20px;top:calc(var(--login-bg-top,0px) + 20px);width:270px;max-height:calc(100dvh - var(--login-bg-top,0px) - 100px);overflow:auto;box-sizing:border-box;z-index:2;padding:14px;border:1px solid #ffffff50;border-radius:12px;background:#0e1a33d9;color:#fff;box-shadow:0 8px 24px #07132a30}
.login-weather-summary{margin:0 0 12px;font-size:13px;line-height:1.8;font-weight:700;overflow-wrap:anywhere}
.login-weather-summary>.ui-icon{vertical-align:middle;margin-right:4px}
.login-weather-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.login-weather .button{background:#f3f6ff;color:#244a9a;border-color:#d9e4fa}
.login-weather .button:hover{background:#dfe9ff}
.login-weather small{font-size:11px;line-height:1.7;color:#d9e5fa}
.login-weather a.inline-link{color:#c4d7ff}
.login-location-note{white-space:nowrap}
.login-skip{position:fixed;right:24px;bottom:24px;z-index:3;background:#fff;color:#244a9a}
.login-open{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:3;box-shadow:0 6px 28px #07132a55}
.login-collapse{color:var(--brand)}
.login-stage .login-collapse .ui-icon{width:24px;height:24px}
.login-stage .login-collapse:hover{color:var(--brand-vivid);background:#edf3ff}
.login-stage :is(.login-collapse,.login-open):focus-visible{outline:3px solid var(--brand);outline-offset:3px}
.login-stage .wx-back,.login-stage .wx-front{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.login-stage .wx-back{z-index:1}.login-stage .wx-front{z-index:2}
@media(min-width:1100px) and (pointer:fine){
 .login-intro #login-content{visibility:hidden}
 .login-intro .login-ball-track{display:block}
 .login-stage .m-auth{position:relative;max-width:580px}
 .login-stage .m-shell{padding-top:28px}
 .login-stage.login-folded #mock-app{pointer-events:none}
}
@media(min-width:1100px) and (max-width:1199px) and (pointer:fine){.login-stage .m-auth{left:32px}}
@media(max-width:1099px),(pointer:coarse){.login-weather,.login-collapse,.login-open,.login-skip,.login-motion-option,.login-ball-track{display:none!important}}

/* Member bottom bar: four items (ホーム・予定/募集・記録/チャット・メンバー/個人情報), current section marked, unread on the menu button */
.m-mobile-nav a{flex:1 1 0;min-width:0}
.m-mobile-nav a.active,.m-mobile-nav a.active span{color:var(--brand);font-weight:800}

.side-open{position:fixed}.side-open-count{position:absolute;top:-6px;right:-6px;min-width:20px;padding:0 6px;border-radius:999px;background:var(--brand);color:#fff;border:2px solid #fff;font-size:11px;line-height:16px;text-align:center}
.s-signup-easy{font-weight:700;color:var(--brand)}
@media(min-width:901px){.side-logout{border-top-color:#ffffff29}.side-logout button{color:#ecf2ff}.side-logout button:hover{background:var(--night-hover);color:#fff}}

/* Public team and player pages: faint dots around the white panels (not on member pages) */
body.public-dots{background-color:#fff;background-image:radial-gradient(rgba(var(--brand-rgb),.15) 1.4px,transparent 1.6px);background-size:18px 18px}

/* よくあるご質問 (/faq) and サポート・お問い合わせ (/support) */
.faq-list{display:grid;gap:8px}
.faq-item{border:1px solid #d6e0f2;border-radius:10px;background:#fff}
.faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:10px 16px;font-weight:700;color:#264676;cursor:pointer;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:after{content:"";flex:none;width:8px;height:8px;border-right:2px solid var(--brand);border-bottom:2px solid var(--brand);transform:rotate(45deg);transition:transform .15s}
.faq-item[open] summary:after{transform:rotate(-135deg)}
.faq-item[open]{border-color:var(--brand-soft)}
.faq-item:target{box-shadow:0 0 0 2px var(--brand-soft)}
.faq-answer{padding:0 16px 14px;color:#33496e;line-height:1.8}
.faq-answer p+p,.faq-answer p+ul,.faq-answer ul+p{margin-top:8px}
.faq-answer ul{padding-left:1.3em;list-style:disc}
.faq-item summary:focus-visible{outline:3px solid var(--brand-soft);outline-offset:2px;border-radius:10px}
.faq-suggest{display:grid;gap:6px;margin:0 0 14px;padding:0;list-style:none}
.faq-suggest li{padding:8px 0;border-bottom:1px solid #e6edf8}
.faq-contact .button{margin-top:12px}

/* Error page and support form: the request id (エラーID) a report can be traced by in the log files. */
.error-id{margin:12px 0;font-size:13px;color:#4b5a73}
.error-id code{font-family:ui-monospace,Consolas,monospace;font-size:14px;font-weight:700;color:#233b72;letter-spacing:.04em}

/* Game records (mock screens under /my/mock/records, local profile; kept for the real screens). */
.mock-banner{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 0 18px;padding:10px 14px;border:1px dashed var(--brand);border-radius:10px;background:var(--brand-tint3);font-size:14px;color:var(--brand-deep)}
.mock-banner strong{padding:1px 8px;border-radius:6px;background:var(--brand);color:#fff;font-size:13px}
.mock-banner a{margin-left:auto}
.mock-list{display:grid;gap:14px;margin:0;padding:0;list-style:none}.mock-list small{display:block;margin-top:2px;color:#5d6b82;font-size:13px}
.mock-switch{margin-bottom:6px}.mock-switch .page-tabs{flex-wrap:wrap}
.mock-note{margin:-8px 0 22px}
/* 試合の記録 panel in the schedule detail */
.game-record .rec-row{display:flex;align-items:center;gap:14px;padding:16px 0;border-top:1px solid #e6ecf6}
.game-record>.panel-title+.rec-row{border-top:0;padding-top:4px}
.rec-row-icon{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#f3f6fc;color:var(--brand)}
.rec-row-icon .ui-icon{width:22px;height:22px}
.rec-row-body{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.rec-row-body strong{font-size:16px}.rec-row-body small{font-size:13px;color:#5d6b82;line-height:1.6}
.rec-row-icon.practice-icon,.practice-leaf{color:#1f9d55}.practice-leaf{display:inline-flex}
.rec-row.minor .rec-row-icon{width:36px;height:36px;border-radius:10px}.rec-row.minor .rec-row-icon .ui-icon{width:18px;height:18px}.rec-row.minor strong{font-size:15px}
.rec-row .button{flex:none}
.rec-row-actions{display:flex;flex-wrap:wrap;gap:8px;flex:none;justify-content:flex-end}
.rec-state{padding:1px 8px;border-radius:6px;background:#edf0f4;color:#5d6b82;font-size:12px;font-weight:700;line-height:1.7}
.rec-state.on{background:var(--brand-tint4);color:var(--brand)}
/* まだ作成していないラインナップ: 注目色（オレンジ）の札に、左に警告のアイコン（2026-11-02） */
.rec-state.attn{display:inline-flex;align-items:center;gap:5px;background:var(--attn-tint);color:var(--attn-strong)}.rec-state.attn .ui-icon{flex:none;width:15px;height:15px}.rec-state.paid{border:1px solid var(--brand);background:#fff;color:var(--brand)}
.rec-score{margin:4px 0 14px;overflow-x:auto}
.rec-linescore{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;border-radius:10px;overflow:hidden}
.rec-linescore th,.rec-linescore td{padding:7px 6px;text-align:center;font-size:14px;border-bottom:1px solid #2a4482}
.rec-linescore thead th{background:#1d2f5e;color:#c9d5f5;font-size:12px}
.rec-linescore tbody th,.rec-linescore tbody td{background:#16264d;color:#fff}
.rec-linescore tbody th{max-width:10em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;padding-left:12px}
.rec-linescore .total{font-weight:800;color:#bcd6ff;background:#1d2f5e}
.rec-result{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:12px 0 0}
.rec-result strong{font-size:26px;font-variant-numeric:tabular-nums}.rec-result small{flex-basis:100%;color:#5d6b82;font-size:13px}
.rec-result-badge{padding:2px 12px;border-radius:6px;background:#edf0f4;color:#5d6b82;font-weight:800}.rec-result-badge.win{background:var(--brand);color:#fff}
.rec-actions{display:flex;flex-wrap:wrap;gap:10px;padding-bottom:12px}
@media(max-width:600px){.game-record .rec-row{flex-wrap:wrap;gap:10px 12px}.rec-row-body{flex-basis:calc(100% - 56px)}.rec-row .button,.rec-actions .button{width:100%;justify-content:center}.rec-row-actions{flex-basis:100%;flex-direction:column}}
/* Lineup editor and view */
.lu-intro{margin:0 0 14px}
.lu-auto{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:14px}
.lu-auto .button{flex-shrink:0}.lu-auto .m-help{flex:1 1 240px;margin:0}
.lu-auto .button:not(:focus-visible){outline:none}
.lu-auto .button:focus-visible{outline:3px solid var(--brand-soft);outline-offset:2px}
.lu-auto-result{margin:0 0 14px;padding:10px 12px;border-radius:10px;background:var(--brand-tint3);color:var(--brand-deep)}
.lu.recommending .lu-columns,.lu.recommending .lu-candidates,.lu.recommending [data-lu-memo],.lu.recommending .lu-bar{opacity:.55;pointer-events:none}
.design-atlas .lu .lu-tabs{display:none}
.lu-columns{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:22px;align-items:start;margin-bottom:22px}
.lu-columns>.m-panel{margin-bottom:0}
.lu-order{display:grid;gap:8px;margin:0 0 12px;padding:0;list-style:none}
.lu-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:58px;padding:7px 8px 7px 10px;border:1px solid #dbe4f5;border-radius:12px;background:#fff}
.lu-row[draggable=true]{cursor:grab}.lu-row.dragging{opacity:.45}
.lu-row.drop-target{border-color:var(--brand);background:var(--brand-tint4);box-shadow:0 0 0 2px var(--brand) inset}
.lu-row.me{border-color:var(--brand);background:var(--brand-tint3)}
.lu-num{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--brand-deep);color:#fff;font-weight:800;font-size:17px;font-variant-numeric:tabular-nums}
.lu-name{display:flex;align-items:baseline;gap:6px;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:700}
.lu-name small{color:#5d6b82;font-size:12px;font-weight:600}.lu-name .line-badge{align-self:center;flex-shrink:0}
.lu-name-text{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1}
.lu-pos{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:66px;height:44px;padding:0 8px;border:1px solid #c9d5ef;border-radius:10px;background:var(--brand-tint3);color:var(--brand-deep);line-height:1.1;cursor:pointer}
.lu-pos.implied{border-style:dashed;background:#fff;color:#5d6b82}.lu-pos b{font-size:17px}.lu-pos small{font-size:11px;color:#5d6b82}.lu-pos.empty{border-style:dashed;background:#fff}
.lu-pos-text{display:flex;align-items:baseline;gap:6px;color:var(--brand-deep);white-space:nowrap}.lu-pos-text b{font-size:17px}.lu-pos-text small{font-size:12px;color:#5d6b82}
.lu-order.readonly .lu-row{grid-template-columns:36px minmax(0,1fr) auto}
.lu-tools{display:flex;gap:4px}
.lu-tools button{display:grid;place-items:center;width:40px;height:44px;border:1px solid #dbe4f5;border-radius:10px;background:#fff;color:var(--brand)}
.lu-tools button:disabled{opacity:.35;cursor:default}.lu-tools .ui-icon{width:18px;height:18px}.lu-tools .down .ui-icon{transform:rotate(180deg)}
.lu-warn{margin:0 0 12px;padding:10px 12px;border:1px solid #c9d5ef;border-radius:10px;background:var(--brand-tint3);color:var(--brand-deep);font-size:14px;font-weight:700}
.lu-add{width:100%;margin-bottom:10px}
.lu-defense-only{margin:0 0 12px}.lu-defense-only h3{margin:4px 0 6px;font-size:14px;color:#5d6b82}
.lu-defense-only ul{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.lu-defense-only li{display:flex;justify-content:space-between;gap:10px;padding:8px 12px;border:1px dashed #c9d5ef;border-radius:10px;font-weight:700}
.lu-defense-only li small{margin-left:6px;color:#5d6b82;font-weight:600}.lu-defense-only li span{color:var(--brand-deep)}
.lu-field{position:relative;aspect-ratio:1/1;max-width:460px;margin:0 auto 12px;border-radius:14px;background:#eef3fc;overflow:hidden}
.lu-field-lines{position:absolute;inset:0;width:100%;height:100%}
.lu-field-lines .grass{fill:#dce6f8;stroke:#c3d1ee;stroke-width:.6}.lu-field-lines .infield{fill:#c9d8f3;stroke:#fff;stroke-width:.8}
.lu-spot{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;min-width:74px;max-width:31%;padding:5px 8px;border:1px solid #9fb4e6;border-radius:10px;background:#fff;color:#1d2b4a;line-height:1.2;box-shadow:0 2px 6px #1d3f9a1f;cursor:pointer}
.lu-spot small{font-size:11px;font-weight:800;color:var(--brand)}
.lu-spot strong{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:14px}
.lu-spot.empty{border-style:dashed;background:#f8faff;color:#7a879c}
.lu-spot.selected{border-color:var(--brand);background:var(--brand);color:#fff;box-shadow:0 0 0 4px #335ac040}.lu-spot.selected small{color:#dfe8ff}
.lu-spot .num-tag{margin-right:4px}.lu-spot.selected .num-tag{background:#ffffff33;color:#fff}
.lu-field.readonly .lu-spot{cursor:default}
.lu-field .at-CF{left:50%;top:12%}.lu-field .at-LF{left:18%;top:27%}.lu-field .at-RF{left:82%;top:27%}.lu-field .at-SS{left:36%;top:45%}.lu-field .at-2B{left:64%;top:45%}
.lu-field .at-3B{left:20%;top:63%}.lu-field .at-1B{left:80%;top:63%}.lu-field .at-P{left:50%;top:64%}.lu-field .at-C{left:50%;top:88%}.lu-field .at-DH{left:14%;top:90%}
.lu-group h3,.lu-group summary{margin:14px 0 8px;font-size:14px;font-weight:700;color:#5d6b82}.lu-group summary{cursor:pointer}
.lu-chips{display:flex;flex-wrap:wrap;gap:8px}
.lu-chip{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px 0 10px;border:1px solid #c9d5ef;border-radius:22px;background:#fff;color:#1d2b4a;font-weight:700}
.lu-chip:hover{border-color:var(--brand)}.lu-chip .ui-icon{width:18px;height:18px;color:var(--brand)}.lu-chip small{color:#5d6b82;font-size:12px;font-weight:600}
.lu-helper{display:flex;align-items:flex-end;gap:10px;margin-top:18px}.lu-helper .m-field{flex:1;margin:0}
.lu-bar{position:sticky;bottom:12px;z-index:15;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 22px;padding:12px 16px;border:1px solid #dbe4f5;border-radius:14px;background:#fffffff2;box-shadow:0 6px 24px #1d3f9a22}
.lu-bar-state small{display:block;margin-top:2px;color:#5d6b82;font-size:12px}
.lu-bar .button:disabled{opacity:.5;cursor:default}
.lu-status{display:inline-block;padding:2px 10px;border-radius:6px;background:#edf0f4;color:#5d6b82;font-size:13px;font-weight:800}.lu-status.on{background:var(--brand);color:#fff}
.lu-view-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:14px 0 0}.lu-view-meta small{color:#5d6b82;font-size:13px}
.lu-bench{display:flex;flex-wrap:wrap;gap:8px 18px}.lu-bench-name{display:inline-flex;align-items:baseline;gap:6px;font-weight:700}.lu-bench-name small{color:#5d6b82;font-size:12px}
@media(max-width:900px){
 .design-atlas .lu .lu-tabs{display:flex}
 .lu-columns{grid-template-columns:minmax(0,1fr)}
 .lu-bar{margin-left:68px}
 .lu[data-tab=order] .lu-field-panel,.lu[data-tab=field] .lu-order-panel{display:none}
}
@media(max-width:760px){.lu-bar{bottom:calc(80px + env(safe-area-inset-bottom));padding:10px 12px}}
@media(max-width:600px){
 .lu-row{grid-template-columns:30px minmax(0,1fr) auto auto;gap:6px;padding:6px}
 .lu-num{width:30px;height:30px;font-size:15px}.lu-name{font-size:15px}.lu-name small{display:none}
 .lu-name.has-badge{flex-wrap:wrap;gap:2px 4px}.lu-name.has-badge .lu-name-text{flex-basis:100%}
 .lu-pos{min-width:52px;padding:0 4px}.lu-pos small{display:none}
 .lu-tools{gap:3px}.lu-tools button{width:34px}
 .lu-spot{min-width:62px;padding:4px 6px}.lu-spot strong{font-size:13px}
 .lu-helper{flex-direction:column;align-items:stretch}
}
/* Bottom sheet: the chooser of the record screens (a small dialog on PC). */
.sheet{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center}.sheet[hidden]{display:none}
.sheet-backdrop{position:absolute;inset:0;background:#0f1d3a66}
.sheet-panel{position:relative;width:min(520px,calc(100% - 32px));max-height:80vh;overflow:auto;padding:18px 18px 22px;border-radius:16px;background:#fff;box-shadow:0 20px 60px #0f1d3a40}
.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.sheet-head h2{margin:0;font-size:18px}
.sheet-close{display:grid;place-items:center;width:44px;height:44px;border-radius:10px;background:#f3f6fc;color:var(--brand)}
.sheet-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.sheet-list{display:grid;gap:8px}
.sheet-option{display:flex;flex-direction:column;align-items:center;gap:1px;min-height:66px;padding:8px 4px;border:1px solid #c9d5ef;border-radius:12px;background:#fff;color:#1d2b4a;text-align:center}
.sheet-option:hover{border-color:var(--brand)}.sheet-option.current{border-color:var(--brand);background:var(--brand-tint)}
.sheet-option b{font-size:20px;color:var(--brand-deep)}.sheet-option span{font-size:12px;font-weight:700}.sheet-option small{font-size:11px;color:#5d6b82}
.sheet-option.wide{grid-column:1/-1;flex-direction:row;justify-content:center;gap:10px;min-height:48px}
.sheet-option.row{flex-direction:row;justify-content:flex-start;gap:12px;min-height:52px;padding:8px 14px;text-align:left}
.sheet-option.row b{width:26px;font-size:16px}.sheet-option.row span{flex:1;font-size:15px}.sheet-option.row span small{margin-left:6px}
.sheet-check{display:flex;align-items:center;gap:10px;min-height:44px;margin:8px 0 4px;font-weight:700}.sheet-check input{width:20px;height:20px}
.sheet-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}
/* Result entry: method choice (S4) */
.rec-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}
.rec-mode{position:relative;display:flex;flex-direction:column;gap:6px;padding:22px 20px;border:1px solid #dbe4f5;border-radius:16px;background:#fff;color:#1d2b4a}
.rec-mode:hover{border-color:var(--brand)}.rec-mode.recommended{border:2px solid var(--brand)}
.rec-mode strong{font-size:19px}.rec-mode>span:not([class]){font-size:14px;line-height:1.7}.rec-mode small{color:#5d6b82;font-size:13px}
.rec-mode-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:var(--brand-tint);color:var(--brand)}.rec-mode-icon .ui-icon{width:26px;height:26px}
.rec-mode-badge{position:absolute;top:16px;right:16px;padding:1px 9px;border-radius:6px;background:var(--brand);color:#fff;font-size:12px;font-weight:800}
.rec-mode-badge.paid{border:1px solid var(--brand);background:#fff;color:var(--brand)}
.rec-mode.soon{background:#f8faff;color:#5d6b82}
@media(max-width:900px){.rec-modes{grid-template-columns:minmax(0,1fr)}}
/* Result entry: steps and fields */
.rx-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 18px;padding:0;list-style:none}
.rx-steps button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;border:1px solid #dbe4f5;border-radius:12px;background:#fff;color:#5d6b82;font-weight:700}
.rx-steps b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#edf0f4;font-size:14px}
.rx-steps .done{color:var(--brand)}.rx-steps .done b{background:var(--brand-tint4)}
.rx-steps .active{border-color:var(--brand);background:var(--brand);color:#fff}.rx-steps .active b{background:#fff;color:var(--brand)}
.rx-field{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px 16px;margin:0 0 14px}.rx-field .rx-label{padding-top:10px}
.rx-field-body{flex:1;min-width:220px;display:flex;flex-direction:column;gap:6px}.rx-field-body small{color:#5d6b82;font-size:13px}
.rx-select{width:100%;max-width:360px;min-height:44px;padding:0 12px;border:1px solid #c9d5ef;border-radius:10px;background:#fff;color:#1d2b4a;font-weight:700}
.rx .rec-result strong{color:#1d2b4a}
/* The base CSS turns blue buttons green on hover (portal.css .primary:hover); keep them in the brand blue everywhere. */
.design-atlas .primary:hover{background:var(--brand-deep)}
.design-atlas .draft-hero .button.primary:hover{background:var(--brand-tint)}
.design-atlas.account-flow [data-account-form=withdraw] .primary:hover,.design-atlas .account-flow [data-account-form=withdraw] .primary:hover{background:#6e4650}
.rx-label{min-width:3em;font-weight:700}
.rx-seg{display:inline-flex;flex-wrap:wrap;gap:6px}
.rx-seg button{min-height:44px;padding:0 18px;border:1px solid #c9d5ef;border-radius:10px;background:#fff;color:#1d2b4a;font-weight:700}
.rx-seg button[aria-pressed=true]{border-color:var(--brand);background:var(--brand);color:#fff}
.rx-linescore-wrap{overflow-x:auto;margin-bottom:12px}
.rx-linescore td{padding:4px 2px}
.rx-cell{width:100%;min-width:34px;height:40px;border-radius:8px;background:#ffffff14;color:#fff;font-size:17px;font-weight:800}
.rx-cell.empty{border:1px dashed #6f88c8}.rx-cell:hover{background:#ffffff2e}
.rx-score-tools{margin-bottom:6px}
.rx-add{margin-top:16px;padding-top:14px;border-top:1px solid #e5eaf2}.rx-add-title{display:flex;align-items:center;gap:6px;margin:0 0 10px;font-size:15px;font-weight:700;color:#1d2b4a}.rx-add-title .ui-icon{width:18px;height:18px;color:var(--brand)}
.rx-add-helper{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px;margin-top:4px}.rx-add-helper .m-field{flex:1;min-width:200px;margin:0}
.rx-numpad{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.rx-num{min-height:58px;border:1px solid #c9d5ef;border-radius:12px;background:#fff;color:var(--brand-deep);font-size:22px;font-weight:800}
.rx-num:hover{border-color:var(--brand)}.rx-num.clear{font-size:13px;color:#5d6b82;white-space:nowrap}
.rx-method{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:0 0 14px;padding:10px 14px;border:1px solid #dbe4f5;border-radius:12px;background:#fff;font-size:14px}
/* Result entry: かんたん入力 */
.rx-chips{display:flex;gap:8px;overflow-x:auto;padding:2px 0 12px;scrollbar-width:thin}.rx-chips.wrap{flex-wrap:wrap;overflow:visible}
.rx-chip{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border:1px solid #c9d5ef;border-radius:22px;background:#fff;color:#1d2b4a;font-weight:700}
.rx-chip b{color:var(--brand)}.rx-chip.done{background:var(--brand-tint3)}.rx-chip.active{border-color:var(--brand);background:var(--brand);color:#fff}.rx-chip.active b{color:#fff}
.rx-card{margin:0 0 14px;padding:16px;border:1px solid #dbe4f5;border-radius:14px;background:#f8faff}
.rx-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-bottom:12px}.rx-card-head strong{font-size:18px}.rx-card-head small{color:#5d6b82}
.rx-card-head .inline-link{margin-left:auto;font-size:14px}.rx-card-head .inline-link+.inline-link{margin-left:0}
.rx-steppers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:10px}
.rx-stepper{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;grid-template-rows:auto 44px;align-items:center;padding:8px;border:1px solid #dbe4f5;border-radius:12px;background:#fff}
.rx-stepper span{grid-column:1/-1;font-size:13px;font-weight:700;color:#5d6b82;text-align:center}
.rx-stepper output{text-align:center;font-size:22px;font-weight:800;color:#1d2b4a;font-variant-numeric:tabular-nums}
.rx-stepper .rx-val{min-width:0;border:1px solid #dbe4f5;background:#fff;color:#1d2b4a}.rx-stepper .rx-val:hover{border-color:var(--brand)}
.rx-stepper button{height:44px;border-radius:10px;background:var(--brand-tint);color:var(--brand-deep);font-size:22px;font-weight:800}
.rx-stepper.bare{display:inline-grid;grid-template-rows:44px;grid-template-columns:44px 64px 44px;padding:0;border:0;background:none}
.rx-more{min-height:40px;margin:0 0 10px;color:var(--brand);font-weight:700}
.rx-card-nav{display:flex;justify-content:space-between;gap:10px;margin-top:6px}.rx-card-nav .button{flex:1}
.rx-table-wrap{overflow-x:auto;margin-bottom:10px;border:1px solid #dbe4f5;border-radius:12px}
/* リンクが押された回数など、一覧の表 (sponsors.html): 狭い画面では横にスクロール */
.m-table-scroll{overflow-x:auto;margin-top:10px;border:1px solid #dbe4f5;border-radius:12px}.m-table{width:100%;min-width:420px;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums;background:#fff}
.m-table th{padding:10px 12px;background:#f2f6ff;color:#35507f;font-size:13px;font-weight:700;text-align:left;white-space:nowrap}.m-table td{padding:10px 12px;border-top:1px solid #e9eef8;color:#20365f}
.m-table th:nth-child(n+3),.m-table td:nth-child(n+3){text-align:right}
.rx-table{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums;background:#fff}
.rx-table th,.rx-table td{padding:8px;border-bottom:1px solid #edf1f8;text-align:center;white-space:nowrap}
.rx-table thead th{background:#f3f6fc;color:#5d6b82;font-size:12px}
.rx-table tbody th{text-align:left}.rx-table tbody th b{display:inline-block;width:1.6em;color:var(--brand)}
.rx-table tr.active{background:var(--brand-tint)}.rx-table tbody tr[data-player]{cursor:pointer}
.rx-table tfoot th,.rx-table tfoot td{font-weight:800;background:#f8faff}
/* Result entry: 打席ごと */
.rx-console{position:sticky;top:8px;z-index:12;border:2px solid var(--brand)}
.rx-now{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 18px;margin-bottom:14px}
.rx-now-inning{display:flex;align-items:center;gap:14px}.rx-now-inning strong{font-size:22px}
.rx-outs{display:inline-flex;align-items:center;gap:5px}.rx-outs i{width:14px;height:14px;border:2px solid var(--brand);border-radius:50%}.rx-outs i.on{background:var(--brand)}.rx-outs small{margin-left:4px;color:#5d6b82;font-weight:700}
.rx-now-batter{display:flex;align-items:center;gap:10px}.rx-now-batter>small{color:#5d6b82;font-weight:700}.rx-now-batter strong{display:flex;align-items:center;gap:8px;font-size:20px}
.rx-kinds{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.rx-kind{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:72px;border:1px solid #9fb4e6;border-radius:12px;background:#fff;color:var(--brand-deep);font-size:16px;font-weight:800}
.rx-kind .ui-icon{width:26px;height:26px;color:var(--brand)}.rx-kind:hover{border-color:var(--brand);background:var(--brand-tint3)}
.rx-kinds.small{margin-bottom:12px}.rx-kinds.small .rx-kind{flex-direction:column;gap:2px;min-height:52px;padding:4px 2px;font-size:12px;white-space:nowrap}.rx-kinds.small .rx-kind .ui-icon{width:18px;height:18px}
.rx-kinds.small .rx-kind.active{border-color:var(--brand);background:var(--brand);color:#fff}.rx-kinds.small .rx-kind.active .ui-icon{color:#fff}
.rx-console-tools{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 8px}
.rx-grid td{vertical-align:top;min-width:58px;padding:6px 4px}.rx-grid td.here{background:var(--brand-tint);box-shadow:inset 0 0 0 2px var(--brand)}
.rx-grid tr.current th{background:var(--brand-tint3)}.rx-grid td.num{vertical-align:middle;font-weight:700}
.rx-order{display:inline-block;width:1.6em;color:var(--brand);font-weight:800}
.rx-who{display:inline-flex;flex-direction:column;vertical-align:middle;font-weight:700}.rx-who .line-badge{align-self:flex-start}
.rx-ref{color:#5d6b82;font-size:11px;font-weight:600}.rx-ref.ok{color:var(--brand)}
.rx-pa{display:block;width:100%;min-height:32px;margin:2px 0;padding:2px 4px;border:1px solid #dbe4f5;border-radius:8px;background:#fff;color:#1d2b4a;font-size:13px;font-weight:700;white-space:nowrap}
.rx-pa sup{margin-left:2px;font-size:10px}.rx-pa i{margin-left:2px;font-size:9px;font-style:normal}
.rx-mini{display:inline-grid;grid-template-columns:36px 30px 36px;align-items:center}.rx-mini button{height:36px;border-radius:8px;background:var(--brand-tint);color:var(--brand-deep);font-weight:800}.rx-mini output{font-weight:800}
.rx-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}
.rx-item{min-height:56px;padding:6px;border:1px solid #c9d5ef;border-radius:12px;background:#fff;color:#1d2b4a;font-size:15px;font-weight:800}.rx-item:hover{border-color:var(--brand)}
.rx-sheet-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding-top:12px;border-top:1px solid #edf1f8}
.rx-rbi{display:flex;align-items:center;gap:6px}.rx-rbi span{font-weight:700;margin-right:4px}
.rx-rbi button{width:44px;height:44px;border:1px solid #c9d5ef;border-radius:10px;background:#fff;font-weight:800;color:var(--brand-deep)}.rx-rbi button[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:#fff}
.rx-rbi.big{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:12px}.rx-rbi.big button{width:auto;height:64px;font-size:24px;border-radius:12px}.rx-rbi.big button:hover{border-color:var(--brand);background:var(--brand-tint)}
.rx-scored{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border:1px solid #c9d5ef;border-radius:10px;background:#fff;font-weight:700;color:#5d6b82}
.rx-scored .ui-icon{width:18px;height:18px;opacity:.3}.rx-scored[aria-pressed=true]{border-color:var(--brand);background:var(--brand-tint);color:var(--brand-deep)}.rx-scored[aria-pressed=true] .ui-icon{opacity:1}
.rx-chosen{margin:0 0 10px}
.rx-asking small{display:block;margin-top:2px;font-size:13px;color:#5d6b82}
.rx-on{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 12px;font-weight:700}.rx-on>small{color:#5d6b82;margin-right:2px}
.rx-on-name{display:inline-flex;align-items:center;padding:2px 10px 2px 4px;border:1px solid #c9d5ef;border-radius:16px;background:var(--brand-tint3)}.rx-on-name .num-tag{margin-right:4px}
.rx-on-none{color:#5d6b82;font-weight:600}
.rx-runners{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.rx-runner{display:inline-flex;align-items:center;gap:6px;min-height:48px;padding:0 16px 0 10px;border:1px solid #c9d5ef;border-radius:24px;background:#fff;color:#1d2b4a;font-weight:800}
.rx-runner .ui-icon{width:18px;height:18px;opacity:.25}.rx-runner[aria-pressed=true]{border-color:var(--brand);background:var(--brand);color:#fff}.rx-runner[aria-pressed=true] .ui-icon{opacity:1}
.rx-runner[aria-pressed=true] .num-tag{background:#ffffff33;color:#fff}
.rx-lead{margin-left:6px;padding:0 6px;border-radius:5px;background:var(--brand-tint4);color:var(--brand);font-size:11px;font-weight:800;line-height:1.7}
.rx-runner[aria-pressed=true] .rx-lead{background:#ffffff33;color:#fff}
.rx-runner.out{border-style:dashed;background:#f3f5f9;color:#5d6b82}.rx-runner.out .ui-icon{opacity:1}.rx-runner.out .rx-lead{background:#5d6b82;color:#fff}
.rx-ask{margin:0 0 12px;padding:12px 14px;border:1px solid var(--brand);border-radius:12px;background:var(--brand-tint3)}.rx-ask p{margin:0}.rx-ask small{display:block;margin-top:2px;color:#5d6b82;font-size:13px}.rx-ask .sheet-actions{margin-top:10px}
.rx-order-help{margin:-4px 0 12px}
.rx-sheet-sub small{display:block;margin-top:2px;font-weight:600;color:var(--brand)}
.rx-rbi-line{display:flex;align-items:center;gap:10px;margin:0 0 14px}.rx-rbi-line>span{font-weight:700}
.rx-commit{width:100%;min-height:52px;font-size:16px}
.rx-specials{display:grid;gap:6px;margin:0 0 6px;padding:0;list-style:none}
.rx-specials li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;border:1px solid #dbe4f5;border-radius:10px;font-size:14px}
.rx-dirfield{position:relative;aspect-ratio:1/1;max-width:420px;margin:0 auto 10px;border-radius:14px;background:#eef3fc;overflow:hidden;touch-action:none}
.rx-dir{position:absolute;z-index:2;transform:translate(-50%,-50%);display:grid;place-items:center;width:50px;height:50px;border:1px solid #9fb4e6;border-radius:50%;background:#fff;color:var(--brand-deep);font-size:18px;font-weight:800;box-shadow:0 2px 6px #1d3f9a1f;cursor:grab;touch-action:none;user-select:none}
.rx-dir:hover,.rx-dir:focus-visible{background:var(--brand);color:#fff}
.rx-dir.moved{z-index:3;background:var(--brand);color:#fff;box-shadow:0 0 0 5px #335ac040;cursor:grabbing}
.rx-drag-hint{display:flex;align-items:center;gap:12px;margin:0 0 10px;padding:10px 14px;border:1px solid #c9d5ef;border-radius:12px;background:var(--brand-tint3)}
.rx-drag-hint .ui-icon{flex:none;width:30px;height:30px;color:var(--brand)}
.rx-drag-hint p{margin:0;display:flex;flex-direction:column;gap:2px}.rx-drag-hint strong{font-size:15px;color:var(--brand-deep)}.rx-drag-hint small{font-size:13px;color:#5d6b82}
.rx-dir.demo-SS.demo{animation:rx-nudge-left 1.2s ease-in-out 2}.rx-dir.demo-CF.demo{animation:rx-nudge-up 1.2s ease-in-out 2}
@keyframes rx-nudge-left{0%,100%{transform:translate(-50%,-50%)}45%,60%{transform:translate(calc(-50% - 26px),calc(-50% + 4px));background:var(--brand);color:#fff}}
@keyframes rx-nudge-up{0%,100%{transform:translate(-50%,-50%)}45%,60%{transform:translate(-50%,calc(-50% - 30px));background:var(--brand);color:#fff}}
@media(prefers-reduced-motion:reduce){.rx-dir.demo{animation:none}}
.rx-zone{min-height:1.6em;margin:0 0 8px;font-size:14px;color:#1d2b4a}.rx-zone b{color:var(--brand-deep)}
/* Number tags and tap-to-pick numbers */
.num-tag{display:inline-grid;place-items:center;min-width:24px;height:20px;margin-right:6px;padding:0 5px;border-radius:5px;background:var(--brand-tint4);color:var(--brand);font-size:12px;font-weight:800;line-height:1;vertical-align:middle;font-variant-numeric:tabular-nums}
.rx-chip.active .num-tag,.lu-spot.selected .num-tag{background:#ffffff33;color:#fff}
.rx-val{height:44px;margin:0 3px;border:1px solid #dbe4f5;border-radius:10px;background:#fff;color:#1d2b4a;font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}
.rx-val:hover{border-color:var(--brand)}
.rx-tip{margin:-4px 0 10px}
.rx-progress{display:flex;gap:6px;overflow-x:auto;padding-bottom:10px;margin-bottom:6px;scrollbar-width:thin}
.rx-prog{flex:none;display:flex;flex-direction:column;align-items:center;min-width:52px;padding:4px 6px;border:1px solid #dbe4f5;border-radius:10px;background:#fff;line-height:1.2}
.rx-prog small{font-size:11px;color:#5d6b82}.rx-prog b{font-size:16px;color:#1d2b4a}
.rx-prog.active{border-color:var(--brand);background:var(--brand)}.rx-prog.active small,.rx-prog.active b{color:#fff}
.rx-asking{margin:0 0 10px;font-size:15px}.rx-asking b{font-size:18px;color:var(--brand-deep)}
.rx-num.current{border-color:var(--brand);background:var(--brand-tint)}
.rx-back{margin-top:10px;color:var(--brand);font-weight:700;min-height:40px}
.rx-sheet-sub{margin:16px 0 8px;font-size:14px;color:#5d6b82}
.rx-delete{width:100%;margin-top:14px}
/* Result entry: pitchers and finish */
.rx-checks{display:grid;gap:8px;margin:12px 0 8px;padding:0;list-style:none}
.rx-checks li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #c9d5ef;border-radius:10px;background:var(--brand-tint3);font-weight:700;color:var(--brand-deep)}
.rx-ok{display:flex;align-items:center;gap:8px;margin-top:12px;font-weight:700;color:var(--brand)}
.rx-sub{margin:16px 0 6px;font-size:15px}
.rx-done{border:2px solid var(--brand)}
.rx-bar .lu-bar-state{flex:1;text-align:center}.rx-bar [hidden]{display:none}
@media(max-width:760px){
 .rx-steps{gap:4px}.rx-steps button{flex-direction:column;gap:2px;min-height:56px;font-size:13px}
 .rx-steppers{grid-template-columns:repeat(2,minmax(0,1fr))}
 .rx-kinds{grid-template-columns:repeat(3,minmax(0,1fr))}.rx-kind{min-height:56px;font-size:16px}
 .rx-console{top:4px;padding:14px 12px}
 .rx-now{margin-bottom:10px}.rx-now-inning strong{font-size:19px}.rx-now-batter strong{font-size:18px}
 .rx-items{grid-template-columns:repeat(2,minmax(0,1fr))}
 .rx-numpad .rx-num{min-height:52px}
}
@media(max-width:600px){.sheet{align-items:flex-end}.sheet-panel{width:100%;max-height:85vh;border-radius:18px 18px 0 0;padding-bottom:calc(22px + env(safe-area-inset-bottom))}}
/* Game result (S9) */
.board-score{flex:none;padding:2px 14px;border-radius:8px;background:rgba(0,0,0,.25);color:#fff;font-size:30px;font-weight:800;letter-spacing:1px;font-variant-numeric:tabular-nums;white-space:nowrap}
/* Everything about the result sits on the one dark board: the score, the inning score, the result and the awards. */
.scoreboard.result-board{grid-template-areas:"head match date" "detail detail detail";padding:24px 30px 22px;border-bottom:0;
  background:url(/images/scoreboard-stadium.svg) center top/cover no-repeat,
    radial-gradient(circle at 1px 1px,rgba(255,255,255,.07) 1px,transparent 1.6px) 0 0/6px 6px,
    linear-gradient(180deg,#123a9c 0%,#0b2466 45%,#050f2e 100%);
  box-shadow:inset 0 0 0 2px rgba(143,192,255,.35),inset 0 -40px 60px rgba(5,15,46,.6)}
.result-board .scoreboard-logo{width:48px;height:48px;border-radius:12px;border:2px solid rgba(255,255,255,.9);box-shadow:0 4px 14px rgba(0,0,0,.35)}
.result-board .scoreboard-team strong{font-size:18px;text-shadow:0 2px 6px rgba(0,0,0,.5)}
.result-board .board-score{padding:4px 18px;border:1px solid rgba(143,192,255,.55);background:rgba(5,15,46,.65);font-size:34px;text-shadow:0 0 12px rgba(120,170,255,.8)}
.ls-team{display:inline-flex;align-items:center;gap:8px;max-width:100%}.ls-team span{overflow:hidden;text-overflow:ellipsis}
.ls-ini{display:none}
.ls-logo{flex:none;width:24px;height:24px;border-radius:6px;object-fit:cover;background:#fff}
.row-photo{flex:none;width:30px;height:30px;margin-right:8px;border-radius:8px;object-fit:cover;vertical-align:middle;background:var(--brand-tint4)}
.game-awards dd{display:flex;align-items:center}.game-awards .row-photo{width:26px;height:26px;margin-right:6px;border:1px solid rgba(255,255,255,.6)}
.board-detail{grid-area:detail;display:grid;gap:14px;min-width:0}
.board-lines{overflow-x:auto}
.result-board .rec-linescore{border-radius:8px}
.result-board .rec-linescore th,.result-board .rec-linescore td{border-bottom:1px solid rgba(255,255,255,.12)}
.result-board .rec-linescore thead th{background:rgba(0,0,0,.25);color:#9fb8ec}
.result-board .rec-linescore tbody th,.result-board .rec-linescore tbody td{background:rgba(255,255,255,.06);color:#fff}
.result-board .rec-linescore .total{background:rgba(120,170,255,.18);color:#fff}
.board-facts{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.board-tag{padding:1px 8px;border:1px solid rgba(143,192,255,.5);border-radius:6px;color:#cfe0ff;font-size:12px;font-weight:700;line-height:1.7}
.game-awards{display:flex;flex-wrap:wrap;gap:8px 22px;margin:0 0 0 auto}.game-awards div{display:flex;align-items:center;gap:8px}
.game-awards dt{padding:1px 8px;border-radius:6px;background:rgba(255,255,255,.14);color:#cfe0ff;font-size:12px;font-weight:800}.game-awards dd{margin:0;font-weight:800;color:#fff}
.game-awards .num-tag{background:rgba(255,255,255,.2);color:#fff}
.game-actions{margin-top:16px}
@media(max-width:700px){.scoreboard.result-board{grid-template-areas:"head date" "match match" "detail detail";padding:16px 14px}
  .result-board .scoreboard-logo{width:40px;height:40px;border-radius:10px}.result-board .scoreboard-team strong{font-size:14px}
  .result-board .board-score{font-size:24px;padding:3px 10px}.ls-logo{width:20px;height:20px;border-radius:5px}.ls-team{gap:5px}.ls-team .ls-logo~span:not(.ls-ini){position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.ls-team .ls-logo~.ls-ini{display:inline;font-weight:700;font-size:12px;letter-spacing:0}.result-board .rec-linescore thead th:not(:first-child),.result-board .rec-linescore tbody td{padding-left:5px;padding-right:5px}}
.m-panel.game-result:not(:has(.game-actions)){padding-bottom:0}
.stat-sub{display:flex;align-items:center;gap:6px;margin:6px 0 8px}.stat-sub .ui-icon{width:18px;height:18px;color:var(--brand)}
.stat-sub:not(:first-of-type){margin-top:20px}
.stat-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none}
.stat-tiles li{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 6px;border:1px solid #dbe4f5;border-radius:12px;background:#f8faff}
.stat-tiles small{font-size:12px;font-weight:700;color:#5d6b82}.stat-tiles b{font-size:24px;color:#1d2b4a;font-variant-numeric:tabular-nums}.stat-tiles em{font-style:normal;font-size:11px;color:#5d6b82}
.stat-table td{font-variant-numeric:tabular-nums}.stat-table tbody th{white-space:nowrap}.stat-table tbody th b{display:inline-block;width:1.4em;color:var(--brand)}
.stat-table td.hot{font-weight:800;color:var(--brand-deep)}.stat-table td.rate{font-weight:700}
.stat-table thead a{display:block;color:var(--brand);font-weight:800}.stat-table thead a.sorted{color:#fff;background:var(--brand);border-radius:6px;padding:0 4px}
.stat-table tr.unqualified td,.stat-table tr.unqualified th{color:#8a96a8}
.stat-table.sticky-first tbody th,.stat-table.sticky-first thead th:first-child{position:sticky;left:0;z-index:1;background:#fff;box-shadow:1px 0 0 #edf1f8}
.stat-table.sticky-first thead th:first-child{background:#f3f6fc}
.rx-grid.readonly .rx-pa{display:inline-block;width:auto;min-width:48px;text-align:center}
/* Both teams share the same player/inning columns on the game result. */
.rx-grid.readonly{table-layout:fixed}.rx-grid.readonly .rx-result-player,.rx-grid.readonly thead tr:first-child th:first-child{width:180px;box-sizing:border-box}.rx-grid.readonly .rx-result-inning{width:80px;box-sizing:border-box}
.rx-grid.readonly tbody th{white-space:normal;overflow-wrap:anywhere}.rx-grid.readonly .rx-pa{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.rx-grid .rx-appearance-head th{font-size:11px;white-space:nowrap;padding:5px 4px}
.rx-entry-grid tbody th{min-width:180px;max-width:240px;white-space:normal;overflow-wrap:anywhere}.rx-entry-grid td:not(.num){min-width:80px}.rx-entry-grid .rx-pa{white-space:normal;overflow-wrap:anywhere}
/* 成績 (S10) */
.stat-filter{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 16px;margin:0 0 16px}
.stat-filter label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:700;color:#5d6b82}.stat-filter .rx-select{min-width:180px}
.stat-filter .inline-link{margin-left:auto;padding-bottom:10px}
.stat-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:10px}.stat-tools .m-help{margin:0}
.team-record{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px;margin:0 0 14px;font-size:16px;font-weight:700}
.team-record b{font-size:30px;color:var(--brand-deep);margin-left:6px;font-variant-numeric:tabular-nums}.team-record small{margin-left:12px;color:#5d6b82;font-size:14px}
.leaders{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 8px;padding:0;list-style:none}
.leaders li{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid #dbe4f5;border-radius:12px;background:linear-gradient(135deg,#1d2f5e,var(--brand));color:#fff}
.leaders small{font-size:12px;font-weight:700;color:#c9d5f5}.leaders strong{display:flex;align-items:center;font-size:15px}.leaders b{font-size:26px;font-variant-numeric:tabular-nums}
.leaders .num-tag{background:#ffffff33;color:#fff}
.game-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.game-row{display:grid;grid-template-columns:96px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 14px;border:1px solid #dbe4f5;border-radius:12px;background:#fff;color:#1d2b4a}
.game-row:hover{border-color:var(--brand)}.game-date{font-weight:700;color:#5d6b82;font-variant-numeric:tabular-nums}
.game-vs{display:flex;flex-direction:column;min-width:0}.game-vs small{font-size:12px;color:#5d6b82}.game-vs strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.game-score{display:flex;align-items:center;gap:8px}.game-score b{font-size:18px;font-variant-numeric:tabular-nums}
.game-badge{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#edf0f4;color:#5d6b82;font-weight:800}
.game-badge.win{background:var(--brand);color:#fff}.game-badge.draw{background:var(--brand-tint4);color:var(--brand)}
/* 大会 (S11) */
.tour-list{display:grid;gap:10px;margin:0 0 8px;padding:0;list-style:none}
.tour-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px 18px;padding:14px 16px;border:1px solid #dbe4f5;border-radius:12px;background:#fff}
.tour-main{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0}.tour-main strong{font-size:16px}.tour-main small{color:#5d6b82}
.tour-record{display:flex;flex-direction:column;align-items:flex-end}.tour-record b{font-size:18px;color:var(--brand-deep)}.tour-record small{color:#5d6b82;font-size:12px}
.tour-actions{display:flex;align-items:center;gap:12px}
.tour-period{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tour-more{margin:4px 0 14px}.tour-more summary{cursor:pointer;font-weight:700;color:var(--brand);min-height:40px;display:flex;align-items:center}
.rec-result strong{color:#1d2b4a}
.tour-share .rec-state{flex:none;white-space:nowrap}
.tour-share{display:flex;align-items:flex-start;gap:10px;margin:0 0 6px;padding:10px 12px;border:1px dashed #c9d5ef;border-radius:10px;background:#f8faff}.tour-share p{margin:0;font-size:13px;color:#5d6b82}
@media(max-width:760px){
 .board-score{font-size:22px;padding:2px 8px}
 .game-awards{margin-left:0}
 .rec-linescore th,.rec-linescore td{padding:6px 3px;font-size:13px}.rec-linescore tbody th{max-width:6.5em;padding-left:8px}
 .stat-tiles,.leaders{grid-template-columns:repeat(2,minmax(0,1fr))}
 .game-row{grid-template-columns:72px minmax(0,1fr) auto;gap:8px;padding:10px}
 .tour-card{grid-template-columns:minmax(0,1fr) auto}.tour-actions{grid-column:1/-1}
 .stat-filter .rx-select{min-width:150px}.stat-filter .inline-link{margin-left:0}
}

/* メンバー 「権限」: the chips open in place under the line (same look as the ground-option buttons); one tap saves. */
.perm-edit{position:relative}.perm-edit>summary{list-style:none;cursor:pointer}.perm-edit>summary::-webkit-details-marker{display:none}
.perm-edit[open]{flex-basis:100%}
.perm-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;padding:12px;border:1px solid #d6e0f2;border-radius:12px;background:#f8faff}
.perm-chip{min-height:44px;padding:8px 18px;border:1px solid #d6e0f2;border-radius:10px;background:#fff;color:#264676;font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.perm-chip:hover{border-color:var(--brand-vivid)}
.perm-chip[aria-pressed="true"]{border-color:var(--brand-vivid);background:var(--brand-tint2);box-shadow:0 0 0 1px var(--brand-vivid);color:var(--brand-deep)}
.member-role.recorder{background:#f1f4fa;color:#3d5a8f}
/* ラインナップ: a refused save stops the editor until it is reloaded. */
.lu-error{margin:0 0 12px}.lu-error:not([hidden]){display:block}
.lu.locked .lu-columns,.lu.locked .lu-candidates{opacity:.55;pointer-events:none}
/* Phones: the name keeps its width; the role badge and buttons go to the next line instead of squeezing it. */
@media (max-width:700px){.member-row>div:first-of-type{min-width:calc(100% - 80px)}}
/* ラインナップ: a batter dragged over a fielding spot; the published mark on the team home NEXT GAME; the chat under the lineup. */
.lu-spot.drop{border-color:var(--brand);box-shadow:0 0 0 4px #335ac066}
.next-lineup{display:inline-flex;align-items:center;gap:8px;margin:2px 0 12px;padding:8px 12px;border-radius:10px;background:var(--brand-tint2);color:var(--brand-deep);font-size:14px;font-weight:700}
.next-lineup .ui-icon{width:18px;height:18px}.next-lineup b{margin-left:4px;padding-left:10px;border-left:1px solid #c9d6f3;color:var(--brand-vivid)}
.next-lineup:hover{background:#e3ecff}
.next-lineup-tag{display:inline-block;padding:1px 8px;border-radius:6px;background:var(--brand-tint2);color:var(--brand);font-size:12px;font-weight:700;line-height:1.7;white-space:nowrap}
.lineup-chat .svc-chat.chat-log{min-height:120px;max-height:min(55vh,440px);border:1px solid #e5eaf2;border-radius:12px;background:#f8faff}
.chat-system{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;margin:6px auto;padding:4px 12px;border-radius:999px;background:#eef2fa;color:#4a5f86;font-size:13px;text-align:center}
.chat-system .ui-icon{width:15px;height:15px;color:var(--brand)}.chat-system time{color:#8a97ad;font-size:12px}
.rec-talk{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
/* 試合結果: players without a photo show the person icon on the same rounded square. */
.row-photo.empty{display:inline-flex;align-items:center;justify-content:center;color:var(--brand)}.row-photo.empty .ui-icon{width:60%;height:60%}
.game-awards .row-photo.empty{background:#ffffff26;color:#fff}
.rx.locked .rx-step,.rx.locked .rx-steps{opacity:.55;pointer-events:none}
/* 仕上げ: the players whose numbers do not add up, as chips on their own line under the message (a tap opens the player). */
.rx-checks li:has(.rx-check-players){flex-wrap:wrap}.rx-checks li:has(.rx-check-players)>span{flex:1 1 0;min-width:0}.rx-check-players{flex-basis:100%;margin:2px 0 0}
.rx-checks .inline-link{flex:none;white-space:nowrap}
/* B (四死球) on the score boards: the abbreviation keeps no underline (title shows the meaning). */
.rec-linescore abbr{text-decoration:none;cursor:help}

/* 入力方法の変更中 (record entry): the notice with 「変更をやめる」 on one line when it fits. */
.rx-changing{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px}
.rx-changing .text-button{white-space:nowrap}

/* 予定: 試合の対戦相手と結果（カレンダー・過去の予定）、NEXT GAME の共有ボタン */
.event-game{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 14px;margin:10px 0 0 76px}
.event-opp{display:inline-flex;align-items:center;gap:10px;min-width:0}
.event-opp-logo{flex:none;width:36px;height:36px;border-radius:8px;object-fit:cover;background:#fff;border:1px solid #dbe4f4}
.event-opp-logo.empty{display:inline-flex;align-items:center;justify-content:center;color:#6b7fa8;background:var(--brand-tint2)}.event-opp-logo.empty svg{width:20px;height:20px}
.event-opp-name{display:flex;flex-direction:column;min-width:0;line-height:1.3}.event-opp-name small{font-size:12px;color:#5d6b82}.event-opp-name strong{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.event-result{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:10px;background:var(--brand-tint2);color:var(--brand-deep)}
.event-result b{font-size:20px;letter-spacing:.02em}.event-result em{font-style:normal;font-size:13px;font-weight:700;padding:2px 8px;border-radius:999px;background:#fff}
.event-result.win{background:var(--brand);color:#fff}.event-result.win em{color:var(--brand)}
.event-result.lose{background:#e8ecf3;color:#47556c}.event-result.draw{background:var(--brand-tint2);color:var(--brand-deep)}
.calendar-result{flex:none;font-weight:700;font-size:11px;color:var(--brand)}.calendar-result.lose{color:#68778c}
.next-share{display:inline-flex;gap:8px;margin-left:8px;vertical-align:middle}
.next-event-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.next-event-actions .next-share{margin-left:0}
/* The broadcast shortcut: the same 8px square button as the others, in the LIVE red, with a small blinking dot. */
.design-atlas .button.next-live-watch{background:#d6334a;border-color:#d6334a;color:#fff}
.design-atlas .button.next-live-watch:hover{background:#b9253b;border-color:#b9253b;color:#fff}
body:not(.auth-page) .m-shell .button.next-realtime{font-size:13px}
.next-live-dot{width:10px;height:10px;border-radius:50%;background:#fff;flex:none;animation:next-live-blink 1.6s ease-in-out infinite}
@keyframes next-live-blink{50%{opacity:.35}}
@media(prefers-reduced-motion:reduce){.next-live-dot{animation:none}}
/* 結果が未登録の終了した試合: 日付とタイトル + 記録ボタン */
.unrecorded-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.unrecorded-row+.unrecorded-row{margin-top:10px;padding-top:10px;border-top:1px solid #e3e9f3}
.unrecorded-row small{display:block;color:#5b6b85}
.unrecorded-actions{display:flex;flex-wrap:wrap;gap:8px}
.answer-button{white-space:nowrap}
@media(max-width:700px){body:not(.auth-page) .m-shell .answer-buttons .answer-button{padding-left:2px;padding-right:2px;gap:2px;font-size:13px}}
.share-small svg{width:16px;height:16px}
@media(max-width:700px){.event-game{margin-left:0}.svc-calendar .calendar-result{display:none}.event-opp-name strong{max-width:50vw}}

/* 試合結果の表: 選手名の列を固定して、ほかの列は左右にスクロール */
.rx-table.sticky-first tbody th,.rx-table.sticky-first thead tr:first-child th:first-child{position:sticky;left:0;z-index:1;background:#fff;box-shadow:1px 0 0 #edf1f8}
.rx-table.sticky-first thead tr:first-child th:first-child{background:#f3f6fc}
.rx-grid.readonly.sticky-first tr.current th{background:var(--brand-tint3)}
/* 打席ごと入力: 現在の打者の表示領域を折りたたむ */
.rx-fold{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;margin-left:auto;border:1px solid #c9d5ef;border-radius:10px;background:#fff;color:var(--brand);font-weight:700;cursor:pointer}
.rx-fold .ui-icon{width:18px;height:18px;transition:transform .15s}.rx-fold[aria-expanded=false] .ui-icon{transform:rotate(180deg)}
.rx-now{align-items:center}.rx-now .rx-fold{order:3}
.rx-console.folded>*:not(.rx-now){display:none}.rx-console.folded .rx-now{margin-bottom:0}.rx-console.folded [data-change-batter],.rx-console.folded .rx-now-batter>small{display:none}
.rx-console.folded{padding-top:10px;padding-bottom:10px}
.rx-console.folded .rx-now{flex-wrap:nowrap;gap:8px}.rx-console.folded .rx-now-inning{gap:8px;flex:none}.rx-console.folded .rx-now-batter{min-width:0;flex:1;justify-content:flex-end}.rx-console.folded .rx-now-batter strong{min-width:0;font-size:16px}
.rx-console.folded .rx-fold{flex:none;margin-left:0}

/* 公開ページの成績（チーム・選手） */
.public-games .event-result{margin-left:auto;padding:4px 10px;gap:6px;white-space:nowrap}.public-games .event-result b{font-size:16px}.public-games .event-result em{font-size:12px}
.public-figures{overflow-x:auto;margin:0 0 12px}.public-figures table{width:100%;border-collapse:collapse;font-size:14px}
.public-figures caption{text-align:left;font-weight:700;color:#172f69;padding:4px 0}
.public-figures th,.public-figures td{padding:8px 10px;text-align:right;white-space:nowrap;border-bottom:1px solid #e5eaf2}
.public-figures thead th{font-size:12px;color:#5b6f93;font-weight:700}.public-figures tbody th{text-align:left;color:#47556c}
.public-figures td{font-variant-numeric:tabular-nums}
@media(max-width:700px){.public-games .event-result{margin-left:0;margin-top:4px}.public-figures table{font-size:13px}.public-figures th,.public-figures td{padding:8px 4px}.public-figures thead th{font-size:11px}}

/* 過去の記録を取り込む (record-import*.html), 外部記録 tag, OB in the roster and on the invite page */
.import-format{margin-top:12px}.import-format summary{cursor:pointer;color:var(--brand);font-weight:700}
.import-format dl{margin:8px 0;display:grid;gap:4px}.import-format dt{font-weight:700}.import-format dd{margin:0 0 6px;font-size:13px;overflow-wrap:anywhere;color:#4a5568}
.import-row{flex-wrap:wrap;column-gap:14px}.import-row>div:first-child{flex:1 1 240px;min-width:0}.import-row form{margin:0}.import-row .scope-label{margin-right:.4em}
.import-help{margin:8px 0 14px;padding-left:1.2em;font-size:14px;line-height:1.7}
.board-tag.external{border-color:rgba(255,255,255,.75);color:#fff}
.ob-list summary{cursor:pointer;margin-bottom:8px}
.invite-ob{grid-column:1/-1;margin:4px 0 8px}.invite-ob summary{cursor:pointer;color:var(--brand);font-weight:700;padding:6px 0}
.invite-ob[open]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 10px}.invite-ob[open]>summary{grid-column:1/-1}
@media (max-width:700px){.invite-ob[open]{grid-template-columns:1fr}}

/* Selects: the blue focus ring (the base style draws an orange one) and a drawn arrow so they look like the rest of the screens */
select:focus-visible{outline:3px solid var(--brand-soft);outline-offset:2px}
.rx-select,.import-table select{appearance:none;-webkit-appearance:none;padding:0 38px 0 12px;
  background-color:#fff;background-image:linear-gradient(45deg,transparent 50%,var(--brand) 50%),linear-gradient(135deg,var(--brand) 50%,transparent 50%);
  background-position:calc(100% - 21px) calc(50% + 2px),calc(100% - 15px) calc(50% + 2px);background-size:6px 6px,6px 6px;background-repeat:no-repeat}
.rx-select:hover,.import-table select:hover{border-color:var(--brand)}
.stat-filter .stat-links{margin-left:auto;display:flex;flex-wrap:wrap;gap:6px 18px;padding-bottom:10px}
.stat-filter .stat-links .inline-link{display:inline-flex;align-items:center;gap:6px;margin:0;padding:0}
.stat-filter .stat-links .ui-icon{width:18px;height:18px}
/* 成績 試合結果: the result is a round mark at the far right (勝 = white with a ring, 敗 = black, 分 = soft blue), details under the opponent */
.game-row{grid-template-columns:96px minmax(0,1fr) auto}
.game-vs .game-details{margin-top:2px;line-height:1.5;color:#44536b;white-space:normal;overflow-wrap:anywhere}
.game-score{justify-content:flex-end;gap:12px}
.game-badge{width:34px;height:34px;border-radius:50%;font-size:15px;line-height:1;border:2px solid #1d2b4a;background:#fff;color:#1d2b4a}
.game-badge.win{background:#fff;color:#1d2b4a;border-color:#1d2b4a}
.game-badge.lose{background:#151a24;color:#fff;border-color:#151a24}
.game-badge.draw{background:#fff;color:#5d6b82;border-color:#b9c4d8;font-weight:700}
@media (max-width:700px){.stat-filter .stat-links{margin-left:0;width:100%;padding-bottom:0}.game-score{gap:8px}.game-badge{width:30px;height:30px;font-size:14px}}

/* 過去の記録を取り込む: the players as a table (選手 / 取り込み方法 / 名簿の名前), chips for the 大会 and the helpers, the busy cover */
.import-table-wrap{margin:8px 0 4px}
.import-table{width:100%;border-collapse:collapse}
.import-table th,.import-table td{padding:10px 12px;border-bottom:1px solid #e1e8f5;text-align:left;vertical-align:middle}
.import-table thead th{font-size:13px;color:#5d6b82;font-weight:700;background:#f4f7fd;border-bottom:1px solid #cbd8ee}
.import-table tbody th{font-weight:400;width:34%}.import-table tbody th strong{display:block;overflow-wrap:anywhere}
.import-table tbody th small{display:block;font-size:12px;color:#5d6b82;line-height:1.5}
.import-table td:nth-child(2){width:30%}.import-table td:nth-child(3){width:36%}
.import-table select,.import-table input{width:100%;min-height:42px;border:1px solid #cbd8ee;border-radius:8px;background-color:#fff;color:#1d2b4a;font:inherit;font-size:14px}
.import-table input{padding:0 12px}
.import-table select{font-weight:600}
.import-table tbody tr:not(:has(option[value="new"]:checked)):not(:has(option[value="retired"]:checked)) .import-name-cell input{visibility:hidden}
.import-chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px}
.import-chip{position:relative;cursor:pointer}
.import-chip input{position:absolute;opacity:0;width:100%;height:100%;inset:0;margin:0;cursor:pointer}
.import-chip>span{display:inline-flex;align-items:baseline;gap:6px;padding:7px 14px;border:1px solid #cbd8ee;border-radius:999px;background:#fff;color:#44536b;font-size:14px}
.import-chip b{font-weight:700}.import-chip small{font-size:12px;color:#5d6b82}
.import-chip:hover>span{border-color:var(--brand)}
.import-chip input:checked+span{background:var(--brand);border-color:var(--brand);color:#fff}.import-chip input:checked+span small{color:#dbe5ff}
.import-chip input:focus-visible+span{outline:3px solid var(--brand-soft);outline-offset:2px}
/* メンバーの一覧: 写真と「背番号＋名前」だけの格子（2026-11-02）。メンバーを開くとメンバーのページ（member-detail.html） */
.member-grid{list-style:none;margin:0 0 6px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}
.member-card{display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;box-sizing:border-box;padding:0 0 10px;overflow:hidden;border:1px solid #d6e0f2;border-radius:12px;background:#fff;color:#20365f;text-align:center}
.member-card:hover{background:var(--brand-tint3)}
.member-card .member-photo{width:70px;height:70px;border-radius:50%;margin-top:4px}
.member-card .member-photo.empty .ui-icon{width:34px;height:34px}
/* カードの上の帯: 左に背番号（左揃え）、右にポジションの一字（投・捕・内・外）。帯の色がポジション（色の制限なし。ユーザー指示 2026-11-02） */
.member-card-hd{align-self:stretch;display:flex;justify-content:space-between;align-items:center;padding:5px 9px;background:#fff;border-bottom:4px solid var(--pos,#7d8aa0);color:#17335c;font-weight:800;line-height:1.2}
.member-card-hd b{font-size:17px;font-variant-numeric:tabular-nums}.member-card-hd span{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:50%;background:var(--pos,#7d8aa0);color:#fff;font-size:13px}
.member-card-hd.pit{--pos:#7a5bc7}.member-card-hd.cat{--pos:#2f6fd6}.member-card-hd.inf{--pos:#1f9d55}.member-card-hd.out{--pos:#c9801a}.member-card-hd.oth{--pos:#7d8aa0}
.member-card-name{font-size:14px;line-height:1.35;font-weight:700;overflow-wrap:break-word;max-width:100%;padding:0 4px}
.member-card-badge{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;min-height:22px}.member-card-badge .member-role{padding:2px 8px;font-size:12px}
.member-unverified{font-size:12px;color:#8a5a00;font-weight:700}
.member-back{margin:0 0 12px}
.member-detail-head{display:flex;align-items:center;gap:16px;margin-bottom:14px}
.member-photo.big{width:104px;height:104px;border-radius:50%}.member-photo.big.empty .ui-icon{width:48px;height:48px}
.member-detail-who{min-width:0}.member-detail-who h2{margin:0 0 4px;font-size:22px;overflow-wrap:break-word}.member-detail-who h2 b{color:var(--brand)}
.member-detail-sub{margin:0 0 6px;color:#5d6b82}.member-detail-badges{margin:0;display:flex;flex-wrap:wrap;gap:6px}
.member-detail-actions{margin-top:6px}
.member-manage .perm-select{margin:0 0 12px}
@media(max-width:700px){.member-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.member-card{padding:0 0 8px}.member-card .member-photo{width:62px;height:62px}.member-card-name{font-size:13px}.member-detail-head{gap:12px}.member-photo.big{width:84px;height:84px}}
.member-group{margin:18px 0 6px;padding:6px 12px;border-radius:8px;background:#eef3fd;color:var(--brand-vivid);font-size:14px;font-weight:700}.member-group:first-of-type{margin-top:6px}
.busy-cover{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:rgba(20,32,64,.55);backdrop-filter:blur(2px);cursor:progress}
.busy-box{display:flex;flex-direction:column;align-items:center;gap:14px;max-width:min(88vw,420px);padding:26px 30px;border-radius:16px;background:#fff;color:#1d2b4a;text-align:center;box-shadow:0 12px 40px rgba(10,20,50,.35)}
.busy-box p{margin:0;font-weight:700;line-height:1.7}
.busy-spinner{width:44px;height:44px;border:5px solid #dbe5ff;border-top-color:var(--brand);border-radius:50%;animation:busy-spin .9s linear infinite}
@keyframes busy-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.busy-spinner{animation-duration:2.4s}}
body.is-busy{overflow:hidden}
@media (max-width:700px){
 .import-table,.import-table tbody,.import-table tr,.import-table th,.import-table td{display:block;width:auto}
 .import-table thead{display:none}
 .import-table tbody tr{padding:12px 2px;border-bottom:1px solid #e1e8f5}
 .import-table th,.import-table td{border:0;padding:3px 0;width:auto!important}
 .import-table td[data-label]::before{content:attr(data-label);display:block;margin:6px 0 3px;font-size:12px;font-weight:700;color:#5d6b82}
 .import-table tbody tr:not(:has(option[value="new"]:checked)):not(:has(option[value="retired"]:checked)) .import-name-cell{display:none}
}
/* 試合結果 rows: the date column fits a date with its year (通算); on a phone the date goes above the opponent */
.game-row{grid-template-columns:128px minmax(0,1fr) auto}.game-date{white-space:nowrap}
@media (max-width:700px){
 .game-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"date score" "vs score";row-gap:2px}
 .game-date{grid-area:date;min-width:0;font-size:13px}.game-vs{grid-area:vs}.game-score{grid-area:score}
}

/* 取り込み switch per player: off = struck-through name, the way to import is disabled; 退団として追加 = a faded name */
.import-table td.import-take{width:84px;text-align:center}
.import-table tbody th{width:30%}.import-table td:nth-child(3){width:30%}.import-table td:nth-child(4){width:30%}
.import-switch{position:relative;display:inline-block;width:46px;height:26px;cursor:pointer;vertical-align:middle}
.import-switch input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.import-switch span{position:absolute;inset:0;border-radius:999px;background:#c5cfdf;transition:background .15s}
.import-switch span::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s}
.import-switch input:checked+span{background:var(--brand)}.import-switch input:checked+span::after{transform:translateX(20px)}
.import-switch input:focus-visible+span{outline:3px solid var(--brand-soft);outline-offset:2px}
.import-table tr:has(.import-take input:not(:checked)) th strong{text-decoration:line-through;color:#8a96aa}
.import-table tr:has(.import-take input:not(:checked)) th small{color:#a3adbd}
.import-table tr:has(option[value="retired"]:checked):has(.import-take input:checked) th strong{opacity:.45}
.import-table select:disabled,.import-table input:disabled{background-color:#eef1f6;color:#8a96aa;cursor:not-allowed;opacity:1}
.import-table tbody tr:has(.import-take input:not(:checked)) .import-name-cell input{visibility:hidden}
@media (prefers-reduced-motion:reduce){.import-switch span,.import-switch span::after{transition:none}}
@media (max-width:700px){
 .import-table td.import-take{text-align:left}
 .import-table tbody tr:has(.import-take input:not(:checked)) .import-name-cell{display:none}
}
/* メンバー 権限: a select that saves on change */
.perm-select{margin:0}.perm-select label{display:flex;align-items:center;gap:8px}
.perm-select-label{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:700;color:#5d6b82;white-space:nowrap}
.perm-select-label .ui-icon{width:16px;height:16px}
.perm-select .rx-select{min-height:38px;min-width:120px;max-width:160px;font-size:14px}
/* 成績 rank column (only players who reached the 規定) */
.stat-table .rank{min-width:40px;text-align:center;font-weight:700;color:var(--brand)}
/* 成績: 順位 is the first (sticky) column, 1〜3位 get gold/silver/bronze medals */
.stat-table .rank{width:52px;min-width:52px;max-width:52px;box-sizing:border-box;padding-left:6px;padding-right:6px}
.stat-table.sticky-first thead th.name{position:sticky;left:52px;z-index:1;background:#f3f6fc}
.stat-table.sticky-first tbody th.name{left:52px}
.rank-no{display:inline-grid;place-items:center;min-width:26px;height:26px;border-radius:50%;font-size:14px;font-weight:800;line-height:1;color:var(--brand);font-variant-numeric:tabular-nums}
.rank-no.rank-1,.rank-no.rank-2,.rank-no.rank-3{color:#fff;box-shadow:inset 0 0 0 2px #ffffff80,0 1px 3px #0003;text-shadow:0 1px 1px #0003}
.rank-no.rank-1{background:radial-gradient(circle at 35% 30%,#ffe27a,#e0a800 70%);color:#5a3d00;text-shadow:none}
.rank-no.rank-2{background:radial-gradient(circle at 35% 30%,#f4f6f9,#a9b3c1 70%);color:#33404f;text-shadow:none}
.rank-no.rank-3{background:radial-gradient(circle at 35% 30%,#efb07a,#b06a2c 70%)}
/* かんたん入力: pinch hitter of an imported record (「代」 instead of a batting-order number) */
.rx-pinch{display:inline-block;margin-left:6px;font-size:11px;font-weight:600;color:#5d6b82;line-height:1.3;white-space:nowrap}
/* 対戦相手未定: gray 「?」 mark (the default team logo is for teams without their own) */
.event-opp-logo.unknown,.scoreboard-logo.unknown{border-radius:50%;background:transparent;border-color:transparent;box-shadow:none}

/* 他のサービスからの移行 (/switch) と 紹介・キャンペーンコード */
.switch-hero{grid-template-columns:1fr}
.switch-hero .about-lead strong{color:#ffce65}
.switch-steps{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.switch-steps li{display:grid;grid-template-columns:36px minmax(0,1fr) minmax(0,.9fr);align-items:center;gap:8px 20px;padding:20px 24px;background:#fff;border:1px solid #d8e2f6;border-left:4px solid var(--brand-vivid);border-radius:0 16px 16px 0}
.switch-steps li>span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--brand-vivid);color:#fff;font-weight:800}
.switch-steps h3{margin:0 0 6px;font-size:18px;color:#193968}.switch-steps h3 small{margin-left:8px;font-size:13px;color:var(--brand);font-weight:700}
.switch-steps p{margin:0;font-size:15px;line-height:1.85;color:#3d4c63}
.switch-steps figure{margin:0;min-width:0}.switch-steps img{display:block;width:100%;height:auto;border:1px solid #d8e2f6;border-radius:10px}
.switch-steps li:last-child{grid-template-columns:36px minmax(0,1fr)}
.switch-note{padding:22px 26px;background:#fff;border:1px solid #d8e2f6;border-radius:16px}.switch-note p{margin:0 0 10px;font-size:15px;line-height:1.9;color:#3d4c63}.switch-note p:last-child{margin-bottom:0}
.switch-sample{margin:0;padding:20px 24px;background:var(--brand-tint3);border:1px solid #d5e2fb;border-left:4px solid var(--brand-vivid);border-radius:0 14px 14px 0}.switch-sample p{margin:0;font-size:15px;line-height:1.9;color:#2a3b57;overflow-wrap:anywhere}
.switch-code-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.switch-code-list li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;background:#fff;border:1px solid #d8e2f6;border-radius:14px}
.switch-code-list li>span{display:grid;gap:3px;min-width:0}.switch-code{font-size:22px;letter-spacing:1.5px;color:#193968;overflow-wrap:anywhere}.switch-code-list small{font-size:13px;color:#68778c}
.promo-benefits{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:8px}
.promo-benefits li{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;background:var(--brand-tint3);border:1px solid #d5e2fb;border-radius:12px;color:var(--brand-vivid)}
.promo-benefits li>span{display:grid;gap:2px;color:#193968}.promo-benefits small{font-size:13px;color:#68778c}
@media(max-width:700px){
 .switch-steps li,.switch-steps li:last-child{grid-template-columns:32px minmax(0,1fr);padding:18px 16px}.switch-steps figure{grid-column:1 / -1}
 .switch-code-list li{flex-direction:column;align-items:stretch}.switch-code{font-size:19px}
}

/* マチナインとは: 記録のセクション */
.about-points li:last-child:nth-child(odd){grid-column:1 / -1}
.about-flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.about-flow li{padding:24px;border-top:3px solid var(--brand-vivid);background:#fff;border-radius:0 0 16px 16px;border-left:1px solid #d8e2f6;border-right:1px solid #d8e2f6;border-bottom:1px solid #d8e2f6}
.about-flow li>span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--brand-vivid);color:#fff;font-weight:800}
.about-flow h3{margin:12px 0 6px;font-size:18px;color:#193968}.about-flow p{font-size:15px;line-height:1.85;color:#3d4c63}
.about-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}
.about-modes article{padding:22px 24px;border-radius:16px;background:var(--brand-tint2);border:1px solid #d5e2fb}
.about-modes h3{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:18px;color:#193968}.about-modes h3 .ui-icon{width:22px;height:22px;color:var(--brand-vivid)}
.about-modes p{margin:0;font-size:15px;line-height:1.85;color:#3d4c63}
@media(max-width:700px){.about-flow,.about-modes{grid-template-columns:1fr;gap:12px}.about-flow li,.about-modes article{padding:20px}}
.event-cancel{flex:1 1 100%;margin:0}.event-cancel .m-field{margin-bottom:10px}.event-cancel-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px}.event-cancel-row .m-field{flex:1 1 260px;min-width:0;margin:0}.event-cancel-row .button{flex:none}
.member-role.title{background:var(--brand);color:#fff}

/* 2026-10-03 design fixes: red outline for destructive buttons, icon-only member actions, 成績 もっと見る */
.button.danger-outline{background:#fff;color:#b23a48;border:1px solid #b23a48}.button.danger-outline:hover{background:#fbeef0;color:#962f3b;border-color:#962f3b}
.button.danger-outline .ui-icon{color:inherit}
.comment-actions .comment-delete button,.text-button.danger-text{color:#b23a48}.comment-actions .comment-delete button:hover{color:#962f3b}
.member-actions{display:flex;gap:8px;margin:6px 0}.member-actions form{margin:0}
.button.icon-only{padding:0;display:inline-flex;align-items:center;justify-content:center}.button.icon-only .ui-icon{margin:0}
.stat-more{display:flex;justify-content:center;margin:14px 0 0}.stat-more small{margin-left:6px;font-weight:400;color:#5d6b82}
/* 取り込んだ過去の試合（予定）: 外部記録 tag on light panels, and the 通算 line of the yearly tables */
.import-tag{display:inline-flex;align-items:center;padding:1px 8px;border:1px solid #9db4e6;border-radius:6px;background:var(--brand-tint2);color:var(--brand-deep);font-size:12px;font-weight:700;line-height:1.7;vertical-align:middle}
.event-imported{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 10px}
.public-figures tr.total th,.public-figures tr.total td{font-weight:700;border-top:2px solid #c9d5ea;color:#172f69}

/* プッシュ通知 (/my/profile#push) */
.design-atlas .type-tabs.type-tabs-inline.notice-tabs{padding:0 0 12px;margin:0 0 12px}
[data-tab-panel][hidden]{display:none!important}
.push-device [hidden]{display:none!important}
.push-state{display:flex;flex-direction:column;gap:2px;margin:12px 0}
.push-state strong{font-size:16px;color:#20365f}.push-state small{font-size:14px;color:#68778c}
.push-device .m-actions form{display:contents}
/* 名簿の名前の「候補」(ニックネームに近い名前) */
.reg-team-result .roster-cand-badge{display:none;margin:0 0 0 8px;color:#fff;padding:1px 8px;border-radius:999px;background:var(--brand);color:#fff;font-size:12px;font-weight:700;vertical-align:middle}
.reg-team-result.is-candidate .roster-cand-badge{display:inline-block;width:auto}
.is-candidate{border-color:var(--brand)}
.member-link{margin-top:6px}
.reg-join-code{margin:0 0 16px}
.reg-join-code form{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}
.reg-join-code .reg-field{flex:1 1 220px;margin:0}

/* かんたん入力のショートカットキー表示（PCのみ） */
.rx-key{display:inline-block;margin-left:6px;padding:0 5px;border:1px solid #c5d0e6;border-radius:4px;background:#f4f7fc;color:var(--brand);font:600 11px/16px inherit;vertical-align:middle}
@media (max-width:760px){.rx-key{display:none}}
.sheet button:focus-visible{outline:3px solid #c8d7ff;outline-offset:2px}
/* 過去の記録を取り込む: 大会をまとめる */
.import-merge{margin-top:16px;padding-top:14px;border-top:1px solid #dbe5f5}
.import-merge-title{margin:0 0 4px;font-size:15px;color:#264676}
.import-merge-suggest{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0}
.import-merge-form{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.import-merge-form input{flex:1 1 240px;min-width:0;padding:9px 12px;border:1px solid #cbd8ee;border-radius:8px;font-size:15px}
.import-merge-groups{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.import-merge-groups li{padding:8px 12px;border:1px solid #cbd8ee;border-radius:8px;background:#f4f7fd;font-size:14px;overflow-wrap:anywhere}
.import-chip small.import-chip-to{font-weight:700}
.import-chip.is-merged{cursor:default}
.import-chip.is-merged>span,.import-chip.is-merged input:checked+span{background:#eef3fd;border:1px dashed var(--brand);color:#264676}
.import-chip.is-merged input:checked+span small{color:var(--brand)}

/* メニューの名前 (my/team) */
.menu-label-form{display:grid;gap:10px}
.menu-label-row{display:flex;align-items:flex-end;gap:12px}
.menu-label-row .svc-nav-icon{flex:none;width:28px;height:28px;margin-bottom:10px;color:var(--brand)}
.menu-label-row .m-field{flex:1;min-width:0}
#team-basic,#team-cover,#team-colors,#team-history,#team-join{scroll-margin-top:24px}
/* 試合結果を記録: リアルタイム記録 card is a form button (POST to machi9 live) */
.rec-mode-form{display:flex;margin:0}.rec-mode-form .rec-mode{width:100%;font:inherit;text-align:left;cursor:pointer}
/* machi9 live (P5-a): LIVE card on the home, text broadcast on the game page, 「LIVE」 on the schedule */
/* 「LIVE」 is red (the one exception to the blue palette, user decision 2026-10-04) with a slow blinking dot */
.live-badge{display:inline-flex;align-items:center;gap:5px;margin-left:8px;padding:1px 8px;border-radius:4px;background:#d6334a;color:#fff;font-size:11px;font-weight:800;letter-spacing:.08em;line-height:1.6}
.live-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:#fff;animation:live-blink 1.4s ease-in-out infinite}
@keyframes live-blink{50%{opacity:.25}}
@media(prefers-reduced-motion:reduce){.live-badge::before{animation:none}}
.event-tags .live-badge{margin-left:0}
.live-board{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px 12px;padding:14px 16px;border-radius:12px;background:#16264d;color:#fff}
.live-team{display:flex;align-items:center;gap:10px;min-width:0}
.live-team.them{justify-content:flex-end}
/* 先攻が相手のときは、先攻（相手）を左に置く: 左の欄は「名前・得点」、右の欄は「得点・名前」の並びを保つ */
.live-board.first-them>.live-team:not(.them){order:3;flex-direction:row-reverse;justify-content:flex-start}
.live-board.first-them>.live-team.them{order:1;flex-direction:row-reverse;justify-content:flex-end}
.live-board.first-them>.live-mid{order:2}
.live-board.first-them>.live-stale{order:4}
.live-team strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
.live-team b{font-size:34px;line-height:1;font-variant-numeric:tabular-nums}
.live-mid{display:flex;flex-direction:column;align-items:center;gap:6px}
.live-mid small{color:#bcd6ff;font-size:12px;white-space:nowrap}
.live-bases{position:relative;width:30px;height:26px}
.live-bases i{position:absolute;width:9px;height:9px;transform:rotate(45deg);background:rgba(255,255,255,.18)}
.live-bases i:nth-child(1){right:2px;top:10px}.live-bases i:nth-child(2){left:10.5px;top:2px}.live-bases i:nth-child(3){left:2px;top:10px}
.live-bases i.on{background:#8fc1ff;box-shadow:0 0 6px #8fc1ff}
.live-stale{grid-column:1/-1;margin:0;color:#c9d5f5;font-size:12px;text-align:center}
.live-video{max-height:0;overflow:hidden;border-radius:12px;background:#000}
.live-video.on{max-height:none;margin:0 0 14px}
.live-video iframe{display:block;width:100%;aspect-ratio:16/9;border:0}
.live-feed{margin:0 0 14px;padding:0 0 14px;border-bottom:1px solid #e3e9f5}
.live-feed-head{display:flex;align-items:center;gap:8px;margin:0 0 10px}
.live-feed-head .live-badge{margin-left:0}
.live-feed-head small{margin-left:auto;color:#5d6b82;font-size:12px}
.live-plays{list-style:none;margin:0;padding:0;max-height:320px;overflow-y:auto;border:1px solid #e3e9f5;border-radius:10px}
.live-plays li{display:flex;gap:10px;padding:9px 12px;border-bottom:1px solid #eef2f9;font-size:14px;line-height:1.5}
.live-plays li:last-child{border-bottom:0}
.live-plays li.auto,.live-plays li.live-plays-empty{color:#5d6b82;font-size:13px}
.live-play-tag{flex:none;padding-top:1px;color:var(--brand);font-size:12px;font-weight:700}
@media(max-width:600px){.live-board{gap:8px}.live-team{flex-direction:column-reverse;align-items:stretch;gap:4px;text-align:center}.live-team.them{flex-direction:column}.live-team strong{font-size:13px}.live-team b{font-size:28px}}
/* The home's LIVE chip on the team cover (bottom right, first in the header tools) */
.live-chip{display:inline-flex;align-items:center;gap:8px;max-width:100%;min-width:0;padding:4px 5px 4px 8px;border-radius:999px;background:rgba(9,20,48,.8);color:#fff;font-size:13px;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.live-chip .live-badge{margin-left:0}
.live-chip-inning:empty{display:none}
.live-chip-end{flex:none;white-space:nowrap;padding:1px 8px;border-radius:4px;background:rgba(255,255,255,.18);font-size:11px;font-weight:800}
.live-chip-score{display:inline-flex;align-items:center;gap:6px;min-width:0;font-weight:700}
.live-chip-score.first-them{flex-direction:row-reverse}
.live-chip-name{max-width:9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.live-chip-score b{font-size:16px;font-variant-numeric:tabular-nums}
.live-chip-inning{color:#bcd6ff;font-size:12px;white-space:nowrap}
.live-chip-stale{color:#c9d5f5;font-size:11px;white-space:nowrap}
.live-chip-btn{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.14);color:#fff}
.live-chip-btn:hover{background:rgba(255,255,255,.26)}
.live-chip-btn .ui-icon{width:16px;height:16px}
@media(max-width:700px){.live-chip{gap:6px;border-radius:14px;font-size:12px}.live-chip-score{flex:1 1 auto}.live-chip-score b,.live-chip-score>[aria-hidden]{flex:none}.live-chip-name{flex:0 1 auto;max-width:none;line-height:1.25;white-space:normal;overflow-wrap:anywhere}.live-chip-score b{font-size:15px}.live-chip-btn{width:28px;height:28px}}
/* 文字中継: the score board, the line score and the plays as one block (no round corners, no gaps); team logos left of the names */
.live-logo{flex:none;width:22px;height:22px;border-radius:5px;background:#fff;object-fit:contain;vertical-align:-6px;margin-right:6px}
.live-team-name{display:inline-flex;align-items:center;min-width:0}
.live-team-name .live-logo{margin-right:8px}
.live-feed .live-board,.live-feed .rec-linescore,.live-feed .live-plays{border-radius:0}
.live-feed .rec-score{margin:0}
.live-feed .live-board{border-bottom:1px solid #2a4482}
.live-feed .live-plays{border-top:0}
@media(max-width:600px){.live-team-name{flex-direction:column;align-items:center;gap:4px}.live-team-name strong{max-width:100%}.live-team-name .live-logo{margin-right:0}}
/* The team page's live chip (P5-b): a slim bar above the team page, not on the cover */
.live-chip[hidden],.live-chip [hidden]{display:none}
.public-live{display:flex;width:fit-content;max-width:100%;margin:0 0 14px;padding:6px 8px 6px 12px;background:#16264d}
/* リアルタイム記録の紹介 /realtime (P5-b) */
.rt-hero .about-hero-art{display:flex;justify-content:center}
.rt-hero .rt-shot{width:auto;max-width:100%;max-height:440px;border-radius:14px;border:3px solid rgba(255,255,255,.35);box-shadow:0 18px 40px rgba(6,20,70,.45)}
.rt-shots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}
.rt-shots figure{margin:0;padding:14px;border:1px solid #d8e2f6;border-radius:16px;background:#fff}
.rt-shots .rt-shot{display:block;width:100%;height:auto;border-radius:10px;border:1px solid #d8e2f6}
.rt-shots figcaption{margin-top:10px;font-size:14px;line-height:1.7;color:#3d4c63}.rt-shots figcaption strong{display:block;color:#193968;font-size:15px}
@media(max-width:700px){.rt-shots{grid-template-columns:1fr;gap:12px}.rt-hero .rt-shot{max-height:320px}}
.rt-features{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:700px){.rt-features{grid-template-columns:1fr}}

/* 경기별 독립 기록의 비교: 공유 설정은 스코어보드를 변경하지 않는다. */
.comparison-teams{display:flex;justify-content:space-between;gap:16px;margin:14px 0}
.comparison-teams a{display:flex;align-items:center;gap:8px;min-width:0;max-width:48%;font-weight:700}
.comparison-teams a:last-child{text-align:right;justify-content:flex-end}
.comparison-teams img{width:28px;height:28px;object-fit:contain;flex-shrink:0}
.comparison-teams span{overflow-wrap:anywhere}
.game-comparison{display:grid;gap:10px;margin:16px 0}
.comparison-row{display:grid;grid-template-columns:minmax(0,1fr) 28px 70px 28px minmax(0,1fr);align-items:center;gap:6px;text-align:center;font-size:14px}
.comparison-meter{width:100%;height:12px;border:0;appearance:none;background:#edf1fa;border-radius:3px}
.comparison-meter.us{transform:scaleX(-1)}
.comparison-meter::-webkit-meter-bar{background:#edf1fa;border:0;border-radius:3px}
.comparison-meter::-webkit-meter-optimum-value{background:var(--brand);border-radius:3px}
.comparison-meter.them::-webkit-meter-optimum-value{background:#819ddd}
.comparison-meter::-moz-meter-bar{background:var(--brand)}
.comparison-meter.them::-moz-meter-bar{background:#819ddd}
.game-opponent-results{margin-top:24px}
.roster-edit-form .ground-choice{flex-basis:100%;min-width:0}
.plate-name{font-weight:700}
.spray{display:flex;flex-direction:column;align-items:center;gap:8px;margin:12px 0}
.spray-field{width:100%;max-width:360px;aspect-ratio:1/1;border-radius:14px;background:#eef3fc}
.spray-field .grass{fill:#dce6f8;stroke:#c3d1ee;stroke-width:.6}.spray-field .infield{fill:#c9d8f3;stroke:#fff;stroke-width:.8}
.spray-dot{fill:#8a96ab;stroke:#fff;stroke-width:.5}.spray-dot.hit{fill:var(--brand)}.spray-dot.hr{fill:#1f3a82;stroke:#fff;stroke-width:.8}
.spray-dot.error{fill:#fff;stroke:var(--brand);stroke-width:.9}
.spray-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px;margin:0;padding:0;list-style:none;font-size:13px;color:#4a5a78}
.spray-legend li{display:flex;align-items:center;gap:5px}
.spray-legend i.spray-dot{display:inline-block;width:12px;height:12px;border-radius:50%;box-sizing:border-box;border:1px solid transparent}
.spray-legend i.spray-dot.hit{background:var(--brand)}.spray-legend i.spray-dot.hr{background:#1f3a82}.spray-legend i.spray-dot.out{background:#8a96ab}.spray-legend i.spray-dot.error{background:#fff;border-color:var(--brand)}
.head-to-head{display:flex;flex-direction:column;gap:6px;margin:12px 0 0;padding:0;list-style:none}
.head-to-head a{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:8px 10px;border:1px solid #dbe4f5;border-radius:10px;background:#fff}
.h2h-date{font-size:13px;color:#4a5a78}.h2h-league{font-size:13px;color:#4a5a78}
.scoreboard-date .scoreboard-venue{max-width:240px;text-align:right;overflow-wrap:anywhere}
.video-embed{position:relative;width:100%;max-width:560px;aspect-ratio:16/9;margin:6px 0 2px;border-radius:10px;overflow:hidden;background:#0b1530}.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.rec-row-body .video-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 20px;width:100%;margin-top:8px}.video-form .m-field{margin:0;flex:1 1 260px;min-width:0}.video-form .ground-choice{flex:0 1 auto;margin:0}.video-form .button{flex:none}.video-form .video-form-help{flex:1 1 100%;margin-top:-4px}
/* 通報: a quiet grey link under the post and on each comment; the report page quotes what is reported. */
.report-line{display:flex;justify-content:flex-end;margin:8px 0 0}
.report-link{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:#7486a6;padding:4px 0}.report-link svg{width:14px;height:14px}
.comment-actions .report-link{color:#7486a6}.comment-actions .report-link:hover,.report-link:hover{color:var(--brand)}
.report-title{font-weight:700;font-size:16px;margin:0 0 4px;overflow-wrap:anywhere}
.report-quote{background:#f6f8fd;border-radius:10px;padding:12px 14px;margin:6px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
/* 利用規約・プライバシーポリシー (/terms, /privacy) */
.legal-doc{max-width:860px;margin:0 auto;line-height:1.85;overflow-wrap:anywhere}
.m-panel.legal-doc p,.m-panel.legal-doc li{color:#24324b}
.legal-doc .legal-date{color:#5d6b82;font-size:14px;margin:0 0 16px}
.legal-doc h3{font-size:17px;color:var(--brand-deep);margin:28px 0 8px;padding-bottom:6px;border-bottom:1px solid #e3e9f2}
.legal-doc ol{margin:0;padding-left:1.6em}.legal-doc li{margin:4px 0}
.legal-doc .legal-operator{margin-top:24px;font-weight:700}
.site-foot .site-foot-rules{display:flex;flex-wrap:wrap;gap:4px 20px;font-size:13px}
.site-foot .site-foot-rules a{color:inherit}
.consent-note{font-size:13px}
/* Tab rows scrolling sideways: the right edge fades while more tabs are hidden there (app.js adds has-more). */
.type-tabs-inline.has-more{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 48px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 48px),transparent)}
/* 審判の評価: the ★ line teams see when choosing an umpire (grey until enough ratings), the rating form and the umpire's own list. */
.umpire-rating{display:inline-flex;align-items:center;gap:4px;color:#5d6b82;font-size:13px;font-weight:700}
.umpire-rating .ui-icon{width:16px;height:16px;flex:none}
.umpire-rating.shown{color:var(--brand)}.umpire-rating.shown .ui-icon{color:var(--star-edge);fill:var(--star)}
.apply-who .umpire-rating{margin-top:2px}
.author-rating{margin:8px 0 0}
.rating-marks{letter-spacing:1px;font-weight:700;margin-right:6px;white-space:nowrap}
/* 評価の星は黄色（ユーザー指示 2026-10-17）。文字の★は黄色に濃い黄の縁、☆は薄い灰色 */
.star-on{color:var(--star);-webkit-text-stroke:.6px var(--star-edge)}.star-off{color:#c9d3e6}
.star-pick{display:inline-flex;align-items:center;gap:2px}.star-pick .star-on{font-weight:400}
.rating-choice .ground-option{gap:2px}
.umpire-rating-saved{display:flex;align-items:center;flex-wrap:wrap;font-weight:700}
.umpire-rating-summary{margin:4px 0 12px}.umpire-rating-summary .umpire-rating{font-size:16px}
.umpire-rating-list{list-style:none;margin:0;padding:0}
.umpire-rating-list li{padding:12px 0;border-top:1px solid #e3e9f4}
.umpire-rating-head{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px}.umpire-rating-head small{color:#5d6b82}
.umpire-rating-list .svc-pre{margin:6px 0 0}
.spray-share{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-width:360px;margin:4px auto 8px;padding:0;list-style:none}
.spray-share li{display:grid;justify-items:center;gap:2px;padding:10px 6px;border-radius:10px;background:#f4f7fd}
.spray-share small{font-size:12px;color:#5d6b82}.spray-share b{font-size:20px;color:var(--brand);line-height:1.2}.spray-share span{font-size:12px;color:#5d6b82}
/* 입력란 바로 옆에 붙는 버튼은 입력란과 같은 둥근 사각형(2026-10-07 사용자 지시). 안내 문구(.row-help)는 그 줄 아래. */
:is(.video-form,.event-cancel-row,.helper-add,.lu-helper,.rx-add-helper,.reg-search-row,.opponent-input,.import-merge-form,.roster-edit-form,.move-site-row,.squad-names) .button{border-radius:8px}
.video-form .ground-choice{flex:1 1 100%}
.helper-add .row-help,.lu-helper .row-help{flex:1 1 100%;margin-top:-4px;color:#5d6b82;font-size:13px}
.lu-helper{flex-wrap:wrap}
.me-charts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;margin-bottom:22px}.me-charts>.m-panel{margin:0}
@media(max-width:960px){.me-charts{grid-template-columns:minmax(0,1fr)}}
.avg-trend{display:block;width:100%;max-width:520px;margin:4px auto 8px;overflow:visible}
.avg-trend-grid line{stroke:#e3e9f5;stroke-width:1}.avg-trend-grid text{fill:#6b7890;font-size:10px}
.avg-trend-line{fill:none;stroke:var(--brand);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.avg-trend-dot{fill:var(--brand);stroke:#fff;stroke-width:1}
.year-chart{margin:0 0 12px}.year-chart-title{margin:8px 0 4px;font-size:15px;color:#172f69}
.year-chart-legend{display:flex;gap:16px;margin:0 0 2px;padding:0;list-style:none;font-size:12px;color:#47556c}.year-chart-legend li{display:flex;align-items:center;gap:6px}
.year-chart-legend li::before{content:"";width:22px;height:0;border-top:2px solid var(--brand)}.year-chart-legend li.ops::before{border-top:2px dashed #17335c}
.pit-chart-grid{display:grid;grid-template-columns:1fr;gap:14px;margin:4px 0 6px}
@media(min-width:700px){.pit-chart-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}}
.pit-panel{margin:0;padding:8px 10px 6px;border:1px solid #e3e9f5;border-radius:10px;background:#fff}.pit-panel figcaption{margin:0 0 2px;font-size:13px;font-weight:700;color:#172f69}
.pit-panel .year-chart-svg{margin:0 auto}.pit-legend{margin:0 0 2px}.pit-legend li::before{width:12px;height:10px;border:0;border-radius:2px;background:#8fa8e6}.pit-legend li.b::before{background:#17335c}
.pit-bar{fill:var(--brand)}.pit-bar.a{fill:#8fa8e6}.pit-bar.b{fill:#17335c}
.pit-dot{fill:var(--brand);stroke:#fff;stroke-width:1}.pit-dot.open{fill:#fff;stroke:var(--brand);stroke-width:2}.pit-dot.cap{fill:#fff;stroke:#17335c;stroke-width:2;stroke-dasharray:2 1.5}
.pit-mark{fill:#17335c;font-size:10px;font-weight:700}.pit-note{margin:2px 0 0;font-size:11px;line-height:1.5;color:#5d6b82}
.year-chart-svg{display:block;width:100%;max-width:520px;margin:0 auto 4px;overflow:visible}
.year-chart-grid line{stroke:#e3e9f5;stroke-width:1}.year-chart-grid text{fill:#6b7890;font-size:10px}
.year-chart-avg{fill:none;stroke:var(--brand);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.year-chart-avg-dot{fill:var(--brand);stroke:#fff;stroke-width:1}
.year-chart-ops{fill:none;stroke:#17335c;stroke-width:2;stroke-dasharray:5 3;stroke-linejoin:round}.year-chart-ops-dot{fill:#17335c;stroke:#fff;stroke-width:1}
.avg-trend-now{display:flex;align-items:baseline;gap:8px;margin:0 0 4px}.avg-trend-now small{color:#5d6b82;font-size:13px}.avg-trend-now b{font-size:24px;color:#1d2b4a}.avg-trend-now span{color:#5d6b82;font-size:13px}
.recent-tabs{margin:0 0 12px}
.recent-table .recent-game{display:grid;gap:0;text-align:left;color:#1d2b4a;font-weight:700;white-space:nowrap}.recent-table .recent-game small{color:#6b7890;font-size:12px;font-weight:600}
.recent-table .recent-result{white-space:nowrap}.recent-table .recent-pinch{color:var(--brand);font-weight:800}
.recent-table.sticky-first thead th.name,.recent-table.sticky-first tbody th.name{left:0}
.recent-table .recent-result .game-badge{display:inline-grid;width:28px;height:28px;margin-left:6px;font-size:13px;vertical-align:middle}.recent-table thead th.name{text-align:left}
.position-table th,.position-table td{text-align:center;min-width:44px}.position-table td{font-size:18px;font-weight:800;color:#1d2b4a}.position-table td.zero{color:#a3adbf;font-weight:600}
.position-table .total{background:#f3f6fc;color:var(--brand)}
.filter-submit{display:inline-flex;align-items:center;justify-content:center;gap:6px}.filter-submit .ui-icon{width:16px;height:16px;flex:none}
/* 募集の掲載フォーム: 항목 이름 왼쪽 아이콘(2026-10-07). */
.post-form .m-field>span>.ui-icon,.post-form .m-field>legend>.ui-icon{width:17px;height:17px;margin-right:6px;vertical-align:-3px;color:var(--brand);flex:none}
.post-form .svc-grid.two{gap:0 20px}
/* 패널 제목 오른쪽에 붙는 탭(自分の成績・最近5試合の成績). */
.panel-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin-bottom:14px}.panel-head .panel-title{margin:0}.panel-head .recent-tabs{margin:0}
.type-tabs.type-tabs-inline.recent-tabs{padding:0;margin:0}
/* 톱 「はじめての方へ」(비로그인만, 2026-10-07). */
.home-start{margin:28px 0 8px;padding:24px;border:1px solid #d5e2fb;border-radius:18px;background:#eef3ff}
.home-start-head h2{margin:4px 0 6px;font-size:22px;color:#193968}.home-start-head p{margin:0;color:#5d6b82;font-size:14px}.home-start-head .eyebrow{color:var(--brand-vivid)}
.home-start-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}
.home-start-card{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:14px 16px;border:1px solid #d6e0f2;border-radius:12px;background:#fff;color:#1d2b4a}
.home-start-card:hover{border-color:var(--brand-vivid);box-shadow:0 6px 16px #254dea1a}
.home-start-icon{grid-row:1 / 3;display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--brand-tint);color:var(--brand-vivid)}.home-start-icon .ui-icon{width:22px;height:22px}
.home-start-card strong{font-size:16px}.home-start-card small{color:#5d6b82;font-size:13px}
@media(max-width:760px){.home-start{padding:18px;margin:20px 0 4px}.home-start-cards{grid-template-columns:1fr}.home-start-head h2{font-size:19px}}
/* /login: 로그인 버튼 바로 아래 가입 버튼(2026-10-07). */
.login-signup{display:grid;justify-items:stretch;gap:8px;margin-top:20px;padding-top:18px;border-top:1px solid #e3e9f5;text-align:center}
.login-signup>span{font-size:13px;font-weight:700;color:var(--brand-vivid)}.login-signup .button{justify-content:center;gap:8px;min-height:48px;font-size:16px}
.login-signup .button.outline-strong{background:#fff;color:var(--brand-vivid);border:2px solid var(--brand-vivid)}.login-signup .button.outline-strong:hover{background:#f4f7ff}
.login-signup small{color:#5d6b82;font-size:12px}
/* 비로그인 헤더(2026-10-07): 버튼 대신 탭처럼 아이콘+글자를 「|」로 구분. 無料で登録만 파랑·굵게. */
.site-header .header-actions.guest-links{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:12px}
.guest-link{display:inline-flex;align-items:center;gap:6px;padding:6px 0;color:#52638a;font-size:15px;font-weight:700;white-space:nowrap}
.guest-link .ui-icon{width:19px;height:19px;flex:none}.guest-link:hover{color:var(--brand-vivid)}
.guest-link.guest-signup{color:var(--brand-vivid);font-weight:800}
.guest-divider{color:#c9d3e6;font-weight:400}
@media(max-width:600px){.site-header .header-actions.guest-links{gap:8px}.guest-link{font-size:13px;gap:4px}.guest-link .ui-icon{width:16px;height:16px}.guest-post,.guest-post-divider{display:none}}
/* トップの募集：カードで見る／日付ごとに見る（html[data-home-view] は font-size.js が描画前に付ける）。最初に日時・場所・何の募集か、残りは「詳しく」に畳む */
.design-atlas .type-tabs.type-tabs-inline.view-switch{padding:0 0 10px;margin:0}
.results-meta .order-days,.day-list{display:none}
html[data-home-view=days] .results-meta .order-cards,html[data-home-view=days] .post-list:not(.is-empty){display:none}
html[data-home-view=days] .results-meta .order-days{display:inline}html[data-home-view=days] .day-list{display:block}
.post-when{display:flex;align-items:center;gap:7px;margin:0;font-size:20px;font-weight:800;color:#1f2f4f;line-height:1.4}
.post-when .ui-icon{width:18px;height:18px;flex:none;color:var(--brand)}
.post-where{display:flex;align-items:flex-start;gap:6px;margin:4px 0 10px;font-size:15px;font-weight:700;color:#3a4f75;line-height:1.5}
.post-where .ui-icon{width:16px;height:16px;flex:none;margin-top:3px;color:var(--brand)}
.post-tags .ground-tag{margin-left:0}
.soon-tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:800;background:var(--brand);color:#fff}
.design-atlas .post-main h3{margin:8px 0 2px}
.post-more>summary{display:inline-flex;align-items:center;gap:5px;min-height:40px;font-size:14px;font-weight:700;color:var(--brand);cursor:pointer;list-style:none;user-select:none}
.post-more>summary::-webkit-details-marker{display:none}
.post-more>summary .ui-icon{width:16px;height:16px;transform:rotate(90deg);transition:transform .15s}
.post-more[open]>summary .ui-icon{transform:rotate(-90deg)}
.post-more .more-close,.post-more[open] .more-open{display:none}.post-more[open] .more-close{display:inline}
.post-more-body .rating-preview{margin:4px 0}
.design-atlas .post-more-body .post-bottom{margin-top:12px}
.post-more-body .post-open{width:100%;margin-top:12px}.post-more-body .post-open .ui-icon{width:17px;height:17px}
.day-list{background:#fff;border:1px solid #d8e2f6;border-radius:16px;overflow:hidden}
.day-heading{display:flex;align-items:baseline;gap:4px;margin:0;padding:9px 18px;background:#f0f4ff;border-bottom:1px solid #dce5ff}
.day-group+.day-group .day-heading{border-top:1px solid #dce5ff}
.day-heading strong{font:800 21px/1.4 monospace;color:var(--brand-vivid);letter-spacing:-.5px}.day-heading span{font-size:14px;font-weight:700;color:#64789e}
.day-row{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:2px 14px;padding:14px 18px;align-items:start}
.day-row+.day-row{border-top:1px solid #e8edf6}
.day-time{font-size:18px;font-weight:800;color:#1f2f4f;white-space:nowrap;line-height:1.5}
.day-body{min-width:0}.day-body h4{margin:6px 0 2px;font-size:17px;line-height:1.6}.day-body h4 a:hover{color:var(--brand-vivid)}
.day-body .post-where{margin:2px 0 0}
.design-atlas .day-row .post-side{grid-column:3;grid-row:1}
@media(max-width:600px){.post-when{font-size:19px}.day-row{grid-template-columns:minmax(0,1fr) auto;padding:12px 14px}.day-body{grid-column:1 / -1}.design-atlas .day-row .post-side{grid-column:2}.day-heading{padding:8px 14px}.day-body h4{font-size:16px}}
/* Home listing: comment count beside the save heart */
.design-atlas .post-card{grid-template-columns:minmax(0,1fr) auto}
.post-side{grid-column:2;grid-row:1;display:flex;align-items:center;gap:4px;align-self:start}
.comment-count{display:inline-flex;align-items:center;gap:3px;color:#6a7d9f;font-size:13px;white-space:nowrap}.comment-count .ui-icon{width:18px;height:18px}.comment-count b{font-weight:700}
.post-side .save-button{align-self:center;display:inline-flex;align-items:center;justify-content:center;min-height:32px;line-height:1}
.post-side .comment-count{min-height:32px}.post-side .comment-count .ui-icon{width:22px;height:22px;vertical-align:0}
/* Saved (hearted) posts are a red heart in the listings (user request 2026-10-07) */
.save-button[aria-pressed=true],.saved-filter.active{color:#d6334a}
/* In the native app's WebView the side menu is left out (AppView): the content fills the page */
.m-shell:not(:has(>.m-side)){display:block}
/* お知らせ・障害情報 (site_notice): the list, the notice page and the incident band at the top of every page (app.js) */
.notice-list{list-style:none;margin:0;padding:0}
.notice-list li{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;padding:12px 0;border-bottom:1px solid #e1e7f2}
.notice-list time,.legal-date time{color:#5d6b82;font-size:14px}
.notice-kind{display:inline-block;padding:1px 10px;border-radius:999px;background:#e8eefc;color:var(--brand-vivid);font-size:13px;font-weight:700}
.notice-kind.incident{background:var(--brand-vivid);color:#fff}
.notice-body{line-height:1.85;overflow-wrap:anywhere}
.notice-body h3{margin:20px 0 6px}
.site-incident{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--brand-vivid);color:#fff;font-size:14px;line-height:1.5}
.site-incident>span{flex:1;min-width:0;overflow-wrap:anywhere}
.site-incident a{color:#fff;font-weight:700;margin-left:8px;white-space:nowrap}
.site-incident button{flex:none;border:0;background:transparent;color:#fff;font-size:20px;line-height:1;padding:4px 8px;cursor:pointer}

/* Home: invite league and tournament organisers to Machi9 LIVE. */

/* School opens at registration; its introduction lives on machi9 live. */
.school-registration{background:#f4f7fc;color:#17335c;font-size:18px;line-height:1.8}
.school-register-header{display:flex;justify-content:space-between;align-items:center;gap:18px;max-width:1000px;margin:auto;padding:22px 32px}
.school-register-brand{display:block;width:300px;max-width:65%}.school-register-brand img{display:block;width:100%;height:auto}
.school-register-about{display:inline-flex;align-items:center;gap:7px;font-size:16px;color:var(--brand);font-weight:700;white-space:nowrap}
.school-registration .m-shell.no-side{display:block;max-width:800px;margin:auto;padding:0 32px}
.school-registration #mock-content{padding:0;min-width:0}.school-registration .m-page-content{padding:0}
.school-register-intro{padding:24px 0}.school-register-kicker{margin:0 0 10px;color:var(--brand);font-size:16px;font-weight:700}
.school-register-intro h1{font-size:32px;line-height:1.6;letter-spacing:-.02em;margin:0 0 12px}.school-register-intro>p:last-child{margin:0;color:#53657d}
.school-registration .m-panel{padding:30px;border-radius:16px;border:1px solid #e0e8f3;background:#fff}
.school-registration .panel-title{font-size:24px;margin-bottom:18px}.school-register-status{margin:0 0 24px;padding:14px 16px;border-radius:8px;background:#edf3ff;color:var(--brand);font-size:16px}
.school-registration .m-form{display:flex;flex-direction:column;gap:22px}.school-registration .m-field{display:block;margin:0;min-width:0}
.school-registration .m-field>span{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:700;margin-bottom:9px}.school-registration .m-field>span .ui-icon{width:22px;height:22px;color:var(--brand)}
.school-registration .m-field>span .school-required{display:inline-flex;align-items:center;gap:4px;font-size:14px;white-space:nowrap}
.school-registration .m-field>span .school-required .ui-icon{width:14px;height:14px;color:inherit;flex:none}
.school-registration .m-field input{box-sizing:border-box;display:block;width:100%;min-width:0;min-height:52px;border:1px solid #cbd6e6;border-radius:8px;background:#fff;padding:10px 12px;font-family:inherit;font-size:18px;color:#17335c}
.school-registration .m-field small{font-size:15px}.school-register-date-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.school-register-help{margin:0;font-size:16px;color:#64748a}.school-registration .school-register-next{justify-content:center;min-height:54px;border-radius:8px;font-size:18px;background:var(--brand)}
.school-legal-table{width:100%;border-collapse:collapse;font-size:15px}.school-legal-table th,.school-legal-table td{padding:12px 10px;border-bottom:1px solid #dfe5f2;text-align:left;vertical-align:top}.school-legal-table th{width:30%;white-space:nowrap;color:var(--brand)}.school-legal-text h2{font-size:17px;margin:20px 0 6px}.school-legal-text p,.school-legal-text li{line-height:1.8}@media (max-width:600px){.school-legal-table th,.school-legal-table td{display:block;width:auto}.school-legal-table th{border-bottom:0;padding-bottom:0}}
.school-register-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 24px;margin:32px 20px;font-size:15px;color:#64748a}.school-register-footer a{color:var(--brand)}
@media(max-width:600px){.school-register-header{padding:16px;gap:12px}.school-register-brand{width:230px}.school-register-about{font-size:13px;gap:5px}.school-registration .m-shell.no-side{padding:0 16px}.school-register-intro{padding:20px 0}.school-register-intro h1{font-size:27px}.school-registration .m-panel{padding:22px 18px}.school-registration .panel-title{font-size:22px}.school-register-date-row{grid-template-columns:1fr;gap:22px}.school-register-status{font-size:15px}}
/* School registration, sharing and private browser memory. */
.school-registration .school-register-panel{margin:0 0 22px}.school-game-fields>.school-register-panel:last-child{margin-bottom:0}
.school-registration .school-register-panel>.m-field,.school-registration .school-team-section>.m-field{margin:18px 0}
.school-registration .m-field textarea,.school-memory-choices select{box-sizing:border-box;width:100%;min-width:0;border:1px solid #cbd6e6;border-radius:8px;padding:12px;font:inherit;color:#17335c;background:#fff}
.school-registration .m-field textarea{resize:vertical}.school-form-error{padding:14px 18px;background:#fff2f4;color:#b5253b;border-radius:8px;overflow-wrap:anywhere}
.school-team-section+.school-team-section{margin-top:26px;padding-top:24px;border-top:1px solid #e0e8f3}
.school-options>summary{cursor:pointer;display:flex;align-items:center;gap:8px;font-size:17px;font-weight:700;list-style:none;min-height:48px;color:var(--brand)}
.school-options>summary::-webkit-details-marker{display:none}.school-options>summary:after{content:'＋';margin-left:auto;flex:none}.school-options[open]>summary:after{content:'−'}
.school-options-body{display:grid;gap:18px;padding-top:16px}.school-options .ui-icon{flex:none;width:22px;height:22px}
.school-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.school-image-preview{display:block;max-width:100%;height:100px;object-fit:contain;margin:12px 0}.school-image-preview[hidden]{display:none}
.school-check{display:flex;align-items:flex-start;gap:10px}.school-check input{flex:none;width:22px;height:22px;margin-top:5px;accent-color:var(--brand)}
.school-action-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.school-action-row form{margin:0}.school-registration .button{font-size:17px;min-height:48px;border-radius:8px;white-space:normal;justify-content:center}
.school-memory-choices{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.school-memory-choices p{flex-basis:100%;margin:0;font-size:16px}.school-memory-choices[hidden]{display:none}
.school-memory-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0}.school-memory-row>span{overflow-wrap:anywhere;min-width:0}
.school-share{display:grid;gap:18px}.school-share [data-school-qr]{width:180px;max-width:100%;margin:auto}.school-share [data-school-qr] svg{display:block;width:100%;height:auto}
.school-registration .m-panel>form+form{margin-top:16px}.school-registration input[readonly]{background:#f7f9fc}.school-register-intro p{overflow-wrap:anywhere}
@media(max-width:600px){.school-images{grid-template-columns:1fr}.school-registration .school-action-row{display:grid;grid-template-columns:1fr}.school-action-row .button{width:100%}.school-registration .m-field>span{flex-wrap:wrap;font-size:17px}.school-registration .button{padding-left:14px;padding-right:14px}}

/* トロフィーの飾り棚（選手・チームページ、2026-10-26 アプリと同じ夜の球場の飾り棚）: 金・銀・銅は実物の形（public/trophy-cup）、基準に届かない段階は青いクリスタル、
   まだの目標は点線の影。胡桃の棚・ペナント・ダイアログも含め、この飾り棚と殿堂は色の制限なし（AGENTS.md） */
.cup-defs{position:absolute;width:0;height:0;overflow:hidden}
.cup{display:block;width:100%;height:auto;overflow:visible;filter:drop-shadow(0 5px 6px rgba(0,0,0,.55))}
.cup-ring{fill:rgba(0,0,0,.2);stroke:rgba(255,255,255,.55);stroke-width:1}
.cup-emblem{fill:none;stroke:rgba(255,255,255,.92);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.cup-emblem.faint{stroke:rgba(255,255,255,.28)}
.cup-goal{fill:rgba(255,255,255,.05);stroke:rgba(255,255,255,.4);stroke-width:1;stroke-dasharray:3 3}
.cup-facet{fill:none;stroke:rgba(255,255,255,.55);stroke-width:.8}
.cup-tint.tint-1{fill:#9db5ec;opacity:.25}.cup-tint.tint-2{fill:#7898e6;opacity:.35}.cup-tint.tint-3{fill:#557edb;opacity:.45}.cup-tint.tint-4{fill:#335ac0;opacity:.55}.cup-tint.tint-5{fill:#1f3f7a;opacity:.65}
.cup-shine{display:none}
@media(prefers-reduced-motion:no-preference){.cup-shine{display:block;animation:cup-shine 4.2s ease-in-out infinite}@keyframes cup-shine{0%{transform:translateX(0)}35%,100%{transform:translateX(150px)}}}
.trophy-room{margin:4px 0 0;padding:16px;border-radius:12px;color:#fff;background:radial-gradient(120% 40% at 50% -6%,rgba(255,244,194,.18),transparent 60%),linear-gradient(180deg,#060f26,#0e2352 45%,#102c5e)}
.trophy-total{margin:0 0 4px;font-size:15px;color:rgba(255,255,255,.8)}.trophy-total strong{font-size:28px;color:#ffd45c;margin-right:2px;font-variant-numeric:tabular-nums}.trophy-total small{display:block;color:rgba(255,255,255,.64);font-size:12px}
.trophy-room .trophy-head{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:22px 0 10px;font-size:16px;color:#fff}.trophy-head .ui-icon{width:20px;height:20px;color:#ffd45c;flex:none}
.trophy-sub{font-weight:400;color:rgba(255,255,255,.64);font-size:12px}
/* 胡桃の棚：段の高さを決めて、棚板は背景で端までつなげる（3つに満たない段も板が切れない） */
.trophy-shelf{--row:200px;position:relative;list-style:none;margin:0;padding:0 8px;display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));grid-auto-rows:var(--row);overflow:hidden;
 border:5px solid #4a2e1a;border-top-width:8px;border-radius:10px;box-shadow:0 12px 26px rgba(0,0,0,.5);
 background:repeating-linear-gradient(180deg,transparent 0 114px,#7a4f2c 114px,#4a2e1a 119px,#22140a 126px,transparent 126px var(--row)),linear-gradient(180deg,#0a1430,#071026)}
.trophy-shelf::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 28%,rgba(255,255,255,.07) 30%,transparent 38% 62%,rgba(255,255,255,.04) 64%,transparent 70%)}
.trophy-card{position:relative;min-width:0}
.trophy-card::before{content:"";position:absolute;inset:0 0 auto;height:114px;pointer-events:none;background:radial-gradient(70% 80% at 50% 0,rgba(255,236,170,.2),transparent 70%)}
.trophy-pick{position:relative;display:flex;flex-direction:column;align-items:center;width:100%;height:100%;padding:0 4px 8px;border:0;border-radius:8px;background:none;color:inherit;font:inherit;text-align:center;cursor:pointer}
.trophy-pick:focus-visible{outline:2px solid #ffd45c;outline-offset:-2px}
.trophy-stand{position:relative;display:flex;align-items:flex-end;justify-content:center;width:100%;height:114px;padding-top:8px}
.trophy-stand .cup{width:min(84px,100%);transition:transform .2s}.trophy-pick:hover .trophy-stand .cup{transform:translateY(-3px)}
.trophy-pick strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;max-width:100%;margin-top:18px;padding:3px 6px;border-radius:3px;font-size:12px;font-weight:800;line-height:1.3;color:#3b2600;overflow-wrap:anywhere;
 background:linear-gradient(160deg,#f7e2a4,#d3a548 45%,#8a6220);box-shadow:0 1px 2px rgba(0,0,0,.5)}
.trophy-card.locked .trophy-pick strong{background:rgba(255,255,255,.08);color:rgba(255,255,255,.72);box-shadow:inset 0 0 0 1px rgba(255,255,255,.22)}
.trophy-kind{margin-top:4px;font-size:11px;color:rgba(255,255,255,.64)}
progress.trophy-bar{appearance:none;-webkit-appearance:none;display:block;width:70%;height:3px;margin:5px auto 0;border:0;border-radius:2px;background:rgba(255,255,255,.14);overflow:hidden}
progress.trophy-bar::-webkit-progress-bar{background:rgba(255,255,255,.14)}progress.trophy-bar::-webkit-progress-value{background:linear-gradient(90deg,#e8a317,#ffd45c)}progress.trophy-bar::-moz-progress-bar{background:linear-gradient(90deg,#e8a317,#ffd45c)}
.trophy-new{position:absolute;top:6px;right:4px;padding:1px 5px;border-radius:4px;font-size:10px;font-weight:800;color:#fff;background:#ff5a4e;transform:rotate(8deg);box-shadow:0 2px 6px rgba(0,0,0,.4)}
.trophy-times{position:absolute;top:6px;left:4px;padding:0 6px;border-radius:8px;font-size:11px;font-weight:800;color:#3b2600;background:#ffd45c}
.trophy-locked{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:10px 0 0}.trophy-locked small{width:100%;color:rgba(255,255,255,.64);font-size:12px}
.trophy-locked span{padding:3px 10px;border-radius:8px;border:1px dashed rgba(255,255,255,.32);color:rgba(255,255,255,.72);font-size:12px}
/* シーズンのタイトル：真鍮の竿に下げたペナント（暫定は縞に「集計中」） */
.trophy-year{margin:12px 0 0;font-size:13px;color:rgba(255,255,255,.64)}
.trophy-pennants{position:relative;list-style:none;margin:6px 0 14px;padding:14px 0 0 6px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.trophy-pennants::before{content:"";position:absolute;top:0;left:0;right:0;height:6px;border-radius:3px;background:linear-gradient(180deg,#f7e2a4,#8a6220)}
.pennant{display:flex;align-items:center;gap:8px;max-width:100%;padding:10px 42px 10px 14px;color:#fff;background:linear-gradient(90deg,#17335c,#284f8c);clip-path:polygon(0 0,calc(100% - 28px) 0,100% 50%,calc(100% - 28px) 100%,0 100%)}
.pennant.felt-1{background:linear-gradient(90deg,#8f1d2c,#c43246)}.pennant.felt-2{background:linear-gradient(90deg,#14532d,#2b7a46)}
.pennant.counting{background:repeating-linear-gradient(135deg,rgba(255,255,255,.14) 0 8px,rgba(255,255,255,.07) 8px 16px)}
.pennant .ui-icon{flex:none;width:18px;height:18px;color:#ffd45c}.pennant span{font-size:15px;font-weight:700;overflow-wrap:anywhere}.pennant b{font-size:13px;font-weight:400;opacity:.9;white-space:nowrap}
.pennant em{font-style:normal;font-size:11px;font-weight:800;color:#3b2600;background:#ffd45c;border-radius:4px;padding:1px 6px;white-space:nowrap}
/* 押すと棚から取り出したように：大きなトロフィーと達成の記録 */
.trophy-dialog{width:min(440px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:16px 20px 20px;border:1px solid rgba(255,255,255,.2);border-radius:16px;color:#fff;text-align:center;overflow:auto;
 background:radial-gradient(90% 45% at 50% 0,rgba(255,244,194,.22),transparent 70%),linear-gradient(180deg,#0b1838,#060f26)}
.trophy-dialog::backdrop{background:rgba(3,8,22,.7)}
.trophy-dialog>.cup{width:130px;margin:0 auto}
.trophy-dialog-kind{margin:8px 0 0;font-size:13px;color:rgba(255,255,255,.64)}
.trophy-dialog h4{margin:2px 0 8px;font-size:22px;line-height:1.3;color:#fff;text-wrap:balance}
.trophy-dialog-next{margin:0;font-size:14px;color:rgba(255,255,255,.78)}
.trophy-dialog progress.trophy-bar{width:60%;height:5px;margin-top:8px}
.trophy-medals{list-style:none;margin:16px 0 0;padding:0;text-align:left;border-top:1px solid rgba(255,255,255,.2)}
.trophy-medals li{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.2)}
.trophy-medals li span{font-size:15px}.trophy-medals li small{font-size:13px;color:#f7e2a4}.trophy-medals .trophy-new{position:static;transform:none}
.trophy-medals .inline-link{margin-left:auto;color:#ffd45c}
.trophy-dialog form{margin:16px 0 0}.trophy-dialog .trophy-dialog-close{width:100%;color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.3)}
@media(max-width:600px){.trophy-room{padding:12px}.trophy-shelf{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));padding:0 4px}.trophy-stand .cup{width:min(76px,100%)}}
/* 殿堂（選手ページの本文の一番上） */
.trophy-hall{position:relative;margin:0 0 18px;padding:18px 18px 14px;border-radius:16px;color:#fff;border:1px solid #c9a443;
 background:radial-gradient(circle at 12% 0%,rgba(255,226,140,.28),transparent 42%),radial-gradient(circle at 92% 100%,rgba(255,226,140,.16),transparent 40%),linear-gradient(160deg,#10244a,#1b3a73);box-shadow:0 6px 20px rgba(16,36,74,.28),inset 0 0 0 1px rgba(255,236,170,.25)}
.hall-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px}.hall-head .hall-title{margin:0;min-width:0}
.trophy-hall .hp-heart.hall-heart{margin:0;flex:none}.hall-heart .hp-heart-btn{min-height:44px;padding:0 16px;gap:8px;font-size:18px;border-color:#f3c6cd}.hall-heart .hp-heart-icon .ui-icon{width:24px;height:24px}
.trophy-hall .hall-title{display:flex;align-items:center;color:#ffe9a3;gap:16px}@media(max-width:700px){.trophy-hall .hall-title{gap:12px}}.trophy-hall .hall-title .panel-title-icon{color:#ffe9a3;background:rgba(255,233,163,.16);box-shadow:inset 0 0 0 1px rgba(255,233,163,.45)}
.hall-hint{margin:0;color:#c9d5ea;font-size:14px}
.hall-counts{list-style:none;display:flex;flex-wrap:wrap;gap:14px 22px;margin:0 0 14px;padding:0}
.hall-counts li{display:flex;align-items:flex-end;gap:6px}.hall-counts b{font-size:30px;line-height:1;color:#ffd45c;font-variant-numeric:tabular-nums}.hall-counts small{font-size:13px;color:#c9d5ea}
.hall-cup{flex:none;width:30px}.hall-cup .cup{filter:drop-shadow(0 2px 3px rgba(0,0,0,.5))}
/* 代表はスポットライトの展示台（上からの光・黒い台に真鍮色の名前） */
.hall-stage{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:0 6px;margin:0 0 10px;padding:28px 8px 0;overflow:hidden;border-radius:12px;border:1px solid rgba(255,255,255,.14);
 background:linear-gradient(180deg,#050a18,#0b1736 70%,#120c08)}
.hall-stage>li{display:flex;min-width:0}
.hall-card{position:relative;display:flex;flex:1;flex-direction:column;align-items:center;justify-content:flex-end;min-width:0;color:#fff;text-align:center}
.hall-card::before{content:"";position:absolute;bottom:30px;left:50%;width:130%;height:240px;transform:translateX(-50%);pointer-events:none;
 background:linear-gradient(180deg,rgba(255,244,194,0),rgba(255,244,194,.12) 60%,rgba(255,244,194,.26));clip-path:polygon(40% 0,60% 0,100% 100%,0 100%)}
.hall-card .cup{position:relative;width:74px;transition:transform .2s}.hall-card.rank-gold .cup{width:90px}.hall-card:hover .cup{transform:translateY(-3px)}
.hall-text{position:relative;align-self:stretch;display:flex;flex-direction:column;gap:1px;margin:0 4px;padding:6px 4px 8px;border-radius:4px 4px 0 0;background:linear-gradient(180deg,#2a2220,#0f0b09);box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}
.hall-text small{font-size:11px;color:#c9d5ea}.hall-text strong{font-size:13px;line-height:1.3;color:#f7e2a4;overflow-wrap:anywhere}.hall-text em{font-style:normal;font-size:11px;color:#ffe9a3}
.hall-all{display:inline-block;margin-top:2px;color:#ffe9a3;font-size:13px;font-weight:700}
@media(max-width:600px){.trophy-hall{padding:16px 14px 12px}.hall-stage{grid-template-columns:repeat(auto-fill,minmax(94px,1fr));gap:0 4px;padding:24px 4px 0}.hall-card .cup{width:60px}.hall-card.rank-gold .cup{width:72px}.hall-counts b{font-size:26px}}
.public-game-link{margin-left:10px;font-size:13px;white-space:nowrap}
/* 公開の試合ページ */
.game-head{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.game-date{font-size:13px;color:#5b6f93;font-weight:700}.game-vs{font-size:20px;color:#172f69}.game-head small{color:#68778c}
.game-result{margin:6px 0 12px}.game-result .event-result b{font-size:28px}
.line-score th:first-child{min-width:110px;max-width:180px;overflow:hidden;text-overflow:ellipsis}.line-score td{text-align:center}
.game-order{display:inline-block;min-width:20px;margin-right:6px;color:#5b6f93;font-weight:700}
@media(max-width:700px){.public-game-link{display:block;margin:4px 0 0}}
.public-figures table.line-score{width:auto;min-width:60%}.line-score th,.line-score td{min-width:34px}.game-vs a,.game-vs{display:inline}.game-head{gap:4px}

/* 友だち紹介（スタンプカード） */
.referral-code{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:8px 0 6px}.referral-code strong{font-size:28px;letter-spacing:.08em;color:#172f69;padding:6px 16px;border-radius:12px;background:var(--brand-tint2)}
.referral-count{margin:4px 0 12px;font-size:15px;color:#3a5078}.referral-count strong{font-size:36px;color:#172f69;margin-right:4px}.referral-count small{color:#68778c}
.stamp-card{list-style:none;margin:0 0 12px;padding:16px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px 8px;border-radius:16px;background:#f3f6fc;border:1px solid #dbe4f3}
.stamp-card li{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;text-align:center}
.stamp-face{display:flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:50%;border:2px dashed #b9c6e2;background:#fff;color:#9fb0cf;overflow:hidden;font-size:20px;font-weight:700}
.stamp-face img{width:100%;height:100%;object-fit:cover}.stamp-icon .ui-icon{width:32px;height:32px}
.stamp-card li.pressed .stamp-face{border:3px solid var(--brand);box-shadow:0 0 0 3px #dbe4f3;color:var(--brand);transform:rotate(-6deg)}
.stamp-card li.pressed:nth-child(even) .stamp-face{transform:rotate(5deg)}.stamp-card li.pressed:nth-child(3n) .stamp-face{transform:rotate(-2deg)}
.stamp-card li.waiting .stamp-face{border-style:solid;border-color:#9fb4de;opacity:.75}
.stamp-name{font-size:12px;color:#172f69;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stamp-card small{font-size:11px;color:#68778c}
.promo-benefits .referral-use{margin-left:auto}
@media(max-width:700px){.stamp-card{grid-template-columns:repeat(3,minmax(0,1fr));padding:12px}.stamp-face{width:64px;height:64px}.referral-code strong{font-size:22px}}

/* 似ているチーム（チーム作成の名前入力） */
.similar-teams{margin:-4px 0 14px;padding:12px 14px;border-radius:12px;background:var(--brand-tint2);border:1px solid #c9d5ea}
.similar-teams .similar-title,.same-name-box>p{margin:0 0 8px;font-size:13px;color:var(--brand-deep);line-height:1.6}
.similar-teams ul,.same-name-box ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.similar-teams li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:#fff}
.similar-teams li img{flex:none;width:36px;height:36px;border-radius:50%;object-fit:cover;background:#f3f6fc}
.similar-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:14px}.similar-text a{font-weight:700;overflow-wrap:anywhere}.similar-text small{color:#68778c;font-size:12px}
.similar-same{align-self:flex-start;font-size:11px;padding:1px 8px;border-radius:999px;background:var(--brand);color:#fff}
.similar-teams li form{flex:none;margin:0}
.same-name-box{margin:0 0 14px;padding:12px 14px;border-radius:12px;background:#f3f6fc;border:1px solid #c9d5ea}.same-name-box li{font-size:14px}.same-name-box li small{margin-left:6px;color:#68778c}
.reg-check{display:flex;gap:8px;align-items:center;margin-top:10px;font-weight:700;color:#172f69}.reg-check input{width:18px;height:18px}
@media(max-width:700px){.similar-teams li{flex-wrap:wrap}.similar-teams li form{width:100%}.similar-teams li .button{width:100%}}

/* 凡例の補足（複数選択可など）は小さく細く、アイコン付きの凡例は1行に並べる。 */
.ground-choice legend{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px}.ground-choice legend svg{width:16px;height:16px;flex:none}.ground-choice legend small{font-size:13px;font-weight:400;color:#8497b2}

/* 登録していない対戦相手のロゴ: 予定の詳細で設定、公開チームページの試合一覧に小さく表示。 */
.opponent-logo-field{margin:12px 0 4px}.opponent-logo-field .team-image-row{align-items:flex-start}
.opp-summary{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;cursor:pointer;list-style:none;padding:8px 12px;border:1px solid #dbe4f5;border-radius:10px;background:#f5f8ff;min-height:44px}.opp-summary::-webkit-details-marker{display:none}
.opp-summary .opponent-logo-title{margin:0}.opp-thumbs{display:inline-flex;align-items:center;gap:8px}
.opp-thumb{display:grid;place-items:center;height:40px;overflow:hidden;border:1px solid #c9d6f3;background:#fff;font-size:11px;color:#7486a6}.opp-thumb img{width:100%;height:100%;object-fit:cover}
.opp-thumb.logo{width:40px;border-radius:50%}.opp-thumb.cover{width:71px;border-radius:6px}.opp-thumb.is-empty{opacity:.55;border-style:dashed}
.opp-open{margin-left:auto;font-weight:700;color:var(--brand)}.opponent-logo-field[open] .opp-open{display:none}
.opp-tabs{margin:12px 0 8px}.opp-panel[hidden]{display:none}
.opponent-logo-field .team-image-preview.logo{width:120px;height:120px}.opponent-logo-field .team-image-preview.cover{width:214px;height:120px}
@media(max-width:700px){.opponent-logo-field .team-image-preview.cover{width:100%;max-width:320px}}.opponent-logo-title{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-weight:700;color:#264676}.opponent-logo-title svg{width:16px;height:16px}.public-game-logo{width:22px;height:22px;object-fit:contain;vertical-align:middle;margin-right:6px;border-radius:4px}
/* 横長のロゴも切らずに全体を見せる（相手チームのロゴは利用者が用意した画像）。 */
img[src*="/opponent-logo/"]{object-fit:contain;background:#fff}
/* 収支(チームの会計): 月の集計・一覧・年間の棒グラフ・項目。収入は青、支出は落ち着いた色。赤は使わない。 */
.ledger-form:has(input[name=kind][value=IN]:checked) .cat-OUT,.ledger-form:has(input[name=kind][value=OUT]:checked) .cat-IN,.ledger-form:not(:has(input[name=kind]:checked)) .ledger-cats{display:none}
.ledger-form-actions{justify-content:space-between;flex-wrap:wrap}.ledger-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin-bottom:12px}.ledger-head .panel-title{margin:0}.ledger-nav{display:flex;flex-wrap:wrap;gap:8px}
.ledger-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 12px}.ledger-summary>div{background:#f3f6fd;border:1px solid #dbe5f6;border-radius:10px;padding:12px 14px;min-width:0}.ledger-summary dt{font-size:13px;color:#5c6f93;margin-bottom:4px}.ledger-summary dd{margin:0;font-size:20px;font-weight:800;color:#26385f;overflow-wrap:anywhere}.ledger-summary dd.in,.ledger-amount.in,.ledger-key.in,.ledger-figures .in{color:var(--brand-vivid)}.ledger-summary .total{background:var(--brand-tint);border-color:#c5d4f6}.ledger-summary small{display:block;margin-top:4px;font-size:12px;color:#5c6f93}
.ledger-list,.ledger-months,.ledger-history,.ledger-category-list,.ledger-cat-totals ul{list-style:none;margin:0;padding:0}
.ledger-list>li{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:4px 12px;align-items:start;padding:12px 0;border-top:1px solid #e3eaf7}.ledger-list>li:first-child{border-top:0}.ledger-date{font-weight:700;color:#5c6f93}.ledger-body{display:flex;flex-direction:column;gap:2px;min-width:0}.ledger-body small{color:#5c6f93;overflow-wrap:anywhere}.ledger-amount{font-weight:800;font-size:17px;white-space:nowrap;color:#3b4a6b}.ledger-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.ledger-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:2px 10px}.ledger-actions form{margin:0}.ledger-actions .button.secondary.member-promote{min-height:0;height:auto;padding:2px 4px;border:0;background:none;box-shadow:none;border-radius:6px;font-size:14px;gap:4px}.ledger-actions .button.secondary.member-promote svg{width:15px;height:15px}.ledger-actions .button.secondary.member-promote.danger-outline{color:#c62828}.ledger-list>li.voided .ledger-body strong,.ledger-list>li.voided .ledger-amount{text-decoration:line-through;color:#8a97b2}
.ledger-months>li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:4px 12px;padding:10px 0;border-top:1px solid #e3eaf7}.ledger-months>li:first-child{border-top:0}.ledger-month-name{font-weight:700;color:#26385f}.ledger-bars{display:flex;flex-direction:column;gap:3px;min-width:0}.ledger-bars .bar{display:block;width:100%;height:9px;border:0;appearance:none;background:#edf1fa;border-radius:5px}.ledger-bars .bar::-webkit-meter-bar{background:#edf1fa;border:0;border-radius:5px;height:9px}.ledger-bars .bar::-webkit-meter-optimum-value{background:#8aa0c8;border-radius:5px}.ledger-bars .bar.in::-webkit-meter-optimum-value{background:var(--brand-vivid)}.ledger-bars .bar::-moz-meter-bar{background:#8aa0c8;border-radius:5px}.ledger-bars .bar.in::-moz-meter-bar{background:var(--brand-vivid)}.ledger-figures{grid-column:2;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:14px;color:#3b4a6b}.ledger-key{display:inline-block;margin-right:12px;font-weight:700;color:#3b4a6b}.ledger-key:before{content:"";display:inline-block;width:12px;height:9px;border-radius:4px;background:#8aa0c8;margin-right:6px}.ledger-key.in:before{background:var(--brand-vivid)}
.ledger-cat-totals{display:grid;grid-template-columns:1fr 1fr;gap:16px}.ledger-cat-totals li{display:grid;grid-template-columns:minmax(0,1fr) auto 44px;gap:8px;padding:8px 0;border-top:1px solid #e3eaf7}.ledger-cat-totals small{text-align:right;color:#5c6f93}
.ledger-history li{display:flex;flex-wrap:wrap;gap:4px 12px;padding:8px 0;border-top:1px solid #e3eaf7}.ledger-history small{flex-basis:100%;color:#5c6f93;overflow-wrap:anywhere}
.ledger-category-list li{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid #e3eaf7}.ledger-category-list small{color:#5c6f93;border:1px solid #d6e0f2;border-radius:6px;padding:1px 8px}.ledger-category-list form{margin:0 0 0 auto}.ledger-category-list li.voided span{color:#8a97b2;text-decoration:line-through}.ledger-category-add{margin-top:16px}
@media(max-width:700px){.ledger-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.ledger-cat-totals{grid-template-columns:1fr}}
@media print{.m-side,.m-mobile-nav,.m-page-heading p,.type-tabs,.ledger-nav,.ledger-actions,#new,.m-actions,.site-foot-legal,.team-header,header.site-header,.page-top{display:none!important}.m-shell{display:block}.m-panel{box-shadow:none;border:1px solid #bbb;break-inside:avoid}}
/* 徴収(会費・参加費の集金チェック): 一覧・支払いのチェック・グループチャット用の文章。収支の画面と同じ見た目に揃える。 */
.collection-list{list-style:none;margin:0;padding:0}.collection-list>li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 16px;padding:12px 0;border-top:1px solid #e3eaf7}.collection-list>li:first-child{border-top:0}.collection-main{display:flex;flex-direction:column;gap:2px;min-width:0}.collection-main small,.collection-progress small{color:#5c6f93}.collection-progress{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.collection-list>li.voided .collection-main a{color:#8a97b2}
.collect-mark{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--brand-tint);color:var(--brand-vivid)}.collect-mark svg{width:16px;height:16px}.collection-targets>li.paid .ledger-body strong{color:var(--brand-vivid)}.collect-amount{grid-column:1/-1;justify-self:end}.collect-add{margin-top:16px;display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-end}.collect-add .m-field{flex:1 1 220px;margin:0}
.collect-text{white-space:pre-wrap;overflow-wrap:anywhere;background:#f3f6fd;border:1px solid #dbe5f6;border-radius:10px;padding:12px 14px;font:inherit;color:#26385f}
.ledger-from-collection{margin:0 0 12px}
/* 試合の精算: 費用の行・参加者のチップ・1人の金額の見積り。 */
.settle-costs{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.settle-cost{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.settle-cost[hidden]{display:none}.settle-when{color:#5c6f93}.settle-people{margin-bottom:8px}.settle-preview{margin:16px 0}.event-settle{margin-top:8px}
.collect-remind-plan{list-style:none;margin:0 0 8px;padding:0}.collect-remind-plan li{display:flex;flex-direction:column;gap:2px;padding:6px 0}.collect-remind-plan small{color:#5c6f93;overflow-wrap:anywhere}
/* 収支: 確定した年のお知らせ・公開の範囲・自分のお支払い。 */
.ledger-locked{margin:0 0 12px}.ledger-levels{flex-direction:column;align-items:stretch}.ledger-levels .ground-option{justify-content:flex-start}.ledger-history li a{margin-left:auto}.payment-unpaid{color:var(--brand-vivid);font-weight:700}.payment-list>li.paid .ledger-body strong{color:var(--brand-vivid)}.payment-list .ledger-side{align-self:center}

/* 審判のみなさんへ(/umpire)と印刷用の案内(/umpire/flyer)。見た目は「マチナインとは」(about-*)に揃える。 */
.umpire-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.umpire-text{max-width:760px;font-size:16px;line-height:1.95;color:#3d4c63}
.umpire-sample{max-width:560px;margin:0 auto;padding:20px 22px;border:1px solid #cdd9f2;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(var(--brand-vivid-rgb),.08);position:relative}
.umpire-sample-tag{position:absolute;top:-12px;left:18px;margin:0;padding:2px 14px;border-radius:999px;background:var(--brand-vivid);color:#fff;font-size:13px;font-weight:700}
.umpire-sample-from{margin:6px 0 12px;font-weight:700;font-size:17px;color:#193968}
.umpire-sample-facts{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 16px;margin:0 0 16px}.umpire-sample-facts dt{color:#5c6f93;font-size:14px}.umpire-sample-facts dd{margin:0;overflow-wrap:anywhere}
.umpire-sample-actions{display:flex;flex-wrap:wrap;gap:10px}.umpire-sample-actions .button{pointer-events:none;cursor:default}
.umpire-sample-note{text-align:center;margin-top:12px}
.umpire-faq{display:flex;flex-direction:column;gap:10px;max-width:760px}
.umpire-faq details{border:1px solid #d5e2fb;border-radius:12px;background:#fff;padding:0 18px}
.umpire-faq summary{cursor:pointer;padding:14px 0;font-weight:700;color:#193968;font-size:16px}
.umpire-faq details p{margin:0 0 14px;line-height:1.9;color:#3d4c63}
@media(max-width:600px){.umpire-sample-facts{grid-template-columns:1fr;gap:2px}.umpire-sample-facts dd{margin-bottom:8px}.umpire-hero-actions .button{width:100%}}
/* 印刷用のA4 1枚。画面ではA4の幅の紙の見た目、印刷では余白だけを残して1枚に収める。 */
.umpire-flyer-page{background:#eef2fb;margin:0}
.flyer-tools{max-width:794px;margin:0 auto;padding:16px}.flyer-tools p{margin:0 0 8px;color:#3d4c63}
.flyer{box-sizing:border-box;width:794px;max-width:100%;margin:0 auto 24px;padding:40px 48px;background:#fff;color:#1b2b4b;border-top:10px solid var(--brand-vivid)}
.flyer h1{margin:8px 0 10px;font-size:34px;line-height:1.35;color:#193968}.flyer h1 span{display:block;font-size:26px;color:var(--brand-vivid)}
.flyer h2{margin:0 0 4px;font-size:20px;color:#193968}
.flyer-kicker{margin:14px 0 0;color:var(--brand-vivid);font-weight:750;letter-spacing:2px;font-size:13px}.flyer-logo{display:block}
.flyer-lead{font-size:18px;line-height:1.8;margin:0 0 20px}.flyer-lead b{color:var(--brand-vivid)}
.flyer-ways{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-direction:column;gap:12px}
.flyer-ways li{display:flex;gap:16px;align-items:flex-start;padding:14px 18px;border-radius:14px;background:var(--brand-tint2);border:1px solid #d5e2fb}
.flyer-ways li>span{flex:none;width:36px;height:36px;border-radius:50%;background:var(--brand-vivid);color:#fff;display:grid;place-items:center;font-weight:800;font-size:19px}
.flyer-ways p{margin:0;font-size:16px;line-height:1.7}
.flyer-start{display:flex;gap:28px;align-items:center;padding:20px 22px;border:2px solid var(--brand-vivid);border-radius:16px;margin-bottom:18px}
.flyer-qr{flex:none;text-align:center}.flyer-qr img{display:block;width:200px;height:200px}.flyer-qr p{margin:6px 0 0;font-size:14px;font-weight:700}
.flyer-steps ol{margin:6px 0 10px;padding-left:22px;font-size:17px;line-height:1.9}
.flyer-url{margin:0;font-size:18px;font-weight:700;color:var(--brand-vivid);overflow-wrap:anywhere}
.flyer-foot p{margin:0;font-size:13px;line-height:1.7;color:#5c6f93}
@media(max-width:700px){.flyer{padding:24px 18px}.flyer h1{font-size:26px}.flyer h1 span{font-size:20px}.flyer-start{flex-direction:column;align-items:flex-start}}
@media print{@page{size:A4;margin:10mm}.umpire-flyer-page{background:#fff}.flyer-tools{display:none}.flyer{width:auto;margin:0;padding:0;border-top:0;max-width:none}.flyer h1{font-size:30px}.flyer h1 span{font-size:23px}.flyer-lead{font-size:16px;margin-bottom:14px}.flyer-ways{gap:10px;margin-bottom:16px}.flyer-ways li{padding:12px 16px}.flyer-start{padding:16px 18px;margin-bottom:12px}.flyer-qr img{width:180px;height:180px}}
.umpire-flyer-page .button.primary{background:var(--brand-vivid);border-color:var(--brand-vivid);color:#fff}.umpire-flyer-page .button.secondary{background:#fff;border-color:#b9c9e8;color:var(--brand-vivid)}
/* 並べ替え中の見出し: 向きを三角で示す（色だけに頼らない）。aria-sort の値で上下が変わる。 */
.stat-table thead th[aria-sort] a::after{content:"";display:inline-block;margin-left:5px;vertical-align:middle;border-left:4px solid transparent;border-right:4px solid transparent}
.stat-table thead th[aria-sort=descending] a::after{border-top:6px solid #fff}.stat-table thead th[aria-sort=ascending] a::after{border-bottom:6px solid #fff}

/* 名簿の操作（編集・削除・退団）は1か所に集め、編集を開くと行いっぱいに広げる */
.roster-actions{flex-wrap:wrap;align-items:flex-start;margin:0}.roster-actions:has(.roster-edit[open]){flex-basis:100%}

/* School 管理画面: 操作ボタンを1行に並べ、退場は右端 */
.school-action-row .school-leave{margin-left:auto}@media(max-width:600px){.school-action-row .school-leave{margin-left:0}}

/* 管理・記録: 4つの操作を1行に（600px以下は縦並び） */
@media(min-width:601px){.school-manage-row{flex-wrap:nowrap;gap:8px}.school-manage-row .button{font-size:15px;padding-left:12px;padding-right:12px;white-space:nowrap}}

.school-leave .button.danger-outline{border-color:transparent}.school-leave .button.danger-outline:hover{border-color:transparent}
/* School 代表者ページ「ご利用期間を延ばす」: 12か月・6か月・1か月のプランを並べる（12か月をおすすめとして大きく）。金額は控えめに、赤は割引率だけ */
.school-registration .school-offers{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}
.school-registration .school-offer{position:relative;display:flex;flex-direction:column;gap:4px;margin:0;padding:15px;border:2px solid #c9d6f0;border-radius:8px;background:#fff}
.school-registration .school-offer.is-recommended{border-color:var(--brand);background:#f4f7ff;padding-top:21px}
.school-registration .school-offer .school-offer-badge{position:absolute;top:-13px;left:14px;margin:0;padding:3px 14px;border-radius:8px;background:var(--brand);color:#fff;font-size:14px;font-weight:700;line-height:1.3}
.school-registration .school-offer .school-offer-name{margin:0;font-size:18px;line-height:1.3;color:#1d3a8a}
.school-registration .school-offer .school-offer-campaign{margin:0;font-size:14px;line-height:1.4;font-weight:400;color:#3f4f73}.school-registration .school-offer .school-offer-off{font-weight:700;color:#d6334a}
.school-registration .school-offer .school-offer-regular{margin:0;font-size:14px;line-height:1.3;color:#5b6b8c}
.school-registration .school-offer .school-offer-price{margin:0;font-size:14px;line-height:1.3;color:#3f4f73}.school-registration .school-offer .school-offer-price strong{font-size:20px;font-weight:600;color:#1d3a8a}
.school-registration .school-offer .school-offer-per,.school-registration .school-offer .school-offer-save{margin:0;font-size:14px;line-height:1.4;font-weight:400;color:#3f4f73}
.school-registration .school-offer .button{margin-top:auto;width:100%}.school-registration .school-offer>p:last-of-type{margin-bottom:12px}
.school-registration .button.light{background:#e8efff;border-color:#b9c9e8;color:var(--brand-vivid)}.school-registration .button.light:hover{background:#d9e5ff;border-color:#9fb6e6}
.school-registration .inline-link{display:inline-flex;align-items:center;gap:6px}.school-registration .inline-link .ui-icon{flex:none;width:18px;height:18px}
@media(max-width:700px){.school-registration .school-offers{grid-template-columns:1fr;gap:18px}}
/* 代表者ページでは、メール確認の案内と割引の表示に限り赤系を使ってよい（利用者の指示 2026-10-09） */
.school-registration .school-offer-gate{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin:12px 0 0;padding:12px 14px;border:1px solid #d6334a;border-radius:8px;background:#fff4f6;color:#8f1d31;font-size:15px;font-weight:700;line-height:1.5}
.school-registration .school-offer-gate p{margin:0}.school-registration .school-offer-gate form{margin:0}
.school-registration .button.attention{background:#d6334a;border-color:#d6334a;color:#fff}.school-registration .button.attention:hover{background:#b92a3f;border-color:#b92a3f}
.school-registration .school-offer .button:disabled{opacity:.5;cursor:not-allowed}
/* School 「お支払いの結果」画面 */
.school-registration .school-paid-lead{margin:0 0 12px;font-size:18px;font-weight:700;color:#1d3a8a}
.school-registration .school-paid-table{width:100%;margin:0 0 12px;border-collapse:collapse}
.school-registration .school-paid-table th,.school-registration .school-paid-table td{padding:10px 8px;border-bottom:1px solid #dbe4f5;text-align:left;font-size:16px;vertical-align:top}
.school-registration .school-paid-table th{width:8em;color:#5b6b8c;font-weight:700;white-space:nowrap}.school-registration .school-paid-table strong{font-size:20px;color:#1d3a8a}
.school-register-nav{display:flex;align-items:center;gap:20px}
@media(max-width:600px){.school-register-header{flex-wrap:wrap}.school-register-nav{width:100%;justify-content:flex-end;gap:16px}}
.school-registration .school-fold>summary{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;list-style:none;cursor:pointer}.school-registration .school-fold>summary::-webkit-details-marker{display:none}
.school-registration .school-fold>summary .panel-title{margin:0}
.school-registration .school-fold>summary::after{content:"";margin-left:auto;width:9px;height:9px;border-right:2px solid var(--brand);border-bottom:2px solid var(--brand);transform:rotate(45deg);transition:transform .15s}
.school-registration .school-fold[open]>summary::after{transform:rotate(-135deg)}
.school-registration .school-fold-note{flex-basis:100%;order:3;font-size:14px;color:#5b6b8c}
.school-registration .school-fold[open]>summary{margin-bottom:12px}

/* School introduction (/school): friendly top page for the representative (a parent). */
.school-top .m-shell.no-side{max-width:1040px}
.school-top-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:28px;align-items:center;margin:8px 0 40px;padding:36px;border-radius:24px;background:linear-gradient(135deg,#fff 0,#eaf1ff 100%);border:1px solid #dbe5f5}
.school-top-hero h1{margin:0 0 14px;font-size:38px;line-height:1.5;letter-spacing:-.02em;color:#17335c}
.school-top-lead{margin:0 0 22px;font-size:18px;color:#3b4f6e}
.school-top-hero-image{display:block;width:100%;height:auto;border-radius:20px}
.school-top-actions{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 18px}.school-top-actions-center{justify-content:center;margin-top:28px}
.school-registration .school-top-button{min-height:58px;padding:0 26px;font-size:19px;font-weight:700;border-radius:8px}
.school-registration .school-top-button.primary{background:var(--brand);color:#fff;border-color:var(--brand)}
.school-registration .school-top-button.outline{background:#fff;color:var(--brand);border:2px solid var(--brand)}
.school-top-note{display:flex;align-items:flex-start;gap:8px;margin:6px 0 0;font-size:15px;color:#53657d}.school-top-note .ui-icon{flex:none;width:20px;height:20px;margin-top:4px;color:var(--brand)}
.school-top-section{margin:0 0 44px}
.school-registration .school-top-title{display:flex;align-items:center;gap:10px;margin:0 0 20px;font-size:26px;line-height:1.5}
.school-top-cards,.school-top-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:0;padding:0;list-style:none}
.school-top-cards li,.school-top-steps li{position:relative;padding:16px;border-radius:18px;background:#fff;border:1px solid #e0e8f3}
.school-top-cards img,.school-top-steps img{display:block;width:100%;height:auto;margin:0 0 12px}
.school-top-cards h3,.school-top-steps h3{margin:0 0 6px;font-size:19px;line-height:1.5;color:#17335c}
.school-top-cards p,.school-top-steps p{margin:0;font-size:16px;line-height:1.7;color:#53657d}
.school-top-number{position:absolute;top:8px;left:8px;z-index:1;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--brand);color:#fff;font-size:20px;font-weight:800}
.school-top-effects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none}
.school-top-effects li{display:flex;gap:16px;align-items:flex-start;padding:20px;border-radius:18px;background:#fff;border:1px solid #e0e8f3}
.school-top-effect-icon{flex:none;display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:#edf3ff;color:var(--brand)}.school-top-effect-icon .ui-icon{width:30px;height:30px}
.school-top-effects h3{margin:0 0 6px;font-size:19px;line-height:1.5;color:#17335c}.school-top-effects p{margin:0;font-size:16px;line-height:1.7;color:#53657d}
.school-top-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.school-top-plan{padding:22px;border-radius:18px;background:#fff;border:2px solid #dbe5f5}.school-top-plan.is-free{border-color:var(--brand);background:#f4f7ff}
.school-top-plan h3{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:21px;color:#1d3a8a}.school-top-plan h3 .ui-icon{width:26px;height:26px;color:var(--brand)}
.school-top-plan ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.school-top-plan li{position:relative;padding-left:26px;font-size:17px;line-height:1.7}
.school-top-plan li::before{content:"";position:absolute;left:4px;top:.5em;width:8px;height:14px;border-right:3px solid var(--brand);border-bottom:3px solid var(--brand);transform:rotate(45deg) translateY(-3px)}
.school-top-together{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:24px;align-items:center;margin:18px 0;padding:22px;border-radius:18px;background:#fff;border:1px solid #e0e8f3}
.school-top-together img{display:block;width:100%;height:auto}.school-top-together h3{margin:0 0 8px;font-size:21px;color:#17335c}.school-top-together p{margin:0 0 10px}
.school-top-split{padding:12px 14px;border-radius:12px;background:#edf3ff;color:#1d3a8a;font-weight:700}
.school-top-small{font-size:15px;color:#64748a;margin:0}
.school-top-faq{display:grid;gap:10px}
.school-top-faq details{padding:0 18px;border-radius:14px;background:#fff;border:1px solid #e0e8f3}
.school-top-faq summary{display:flex;align-items:center;gap:10px;min-height:58px;cursor:pointer;font-size:18px;font-weight:700;color:#17335c;list-style:none}
.school-top-faq summary::-webkit-details-marker{display:none}
.school-top-faq summary::after{content:"";margin-left:auto;flex:none;width:9px;height:9px;border-right:2px solid var(--brand);border-bottom:2px solid var(--brand);transform:rotate(45deg);transition:transform .15s}
.school-top-faq details[open] summary::after{transform:rotate(-135deg)}
.school-top-faq p{margin:0 0 16px;font-size:16px;line-height:1.8;color:#53657d}
.school-top-final{margin:0 0 20px;padding:36px 24px;border-radius:24px;background:var(--brand);color:#fff;text-align:center}
.school-top-final h2{margin:0 0 8px;font-size:28px;line-height:1.5;color:#fff}.school-top-final p{margin:0;color:#e0eaff}
.school-registration .school-top-final .school-top-button.primary{background:#fff;color:var(--brand);border-color:#fff}
.school-registration .school-top-final .school-top-button.outline{background:transparent;color:#fff;border-color:#fff}
@media(max-width:820px){.school-top-hero{grid-template-columns:1fr;padding:24px 20px}.school-top-hero h1{font-size:30px}.school-top-cards,.school-top-steps,.school-top-effects,.school-top-compare,.school-top-together{grid-template-columns:1fr}.school-top-cards img,.school-top-steps img{max-width:320px;margin-left:auto;margin-right:auto}}
@media(max-width:600px){.school-top-hero h1{font-size:26px}.school-top-lead{font-size:16px}.school-registration .school-top-title{font-size:21px}.school-top-actions{display:grid;grid-template-columns:1fr}.school-registration .school-top-button{justify-content:center;width:100%;font-size:18px}.school-top-final h2{font-size:23px}.school-top-faq summary{font-size:16px}}
/* School registration form: friendly illustrations. */
.school-register-intro{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;align-items:center;margin:8px 0 28px;padding:28px;border-radius:22px;background:linear-gradient(135deg,#fff 0,#eaf1ff 100%);border:1px solid #dbe5f5}
.school-register-intro-image{display:block;width:100%;height:auto;border-radius:18px}
.school-panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.school-panel-head .panel-title{margin:0}
.school-panel-illust{display:block;flex:none;width:160px;height:auto;border-radius:12px}
@media(max-width:600px){.school-register-intro{grid-template-columns:1fr;padding:20px 18px}.school-register-intro-image{max-width:300px;margin:0 auto}.school-panel-illust{width:84px}}
/* Saved teams as chips; the reassurance under 「代表者の方へ」. */
.school-team-chip{display:inline-flex;align-items:center;gap:10px;min-height:52px;max-width:100%;padding:6px 16px 6px 8px;border:2px solid #c9d6f0;border-radius:26px;background:#fff;color:#17335c;font:inherit;font-size:17px;font-weight:700;cursor:pointer}
.school-team-chip:hover{border-color:var(--brand)}
.school-team-chip[aria-pressed=true]{border-color:var(--brand);background:#edf3ff;color:#1d3a8a}
.school-team-chip-mark{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#dbe7ff;color:var(--brand);font-size:18px;font-weight:800;object-fit:cover;overflow:hidden}
.school-team-chip-name{min-width:0;overflow-wrap:anywhere;text-align:left}
.school-reassure{display:flex;gap:12px;align-items:flex-start;margin:14px 0;padding:14px 16px;border-radius:12px;background:#edf3ff;color:#1d3a8a}
.school-reassure .ui-icon{flex:none;width:26px;height:26px;margin-top:2px;color:var(--brand)}
.school-reassure strong{display:block;font-size:17px;line-height:1.6}.school-reassure p{margin:4px 0 0;font-size:15px;line-height:1.7;color:#3b4f6e}
/* School coupon form on the representative's page. */
.school-coupon-form{display:flex;gap:10px;align-items:stretch;margin:14px 0 6px}
.school-coupon-form input{flex:1 1 auto;min-width:0;box-sizing:border-box;min-height:52px;border:1px solid #cbd6e6;border-radius:8px;padding:10px 12px;font:inherit;font-size:19px;letter-spacing:.08em;text-transform:uppercase;color:#17335c}
.school-coupon-form .button{flex:none;border-radius:8px}
.school-coupon-title{margin:18px 0 6px;font-size:17px;color:#17335c}
@media(max-width:600px){.school-coupon-form{flex-direction:column}}
/* School 登録フォーム: スマホで日付・時刻などの入力欄が枠の右にはみ出さないようにする */
.school-register-date-row>.m-field{min-width:0}
.school-registration .m-field input[type=date],.school-registration .m-field input[type=time]{-webkit-appearance:none;appearance:none;max-width:100%;inline-size:100%;line-height:1.4}
.school-registration .m-field input[type=date]::-webkit-date-and-time-value,.school-registration .m-field input[type=time]::-webkit-date-and-time-value{text-align:left;min-width:0}
@media(max-width:600px){.school-register-date-row{grid-template-columns:minmax(0,1fr)}.school-registration .school-register-panel,.school-registration .m-form{min-width:0;max-width:100%}.school-registration .m-field input,.school-registration .m-field textarea{max-width:100%}}
/* 締切が24時間以内の募集は、締切表示を赤系にして目立たせる（利用者指示 2026-10-10） */
.post-meta .soon,.post-meta .soon b{color:#d6334a}
.recruit-table td>span.deadline-countdown{background:#fdebee;color:#d6334a}
/* /my/schedule カレンダー連携のURL欄（m-form の外にあるため入力欄のスタイルを個別に当てる） */
.calendar-link .m-field input{width:100%;min-width:0;box-sizing:border-box;border:1px solid #cbd8ee;border-radius:8px;background:#fcfdff;color:#344a72;padding:11px 13px;font:inherit;font-size:14px}
.calendar-link .m-field input:focus{outline:3px solid #c8d7ff;border-color:#6c91ed}
@media(max-width:600px){.calendar-link .m-field input{font-size:16px;padding:10px}}
/* School 代表者ページ: 登録した試合の年ごとの折りたたみ・視聴者数 */
.school-registration .school-year{margin:0 0 10px;border:1px solid #dbe4f5;border-radius:8px;background:#fff}
.school-registration .school-year>summary{cursor:pointer;padding:12px 14px;font-weight:700;color:#1d3a8a;font-size:16px}
.school-registration .school-year .school-plan-games{margin:0;padding:0 14px 8px}
.school-registration .school-plan-games li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px}
.school-registration .school-viewing-link{display:inline-flex;align-items:center;gap:4px;font-weight:700;color:var(--brand);white-space:nowrap}
.school-registration .school-viewing-link svg{width:16px;height:16px}
.school-registration .school-viewing-table{width:100%;border-collapse:collapse;margin:0 0 12px}
.school-registration .school-viewing-table th,.school-registration .school-viewing-table td{padding:8px 6px;border-bottom:1px solid #dbe4f5;text-align:left;font-size:15px;white-space:nowrap}
.school-registration .school-viewing-table thead th{color:#5b6b8c;font-size:13px}
.school-registration .school-viewing-table .school-viewing-bar{width:100%}
.school-registration .school-viewing-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.school-registration .school-viewing-bar progress{display:block;width:100%;height:14px;appearance:none;-webkit-appearance:none;border:0;border-radius:7px;background:var(--brand-tint4);overflow:hidden}
.school-registration .school-viewing-bar progress::-webkit-progress-bar{background:var(--brand-tint4)}
.school-registration .school-viewing-bar progress::-webkit-progress-value{background:var(--brand);border-radius:7px}
.school-registration .school-viewing-bar progress::-moz-progress-bar{background:var(--brand);border-radius:7px}
/* School 代表者ページ: 試合一覧の状態表示 */
.school-registration .school-game-main{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.school-registration .school-game-state{display:inline-block;padding:1px 8px;border-radius:999px;background:var(--brand-tint4);color:var(--brand);font-size:12px;font-weight:700}
.school-registration .school-game-state.live{background:#fdebee;color:#d6334a}

/* 個人設定 テーマカラー: one swatch per theme in front of the name; the colours come from the same variables the theme swaps. */
.theme-choice .ground-option span{display:inline-flex;align-items:center;gap:8px}
.theme-choice .ground-option span:before{content:"";width:16px;height:16px;border-radius:50%;background:var(--swatch);flex:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.theme-choice [value="blue"]+span{--swatch:#335ac0}
.theme-choice [value="green"]+span{--swatch:#2f7a4f}
.theme-choice [value="purple"]+span{--swatch:#6a4bb5}
.theme-choice [value="pink"]+span{--swatch:#b0467a}
.theme-choice [value="orange"]+span{--swatch:#b3571a}
.theme-choice [value="slate"]+span{--swatch:#475569}

/* Machi9 Rating: the confirmation list and the team figure on the my page. */
.rating-confirm-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}
.rating-confirm-list li{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:12px 14px;border:1px solid #dbe4f5;border-radius:10px;background:var(--brand-tint3)}
.rating-confirm-list form{margin:0}
.rating-confirm-game{flex:1 1 220px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.rating-confirm-game span{font-weight:800;color:var(--brand-deep);font-size:18px}
.rating-figure{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin:8px 0 4px}
.rating-figure strong{font-size:40px;line-height:1;color:var(--brand-deep)}
.rating-trend{font-weight:800;color:var(--brand)}
.rating-trend.down{color:#5d6b82}
.rating-note,.rating-help{color:#5d6b82;font-size:14px}
.rating-help{margin:0}
.about-rating .about-note{margin:16px 0 0;color:#5d6b82;font-size:14px;line-height:1.7}

/* 対戦相手をさがす: one row per suggested team. */
.suggest-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}
.suggest-list li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:12px 14px;border:1px solid #dbe4f5;border-radius:10px;background:var(--brand-tint3)}
.suggest-team{flex:1 1 200px;display:flex;align-items:center;gap:10px;min-width:0}
.suggest-team img{border-radius:8px;object-fit:cover;flex:none}
.suggest-rating{display:inline-flex;align-items:center;gap:6px;font-weight:800;color:var(--brand-deep)}
.suggest-list small{flex:1 1 100%;color:#5d6b82}
.suggest-list form{margin:0}

/* 試合の特設ページ (/m/{event}): the two teams side by side, then the facts and the recent games. */
.match-hero{overflow:hidden}
.match-sides{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;gap:0;margin:-4px -4px 0}
/* 終わった試合は、先攻のチームを左（スマホでは上）、後攻を右（下）に置く */
.match-sides.is-swapped>.match-side:first-child{order:3}.match-sides.is-swapped>.match-vs{order:2}.match-sides.is-swapped>.match-side:last-child{order:1}
.match-side{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:28px 12px;min-height:180px;overflow:hidden;border-radius:12px;background:var(--brand-tint3)}
.match-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.28}
.match-team{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;min-width:0}
.match-team img{border-radius:16px;background:#fff;object-fit:cover}
.match-team strong{font-size:20px;line-height:1.3;overflow-wrap:anywhere;color:#1d2b4a}
.match-rating{position:relative;display:inline-flex;align-items:center;gap:6px;font-weight:800;color:var(--brand-deep)}
.match-vs{align-self:center;padding:0 14px;font-weight:900;font-size:22px;letter-spacing:.06em;color:var(--brand)}
.match-facts{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:8px}
.match-facts li{display:flex;align-items:center;gap:10px;font-weight:700;color:#1d2b4a}
.match-facts .match-canceled{color:#5d6b82}
.match-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.match-actions:empty{display:none}
.match-recent{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.match-recent h3{margin:0 0 8px;font-size:16px}
.match-recent ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.match-recent li{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.match-recent-opponent{flex:1 1 120px;min-width:0;overflow-wrap:anywhere}
@media(max-width:600px){.match-sides{grid-template-columns:1fr;gap:6px}.match-vs{padding:2px 0;text-align:center}.match-side{min-height:0;padding:20px 12px}}
.match-live{margin-top:16px}
.match-lineup{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.match-lineup li{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:10px;background:var(--brand-tint3)}
.match-lineup-order{flex:0 0 28px;text-align:center;color:var(--brand-deep)}
.match-lineup-pos{flex:0 0 36px;text-align:center;font-weight:700;color:var(--brand)}
.match-lineup-name{flex:1 1 auto;min-width:0;overflow-wrap:anywhere;font-weight:700;color:#1d2b4a}
.match-lineup small{color:#5d6b82}
.suggest-notify{margin-top:14px;padding-top:12px;border-top:1px solid #e5eaf2}.suggest-notify .m-help{margin:0 0 10px}
/* Side menu panel in the member's theme (the dark "night" colours come from the theme variables at the top; base/mockup.css has the blue ones). */
@media(min-width:901px){
 .m-side nav{background:var(--night);border-color:var(--night-line);scrollbar-color:var(--night-scroll) var(--night)}
 .m-side summary:after{color:var(--night-accent)}
 .m-side details a:before{background:var(--night-dot)}
 .m-side a:hover{background:var(--night-hover)}
 .m-side details a.active:before{background:var(--night-accent)}
}
/* School 代表者ページ: パネル見出し・金額・おトク表示以外は太字にしない */
body.school-plan-page *{font-weight:400!important}
body.school-plan-page :is(h1,h2,.panel-title,.panel-title *,.sstamp-progress,.sstamp-progress *,.sstamp-banner,.sstamp-name,.sstamp-face b,.sstamp-link span,.school-offer-price,.school-offer-price *,.school-offer-off,.school-offer-badge){font-weight:700!important}

.interview-list{margin:0;display:grid;gap:14px}.interview-list dt{font-weight:700;color:var(--brand,#335ac0);margin:0 0 4px}.interview-list dd{margin:0;white-space:pre-wrap;line-height:1.7}
.interview-form{margin:0 0 14px}.interview-form textarea{width:100%}
.switch-why{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.switch-why article{border:1px solid #dae3f2;border-radius:16px;background:#fff;overflow:hidden}.switch-why .switch-art{display:block;width:100%;height:auto}.switch-why article>div{padding:14px 18px 18px}.switch-why h3{margin:0 0 6px;font-size:17px;color:#20365f}.switch-why p{margin:0;line-height:1.7;color:#4a5a78}
.switch-csv-links{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}
@media(max-width:900px){.switch-why{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.switch-why{grid-template-columns:1fr}.switch-csv-links .button{width:100%}}

/* 한국어 화면: 단어 단위로 줄바꿈(어절 중간에서 끊지 않는다). 긴 글자열은 넘치지 않게 */
html[lang="ko"] body{word-break:keep-all;overflow-wrap:anywhere}

.school-lang{position:relative}.school-lang summary{cursor:pointer;list-style:none}.school-lang summary::-webkit-details-marker{display:none}
.school-lang-list{position:absolute;right:0;top:calc(100% + 8px);z-index:30;min-width:150px;margin:0;padding:6px;list-style:none;background:#fff;border:1px solid #d5dcea;border-radius:8px;box-shadow:0 6px 18px rgba(20,40,90,.14)}
.school-lang-list a{display:block;padding:9px 12px;border-radius:6px;font-size:15px;font-weight:700;color:var(--brand);white-space:nowrap}
.school-lang-list a.current{background:#eef2fb;color:#1f2d4d}.school-lang-list a:hover{background:#f4f7fd}

/* お気に入り (/my/favorites): the people or teams met, each with a heart (pressed = red like the saved posts) */
.fav-list{list-style:none;margin:0;padding:0}
.fav-row{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid #e1e7f2}.fav-row:last-child{border-bottom:0}
.fav-photo{width:48px;height:48px;border-radius:50%;object-fit:cover;flex:none;display:block;background:#eef2fb}.fav-photo.logo{border-radius:8px;object-fit:contain}
.fav-photo-empty{display:flex;align-items:center;justify-content:center;color:var(--brand)}.fav-photo-empty .ui-icon{width:24px;height:24px}
.fav-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.fav-body small{color:#5d6b86}
.fav-mutual{align-self:flex-start;margin-top:3px;padding:2px 10px;border-radius:999px;background:#eef2fb;color:var(--brand);font-size:13px;font-weight:700}
.fav-heart{flex:none;width:44px;height:44px;border:1px solid #d5dcea;border-radius:50%;background:#fff;color:#7d8aa5;display:flex;align-items:center;justify-content:center;cursor:pointer}
.fav-heart .ui-icon{width:22px;height:22px}.fav-heart[aria-pressed=true]{color:#d6334a;border-color:#d6334a}.fav-heart[aria-pressed=true] .ui-icon{fill:currentColor}
.fav-add{margin-top:10px}

/* 助っ人に聞く (event detail) and the お気に入り request lines */
.helper-ask{margin-top:18px;padding-top:14px;border-top:1px solid #e1e7f2}.helper-ask-title{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:18px;color:var(--brand)}
.fav-mark{display:inline-flex;margin-left:6px;color:#d6334a;vertical-align:middle}.fav-mark .ui-icon{width:16px;height:16px;fill:currentColor}
.fav-row form{margin:0}.fav-row>form+form{margin-left:-6px}
@media(max-width:600px){.fav-row{flex-wrap:wrap}.fav-row .fav-body{flex-basis:100%}}
.fav-instant{color:var(--brand);font-weight:700}
.helper-call{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin:8px 0 12px}.helper-call small{color:#5d6b86}
.fav-body .svc-status{align-self:flex-start;margin-top:3px}
.shortage-game{padding:14px 0;border-top:1px solid #e1e7f2}.shortage-game:first-of-type{border-top:0}.shortage-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.shortage-line{margin:4px 0;color:#5d6b86}.shortage-offer{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:8px 0;padding:10px 12px;border-radius:10px;background:#eef2fb}.shortage-offer form{margin:0}.shortage-actions{margin-top:8px}.shortage-actions form{margin:0}
.readiness-item{padding:8px 0 4px;border-top:1px dashed #e1e7f2}.readiness-item:first-of-type{border-top:0}.readiness-label{display:flex;align-items:center;gap:6px;margin:4px 0;font-weight:700;color:var(--brand)}.readiness-label .ui-icon{width:18px;height:18px}

/* レーティングのつかい方(/rating)。見た目は「マチナインとは」(about-*)に揃え、イラストはテーマ色に追従する。 */
.rating-art{display:block;width:100%;max-width:240px;height:auto;margin:14px 0 0}
.ra-card{fill:#fff;stroke:#c9d6f2;stroke-width:2}.ra-fill{fill:var(--brand-vivid)}.ra-fill-soft{fill:var(--brand-soft)}.ra-down{fill:#9aa7bd}
.ra-soft-fill{fill:#e2e9f7}.ra-white{fill:#fff}.ra-text{fill:#193968}.ra-big{fill:var(--brand-vivid)}.ra-soft{fill:#6b7f9f}.ra-line{stroke:var(--brand-soft)}
.rating-flow li{display:flex;flex-direction:column}.rating-flow li>span{margin-bottom:2px}
.rating-flow h3{margin-top:10px}
.rating-change{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:24px;align-items:center}
.rating-change figure{margin:0;padding:22px;border:1px solid #d8e2f6;border-radius:16px;background:#fff}
.rating-change figcaption{margin-top:12px;font-size:14px;line-height:1.7;color:#4d6286;text-align:center}
.rating-art-wide{max-width:none;margin:0}
.rating-points{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.rating-points li{display:flex;gap:14px;padding:18px 20px;border-radius:16px;background:var(--brand-tint2);border:1px solid #d5e2fb}
.rating-points .ui-icon{flex:none;width:26px;height:26px;margin-top:2px;color:var(--brand-vivid)}
.rating-points h3{margin:0 0 4px;font-size:17px;color:#193968}.rating-points p{margin:0;font-size:15px;line-height:1.8;color:#3d4c63}
.rating-count{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.rating-count article{padding:22px 24px;border-radius:16px;border:1px solid #d8e2f6;background:#fff}
.rating-count article.yes{background:var(--brand-tint2);border-color:#d5e2fb}
.rating-count h3{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:18px;color:#193968}
.rating-count .yes h3 .ui-icon{color:var(--brand-vivid)}.rating-count .no h3 .ui-icon{color:#7d8aa3}
.rating-count ul{margin:0;padding-left:20px;font-size:15px;line-height:1.9;color:#3d4c63}
.rating-faq{display:grid;gap:10px}
.rating-faq details{border:1px solid #d8e2f6;border-radius:14px;background:#fff;padding:0 20px}
.rating-faq summary{padding:16px 0;font-weight:700;color:#193968;cursor:pointer}
.rating-faq p{margin:0 0 16px;font-size:15px;line-height:1.85;color:#3d4c63}
.about-more{margin:0 0 6px}
@media(max-width:700px){.rating-change,.rating-count{grid-template-columns:1fr;gap:14px}.rating-art{max-width:200px}.rating-change figure{padding:16px}.rating-faq details{padding:0 16px}}

/* チームのホームページ「内容と配置」のドラッグ編集（/my/team/homepage・hp-editor.js、2026-10-13）。場所はデザインと同じ並び（B は本文とサブ欄の2列）。 */
.hpe-hero{display:grid;gap:10px;padding:18px;border-radius:12px;background:linear-gradient(135deg,#1f3a8a,#254dea);color:#fff;margin-bottom:16px}
.hpe-hero-D{background:linear-gradient(135deg,#0b1020,#1c2a5a)}
.hpe-hero-name{margin:0;font-size:20px;font-weight:800;overflow-wrap:anywhere}
.hpe .hpe-hero :is(p,small,span,label){color:#fff}
.hpe-hero-field{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:700}
.hpe-hero-field input,.hpe-hero-field textarea{width:100%;border-radius:8px;border:1px solid rgba(255,255,255,.5);background:rgba(255,255,255,.96);color:#1d2433;padding:8px 10px;font:inherit;font-weight:400}
.hpe-board{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:16px;align-items:start}
.hpe-canvas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;grid-auto-flow:row dense;min-width:0}
.hpe-canvas.hpe-design-B{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.hpe-slot{position:relative;min-height:96px;padding:8px 10px 10px;border:2px dashed #b9c6e4;border-radius:10px;background:#f6f8fd;min-width:0}
.hpe-slot.wide{grid-column:1/-1}
.hpe-design-B .hpe-slot.wide{grid-column:1}.hpe-design-B .hpe-slot.narrow{grid-column:2}
.hpe-slot-name{margin:0 0 6px;font-size:12px;font-weight:700;color:#5b6f93}
.hpe-slot-empty{margin:0;display:flex;align-items:center;justify-content:center;min-height:56px;color:#8c9ab5;font-size:13px}
.hpe-slot.filled .hpe-slot-empty{display:none}
.hpe-palette{position:sticky;top:12px;display:grid;gap:8px;padding:12px;border-radius:10px;background:#eef2fb;border:2px dashed #d6dff2;max-height:calc(100vh - 24px);overflow:auto}
.hpe-palette-title{margin:0;display:flex;gap:6px;align-items:center;font-weight:700;font-size:14px}
.hpe-palette-empty{margin:0;font-size:13px;color:#5b6f93}.hpe-palette.filled .hpe-palette-empty{display:none}
.hpe-slot.hpe-over,.hpe-palette.hpe-over{border-color:#254dea;border-style:solid;background:#e6edff}
.hpe-slot.hpe-deny{border-color:#c4cbd8;background:#eceef2;opacity:.55}
.hpe-card{background:#fff;border:1px solid #cfd8ea;border-radius:10px;padding:8px 10px;box-shadow:0 2px 6px rgba(20,40,90,.08);display:grid;gap:6px;min-width:0}
.hpe-card:focus-visible{outline:3px solid #8aa5ff;outline-offset:2px}
.hpe-card-head{display:flex;align-items:center;gap:8px;min-width:0}
.hpe-card-head strong{flex:1;min-width:0;font-size:14px;overflow-wrap:anywhere}
.hpe-handle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:40px;cursor:grab;touch-action:none;color:#5b6f93;flex:none;border-radius:8px}
.hpe-handle:hover{background:#eef2fb}
.hpe-card-icon{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:8px;background:#254dea;color:#fff;flex:none}
.hpe-card-icon .ui-icon{width:18px;height:18px}
.hpe-wide-tag{font-size:11px;padding:1px 6px;border-radius:4px;background:#e6edff;color:#335ac0;font-weight:700;white-space:nowrap}
.hpe-card-help{margin:0;font-size:12px;color:#5b6f93}
.hpe-card-menu{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
.hpe-card-menu .m-check{margin:0;font-size:13px}
.hpe-label,.hpe-move{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;min-width:0}
.hpe-label>span,.hpe-move>span{white-space:nowrap}
.hpe-move{width:100%}.hpe-move select{flex:1}
.hpe-label input{width:9em;min-height:36px;border-radius:8px;border:1px solid #c5cfe3;padding:4px 8px;font:inherit;font-weight:400}
.hpe-move select{min-height:36px;border-radius:8px;border:1px solid #c5cfe3;padding:2px 6px;font:inherit;font-weight:400;max-width:100%;min-width:0}
.hpe-palette .hpe-card-menu,.hpe-palette .hpe-remove{display:none}
.hpe-dragging{opacity:.35}
.hpe-ghost{position:fixed;z-index:1000;pointer-events:none;transform:rotate(2deg);box-shadow:0 12px 30px rgba(20,40,90,.3);margin:0}
.hpe-active,.hpe-active *{user-select:none;cursor:grabbing}
.hpe-savebar{position:sticky;bottom:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;margin:12px 0 0;padding:10px 0;background:rgba(255,255,255,.96);border-top:1px solid #dfe5f1}
.hpe-dirty{margin-right:auto;font-weight:700;color:#335ac0}
.hpe-fallback{margin-top:16px}.hpe-fallback summary{cursor:pointer;font-weight:700;color:#335ac0}
@media(max-width:860px){.hpe-board{grid-template-columns:1fr}.hpe-palette{position:static;max-height:none}}
@media(max-width:760px){.hpe-savebar{bottom:calc(66px + env(safe-area-inset-bottom));padding:10px 64px}.hpe-dirty{flex-basis:100%;text-align:center;margin:0}}
@media(max-width:600px){.hpe-canvas,.hpe-canvas.hpe-design-B{grid-template-columns:1fr}.hpe-canvas .hpe-slot.wide,.hpe-canvas .hpe-slot.narrow{grid-column:1}}

/* チームのホームページを広める（QR・LINE・コピー、/my/team/homepage） */
.hp-share{margin-top:16px;padding-top:12px;border-top:1px solid #e3e9f5}
.hp-share-row{display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.hp-share-qr{width:140px;height:140px;border:1px solid #dfe5f1;border-radius:8px;background:#fff;padding:6px}
.hp-share-actions{display:flex;flex-wrap:wrap;gap:8px}

/* ボタン規格(マイページ共通、2026-10-11 提案→実装)。角は8px、高さは M 44px / S 36px(スマホは40px) / アイコン専用 40px、例外は L 56px(出欠の大きなボタン)。
   丸い形のまま残すのはタブ・チップだけ(LIVE視聴ボタン next-live-watch も8pxの角丸四角)。認証系の画面(auth-page)・公開ページ・School はこの規格の対象外(別途)。 */
body:not(.auth-page) .m-shell .button{border-radius:8px;font-size:14px;gap:8px}
body:not(.auth-page) .m-shell :is(.pv-actions .button,.pv-changed .button,.share-button,.share-small,.near-team .button,.chat-start .button,.cover-adjust-actions .button,.alert-row .button,.similar-teams li .button,.ledger-nav .button,.member-promote:not(.icon-only),.award-heart,.cm-like-button,.summary-issue-button,.import-games-table .button,.summary-progress-games .button,.csv-match-table .button:not(.icon-only),.squad-move .button,.squad-head .button,.menu-appearance .button,.menu-weather .button,.readiness-dialog .readiness-act .button){min-height:36px;padding:6px 12px;font-size:13px;gap:6px}
body:not(.auth-page) .m-shell .csv-match-table .button:not(.icon-only){padding-left:8px;padding-right:8px;white-space:nowrap}
body:not(.auth-page) .m-shell :is(.welcome-actions,.join-request-actions) .chat-start .button{min-height:44px;padding:10px 20px;font-size:14px;gap:8px}
body:not(.auth-page) .m-shell .button.icon-only{width:40px;min-width:40px;height:40px;min-height:40px;padding:0}
body:not(.auth-page) .m-shell .answer-buttons.large .answer-button{min-height:56px;font-size:17px}
@media(max-width:700px){body:not(.auth-page) .m-shell :is(.pv-actions .button,.pv-changed .button,.share-button,.share-small,.near-team .button,.chat-start .button,.cover-adjust-actions .button,.alert-row .button,.similar-teams li .button,.ledger-nav .button,.member-promote:not(.icon-only),.award-heart,.cm-like-button,.summary-issue-button,.import-games-table .button,.summary-progress-games .button,.csv-match-table .button:not(.icon-only),.squad-move .button,.squad-head .button,.menu-appearance .button,.menu-weather .button,.readiness-dialog .readiness-act .button){min-height:40px}
 body:not(.auth-page) .m-shell .csv-match-table .button:not(.icon-only){padding-left:5px;padding-right:5px;gap:3px}
 body:not(.auth-page) .m-shell :is(.welcome-actions,.join-request-actions) .chat-start .button{min-height:44px}}
body:not(.auth-page) .m-shell .button{line-height:1.5}
/* 絞り込みボタン(直近20試合・今年・全期間、規定到達など)は角8pxの四角(2026-10-12 ユーザー指示。丸いチップにしない) */
body:not(.auth-page) .m-shell .stat-tools .rx-chip{border-radius:8px}
body:not(.auth-page) .m-shell .roster-edit-form .button{flex:none;margin-top:0;white-space:nowrap}
body:not(.auth-page) .m-shell .lu-bar .button{white-space:nowrap}
/* マチナインとは: チームの料金プラン */
.about-plan-table thead th:not(:first-child){width:22%}
.about-plan-table .plan-price td{line-height:1.5}
.about-plan-table .plan-price s{display:block;font-size:13px;color:#8a97ad}
.about-plan-table .plan-price strong{display:block;font-size:18px;color:var(--brand-deep)}
.about-plans .about-note{margin:14px 0 0;color:#5d6b82;font-size:14px;line-height:1.7}
@media(max-width:760px){.about-plan-table{font-size:13px}.about-plan-table .plan-price strong{font-size:15px}.about-plan-table tbody th{width:34%}}
.about-plan-table .plan-price small.plan-off{color:#d6334a;font-weight:700}
/* /my/team/plan: the discount and the yearly benefit (user instruction 2026-10-12) */
.m-panel b.plan-off{color:#d6334a;font-weight:700;margin-left:.4em}
.about-plan-table tbody th small,.about-plan-table .plan-free th small{display:block;margin-top:2px;font-size:13px;font-weight:400;color:#57739e}
.about-plan-table small.free-tag{color:var(--brand-vivid);font-weight:700}
.about-compare .tri{color:var(--brand-vivid);font-size:18px}
/* 2026-10-12 デザイン修正: 成績表の数字列は同じ幅(見出しが2文字でも3文字でも揃える)、スマホの主な活動日は横並び、年間タブの確定ボタン下の余白。 */
.stat-table thead th:not(.rank):not(.name),.stat-table tbody td{min-width:64px;width:64px;box-sizing:border-box;padding-left:6px;padding-right:10px;text-align:right}
.stat-table thead th:not(.rank):not(.name){text-align:right}
.stat-table thead th:not(.rank):not(.name) a{display:block;text-align:right;white-space:nowrap}
/* 1試合の個人記録(打撃・投手)は桁が少ないので中央揃え。通算の表は右揃えのまま */
.stat-table.game-stat thead th:not(:first-child),.stat-table.game-stat tbody td{padding-left:8px;padding-right:8px;text-align:center}
@media(max-width:700px){.team-day-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.team-day-options label{min-width:0}}
.ledger-month>.m-actions{margin:0 0 16px}
.event-result em{white-space:nowrap;flex:none}
@media(max-width:600px){.game-result .event-result{display:flex;width:100%;box-sizing:border-box;gap:6px 10px;padding:8px 10px}.game-result .event-result b{font-size:18px;min-width:0;overflow-wrap:anywhere;flex:1 1 auto}}
/* 2026-10-12 主な活動日: 狭い画面でも「土曜」などの文字を縦に折り返さない(余白を詰め、さらに狭ければ3列)。 */
.team-day-options label>span{white-space:nowrap}
@media(max-width:700px){.team-day-options label{padding:10px 6px;gap:5px}}
@media(max-width:380px){.team-day-options{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* 予定フォーム: 大会の選択ボタン */
.league-button.selected{border-color:var(--brand-vivid);background:var(--brand-tint2);box-shadow:0 0 0 1px var(--brand-vivid)}
.league-field .opponent-input{margin-top:10px}.league-kinds{margin-top:10px}
.rating-field .m-check{margin:0}
/* 予定フォーム: レーティングに反映するスイッチ(対戦の緊張感のイラスト付きトグルカード。ON=色付き、OFF=グレー) */
.rating-toggle{position:relative;display:flex;align-items:center;gap:16px;width:100%;box-sizing:border-box;padding:14px 18px;border:2px solid var(--brand-vivid);border-radius:14px;background:var(--brand-tint2);cursor:pointer;transition:background .15s,border-color .15s}
.rating-toggle input{position:absolute;opacity:0;width:1px;height:1px}
.rating-toggle .rating-versus{flex:none;width:120px;height:auto}
.rating-toggle-text{display:grid;gap:2px;min-width:0;flex:1 1 auto}
.rating-toggle-text strong{font-size:16px;color:#20365f;overflow-wrap:anywhere}.rating-toggle-text small{font-size:13px;color:#4d5f80}
.rating-toggle-state{flex:none;align-self:center;min-width:92px;padding:8px 12px;border-radius:8px;background:var(--brand-vivid);color:#fff;font-weight:800;font-size:14px;text-align:center}
.rating-toggle .rt-off{display:none}
.rating-toggle:has(input:not(:checked)){border:2px dashed #b9c4d8;background:#f2f4f8}
.rating-toggle:has(input:not(:checked)) .rt-on{display:none}
.rating-toggle:has(input:not(:checked)) .rt-off{display:revert}
.rating-toggle:has(input:not(:checked)) .rating-versus{filter:grayscale(1);opacity:.4}
.rating-toggle:has(input:not(:checked)) .rating-toggle-state{background:#c9d1df;color:#5d6b82}
.rating-toggle:has(input:not(:checked)) .rating-toggle-text strong{color:#68778c}
.rating-toggle:has(input:focus-visible){outline:3px solid #ffce65;outline-offset:2px}
.rating-toggle.locked{cursor:default;opacity:.8}
@media(max-width:600px){.rating-toggle{flex-wrap:wrap;gap:10px 12px;padding:12px}.rating-toggle .rating-versus{width:84px}.rating-toggle-state{margin-left:auto}}
.league-history ul{max-height:220px}
/* マイページのタブ(さがす/プロフィール、ホーム/チーム): 톱페이지 카테고리와 같은 탭 모양 */
.design-atlas .type-tabs.type-tabs-inline.home-tabs{padding:0 0 12px;margin:0 0 16px}
.home-tabs a{cursor:pointer}
.home-tabs .count-badge{margin-left:4px;padding:1px 8px;font-size:12px}
/* Phones: the tab row of a player without a team is full, so the badge shows the number only (the label stays in aria-label). */
@media(max-width:600px){.home-tabs .badge-word{display:none}}
[data-home-panel]{min-width:0}
/* マイページ「この試合、成立する？」: 試合ごとにカードで区切り、人数と審判を左右に、対戦相手をその下に表示する。 */
.shortage-game{margin:14px 0 0;padding:0;border:1px solid #c9d6ee;border-radius:14px;background:#fff;overflow:hidden}
.shortage-game:first-of-type{border-top:1px solid #c9d6ee}
.shortage-game .shortage-head{padding:10px 14px;background:var(--brand-tint);border-bottom:1px solid #c9d6ee}
.shortage-no{flex:none;min-width:38px;padding:2px 8px;border-radius:999px;background:var(--brand-vivid);color:#fff;font-size:13px;font-weight:800;text-align:center}
.shortage-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px 14px 14px}
.shortage-items .readiness-item{min-width:0;padding:10px 12px;border:1px solid #e1e7f2;border-radius:12px;background:#f8faff}
.shortage-items .readiness-item:first-of-type{border-top:1px solid #e1e7f2}
.shortage-items .is-opponent{grid-column:1/-1}
.shortage-items:not(:has(.is-people)) .is-umpire,.shortage-items:not(:has(.is-umpire)) .is-people{grid-column:1/-1}
@media(max-width:700px){.shortage-items{grid-template-columns:1fr}}
/* 2026-10-12 No orange focus ring on links and buttons (portal.css / mockup.css drew #cd784b / #ffce65 lines around e.g. the team name after a tap). Fields keep their blue focus ring. */
a:focus-visible,button:focus-visible,summary:focus-visible,.m-side a:focus-visible,.m-side summary:focus-visible{outline:none}
.rating-toggle:has(input:focus-visible){outline-color:var(--brand-soft)}
/* Home NEXT GAME: the following games keep the title on one line; the answer tag, lineup tag and 詳細 wrap to a second line on a phone. */
@media(max-width:700px){
  .next-more-row{gap:8px 10px}
  .next-more-row>div:first-of-type{flex:1 1 calc(100% - 56px)}
  .next-more-row>.button{margin-left:auto}
}
/* Schedule detail attendance: the 「アカウントなし」 and other badges go under the name on a phone. */
@media(max-width:700px){.attendance-who strong:has(+ .attendance-badges:not(:empty)){flex:0 0 100%}}
/* Attendance rows with the ○△× buttons: the buttons always stay to the right of the name block (never wrap under it), the name and badges wrap inside their own column. */
@media(max-width:700px){
  .attendance-line:has(.proxy-buttons){flex-wrap:nowrap;align-items:flex-start}
  .attendance-line:has(.proxy-buttons) .attendance-who{flex:1 1 0;min-width:0}
  .attendance-line:has(.proxy-buttons) .proxy-buttons{flex:none;margin-left:0}
}
/* ○△×のボタンの列はそのまま右に置き、長い一言（コメント）は名前の行の下で、行の全幅を使って1行に流す（2026-11-02） */
@media(max-width:700px){
  .attendance-line:has(.proxy-buttons){display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;row-gap:4px;align-items:start}
  .attendance-line:has(.proxy-buttons) .attendance-who{display:contents}
  .attendance-line:has(.proxy-buttons) .attendance-who>strong{grid-column:1;grid-row:1;flex:none}
  .attendance-line:has(.proxy-buttons) .attendance-badges{grid-column:1;grid-row:2}
  .attendance-line:has(.proxy-buttons) .proxy-buttons{grid-column:2;grid-row:1/span 2;margin-left:0}
  .attendance-line:has(.proxy-buttons) .attendance-note{grid-column:1/-1;grid-row:3;flex-basis:auto}
}
/* 赤系の使い分け（2026-10-12）：取り消し・中止・不足など注意が必要なもの */
.text-link.danger-text,.text-button.danger-text{color:#b23a48}.text-link.danger-text:hover,.text-button.danger-text:hover{color:#962f3b}
.event-canceled{background:#fdebee;color:#d6334a}
.match-facts .match-canceled,.m-panel p.event-canceled-notice,.event-canceled-notice{color:#b5253b}
.shortage-line.is-short{color:#d6334a;font-weight:700}
/* 募集リストのバッジ・情報行の統一（2026-10-12）：種類=色つき1つ／条件=灰色の枠チップ／状態=右端に1つ（締切間近は赤・終了は灰色） */
.post-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0}
.post-tags .type-tag,.post-tags .cond-chip,.post-tags .state-chip{box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;height:24px;margin:0;padding:0 9px;border-radius:4px;font-size:12px;font-weight:700;line-height:1;white-space:nowrap}
.post-tags .cond-chip{background:#fff;border:1px solid #cfd8ea;color:#5d6b82}
.post-tags .state-chip{margin-left:auto}
.post-tags .state-chip.soon{background:#fdebee;color:#d6334a}
.post-tags .state-chip.ended{background:#edf0f4;color:#5d6b82}
.post-info{display:flex;flex-wrap:wrap;margin:6px 0 0;font-size:12px;line-height:1.7;color:#7486a6}
.post-info>span+span:before{content:"・";margin:0 6px;color:#b4bfd3}
.recruit-table td.search-subject .search-detail{display:block}
.recruit-table td.search-subject .post-info{margin-top:2px}
@media(max-width:700px){.post-info .info-edited{display:none}}
/* 募集詳細：募集者を募集パネルの題名の下に1行で／コメント欄の案内は小さい1行（2026-10-12） */
.post-author{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:8px 0 14px}
.post-author .author-rating{margin:0}
.comment-panel .comment-lead{margin:2px 0 14px;font-size:13px;line-height:1.7;color:#7486a6}
.comment-panel .m-field>small{display:block;margin-top:4px;font-size:12px;color:#7486a6;font-weight:400}
/* 一覧（/・/search）は太字を使わない（2026-10-12）。題名の太字はプロプランの投稿者が指定した募集だけ（.title-bold） */
.post-card :is(h3,h3 a,.post-date strong,.post-date span,.post-when,.post-where,.fee strong,.organizer,.more-open,.more-close,.button.post-open),
.day-row :is(h4,h4 a,.day-time,.post-where,.fee strong,.organizer),
.recruit-table :is(td strong,.search-detail,.search-fee strong,.deadline-countdown,.deadline-countdown b,.deadline-countdown span,.search-author){font-weight:400}
:is(.post-card,.day-row,.recruit-table) :is(.type-tag,.cond-chip,.state-chip){font-weight:500}
.day-heading strong,.day-heading span{font-weight:600}
.post-card h3 a.title-bold,.day-row h4 a.title-bold,.recruit-table a.search-detail.title-bold{font-weight:700}
.title-bold-choice.locked{opacity:.7}
.post-card .rating-preview strong,.post-card .rating-label{font-weight:500}
/* チーム向けの印刷用案内(/flyer/team, A4 両面)。絵を主役に、文字は短く。1枚目=はじめてのチーム、2枚目=ほかのサービスを使っているチーム。基本の見た目は審判の案内(.flyer)と同じ。 */
.team-flyer-page .flyer-sheet+.flyer-sheet{margin-top:24px}
.tf-maker{margin:0 0 14px;font-size:17px}
.tf-title{margin:0 0 10px;font-size:20px;color:#5a6b8c}.tf-title-brand{color:var(--brand-vivid)}
.tf-pains{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.tf-pains li{text-align:center;font-weight:800;font-size:15px;color:#4a5878}.tf-pains svg{display:block;width:100%;height:auto;margin-bottom:6px}
.tf-arrow{margin:6px 0;text-align:center;color:var(--brand-vivid)}.tf-arrow svg{width:36px;height:22px}
.tf-cards{list-style:none;margin:0 0 14px;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.tf-cards li{border:1px solid #d5e2fb;border-radius:14px;padding:8px 8px 12px;background:#fff;text-align:center}
.tf-cards svg{display:block;width:100%;height:auto;border-radius:10px;margin-bottom:8px}
.tf-cards b{display:block;font-size:17px;line-height:1.4;color:#193968}.tf-cards span{display:block;margin-top:3px;font-size:13px;line-height:1.5;color:#5c6f93}
.tf-cards-one{grid-template-columns:1fr}.tf-cards-one li{display:grid;grid-template-columns:200px 1fr;gap:0 16px;align-items:center;text-align:left;padding:8px 16px 8px 8px}.tf-cards-one svg{grid-row:1/3;margin:0}
.flyer-trust{justify-content:center}
.tf-start{align-items:flex-start}
.tf-steps{flex:1;min-width:0}.tf-steps h2{margin:0 0 8px}
.tf-steps ol{list-style:none;margin:0 0 8px;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tf-steps li{text-align:center;font-weight:800;font-size:14px;line-height:1.4;color:#193968}.tf-steps svg{display:block;width:100%;height:auto;aspect-ratio:4/3;margin-bottom:4px}
.tf-steps i{display:inline-grid;place-items:center;width:20px;height:20px;margin-right:4px;border-radius:50%;background:var(--brand-vivid);color:#fff;font-style:normal;font-size:12px}
.tf-steps .flyer-url{font-size:16px}
@media(max-width:700px){.tf-pains{grid-template-columns:1fr 1fr}.tf-cards{grid-template-columns:1fr}.tf-cards-one li{grid-template-columns:1fr}.tf-cards-one svg{grid-row:auto}.tf-steps ol{grid-template-columns:1fr}}
@media print{.team-flyer-page .flyer-sheet{break-after:page;page-break-after:always}.team-flyer-page .flyer-sheet:last-of-type{break-after:auto;page-break-after:auto}.team-flyer-page .flyer-sheet+.flyer-sheet{margin-top:0}
.team-flyer-page .flyer-head h1{font-size:28px}.team-flyer-page .flyer-head h1 span{font-size:22px}.tf-maker{margin-bottom:8px;font-size:15px}.tf-title{font-size:18px;margin-bottom:6px}.tf-pains li{font-size:14px}.tf-cards{margin-bottom:10px}.tf-cards b{font-size:16px}.team-flyer-page .flyer-trust{margin-bottom:10px}.team-flyer-page .flyer-trust li{font-size:15px;padding:6px 14px}.tf-start .flyer-qr img{width:150px;height:150px}.tf-steps li{font-size:13px}.tf-steps .flyer-url{font-size:15px}}
.flyer-trust{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.flyer-trust li{padding:8px 16px;border-radius:999px;background:var(--brand-vivid);color:#fff;font-weight:750;font-size:16px}
.tf-steps svg{border-radius:10px}
@media print{.tf-arrow{margin:2px 0}.tf-arrow svg{height:16px}.tf-cards li{padding:6px 6px 8px}.tf-pains svg{margin-bottom:3px}.tf-cards svg{margin-bottom:5px}.tf-start{padding:12px 16px;margin-bottom:8px}.team-flyer-page .flyer-head{margin-bottom:0}.team-flyer-page .flyer-logo{width:130px;height:auto}.team-flyer-page .flyer-kicker{margin-top:6px}.team-flyer-page .flyer-head h1{margin:4px 0 6px}}
.team-flyer-page .flyer-logo{margin-bottom:12px}
@media print{.team-flyer-page .flyer-sheet{padding-top:8mm}.team-flyer-page .flyer-logo{margin-bottom:14px}.team-flyer-page .flyer-kicker{margin-top:0}}
/* School の印刷用案内(/flyer/school, A4 両面)。やわらかい School の色（#335ac0）で、team-flyer の部品(.tf-*)を再利用する。 */
.school-flyer-page{--brand-vivid:#335ac0}
.school-flyer-page .flyer h1{color:#17335c}.school-flyer-page .flyer h1 span{color:#335ac0}
.sf-hero{display:grid;grid-template-columns:1fr 300px;gap:18px;align-items:center;margin:0 0 16px;padding:18px 22px;border-radius:22px;background:linear-gradient(135deg,#fff 0,#eaf1ff 100%)}
.sf-hero h1{margin:0 0 10px;font-size:32px;line-height:1.45}.sf-hero h1 span{display:inline;font-size:32px}
.sf-hero img{display:block;width:100%;height:auto;border-radius:18px}
.sf-lead{margin:0;font-size:19px;line-height:1.7;font-weight:700;color:#3b4f6e}
.sf-art{display:block;width:100%;height:auto;border-radius:10px;margin-bottom:8px}
.tf-cards img{display:block;width:100%;height:auto;border-radius:10px;margin-bottom:8px}
.sf-cards4{grid-template-columns:repeat(4,1fr);gap:10px}.sf-cards4 b{font-size:16px}.sf-cards4 span{font-size:12.5px}
.sf-no{display:inline-grid;place-items:center;width:22px;height:22px;margin-right:6px;border-radius:50%;background:#335ac0;color:#fff;font-style:normal;font-size:13px;vertical-align:1px}
.sf-safe{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:center;margin:0 0 14px;padding:10px 16px;border-radius:16px;background:#f5f8ff;border:1px solid #d5e2fb}
.sf-safe img{display:block;width:100%;height:auto}.sf-safe b{display:block;font-size:18px;color:#17335c;margin-bottom:2px}.sf-safe p{margin:0;font-size:14px;line-height:1.6;color:#53657d}
.sf-start-text{flex:1;min-width:0}.sf-start-text h2{margin:0 0 6px;font-size:22px;color:#17335c}.sf-start-text p{margin:0 0 8px;font-size:16px;line-height:1.7}
@media(max-width:700px){.sf-hero{grid-template-columns:1fr}.sf-cards4{grid-template-columns:1fr 1fr}.sf-safe{grid-template-columns:1fr}}
@media print{.sf-hero{padding:12px 18px;margin-bottom:10px}.sf-hero h1,.sf-hero h1 span{font-size:28px}.sf-lead{font-size:17px}.school-flyer-page .tf-cards{margin-bottom:10px}.sf-safe{margin-bottom:10px;padding:8px 14px}.sf-safe img{width:120px}.sf-safe{grid-template-columns:120px 1fr}}
@media print{.school-flyer-page .tf-cards img,.school-flyer-page .tf-cards .sf-art{height:136px;object-fit:cover}.school-flyer-page .flyer-foot p{font-size:12px}.school-flyer-page .tf-cards li{padding:5px 5px 7px}.school-flyer-page .tf-title{margin:0 0 6px}.school-flyer-page .tf-start{padding:10px 16px}.school-flyer-page .flyer-start{margin-bottom:6px}}
/* machi9 live の印刷用案内(/flyer/live, A4 両面)。team-flyer・school-flyer の部品(.tf-*・.sf-*)を再利用する。 */
.live-flyer-page .sf-hero{grid-template-columns:1fr 310px}.live-flyer-page .sf-hero h1,.live-flyer-page .sf-hero h1 span{font-size:30px}.live-flyer-page .sf-lead{font-size:16px;font-weight:600}
.live-flyer-page .sf-hero svg{display:block;width:100%;height:auto}
.live-flyer-page .tf-cards span{font-size:12.5px}
.lf-flow{display:block;width:100%;height:auto;margin:0 0 14px;border-radius:16px}
.lf-phrase{display:inline-flex;align-items:center;gap:12px;margin:0 0 8px;padding:8px 18px;border-radius:12px;border:2px dashed var(--brand-vivid);background:#f5f8ff}
.lf-phrase span{font-size:14px;font-weight:800;color:#53657d}.lf-phrase strong{font-size:28px;letter-spacing:2px;color:#173ac5;font-family:Consolas,"Courier New",monospace}
.lf-trust li{font-size:14px;padding:6px 14px}
@media print{.live-flyer-page .tf-cards .sf-art{height:132px}.live-flyer-page .lf-flow{margin-bottom:10px}.live-flyer-page .sf-hero{padding:12px 18px;margin-bottom:10px}.live-flyer-page .sf-hero h1,.live-flyer-page .sf-hero h1 span{font-size:27px}.live-flyer-page .tf-title{margin:0 0 6px}.live-flyer-page .tf-cards{margin-bottom:10px}.live-flyer-page .tf-cards li{padding:5px 5px 7px}.live-flyer-page .flyer-start{margin-bottom:6px}.live-flyer-page .tf-start{padding:10px 16px}.live-flyer-page .flyer-foot p{font-size:12px}}
.lf-phrase{flex-wrap:wrap}
@media(max-width:700px){.lf-phrase strong{font-size:22px}.lf-flow{min-width:0}}
@media print{.live-flyer-page .tf-cards .sf-art{height:112px}.live-flyer-page .flyer-head h1{font-size:26px}.live-flyer-page .lf-phrase{padding:5px 14px;margin-bottom:4px}.live-flyer-page .lf-phrase strong{font-size:24px}.live-flyer-page .sf-start-text h2{font-size:19px;margin-bottom:3px}.live-flyer-page .sf-start-text p{margin-bottom:4px;font-size:14px}.live-flyer-page .tf-start .flyer-qr img{width:130px;height:130px}.live-flyer-page .flyer-trust{margin-bottom:8px}.live-flyer-page .sf-hero{margin-bottom:8px}.live-flyer-page .tf-cards b{font-size:15px}}
@media(max-width:700px){.live-flyer-page .sf-hero{grid-template-columns:1fr}}

/* レーティングに反映される試合の印（赤い系統。使ってよい場所は AGENTS.md の色の例外に記載） */
.rating-badge{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border:1px solid #d6334a;border-radius:6px;background:#fdebee;color:#d6334a;font-size:12px;font-weight:700;line-height:1.7;white-space:nowrap}
.rating-badge .ui-icon{width:13px;height:13px;flex:none}
.official-badge{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border:1px solid #6b3fb3;border-radius:6px;background:#f2ebfb;color:#6b3fb3;font-size:12px;font-weight:700;line-height:1.7;white-space:nowrap}
.official-badge .ui-icon{width:13px;height:13px;flex:none}
.scoreboard-head .official-badge{margin-left:auto;background:#fff}.scoreboard-head .official-badge+.rating-badge{margin-left:6px}
.next-more-row .official-badge{margin:2px 0}
.calendar-official{flex:none;display:inline-flex;align-items:center;color:#6b3fb3}.calendar-official .ui-icon{width:12px;height:12px}
[data-rating-info]{cursor:help}
.rating-bubble{position:absolute;z-index:60;max-width:min(300px,calc(100vw - 24px));padding:12px 14px;border-radius:10px;background:#17335c;color:#fff;font-size:13px;line-height:1.6;box-shadow:0 8px 24px rgba(8,20,50,.28)}
.rating-bubble::before{content:"";position:absolute;top:-6px;left:var(--arrow,24px);width:12px;height:12px;background:#17335c;transform:rotate(45deg)}
.rating-bubble strong{display:block;margin-bottom:2px;font-size:13px}
.scoreboard-head .rating-badge{margin-left:auto;background:#fff}
.calendar-rated{flex:none;display:inline-flex;align-items:center;color:#d6334a}
.calendar-rated .ui-icon{width:12px;height:12px}
.next-more-row .rating-badge{margin:2px 0}

/* PC: 予定カードの右の空きに、対戦相手（と結果）を寄せる。スマホは今まで通り下に並べる。 */
@media(min-width:701px){
.event-card{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:20px;align-items:start}
.event-card>*{grid-column:1/-1}
.event-card>.near-post{grid-column:1;grid-row:1}
.event-card>.event-game{grid-column:2;grid-row:1;flex-direction:column;flex-wrap:nowrap;align-items:flex-end;justify-content:flex-start;gap:8px;margin:0}
.event-card>.event-game .event-opp{max-width:300px}
.event-card>.event-game .event-opp-name strong{max-width:220px}
/* 対戦相手のロゴは右端に固定し、名前はその左に右寄せする。名前の長さでロゴの位置がずれない。 */
.event-card>.event-game .event-opp{flex-direction:row-reverse}
.event-card>.event-game .event-opp-name{align-items:flex-end;text-align:right}
}

/* 審判向けの印刷用案内（/flyer/umpire, A4 両面）。team-flyer の部品(.tf-*)を再利用し、正直な一言（.uf-note）だけ足す。 */
.uf-note{margin:0 0 12px;padding:10px 14px;border-left:5px solid var(--brand-vivid);border-radius:8px;background:var(--brand-tint2);font-size:15px;line-height:1.7;color:#193968}
@media print{.uf-note{margin-bottom:8px;padding:7px 12px;font-size:13.5px;line-height:1.6}.umpire-flyer2-page .tf-cards span{font-size:12px}.umpire-flyer2-page .flyer-foot p{font-size:11.5px;line-height:1.55}}

/* チームプラン申し込み: 機能カード（イラスト・説明・無料との違い） */
.plan-cards{list-style:none;margin:0 0 14px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.plan-card{display:flex;flex-direction:column;gap:8px;padding:12px;background:#fff;border:1px solid #d5e2fb;border-radius:12px}
.plan-card figure{margin:0;padding:6px;background:var(--brand-tint3);border-radius:10px}
.plan-art{display:block;width:100%;max-width:220px;height:auto;margin:0 auto}
.plan-card h3{margin:0;font-size:16px;color:#193968}
.plan-card p{margin:0;font-size:14px;line-height:1.7;color:#3d4c63}
.plan-card small{margin-top:auto;padding:6px 10px;border-radius:8px;background:var(--brand-tint3);font-size:13px;font-weight:700;line-height:1.5;color:var(--brand-vivid)}

/* レーティング試合の異議申し立て（試合結果・マイページ「異議の確認」） */
.ra-danger{fill:#d6334a}
.rating-reason{display:flex;flex-wrap:wrap;gap:4px 10px;margin:8px 0;padding:10px 12px;border-radius:8px;background:var(--brand-tint3);color:#3d4c63;font-size:14px;line-height:1.7}
.rating-reason strong{color:#193968}
small.rating-reason{display:block;flex:1 1 100%;margin:0;padding:6px 10px;font-size:13px}
.rating-history{margin:8px 0;padding:10px 12px;border-radius:8px;background:var(--brand-tint3);color:#3d4c63;font-size:14px;line-height:1.7}
.rating-history h3{margin:0 0 4px;font-size:14px;color:#193968}
.rating-history ol{margin:0;padding:0;list-style:none}
.rating-history li{display:flex;flex-wrap:wrap;gap:2px 10px}
.rating-history .rh-when{color:#5f6f86;font-variant-numeric:tabular-nums}
.rating-history .rh-who{font-weight:700;color:#193968}
.rating-history .rh-note{flex:1 1 100%;padding-left:8px;border-left:3px solid #c9d6f2;color:#3d4c63}
.rating-reason-input{flex:1 1 180px;min-width:0;min-height:36px;padding:0 10px;border:1px solid #cbd6e6;border-radius:8px;background:#fff;font:inherit;font-size:14px}
.rating-confirm-list form:has(.rating-reason-input){display:flex;flex-wrap:wrap;gap:8px;flex:1 1 280px}
.rating-objection textarea{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #cbd6e6;border-radius:8px;font:inherit;resize:vertical}
.flow-guide{margin-top:12px;border-top:1px solid #dbe4f5;padding-top:10px}
.flow-guide summary{display:flex;align-items:center;gap:6px;cursor:pointer;list-style:none;font-weight:700;color:var(--brand)}
.flow-guide summary::-webkit-details-marker{display:none}
.flow-guide summary .ui-icon{width:18px;height:18px;flex:none}
.flow-guide summary>span{display:inline-flex;align-items:center;gap:6px}
.flow-guide[open] .flow-closed,.flow-guide:not([open]) .flow-open{display:none}
.flow-steps{list-style:none;margin:12px 0 8px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.flow-steps li{position:relative;display:flex;flex-direction:column;gap:6px;padding:12px;background:#fff;border:1px solid #d5e2fb;border-radius:12px}
.flow-steps figure{margin:0;padding:6px;background:var(--brand-tint3);border-radius:10px}
.flow-art{display:block;width:100%;max-width:220px;height:auto;margin:0 auto}
.flow-steps h3{margin:0;font-size:15px;color:#193968}.flow-steps p{margin:0;font-size:13.5px;line-height:1.7;color:#3d4c63}
.flow-no{position:absolute;top:8px;left:8px;z-index:1;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--brand-vivid);color:#fff;font-size:13px;font-weight:800}
.flow-hide{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:14px;color:#3d4c63;cursor:pointer}
.flow-hide input{width:18px;height:18px}

/* ハートは赤で統一（2026-10-13 ユーザー指示）：押していないハートも赤い線、押したら赤で塗りつぶし */
.save-button,.fav-heart,.save-toggle .ui-icon{color:#d6334a}
.fav-heart{border-color:#f0c2ca}

/* 募集内容の定型文（押すと本文に追加）。ボタンは角8pxの四角（丸いチップにしない） */
.phrase-box{margin-top:-6px}.phrase-box-mine{margin-top:0}.body-field{margin-bottom:6px}.body-field>.input-limit{margin-top:0}.body-field>small:not(.input-limit){margin-top:-4px}.phrase-lead{display:flex;align-items:center;gap:6px;font-size:13px;color:#5d6b86}.phrase-lead .ui-icon{width:16px;height:16px}
.phrase-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.phrase-chip{border:1px solid #c9d6f2;border-radius:8px;background:#fff;color:var(--brand);padding:6px 10px;font-size:13px;line-height:1.4;cursor:pointer;text-align:left}
.phrase-chip:hover{background:#eef2fb}.phrase-chip[hidden]{display:none}

/* マイ定型文（会員）：押すと本文に追加、×で削除、下に追加の入力（入力欄と同じ角8pxのボタン） */
.my-phrases{margin-top:12px}.my-phrases>summary{cursor:pointer;list-style:none;padding:4px 0}.my-phrases>summary::-webkit-details-marker{display:none}.my-phrases>summary .ui-icon:last-child{margin-left:auto;transition:transform .15s}.my-phrases[open]>summary .ui-icon:last-child{transform:rotate(90deg)}.my-phrase{display:inline-flex;align-items:stretch}.my-phrase .phrase-chip{border-radius:8px 0 0 8px;border-right:0}
.my-phrase-delete{border:1px solid #c9d6f2;border-radius:0 8px 8px 0;background:#fff;color:#5d6b86;padding:0 9px;font-size:15px;cursor:pointer}
.my-phrase-delete:hover{color:#d6334a}
.my-phrase[hidden]{display:none}.my-phrase-common{margin-top:6px}.my-phrase-scope{display:block;margin-top:4px;color:#5d6b86}
.my-phrase-add{display:flex;gap:8px;margin-top:8px}.my-phrase-add input{flex:1;min-width:0}.my-phrase-add .button{border-radius:8px;white-space:nowrap}
.my-phrase-guest{margin:8px 0 0;font-size:13px;color:#5d6b86}
/* School アプリの案内（school/fragments :: appGuide） */
.school-app-guide{margin:0 0 32px}
.school-app-guide-body{display:grid;grid-template-columns:minmax(0,240px) 1fr;gap:18px;align-items:center;margin:0 0 10px}
.school-app-guide-body img{display:block;width:100%;height:auto;border-radius:16px}
.school-app-points{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.school-app-points li{display:flex;gap:8px;align-items:flex-start;font-size:16px;line-height:1.6;font-weight:600;color:#17335c}
.school-app-points .ui-icon{flex:none;width:20px;height:20px;margin-top:3px;color:var(--brand)}
.school-app-actions{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 6px}
.school-app-actions .button[hidden]{display:none}
.school-app-notice:empty{display:none}
@media (max-width:600px){.school-app-guide-body{grid-template-columns:1fr}.school-app-guide-body img{max-width:320px;margin:0 auto}.school-app-actions .button{flex:1 1 100%;justify-content:center}}
/* アプリの案内バナー(common/app-banner :: banner、本体トップ・School 紹介、スマホだけ app-banner.js が表示)。 */
.app-banner{display:flex;align-items:center;gap:12px;padding:10px 12px 10px 16px;background:#fff;border-bottom:1px solid #dfe6f3;box-shadow:0 2px 8px rgba(23,51,92,.06)}
.app-banner[hidden]{display:none}
.app-banner img{flex:none;box-sizing:border-box;width:48px;height:48px;border:1px solid #dfe6f3;border-radius:11px;box-shadow:0 1px 4px rgba(23,51,92,.18)}
.app-banner-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;line-height:1.4}
.app-banner-text strong{font-size:14px;color:#17335c}
.app-banner-text span{font-size:12px;color:#5d6b82}
.app-banner .app-banner-get{flex:none;min-height:36px;padding:6px 12px;border-radius:8px;font-size:13px;gap:6px;white-space:nowrap}
.app-banner-close{flex:none;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin:0 -6px 0 -4px;padding:0;border:0;border-radius:8px;background:none;color:#5d6b82;cursor:pointer}
.app-banner-close .ui-icon{width:18px;height:18px}

/* 名前の由来（/about）：文章と、街（マチ）とダイヤモンドの9人（ナイン）のイラスト */
.about-origin-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:32px;align-items:center}
.about-origin-copy p{margin:0 0 16px;font-size:16px;line-height:1.95;color:#2b3f63}
.about-origin-copy p:last-child{margin-bottom:0;font-weight:700;color:#193968}
.about-origin-copy strong{color:#335ac0;font-size:1.08em}
.about-origin-art .origin-art{display:block;width:100%;height:auto}
@media (max-width:760px){
 .about-origin-body{grid-template-columns:1fr;gap:20px}
 .about-origin-art{order:-1;max-width:360px;margin:0 auto}
 .about-origin-copy br{display:none}
}

/* マチナインショップの説明イラスト（shop/art.html）：/about・/switch・/shop・商品・購入完了・ホーム球場/ホームページ/スポンサーの設定 */
.shop-art{display:block;width:100%;height:auto}
.shop-hero-grid{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.shop-hero-grid a{display:flex;flex-direction:column;gap:8px;height:100%;padding:12px;border:1px solid #d6e0f2;border-radius:10px;background:#fff;color:#17335c}
.shop-hero-grid strong{font-size:16px}
.shop-hero-grid small{font-size:13px;line-height:1.6;color:#4d6286}
.shop-where-body{display:grid;grid-template-columns:minmax(0,280px) minmax(0,1fr);gap:20px;align-items:center}
.shop-closed{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:24px;align-items:center}
.shop-promo{display:grid;grid-template-columns:minmax(0,200px) minmax(0,1fr);gap:20px;align-items:center}
.about-shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.about-shop-card{display:flex;flex-direction:column;gap:10px;padding:14px;border:1px solid #d6e0f2;border-radius:12px;background:#fff}
.about-shop-card h3{margin:4px 0 0;font-size:18px;color:#193968}
.about-shop-card p{margin:0;font-size:14px;line-height:1.8;color:#4d6286}
.about-shop-card .about-shop-plan{margin-top:auto;font-size:13px;font-weight:700;color:#335ac0}
.about-shop-link{margin:20px 0 0;text-align:center}
@media (max-width:760px){
 .shop-hero-grid,.about-shop-grid{grid-template-columns:1fr}
 .shop-where-body,.shop-promo,.shop-closed{grid-template-columns:1fr}
 .shop-where-body .shop-art,.shop-promo .shop-art,.shop-closed .shop-art{max-width:320px;margin:0 auto}
}

/* /about：ページ内の目次と、できること・記録に足した項目 */
.about-toc{display:flex;flex-wrap:wrap;gap:6px 4px;align-items:center;margin:20px 0 0;padding:0 0 12px}
.about-toc a{display:inline-flex;align-items:center;gap:6px;padding:6px 8px;font-weight:700;color:#193968}
.about-records-more{margin-top:16px}
@media (max-width:760px){
 .about-toc{flex-wrap:nowrap;overflow-x:auto;padding-bottom:8px;-webkit-overflow-scrolling:touch}
 .about-toc a,.about-toc .type-tab-divider{flex:none;white-space:nowrap}
}

/* /about：できることの3つの組、会員の要約、表の折りたたみ、帯の背景 */
.about-feature-group+.about-feature-group{margin-top:28px}
.about-group-title{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:19px;color:#193968}
.about-group-title .ui-icon{width:22px;height:22px;color:#335ac0}
.about-feature-group .about-features{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.about-feature-group .about-feature{padding:20px}
.about-feature-group .about-feature h3{font-size:16px}
.about-feature-group .about-feature p{font-size:14px;line-height:1.8}
.about-member-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:16px}
.about-member-card{padding:22px;border:1px solid #d8e2f6;border-radius:16px;background:#fff}
.about-member-card.member{border-color:#335ac0;box-shadow:0 0 0 1px #335ac0 inset}
.about-member-card h3{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:18px;color:#193968}
.about-member-card ul{margin:0;padding-left:20px;display:grid;gap:6px;font-size:15px;line-height:1.7;color:#3d4c63}
.about-details>summary{cursor:pointer;font-weight:700;color:#335ac0;padding:8px 0}
.about-details[open]>summary{margin-bottom:10px}
.about-band{background:#fff;border-radius:20px;padding-left:24px;padding-right:24px;padding-bottom:32px;margin-top:40px}
@media (max-width:1000px){
 .about-feature-group .about-features{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
 .about-feature-group .about-features,.about-member-summary{grid-template-columns:1fr}
 .about-band{padding-left:16px;padding-right:16px;border-radius:16px}
}


/* 公開ページ（/about・/switch）のボタンもボタン規格に合わせる（2026-10-14 ユーザー指示）：角8px・高さM 44px。丸いタブ状のリンク（hero-links の text-link）は対象外 */
body:not(.auth-page) :is(.about-cta-actions,.about-shop-link,.switch-csv-links,.switch-codes) .button{border-radius:8px;box-sizing:border-box;height:44px;min-height:44px;padding-top:0;padding-bottom:0;font-size:14px;gap:8px;line-height:1.5}

/* ボタン規格を、.m-shell の外にある公開ページ・認証画面（/ /search /umpire /join /login /signup /password …）にも広げる（2026-10-14 ユーザー指示）。
   角8px・高さM 44px・文字14px。School（school-registration）は大きいボタンのまま対象外。入力欄の隣のボタン（reg-search-row）は入力欄の高さに合わせる。 */
body:not(.school-registration) main .button:not(.m-shell .button):not(.icon-only):not(.reg-search-row .button){border-radius:8px;box-sizing:border-box;min-height:44px;padding-top:10px;padding-bottom:10px;font-size:14px;gap:8px;line-height:1.5}
/* 絞り込みの「絞り込む」ボタンはS（36px、スマホは40px） */
body:not(.school-registration) .filter-submit{border-radius:8px;box-sizing:border-box;height:36px;min-height:36px;padding-top:0;padding-bottom:0}
@media(max-width:700px){body:not(.school-registration) .filter-submit{height:40px;min-height:40px}}
/* 認証画面（auth-page）は .m-shell の中にあってもボタン規格の対象（ログイン・会員登録・パスワード再設定・チーム参加） */
body.auth-page main .button:not(.icon-only):not(.outline-strong):not(.reg-search-row .button){border-radius:8px;box-sizing:border-box;min-height:44px;padding-top:10px;padding-bottom:10px;font-size:14px;gap:8px;line-height:1.5}
/* 枠が2pxの「無料で会員登録」（outline-strong）は、枠の分だけ上下の余白を減らして44pxに */
body.auth-page main .button.outline-strong{border-radius:8px;box-sizing:border-box;min-height:44px;padding-top:9px;padding-bottom:9px;font-size:14px;gap:8px;line-height:1.5}
/* Login scene controls also live outside main. Use the same M/S button specification. */
.login-stage .login-skip.button,.login-stage .login-weather .button{border-radius:8px;box-sizing:border-box;min-height:36px;padding:6px 10px;font-size:13px;line-height:1.5;gap:6px}
.login-stage .login-collapse{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;min-height:40px;padding:0;border:0;border-radius:8px;background:none;cursor:pointer}
.login-stage .button.login-open{border-radius:8px;box-sizing:border-box;min-height:44px;padding:10px 16px;font-size:14px;line-height:1.5;gap:8px}
/* 年間アワード (/my/awards/**): gold and silver are allowed on these pages only (user decision 2026-10-17). The stage illustration, the MVP card,
   the award cards with a ribbon title, photos in a gold ring, the heart button and the first-visit confetti. */
.award-page{--award-gold:#d4a52c;--award-gold-deep:#a8791a;--award-gold-pale:#fff6dc;--award-silver:#c4ccd8}
.award-hero{overflow:hidden;border-radius:16px;margin-bottom:16px;background:#0f2547;color:#fff}
.award-hero .award-stage-art{display:block;width:100%;height:auto;aspect-ratio:1200/420;min-height:150px}
.award-hero-text{display:flex;flex-direction:column;align-items:center;padding:12px 16px 18px;text-align:center;border-top:3px solid #e2b23f;background:linear-gradient(180deg,#102a52,#17335c)}
.award-hero-kicker{margin:0;letter-spacing:.3em;font-size:13px;font-weight:700;color:#fbe39a}
.award-hero-title{margin:2px 0 0;font-size:44px;line-height:1.1;font-weight:800;color:#fff;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;justify-content:center}
.award-hero-title small{font-size:20px;font-weight:700;color:#fbe39a}
.award-hero-team{margin:6px 0 0;font-size:15px;font-weight:700}
.award-preview{display:flex;gap:8px;align-items:flex-start}
.award-quote{margin:0;padding:12px 16px;border-left:4px solid var(--award-gold);background:var(--award-gold-pale);border-radius:0 8px 8px 0;white-space:pre-wrap;line-height:1.8;color:#3d3420}
/* the ribbon title of an award */
.award-ribbon{display:inline-flex;align-items:center;gap:8px;margin:0;padding:6px 18px;font-size:17px;font-weight:800;color:#17335c;
  background:linear-gradient(135deg,#fbe39a,var(--award-gold) 55%,#f3cf6b);clip-path:polygon(0 0,100% 0,calc(100% - 10px) 50%,100% 100%,0 100%,10px 50%)}
.award-ribbon .ui-icon{width:18px;height:18px}
.award-note{margin:6px 0 0;color:#5d6b82;font-size:13px}
.award-mvp{position:relative;margin:0 0 16px;padding:22px 16px;border-radius:16px;text-align:center;border:3px solid var(--award-gold);
  background:radial-gradient(circle at 50% 0,#fff8e1,#fff 60%)}
.award-mvp .award-ribbon{font-size:22px;padding:8px 26px}
.award-mvp-winners{display:flex;flex-wrap:wrap;justify-content:center;gap:18px;margin-top:14px}
.award-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.award-card{display:flex;flex-direction:column;align-items:flex-start;padding:14px;border-radius:12px;border:1px solid #e6dcc0;background:linear-gradient(180deg,var(--award-gold-pale),#fff 70%);min-width:0}
/* the winners sit at the bottom of the card, so photos and names line up across a row whatever the length of the note */
.award-card-winners{display:flex;flex-direction:column;gap:12px;align-self:stretch;margin-top:auto;padding-top:12px}
.award-winner{display:flex;align-items:center;gap:12px;text-align:left;min-width:0}
.award-winner-big{flex-direction:column;text-align:center}
.award-photo{flex:none;display:inline-flex;width:64px;height:64px;border-radius:50%;padding:3px;background:linear-gradient(135deg,#fbe39a,var(--award-gold-deep))}
.award-photo img,.award-photo-empty{width:100%;height:100%;border-radius:50%;object-fit:cover;background:#eef3ff;display:inline-flex;align-items:center;justify-content:center;color:#7d8aa3}
.award-winner-big .award-photo{width:120px;height:120px;padding:5px}
.award-winner-text{display:flex;flex-direction:column;gap:4px;min-width:0}
.award-winner-big .award-winner-text{align-items:center}
.award-name{font-size:16px;overflow-wrap:anywhere}.award-winner-big .award-name{font-size:22px}
.award-name b{color:var(--award-gold-deep);margin-right:2px}
.award-detail{font-size:13px;color:#5d4a14;font-weight:700}
.award-heart{align-self:flex-start;background:#fff}
.award-winner-big .award-heart{align-self:center}
.award-heart .ui-icon{color:#d6334a}
.award-heart.is-popping .ui-icon{animation:award-pop .35s ease}
.award-heart-count{min-width:1.5em;text-align:right;color:#17335c}
.award-float{position:fixed;z-index:60;pointer-events:none;color:#d6334a;font-size:22px;animation:award-float 1s ease-out forwards}
@keyframes award-pop{50%{transform:scale(1.45)}}
@keyframes award-float{to{transform:translateY(-70px) scale(1.3);opacity:0}}
.award-mine .m-actions{flex-wrap:wrap}
.award-years{margin:12px 0}
/* the vote and the index */
.award-vote-intro{display:flex;gap:16px;align-items:center}
.award-small-art{flex:none;width:140px;height:auto}
.award-candidates{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin:8px 0 4px}
.award-candidate{display:flex;align-items:center;gap:12px;padding:12px;border:2px solid #dbe3f3;border-radius:12px;background:#fff;cursor:pointer;min-width:0}
.award-candidate:has(input:checked){border-color:var(--award-gold);background:var(--award-gold-pale)}
body .award-candidates .award-candidate input[type=radio]{flex:none;width:20px;height:20px;min-height:0;padding:0;margin:0;accent-color:#335ac0}
.award-candidate .award-photo{width:52px;height:52px}
.award-candidate-text{display:flex;flex-direction:column;gap:2px;min-width:0}.award-candidate-text strong{font-size:16px;overflow-wrap:anywhere}
.award-candidate-text small{color:#5d6b82;font-size:13px}
.award-year-list{display:grid;gap:8px}
.award-year{display:flex;align-items:center;gap:12px;padding:12px;border-radius:12px;border:1px solid #e6dcc0;background:var(--award-gold-pale);color:inherit}
.award-year span:last-child{display:flex;flex-direction:column;min-width:0}.award-year small{color:#5d6b82}
.award-year-cup{flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#fbe39a,var(--award-gold-deep));color:#fff}
.side-badge{margin-left:auto;padding:1px 8px;border-radius:999px;background:var(--brand);color:#fff;font-size:11px;font-weight:800;line-height:1.7}
/* first visit: confetti for a few seconds */
.award-confetti{position:fixed;inset:0;pointer-events:none;z-index:70;overflow:hidden}
.award-confetti i{position:absolute;top:-20px;width:10px;height:6px;border-radius:2px;animation:award-fall 3s linear forwards}
@keyframes award-fall{to{transform:translateY(110vh) rotate(720deg)}}
@media(prefers-reduced-motion:reduce){.award-confetti{display:none}.award-heart.is-popping .ui-icon,.award-float{animation:none}}
@media(max-width:600px){.award-hero-title{font-size:34px}.award-hero-title small{font-size:16px}
 .award-vote-intro{flex-direction:column;text-align:center}.award-small-art{width:120px}.award-grid,.award-candidates{grid-template-columns:minmax(0,1fr)}
 .award-mvp .award-ribbon{font-size:19px}}

/* School 使い方ガイド（/school/guide） */
.school-guide-hero{margin:0 0 40px}.school-guide-hero h1{margin:0 0 12px;font-size:34px;line-height:1.4;color:#17335c}
.school-guide-flow{display:block;width:100%;max-width:640px;height:auto;margin:20px auto}
.school-guide-roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none}
.school-guide-roles li{display:grid;grid-template-columns:auto 1fr;column-gap:10px;row-gap:2px;align-items:center;padding:14px 16px;border-radius:14px;background:#fff;border:1px solid #e0e8f3}
.school-guide-roles li svg{grid-row:1 / span 2;width:26px;height:26px}.school-guide-roles li b{font-size:18px;color:#17335c}.school-guide-roles li span{font-size:15px;line-height:1.6;color:#53657d}
.school-guide-roles .school-guide-role-record{border-left:6px solid #335ac0}.school-guide-roles .school-guide-role-view{border-left:6px solid #2f8f4e}
.school-guide-roles .school-guide-role-record svg{color:#335ac0}.school-guide-roles .school-guide-role-view svg{color:#2f8f4e}
.school-guide-steps{display:grid;gap:18px;margin:0;padding:0;list-style:none}
.school-guide-steps>li{position:relative;display:grid;grid-template-columns:240px 1fr;gap:20px;align-items:start;padding:18px;border-radius:18px;background:#fff;border:1px solid #e0e8f3}
.school-guide-steps>li>img{display:block;width:100%;height:auto}
.school-guide-steps h3{margin:0 0 6px;font-size:21px;line-height:1.5;color:#17335c}
.school-guide-steps p{margin:0 0 8px;font-size:16px;line-height:1.7;color:#53657d}
.school-guide-steps .school-guide-who{display:inline-block;padding:2px 10px;border-radius:8px;font-size:14px;font-weight:700;color:#17335c}
.school-guide-steps .school-guide-who.school-guide-role-record{background:#e3ebff}.school-guide-steps .school-guide-who.school-guide-role-view{background:#e0f2e6}
.school-guide-steps .school-guide-tip{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:10px;background:#edf3ff;color:#17335c;font-size:15px}
.school-guide-steps .school-guide-tip svg{flex:none;width:20px;height:20px;margin-top:3px;color:#335ac0}
.school-guide-store{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.school-guide-sample{margin-top:8px;padding:12px 14px;border-radius:12px;background:#f4f7fc;border:1px dashed #b8c7de}.school-guide-sample b{font-size:14px;color:#17335c}.school-guide-sample p{margin:4px 0 0;font-size:15px;color:#17335c}
.school-top-guide-link{margin:18px 0 0;text-align:center;font-size:17px}
@media(max-width:820px){.school-guide-steps>li{grid-template-columns:1fr}.school-guide-steps>li>img{max-width:320px;margin:0 auto}.school-guide-roles{grid-template-columns:1fr}.school-guide-hero h1{font-size:27px}}

/* 地域連携 (team home) */
.regional-news .regional-sub{margin:18px 0 6px;font-size:15px}
.regional-list{list-style:none;margin:0;padding:0}
.regional-list li{display:flex;gap:10px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--line,#dfe5f0)}
.regional-date{flex:0 0 auto;min-width:84px;font-weight:700}
.regional-body{flex:1;min-width:0;overflow-wrap:anywhere}
.regional-tier{flex:0 0 auto;color:#5b6b86}
.regional-interview{display:block;margin-top:4px;color:#5b6b86;font-size:13px}
.regional-people small{display:block;margin-top:2px;color:#5b6b86}
.regional-off{margin-top:16px}
@media (max-width:600px){.regional-list li{flex-wrap:wrap}.regional-date{min-width:0}}
.regional-summary{display:flex;flex-wrap:wrap;gap:6px 14px;margin:8px 0;font-weight:700}
.regional-umpire{color:#5b6b86}

/* 新規登録: 選手の2分類（/signup は4カード、無所属の説明 /signup/free） */
.s-signup-options{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:760px){.s-signup-options{grid-template-columns:1fr}}
.reg-notfound .button{flex:none}
.free-hero{display:flex;align-items:center;gap:20px;margin:0 0 24px;padding:20px 24px;border:1px solid #ccdafe;border-radius:16px;background:var(--brand-tint2)}
.free-hero h2{margin:0 0 6px;font-size:18px;color:var(--brand-deep)}.free-hero p{margin:0;font-size:14px;line-height:1.8;color:#3d4c63}
.free-hero>div{flex:1;min-width:0}.free-hero-art{flex:none;line-height:0}
.free-list{list-style:none;margin:0 0 24px;padding:0;display:grid;gap:12px}
.free-list li{display:flex;align-items:center;gap:18px;padding:14px 18px;border:1px solid #d4e0f5;border-radius:14px;background:#fff}
.free-art{flex:none;line-height:0}.free-list h3{margin:0 0 4px;font-size:16px;color:var(--brand-deep)}.free-list p{margin:0;font-size:14px;line-height:1.8;color:#3d4c63}
.free-list li>div{flex:1;min-width:0}.free-actions{margin:0 0 16px}
@media(max-width:760px){.free-hero{flex-direction:column;align-items:flex-start;padding:18px}.free-list li{flex-direction:column;align-items:flex-start}.free-actions .button{width:100%;justify-content:center}}

/* 審判向けの検索(/search?type=umpire)と、審判ホームの「はじめの3つ」 */
.umpire-kind{grid-column:1/-1;border:0;padding:0;margin:0;min-width:0}.umpire-kind .inline-link{display:inline-block;margin-top:8px;font-size:13px}
.umpire-area-note{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 0 0;font-size:14px;color:#264676}.umpire-area-note .ui-icon{flex:none;width:18px;height:18px;color:var(--brand-vivid)}
.umpire-hero .button+.button{margin-left:8px}@media(max-width:600px){.umpire-hero .button+.button{margin-left:0}}
.umpire-start-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.umpire-start-list li{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid #ccdafe;border-radius:12px;background:var(--brand-tint2)}
.umpire-start-list li.done{background:#fff;border-color:#d6e0f2}
.umpire-start-list li>div{flex:1;min-width:0}.umpire-start-list strong{display:block;color:var(--brand-deep)}.umpire-start-list p{margin:4px 0 0;font-size:14px;line-height:1.7}
.umpire-start-mark{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--brand);color:#fff}.umpire-start-list li.done .umpire-start-mark{background:#dbe7ff;color:var(--brand-deep)}.umpire-start-mark .ui-icon{width:22px;height:22px}
@media(max-width:700px){.umpire-start-list li{flex-wrap:wrap}.umpire-start-list li .button{width:100%;justify-content:center}}
/* 応募への移動ボタン(スマホだけ)と、審判の依頼が届くしくみ */
.apply-jump{display:none;margin:12px 0 0}
@media(max-width:760px){.apply-jump{display:block}.apply-jump .button{width:100%;justify-content:center}}
.umpire-how{margin:0 0 16px;padding:14px 16px;border:1px solid #ccdafe;border-radius:12px;background:var(--brand-tint2)}
.umpire-how h3{margin:0 0 8px;font-size:15px;color:var(--brand-deep)}.umpire-how ol{margin:0;padding-left:1.4em;display:grid;gap:6px;font-size:14px;line-height:1.7}
/* 審判依頼の項目(必要な審判・人数・交通費・試合の種類)と、一覧の一行まとめ */
.umpire-facts{display:inline-flex;flex-wrap:wrap;gap:0 4px;font-weight:700;color:var(--brand-deep)}
.umpire-facts>span+span::before{content:"·";margin-right:4px;font-weight:400;color:#8aa0c8}
.guest-note{margin-left:6px;font-size:12px;color:#5a6b86}
.near-fee{display:block}
/* 個人情報(審判): 「審判の設定・プロフィール・アカウント」の見出し */
.profile-group-title{display:flex;align-items:center;gap:10px;margin:28px 0 4px;font-size:20px;color:var(--brand-deep)}
.profile-group-title:first-of-type{margin-top:8px}
.profile-group-title .panel-title-icon{flex:none}
.profile-group-help{margin:0 0 12px}
@media(min-width:761px){.design-atlas .type-tabs.type-tabs-inline.profile-jump{flex-wrap:wrap;overflow-x:visible;row-gap:8px}}

/* みんなのグラウンド(/grounds, server/docs/grounds.md) */
.grounds-hero{display:flex;align-items:center;gap:24px}.grounds-hero-text{flex:1;min-width:0}.grounds-art{flex:none;width:min(360px,42%);height:auto}
.grounds-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 0}
.grounds-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.grounds-steps li{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid #ccdafe;border-radius:12px;background:var(--brand-tint2)}
.grounds-steps .grounds-step-art{flex:none;width:72px;height:54px}.grounds-steps strong{display:block;color:var(--brand-deep)}.grounds-steps p{margin:4px 0 0;font-size:14px;line-height:1.7}
.grounds-total{margin-left:6px;font-size:14px;font-weight:400;color:#5d6b82}
.grounds-search-actions,.grounds-paging{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 0}.grounds-paging{justify-content:center;margin-top:16px}
.g-list{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.g-card-link{display:flex;flex-direction:column;gap:6px;height:100%;box-sizing:border-box;padding:14px 16px;border:1px solid #d6e0f2;border-radius:12px;background:#fff;color:inherit}
.g-card-link:hover{border-color:var(--brand-vivid);background:var(--brand-tint2)}
.g-card-name{font-size:16px;color:var(--brand-deep);overflow-wrap:anywhere}.g-card-area,.g-card-rating{display:flex;align-items:center;gap:6px;font-size:14px;color:#3a4d70}
.g-card-area .ui-icon{flex:none;width:16px;height:16px}.g-card-rating small{color:#5d6b82}.g-card-near{font-size:13px;font-weight:700;color:var(--brand-deep)}
.g-card-tags,.g-tags{display:flex;flex-wrap:wrap;gap:6px}.g-tag{display:inline-block;padding:2px 10px;border-radius:12px;background:#e6eeff;color:var(--brand-deep);font-size:12px;font-weight:700}
.g-card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:4px}.g-card-foot small{color:#5d6b82}
.g-meter,.g-complete meter{flex:none;width:90px;height:8px}
.g-stars{display:inline-flex;gap:1px}.g-star{width:16px;height:16px;color:#c9d3e6;fill:#e6ecf8}.g-star.on{color:var(--star-edge);fill:var(--star)}
.g-summary-rating{display:flex;align-items:center;gap:8px}.g-summary-rating .g-star{width:22px;height:22px}.g-summary-rating strong{font-size:26px;color:var(--brand-deep)}.g-summary-rating small{color:#5d6b82}
.g-facts{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:6px;font-size:14px}.g-facts li{display:flex;align-items:center;gap:8px}.g-facts .ui-icon{flex:none;width:18px;height:18px;color:var(--brand)}
.g-complete{display:flex;align-items:center;gap:10px;margin:12px 0 0;font-size:14px}.g-complete meter{width:140px}
.g-summary-actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 0}
.g-info{margin:0;display:grid;gap:0}.g-info>div{display:grid;grid-template-columns:200px minmax(0,1fr);gap:12px;padding:12px 0;border-top:1px solid #e3eaf8}.g-info>div:first-child{border-top:0}
.g-info dt{display:flex;align-items:flex-start;gap:8px;font-weight:700;color:var(--brand-deep)}.g-info dt .ui-icon{flex:none;width:18px;height:18px;margin-top:3px;color:var(--brand)}
.g-info dd{margin:0;line-height:1.8;overflow-wrap:anywhere}.g-pre{white-space:pre-wrap}.g-empty{color:#8a97ad;font-size:14px}
.g-photos-empty{display:flex;align-items:center;gap:16px}.g-photos-empty .grounds-nophoto{flex:none;width:160px;height:auto}
.g-dist{display:grid;gap:4px;margin:0 0 14px}.g-dist>div{display:flex;align-items:center;gap:10px;font-size:14px}.g-dist span{width:2.4em}.g-dist progress{flex:1;max-width:320px;height:10px}.g-dist small{width:2em;color:#5d6b82}
.g-reviews,.g-comments,.g-log{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:10px}
.g-reviews li,.g-comments li{padding:12px 14px;border:1px solid #d6e0f2;border-radius:12px;background:#fff}
.g-reviews li>div,.g-comments li>div{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.g-reviews small,.g-comments small,.g-log small{color:#5d6b82}
.g-reviews p,.g-comments p{margin:6px 0 0;line-height:1.8;overflow-wrap:anywhere}.g-comments li>div form{margin-left:auto}
.g-comments li>div form .button{min-height:36px;padding:6px 12px}
.g-log li{display:flex;flex-wrap:wrap;gap:8px;font-size:14px}
/* 場所の入力欄の下に出る候補(予定・募集のフォーム) */
.ground-suggest{margin:-6px 0 12px;border:1px solid #ccdafe;border-radius:8px;background:#fff;box-shadow:0 6px 18px rgba(23,51,92,.12);overflow:hidden}
.ground-suggest-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;box-sizing:border-box;min-height:44px;padding:8px 14px;border:0;border-bottom:1px solid #e3eaf8;background:#fff;color:var(--brand-deep);font:inherit;text-align:left;cursor:pointer}
.ground-suggest-item:hover,.ground-suggest-item:focus-visible{background:var(--brand-tint2)}.ground-suggest-item small{color:#5d6b82}
.ground-suggest>p{margin:0;padding:8px 14px;font-size:13px;color:#5d6b82}
.ground-picked{margin:-6px 0 12px;font-size:13px;color:#264676}
@media(max-width:760px){.grounds-hero{flex-direction:column;align-items:flex-start}.grounds-art{width:100%}.grounds-steps,.g-list{grid-template-columns:minmax(0,1fr)}
 .g-info>div{grid-template-columns:minmax(0,1fr);gap:4px}.g-photos-empty{flex-direction:column;align-items:flex-start}}
.svc-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:600px){.svc-grid.three{grid-template-columns:minmax(0,1fr)}}
/* みんなのグラウンド: 写真と通報 */
.g-photos{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.g-photos li{display:flex;flex-direction:column;gap:6px}.g-photos img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid #d6e0f2;border-radius:10px;background:#edf3ff}
.g-photos form .button{min-height:36px;padding:6px 12px}
.g-report{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:#5d6b82}.g-report .ui-icon{width:14px;height:14px}
.g-comments li>div .g-report{margin-left:auto}.g-comments li>div form+.g-report{margin-left:8px}.g-reviews li>.g-report{margin-top:6px}.g-hidden-note{color:#5d6b82;font-size:14px}
.g-photo-form{margin-top:12px}
/* ホーム「最近使ったグラウンド」 */
.g-nudges{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.g-nudges li{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 14px;border:1px solid #ccdafe;border-radius:12px;background:var(--brand-tint2)}
.g-nudges strong{display:block;color:var(--brand-deep)}.g-nudges small{color:#5d6b82}.g-nudge-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:600px){.g-nudges li{flex-direction:column;align-items:stretch}.g-nudge-actions .button{flex:1;justify-content:center}}
/* 「プランのお申し込み」無料プランの説明 */
.free-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:12px}
.free-plan-box{padding:12px 14px;background:#fff;border:1px solid #d5e2fb;border-radius:12px}
.free-plan-box h3{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:16px;color:#193968}
.free-plan-box h3 .ui-icon{width:18px;height:18px;color:var(--brand)}
.free-plan-box ul{margin:0;padding-left:20px;display:grid;gap:4px;font-size:14px;line-height:1.6}
/* みんなのグラウンド: 「合ってる」の確認と、このグラウンドの募集 */
.g-confirm{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px}
.g-confirm form{margin:0}.g-confirm .button{min-height:36px;padding:6px 12px}
.g-verified{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:12px;background:#e6eeff;color:var(--brand-deep);font-size:13px;font-weight:700}
.g-verified .ui-icon{width:14px;height:14px}.g-verified small{font-weight:400;color:#5d6b82}
.g-unverified,.g-mine{font-size:13px;color:#5d6b82}
.g-posts{list-style:none;margin:0;padding:0;display:grid;gap:8px}.g-posts li{display:flex;align-items:center;gap:10px}.g-posts small{color:#5d6b82}
.home-ground-now{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 0 12px}.home-ground-now span{color:#5d6b82;font-size:13px}.home-ground-now small{color:#5d6b82}
.g-from{display:inline-flex;align-items:center;gap:4px;margin-left:8px;font-size:12px;color:#5d6b82}.g-from .ui-icon{width:12px;height:12px}
/* 入力フォームの下の「登録する／キャンセル」: button と a の高さ・縦位置をそろえる */
.form-actions{display:flex;flex-wrap:wrap;align-items:stretch;gap:10px;margin:16px 0 0}
.form-actions .button{margin:0;justify-content:center}
@media(max-width:600px){.form-actions .button{flex:1 1 100%}}
/* みんなのグラウンド: 称号バッジ(段階ごとに色を変える)とポイントの表示 */
.g-title{display:inline-flex;align-items:center;margin-left:8px;padding:2px 10px;border-radius:8px;font-size:12px;font-weight:700;line-height:1.6;color:#fff;background:#335ac0;vertical-align:middle}
.g-title.tier1{background:#2e8b57}.g-title.tier2{background:#335ac0}.g-title.tier3{background:#7a4bc0}.g-title.tier4{background:#d98a00}.g-title.tier5{background:#d6334a}
.g-title.none{margin-left:0;color:#5d6b82;background:#eef2fa}
.g-standing-now{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 8px}.g-standing-now .g-title{margin-left:0;font-size:14px;padding:4px 12px}.g-standing-now strong{color:var(--brand-deep)}.g-standing-now small{color:#5d6b82}
.g-standing-bar{height:10px;border-radius:5px;background:#e3eaf8;overflow:hidden;margin:0 0 12px}.g-standing-bar span{display:block;height:100%;background:#335ac0}
.g-standing-parts{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:6px}.g-standing-parts li{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid #e3eaf8}.g-standing-parts b{color:var(--brand-deep)}
.g-mission-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 8px}.g-mission-head strong{margin-left:auto;color:var(--brand-deep)}.g-mission-left{padding:2px 10px;border-radius:8px;background:var(--attn-tint);color:var(--attn-strong);font-weight:700;font-size:13px}.g-streak{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:8px;background:var(--attn-tint);color:var(--attn-strong);font-weight:700;font-size:13px}.g-streak .ui-icon{width:16px;height:16px}
.g-mission-list{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:6px}.g-mission-list li{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid #e3eaf8}.g-mission-list li .ui-icon{width:18px;height:18px;color:#5d6b82}.g-mission-list li b{color:var(--brand-deep)}.g-mission-list li.done .ui-icon,.g-mission-list li.done b{color:var(--ok-text)}.g-mission-note{margin:0 0 6px;color:var(--brand-deep);font-weight:700}
.g-mission-head>*,.g-mission-list li>*,.g-mission-list li b{white-space:nowrap}.g-mission-list li span{min-width:0;font-size:14px}.g-mission-list li b{font-size:14px}
@media (max-width:480px){.g-mission-head{gap:6px}.g-mission-left,.g-streak{padding:2px 8px;font-size:12px}.g-mission-list li{gap:6px}.g-mission-list li span{font-size:12.5px;letter-spacing:-.02em}.g-mission-list li b{font-size:12.5px}}
.g-book-count{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin:0 0 8px}.g-book-count strong{font-size:34px;line-height:1;color:var(--brand-deep)}.g-book-count small{color:#5d6b82}
.g-book-now{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 8px}.g-book-now small{color:#5d6b82}.g-book-now strong{color:var(--brand-deep)}
.g-book-title{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:8px;font-size:12px;font-weight:700;line-height:1.6;color:#fff;background:#335ac0;white-space:nowrap}.g-book-title .ui-icon{width:14px;height:14px}
.g-book-title.tier1{background:#2e8b57}.g-book-title.tier2{background:#335ac0}.g-book-title.tier3{background:#7a4bc0}
.g-book-tiers{list-style:none;margin:0 0 8px;padding:0;display:flex;gap:10px;flex-wrap:wrap}.g-book-tiers li{display:flex;align-items:center;gap:6px;opacity:.45}.g-book-tiers li.got{opacity:1}.g-book-tiers small{color:#5d6b82}
.g-book-region h3{margin:14px 0 6px;font-size:14px;color:#3d4a60}
.g-book-pref-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.g-book-pref-list a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 6px;align-items:center;padding:8px 10px;border:1px solid #d6e0f4;border-radius:8px;background:#fff;color:#3d4a60}
.g-book-pref-list li.has a{border-color:#9fb6e6;background:#f4f7fd}.g-book-pref-list li.open a{border-color:#335ac0;box-shadow:inset 0 0 0 1px #335ac0}
.g-book-pref-name{font-weight:700;white-space:nowrap}.g-book-pref-list b{color:var(--brand-deep);font-size:13px;white-space:nowrap}
.g-book-pref-bar{grid-column:1/-1;display:block;height:5px;border-radius:3px;background:#e3eaf8;overflow:hidden}.g-book-pref-bar em{display:block;height:100%;background:#335ac0}
.g-book-grid{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.g-book-grid a{display:grid;gap:4px;color:inherit}.g-book-grid strong{font-size:14px;line-height:1.4;overflow-wrap:anywhere}.g-book-grid small{color:#5d6b82;font-size:12px}
.g-book-photo{display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;border-radius:8px;overflow:hidden;background:#e3eaf8;color:#7d8fb3}.g-book-photo img{width:100%;height:100%;object-fit:cover}.g-book-photo .ui-icon{width:34px;height:34px}
.g-book-grid.missing li{opacity:.55;filter:grayscale(1)}.g-book-grid.missing .g-book-photo{background:#e9ecf1;color:#a3adbd}
.g-book-missing-title{margin:18px 0 8px;font-size:15px;color:#3d4a60}
.g-book-new{position:relative;overflow:hidden;margin:0 0 14px;padding:14px 16px;border-radius:8px;background:var(--attn-tint);border:1px solid var(--attn)}.g-book-new strong{display:flex;align-items:center;gap:6px;font-size:18px;color:var(--attn-strong)}.g-book-new .ui-icon{width:20px;height:20px}.g-book-new p{margin:4px 0 0}
.g-confetti{position:absolute;inset:0;pointer-events:none}.g-confetti i{position:absolute;top:-10px;width:8px;height:12px;border-radius:2px;opacity:0;animation:g-confetti 2.4s ease-out 1}
.g-confetti i:nth-child(3n){background:#fe6207}.g-confetti i:nth-child(3n+1){background:#335ac0}.g-confetti i:nth-child(3n+2){background:#f6c33b}
.g-confetti i:nth-child(1){left:5%;animation-delay:0s}.g-confetti i:nth-child(2){left:13%;animation-delay:.15s}.g-confetti i:nth-child(3){left:21%;animation-delay:.05s}.g-confetti i:nth-child(4){left:30%;animation-delay:.3s}.g-confetti i:nth-child(5){left:39%;animation-delay:.1s}.g-confetti i:nth-child(6){left:48%;animation-delay:.25s}.g-confetti i:nth-child(7){left:57%;animation-delay:.02s}.g-confetti i:nth-child(8){left:66%;animation-delay:.35s}.g-confetti i:nth-child(9){left:74%;animation-delay:.12s}.g-confetti i:nth-child(10){left:82%;animation-delay:.28s}.g-confetti i:nth-child(11){left:90%;animation-delay:.08s}.g-confetti i:nth-child(12){left:96%;animation-delay:.2s}
@keyframes g-confetti{0%{opacity:1;transform:translateY(0) rotate(0)}100%{opacity:0;transform:translateY(120px) rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.g-confetti{display:none}}
/* みんなのグラウンド: ランキングと「合ってる？チェック」。1〜3位の番号は金・銀・銅（トロフィーと同じ金属色、ユーザー承認 2026-10-25） */
.g-back{margin:0 0 12px}.g-back a{display:inline-flex;align-items:center;gap:6px}
.g-rank-link{margin:0 0 16px}.g-rank-link a{display:inline-flex;align-items:center;gap:6px}
.g-rank-tabs{margin:0 0 10px;flex-wrap:wrap}
.g-rank-list{list-style:none;margin:8px 0;padding:0;display:grid;gap:6px}
.g-rank-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid #e3eaf8;border-radius:8px;background:#fff}
.g-rank-row.mine{background:#eef3ff;border-color:#335ac0}
.g-rank-no{flex:0 0 36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:#eef2fa;color:var(--brand-deep);font-weight:800;font-size:16px}
.g-rank-no.r1{background:linear-gradient(135deg,#fbe38a,#e8b82e);color:#5a4100}.g-rank-no.r2{background:linear-gradient(135deg,#f1f4f8,#c4ccd8);color:#3a4556}.g-rank-no.r3{background:linear-gradient(135deg,#f3cfa6,#cf8a4a);color:#4f2c0c}
.g-rank-name{flex:1 1 auto;min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;font-weight:700;overflow-wrap:anywhere}.g-rank-name .g-title{margin-left:0}
.g-rank-hidden{color:#5d6b82;font-weight:600}.g-rank-you{padding:1px 8px;border-radius:8px;background:#335ac0;color:#fff;font-size:12px}
.g-rank-points{flex:0 0 auto;color:var(--brand-deep);font-size:16px}
.g-rank-gap{margin:0;text-align:center;color:#8a96aa;line-height:1}
.g-rank-empty,.g-rank-mine{margin:8px 0;color:#3d4a60}
.g-rank-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0 0}.g-check-left{color:#5d6b82}
.g-month-now{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 10px;margin:0}.g-month-rank{font-size:28px;color:var(--brand-deep)}.g-month-now small{color:#5d6b82}
.g-check-progress{display:grid;gap:6px;margin:0 0 12px;color:#3d4a60}.g-check-progress .g-standing-bar{margin:0}
.g-check-card{padding:16px;border:1px solid #c9d6f2;border-radius:8px;background:#f6f9ff}
.g-check-ground{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0 0 8px;font-size:17px;font-weight:700}.g-check-ground small{color:#5d6b82;font-weight:400;font-size:13px}
.g-check-label{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 6px}.g-check-label small{color:#5d6b82}
.g-check-field{padding:2px 10px;border-radius:8px;background:var(--attn-tint);color:var(--attn-strong);font-weight:700}
.g-check-value{margin:0;font-size:18px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;color:#17335c}
.g-check-answers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0 8px}
.g-check-done p{margin:0 0 8px}
@media (max-width:600px){.g-check-answers{grid-template-columns:1fr}}
/* 出欠のお願い: ログイン直後の回答画面 */
.attendance-check .attendance-art{display:block;width:100%;max-width:420px;height:auto;margin:0 auto 14px}
.ac-lead{font-size:18px;line-height:1.7;margin:0 0 6px;text-align:center}.ac-lead strong{color:var(--brand-deep)}
.attendance-check .m-help{text-align:center}
.ac-card{border:1px solid #ccdafe;border-radius:12px;background:#fff;padding:16px;margin:14px 0}
.ac-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 8px;font-size:17px;color:var(--brand-deep)}.ac-date{font-weight:700}
.ac-facts{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0 0 12px;font-size:14px}.ac-facts dt{color:#5d6b82}.ac-facts dd{margin:0}
.ac-choice{display:flex;gap:8px;margin:0 0 12px;padding:0;border:0}.ac-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.ac-option{flex:1;min-width:0}.ac-option input{position:absolute;opacity:0;pointer-events:none}
.ac-option-body{display:flex;align-items:center;justify-content:center;gap:6px;min-height:56px;border:1px solid #9fb6ee;border-radius:8px;background:#fff;color:var(--brand-deep);font-size:17px;font-weight:700;cursor:pointer}
.ac-option-body b{font-size:19px;line-height:1}
.ac-option input:checked+.ac-option-body{background:var(--brand-vivid);border-color:var(--brand-vivid);color:#fff}
.ac-option input:focus-visible+.ac-option-body{outline:3px solid #9fb6ee;outline-offset:2px}
.ac-reasons{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 0}
.ac-actions{flex-wrap:wrap}
@media(max-width:600px){.ac-lead{font-size:16px}.ac-actions .button{flex:1;justify-content:center}}

/* 今シーズンのひとこと: チームトークのカードと、書くようにお願いする表示 */
.season-card{display:grid;gap:6px;min-width:0}
.season-card-head{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--brand)}
.season-card-head .ui-icon{width:18px;height:18px;color:var(--star,#f6c33b)}
.season-card .season-card-body{margin:0;white-space:pre-line;overflow-wrap:anywhere}
.season-card .inline-link{font-size:13px}
.season-ask{align-items:flex-start}
.season-ask-row{display:flex;align-items:center;gap:8px;margin:0 0 10px;padding:10px 12px;border-radius:8px;background:var(--brand-soft);color:#20365f;font-size:14px}
.season-ask-row .ui-icon{flex:none;width:20px;height:20px;color:var(--star,#f6c33b)}
.season-done{display:flex;align-items:center;gap:6px;color:#20365f}
.season-done .ui-icon{width:18px;height:18px;color:var(--brand)}
.season-withdraw{margin-top:16px}

/* 評価の星の入力(2026-10-17): 黄色い縁だけの星を5つ並べ、押した星までを黄色く塗る。ラジオは5→1の順に置き、row-reverse で1→5に見せる */
.star-field{display:grid;gap:6px}
.star-input{display:inline-flex;flex-direction:row-reverse;justify-content:flex-end;gap:4px;width:max-content;position:relative}
.star-input input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.star-input label{display:grid;place-items:center;width:48px;height:48px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.star-input label svg{width:40px;height:40px;fill:transparent;stroke:var(--star-edge);stroke-width:1.6;stroke-linejoin:round;transition:fill .12s,transform .1s}
.star-input input:checked~label svg,.star-input label:hover svg,.star-input label:hover~label svg{fill:var(--star)}
.star-input label:active svg{transform:scale(.88)}
.star-input input:focus-visible+label{outline:3px solid var(--brand-soft);outline-offset:2px;border-radius:10px}
.star-words{margin:0;min-height:1.4em;font-weight:700;color:#264676}
.star-words span{display:none}
.star-field:has(input[value="1"]:checked) .w1,.star-field:has(input[value="2"]:checked) .w2,.star-field:has(input[value="3"]:checked) .w3,.star-field:has(input[value="4"]:checked) .w4,.star-field:has(input[value="5"]:checked) .w5{display:inline}

/* School stamp card (server/docs/school-plan.md 「スタンプカード」): one referral reward = one stamp. */
.sstamp-mark{display:block;width:100%;height:100%}
.sstamp-progress{margin:0 0 14px;font-size:16px;color:#17335c}.sstamp-progress strong{margin-right:14px;font-size:30px;color:var(--brand)}
.sstamp-card{list-style:none;margin:0 0 14px;padding:18px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 10px;border-radius:16px;background:#edf3ff;border:1px solid #c9d6f0}
.sstamp{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;text-align:center}
.sstamp-face{display:grid;place-items:center;width:84px;height:84px;border-radius:50%;border:3px dashed #aebfe2;background:#fff;color:#aebfe2;font-size:22px}
.sstamp-face b{font-size:22px}
.sstamp-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:#17335c}.sstamp small{font-size:12px;color:#5a6c8a}
.sstamp-hint{color:#7f90b0!important}
.sstamp.is-pressed .sstamp-face{border:4px solid var(--brand);color:var(--brand);padding:8px;box-shadow:0 0 0 4px #dbe7ff;transform:rotate(-7deg)}
.sstamp.is-pressed:nth-child(even) .sstamp-face{transform:rotate(6deg)}.sstamp.is-pressed:nth-child(3n) .sstamp-face{transform:rotate(-2deg)}
.sstamp.is-waiting .sstamp-face{border:3px solid #8fa7d8;color:#8fa7d8;opacity:.8}
.sstamp.is-next .sstamp-face{border-color:var(--brand);color:var(--brand);animation:sstamp-glow 1.8s ease-in-out infinite}
.sstamp.is-fresh .sstamp-face{animation:sstamp-press .7s cubic-bezier(.2,.9,.3,1.2) both;animation-delay:calc(var(--fresh,0) * .5s + .3s)}
@keyframes sstamp-press{0%{opacity:0;transform:scale(2.6) rotate(-25deg)}60%{opacity:1;transform:scale(.9) rotate(-7deg)}100%{opacity:1;transform:scale(1) rotate(-7deg)}}
@keyframes sstamp-glow{0%,100%{box-shadow:0 0 0 0 rgba(51,90,192,.35)}50%{box-shadow:0 0 0 9px rgba(51,90,192,0)}}
.sstamp-banner{margin:0 0 8px;padding:12px 14px;border-radius:12px;background:#dbe7ff;color:#17335c;font-size:17px;text-align:center}
.sstamp-banner.is-complete{background:var(--brand);color:#fff}
.sstamp-link{display:flex;align-items:center;gap:14px;margin:10px 0;padding:10px 12px;border-radius:12px;background:#edf3ff;color:#17335c}
.sstamp-mini{list-style:none;margin:0;padding:0;display:flex;gap:6px}
.sstamp-mini li{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:2px dashed #aebfe2;background:#fff;color:#8fa7d8;font-size:12px}
.sstamp-mini li.is-pressed{border:2px solid var(--brand);color:var(--brand);padding:2px}.sstamp-mini li.is-waiting{border-style:solid}
@media(min-width:700px){.sstamp-card{grid-template-columns:repeat(var(--slots,6),minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.sstamp.is-fresh .sstamp-face,.sstamp.is-next .sstamp-face{animation:none}}
/* 地域コミュニティ (/my/community, 2026-10-17): カード・今週のTOP3・投稿フォーム。ナイスプレー！のハートは既存の例外 #d6334a */
.cm-intro{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
.cm-intro-text{flex:1 1 320px;min-width:0}.cm-intro-text p{margin:0 0 8px}
.cm-list{display:grid;gap:14px;margin-top:14px}
.cm-card{min-width:0;padding:16px 18px;background:#fff;border:1px solid #dfe5f0;border-radius:14px}
.cm-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:13px;color:#5d6b82}
.cm-team{display:inline-flex;align-items:center;gap:8px;min-width:0;font-weight:700;color:#17335c;font-size:14px}
.cm-team span{overflow-wrap:anywhere}
.cm-logo{width:28px;height:28px;flex:none;border-radius:50%;object-fit:cover;background:#f2f5fb}
.cm-kind{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:var(--brand-tint2);color:var(--brand-deep);font-weight:700}
.cm-kind .ui-icon{width:15px;height:15px}
.cm-card-head time{margin-left:auto}
.cm-title{margin:10px 0 6px;font-size:17px;line-height:1.5;overflow-wrap:anywhere}
.cm-title a{color:#17335c}
.cm-score{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin:0 0 6px}
.cm-score strong{font-size:22px;color:#17335c}
.cm-outcome{font-weight:700;color:var(--brand-deep)}
.cm-headlines{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}
.cm-headline{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;background:var(--brand-vivid);color:#fff;font-size:13px;font-weight:700}
.cm-headline .ui-icon{width:14px;height:14px}
.cm-interview{margin:8px 0 0;padding:10px 14px;border-left:4px solid var(--brand-soft);background:var(--brand-tint3);border-radius:0 10px 10px 0;overflow-wrap:anywhere}
.cm-interview small{display:block;font-weight:700;color:var(--brand-deep);margin-bottom:2px}
.cm-interview-full{margin:10px 0 0}.cm-interview-full dt{margin-top:10px;font-weight:700;color:var(--brand-deep)}.cm-interview-full dd{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.cm-player{position:relative;margin:8px 0;border-radius:10px;overflow:hidden;background:#0e1a33}
.cm-player iframe{display:block;width:100%;aspect-ratio:16/9;border:0}
.cm-player video{display:block;width:100%;max-height:70vh;background:#0e1a33}
.cm-body{margin:6px 0;white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.cm-body.full{display:block;-webkit-line-clamp:unset}
.cm-author{display:flex;align-items:center;gap:10px;margin:6px 0 0;font-size:14px}
.cm-author a{display:inline-flex;align-items:center;gap:8px;color:#17335c;font-weight:700}
.cm-author small{color:#5d6b82}
.cm-card-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:12px;padding-top:10px;border-top:1px solid #edf1f7}
.cm-like{margin:0}
.cm-like-button{background:#fff}
.cm-like-button .ui-icon,.cm-like-total .ui-icon{color:#d6334a}
.cm-like-button.liked{background:#fff3f5;border-color:#d6334a;color:#a52438}
.cm-like-button.liked .ui-icon{fill:#d6334a}
.cm-like-button.is-popping .ui-icon{animation:award-pop .35s ease}
.cm-like-count{min-width:1.2em;text-align:right}
.cm-like-total{display:inline-flex;align-items:center;gap:6px;color:#5d6b82}
.cm-comments{display:inline-flex;align-items:center;gap:6px;color:#17335c;font-weight:700}
.cm-top{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:14px}
.cm-rank{display:flex;align-items:baseline;gap:6px;margin:0 0 6px}
.cm-rank b{font-size:26px;line-height:1;color:var(--brand-vivid)}.cm-rank span{font-weight:700;color:var(--brand-deep)}.cm-rank small{margin-left:8px;color:#5d6b82}
.cm-top-item:first-child .cm-card{border:2px solid var(--brand-vivid);box-shadow:0 6px 18px rgba(var(--brand-vivid-rgb),.12)}
.cm-last{margin-top:14px}.cm-last summary{cursor:pointer;font-weight:700;color:var(--brand-deep)}
.cm-empty{display:grid;justify-items:center;gap:6px;padding:24px 12px;text-align:center;color:#4d5f80}
.cm-empty p{margin:0}
.cm-empty-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--brand-tint2);color:var(--brand-vivid)}
.cm-empty-icon .ui-icon{width:32px;height:32px}
.cm-more{justify-content:center;margin-top:16px}
.cm-tabs{margin-top:4px}
.cm-detail .cm-card{border:0;padding:0}
.cm-detail-actions{display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:12px}
.cm-form:has(input[name=kind][value=YOUTUBE]:checked) .cm-upload{display:none}
.cm-form:has(input[name=kind][value=UPLOAD]:checked) .cm-youtube{display:none}
.cm-upload input[type=file]{max-width:100%}
.cm-check{margin:6px 0 0;color:var(--brand-deep);font-weight:700}
.cm-check.bad{color:#d6334a}
.cm-preview{display:block;width:100%;max-width:420px;max-height:320px;margin-top:8px;border-radius:10px;background:#0e1a33}
@media(max-width:600px){.cm-card{padding:14px}.cm-card-head time{margin-left:0;width:100%}.cm-intro .m-actions{width:100%}}
@media(prefers-reduced-motion:reduce){.cm-like-button.is-popping .ui-icon{animation:none}}
/* 地域コミュニティ 2段階: 注目の一戦・勝敗予想・ホームの「地域」カード */
.cm-matches{display:grid;gap:14px;margin-top:12px}
.cm-match{min-width:0;padding:16px 18px;background:#fff;border:2px solid var(--brand-soft);border-radius:14px}
.cm-kind-match{background:var(--brand-vivid);color:#fff}
.cm-versus{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;margin:12px 0 8px}
.cm-side{display:grid;justify-items:center;gap:6px;min-width:0;text-align:center;color:#17335c}
.cm-side strong{font-size:15px;overflow-wrap:anywhere}
.cm-side-logo{width:52px;height:52px;border-radius:50%;object-fit:cover;background:#f2f5fb}
.cm-side-blank{display:grid;place-items:center;color:#8a97ad}
.cm-vs{font-size:20px;font-weight:800;color:var(--brand-vivid);letter-spacing:.06em}
.cm-final{font-size:26px;color:#17335c}
.cm-reason{display:flex;align-items:flex-start;gap:6px;margin:0 0 10px;padding:8px 12px;border-radius:10px;background:var(--brand-tint3);color:var(--brand-deep);font-weight:700;font-size:14px}
.cm-reason .ui-icon{flex:none;width:16px;height:16px;margin-top:2px}
.cm-pick{margin:0}
.cm-pick-label{margin:0 0 6px;font-weight:700;color:#17335c}.cm-pick-label small{margin-left:6px;font-weight:400;color:#5d6b82}
.cm-pick-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cm-pick-button{justify-content:center;min-width:0}.cm-pick-button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-pick-button.picked{background:var(--brand-tint2);border-color:var(--brand-vivid);color:var(--brand-deep);box-shadow:0 0 0 1px var(--brand-vivid)}
.cm-pick-closed{margin:0;color:#5d6b82}
.cm-ratio{margin-top:10px}
.cm-ratio progress{display:block;width:100%;height:10px;border:0;border-radius:6px;overflow:hidden;background:#dfe5f0;accent-color:var(--brand-vivid)}
.cm-ratio progress::-webkit-progress-bar{background:#dfe5f0}.cm-ratio progress::-webkit-progress-value{background:var(--brand-vivid)}.cm-ratio progress::-moz-progress-bar{background:var(--brand-vivid)}
.cm-ratio p{display:flex;justify-content:space-between;gap:10px;margin:4px 0 0;font-weight:700;color:#17335c;font-size:14px}
.cm-ratio p span{min-width:0;overflow-wrap:anywhere}
.cm-ratio small{color:#5d6b82}
.cm-result{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:10px 0 0}
.cm-hit{display:inline-flex;align-items:center;gap:4px;padding:3px 12px;border-radius:999px;background:var(--brand-vivid);color:#fff;font-weight:800}
.cm-hit .ui-icon{width:16px;height:16px}
.cm-miss{padding:3px 12px;border-radius:999px;background:#eef1f6;color:#5d6b82;font-weight:700}
.cm-record{display:inline-flex;align-items:center;gap:6px;margin:0 0 4px;padding:4px 12px;border-radius:999px;background:var(--brand-tint2);color:var(--brand-deep);font-weight:800}
.cm-record .ui-icon{width:16px;height:16px}
.cm-home-top{display:grid;gap:2px;margin:0 0 10px;padding:10px 14px;border-radius:10px;background:var(--brand-tint3)}
.cm-home-top small{color:var(--brand-deep);font-weight:700}.cm-home-top a{font-weight:800;color:#17335c;overflow-wrap:anywhere}.cm-home-top span{color:#5d6b82;font-size:13px}
.cm-home-matches{list-style:none;margin:0 0 10px;padding:0}
.cm-home-matches li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:8px 0;border-bottom:1px solid #edf1f7}
.cm-home-matches a{font-weight:700;color:#17335c;overflow-wrap:anywhere;min-width:0}
.cm-home-label{color:var(--brand-vivid);font-weight:800}.cm-home-date{font-weight:700}
@media(max-width:600px){.cm-match{padding:14px}.cm-side-logo{width:44px;height:44px}.cm-vs{font-size:17px}}
.cm-reason-list{min-width:0;overflow-wrap:anywhere}

.player-lamps{display:flex;flex-wrap:wrap;gap:2px;margin:4px 0 6px}
.player-lamp-cell{flex:0 1 28px;min-width:20px;display:flex;flex-direction:column;align-items:center}
.player-lamp-cell .player-lamp{flex:none;width:100%}
.player-lamp-no{min-height:14px;font-size:11px;font-weight:700;line-height:14px;color:#17335c;white-space:nowrap}
.player-lamp{flex:0 1 28px;min-width:0;height:auto;aspect-ratio:1;fill:#e3e8f2;stroke:#c3cbdb;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}
.player-lamp.is-on{fill:#335ac0;stroke:#17335c}
.readiness-hero{position:relative;height:110px;margin:4px 0 10px;border-radius:14px;overflow:hidden}
.readiness-art{position:absolute;inset:0;display:block;width:100%;height:100%}
.readiness-hero-text{position:absolute;left:50%;top:14px;transform:translateX(-50%);max-width:92%;margin:0;padding:8px 18px;border-radius:12px;background:rgba(255,255,255,.92);color:#17335c;font-size:15px;text-align:center}
@media(max-width:700px){.readiness-hero{height:100px}.readiness-hero-text{font-size:13px;padding:6px 12px}}
/* 人数・審判・対戦相手: 見出しのアイコンを大きなタイルにし、決まっていない項目は灰色にする。ボタンは縦に並べる。 */
.shortage-items .readiness-label .ui-icon{width:36px;height:36px;padding:7px;border-radius:10px;background:#dbe5fb;color:var(--brand)}
.shortage-items .readiness-item.is-idle .readiness-label .ui-icon{background:#e9edf4;color:#8b97ad}
.shortage-items .shortage-actions{display:flex;flex-direction:column;align-items:stretch;gap:8px}
.shortage-items .shortage-actions>form{display:block;margin:0}
.shortage-items .shortage-actions .button{width:100%;justify-content:flex-start}
/* 「この試合、成立する？」の項目内ボタンはS（36px、文字13px、スマホは40px） */
body:not(.auth-page) .m-shell .shortage-actions .button{min-height:36px;height:36px;padding-top:0;padding-bottom:0;padding-left:12px;padding-right:12px;font-size:13px;gap:6px}
@media(max-width:700px){body:not(.auth-page) .m-shell .shortage-actions .button{min-height:40px;height:40px}}
.panel-fold{margin-left:auto;flex:none}
.panel-title:has(.panel-fold){display:flex;align-items:center;gap:8px}
[data-fold-body][hidden]{display:none}
body:not(.auth-page) .m-shell .panel-fold{min-height:36px;height:36px;padding:0 14px;font-size:13px}
@media(max-width:700px){body:not(.auth-page) .m-shell .panel-fold{min-height:40px;height:40px}}
/* 「この試合、成立する？」2026-10-18 再構成: 外枠は패널だけ。試合は区切り線、項目は 1行（アイコン名｜状態｜主ボタン）＋「ほかの方法」。 */
.shortage-game,.shortage-game:first-of-type{margin:0;border:0;border-top:1px solid #dbe3f2;border-radius:0;background:none;overflow:visible}
.shortage-game:first-of-type{border-top:0}
.shortage-game .shortage-head{padding:14px 0 6px;background:none;border:0}
.shortage-game .shortage-head strong{font-size:16px}
.shortage-items{display:block;padding:0 0 12px}
.shortage-items .readiness-item,.shortage-items .readiness-item:first-of-type{display:grid;grid-template-columns:140px minmax(0,1fr) auto;align-items:center;gap:6px 12px;padding:10px 0;border:0;border-top:1px dashed #e1e7f2;border-radius:0;background:none}
.shortage-items .readiness-item:first-of-type{border-top:0}
.shortage-items .readiness-label{margin:0;font-size:14px;white-space:nowrap}
.shortage-items .readiness-body{min-width:0}
.shortage-items .readiness-body .shortage-line{margin:2px 0}
.shortage-items .readiness-act{justify-self:end;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}
.shortage-items .readiness-act .button{white-space:nowrap}
.shortage-items .readiness-act form{margin:0}
.shortage-items .readiness-more{grid-column:2/-1}
.readiness-more>summary{display:inline-block;cursor:pointer;color:var(--brand);font-size:13px;font-weight:700}
.readiness-more[open]>summary{margin-bottom:6px}
.shortage-items .shortage-actions{flex-direction:row;flex-wrap:wrap;margin:0}
.shortage-items .shortage-actions .button{width:auto}
@media(max-width:700px){
 .shortage-items .readiness-item,.shortage-items .readiness-item:first-of-type{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label act" "body body"}
 .shortage-items .readiness-label{grid-area:label}.shortage-items .readiness-body{grid-area:body}.shortage-items .readiness-act{grid-area:act;justify-self:end;justify-content:flex-end}
 .shortage-items .readiness-act .button:not(.icon-only){width:100%;justify-content:flex-start}
 .shortage-items .readiness-more{grid-column:1}
 .shortage-items .shortage-actions{flex-direction:column;align-items:stretch}
 .shortage-items .shortage-actions .button{width:100%}
}

/* ballpark-sky: small sparrows fly in from the upper right of the default /my header (no cover photo) and fade out */
.svc-welcome.has-sky{position:relative;overflow:hidden}.svc-welcome.has-sky>*:not(.sky-scene):not(.draft-art){position:relative;z-index:1}.svc-welcome.has-sky>.draft-art{z-index:0}
.svc-welcome.has-sky>.sky-scene{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.sky-bird{opacity:0;animation:sky-fly 21.6s linear 5s infinite}
.sky-scene>g:nth-of-type(2)>.sky-bird{animation-delay:5.5s}.sky-scene>g:nth-of-type(3)>.sky-bird{animation-delay:6s}.sky-scene>g:nth-of-type(4)>.sky-bird{animation-delay:6.5s}.sky-scene>g:nth-of-type(5)>.sky-bird{animation-delay:7.1s}
.sky-wing{transform-box:fill-box;transform-origin:30% 100%;animation:sky-flap .13s ease-in-out infinite alternate}
@keyframes sky-fly{0%{opacity:1;transform:translate(790px,0)}17%{opacity:.9}20.8%,100%{opacity:0;transform:translate(280px,-40px) scale(.45)}}
@keyframes sky-flap{from{transform:rotate(0)}to{transform:rotate(-50deg)}}
@media(prefers-reduced-motion:reduce){.sky-bird,.sky-wing{animation:none}.sky-bird{opacity:0}}
.team-header-bar>.sky-scene{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}

/* CSV・表の確認と編集。ボタンの寸法は共通の「ボタン規格」を使う。 */
.csv-tool{max-width:1000px;margin:0 auto;padding:24px 20px}
.csv-tool>.m-panel{margin-bottom:24px}
.csv-workbench{min-width:0}
.summary-workbench{min-width:0}
.summary-scope{padding:16px;border:1px solid #dce5f2;border-radius:8px;background:#f5f8ff;margin:20px 0}
.summary-scope>.m-field{max-width:340px}
.summary-workbench .ground-options{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
.design-atlas .type-tabs.type-tabs-inline.summary-source-tabs{margin:24px 0 16px;border-bottom:1px solid #dce5f2;padding:0 0 10px;gap:8px}
.summary-source-tabs .type-tab{display:inline-flex;align-items:center;gap:6px;padding:12px 6px;background:none;border:0;color:#526b94;cursor:pointer;font:inherit;font-size:14px;white-space:nowrap}
.summary-source-tabs .type-tab[aria-selected="true"]{color:#335ac0;font-weight:700;box-shadow:inset 0 -3px 0 #335ac0}
.summary-source-tabs .type-tab:focus-visible{outline:2px solid #335ac0;outline-offset:2px}
.summary-workbench [data-summary-excluded]{margin:28px 0 20px}
.summary-workbench textarea{width:100%;box-sizing:border-box;min-height:220px;resize:vertical}
.summary-workbench .m-actions{flex-wrap:wrap;gap:10px}
.summary-workbench .m-field>span>.ui-icon{margin-right:6px;color:#335ac0;vertical-align:-3px}
.summary-workbench .csv-next-button{border:2px solid #17335c;box-shadow:0 0 0 3px #dce7ff;padding-top:0;padding-bottom:0}
.summary-flow{display:flex;flex-wrap:wrap;gap:10px;padding:0;list-style:none;margin:20px 0}
.summary-flow li{padding:10px 12px;border-left:3px solid #335ac0;background:#edf3ff;font-size:13px;font-weight:700;color:#17335c}
.summary-table-wrap{max-width:100%;overflow:auto;margin:16px 0;border:1px solid #dce5f2}
.summary-table{border-collapse:collapse;width:100%;font-size:13px;color:#17335c}
.summary-table th,.summary-table td{padding:8px;border-bottom:1px solid #dce5f2;text-align:left;white-space:nowrap}
.summary-table thead{background:#edf3ff}
[data-summary-preview] .summary-table tr>:not(:first-child){text-align:right}
/* 選手 (2nd column of 打撃・投手) reads from the left like the period (user direction 2026-10-22). */
[data-summary-preview]:not([data-summary-preview="team"]) .summary-table tr>:nth-child(2){text-align:left}
.summary-table tr:nth-child(even){background:#f8faff}
.summary-table input:not([type="checkbox"]){width:76px;box-sizing:border-box;border:1px solid #cbd8ee;border-radius:8px;padding:10px 6px;font:inherit;color:inherit;background:#fff}
.summary-table input[data-summary-value="name"]{width:140px}
.summary-table input[aria-invalid="true"]{background:#fff4f5;border-color:#b63849}
.summary-issue-cell{text-align:center}
.summary-issue-button{white-space:nowrap}
.summary-issue-button .ui-icon{color:var(--attn-strong)}
.summary-issues-dialog{width:min(600px,calc(100vw - 24px))}
.summary-issues-dialog .summary-issues-context{font-weight:700;color:#17335c}
.summary-issues-list{margin:20px 0}
.summary-issues-list dt{font-weight:700;margin-top:16px;color:#17335c;overflow-wrap:anywhere}
.summary-issues-list dd{margin:4px 0 16px;line-height:1.8;overflow-wrap:anywhere;color:#526b94}
.summary-table .num-tag{margin-right:6px}
.summary-copy-help,.summary-mapping,.summary-originals,#summary-drafts{margin:20px 0}
.summary-example,.summary-progress{padding:14px;background:#f5f8ff;border:1px solid #dce5f2;border-radius:8px;font-size:13px;line-height:1.8}
.summary-progress ul{padding-left:20px;margin-bottom:0}
.summary-workbench pre{white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;font-size:12px}
.summary-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}
.summary-people .m-field,.summary-person{min-width:0}
.summary-people select{max-width:100%}
.m-panel .summary-person-notice{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:8px;margin:8px 0 0;color:var(--attn-strong);font-size:13px;line-height:20px}
.m-panel .summary-person-notice.is-unlinked{color:#6b7280}
.summary-person-notice .ui-icon{display:block;width:18px;height:18px;margin:1px 0 0;color:inherit}
.summary-person-notice [data-match-message]{color:inherit;line-height:inherit}
.summary-person-notice[hidden]{display:none}
.imported-summary-stats .panel-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.imported-summary-stats .panel-title small{font-size:12px;color:#526b94}
.summary-workbench [hidden]{display:none!important}
@media(max-width:700px){.summary-people{grid-template-columns:1fr}.summary-scope{padding:12px}.summary-source-tabs{column-gap:6px}.summary-source-tabs .type-tab{padding-left:0;padding-right:0;font-size:13px}.summary-workbench .m-actions>.button{max-width:100%;white-space:normal}.summary-flow{display:grid;gap:4px}}
.csv-workbench>.m-panel{margin:0 0 28px}
.csv-attachment-panel{border:1px solid #cbd8ee;border-radius:12px;background:#fff;box-shadow:0 4px 16px rgba(23,51,92,.04)}
.csv-workbench #csv-list-step{padding:20px}
.csv-board-table{border-collapse:collapse;min-width:660px;width:100%;font-size:13px}
.csv-board-table th,.csv-board-table td{padding:6px;border:1px solid #dce5f2;text-align:center}
.csv-board-table th{background:#edf3ff;color:#17335c}
.csv-board-table input{box-sizing:border-box;width:48px;text-align:center;padding:8px 4px;border:1px solid #cbd8ee;border-radius:8px;font:inherit;color:inherit}
.csv-board-table th:first-child{min-width:160px}
.csv-board-table td:first-child input{width:100%;min-width:150px;text-align:left}
.csv-board-table input[aria-invalid="true"]{border-color:#b63849;background:#fff4f5}
#csv-scoreboard-dialog #csv-board-text{height:180px;min-height:180px}
#csv-board-preview{margin-top:20px}
#csv-board-update-wrap{margin-top:16px}
#csv-board-status{color:var(--attn-strong)}
.design-atlas .type-tabs.type-tabs-inline.import-page-tabs{padding:0;margin:0 0 24px;gap:0;border-bottom:2px solid #dce5f2;flex-wrap:wrap}
.import-page-tabs .type-tab{display:inline-flex;align-items:center;gap:6px;padding:12px 8px;background:none;border:0;color:#526b94;cursor:pointer;font:inherit;font-size:14px}
.import-page-tabs .type-tab[aria-selected="true"]{color:#335ac0;font-weight:700;box-shadow:inset 0 -3px 0 #335ac0}
.import-page-tabs .type-tab:focus-visible{outline:2px solid #335ac0;outline-offset:2px}
.import-page-tabs .import-tab-short{display:none}
.import-migration-scenes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:24px 0}
.import-migration-scenes figure{margin:0;display:grid;grid-template-columns:100px minmax(0,1fr);align-items:center;gap:16px}
.import-migration-scenes svg{width:100%;display:block}
.import-migration-scenes strong{color:#17335c;font-size:15px}
.import-migration-scenes p{color:#526b94;line-height:1.8;font-size:14px;margin:8px 0 0}
#import-summary-panel .m-actions,#import-excel-panel .m-actions{flex-wrap:wrap;gap:12px}
#import-summary-panel .button,#import-excel-panel .button{max-width:100%;white-space:normal}
#csv-list-step>.panel-title{display:flex;align-items:center;gap:10px}
#csv-list-step>.panel-title>.panel-title-icon{flex:none;margin:0}
@media(max-width:700px){.import-migration-scenes{grid-template-columns:1fr;gap:20px}.import-migration-scenes figure{grid-template-columns:76px minmax(0,1fr);gap:12px}.import-migration-scenes strong{font-size:14px}.import-migration-scenes p{font-size:13px}}
.m-page-content>.import-check-navigation{margin:0 0 24px;padding:0 0 20px;border-bottom:1px solid #dce5f2}
#import-summary-panel[hidden],#import-detail-panel[hidden],#import-excel-panel[hidden],#import-history[hidden],.csv-guide [hidden]{display:none!important}
.csv-entry-intro{display:grid;grid-template-columns:120px minmax(0,1fr);align-items:center;gap:18px;margin:16px 0 20px;padding:16px;background:#f5f8ff;border-radius:8px}
.csv-entry-intro>svg{display:block;width:100%}
.csv-entry-intro strong{color:#17335c;font-size:15px}
.csv-entry-intro p{font-size:14px;line-height:1.8;margin:6px 0 0;color:#4d6385}
@media(max-width:480px){.csv-entry-intro{grid-template-columns:72px minmax(0,1fr);gap:12px;padding:12px}.csv-entry-intro strong{font-size:14px}.csv-entry-intro p{font-size:13px}}
@media(max-width:700px){.import-page-tabs .import-tab-wide{display:none}.import-page-tabs .import-tab-short{display:inline}.import-page-tabs .type-tab{padding:12px 6px;gap:4px;font-size:13px}.import-page-tabs .ui-icon{width:16px;height:16px}}
.csv-progress-save{margin:20px 0;padding:16px;background:#f5f8ff;border:1px solid #dce5f2;border-radius:8px}
.csv-progress-save .csv-setting-intro{margin:0;padding:0;grid-template-columns:88px minmax(0,1fr);gap:12px;background:transparent}
.csv-progress-save .csv-setting-intro svg{width:88px;flex:none}
.csv-progress-save .m-actions{margin-bottom:0}
.csv-reset-area{margin-top:28px;padding-top:16px;border-top:1px solid #dce5f2}
.csv-reset-area>summary{cursor:pointer;color:#526b94;font-weight:600;line-height:1.8}
.csv-reset-area p{margin:12px 0}
@media(max-width:480px){.csv-progress-save{padding:12px}.csv-progress-save .csv-setting-intro{grid-template-columns:64px minmax(0,1fr)}.csv-progress-save .csv-setting-intro svg{width:64px}}
.csv-game-context{padding:16px;background:#edf3ff;border-left:4px solid #335ac0;margin:16px 0;overflow-wrap:anywhere}
.csv-game-context strong{font-size:18px;color:#17335c}
.csv-game-context p{margin:8px 0 0}
#csv-editor-title,#csv-list-step>.content-title{scroll-margin-top:24px}
.csv-matches{margin:16px 0;min-width:0}
.csv-match-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:14px;border:1px solid #cbd8ee}
.csv-match-table th{background:#edf3ff;color:#17335c;text-align:left;font-weight:700}
.csv-match-table th,.csv-match-table td{padding:8px 10px;border-bottom:1px solid #dce5f2;vertical-align:middle}
.csv-match-table th:first-child{width:44%}
.csv-match-table th:not(:first-child),.csv-match-table td:not(:first-child){width:18.66%;text-align:center;border-left:1px solid #dce5f2}
.csv-match-table tbody tr:nth-child(even){background:#f8faff}
.csv-match-info{display:flex;align-items:center;gap:8px;min-width:0}
.csv-match-basic{min-width:0;flex:1;display:grid;grid-template-columns:100px minmax(0,1fr) auto;align-items:center;gap:8px;line-height:1.4}
.csv-match-basic small{font-size:12px;color:#526b94}
.csv-match-basic strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#17335c}
.csv-match-info .icon-only{flex:none}
.csv-match-score{font-weight:700;color:#17335c;font-size:13px}
.csv-match-stat{display:grid;grid-template-columns:minmax(0,1fr) 68px;align-items:center;gap:6px;min-width:0}
.csv-match-stat>.button{width:68px;justify-self:end}
.csv-match-meta{display:grid;grid-template-columns:16px minmax(0,1fr);gap:4px;align-items:center;min-width:0;max-width:100%;text-align:left}
.csv-match-status-text{display:grid;gap:2px;min-width:0}
.csv-match-status-text small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.csv-record-state{display:flex;color:#7486a6}
.csv-record-state .ui-icon{flex:none}
.csv-record-complete{color:var(--ok-text,#22834a)}
.csv-record-pending{color:#335ac0}
.csv-record-review{color:var(--attn-strong)}
.csv-match-status{font-size:12px;color:#526b94;line-height:1.4;overflow-wrap:anywhere}
.csv-match-stat small{font-size:11px;line-height:1.3}
.csv-match-issues{font-size:12px;color:var(--attn-strong);overflow-wrap:anywhere}
.csv-match-issues summary{cursor:pointer;font-weight:700}
.csv-match-issues p{margin:4px 0}
.csv-match-table .ui-icon{width:16px;height:16px}
.csv-nav-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}
.csv-workbench .csv-nav-button,#import-excel-panel .csv-nav-button{gap:8px;padding-top:0;padding-bottom:0}
.csv-nav-label{display:flex;flex-direction:column;text-align:left;line-height:1.25;min-width:0}
.csv-nav-label small{display:block;font-size:10px;font-weight:500;line-height:1.25;letter-spacing:.03em}
.csv-workbench .csv-next-button,#import-excel-panel .csv-next-button{border:2px solid #17335c;box-shadow:0 0 0 3px #dce7ff;font-weight:700}
.csv-next-help{color:#17335c;font-weight:700;margin:16px 0 8px}
.csv-nav-label .csv-label-short{display:none}
.csv-nav-pair>.button{width:100%}
.csv-modal-open{overflow:hidden}
.csv-personal-dialog{box-sizing:border-box;width:min(1000px,calc(100vw - 24px));max-width:none;max-height:calc(100dvh - 32px);padding:20px;border:1px solid #cbd8ee;border-radius:8px;color:#17335c;background:#fff;overflow:auto;overscroll-behavior:contain}
.csv-personal-dialog::backdrop{background:rgba(15,32,62,.58)}
.csv-dialog-header{position:sticky;top:-20px;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-20px -20px 0;padding:16px 20px;background:#fff;border-bottom:2px solid #cbd8ee}
.csv-dialog-header .panel-title{margin:0;font-size:18px}
.csv-dialog-header>.button{flex:none}
.csv-dialog-header>div{min-width:0}
.csv-dialog-location{margin:10px 0 0;font-size:13px;line-height:1.5;color:#526b94;overflow-wrap:anywhere}
/* Current import target stays visible in the sticky dialog header and every attachment step. */
.import-current-selection{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 0;min-width:0}
.import-selection-caption{display:inline-flex;align-items:center;gap:6px;color:#526b94;font-size:13px;font-weight:700;line-height:1.5}
.import-selection-caption .ui-icon{width:18px;height:18px;flex:none}
.import-current-selection .import-selection-badge{box-sizing:border-box;display:inline-flex;align-items:center;max-width:100%;padding:6px 10px;border:1px solid var(--attn-edge);border-radius:6px;background:var(--attn-tint);color:var(--attn-strong);font-size:14px;font-weight:800;line-height:1.5;overflow-wrap:anywhere}
.csv-dialog-header .import-current-selection{margin-bottom:0}
.csv-game-context .import-current-selection{margin:0}
.csv-workbench .content-title[tabindex="-1"]:focus{outline:none}
.csv-personal-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:0;list-style:none;margin:16px 0;border-bottom:2px solid #dce5f2}
.csv-personal-steps li{padding:8px 4px;font-size:13px;color:#61769b}
.csv-personal-steps .is-current{color:#17335c;font-weight:700;background:#edf3ff;box-shadow:inset 0 -3px 0 #335ac0}
.csv-personal-dialog textarea{height:360px;min-height:360px;resize:vertical}
.csv-personal-dialog .csv-dialog-footer{margin-bottom:0}
.csv-personal-dialog .content-title{scroll-margin-top:160px}
@media(max-width:480px){
 .csv-workbench #csv-list-step{padding:12px}
 .csv-match-table th,.csv-match-table td{padding:6px 3px}
 .csv-match-table th{font-size:12px;overflow-wrap:anywhere}
 .csv-match-info{gap:4px}
 .csv-match-basic{grid-template-columns:minmax(0,1fr);gap:2px}
 .csv-match-stat{grid-template-columns:minmax(0,1fr);grid-template-rows:50px auto;justify-items:center;gap:4px}
 .csv-match-stat>.button{width:auto;justify-self:center}
 .csv-match-table th:first-child{width:40%}
 .csv-match-table th:not(:first-child),.csv-match-table td:not(:first-child){width:20%}
 .csv-match-table .button:not(.icon-only) .ui-icon{width:13px;height:13px}
 .csv-nav-pair{gap:8px}
 .csv-nav-pair .button{font-size:13px;padding-left:8px;padding-right:8px;gap:5px}
 .csv-nav-pair .ui-icon{width:16px;height:16px;flex:none}
 .csv-nav-label .csv-label-wide{display:none}
 .csv-nav-label .csv-label-short{display:block}
 .csv-personal-dialog{padding:12px;width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}
 .csv-dialog-header{top:-12px;margin:-12px -12px 0;padding:12px;flex-wrap:wrap;gap:8px}
 .csv-dialog-header .panel-title{font-size:16px}
 .csv-dialog-header>.button{margin-left:auto}
 .csv-personal-steps li{font-size:12px}
}
.csv-workbench [hidden],.csv-tool [hidden]{display:none!important}
.csv-steps{position:relative;display:grid;gap:12px;margin:24px 0;padding:0;list-style:none}
.csv-steps::before{content:"";position:absolute;left:19px;top:24px;bottom:24px;width:2px;background:#cbd8ee}
.csv-steps li{position:relative;display:flex;align-items:flex-start;gap:12px;padding:10px 12px 10px 0;color:#61769b}
.csv-step-number{display:grid;place-items:center;flex:none;width:40px;height:40px;border:2px solid #cbd8ee;border-radius:50%;background:#fff;font-size:17px;font-weight:700;box-sizing:border-box}
.csv-steps li>div{min-width:0;flex:1;padding-top:1px}
.csv-steps strong{display:block;font-size:15px;color:#344a72}
.csv-steps small{display:block;font-size:13px;font-weight:400;line-height:1.7;margin-top:4px}
.csv-steps .is-current{background:#edf3ff;border-radius:8px}
.csv-steps .is-current .csv-step-number{border-color:#335ac0;background:#335ac0;color:#fff}
.csv-steps .is-current strong{color:#1d3f9a}
.csv-workbench .ground-choice{margin:16px 0}
.csv-workbench .ground-options{display:flex;flex-wrap:wrap;gap:8px}
.design-atlas .type-tabs.type-tabs-inline.csv-tabs{position:sticky;top:0;z-index:4;background:#fff;padding:8px 0 0;border-bottom:2px solid #cbd8ee}
.csv-tabs .type-tab{background:none;border:0;cursor:pointer;font:inherit;display:inline-flex;align-items:center;gap:6px;padding:12px 10px}
.csv-tabs .type-tab[aria-selected="true"]{color:#335ac0;font-weight:700;box-shadow:inset 0 -3px 0 #335ac0}
.csv-tabs .type-tab small:empty{display:none}
.csv-tabs .type-tab:focus-visible{outline:2px solid #335ac0;outline-offset:4px}
.csv-copy-guide{margin:20px 0;padding:20px;background:#f8faff;border-radius:12px;line-height:1.8}
.csv-copy-guide>summary{cursor:pointer;color:#17335c;font-size:17px;font-weight:700}
.csv-copy-guide>summary:focus-visible{outline:2px solid #335ac0;outline-offset:4px}
.csv-workbench #csv-text{height:360px;min-height:360px;resize:vertical}
.csv-workbench .csv-year-field{max-width:280px}
.csv-workbench .m-field>span>.ui-icon{margin-right:6px;color:#335ac0;vertical-align:-3px}
.csv-setting-intro{display:grid;grid-template-columns:120px minmax(0,1fr);gap:18px;align-items:center;margin:16px 0 20px;padding:16px;background:#f5f8ff;border-radius:12px}
.csv-setting-intro svg{display:block;width:100%;max-width:140px}
.csv-setting-intro strong{display:block;color:#17335c;font-size:15px}
.csv-setting-intro p{margin:6px 0 0;font-size:14px;line-height:1.8;color:#4d6385}
.csv-copy-demo{margin:20px 0}
.csv-copy-demo figcaption{font-size:13px;color:#4d6385;margin-bottom:8px}
.csv-demo-browser{overflow:hidden;border:1px solid #b5c7e4;border-radius:8px;background:#fff}
.csv-demo-chrome{display:flex;align-items:center;gap:5px;padding:10px 12px;background:#edf3ff;font-size:12px;color:#4d6385}
.csv-demo-chrome i{width:6px;height:6px;border-radius:50%;background:#9bb4df}
.csv-demo-chrome span{margin-left:8px}
.csv-demo-outside{font-size:12px;color:#6a7c97;margin:12px 16px}
.csv-copy-range{margin:0 16px;border:2px dashed #335ac0;background:#e1ecff;overflow:auto}
.csv-copy-range table{width:100%;border-collapse:collapse;font-size:13px;color:#17335c}
.csv-copy-range th,.csv-copy-range td{padding:9px 10px;border:1px solid #b5c9eb;text-align:left;white-space:nowrap}
.csv-copy-range th{background:#c6dbff}
.csv-copy-edge{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:4px 12px;margin:12px 16px 6px;color:#335ac0;font-size:13px}
.csv-copy-edge span{font-weight:700}
.csv-copy-edge small{font-size:12px}
.csv-copy-end{margin:6px 16px 12px}
.csv-copy-actions{padding-left:24px;color:#17335c}
.csv-copy-actions li{padding-left:4px;margin-bottom:12px}
.csv-copy-actions strong,.csv-copy-actions span{display:block}
.csv-copy-actions span{font-size:13px}
.csv-copy-actions kbd{display:inline-block;background:#fff;border:1px solid #b5c7e4;border-bottom-width:2px;border-radius:4px;padding:0 5px;font-family:inherit;line-height:1.7}
@media(max-width:700px){.csv-copy-guide{padding:12px}.csv-copy-range{margin:0 8px}.csv-copy-range th,.csv-copy-range td{padding:7px 5px;font-size:12px}.csv-copy-edge,.csv-demo-outside{margin-left:8px;margin-right:8px}.csv-copy-actions span{font-size:12px}.csv-setting-intro{grid-template-columns:minmax(0,1fr);gap:10px;padding:12px}.csv-setting-intro svg{width:100px;margin:auto}}
.csv-mobile-help{display:none}
.csv-input-help,.csv-input-options{margin:12px 0;color:#4d6385}
.csv-input-help>summary,.csv-input-options>summary,.csv-extra-mapping>summary{cursor:pointer;color:#335ac0;font-weight:700;padding:6px 0}
.csv-input-options[open]>summary{margin-bottom:12px}
.csv-extra-mapping{grid-column:1/-1}
.csv-extra-mapping .csv-mapping{padding-top:12px}
.csv-guide-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.csv-guide-heading .panel-title{margin-bottom:8px}
.csv-guide-heading .button{flex-shrink:0}
.csv-guide-scenes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:20px 0}
.csv-guide-scenes figure{margin:0;min-width:0}
.csv-guide-scenes svg{display:block;width:100%;max-width:220px;margin:auto}
.csv-guide-scenes figcaption{font-size:14px;line-height:1.7}
.csv-guide-scenes strong{color:#17335c}
.csv-guide-scenes p{margin:8px 0 0}
#csv-guide[hidden],#csv-guide-open[hidden],.csv-guide-opener:has(#csv-guide-open[hidden]){display:none!important}
.csv-mapping{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.csv-mapping .m-field{min-width:0}
.csv-mapping select{width:100%;min-width:0}
.csv-grid{width:100%;max-width:100%;overflow:auto;max-height:600px;border:1px solid #dce5f2;margin:12px 0;overscroll-behavior-x:contain}
.csv-grid:empty{border:0;margin:0}
.csv-edit-table{border-collapse:collapse;font-size:13px;white-space:nowrap}
.csv-edit-table th,.csv-edit-table td{padding:8px;border:1px solid #e3eaf4;text-align:left;vertical-align:top}
.csv-edit-table th{background:#edf3ff;color:#17335c}
.csv-edit-table thead{position:sticky;top:0;z-index:1}
.csv-grid .csv-edit-table input:not([type="checkbox"]){box-sizing:border-box;width:130px;min-width:90px;max-width:220px;margin:0;font-size:14px}
.csv-edit-table td:last-child p{white-space:normal;min-width:220px;max-width:320px;margin:0 0 6px}
.csv-edit-table details{white-space:normal;min-width:72px;max-width:260px}
.csv-edit-table details[open]{min-width:200px}
.csv-edit-table details p{white-space:pre-wrap;overflow-wrap:anywhere}
.csv-edit-table .csv-cell-error{background:#fff5f5}
.csv-edit-table input[aria-invalid="true"]{border-color:#c43c3c}
.csv-table-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.csv-workbench .m-actions{flex-wrap:wrap;align-items:center}
.csv-workbench .button:disabled{cursor:default;opacity:.45;box-shadow:none}
.csv-workbench .csv-pagination .button:disabled:hover{background:#fff;color:#7486a6;border-color:#cbd8ee}
.csv-review-summary{margin:20px 0;padding:16px;border:1px solid #cbd8ee;border-radius:12px;background:#f5f8ff}
.csv-review-summary h4{margin:0 0 12px;color:#17335c;font-size:16px}
.csv-review-summary dl{display:flex;flex-wrap:wrap;gap:12px 24px;margin:0 0 12px}
.csv-review-summary dl>div{display:flex;align-items:baseline;gap:8px}
.csv-review-summary dt{font-weight:700;color:#344a72}
.csv-review-summary dd{margin:0;color:#335ac0}
.csv-review-summary p{font-size:14px;line-height:1.8;color:#4d6385}
.csv-map-save-area{margin:12px 0 20px}
.csv-map-save-area p:not(:empty){margin-top:10px}
.csv-excluded{margin:14px 0;color:#4d6385}
.csv-excluded>summary{cursor:pointer;font-weight:700;color:#335ac0;padding:8px 0}
.csv-excluded ul{max-height:260px;overflow:auto;padding-left:22px;margin:12px 0;border-top:1px solid #dce5f2}
.csv-excluded li{padding:8px 0;border-bottom:1px solid #dce5f2;overflow-wrap:anywhere}
.csv-excluded li small{font-size:12px;color:#61769b}
.csv-excluded li p{font-size:14px;line-height:1.7;white-space:pre-wrap}
.csv-workbench .import-consent{margin:8px 0}
.csv-drafts{margin:16px 0}
.csv-drafts>summary{cursor:pointer;font-weight:700;color:#335ac0;padding:8px 0}
.csv-drafts[open]>summary{margin-bottom:12px}
.csv-draft-badge{display:inline-block;margin-left:8px;padding:2px 6px;border-radius:4px;background:#edf3ff;color:#526b94;font-size:12px;font-weight:500;vertical-align:middle;max-width:100%;box-sizing:border-box;overflow-wrap:anywhere}
.csv-draft-overview{padding:16px;border:1px solid #cbd8ee;border-radius:8px;background:#f5f8ff;overflow-wrap:anywhere}
.csv-draft-overview .content-title{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:16px}
.csv-draft-overview .content-title .ui-icon{flex:none;color:#335ac0}
.csv-draft-overview[data-state="none"]{background:#f7f9fc;border-color:#dce3ee}
.csv-draft-overview dl{display:grid;gap:10px;margin:0}
.csv-draft-overview dl>div{display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px}
.csv-draft-overview dt{color:#61769b;font-size:13px}
.csv-draft-overview dd{margin:0;color:#17335c;font-size:14px;font-weight:600;min-width:0}
.csv-draft-overview .m-help{margin-bottom:0}
.csv-draft-current{padding:10px 12px;border-left:3px solid #335ac0;background:#edf3ff;font-size:14px;color:#17335c;overflow-wrap:anywhere}
.csv-draft-current[data-dirty="true"]{font-weight:600}
.csv-draft-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:16px 0}
.csv-draft-actions>div{min-width:0}
.csv-draft-actions .button{max-width:100%}
.csv-draft-actions .m-help{margin:8px 0 0}
.csv-draft-transfer{margin:20px 0;padding-top:16px;border-top:1px solid #dce5f2}
.csv-draft-transfer>summary{cursor:pointer;font-weight:600;color:#335ac0;line-height:1.8}
.csv-draft-delete{margin-top:20px;padding-top:16px;border-top:1px solid #dce5f2}
.csv-draft-delete .m-help{margin:8px 0 0}
@media(max-width:600px){.csv-draft-actions{grid-template-columns:minmax(0,1fr);gap:16px}.csv-draft-overview{padding:12px}.csv-draft-overview dl>div{grid-template-columns:minmax(0,1fr);gap:2px}}
.csv-workbench>div[id$="-step"]{scroll-margin-top:85px}
@media(max-width:700px){.csv-mapping{grid-template-columns:1fr}.csv-tool{padding:16px}.csv-workbench .m-actions>.button{max-width:100%;white-space:normal}.csv-mobile-help{display:block}.csv-tabs{gap:4px;font-size:14px}.csv-tabs .type-tab{padding:12px 6px;gap:4px}.csv-tabs .ui-icon{width:17px;height:17px}.csv-guide-heading{flex-wrap:wrap}.csv-guide-scenes{grid-template-columns:1fr;gap:16px}.csv-guide-scenes figure{display:grid;grid-template-columns:86px minmax(0,1fr);align-items:center;gap:12px}.csv-guide-scenes p{margin-top:4px}}

/* 注目色(オレンジ, 2026-10-18): 「見てほしい・対応が要る」ものだけに使う。ボタン本体は青のまま。赤は危険・LIVE・未読専用 */
:root{--attn:#fe6207;--attn-strong:#c24a06;--attn-tint:#fff3ea;--attn-edge:#f9c7a3;--ok-text:#1f7a45}
.cm-kind-match{background:var(--attn-strong)}
.cm-match{border-color:var(--attn);box-shadow:0 6px 18px rgba(254,98,7,.12)}
.cm-match .cm-vs{color:var(--attn-strong)}
.cm-match .cm-reason{background:var(--attn-tint);color:var(--attn-strong)}
.cm-home-matches li{padding:10px 12px;margin-bottom:8px;border:0;border-left:4px solid var(--attn);border-radius:8px;background:var(--attn-tint)}
.cm-home-label{display:inline-flex;align-items:center;padding:1px 8px;border-radius:6px;background:var(--attn-strong);color:#fff;font-size:12px}
.join-alert:not(.award-alert){background:var(--attn-tint);border-left-color:var(--attn);color:var(--attn-strong)}
.rating-confirm .panel-count{color:var(--attn-strong);font-weight:800}
.shortage-line.is-short{color:var(--attn-strong)}
.readiness-ok{color:var(--ok-text);font-weight:700}
/* 募集一覧の注目色: 今日・明日開催の「本日／明日」と、参加前に知っておきたい「グラウンドなし」 */
.post-tags .day-chip{box-sizing:border-box;display:inline-flex;align-items:center;height:24px;margin:0;padding:0 9px;border-radius:4px;background:var(--attn-strong);color:#fff;font-size:12px;font-weight:800;line-height:1;white-space:nowrap}
.post-tags .cond-chip.attn{background:var(--attn-tint);border-color:var(--attn);color:var(--attn-strong)}

/* NEXT GAME (team home): one column, the answer in the middle, small icon buttons, the following events folded */
.next-body{display:grid;gap:12px}
.next-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0;color:#3d4c66;font-size:15px}.next-meta .ui-icon{width:18px;height:18px;color:var(--brand)}.next-meta svg+strong,.next-meta strong+svg,.next-meta span+.next-lineup-tag{margin-left:4px}
.next-body .event-countdown,.next-body .next-answer-label,.next-body .answer-buttons,.next-body .event-counts,.next-body .live-video{margin-top:0;margin-bottom:0}
.next-body .next-event-actions{justify-content:flex-start}.next-body .next-share{display:inline-flex;gap:8px;margin-left:auto}
.next-more>summary{cursor:pointer;color:var(--brand);font-size:14px;font-weight:700;padding:4px 0}
.next-more[open]>summary{margin-bottom:6px}
.next-btn-label{display:none}
/* three cells (開始まで / あなたの出欠 / 対戦成績), each with its own icon title; on a phone the answer comes first */
.next-body .next-row{display:grid;gap:0;border:1px solid var(--line,#d9e0ec);border-radius:8px;overflow:hidden}
.next-cell{display:grid;gap:8px;align-content:start;justify-items:start;padding:12px 14px;min-width:0}
.next-cell+.next-cell{border-top:1px solid var(--line,#d9e0ec)}
.next-cell-title,.next-body .event-countdown-label{display:flex;align-items:center;gap:6px;margin:0 0 8px;color:var(--brand);font-size:13px;font-weight:700}.next-cell>.next-cell-title{margin:0}.event-countdown.finished .event-countdown-label{font-size:16px}.next-cell-title .ui-icon{width:16px;height:16px}
.next-answer{order:-1}
.next-h2h-total{margin:0;color:#17335c;font-size:16px}.next-h2h-total span{font-weight:700}
.next-h2h-first{margin:0;color:#47556c;font-weight:700}
.next-h2h-more>summary{cursor:pointer;color:var(--brand);font-size:13px;font-weight:700}
.next-h2h-list{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:4px;font-size:13px;color:#3d4c66}
.next-h2h-list li{display:flex;align-items:center;gap:8px}
.h2h-link{margin-left:auto;font-weight:700;color:var(--brand);white-space:nowrap}
.h2h-mark{flex:none;width:16px;height:16px;border-radius:50%;box-sizing:border-box}
.h2h-mark.win{background:#fff;border:2px solid #17335c}.h2h-mark.lose{background:#17335c;border:2px solid #17335c}.h2h-mark.draw{visibility:hidden}
@media(min-width:701px){
.next-body .next-row{grid-template-columns:auto minmax(0,1fr)}
.next-body .next-row.has-h2h{grid-template-columns:auto minmax(0,1fr) auto}
.next-answer{order:0}
.next-cell+.next-cell{border-top:0;border-left:1px solid var(--line,#d9e0ec)}
}
/* icon-only buttons (PC with a mouse): on hover/focus the button widens and shows its title; the colours change too */
@media(hover:hover) and (min-width:701px){
body:not(.auth-page) .m-shell .button.icon-only[title]{overflow:hidden;white-space:nowrap;flex:none}
body:not(.auth-page) .m-shell .button.icon-only[title]:is(:hover,:focus-visible){width:auto;min-width:40px;padding:0 14px;background:var(--brand-tint2);border-color:var(--brand);color:var(--brand-deep)}
body:not(.auth-page) .m-shell .button.icon-only[title]:is(:hover,:focus-visible)::after{content:attr(title);font-size:14px}
body:not(.auth-page) .m-shell .button.icon-only.danger-outline[title]:is(:hover,:focus-visible){background:#fdecee;border-color:#d6334a;color:#b9253b}
}

/* intro cards (feature explanations, closable; remembered per account in app.js) */
.intro{margin:0 0 14px}
.intro-card{display:flex;gap:18px;align-items:center;padding:14px;border-radius:14px;background:#f5f8ff;border:1px solid #dbe4f5}
.intro-card[hidden],.intro-reopen[hidden]{display:none}
.intro-art{width:220px;max-width:38%;height:auto;flex:none;display:block}
.intro-body{flex:1;min-width:0}.intro-body p{margin:0 0 10px;line-height:1.7}
.intro-wide{padding:18px}.intro-wide .intro-card{flex-direction:column;align-items:stretch;background:transparent;border:0;padding:0}
.intro-wide .intro-art{width:100%;max-width:none}
.intro-points{margin:0 0 12px;display:grid;gap:10px}.intro-points dt{font-weight:700;color:var(--brand-deep)}.intro-points dd{margin:2px 0 0;line-height:1.7;color:#3d4c66}
.intro-reopen{margin-top:4px}
@media(max-width:600px){.intro-card:not(.intro-wide .intro-card){flex-direction:column;align-items:stretch}.intro-art{width:100%;max-width:none}}

/* match detail: one action row under the head, a jump nav, and the panels ordered by what comes next (upcoming: answer first; past: the record first) */
.event-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px}.event-bar-icons{display:inline-flex;gap:8px;margin-left:auto}
.event-jump{display:flex;flex-wrap:wrap;gap:6px 0;margin:0 0 14px}.event-jump:empty{display:none}.event-jump a{padding:2px 14px;border-left:1px solid #c9d6f3;font-size:14px;font-weight:700;color:var(--brand)}.event-jump a:first-child{border-left:0;padding-left:0}
.event-sections{display:flex;flex-direction:column}.event-sections>*{order:5}
.event-sections.is-upcoming>#my-answer{order:0}.event-sections.is-upcoming>#milestones{order:1}.event-sections.is-upcoming>#attendance{order:2}.event-sections.is-upcoming>#opponent-suggest{order:3}.event-sections.is-upcoming>#umpire-rating{order:4}
.event-sections.is-upcoming>#game-record{order:5}.event-sections.is-upcoming>#match-page{order:6}.event-sections.is-upcoming>#event-share{order:7}.event-sections.is-upcoming>#ground-nudge{order:8}
.event-sections.is-past>#game-record{order:1}.event-sections.is-past>#ground-nudge{order:2}.event-sections.is-past>#umpire-rating{order:3}.event-sections.is-past>#match-page{order:4}.event-sections.is-past>#opponent-suggest{order:6}
.event-sections>#event-manage{order:9}
.event-sections>[hidden]{display:none}.event-tabs{margin:0 0 14px}
/* match detail (GAME DAY): a small bright light with a glow slowly slides left and right along the blue line under the board */
.event-head .scoreboard{position:relative}
.event-head .scoreboard::after{content:"";position:absolute;left:0;bottom:-3px;width:110px;height:3px;border-radius:50%;pointer-events:none;
  background:radial-gradient(ellipse at center,#fff 0,#fff 25%,rgba(var(--night-glow),.9) 60%,transparent 100%);
  box-shadow:0 0 10px 3px rgba(255,255,255,.85),0 -2px 18px 6px rgba(var(--night-glow),.75);animation:board-sweep 5s ease-in-out infinite alternate}
@keyframes board-sweep{from{left:0}to{left:calc(100% - 110px)}}
/* 試合記録(GAME SET)の盤には光を走らせない(2026-10-29)。GAME DAY(予定の詳細)だけ */
.event-head.game-result .scoreboard::after{animation:none;display:none}
@media(prefers-reduced-motion:reduce){.event-head .scoreboard::after{animation:none;display:none}}

/* 対応が必要 (home): one box, a row each; the result rows unfold */
.todo{border-left:4px solid var(--attn)}.todo .panel-count{color:var(--attn-strong);font-weight:800}
.todo-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #e5eaf2}.todo-row>.ui-icon{width:20px;height:20px;flex:none;color:var(--attn-strong)}.todo-row>span:not(.todo-open){flex:1;min-width:0;font-weight:700;line-height:1.5}
.todo>.panel-title+.todo-row{border-top:0}
.todo-fold{border-top:1px solid #e5eaf2}.todo-fold>summary{list-style:none;cursor:pointer;border-top:0}.todo-fold>summary::-webkit-details-marker{display:none}
.todo-open{flex:none;color:var(--brand);font-size:14px;font-weight:700}.todo-fold[open] .todo-open{visibility:hidden}
.todo-fold>p{margin:4px 0 0;color:#3d4c66}
@media(max-width:600px){.todo-row{flex-wrap:wrap}.todo-row>span:not(.todo-open){flex:1 1 calc(100% - 34px)}.todo-row>.button{margin-left:30px}}
.event-bar .event-tabs{margin:0;flex:1 1 auto;min-width:0}.event-bar{justify-content:space-between}

/* この試合、成立する？: the explanation closes (remembered); the nearest game is open, the others fold to one line */
.readiness-intro{flex-direction:column;align-items:stretch;gap:8px;padding:0;background:none;border:0}.readiness-intro-text{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.readiness-intro-text .m-help{margin:0;flex:1 1 260px}
details.shortage-game>summary{list-style:none;cursor:pointer}details.shortage-game>summary::-webkit-details-marker{display:none}
.shortage-tags{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}.shortage-tag{padding:2px 10px;border-radius:6px;background:var(--attn-tint);color:var(--attn-strong);font-size:13px;font-weight:700;white-space:nowrap}
.shortage-chevron{flex:none;width:20px;height:20px;fill:none;stroke:var(--brand);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s}details.shortage-game[open] .shortage-chevron{transform:rotate(180deg)}
details.shortage-game[open] .shortage-tags{display:none}

/* 管理 tab: 2-column tiles (the whole tile is the link) */
.admin-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:10px}
.admin-tile{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon name" "icon text";gap:2px 12px;align-items:center;padding:14px 16px;border:1px solid #dbe4f5;border-radius:12px;background:#fff;color:inherit;text-decoration:none}
.admin-tile:hover,.admin-tile:focus-visible{background:var(--brand-tint2);border-color:var(--brand)}
.admin-tile>.ui-icon{grid-area:icon;width:34px;height:34px;padding:7px;border-radius:10px;background:var(--brand-tint);color:var(--brand);box-sizing:border-box}
.admin-tile>strong{grid-area:name;font-size:16px;color:var(--brand-deep)}.admin-tile>span:not(.count-badge){grid-area:text;font-size:13px;line-height:1.5;color:#4a5a72}
.admin-tile>.count-badge{position:absolute;top:10px;right:12px}
@media(max-width:600px){.admin-tiles{grid-template-columns:1fr}}
[data-pane][hidden]{display:none}.ptabs{margin:0 0 12px}
/* メンバー一覧: メール未確認(管理者だけに表示)。お知らせが届かないことを示す小さなラベル(ブランドの青) */
.member-unverified{display:inline-block;margin-top:2px;padding:1px 8px;border:1px solid var(--brand);border-radius:8px;color:var(--brand);font-size:12px;font-weight:700}
/* 招待からの登録: ニックネームの下の「名簿の「〇〇」さんですか？」(名簿は上にあるので、ここで気づけるように) */
.roster-hint{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:-4px 0 14px;padding:10px 12px;border-radius:8px;background:var(--brand-tint4);color:var(--brand-deep);font-size:14px;font-weight:700}
.roster-hint[hidden]{display:none}
.schedule-bar .page-tabs{margin:0;flex:1 1 auto;min-width:0}
/* 非会員が掲載した直後: 会員になるとできること(1回だけ) */
.guest-signup-list{margin:0 0 10px;padding-left:1.2em;line-height:1.8}

/* /my home: the お知らせ list is compact (one title row + the meta line, three at most) and its panel-head holds the icon button */
.home-notices .panel-head,.cm-home .panel-head{margin-bottom:10px}
.notice-list-compact .notice-row{padding:10px 14px;gap:2px}.notice-list-compact .notice-excerpt{display:none}
/* マイページ(チーム)の「前回の試合」: 直近の結果と自分の成績を一行で(成績画面まで行かなくても分かるように) */
.last-game{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;align-items:baseline;margin:0 0 14px;padding:12px 14px;border:1px solid var(--line,#d9e2f2);border-radius:8px;background:#fff;color:inherit}
.last-game-label{grid-row:span 2;padding:3px 10px;border-radius:8px;background:var(--brand-tint4);color:var(--brand);font-size:13px;font-weight:700}
.last-game strong{font-size:18px;color:var(--brand-deep)}
.last-game-meta,.last-game-mine{grid-column:2;font-size:13px;color:#4a5a72}
.last-game-mine{font-weight:700;color:var(--brand-deep)}
.last-game:hover,.last-game:focus-visible{background:var(--brand-tint2);border-color:var(--brand)}
/* かんたん入力の守備位置(その日の守備位置を選ぶボタンの列) */
.rx-pos{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0}
.rx-pos>small{flex-basis:100%;font-weight:700;color:#4a5a72}
.rx-pos-btn{min-width:40px;height:36px;padding:0 8px;border:1px solid var(--brand);border-radius:8px;background:#fff;color:var(--brand);font-weight:700}
.rx-pos-btn.active{background:var(--brand);color:#fff}

/* Import sources: service cards use the common button specification. */
.import-sources { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr)); gap:16px; }
.import-source { display:flex; flex-direction:column; gap:12px; padding:20px; border:1px solid var(--line,#dce3ef); border-radius:12px; min-width:0; }
.import-source.is-selected { border-color:#335ac0; background:#f3f6ff; }
.import-source h3 { display:flex; align-items:center; gap:8px; margin:0; }
.import-source p { flex:1; margin:0; overflow-wrap:anywhere; }
.import-source .button { align-self:flex-start; }

/* 公開記録の収集: controls keep the shared button sizes. */
.import-consent { display:flex; align-items:flex-start; gap:12px; padding:16px; background:#f3f6ff; border:1px solid #dce3ef; border-radius:8px; line-height:1.8; }
.import-consent input { flex:none; margin-top:7px; }
.collection-url,.collection-errors code { overflow-wrap:anywhere; }
.collection-actions form { margin:0; }
#collection-progress progress { display:block; width:100%; accent-color:#335ac0; margin:16px 0 8px; }
.import-years { display:flex; flex-wrap:wrap; gap:8px; }
.import-years .ground-option { display:flex; align-items:center; gap:6px; }
.collection-status { display:flex; align-items:center; gap:8px; }
.collection-spinner { display:inline-block; flex:0 0 18px; width:18px; height:18px; box-sizing:border-box; border:2px solid #d9e4fa; border-top-color:#335ac0; border-radius:50%; animation:collection-spin .8s linear infinite; }
.collection-timing dd { overflow-wrap:anywhere; }
.collection-timing time,.collection-timing [data-collection-elapsed] { font-variant-numeric:tabular-nums; }
.collection-timing small { color:#5c6f93; }
@keyframes collection-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { .collection-spinner { animation:none; } }
.import-source-table { overflow:auto; max-height:420px; margin-top:12px; }
.import-source-table table { width:100%; border-collapse:collapse; white-space:nowrap; }
.import-source-table th,.import-source-table td { padding:10px 12px; text-align:left; border-bottom:1px solid #e3eaf7; }
.import-source-details { margin:14px 0; }
.import-source-details summary { color:#335ac0; cursor:pointer; font-weight:700; }
.import-review-notes { padding-left:22px; line-height:1.9; }
.import-merge-form .button { align-self:flex-end; }
.switch-together-note{margin:16px 0 0;text-align:center;font-weight:700;color:#193968}

/* トップ：はじめての人の二択（募集を探す／チームを作る）と、絞り込みの折りたたみ */
.hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:22px}.hero-cta .button{gap:8px}.hero-cta-main{background:#fff;color:var(--brand-deeper);border:1px solid #fff}.hero-cta-main:hover{background:#eaf0ff}.hero-cta-sub{background:transparent;color:#fff;border:1px solid #fff;box-shadow:inset 0 0 0 1px #fff}.hero-cta-sub:hover{background:#ffffff1f}
.filter-toggle{display:inline-flex;align-items:center;gap:6px;background:#fff;color:var(--brand);border:1px solid #cbd7ed;border-radius:8px;font-weight:700;cursor:pointer;min-height:44px;padding:0 14px}.filter-toggle.open{background:#eaf0ff}.filter-toggle .ui-icon{width:18px;height:18px}.filter-more:not([hidden]){display:contents}
@media(max-width:600px){.hero-cta .button{flex:1 1 100%}}
/* /about 料金表：無料／お試し／プランの3つの見出しと、無料の要約・お試しの説明 */
.about-free-summary{margin:0 0 16px;padding:14px 18px;background:#eaf6ee;border:1px solid #bfe3cc;border-radius:12px;color:var(--ok-text);font-size:15px;line-height:1.8}.about-free-summary b{display:block;font-size:17px}
.about-plan-table .plan-group th{background:#eef3ff;color:var(--brand-deep);font-size:14px;font-weight:800;text-align:left;padding:10px 14px;border-top:2px solid #cbd7ed}
.about-plan-table .tri{font-size:14px;font-weight:800;color:var(--brand-vivid)}
.about-trial-box{margin:16px 0 0;padding:14px 18px;background:#fff;border:1px solid #cbd7ed;border-left:4px solid var(--brand-vivid);border-radius:12px}.about-trial-box strong{display:block;margin-bottom:4px;color:#20365f}.about-trial-box p{margin:0;color:#3d4c63;font-size:14px;line-height:1.8}

.summary-coverage-intro{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;align-items:center;margin:16px 0}
.summary-coverage-intro>svg{width:100%;display:block}
.summary-coverage-intro strong{color:#17335c}
.summary-coverage-table td{vertical-align:top}
.summary-coverage-table .ground-options{display:flex;flex-wrap:wrap;gap:8px}
.summary-coverage-table .ground-option{white-space:normal;line-height:1.6}
.summary-progress-row{padding:20px 0;border-bottom:1px solid #dce5f2}
.summary-progress-row:last-child{border-bottom:0}
.summary-progress-games{min-width:650px}
@media(max-width:700px){.summary-coverage-intro{grid-template-columns:80px minmax(0,1fr);gap:12px}.summary-coverage-table{min-width:640px}}
#csv-workbench[data-attachment] :is(#csv-add-games,#csv-games-mapping,#csv-list-back,#csv-results-back,#csv-results-actions,#csv-games-pending) { display:none; }

#csv-workbench[data-attachment] .csv-preparation > :is(h2,p,.csv-steps) { display:none; }

.import-resume-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:20px}
.import-resume-card{min-width:0;padding:20px;border:1px solid #dce5f2;border-radius:12px;background:#f8faff}
.import-resume-art{display:block;width:144px;max-width:100%;margin-bottom:16px}
.import-resume-card .content-title{margin:0 0 12px}
.import-resume-entry,.import-resume-pending{padding:16px 0;border-top:1px solid #dce5f2}
.import-resume-entry small{display:block;color:#607293;overflow-wrap:anywhere}
.import-resume-card .button{max-width:100%;white-space:normal}
.import-games-table{min-width:690px}
.import-game-cell{display:grid;gap:10px;align-content:start}
.import-game-cell>span{min-height:24px;white-space:nowrap}
.import-games-table .button{white-space:nowrap}
@media(max-width:700px){.import-resume-cards{grid-template-columns:minmax(0,1fr);gap:16px}.import-resume-card{padding:16px}.import-resume-art{width:120px}}

/* Excel import uses the same tables and next/save actions as clipboard input. */
.import-excel-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:0;margin:24px 0;list-style:none}
.import-excel-flow li{display:flex;align-items:flex-start;gap:10px;min-width:0}
.import-excel-flow li>span{display:grid;place-items:center;width:28px;height:28px;flex:none;border-radius:6px;background:#edf3ff;color:#335ac0;font-weight:800}
.import-excel-flow strong{display:block;font-size:14px;line-height:1.6;color:#17335c}
.import-excel-flow small{display:block;color:#61769b;line-height:1.7;margin-top:4px}
.import-excel-help{padding:16px;background:#f5f8ff;border:1px solid #dce5f2;border-radius:8px;margin:20px 0}
.import-excel-help summary,.excel-mapping-options>summary{cursor:pointer;color:#17335c;font-weight:700}
.excel-sheets{display:grid;gap:16px;margin:20px 0}
.excel-sheet{padding:16px;border:1px solid #dce5f2;border-radius:8px;min-width:0;background:#fff}
.excel-sheet h4{font-size:16px;color:#17335c;margin:0 0 4px;overflow-wrap:anywhere}
.excel-sheet .ground-options{flex-wrap:wrap;margin:12px 0;gap:8px}
.excel-sheet .ground-option{max-width:100%;white-space:normal}
.excel-mapping-options{margin-top:16px}
.excel-mapping-options .m-field{min-width:0}
#excel-board-choices{display:grid;gap:12px}
#excel-status,#excel-counts,#excel-file-name{overflow-wrap:anywhere}
@media(max-width:700px){.import-excel-flow{grid-template-columns:1fr;gap:16px}.excel-sheet{padding:12px}}
.migrate-start{margin-bottom:16px}.migrate-start .intro-card{margin:0}.migrate-start-text{flex:1;min-width:0}.migrate-start-text .panel-title{margin-top:0}
.start-progress{display:grid;gap:6px;margin-top:10px}.start-progress-count{color:var(--brand-deep)}.start-progress small{font-size:13px;color:#3d4c66}
.start-progress-bar{display:block;height:10px;border-radius:5px;background:#dbe7ff;overflow:hidden}.start-progress-bar i{display:block;height:100%;min-width:6px;border-radius:5px;background:var(--brand)}
/* トップ: 募集の絞り込みは1行（エリア・市区町村・日程・グラウンド）、空のときはイラスト付き、LIVE と School のバナーは半分ずつ */
.home-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 16px}
.home-filters .home-filter-select{display:grid;gap:4px;margin:0;min-width:0}.home-filters .home-filter-select>.ui-icon{display:none}
.home-filters .home-filter-select span{font-size:12px;font-weight:700;color:var(--brand-deep)}
.home-filters .home-filter-select select{min-width:150px;max-width:100%}
.home-filters .home-filter-choice{margin:0;display:grid;gap:4px}.home-filters .home-filter-choice legend{margin:0;padding:0;font-size:12px;color:var(--brand-deep)}
.home-filters .ground-options{gap:6px}.home-filters .ground-option{min-height:36px;padding:4px 12px;font-size:13px}
.home-filters .saved-filter{margin-left:auto;align-self:flex-end;min-height:36px;display:inline-flex;align-items:center}
.home-filters .home-filter-source{flex-basis:100%;font-size:12px;color:#5a6a86}
@media(max-width:700px){.home-filters{gap:10px}.home-filters .home-filter-select{flex:1 1 140px}.home-filters .home-filter-select select{width:100%;min-width:0}.home-filters .ground-option{min-height:40px}.home-filters .saved-filter{margin-left:0}}
.home-empty{display:grid;justify-items:center;gap:10px;padding:28px 16px 24px;text-align:center}
.home-empty .home-empty-art{width:min(100%,360px);height:auto;margin-bottom:6px}
.home-empty h3{margin:0;font-size:20px;line-height:1.5;color:var(--brand-deep)}.home-empty>p{margin:0;font-size:15px;line-height:1.8;color:#3d4c66}
.home-empty .empty-actions{margin-top:6px}.home-empty .empty-about{margin-top:8px}
.post-list .home-empty{grid-column:1/-1;width:100%;max-width:560px;margin:0 auto;box-sizing:border-box}.home-empty h3{text-wrap:balance}
.search-title-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px 18px;flex:none}
@media(max-width:760px){.search-title-links{justify-content:flex-start;margin-top:12px}}
.search-title-links{gap:10px}@media(max-width:760px){.search-title-links .search-post-cta{flex:1 1 100%;justify-content:center;order:-1}.search-title-links{gap:8px}.search-title-links .button{padding-left:12px;padding-right:12px}}

/* 年間記録ブック: 表紙の色・模様を本文にも使う（--bk-* は app.js が data-bk-* から入れる）。版（基本/ライト/プロ）の内容は book.html */
.book-themed{--bk-bg1:#335ac0;--bk-bg2:#1d3f9a;--bk-ink:#ffffff;--bk-accent:#ffce65}
.book-edition{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;margin:10px 0 0}
.book-edition-badge{display:inline-block;border-radius:8px;padding:4px 10px;background:var(--bk-bg1);color:var(--bk-ink);font-size:13px;font-weight:700}
.book-editions{margin:0 0 8px;padding:0;list-style:none;display:grid;gap:6px;font-size:13px}.book-editions b{display:inline-block;min-width:4.5em;margin-right:6px}
.book-page .book-sheet .panel-title{border-bottom:2px solid var(--bk-bg1);border-left:6px solid var(--bk-accent);padding-left:8px;padding-bottom:6px}
.book-page .book-sheet .rx-table thead th{background:var(--bk-bg1);color:var(--bk-ink)}
.book-page .book-sheet .stat-tiles b,.book-page .book-sheet .team-record b{color:var(--bk-bg1)}
.book-page .book-sheet:not(.book-cover-sheet){background-color:#fff}
.book-themed[data-bk-pattern=STRIPE] .book-sheet:not(.book-cover-sheet){background-image:repeating-linear-gradient(135deg,color-mix(in srgb,var(--bk-bg1) 5%,transparent) 0 12px,transparent 12px 30px)}
.book-themed[data-bk-pattern=DIAMOND] .book-sheet:not(.book-cover-sheet){background-image:conic-gradient(from 45deg at 50% 50%,color-mix(in srgb,var(--bk-bg1) 6%,transparent) 25%,transparent 0 50%,color-mix(in srgb,var(--bk-bg1) 6%,transparent) 0 75%,transparent 0);background-size:26px 26px}
@media print{@page{@bottom-center{content:counter(page);font-size:10px;color:#666}}.book-page,.book-page *{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
/* 年間記録ブック プロ版: 選手カード（1人1ページ）と注意書き */
.book-card-line{margin:8px 0 0;font-size:14px}
.book-note{margin:12px 0 0;font-size:12px;color:#5b6b85;text-align:center}
@media print{.book-page .book-card{break-before:page;page-break-before:always}.book-page .book-note{color:#444}}
.book-card-extra{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:12px}
.book-card-sub{margin:8px 0 4px;font-size:13px;color:#17335c}
.book-card-spray .spray-field{max-width:240px}.book-card-spray .spray-share{max-width:260px}.book-card-spray .spray-share b{font-size:16px}
.book-card-months svg{display:block;width:100%;max-width:300px;height:auto}
@media print{.book-page .book-card-extra{break-inside:avoid}}
.csv-reset-area{margin-bottom:32px}.csv-reset-area .button{margin:8px 0 16px}

/* 対戦予定の確認: 見てほしい対応なので注目色(オレンジ) */
.match-requests.attn{border-left:4px solid var(--attn)}.match-requests.attn .count-badge{color:var(--attn-strong)}.match-requests.attn .count-badge{background:var(--attn-tint)}
.match-request-team{display:inline-flex;align-items:center;gap:10px}.match-request-logo{width:44px;height:44px;border-radius:8px;object-fit:cover;flex:none}.match-request-team small{display:block;color:#4a5a72}
.match-request-place{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.match-request-place .ui-icon{width:16px;height:16px;color:var(--attn-strong)}
.card-preview{display:block;width:100%;max-width:420px;height:auto;aspect-ratio:1/1;border-radius:10px}
.shop-card .card-preview{border-radius:8px}
.set-in-list{margin:0 0 8px;padding:0;list-style:none}.set-in-list li{margin:4px 0}.set-in-list small{color:#5b6b85}
.game-photo-view{margin:0 0 12px}.game-photo-view img{display:block;max-width:100%;max-height:260px;border-radius:8px;border:1px solid #e3e9f4;object-fit:cover}

/* 新規登録の受付停止ページ：案内・再開予定・解除番号 */
.reg-complete .closed-message{white-space:pre-line}
.reg-complete .closed-until{display:flex;align-items:center;gap:6px;font-weight:700;color:var(--blue-dark,#1f3f95)}
.reg-complete .closed-until svg,.reg-complete .closed-unlock-lead svg{width:18px;height:18px;flex:none}
.closed-unlock{margin:20px 0;padding:16px;border:1px solid #d5def5;border-radius:8px;background:#f6f8ff;text-align:left}
.closed-unlock-lead{display:flex;align-items:center;gap:6px;font-weight:700;margin:0 0 10px}
.closed-unlock input{letter-spacing:.3em;font-size:20px;max-width:12em}
.closed-unlock .reg-code-boxes .code-box{letter-spacing:0;font-size:24px;max-width:none}

/* 改善・レビュー(/my/feedback) */
.feedback-hero{position:relative;margin:0 0 16px;border-radius:12px;overflow:hidden;background:#edf3ff}
.feedback-hero .feedback-art{display:block;width:100%;height:auto;aspect-ratio:720/136}
.feedback-hero p{margin:0;padding:10px 16px 14px;font-weight:700;color:#17335c}
.feedback-quote{display:flex;align-items:flex-start;gap:8px;margin:10px 0 14px;font-size:14px}
.feedback-quote input{margin-top:3px}
.feedback-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.feedback-list li{padding:12px 14px;border:1px solid #d5def5;border-radius:8px;background:#fff}
.feedback-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.feedback-kind{padding:2px 8px;border-radius:4px;background:#e8eefb;color:#335ac0;font-size:12px;font-weight:700}
.feedback-status{margin-left:auto;font-size:12px;font-weight:700;color:#6b7280}
.feedback-status.status-done{color:var(--ok-text,#1b7a43)}
.feedback-body{margin:8px 0 6px;white-space:pre-wrap}
@media(max-width:700px){.feedback-hero .feedback-art{height:120px}}

/* 天気（予定の一覧・次の予定・予定の詳細）。雨の可能性が高いときは注目色（オレンジ）のラベル */
.event-weather{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:4px;font-size:13px;color:#264676}
.event-weather .weather-icon{width:22px;height:22px;flex:none}
.event-weather b{font-weight:700}
.event-weather small{color:var(--muted,#5b6578);font-size:12px}
.event-weather .weather-warn{display:inline-flex;align-items:center;gap:3px;padding:1px 8px;border-radius:4px;background:var(--attn-tint,#fff1e6);color:var(--attn-strong,#c24a06);font-style:normal;font-weight:700;font-size:12px}
.event-weather .weather-warn svg{width:14px;height:14px;flex:none}
.event-weather-line{margin:0 0 8px}
.next-meta .event-weather{margin:0 0 0 10px}

/* 改善・レビュー：ひとことを書いた方への、チームへのプレゼント（4つから選ぶ） */
.feedback-gifts{border:1px solid #d5def5;border-radius:8px;padding:12px 14px;background:#f6f8ff}
.feedback-gifts legend{display:flex;align-items:center;gap:6px;font-weight:700;padding:0 6px}
.feedback-gift-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.feedback-gift{position:relative;display:block;cursor:pointer}
.feedback-gift input{position:absolute;opacity:0;width:1px;height:1px}
.feedback-gift-body{display:grid;gap:4px;padding:8px;border:2px solid #d5def5;border-radius:8px;background:#fff;height:100%}
.feedback-gift input:checked+.feedback-gift-body{border-color:var(--brand,#335ac0);box-shadow:0 0 0 2px #cdd9f7}
.feedback-gift input:focus-visible+.feedback-gift-body{outline:3px solid var(--brand-soft,#cdd9f7);outline-offset:2px}
.feedback-gift.owned{opacity:.55;cursor:not-allowed}
.feedback-gift-preview{display:block;padding:0;background:transparent}
.feedback-gift-preview .set-part{aspect-ratio:auto;max-height:120px;overflow:hidden;border-radius:6px;background:#f4f7fd}
.feedback-gift-preview .set-part svg{height:auto;max-height:120px}
.feedback-gift small{color:var(--muted,#5b6578)}
.feedback-gift-done{display:flex;align-items:center;gap:6px}
.feedback-gift-done svg{width:18px;height:18px;flex:none;color:#d6334a}
@media(max-width:700px){.feedback-gift-list{grid-template-columns:1fr}}

/* 持っている商品(/my/team/items) */
.team-items-count{margin-left:10px;font-size:13px;font-weight:400;color:var(--muted,#5b6578)}
.team-items-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.team-item{display:grid;grid-template-columns:minmax(0,200px) minmax(0,1fr);gap:14px;align-items:start;padding:10px;border:1px solid #d5def5;border-radius:8px;background:#fff}
.team-item-preview{display:block;padding:0;background:transparent}
.team-item-preview .set-part{aspect-ratio:auto;max-height:130px;overflow:hidden;border-radius:6px;background:#f4f7fd}
.team-item-preview .set-part svg{height:auto;max-height:130px}
.team-item-info{display:grid;gap:4px}
.team-item-info small{color:var(--muted,#5b6578)}
.team-item-plan{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;background:var(--attn-tint,#fff1e6);color:var(--attn-strong,#c24a06);font-size:12px;font-weight:700;width:max-content;max-width:100%}
.team-item-plan svg{width:14px;height:14px;flex:none}
@media(max-width:700px){.team-item{grid-template-columns:1fr}}

/* 試合の流れのガイド (my/guide-parts・my/guide-game): 進み具合の帯・チームホームのパネル・使い方ページ。「次はここ」は注目色（ラベル・数字・帯まで。ボタンは青のまま） */
.flow-intro{margin:0 0 14px}.flow-bar{margin:0}
.flow-steps{list-style:none;margin:0 0 12px;padding:0;display:flex;gap:4px}
.flow-bar .flow-steps li{border:0;padding:0;margin:0;background:none;border-radius:0;box-shadow:none;flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;font-size:12px;line-height:1.4;color:#5b6578;position:relative;overflow-wrap:anywhere}
.flow-bar .flow-steps li+li::before{content:"";position:absolute;top:14px;right:50%;width:100%;height:3px;background:#dbe5fb;z-index:0}
.flow-bar .flow-steps li.done+li::before,.flow-bar .flow-steps li.skipped+li::before{background:var(--brand)}
.flow-no{position:relative;z-index:1;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#fff;border:2px solid #c9d6f3;color:#5b6578;font-weight:800;font-size:14px}
.flow-no .ui-icon{width:16px;height:16px}
.flow-steps li.done .flow-no,.flow-steps li.skipped .flow-no{background:var(--brand);border-color:var(--brand);color:#fff}
.flow-steps li.current .flow-no{background:var(--attn-strong);border-color:var(--attn-strong);color:#fff}
.flow-steps li.current .flow-name{color:var(--attn-strong);font-weight:700}
.flow-skip{font-size:11px;color:#5b6578}
.flow-now{padding:12px 14px;border-radius:12px;background:var(--attn-tint);border-left:5px solid var(--attn-strong)}
.flow-now.is-finished{background:#eef8f1;border-left-color:var(--ok-text,#1f7a45)}
.flow-now-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 6px}.flow-now-head strong{font-size:16px;color:var(--brand-deep)}
.flow-now-hint{margin:0 0 10px;line-height:1.7;color:var(--text,#1f2a44)}
.flow-badge{display:inline-block;padding:2px 8px;border-radius:4px;background:var(--attn-strong);color:#fff;font-size:12px;font-weight:700;line-height:1.6}
.flow-now.is-finished .flow-badge{background:var(--ok-text,#1f7a45)}
.flow-choice{margin:10px 0 0;font-size:13px;line-height:1.7}.flow-choice b{display:block;color:var(--attn-strong)}
.flow-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}
.flow-home .umpire-start-list li[aria-current="step"]{border-color:var(--attn);background:var(--attn-tint)}
.flow-home .umpire-start-list li[aria-current="step"] .umpire-start-mark{background:var(--attn-strong)}
.flow-home .flow-badge{margin-right:6px}.flow-next-name{color:var(--attn-strong)}.flow-home-foot{margin:10px 0 0}
.guide-hero,.guide-step{display:grid;gap:12px}
.guide-art{width:100%;max-width:360px;height:auto;display:block;margin:0 auto}
.panel-title-icon.guide-step-no{font-weight:800;font-size:18px;color:var(--brand)}
.guide-why{margin:0;padding:10px 12px;background:#f4f7ff;border-radius:10px;line-height:1.7}
.guide-todo{margin:0;padding-left:1.4em;display:grid;gap:6px;line-height:1.7}
.guide-choice{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.guide-choice-card{border:1px solid #dbe4f5;border-radius:12px;padding:12px 14px;display:grid;gap:6px;align-content:start}.guide-choice-card h3{margin:0;font-size:16px}.guide-choice-card p{margin:0;font-size:14px;line-height:1.7}
.guide-choice-card.is-first{border-color:var(--attn);background:var(--attn-tint)}.guide-choice-card .flow-badge{justify-self:start}
.guide-card{display:grid;grid-template-columns:minmax(0,240px) 1fr;gap:16px;align-items:center}.guide-card .guide-art{max-width:none}
.guide-card strong{display:block;font-size:18px;color:var(--brand-deep);margin-bottom:4px}.guide-card p{margin:0 0 10px;line-height:1.7}
@media(min-width:900px){
.guide-step,.guide-hero{grid-template-columns:minmax(0,400px) 1fr;column-gap:28px;align-items:start}
.guide-step>.panel-title{grid-column:1/-1}
.guide-step>.guide-art{grid-column:1;grid-row:2/span 4;max-width:none}
.guide-hero>.guide-art{grid-column:1;grid-row:1;max-width:none}
.guide-step>:not(.panel-title):not(.guide-art){grid-column:2}
.guide-step .guide-choice{grid-template-columns:1fr}
.guide-hero>p{grid-column:2;grid-row:1;align-self:center}
}
@media(max-width:700px){.guide-choice{grid-template-columns:1fr}.guide-card{grid-template-columns:1fr}.flow-steps li{font-size:11px}}

/* data-download-busy: the file link while the file is made (disabled, with a small spinner) */
.button.is-loading{opacity:.7;pointer-events:none;cursor:progress}
.busy-spinner.small{width:16px;height:16px;border-width:2px;margin-right:8px;flex:0 0 16px}

/* SNSに投稿 (試合結果のダイアログ, server/docs/sns.md) */
.sns-dialog{box-sizing:border-box;width:min(820px,calc(100vw - 24px));max-width:none;max-height:calc(100dvh - 32px);padding:20px;border:1px solid #cbd8ee;border-radius:8px;color:#17335c;background:#fff;overflow:auto;overscroll-behavior:contain}
.sns-dialog::backdrop{background:rgba(15,32,62,.58)}
.sns-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.sns-dialog-head .panel-title{display:flex;align-items:center;gap:12px;margin:0}
.sns-dialog-head .panel-title-icon{margin:0}
.sns-target{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0}
.sns-target-badge{padding:2px 8px;border-radius:4px;font-size:12px;font-weight:700;color:var(--attn-strong,#c24a06);background:var(--attn-tint,#fff1e8)}
.sns-body{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:20px;align-items:start}
.sns-card{margin:0;display:grid;gap:10px}
.sns-card img{display:block;width:100%;height:auto;aspect-ratio:1/1;border-radius:8px;background:#edf3ff}
.sns-form textarea{min-height:170px}
.sns-count{margin:4px 0 12px;font-size:13px;text-align:right}
.sns-count small{margin-left:6px;color:#5b6f8f}
.sns-count.over{color:#d6334a;font-weight:700}
.sns-history{margin:16px 0 0;padding:0;list-style:none;font-size:13px;display:grid;gap:4px}
.sns-history li{display:flex;flex-wrap:wrap;gap:8px}
@media(max-width:700px){.sns-body{grid-template-columns:1fr}.sns-dialog{padding:14px}}
.sns-logo{display:block;width:24px;height:24px;border-radius:5px}
.sns-logo.sm{width:20px;height:20px}
.panel-title-icon .sns-logo{width:22px;height:22px}
.sns-card-actions{margin-top:12px}
.sns-size{margin:0}
.card-tags-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
@media(max-width:700px){.card-tags-grid{grid-template-columns:1fr}}
.sns-extras{margin:0;border:1px solid #d6e0f2;border-radius:8px;background:#fff}
.sns-extras summary{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;cursor:pointer;font-weight:700;font-size:14px;color:#264676;list-style:none}
.sns-extras summary::-webkit-details-marker{display:none}
.sns-extras summary::after{content:"";margin-left:auto;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .15s}
.sns-extras[open] summary::after{transform:rotate(-135deg)}
.sns-extras summary b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;color:var(--brand)}
.sns-extras .ground-options,.sns-extras small{margin:0 12px 12px}
.sns-extras small{display:block;margin-top:8px;color:#5b6f8f}
.sns-extras .ground-option.is-off{opacity:.45;cursor:not-allowed}
/* 投稿のボタン（文をコピー・Xに投稿・Instagramに投稿）: PCでは40×40のアイコンだけ、マウスを載せる・フォーカスすると名前が広がる。スマホ・タッチでは名前を出したまま */
.sns-form .m-actions .sns-act{white-space:nowrap}
.sns-form .m-actions .sns-act .sns-logo{flex:none}
@media(hover:hover) and (min-width:701px){
body:not(.auth-page) .m-shell .sns-form .m-actions .sns-act{width:40px;min-width:40px;height:40px;min-height:40px;padding:0;gap:0;justify-content:center;overflow:hidden;flex:none}
.sns-form .m-actions .sns-act .sns-act-label{display:none}
body:not(.auth-page) .m-shell .sns-form .m-actions .sns-act:is(:hover,:focus-visible,.is-done){width:auto;padding:0 14px;gap:8px}
.sns-form .m-actions .sns-act:is(:hover,:focus-visible,.is-done) .sns-act-label{display:inline}
}

/* 成績の表: 各項目の1位は数字を金メダル色の角丸の四角で囲む(同率は全員。規定に届かない人は率の項目の対象外) */
.stat-table .leader{display:inline-block;padding:1px 8px;border-radius:8px;border:1px solid #d99a00;background:linear-gradient(180deg,#ffe27a,#f6c33b);color:#4a3200;font-weight:800;box-shadow:0 1px 0 #fff8 inset}
@media(max-width:600px){.stat-table .leader{padding:1px 5px}}

.sns-card img{aspect-ratio:auto}
.sns-stage{position:relative;width:100%;margin:0 auto}
.sns-stage[data-size=feed]{max-width:416px}
.sns-stage[data-size=story]{max-width:292px}
.sns-handles{position:absolute;inset:0;pointer-events:none}
.sns-handle{position:absolute;left:0;right:0;box-sizing:border-box;border:2px dashed #fff;border-radius:6px;background:rgba(255,255,255,.14);cursor:grab;pointer-events:auto;touch-action:none}
.sns-handle.is-drag{cursor:grabbing;background:rgba(255,255,255,.26)}
.sns-handle span{position:absolute;left:4px;top:2px;padding:1px 6px;border-radius:4px;font-size:11px;font-weight:700;line-height:1.4;color:var(--brand-deep);background:#fff;pointer-events:none}
.sns-nudges{margin:0 12px 12px}
.sns-nudges .m-help{display:flex;align-items:flex-start;gap:6px;margin:0 0 8px}
.sns-nudge-rows{display:grid;gap:6px;margin-bottom:10px}
.sns-nudge-row{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:#264676}
.sns-nudge-row span{flex:1;min-width:0}
.sns-nudge-down .ui-icon{transform:rotate(180deg)}

/* SNS連携: 投稿の履歴 */
.sns-log{margin:0;padding:0;list-style:none;display:grid;gap:0}
.sns-log li{display:grid;grid-template-columns:96px 56px 48px minmax(0,1fr) auto;align-items:start;gap:8px;padding:10px 0;border-bottom:1px solid #dfe8f6;font-size:14px}
.sns-log li:last-child{border-bottom:0}
.sns-log-kind{color:#5b6f8f}
.sns-log-status{justify-self:start;padding:1px 8px;border-radius:4px;font-size:12px;font-weight:700}
.sns-log-status.ok{color:var(--ok-text,#1f7a3d);background:#e9f6ee}
.sns-log-status.ng{color:#d6334a;background:#fdecef}
.sns-log-body{display:grid;gap:2px}
.sns-log-body small{color:#d6334a}
.m-notice.attn{display:flex;gap:8px;align-items:flex-start;color:var(--attn-strong,#c24a06);background:var(--attn-tint,#fff1e8);border-color:var(--attn,#fe6207)}
@media(max-width:700px){.sns-log li{grid-template-columns:auto auto auto;gap:6px 8px}.sns-log-body{grid-column:1/-1}}

.m-field .deadline-row{display:flex;gap:8px;align-items:center}.m-field .deadline-row input{flex:1 1 0;min-width:0;width:auto}

@media(max-width:700px){.scoreboard-head{flex-wrap:wrap;min-width:0;row-gap:6px}.scoreboard-head .official-badge,.scoreboard-head .rating-badge,.scoreboard-head .official-badge+.rating-badge{margin-left:0}.scoreboard-head .official-badge,.scoreboard-head .rating-badge{order:5}}

/* 登録フォームで規約を同じ画面の上に表示する (legal-dialog.js) */
.legal-dialog{width:min(720px,calc(100% - 32px));max-height:85vh;padding:0;border:0;border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.25);overflow:hidden}
.legal-dialog[open]{display:flex;flex-direction:column}
.legal-dialog::backdrop{background:rgba(23,51,92,.45)}
.legal-dialog-body{overflow:auto;padding:20px 24px;flex:1;min-height:0}
.legal-dialog-foot{padding:12px 24px;border-top:1px solid #dae4f6;text-align:center}

/* 規約の同意画面: 「同意して続ける」を左、「同意しない」を右に1行で (legal/consent.html) */
.consent-actions{display:flex;justify-content:space-between;align-items:stretch;gap:8px;margin:16px 0}
.consent-actions form{margin:0;display:flex}
.consent-actions .button{height:100%}

/* この試合、成立する？：今週の全試合・チェック・場所/天気/距離・「ほかの方法」の⋯ポップオーバー */
.shortage-items .readiness-act{display:flex;align-items:center;gap:6px}
.shortage-items .readiness-act .readiness-more{grid-column:auto;position:relative;flex:none}
.readiness-more>summary.icon-only{display:inline-flex;align-items:center;justify-content:center;list-style:none;padding:0;margin:0}
.readiness-more>summary::-webkit-details-marker{display:none}
.readiness-more[open]>summary{margin-bottom:0}
.readiness-more .shortage-actions{position:absolute;right:0;top:calc(100% + 4px);z-index:20;min-width:220px;padding:8px;border:1px solid #cfd9ee;border-radius:12px;background:#fff;box-shadow:0 8px 24px rgba(23,51,92,.18);flex-direction:column;align-items:stretch}
.readiness-more .shortage-actions .button{width:100%;justify-content:flex-start;white-space:nowrap}
.readiness-place{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin:2px 0 6px;font-size:13px;color:#5b6b86}
.readiness-place .ui-icon{width:15px;height:15px;vertical-align:-3px;margin-right:3px}
.readiness-place .readiness-distance{font-weight:700;color:var(--brand)}
.readiness-okline{display:flex;align-items:center;gap:6px;color:var(--ok-text);font-weight:700}
.readiness-okline .ui-icon,.shortage-tag.is-ok .ui-icon{width:18px;height:18px;padding:2px;border-radius:50%;background:var(--ok-text);color:#fff;stroke-width:3}
.shortage-tag.is-ok{display:inline-flex;align-items:center;gap:4px;color:var(--ok-text);font-weight:700}
.shortage-items .readiness-item.is-done .readiness-label .ui-icon{background:#e3f4ea;color:var(--ok-text)}
.shortage-game.is-ready>summary .svc-status{background:#e3f4ea;color:var(--ok-text)}
@media(max-width:700px){
 .shortage-items .readiness-act .readiness-more>summary.icon-only{width:40px;min-width:40px}
 .shortage-items .readiness-act .button:not(.icon-only){flex:1}
}

/* 表の見出し（打順・選手／投手／選手）を、下の行の選手名の文字と同じ位置から始める（左揃え＋打順・写真・背番号の幅だけ内側へ） */
.stat-table.head-bat thead th:first-child,.rx-result-grid thead tr:first-child th:first-child{text-align:left;padding-left:68px}
.stat-table.head-pit thead th:first-child{text-align:left;padding-left:46px}
.stat-table:not(.recent-table) thead th.name{text-align:left;padding-left:40px}
.stat-table:not(.recent-table) tbody th.name{text-align:left}
/* 試合結果（チーム成績）: 日付｜相手ロゴ・名前＋投手情報｜スコア */
.game-opp{display:flex;align-items:center;gap:10px;min-width:0}.game-opp strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.game-opp-logo{flex:none;width:32px;height:32px;border-radius:50%;object-fit:cover;background:var(--brand-tint4);display:inline-grid;place-items:center;color:var(--brand);font-size:14px;font-weight:800}
.game-vs .game-details{display:flex;flex-wrap:wrap;gap:2px 12px;margin:4px 0 0 42px;font-size:12px}.game-details span{white-space:nowrap}
/* 試合結果の行: 日付とスコアは、ロゴ・相手名の行（1行目）の高さの中央に合わせる */
.game-list .game-row{align-items:start}.game-list .game-date{line-height:32px}.game-list .game-score{min-height:32px}

/* 選手ページのインタビュー */
.public-interview{margin:0}.public-interview dt{margin:16px 0 6px;font-weight:700;color:#17335c}.public-interview dt:first-child{margin-top:0}
.public-interview dt::before{content:"Q. ";color:#335ac0}.public-interview dd{margin:0;padding:10px 12px;background:#f3f6fc;border-radius:8px;white-space:pre-wrap;overflow-wrap:anywhere}

/* 歴代の監督 */
.mgr-list{display:grid;gap:12px}.mgr-item{border:1px solid #dbe4f3;border-radius:8px;padding:12px 14px;background:#fff}
.mgr-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px}.mgr-name{font-size:18px;color:#17335c}.mgr-period{color:#5d6b82;font-size:14px}
.mgr-memo{margin:6px 0 0;color:#33405a}.mgr-none{margin:8px 0 0;color:#5d6b82;font-size:14px}
.mgr-summary{margin:10px 0 0;padding:8px 12px;background:#edf3ff;border-radius:8px;color:#17335c;font-weight:700}
.mgr-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:8px;margin:10px 0 0}
.mgr-stats>div{text-align:center;background:#f3f6fc;border-radius:8px;padding:6px 4px}.mgr-stats dt{font-size:12px;color:#5d6b82}.mgr-stats dd{margin:0;font-weight:700;font-size:16px;color:#17335c}
.mgr-edit{margin-top:10px}.mgr-edit summary{cursor:pointer;color:#335ac0;font-weight:700}.mgr-period-field select{margin-right:6px}
.mgr-photo{width:56px;height:56px;border-radius:8px;object-fit:cover;background:#edf3ff}.mgr-photo-now{display:flex;align-items:center;gap:12px;margin-top:6px}

/* チームのホームページ紹介(/team-homepage)。チームHPの話題なので色の制限なし */
.hp-intro-page .about-hero .hp-intro-art{display:block;width:100%;height:auto}
.hp-intro-url-wrap{max-width:620px;margin:0 auto}.hp-intro-url-wrap .hp-intro-art{display:block;width:100%;height:auto}
.hp-intro-url-note{max-width:620px;margin:8px auto 0;font-size:15px;line-height:1.85;color:#3d4c63}
.hp-intro-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.hp-intro-list article{display:flex;gap:14px;padding:18px 20px;border:1px solid #dae3f2;border-radius:16px;background:#fff}
.hp-intro-icon{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#fff0e2;color:#e8590c}.hp-intro-icon .ui-icon{width:24px;height:24px}
.hp-intro-list h3{margin:0 0 6px;font-size:17px;color:#20365f}.hp-intro-list p{margin:0;line-height:1.7;color:#4a5a78}
@media(max-width:760px){.hp-intro-list{grid-template-columns:1fr}}
.hp-intro-page .about-hero .hp-hero-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.hp-intro-page .about-hero .hp-hero-cta{background:#fff;color:#b34608;border:1px solid #fff;font-weight:800}.hp-intro-page .about-hero .hp-hero-cta:hover{background:#fff4e8;color:#b34608}
.hp-intro-page .about-hero .hp-hero-sub{background:transparent;color:#fff;border:1px solid #ffffffaa}.hp-intro-page .about-hero .hp-hero-sub:hover{background:#ffffff1f;color:#fff}
/* /team-homepage 下部の「ハートを押してください」(LIVE 視聴画面の応援と同じ飛ぶ演出) */
.hp-heart{display:grid;justify-items:center;gap:10px;margin-top:22px}
.hp-heart-text{margin:0;font-size:15px;font-weight:700;color:#20365f}
.hp-heart-btn{position:relative;display:inline-flex;align-items:center;gap:10px;min-height:56px;padding:0 24px;border:2px solid #f3c6cd;border-radius:8px;background:#fff;color:#d6334a;font-size:20px;font-weight:800;cursor:pointer;overflow:visible}
.hp-heart-btn:hover{border-color:#d6334a}.hp-heart-btn:focus-visible{outline:3px solid #d6334a;outline-offset:3px}
.hp-heart-icon .ui-icon{width:28px;height:28px;color:#d6334a;fill:#d6334a}
.hp-heart-btn.hit .hp-heart-icon{animation:hp-heart-pop .3s ease}
.hp-heart-btn b[hidden],.hp-heart-first[hidden]{display:none}
.hp-heart-first{margin:0;font-size:13px;color:#5a6b8c}
.hp-heart-fly{position:absolute;bottom:60%;width:34px;height:34px;pointer-events:none;z-index:3;animation:hp-heart-fly 1s cubic-bezier(.2,.7,.3,1) forwards}
.hp-heart-fly svg{display:block;width:100%;height:100%}
@keyframes hp-heart-fly{0%{opacity:0;transform:translate(0,0) scale(.4) rotate(0)}15%{opacity:1}100%{opacity:0;transform:translate(var(--dx),-150px) scale(var(--s)) rotate(var(--rot))}}
@keyframes hp-heart-pop{0%{transform:scale(1)}40%{transform:scale(1.35)}100%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.hp-heart-btn.hit .hp-heart-icon,.hp-heart-fly{animation:none}}
/* ハートを他のページ(トップの School 帯・/school)にも置く */
.hp-heart-compact{margin:0;gap:8px}.hp-heart-compact .hp-heart-text{font-size:13px;color:#17335c}
.hp-heart-on-dark{margin-top:20px}.hp-heart-on-dark .hp-heart-text{color:#fff}.hp-heart-on-dark .hp-heart-first{color:#e0eaff}
/* 再調整: School 帯は絵を背景にして空いた所にハート / /school はハートを最初(ヒーローの絵の下)に / トップのヒーローに薄い背景の絵 */
.school-top-hero-art{display:grid;gap:18px;justify-items:center;align-self:center}
.hp-heart-hero{margin:0}.hp-heart-hero .hp-heart-text{color:#17335c}
.design-atlas .discovery-hero{background:url('/images/home-hero-bg.svg') center bottom/cover no-repeat,var(--brand-vivid)}
.hp-heart-compact .hp-heart-first{display:none}
.area-gps{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:10px}.area-gps small{color:#5a6b8c}
/* /my「この試合、成立する？」: 開閉は向きが変わる矢印だけ / 「ほかの方法」は隣のボタンと同じ見た目で、行の下に開く */
body:not(.auth-page) .m-shell .panel-fold.icon-only{width:40px;min-width:40px;height:40px;min-height:40px;padding:0}
.panel-fold .ui-icon{transform:rotate(-90deg);transition:transform .15s}.panel-fold[aria-expanded="false"] .ui-icon{transform:rotate(90deg)}
.shortage-items .readiness-act{flex-wrap:wrap}
.readiness-more-toggle .ui-icon:last-child{margin-left:auto;transform:rotate(90deg);transition:transform .15s}.readiness-more-toggle[aria-expanded="true"] .ui-icon:last-child{transform:rotate(-90deg)}
.shortage-items .readiness-act .readiness-more-body{flex:1 1 100%;margin-top:2px}.readiness-more-body[hidden]{display:none!important}
@media(max-width:700px){.shortage-items .readiness-act .button.readiness-more-toggle:not(.icon-only){flex:1}}
.shortage-items .readiness-act .button.icon-only{flex:none}
/* SNS連携: Instagramの準備手順 */
.ig-guide{margin:0 0 14px;border:1px solid #d5e2fb;border-radius:12px;background:#fff;padding:0 18px}
.ig-guide summary{cursor:pointer;font-weight:700;color:#335ac0;padding:12px 0}
.ig-guide ol{margin:0 0 8px;padding-left:22px;line-height:1.9}
.ig-guide small{display:block;margin:0 0 12px;color:#5b6b83}
.ig-guide p{margin:0 0 12px;line-height:1.8}
.ig-flow{display:flex;align-items:center;justify-content:center;gap:8px;margin:14px 0;padding:0;list-style:none}
.ig-flow li{flex:1 1 0;max-width:200px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 8px;border-radius:12px;background:#edf3ff;text-align:center}
.ig-flow li.ig-flow-arrow{flex:0 0 auto;max-width:none;padding:0;background:none;font-size:22px;font-weight:700;color:#335ac0}
.ig-flow svg{width:96px;height:auto}.ig-flow span{font-size:13px;color:#5b6b83}
.ig-steps{margin:0 0 12px;padding-left:24px;line-height:1.9}.ig-steps li{margin-bottom:4px}
.ig-note{display:block;color:#5b6b83}
.ig-flow-line{display:flex;gap:8px;align-items:flex-start;margin:0 0 10px;line-height:1.7}.ig-flow-line .ui-icon{flex:none;margin-top:4px}
@media(max-width:600px){.ig-flow{flex-direction:column}.ig-flow li{max-width:none;width:100%}.ig-flow li.ig-flow-arrow{width:auto}}

/* 結果カードの勝敗別見本 */
.shop-result-examples { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; max-width:1100px; margin:20px 0; }
.shop-result-examples figure { margin:0; min-width:0; }
.shop-result-examples figcaption { margin:0 0 10px; font-size:14px; font-weight:800; color:var(--text); }
.shop-result-examples .card-preview { max-width:none; }
@media(max-width:600px) { .shop-result-examples { grid-template-columns:minmax(0,1fr); gap:24px; max-width:420px; margin-inline:auto; } }

/* 詳しい設定は現在の状態を見てから、目的ごとのページで編集する。 */
.settings-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:16px; }
.settings-link { min-width:0; padding:18px; display:flex; flex-direction:column; align-items:flex-start; gap:16px; border:1px solid var(--line,#dce4ef); border-radius:12px; background:var(--surface,#fff); }
.settings-link-info { display:flex; align-items:flex-start; gap:12px; min-width:0; }
.settings-link-info>.ui-icon { color:#335ac0; flex:none; width:22px; height:22px; margin-top:2px; }
.settings-link-info>div { min-width:0; }
.settings-link h3 { margin:0; font-size:15px; line-height:1.5; }
.settings-link p { margin:5px 0 0; font-size:13px; color:var(--muted,#607087); line-height:1.7; overflow-wrap:anywhere; }
.settings-link>.button { margin-top:auto; }
.settings-back { margin:0 0 18px; }
.settings-profile-summary { display:flex; gap:14px; align-items:center; margin:0 0 16px; }
.settings-profile-summary img { width:56px; height:56px; object-fit:cover; border-radius:50%; }
.settings-target { padding:12px 16px; margin:0 0 18px; background:var(--attn-tint,#fff2e8); border-radius:8px; display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; }
.settings-target strong { color:var(--attn-strong,#c24a06); overflow-wrap:anywhere; }
/* The visually hidden attendance radio must not take the viewport's width. */
.ac-option { position:relative; }
.ac-option input[type=radio] { width:1px; height:1px; margin:0; padding:0; }
@media(max-width:600px) { .settings-links { grid-template-columns:minmax(0,1fr); } .settings-link { padding:16px; } }
/* 記録の引っ越し (/my/records/move, 取り込み画面の「おすすめの進め方」, 取り込んだ試合・合計の「以前のサービスで見る」). */
.move-time{display:inline-block;margin-left:8px;font-size:12px;font-weight:600;color:#5d6b82;vertical-align:1px}
.move-progress{margin:0 0 12px}
.move-steps>li[aria-current="step"]{border-color:var(--attn);background:var(--attn-tint)}
.move-steps>li[aria-current="step"] .umpire-start-mark{background:var(--attn-strong)}
.umpire-start-list .move-link-status{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.umpire-start-list .move-link-status li{display:flex;align-items:center;gap:6px;padding:0;border:0;border-radius:0;background:none;font-size:13px;color:#5d6b82}
.move-link-status li.ok{color:var(--ok-text)}.move-link-status .ui-icon{flex:none;width:18px;height:18px}
.move-strip{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:0 0 16px;padding:12px 16px;border:1px solid #ccdafe;border-radius:12px;background:var(--brand-tint2)}
.move-strip-title{display:flex;align-items:center;gap:6px;color:var(--brand-deep)}.move-strip-title .ui-icon{width:18px;height:18px}
.move-strip ol{display:flex;flex-wrap:wrap;gap:4px 14px;flex:1 1 320px;margin:0;padding:0;list-style:none;font-size:14px}
.move-strip li{display:flex;align-items:center;gap:4px;color:#3d4c66}.move-strip li .ui-icon{flex:none;width:18px;height:18px}
.move-strip li.done{color:var(--ok-text)}.move-strip li[aria-current="step"]{color:var(--attn-strong);font-weight:700}
.move-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:4px 0 12px}
.move-compare-card{position:relative;display:grid;justify-items:center;align-content:start;gap:4px;padding:16px;border:1px solid #d6dbe4;border-radius:12px;background:#f4f5f8;text-align:center}
.move-compare-card svg{width:120px;height:80px}.move-compare-card strong{color:#3d4c66}.move-compare-card p{margin:0;font-size:14px;line-height:1.7;color:#5d6b82}
.move-compare-card.recommended{border:2px solid var(--brand);background:#fff}.move-compare-card.recommended strong{color:var(--brand-deep)}
.move-compare-time{font-size:22px!important;font-weight:800;color:#6b778c!important}.recommended .move-compare-time{color:var(--brand)!important}
.move-compare-badge{position:absolute;top:10px;right:10px;padding:2px 10px;border-radius:6px;background:var(--brand);color:#fff;font-size:12px;font-weight:700}
.move-timeline{margin:4px 0 0;display:grid;gap:8px}
.move-timeline-band{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;border-radius:10px;background:var(--brand);color:#fff;font-weight:700;text-align:center}.move-timeline-band .ui-icon{flex:none;width:20px;height:20px}
.move-timeline-road,.move-timeline-axis{display:grid;grid-template-columns:3fr 2fr;gap:0}
.move-timeline-road>div{display:grid;justify-items:center;align-content:start;gap:2px;padding:14px 10px;text-align:center}
.move-timeline-past{border:2px dashed #b7c0cf;border-right:0;border-radius:10px 0 0 10px;background:#f4f5f8}.move-timeline-past strong{color:#3d4c66}.move-timeline-past span{font-size:13px;color:#5d6b82}
.move-timeline-future{border:2px solid var(--brand);border-radius:0 10px 10px 0;background:var(--brand-tint2)}.move-timeline-future strong{color:var(--brand-deep)}.move-timeline-future span{font-size:13px;color:var(--brand-deep)}
.move-timeline-art{width:80px;height:56px}
.move-timeline-axis{position:relative;padding-top:14px;font-size:13px;font-weight:700;color:#3d4c66}
.move-timeline-axis::before{content:"";position:absolute;left:0;right:10px;top:4px;height:3px;border-radius:2px;background:linear-gradient(90deg,#b7c0cf 60%,var(--brand) 60%)}
.move-timeline-axis::after{content:"";position:absolute;right:0;top:-1px;border:6.5px solid transparent;border-left:10px solid var(--brand);border-right:0}
.move-timeline-axis>div:first-child{display:flex;justify-content:space-between;gap:8px}.move-timeline-axis>div:last-child{text-align:right}
.move-timeline-now{position:relative;transform:translateX(50%);color:var(--brand-deep);text-align:center;white-space:nowrap}
.move-timeline-now::before{content:"";position:absolute;left:50%;top:-16px;width:12px;height:12px;margin-left:-6px;border:3px solid var(--brand);border-radius:50%;background:#fff}
.move-timeline figcaption{font-size:14px;line-height:1.7;color:#3d4c66}
.move-site-current{display:flex;align-items:center;gap:6px;overflow-wrap:anywhere}.move-site-current .ui-icon{flex:none;width:18px;height:18px}
.move-site-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}.move-site-row .m-field{flex:1 1 260px;min-width:0;margin:0}.move-site-row .button{flex:none}
.move-site-games{margin-top:16px;padding-top:16px;border-top:1px solid #e3e8f1}.move-site-games p{margin:4px 0 0;font-size:14px;line-height:1.7}
.move-faq{display:grid;gap:8px}
.move-previous-site{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:12px 0;padding:10px 14px;border-radius:10px;background:#f4f5f8;font-size:14px;color:#3d4c66}.move-previous-site .ui-icon{flex:none;width:18px;height:18px}
@media(max-width:600px){.move-compare{grid-template-columns:minmax(0,1fr)}.move-timeline-road>div{padding:12px 6px}.move-timeline-road strong{font-size:13px}.move-timeline-axis{font-size:12px}.move-timeline-now{transform:translateX(40%)}}
/* 合計成績の「いまここ」: the one place to act now (注目色 orange on the frame and the badge; the buttons stay blue). */
.summary-workbench .summary-now-badge,#csv-workbench .summary-now-badge{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:18px 0 8px;padding:8px 12px;border-radius:8px;background:var(--attn-tint);color:var(--attn-strong);font-size:14px;line-height:1.6;scroll-margin-top:96px}
.summary-workbench .summary-now-badge strong,#csv-workbench .summary-now-badge strong{flex:none;padding:1px 8px;border-radius:6px;background:var(--attn-strong);color:#fff;font-size:12px}
.summary-now{outline:3px solid var(--attn);outline-offset:6px;border-radius:8px}
.summary-source-tabs [data-summary-type].summary-now-tab{color:var(--attn-strong);font-weight:700}
/* 用意した合計表: a checklist; a table still to paste carries its button (the three tables go in one confirmation). */
.summary-progress #summary-ready{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:6px}
.summary-progress #summary-ready li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;font-size:14px}
.summary-progress #summary-ready li.done{color:var(--ok-text);font-weight:700}
/* 合計成績を引き継ぎました: the celebration art, then ステップ1 (done, green) and ステップ2 (time permitting) of the recommended move. */
.summary-done-head{display:flex;align-items:center;gap:20px;margin:4px 0 16px}.summary-done-art{flex:none;display:block;width:260px;max-width:42%;height:auto}
.summary-done-lead{min-width:0}.summary-done-lead strong{display:block;font-size:20px;line-height:1.5;color:var(--ok-text)}.summary-done-lead p{margin:6px 0 0;line-height:1.8}
.summary-done-state{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:6px;background:#eef1f6;color:#5d6b82;font-size:12px;font-weight:700;vertical-align:1px}.summary-done-state.ok{background:#e3f4ea;color:var(--ok-text)}
.summary-done-steps>li.done{border-color:#bfe3cc;background:#f3fbf6}.summary-done-steps>li.done .umpire-start-mark{background:#1f9d55;color:#fff}
@media(max-width:600px){.summary-done-head{flex-direction:column;align-items:stretch;gap:12px}.summary-done-art{width:100%;max-width:none}.summary-done-lead strong{font-size:18px}}

/* チーム登録: フォームを案内カードと同じ幅にそろえる。 */
.auth-page .reg-team-form{width:100%;max-width:none;margin-inline:0;min-width:0}
.auth-page .reg-team-form>.reg-section{padding-inline:20px}
.auth-page .reg-team-basics{max-width:none}
/* 選んだ地域のチップ: 左の余白が狭く、×の右が広かったのをそろえる(左16px・右はアイコンを含めて約14px)。 */
.reg-selected-areas button{gap:8px;padding:7px 10px 7px 16px}.reg-selected-areas button .ui-icon{margin-left:0}
/* メンバー招待: 各手順を余白と接続線でつなぐ。 */
.invite-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;margin:24px 0;padding:0;list-style:none}
.invite-flow li{position:relative;min-width:0;display:flex;flex-direction:column;align-items:center;gap:12px;padding:22px 18px;background:#f3f6fc;border:1px solid #dce5f5;border-radius:12px;text-align:center}
.invite-flow li+li:before{content:"";position:absolute;left:-37px;top:50%;width:36px;border-top:2px solid #a9bfe9}
.invite-flow li+li:after{content:"";position:absolute;left:-12px;top:calc(50% - 4px);width:8px;height:8px;border-top:2px solid #7899d4;border-right:2px solid #7899d4;transform:rotate(45deg)}
.invite-flow-number{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--brand);color:#fff;font-weight:700}
.invite-flow li>.ui-icon{width:28px;height:28px;color:var(--brand)}
.invite-intro .invite-flow p{margin:0;font-size:14px;line-height:1.8;color:#264676;font-weight:700}
.umpire-start-list li.done .umpire-start-mark{background:#e3f4ea;color:var(--ok-text)}
/* 公開の削除サポート: 説明はログイン前にも表示し、操作は本人確認後に行う。 */
.deletion-hero{display:grid;grid-template-columns:minmax(0,1fr) 240px;align-items:center;gap:28px}
.deletion-brand{font-size:13px;font-weight:700;color:var(--brand);margin:0 0 10px}
.deletion-hero h1{margin:0 0 14px;font-size:28px;line-height:1.5}
.deletion-art{display:block;width:100%;height:auto}
.deletion-page .m-panel p{line-height:1.9;overflow-wrap:anywhere}
.deletion-options{display:grid;gap:12px}
.deletion-options>label{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid #dce4f3;border-radius:8px;cursor:pointer}
.deletion-options>label:has(input:checked){background:#edf3ff;border-color:var(--brand)}
.deletion-options input{flex:none;margin-top:5px}
.deletion-options>label>span{min-width:0;font-weight:700;line-height:1.8}
.deletion-options .ui-icon,.deletion-page .m-field>span>.ui-icon{width:18px;height:18px;margin-right:7px;vertical-align:middle;color:var(--brand)}
.deletion-options small{display:block;margin-top:4px;color:#607087;font-size:13px;font-weight:400}
@media(max-width:700px){
 .auth-page .reg-team-form>.reg-section{padding-inline:12px}
 .invite-flow{grid-template-columns:minmax(0,1fr);gap:30px}
 .invite-flow li{display:grid;grid-template-columns:28px 28px minmax(0,1fr);text-align:left;padding:18px;gap:12px}
 .invite-flow li+li:before{left:31px;top:-31px;height:30px;width:0;border-top:0;border-left:2px solid #a9bfe9}
 .invite-flow li+li:after{left:28px;top:-13px;transform:rotate(135deg)}
 .deletion-hero{grid-template-columns:minmax(0,1fr);gap:12px}
 .deletion-art{width:190px;justify-self:center}
 .deletion-hero h1{font-size:24px}
}

/* 出欠のコメント・無料期間が1か月以内の体験バッジ: 見てほしい表示なので注目色(オレンジ, 2026-10-22) */
.attendance-note.is-attn{color:var(--attn-strong);font-weight:700}
.rec-state.paid.expiring{border-color:var(--attn);background:var(--attn-tint);color:var(--attn-strong)}

/* 「この試合、成立する？」の見出し(スマホ): 日時・あと◯日・矢印を1段目、タグ(準備OKなど)を2段目に。矢印は右端に固定して落ちない(2026-10-22) */
@media(max-width:600px){.shortage-game .shortage-head .shortage-chevron{order:1;margin-left:auto}.shortage-game .shortage-head .shortage-tags{order:2;flex:1 0 100%;margin-left:0}}

/* 応援ハートの枠(チームページ・選手ページ。2026-10-22) */
.cheer-panel{text-align:center}.cheer-panel .hp-heart{margin-top:0}

/* お知らせダイアログ (/my): the notices to confirm, one at a time. */
.popup-dialog{box-sizing:border-box;width:min(460px,calc(100vw - 32px));max-width:none;padding:20px;border:1px solid #cbd8ee;border-radius:8px;color:#17335c;background:#fff}
.popup-dialog::backdrop{background:rgba(15,32,62,.58)}
.popup-heading{display:flex;align-items:center;gap:10px;margin:0 0 12px;font-size:18px;padding-bottom:10px;border-bottom:2px solid #cbd8ee}
.popup-count{margin-left:auto;font-size:14px;font-weight:800;color:var(--brand)}
.popup-item h3{margin:0 0 8px;font-size:18px;line-height:1.5}
.popup-item p{margin:0 0 18px;line-height:1.7}
.popup-actions{display:flex;justify-content:stretch;gap:10px}
.popup-actions form{margin:0;flex:1}
.popup-actions form .button{width:100%}
.popup-heading .popup-x{flex:none;margin-left:auto;padding:0}
.popup-heading .popup-count+.popup-x{margin-left:0}
/* お知らせダイアログは .m-shell / main の外にあるため、ボタン規格(角8px・M 44px・14px)をここで当てる */
.popup-dialog .button{border-radius:8px;box-sizing:border-box;min-height:44px;padding-top:10px;padding-bottom:10px;font-size:14px;gap:8px;line-height:1.5}

/* 「この試合、成立する？」(2026-10-22): 人数・審判・対戦相手のアイコンは灰色にそろえ、「あとN日」は日数に関係なく薄い青。決まっていない行には注目色の注意アイコン */
.shortage-items .readiness-label .ui-icon,.shortage-items .readiness-item.is-done .readiness-label .ui-icon,.shortage-items .readiness-item.is-idle .readiness-label .ui-icon{background:#e9edf4;color:#6b778c}
.shortage-game .svc-status,.shortage-game.is-ready>summary .svc-status{background:var(--brand-tint4);color:var(--brand)}
.shortage-line.is-short{display:flex;align-items:center;gap:6px}
.shortage-line.is-short .ui-icon{flex:none;width:18px;height:18px;color:var(--attn)}

/* プランのバッジ(2026-10-22 ご利用のプラン・いまのプラン): プロ＝金、ライト＝銀、無料＝灰色 */
.plan-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 12px;border-radius:8px;border:1px solid;font-size:14px;font-weight:800;line-height:1.5}
.plan-badge .ui-icon{width:16px;height:16px}
.plan-badge.is-pro{background:linear-gradient(135deg,#fbe38a,#e0a82e);border-color:#b98312;color:#5a3d00}
.plan-badge.is-lite{background:linear-gradient(135deg,#f1f4f8,#b9c2cf);border-color:#8d98a8;color:#3b4656}
.plan-badge.is-free{background:#eef1f6;border-color:#d3d9e4;color:#5b6679}

/* チームカラーの背景パターン(2026-10-22): メンバーカードに、サブカラーを薄く重ねた模様 */
:is(.side-member.team-colored,.member-card)[data-pattern]{position:relative;isolation:isolate;overflow:hidden}
:is(.side-member.team-colored,.member-card)[data-pattern]::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;--p:color-mix(in srgb,var(--pat,var(--team-sub)) var(--pat-amt,17%),transparent)}
:is(.side-member.team-colored,.member-card)[data-pattern="stripe"]::before{background:repeating-linear-gradient(135deg,var(--p) 0 6px,transparent 6px 14px)}
:is(.side-member.team-colored,.member-card)[data-pattern="dot"]::before{background:radial-gradient(circle,var(--p) 2px,transparent 2.6px) 0 0/14px 14px}
:is(.side-member.team-colored,.member-card)[data-pattern="check"]::before{background:repeating-linear-gradient(0deg,var(--p) 0 8px,transparent 8px 16px),repeating-linear-gradient(90deg,var(--p) 0 8px,transparent 8px 16px)}
:is(.side-member.team-colored,.member-card)[data-pattern="diamond"]::before{background:repeating-linear-gradient(45deg,var(--p) 0 1.6px,transparent 1.6px 13px),repeating-linear-gradient(-45deg,var(--p) 0 1.6px,transparent 1.6px 13px)}
:is(.side-member.team-colored,.member-card)[data-pattern="stitch"]::before{background:var(--p);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='36' viewBox='0 0 56 36'%3E%3Cpath d='M0 18Q14 4 28 18T56 18' fill='none' stroke='%23000' stroke-width='1.8'/%3E%3Cpath d='M7 8l3 5M17 10l-1 6M31 22l3-5M41 24l-1-6M47 12l3 4M3 26l3-4' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") 0 0/56px 36px;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='36' viewBox='0 0 56 36'%3E%3Cpath d='M0 18Q14 4 28 18T56 18' fill='none' stroke='%23000' stroke-width='1.8'/%3E%3Cpath d='M7 8l3 5M17 10l-1 6M31 22l3-5M41 24l-1-6M47 12l3 4M3 26l3-4' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") 0 0/56px 36px}
.team-pattern-choice{margin-top:4px}
/* パターン選択のチップ: 見本は濃い紺に白い模様 */
.team-swatch-chip.pattern-chip{border-radius:6px;background:#335ac0;position:relative;overflow:hidden;isolation:isolate;--team-sub:#fff;--team-main:#335ac0}
.team-swatch-chip.pattern-chip::before{content:"";position:absolute;inset:0;z-index:-1;--p:#ffffff80}
.team-swatch-chip.pattern-chip[data-pattern="stripe"]::before{background:repeating-linear-gradient(135deg,var(--p) 0 3px,transparent 3px 7px)}
.team-swatch-chip.pattern-chip[data-pattern="dot"]::before{background:radial-gradient(circle,var(--p) 1.3px,transparent 1.8px) 0 0/7px 7px}
.team-swatch-chip.pattern-chip[data-pattern="check"]::before{background:repeating-linear-gradient(0deg,var(--p) 0 4px,transparent 4px 8px),repeating-linear-gradient(90deg,var(--p) 0 4px,transparent 4px 8px)}
.team-swatch-chip.pattern-chip[data-pattern="diamond"]::before{background:repeating-linear-gradient(45deg,var(--p) 0 1px,transparent 1px 7px),repeating-linear-gradient(-45deg,var(--p) 0 1px,transparent 1px 7px)}
.team-swatch-chip.pattern-chip[data-pattern="stitch"]::before{background:var(--p);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='18' viewBox='0 0 56 36'%3E%3Cpath d='M0 18Q14 4 28 18T56 18' fill='none' stroke='%23000' stroke-width='3'/%3E%3C/svg%3E") 0 0/28px 18px;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='18' viewBox='0 0 56 36'%3E%3Cpath d='M0 18Q14 4 28 18T56 18' fill='none' stroke='%23000' stroke-width='3'/%3E%3C/svg%3E") 0 0/28px 18px}

/* 出欠のひとこと(2026-10-22): 「…」の引用をやめ、吹き出しアイコン＋本文(「ひとこと」の文字は2026-10-23に削除)。すべて注目色(オレンジ)、太字にしない */
.attendance-note.is-attn{display:flex;align-items:flex-start;gap:6px;font-weight:400;color:var(--attn-strong)}
.attendance-note.is-attn:before,.attendance-note.is-attn:after{content:none}
.attendance-note.is-attn .ui-icon{flex:none;width:16px;height:16px;margin-top:3px;color:var(--attn-strong)}
.attendance-note.is-attn>span{min-width:0;overflow-wrap:anywhere}

/* LIVEの公式記録が変わった(手で直した記録は置き換えなかった): 試合の記録の行の注目表示(注目色オレンジ, 決定 2026-10-22) */
.rec-row .live-changed{display:flex;align-items:flex-start;gap:6px;color:var(--attn-strong);font-weight:700}.rec-row .live-changed svg{width:16px;height:16px;flex:none;margin-top:2px}
/* リアルタイム記録の行: 説明は行いっぱいの幅、ボタンは重要度で3つに分けて下に置く(主な操作 / 見る・開く / その他) */
.game-record .rec-row.live-row{flex-wrap:wrap}
.live-row .rec-row-body{flex:1 1 calc(100% - 56px)}
.rec-row .live-changed{box-sizing:border-box;flex:1 1 100%;width:100%;padding:8px 10px;border:2px solid var(--attn);border-radius:8px;background:var(--attn-tint);font-size:13px;line-height:1.6}
.live-actions{flex:1 1 100%;display:grid;gap:8px;min-width:0;padding-left:50px}
.live-actions-main,.live-actions-sub{display:flex;flex-wrap:wrap;gap:8px}
.live-actions-main:empty,.live-actions-sub:empty{display:none}
.live-actions form{margin:0}
.live-actions-more summary{list-style:none;display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:0 8px;border-radius:8px;color:#5d6b82;font-size:13px;cursor:pointer}
.live-actions-more summary::-webkit-details-marker{display:none}
.live-actions-more summary .ui-icon{width:16px;height:16px;transition:transform .15s}
.live-actions-more[open] summary .ui-icon{transform:rotate(90deg)}
.live-actions-more summary:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.live-actions-more form{margin-top:6px}
@media(max-width:600px){.live-actions{padding-left:0}.live-actions-main,.live-actions-sub{flex-direction:column}.live-actions form{width:100%}}

/* /my/team/managers: 年 and 月 stay on one line. */
.mgr-period-field{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;max-width:420px}.mgr-period-field select{width:100%;margin-right:0}.mgr-period-field small{grid-column:1/-1}
/* The one-time intro starts hidden; app.js decides after reading the saved state, so it never flashes and vanishes. */
.intro[data-intro-once]:not(.is-ready) [data-intro-card]{display:none}
/* 就任 and 退任 sit side by side on a wide screen, one under the other on a phone. */
.mgr-periods{display:grid;grid-template-columns:minmax(0,1fr);gap:0 16px}.mgr-periods .mgr-period-field{max-width:none}@media(min-width:900px){.mgr-periods{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.mgr-period-field{align-content:start}.mgr-period-field select{align-self:start}

/* 規約ページ（利用規約・プライバシーポリシー・特商法表記・規約の更新）: 見出しは控えめに。更新の画面は変更箇所を緑（追加・変更）と灰色の取り消し線（削除）で示す（緑はこの画面だけの例外）。 */
.m-panel.legal-doc>.content-title{font-size:22px;line-height:1.4}
@media(max-width:600px){.m-panel.legal-doc>.content-title{font-size:19px}}
.consent-art{display:block;width:100%;max-width:640px;height:auto;margin:0 auto 12px;border-radius:16px}
.consent-legend{font-size:14px;color:#3d4c66}
.diff-add{background:#dff3e5;color:#14532d;border-radius:4px;padding:1px 3px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.diff-del{color:#7b8596;text-decoration:line-through}
li.diff-removed,p.diff-removed{display:block;list-style:none}
.consent-change h3{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.consent-kind{flex:none;font-size:12px;font-weight:700;padding:2px 8px;border-radius:6px;background:#dff3e5;color:#14532d}
.consent-kind.is-removed{background:#e9edf4;color:#5d6b82}
/* 紅白戦 (intrasquad.md): チーム分け on the schedule detail and the squad of the lineups. Squad colors (user 2026-10-24): squad 1 (紅組) = orange badge,
   squad 2 (白組) = white badge. The squad being edited is marked by the orange 「編集中」 chip before its badge; 「あとN人」 is the orange 不足 label. */
.squad-badge{display:inline-flex;align-items:center;padding:1px 10px;border-radius:6px;font-size:13px;font-weight:700;line-height:1.6;background:var(--attn-strong,#c24a06);color:#fff;border:1px solid var(--attn-strong,#c24a06)}
.squad-badge.squad-2{background:#fff;color:#17335c;border-color:#8a96ab}
.event-facts .squad-badge{margin:0 2px}
.event-squads-link{margin-left:10px;font-size:13px}
.squads-panel .squad-tools{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;margin:12px 0}
.squads-panel .squad-rename{flex:1 1 280px}
.squads-panel .squad-rename summary{cursor:pointer;color:var(--brand,#335ac0);font-weight:700;font-size:14px;min-height:44px;display:flex;align-items:center}
.squads-panel .squad-names{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto;gap:8px 12px;align-items:end}
.squads-panel .squad-names .m-field{margin:0}.squads-panel .squad-names .button{margin:0;min-height:44px}
.squads-panel .squad-locked{display:flex;align-items:center;gap:6px}
.squads-panel .squad-locked .ui-icon{width:16px;height:16px;flex:none}
.squad-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:8px}
.squad-card,.squad-none{border:1px solid #dbe4f3;border-radius:8px;padding:12px;background:#fbfcff;min-width:0}
.squad-none{margin-top:12px}
.squad-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 8px}
.squad-short{font-size:12px;font-weight:700;padding:1px 8px;border-radius:6px;background:var(--attn-tint,#fff1e8);color:var(--attn-strong,#c24a06)}
.squad-list{list-style:none;margin:0;padding:0}
.squad-player{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border-top:1px solid #e8eef8}
.squad-player:first-child{border-top:0}
.squad-who{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0;overflow-wrap:anywhere}
.squad-pos{color:#5d6b82;font-size:12px}
.squad-move{margin:0;flex:none}
.squad-move-pair{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.squad-head .squad-lineup{margin-left:auto}
@media(max-width:600px){.squad-columns{grid-template-columns:1fr}.squads-panel .squad-names{grid-template-columns:1fr}.squad-player{flex-wrap:wrap}}
.lu-squads{margin:0 0 8px}
.lu-squad-now{display:flex;align-items:center;gap:8px;margin:0 0 4px;font-size:14px}
.squad-now-chip{display:inline-flex;align-items:center;padding:1px 8px;border-radius:6px;font-size:12px;font-weight:700;background:var(--attn-tint,#fff1e8);color:var(--attn-strong,#c24a06);border:1px solid var(--attn-strong,#c24a06)}
.squads-panel .button.squad-join-1{background:#fff;border-color:var(--attn-strong,#c24a06);color:var(--attn-strong,#c24a06)}
.squad-player[draggable=true]{cursor:grab}
.squad-player.is-dragging{opacity:.4}
.squad-card.is-drop-over{outline:2px dashed var(--attn-strong,#c24a06);outline-offset:2px;background:var(--attn-tint,#fff3ea)}
.squad-lu-state{font-size:12px;font-weight:700;padding:1px 8px;border-radius:6px;background:#e9edf4;color:#5d6b82}
.squad-lu-state.is-draft,.squad-lu-state.is-dirty{background:var(--attn-tint,#fff1e8);color:var(--attn-strong,#c24a06)}
.squad-lu-state.is-published{background:#dff3e5;color:var(--ok-text,#14532d)}
.squad-lu-summary{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;margin:8px 0;font-size:14px}
.squad-lu-summary .ui-icon{width:16px;height:16px;flex:none}
.lu-squad-title{margin:20px 0 8px}
.lu-squad-title .squad-badge{font-size:15px;padding:2px 14px}
.intrasquad-field .ground-option.locked{opacity:.7}
.intrasquad-field .plan-lock{margin-left:6px;font-size:11px;font-weight:700;padding:0 6px;border-radius:4px;background:#e9edf4;color:#3d4c66}
/* 紅白戦 stage 4: a helper whose record goes to their own figures (they agreed), and the note on the helper's side */
.line-badge.squad-linked{background:#e8f0ff;color:var(--brand,#335ac0);border-color:#c9d8f7}
.fav-intrasquad{display:flex;align-items:center;flex-wrap:wrap;gap:6px;color:#3d4c66}
/* トロフィー: folded at first (the 殿堂 cards open it when they link to a card) */
.trophy-fold>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}.trophy-fold>summary::-webkit-details-marker{display:none}
.trophy-fold>summary .panel-title{margin:0}.trophy-fold[open]>summary{margin-bottom:12px}
.trophy-fold-count{margin-left:10px;vertical-align:middle}
.fold-chevron{flex:none;width:22px;height:22px;fill:none;stroke:var(--brand);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s}.trophy-fold[open]>summary .fold-chevron{transform:rotate(180deg)}
@media(prefers-reduced-motion:reduce){.fold-chevron{transition:none}}

/* 入団履歴 form of 個人情報 > 選手ページ: a card per row (team with candidates, period, delete); rows are added in the browser. */
.career-form h3,.career-known h3{display:flex;align-items:center;gap:6px;margin:12px 0 4px;font-size:15px}
.career-form h3 .ui-icon,.career-known h3 .ui-icon{width:18px;height:18px;flex:none}
.career-rows{display:grid;gap:10px;margin:10px 0}
.career-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) auto;gap:10px 14px;align-items:start;padding:12px;border:1px solid #dbe4f3;border-radius:8px;background:#fbfcff}
.career-label{display:flex;align-items:center;gap:6px;margin:0 0 4px;font-size:13px;font-weight:700;color:#35507f}
.career-label .ui-icon{width:16px;height:16px;flex:none}
.career-pick{position:relative}
.career-chosen{display:inline-flex;align-items:center;gap:6px;margin:4px 0 0;font-size:12px;font-weight:700;color:var(--brand,#335ac0)}
.career-chosen[hidden]{display:none}
.career-chosen img{width:20px;height:20px;border-radius:4px;object-fit:cover}
.career-pick input[type=text]{width:100%}
.career-months{display:flex;align-items:center;gap:6px}
.career-months input{min-width:0;flex:1}
.career-period small{display:block;margin-top:4px;color:#5d6b82;font-size:12px}
.career-row .career-remove{align-self:center}
.career-suggest{position:absolute;left:0;right:0;top:100%;z-index:20;margin-top:2px;background:#fff;border:1px solid #cdd8ec;border-radius:8px;box-shadow:0 6px 18px rgba(23,51,92,.15);max-height:280px;overflow:auto}
.career-suggest[hidden]{display:none}
.career-suggest-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:0;border-top:1px solid #eef2fa;background:#fff;text-align:left;cursor:pointer;font:inherit;color:inherit}
.career-suggest-item:first-child{border-top:0}
.career-suggest-item:hover,.career-suggest-item:focus{background:var(--brand-tint3,#f1f5fd)}
.career-suggest-item img{width:24px;height:24px;border-radius:5px;object-fit:cover;flex:none}
.career-suggest-item small{margin-left:auto;color:#5d6b82}
.career-suggest-none{margin:0;padding:10px;font-size:13px;color:#5d6b82}
.career-add{margin:0 0 6px}
@media(max-width:700px){.career-row{grid-template-columns:1fr}.career-row .career-remove{justify-self:end}}
.career-known ul{list-style:none;margin:6px 0;padding:0}
.career-known li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:6px 0;border-top:1px solid #e8eef8}
.career-known li:first-child{border-top:0}
.career-known small{color:#5d6b82}

/* keep-scroll-wait.js: the body is hidden until app.js has put the scroll position back after a save. */
html.keep-scroll-wait body{opacity:0}

/* 入団履歴: the cards of the teams machi9 knows (the team is fixed, the period can be changed). */
.career-fixed{display:flex;align-items:center;gap:8px;min-height:36px;margin:0 0 4px}
.career-fixed img{width:24px;height:24px;border-radius:5px;object-fit:cover}
.career-known-row .career-revert{align-self:center}

/* /switch 2026-10-24: 2つの視点（① チームづくり＋LINE招待 ② 通算成績の貼り付け移行）。緑＋黄色のポイント（公開ページ用に色制限なし・ユーザー指示。注目色のオレンジは警告に読めるため使わない） */
.switch-page .switch-hero{position:relative;overflow:hidden;background:#14803f linear-gradient(135deg,#0f6a35 0,#14803f 50%,#27a45f 100%);box-shadow:0 16px 40px #14803f33;color:#fff}
.switch-page .switch-hero .about-hero-copy{position:relative;z-index:1}
.switch-page .switch-hero .variant-kicker{color:#ffe27a}.switch-page .switch-hero h1{color:#fff}
.switch-page .switch-hero .about-lead{color:#eafaf0}.switch-page .switch-hero .about-lead strong{color:#2b2200;background:#ffd23f;padding:1px 8px;border-radius:6px}
.switch-page .switch-hero .about-who li{background:#ffffff26;border-color:#ffffff59;color:#fff}
.sw-hero-art{position:absolute;right:-20px;bottom:-30px;width:min(640px,62%);height:auto;opacity:.2;pointer-events:none}
.sw-jump{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:26px;max-width:760px}
.sw-jump a{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 16px;border-radius:14px;background:#fff;color:#12452a;box-shadow:0 6px 18px #06361a40}
.sw-jump a:hover{background:#f3fbf6;color:#12452a}
.sw-jump b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#14803f;color:#fff;font-size:17px}
.sw-jump span{display:grid;gap:2px;min-width:0}.sw-jump strong{font-size:16px}.sw-jump small{font-size:13px;color:#4a6355;line-height:1.5}
.sw-jump em{font-style:normal;font-weight:800;font-size:13px;color:#4a3a00;background:#ffd23f;border-radius:8px;padding:4px 10px;white-space:nowrap}
.sw-part{position:relative;margin-top:36px;padding:30px 28px 28px;border-radius:22px;background:#f3fbf6;border:1px solid #cdeedb}
.sw-part-2{background:#fffbe8;border-color:#f3e08a}
.sw-part .about-heading h2{color:#12452a}.sw-part .eyebrow{color:#14803f}.sw-part .about-heading>p:not(.eyebrow):not(.sw-badge){color:#4a6355}
.sw-part .about-heading>p strong{color:#14803f}
.sw-part .about-heading .sw-badge{display:grid;place-items:center;width:44px;height:44px;margin:0 0 10px;border-radius:50%;background:linear-gradient(135deg,#14803f,#2fb673);color:#fff;font-size:22px;font-weight:900;box-shadow:0 6px 14px #14803f40}
.sw-steps li{border-color:#cdeedb;border-left-color:#2fb673;border-left-width:4px}
.sw-part-2 .sw-steps li{border-color:#f3e08a;border-left-color:#e6b800}
.sw-steps li>span{background:#2fb673}.sw-part-2 .sw-steps li>span{background:#d9a900;color:#2b2200}
.sw-steps h3{color:#12452a}.sw-steps h3 small{background:#fff1a8;color:#4a3a00;padding:2px 9px;border-radius:8px}
.sw-steps img{border-color:#cdeedb}.sw-part-2 .sw-steps img{border-color:#f3e08a}
.sw-steps li:last-child:not(.sw-done){grid-template-columns:36px minmax(0,1fr) minmax(0,.9fr)}
.sw-line{margin-top:20px;padding:18px 22px;border-radius:16px;background:#fff;border:1px dashed #7fd3a0}
.sw-line-title{display:flex;align-items:center;gap:8px;margin:0;font-weight:800;color:#12452a}.sw-line-title .ui-icon{width:20px;height:20px;color:#06c755}
.sw-line-lead{margin:4px 0 12px;font-size:14px;color:#4a6355}
.sw-part .switch-sample{background:#e8f8ee;border-color:#bfe9cf;border-left-color:#06c755}
.sw-vs{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:14px;margin:0 0 20px}
.sw-vs>div:not(.sw-vs-arrow){display:grid;gap:4px;padding:18px 20px;border-radius:16px;text-align:center}
.sw-vs small{font-size:14px;font-weight:700}.sw-vs strong{font-size:34px;line-height:1.2;letter-spacing:-1px}.sw-vs span{font-size:13px}
.sw-vs-old{background:#eceff4;color:#55627a}.sw-vs-old strong{text-decoration:line-through;text-decoration-color:#9aa6bb}
.sw-vs-new{background:linear-gradient(135deg,#0f6a35,#1f9d55);color:#fff;box-shadow:0 8px 20px #14803f40}.sw-vs-new strong{font-size:44px;color:#ffe27a}
.sw-vs-arrow{align-self:center;color:#14803f;font-size:22px}
.sw-cta{background:linear-gradient(135deg,#eafaf0,#fff6c9);border-color:#9ddcb6}.sw-cta h2{color:#12452a}.sw-cta p{color:#4a6355}
/* 時間の流れ: これまで → 今日 → 今日から（上の線が時間軸、矢印が未来へ続く） */
.sw-flow{position:relative;display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:0;margin:26px 0 8px;padding-top:52px}
.sw-flow::before{content:"";position:absolute;left:0;right:14px;top:26px;height:6px;border-radius:3px;background:linear-gradient(90deg,#c9d0dc 0,#c9d0dc 30%,#2fb673 52%,#ffd23f 100%)}
.sw-flow::after{content:"";position:absolute;right:0;top:19px;border:10px solid transparent;border-left:16px solid #ffd23f;border-right:0}
.sw-flow-step{position:relative;display:grid;gap:6px;padding:0 18px 0 0}
.sw-flow-step>small{position:absolute;left:0;top:-50px;font-size:12px;font-weight:800;letter-spacing:1.5px;color:#8a94a8}
.sw-flow-step>i{position:absolute;left:0;top:-33px;width:18px;height:18px;border-radius:50%;background:#fff;border:4px solid #c9d0dc}
.sw-flow-step>div{display:grid;gap:3px;margin-top:12px;padding:14px 16px;border-radius:14px;background:#f1f3f7;color:#55627a}
.sw-flow-step strong{font-size:17px}.sw-flow-step span{font-size:14px;line-height:1.7}
.sw-flow-now>i{width:26px;height:26px;top:-37px;left:-4px;border-color:#1f9d55;background:#fff;box-shadow:0 0 0 6px #2fb67333}
.sw-flow-now>small{left:30px;top:-50px;color:#14803f}
.sw-flow-now>div{background:#fff;border:2px solid #2fb673;color:#12452a}.sw-flow-now strong{color:#14803f}
.sw-flow-now span{background:#ffd23f;color:#4a3a00;font-weight:800;border-radius:6px;padding:1px 8px;justify-self:start}
.sw-flow-new>i{border-color:#ffd23f;background:#ffd23f}.sw-flow-new>small{color:#14803f}
.sw-flow-new{padding-right:22px}.sw-flow-new>div{background:linear-gradient(135deg,#eafaf0,#fff6c9);color:#12452a;border:1px solid #cdeedb}
@media(max-width:700px){.sw-hero-art{width:110%;right:-30%;bottom:-20px;opacity:.14}
 .sw-jump{grid-template-columns:1fr}.sw-part{padding:22px 14px}.sw-vs{grid-template-columns:1fr}.sw-vs-arrow{transform:rotate(90deg);justify-self:center}
 .sw-vs strong{font-size:28px}.sw-vs-new strong{font-size:36px}.sw-jump a{grid-template-columns:34px minmax(0,1fr)}.sw-jump em{grid-column:2;justify-self:start}
 .sw-steps li:last-child:not(.sw-done){grid-template-columns:32px minmax(0,1fr)}
 .sw-flow{grid-template-columns:1fr;padding:0 0 0 34px;gap:16px}
 .sw-flow::before{left:10px;right:auto;top:0;bottom:14px;width:6px;height:auto;background:linear-gradient(180deg,#c9d0dc 0,#c9d0dc 30%,#2fb673 55%,#ffd23f 100%)}
 .sw-flow::after{left:4px;right:auto;top:auto;bottom:0;border:9px solid transparent;border-top:14px solid #ffd23f;border-bottom:0}
 .sw-flow-step{padding:0}.sw-flow-step>small{left:0;top:-2px;position:static;display:block}.sw-flow-step>i{left:-34px;top:2px}
 .sw-flow-now>i{left:-38px;top:0}.sw-flow-now>small{left:0}.sw-flow-step>div{margin-top:4px}}

/* LIVE中継の紹介 (/live) 2026-10-24: 紺（LIVEの画面）＋グラウンドの緑＋LIVEの赤。公開ページなので色の制限なし */
.live-intro-page .li-hero{background:#0d2447 linear-gradient(135deg,#0a1b38 0,#12306a 60%,#1b4a8f 100%);box-shadow:0 16px 40px #0a1b3866;color:#fff;grid-template-columns:minmax(0,1.15fr) minmax(0,.7fr);overflow:hidden}
.live-intro-page .li-hero .variant-kicker{color:#9fd8ff}.live-intro-page .li-hero h1{color:#fff}
.li-live-dot{display:inline-block;margin-right:6px;padding:2px 9px;border-radius:5px;background:#d6334a;color:#fff;font-size:12px;font-weight:900;letter-spacing:1px}
.live-intro-page .li-hero .about-lead{color:#dbe7ff}.live-intro-page .li-hero .about-lead strong{color:#2b2200;background:#ffd23f;padding:1px 8px;border-radius:6px}
.live-intro-page .li-hero .about-who li{background:#ffffff1f;border-color:#ffffff40;color:#fff}
.li-shot{display:block;width:min(300px,100%);height:auto;margin:0 auto;border-radius:22px;border:6px solid #060f20;box-shadow:0 18px 40px #00000066}
.li-jump{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px;max-width:640px}
.li-jump a{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:12px;padding:14px 16px;border-radius:14px;background:#fff;color:#0d2447;box-shadow:0 6px 18px #0006}
.li-jump a:hover{background:#eef5ff;color:#0d2447}
.li-jump b{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#1f9d55;color:#fff}
.li-jump span{display:grid;gap:2px;min-width:0}.li-jump strong{font-size:16px}.li-jump small{font-size:13px;color:#4a5e80}
.li-part{margin-top:36px;padding:30px 28px 28px;border-radius:22px;background:#eef5ff;border:1px solid #cfe0fb}
.li-part-team{background:#effaf3;border-color:#cdeedb}
.li-part .about-heading h2{color:#0d2447}.li-part-team .eyebrow{color:#14803f}
.li-part .about-heading .li-badge{display:grid;place-items:center;width:44px;height:44px;margin:0 0 10px;border-radius:50%;background:#12306a;color:#fff;font-size:22px;font-weight:900;box-shadow:0 6px 14px #12306a40}
.li-part-team .about-heading .li-badge{background:#1f9d55;box-shadow:0 6px 14px #1f9d5540}
.li-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.li-cards article{border:1px solid #cfe0fb;border-radius:16px;background:#fff;overflow:hidden}.li-art{display:block;width:100%;height:auto}
.li-cards article>div{padding:14px 18px 18px}.li-cards h3{margin:0 0 6px;font-size:17px;color:#0d2447}.li-cards p{margin:0;line-height:1.75;color:#3d4c63}
.li-styles{margin-top:20px;padding:18px 22px;border-radius:16px;background:#fff;border:1px dashed #9db6ee}
.li-styles-title{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-weight:800;color:#0d2447}.li-styles-title .ui-icon{width:20px;height:20px;color:#335ac0}
.li-styles ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.li-styles li{display:grid;gap:4px;align-content:start;font-size:13px;color:#4a5e80}.li-styles strong{font-size:14px;color:#0d2447}
.li-st{display:block;height:56px;border-radius:10px;border:1px solid #cfe0fb;margin-bottom:4px}
.li-st-standard{background:linear-gradient(180deg,#12306a 0 40%,#1d5a3a 40% 100%)}
.li-st-simple{background:repeating-linear-gradient(180deg,#0d2447 0 8px,#16336b 8px 10px)}
.li-st-detail{background:repeating-linear-gradient(180deg,#0d2447 0 5px,#2a4a86 5px 6px,#0d2447 6px 11px)}
.li-st-mono{background:repeating-linear-gradient(180deg,#f3f3f3 0 8px,#bdbdbd 8px 10px)}
.li-styles-note{margin:12px 0 0;font-size:13px;color:#4a5e80}
.li-flow{margin-top:0}
.li-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:20px}
.li-points article{padding:16px 18px;border-radius:14px;background:#fff;border:1px solid #cdeedb}
.li-points h3{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:16px;color:#12452a}.li-points .ui-icon{width:20px;height:20px;color:#1f9d55}.li-points p{margin:0;line-height:1.75;color:#3d4c63;font-size:15px}
.li-more{margin:18px 0 0}
body:not(.auth-page) .li-more .button{border-radius:8px;box-sizing:border-box;height:44px;min-height:44px;padding-top:0;padding-bottom:0;font-size:14px;gap:8px;line-height:1.5}
.li-cta{background:linear-gradient(135deg,#e6f0ff,#e3f7ea);border-color:#bcd4f7}.li-cta h2{color:#0d2447}
@media(max-width:900px){.live-intro-page .li-hero{grid-template-columns:1fr}.li-cards,.li-points{grid-template-columns:1fr}.li-styles ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.li-jump{grid-template-columns:1fr}.li-part{padding:22px 14px}.li-shot{width:min(240px,70%)}}

/* リアルタイム記録の紹介 (/realtime) 2026-10-24 改訂: 見る人が「使ってみたい」と思う見せ方。色の制限なし（ユーザー指示）。紺×電光ブルー＋LIVEの赤＋黄色のポイント */
.rtx-page .rtx-hero{background:#0a1b38 radial-gradient(circle at 85% 20%,#2a5fd0 0,transparent 55%),linear-gradient(135deg,#071530 0,#0f2c66 60%,#173f86 100%);box-shadow:0 18px 44px #0a1b3866;color:#fff;grid-template-columns:minmax(0,1.1fr) minmax(0,.8fr);overflow:hidden;position:relative}
.rtx-page .rtx-hero .variant-kicker{color:#9fd8ff}.rtx-page .rtx-hero h1{color:#fff}
.rtx-live{display:inline-block;margin-right:6px;padding:2px 9px;border-radius:5px;background:#d6334a;color:#fff;font-size:12px;font-weight:900;letter-spacing:1px}
.rtx-page .rtx-hero .about-lead{color:#dbe7ff}.rtx-page .rtx-hero .about-lead strong{color:#2b2200;background:#ffd23f;padding:1px 8px;border-radius:6px}
.rtx-page .rtx-hero .about-who li{background:#ffffff1f;border-color:#ffffff40;color:#fff}
.rtx-page .rtx-hero .hero-links .text-link{color:#fff}
.rtx-page .rtx-hero .hero-links .rtx-cta{background:#ffd23f;color:#2b2200;font-weight:800;border-radius:999px;padding:10px 18px}
.rtx-hero-art{position:relative;display:flex;justify-content:center;align-items:center;min-height:380px}
.rtx-main{position:relative;z-index:2;display:block;width:auto;max-width:100%;max-height:470px;border-radius:22px;border:6px solid #060f20;box-shadow:0 22px 48px #000a}
.rtx-float{position:absolute;z-index:3;width:150px;height:auto;border-radius:14px;border:3px solid #fff;box-shadow:0 12px 28px #0008}
.rtx-float-1{left:-6px;bottom:18px;transform:rotate(-6deg)}.rtx-float-2{right:-6px;top:12px;transform:rotate(5deg)}
/* 実際の画面: 横にスクロールするギャラリー */
.rtx-gallery{display:flex;gap:16px;overflow-x:auto;padding:6px 4px 16px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
.rtx-gallery figure{flex:0 0 240px;margin:0;padding:12px;border:1px solid #cfe0fb;border-radius:18px;background:linear-gradient(180deg,#fff,#eef5ff);scroll-snap-align:start}
.rtx-gallery img{display:block;width:100%;height:auto;border-radius:12px;border:1px solid #cfe0fb}
.rtx-gallery figcaption{margin-top:10px;font-size:13px;line-height:1.7;color:#3d4c63}.rtx-gallery figcaption strong{display:block;color:#0d2447;font-size:15px}
.rtx-gallery:focus-visible{outline:3px solid #2a5fd0;outline-offset:2px}
.rtx-pro{display:inline-block;margin-right:6px;padding:2px 9px;border-radius:6px;background:linear-gradient(135deg,#fbe38a,#e0a82e);color:#3b2a00;font-size:12px;font-weight:900;letter-spacing:.5px;vertical-align:middle}
/* 演出（天気・球場） */
.rtx-show{padding:30px 28px;border-radius:22px;background:linear-gradient(180deg,#0f2349,#14316a);color:#fff;margin-top:36px}
.rtx-show .about-heading h2{color:#fff}.rtx-show .eyebrow{color:#9fd8ff}.rtx-show .about-heading>p:not(.eyebrow){color:#cfe0fb}
.rtx-weather{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.rtx-weather figure{margin:0;position:relative;border-radius:14px;overflow:hidden;border:2px solid #ffffff33}
.rtx-weather img{display:block;width:100%;height:auto}
.rtx-weather figcaption{position:absolute;left:8px;bottom:8px;padding:2px 10px;border-radius:999px;background:#0a1b38cc;color:#fff;font-weight:800;font-size:13px}
.rtx-weather-note{margin:14px 0 0;color:#dbe7ff;line-height:1.8}.rtx-weather-note b{color:#ffd23f}
.rtx-ground{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:22px;align-items:start;margin-top:26px;padding:22px;border-radius:18px;background:#ffffff14;border:1px solid #ffffff2e}
.rtx-ground h3{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:19px;color:#fff}.rtx-ground h3 .ui-icon{width:22px;height:22px;color:#ffd23f}
.rtx-ground p{margin:0 0 12px;line-height:1.85;color:#dbe7ff}
.rtx-show .inline-link{color:#9fd8ff}
.rtx-ground-shot{display:block;width:100%;max-width:340px;height:auto;border-radius:14px;border:3px solid #fff;box-shadow:0 12px 28px #0008}
.rtx-ground-picker{display:block;width:100%;height:auto;max-height:560px;object-fit:cover;object-position:top;border-radius:14px;border:3px solid #fff;background:#fff}
/* 記録を守る・残す */
.rtx-keep{margin-top:36px;padding:30px 28px;border-radius:22px;background:#fff8e1;border:1px solid #f3dc8a}
.rtx-keep .about-heading h2{color:#4a3500}.rtx-keep .eyebrow{color:#b07a00}.rtx-keep .about-heading>p:not(.eyebrow){color:#6b5a2a}
.rtx-keep-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.rtx-keep-grid article{display:flex;flex-direction:column;border-radius:16px;overflow:hidden;background:#fff;border:1px solid #f0dc96}
.rtx-keep-grid img{display:block;width:100%;height:210px;object-fit:cover;object-position:top;border-bottom:1px solid #f0dc96}
.rtx-keep-grid article>div{padding:14px 16px 18px}.rtx-keep-grid h3{margin:6px 0 6px;font-size:16px;color:#4a3500}.rtx-keep-grid p{margin:0;font-size:14px;line-height:1.75;color:#4a4a4a}
.rtx-end{background:linear-gradient(135deg,#e3eeff,#fff3c4);border-color:#bcd4f7}.rtx-end h2{color:#0d2447}
@media(max-width:1000px){.rtx-keep-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rtx-weather{grid-template-columns:repeat(3,minmax(0,1fr))}.rtx-ground{grid-template-columns:1fr}}
@media(max-width:700px){.rtx-page .rtx-hero{grid-template-columns:1fr}.rtx-hero-art{min-height:0;padding:8px 0 4px}.rtx-main{max-height:380px}.rtx-float{width:104px}.rtx-float-1{left:2px}.rtx-float-2{right:2px}
 .rtx-gallery figure{flex-basis:210px}.rtx-show,.rtx-keep{padding:22px 14px}.rtx-weather{grid-template-columns:repeat(2,minmax(0,1fr))}.rtx-keep-grid{grid-template-columns:1fr}.rtx-keep-grid img{height:260px}}
.rtx-page .rtx-hero .hero-links .text-link:not(.rtx-cta){background:#ffffff1f;border:1px solid #ffffff59;color:#fff;border-radius:999px;padding:10px 18px}
.rtx-page .rtx-hero .hero-links .text-link:not(.rtx-cta):hover{background:#ffffff33}
.rtx-ground-picker{max-height:455px}
.rtx-keep-grid img{height:300px}
.rtx-keep-grid article:nth-child(-n+3) img{object-position:50% 100%}
.rtx-keep-grid article:nth-child(4) img{object-position:50% 58%}
@media(max-width:700px){.rtx-keep-grid img{height:320px}}

/* チームを作る (/signup/team) の「つくると、こんなことができる」(2026-10-24 ユーザー承認): 有料・プランの話はしない。/switch と同じ緑＋黄のポイント */
.reg-perks{margin:0 0 22px;padding:0;border-radius:20px;background:linear-gradient(135deg,#eafaf0 0,#f7fcf9 55%,#fff9d9 100%);border:2px solid #bfe9cf;overflow:hidden}
.reg-perks>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px;cursor:pointer;list-style:none}
.reg-perks>summary::-webkit-details-marker{display:none}
.reg-perks-title{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:800;color:#12452a}
.reg-perks-title .ui-icon{width:26px;height:26px;padding:4px;border-radius:50%;background:#1f9d55;color:#fff}
.reg-perks-hint{font-size:12px;color:#4a6355;white-space:nowrap}.reg-perks-hint::after{content:" ▾"}.reg-perks[open] .reg-perks-hint::after{content:" ▴"}
.reg-perks>summary:focus-visible{outline:3px solid #2fb673;outline-offset:-3px}
.reg-perks-lead{margin:0;padding:0 22px 12px;color:#4a6355;font-size:14px}
.reg-perks-grid{list-style:none;margin:0;padding:0 22px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.reg-perks-grid li{padding:14px 14px 16px;border-radius:14px;background:#fff;border:1px solid #cdeedb}
.reg-perks-icon{display:grid;place-items:center;width:38px;height:38px;margin-bottom:8px;border-radius:50%;background:#e1f6e9;color:#14803f}
.reg-perks-icon .ui-icon{width:22px;height:22px}
.reg-perks-grid h3{margin:0 0 4px;font-size:15px;color:#12452a}.reg-perks-grid p{margin:0;font-size:13px;line-height:1.7;color:#4a5e50}
.reg-perks-flow{list-style:none;margin:16px 22px 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;counter-reset:none}
.reg-perks-flow li{position:relative;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;background:#fff8d6;border:1px solid #f0dc96;font-weight:800;color:#3d2e00;font-size:14px}
.reg-perks-flow li:first-child{border-radius:12px 0 0 12px}.reg-perks-flow li:last-child{border-radius:0 12px 12px 0}
.reg-perks-flow b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#d9a900;color:#2b2200;font-size:13px}
.reg-perks-flow small{flex-basis:100%;margin-left:32px;font-weight:600;font-size:12px;color:#6b5a2a}
.reg-perks-foot{margin:14px 22px 18px;padding:10px 14px;border-radius:12px;background:#fff;border:1px dashed #7fd3a0;font-size:14px;color:#2a4a37}
.reg-perks-foot strong{color:#14803f}.reg-perks-foot .inline-link{margin-left:6px}
@media(max-width:900px){.reg-perks-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.reg-perks>summary{padding:14px 14px}.reg-perks-title{font-size:17px}.reg-perks-lead,.reg-perks-grid{padding-left:14px;padding-right:14px}.reg-perks-flow{margin-left:14px;margin-right:14px;grid-template-columns:1fr}
 .reg-perks-flow li:first-child{border-radius:12px 12px 0 0}.reg-perks-flow li:last-child{border-radius:0 0 12px 12px}.reg-perks-flow small{flex-basis:auto;margin-left:0}.reg-perks-foot{margin-left:14px;margin-right:14px}}
.switch-why .sw-links{display:flex;flex-wrap:wrap;gap:4px 14px;margin:8px 0 0}

/* 気づいてもらうための「ぴょこぴょこ」: タブは画面ごとに一度だけ順番に、アイコンだけのボタンも画面に見えたとき一度だけその場で拡大して戻る。transform と別の translate で動かし、動きを減らす設定では出さない */
@keyframes icon-pulse{0%,100%{scale:1}45%{scale:1.3}}
@keyframes tab-hop{0%,100%{translate:0 0}28%{translate:0 -9px}52%{translate:0 0}70%{translate:0 -4px}86%{translate:0 0}}
.tab-hop{animation:tab-hop .7s ease-out var(--hop-delay,0s) both}
.icon-pulse{animation:icon-pulse .6s ease-in-out var(--hop-delay,0s) both}
@media (prefers-reduced-motion:reduce){.tab-hop,.icon-pulse{animation:none}}

/* 公開の試合ページのスコアボード: イニングの見出し(th)だけ右寄せで、点数(td)の中央とずれていた。見出しも点数も同じ幅で中央にそろえる */
.public-figures table.line-score thead th:not(:first-child),.public-figures table.line-score tbody td{text-align:center;padding-left:4px;padding-right:4px;min-width:34px}
.public-figures table.line-score tbody th{text-align:left}

/* ショップ無料チケットのボタン（まいにちハンコ帳のごほうび、2026-10-25 ユーザー指示「金色でかっこよく」）：トロフィーと同じ金の光沢に、光がゆっくり横切る。
   角・高さはボタン規格のまま（ここでは指定しない）。動きを減らす設定では光を止める */
.button.gold{position:relative;overflow:hidden;background:linear-gradient(135deg,#fff0a8 0%,#f3cf55 35%,#e8b82e 62%,#b98400 100%);color:#3b2600;border:1px solid #b98400;
  font-weight:800;text-shadow:0 1px 0 rgba(255,255,255,.45);box-shadow:0 2px 10px rgba(232,184,46,.45),inset 0 1px 0 rgba(255,255,255,.65)}
.button.gold:hover{background:linear-gradient(135deg,#fff5c2 0%,#f6d86a 35%,#ecc040 62%,#c38f00 100%);color:#2e1d00;border-color:#a87800}
.button.gold:focus-visible{outline:3px solid #b98400;outline-offset:2px}
.button.gold .ui-icon{color:#7a5200}
.button.gold::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.6),transparent);transform:skewX(-20deg);animation:gold-shine 3.2s ease-in-out infinite}
@keyframes gold-shine{0%,60%{left:-60%}100%{left:130%}}
@media (prefers-reduced-motion:reduce){.button.gold::after{animation:none;display:none}}

/* トップ下の「ほかのサービス」: HP・LIVE・School を小さな3枚のカードで。HPは色の制限なし(チームHPの話題)、LIVE・Schoolは各サービスの色 */
.home-more{margin:0 0 36px}
.more-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.more-card{display:flex;flex-direction:column;min-width:0;border:1px solid #c5d6f7;border-radius:14px;background:linear-gradient(135deg,#edf3ff,#dbe8ff);color:#17335c;overflow:hidden}
.more-link{display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:8px;padding:18px 18px 16px;color:inherit}
.more-link:focus-visible{outline:3px solid var(--brand);outline-offset:-3px}
.more-card:hover{border-color:var(--brand)}
.more-audience{margin:0;font-size:13px;font-weight:700;color:#335ac0}
.more-card h3{margin:0;font-size:17px;line-height:1.5;letter-spacing:0;color:inherit}
.more-text{margin:0;font-size:13px;line-height:1.7;color:#3d4c66}
.more-cta{display:inline-flex;align-items:center;gap:6px;margin-top:auto;padding-top:6px;font-size:14px;font-weight:700;color:var(--brand)}.more-cta .ui-icon{width:18px;height:18px}
.more-logo{display:block;width:120px;height:auto;padding:6px 8px;border-radius:8px;background:#fff}
.more-art{display:block;width:140px;height:auto;margin:-2px 0 2px -4px}
.more-hp{border-color:#c9672a;background:radial-gradient(circle at 88% 12%,#ffffff40,#ffffff00 46%),linear-gradient(135deg,#8f3406,#d4540b 58%,#f59e0b);color:#fff}.more-hp:hover{border-color:#ffb37a}.more-hp .more-audience{color:#ffd9b8}.more-hp .more-text{color:#ffe8d4}.more-hp .more-cta{color:#fff}.more-hp .more-link:focus-visible{outline-color:#fff}
.more-live{border-color:#244988;background:linear-gradient(90deg,#102b50ed,#163869c4 60%,#17356266),url('/images/home-live-stadium.jpg') center 58%/cover;color:#fff}.more-live:hover{border-color:#6b91d5}.more-live .more-audience{color:#d7e5ff}.more-live .more-text{color:#e0eaff}.more-live .more-cta{color:#fff}.more-live .more-link:focus-visible{outline-color:#fff}
.more-school{background:url('/images/home-school-bg.svg') right bottom/cover no-repeat,linear-gradient(135deg,#edf3ff,#dbe8ff)}
.more-school .hp-heart{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:10px 18px 14px;border-top:1px solid #c5d6f7}
.more-school .hp-heart-text{font-size:12px}
.more-school .hp-heart-btn{min-height:44px;padding:0 16px;font-size:16px}.more-school .hp-heart-icon .ui-icon{width:22px;height:22px}
@media(max-width:760px){.home-more{margin-bottom:24px}.more-grid{grid-template-columns:1fr}}

/* 検索: 地域・種類・日程だけ見せ、ほかの条件は「条件をさらに絞る」に畳む(設定済みなら開く) */
.search-more{margin-top:14px;padding-top:4px;border-top:1px solid #d9e4f7}
.search-more>summary{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;min-height:44px;list-style:none;cursor:pointer;font-size:15px;font-weight:700;color:var(--brand-deep)}
.search-more>summary::-webkit-details-marker{display:none}
.search-more>summary .ui-icon{width:20px;height:20px;color:var(--brand)}
.search-more>summary small{font-size:13px;font-weight:400;color:#5a6b8c}
.search-more>summary:focus-visible{outline:3px solid var(--brand);outline-offset:2px;border-radius:6px}
.search-more[open]>summary{margin-bottom:10px}
.search-fields.search-fields-more{grid-template-columns:1fr 1fr 1fr 1.7fr}
.search-more-controls{margin-top:14px}
@media(max-width:1100px){.search-fields.search-fields-more{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.search-fields.search-fields-more{grid-template-columns:1fr}}

/* /about 料金: 先に「ずっと無料」と「プランで便利に」の2枚。表は畳む */
.about-plan-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 0 16px}
.about-plan-card{padding:18px 20px;border:1px solid #d9e4f7;border-radius:14px;background:#fff}
.about-plan-card h3{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:17px;color:var(--brand-deep)}.about-plan-card h3 .ui-icon{width:20px;height:20px;color:var(--brand)}
.about-plan-card.free{border-color:#bfe3cc;background:#eaf6ee}.about-plan-card.free h3,.about-plan-card.free h3 .ui-icon{color:var(--ok-text)}
.plan-card-price{display:flex;flex-wrap:wrap;gap:4px 18px;margin:0 0 10px;font-size:14px;color:#3d4c66}.plan-card-price strong{font-size:22px;color:var(--brand-deep)}.plan-card-price s{color:#6b7a99}.plan-card-price b{margin-right:6px}.plan-card-price small{margin-left:4px}.plan-card-price .plan-off{color:#d6334a;font-weight:700}
.about-plan-card ul{margin:0;padding-left:20px;font-size:14px;line-height:1.85;color:#3d4c66}
.about-plan-details{margin-bottom:14px}
@media(max-width:760px){.about-plan-split{grid-template-columns:1fr}}


/* スコアブック入力（2026-10-26）：選手×イニングの表。打順・守備・選手の3列は横スクロールしても残す（スマホは選手名を短く）。 */
.bk-table{width:auto;min-width:100%}
.bk-table th,.bk-table td{padding:4px;vertical-align:middle}
.bk-table .bk-order,.bk-table .bk-pos,.bk-table .bk-name{position:sticky;z-index:1;background:#fff}
.bk-table thead .bk-order,.bk-table thead .bk-pos,.bk-table thead .bk-name{background:#f3f6fc}
.bk-table tfoot .bk-order,.bk-table tfoot .bk-pos,.bk-table tfoot .bk-name{background:#f8faff}
.bk-table .bk-order{left:0;width:56px;min-width:56px}.bk-table .bk-pos{left:56px;width:46px;min-width:46px}
.bk-table .bk-name{left:102px;min-width:150px;max-width:190px;text-align:left;white-space:normal;box-shadow:1px 0 0 #dbe4f5}
.bk-table td.bk-order{display:table-cell}.bk-table td.bk-order b{display:block;color:var(--brand);font-size:15px}
.bk-table tr.bk-sub td,.bk-table tr.bk-sub th{background:#fbfcff}.bk-table tr.bk-sub .bk-order,.bk-table tr.bk-sub .bk-pos,.bk-table tr.bk-sub .bk-name{background:#fbfcff}
.bk-mini{display:inline-flex;align-items:center;gap:2px;min-height:26px;margin-top:2px;padding:0 6px;border:1px solid #c9d5ef;border-radius:8px;background:#fff;color:var(--brand);font-size:11px;font-weight:700}
.bk-mini .ui-icon{width:12px;height:12px}
.bk-posbtn{min-width:38px;min-height:36px;border:1px solid #dbe4f5;border-radius:8px;background:#fff;color:#1d2b4a;font-weight:800}
.bk-who{display:flex;flex-direction:column;align-items:flex-start;width:100%;min-height:36px;padding:2px 4px;border:0;border-radius:8px;background:none;color:#1d2b4a;font-weight:700;text-align:left}
.bk-who:hover,.bk-posbtn:hover,.bk-mini:hover{background:var(--brand-tint)}
.bk-name small{display:block;color:#5d6b82;font-size:11px;font-weight:600}
.bk-cell{display:flex;flex-direction:column;align-items:stretch;gap:3px;min-width:58px}
.bk-pa{position:relative;min-height:34px;padding:2px 4px;border:1px solid #dbe4f5;border-radius:8px;background:#fff;color:#1d2b4a;font-size:13px;font-weight:800;white-space:nowrap}
.bk-pa sup{margin-left:2px;font-size:10px}.bk-pa i{margin-left:2px;font-size:9px;font-style:normal}
.bk-pa small{display:block;font-size:10px;font-weight:700;line-height:1.3;white-space:normal}
.bk-add{display:grid;place-items:center;min-height:34px;border:1px dashed #c9d5ef;border-radius:8px;background:#f8faff;color:var(--brand)}
.bk-add .ui-icon{width:16px;height:16px}
.bk-add.more{min-height:22px;border-style:dotted;background:none;opacity:.75}.bk-add.more .ui-icon{width:12px;height:12px}
.bk-add:hover{border-color:var(--brand);background:var(--brand-tint);opacity:1}
.bk-skip{color:#9aa6ba;background:#f6f7fa}
.bk-off{color:var(--attn-strong);font-weight:800}.bk-off small{font-size:10px}
.rx-item[aria-pressed=true]{border-color:var(--brand);background:var(--brand-tint);color:var(--brand-deep)}
@media(max-width:600px){
 .bk-table .bk-order{width:44px;min-width:44px}.bk-table .bk-pos{left:44px;width:42px;min-width:42px}
 .bk-table .bk-name{left:86px;min-width:92px;max-width:110px;font-size:13px}

}
.sheet-option:disabled{opacity:.55;cursor:not-allowed}.sheet-option.row span .ui-icon{width:16px;height:16px;margin-right:6px;vertical-align:-3px}
.bk-results{grid-template-columns:repeat(3,minmax(0,1fr))}.bk-results .rx-item{min-height:48px;font-size:14px}
@media(max-width:600px){
 .bk-table .bk-order{width:38px;min-width:38px}.bk-table .bk-pos{left:38px;width:40px;min-width:40px}
 .bk-table .bk-name{left:78px;min-width:78px;max-width:88px;font-size:12px}
 .bk-table .bk-pos .bk-posbtn{min-width:34px}
 .bk-mini{padding:0 4px}.bk-mini span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 .bk-cell{min-width:50px}
}
/* スコアブック入力のダイアログ（2026-10-26 ユーザー指示）：PCは幅を広げて縦スクロールなし、結果ボタンは LIVE の記録アイコンと同じ絵、
   分類（ヒット・出塁・アウト・その他）で枠線の色を分ける、下のボタン列はスクロールしても固定。 */
.sheet-panel.bk-sheet{width:min(900px,calc(100% - 32px));max-height:92vh;padding-bottom:0}
.bk-sheet .bk-sheet-nums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:stretch;margin-bottom:4px}
.bk-sheet .bk-sheet-nums .rx-stepper{grid-template-rows:auto 40px;padding:6px 8px}
.bk-sheet .bk-sheet-nums .rx-scored{grid-column:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:100%;min-height:0;padding:6px 8px;border-radius:12px;font-size:13px;text-align:center}
.bk-sheet .rx-sheet-sub{margin:10px 0 6px}
.bk-sheet .bk-results{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:0}
.bk-res{display:flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:4px 6px;border:1.5px solid var(--bk-kind);font-size:14px;line-height:1.25}
.bk-res .bk-ri{flex:none;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;color:var(--bk-kind)}
.bk-res.hit{--bk-kind:#335ac0}.bk-res.reach{--bk-kind:#1f9d55}.bk-res.out{--bk-kind:#7d8aa0}.bk-res.etc{--bk-kind:#7a5bc7}
.bk-res:hover{border-color:var(--bk-kind);background:#f8faff}
.bk-res[aria-pressed=true]{border:2px solid var(--bk-kind);background:color-mix(in srgb,var(--bk-kind) 12%,#fff);color:#1d2b4a}
.bk-sheet .bk-actions{position:sticky;bottom:0;z-index:2;margin:14px -18px 0;padding:12px 18px calc(14px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e5eaf2}
/* 助っ人の名前（打順に追加・交代の選手）の入力欄 */
.rx-add-helper .m-field input{box-sizing:border-box;width:100%;min-width:0;min-height:44px;border:1px solid #cbd8ee;border-radius:8px;background:#fcfdff;color:#344a72;padding:11px 13px;font:inherit;font-size:14px}
.rx-add-helper .m-field input:focus{outline:3px solid #c8d7ff;border-color:#6c91ed}
.rx-add-helper .m-field>span{display:flex;align-items:center;gap:4px;margin-bottom:6px;font-size:13px;font-weight:700;color:#344a72}.rx-add-helper .m-field>span .ui-icon{width:16px;height:16px}
.bk-table td.num .rx-mini{grid-template-columns:30px 26px 30px}.bk-table td.num .rx-mini button{height:32px}
@media(max-width:899px){.bk-sheet .bk-results{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:600px){
 .bk-sheet .bk-results{grid-template-columns:repeat(3,minmax(0,1fr))}
 .bk-res{flex-direction:column;gap:2px;min-height:54px;font-size:12px}
 .bk-sheet .bk-sheet-nums .rx-stepper{grid-template-columns:32px minmax(0,1fr) 32px;padding:6px 4px}
 .bk-sheet .bk-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px}
 .bk-sheet .bk-actions .button{padding:0 6px;font-size:13px}
 .rx-add-helper .m-field input{font-size:16px}
}
/* スコアブック入力（2026-10-26 2回目の修正）：盗塁死・失策は数字の右に ∧∨、追加ボタンと＋のマスは灰色、ダイアログの削除は左端。 */
.bk-spin{display:inline-flex;align-items:center;gap:4px}.bk-spin output{min-width:22px;font-size:15px;font-weight:800;text-align:right}
.bk-spin-btns{display:flex;flex-direction:column;gap:2px}
.bk-spin-btns button{display:grid;place-items:center;width:28px;height:20px;border:1px solid #d3dae6;border-radius:6px;background:#fff;color:#5d6b82}
.bk-spin-btns button:hover{border-color:#9aa6ba;background:#f3f6fc}
.bk-spin-btns .ui-icon{width:14px;height:14px;transform:rotate(-90deg)}.bk-spin-btns .down .ui-icon{transform:rotate(90deg)}
.bk-mini{border-color:#cfd6e2;color:#7d8aa0}.bk-mini:hover{background:#f3f6fc}
.bk-add{border-color:#cfd6e2;color:#8a96ab;background:#fafbfd}.bk-add:hover{border-color:#9aa6ba;background:#f3f6fc}
.bk-sheet .bk-actions .bk-del{margin-right:auto}
@media(max-width:600px){.bk-sheet .bk-actions{display:flex}.bk-sheet .bk-actions .button{flex:1}.bk-sheet .bk-actions .bk-del{flex:0 0 auto}}
/* かんたん入力の成績表（2026-10-26 ユーザー指示）：打順・背番号・名前は横スクロールしても固定、全項目を表示、数字はその場で直せる。 */
.sx-table{width:auto;min-width:100%}
.sx-table th,.sx-table td{padding:4px 6px}
.sx-table .sx-order,.sx-table .sx-num,.sx-table .sx-name,.sx-table .sx-player{position:sticky;z-index:1;background:#fff}
.sx-table thead .sx-order,.sx-table thead .sx-player{background:#f3f6fc}
.sx-table tfoot .sx-order,.sx-table tfoot .sx-num,.sx-table tfoot .sx-name{background:#f8faff}
.sx-table .sx-order{left:0;width:40px;min-width:40px;text-align:center}.sx-table .sx-order b{color:var(--brand)}
.sx-table .sx-num{left:40px;width:40px;min-width:40px;text-align:left;color:#5d6b82;font-weight:700}
.sx-table .sx-player{left:40px;text-align:left}
.sx-table .sx-name{left:80px;min-width:120px;max-width:180px;text-align:left;white-space:normal;box-shadow:1px 0 0 #dbe4f5}
.sx-table tr.active td,.sx-table tr.active th{background:var(--brand-tint)}
.sx-table tr.warn .sx-name{box-shadow:inset 3px 0 0 var(--attn),1px 0 0 #dbe4f5}
.sx-who{display:flex;flex-direction:column;align-items:flex-start;width:100%;min-height:36px;padding:2px 4px;border:0;border-radius:8px;background:none;color:#1d2b4a;font-weight:700;text-align:left}
.sx-who:hover{background:var(--brand-tint)}
.sx-val{min-width:38px;min-height:34px;padding:0 4px;border:1px solid transparent;border-radius:8px;background:none;color:#1d2b4a;font-variant-numeric:tabular-nums}
.sx-val:hover{border-color:#c9d5ef;background:#f8faff}
.sx-input{box-sizing:border-box;width:48px;height:34px;padding:0 2px;border:1px solid #6c91ed;border-radius:8px;background:#fff;color:#1d2b4a;font:inherit;font-weight:800;text-align:center;-moz-appearance:textfield;outline:3px solid #c8d7ff}
.sx-input::-webkit-outer-spin-button,.sx-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
@media(max-width:600px){.sx-table .sx-name{min-width:84px;max-width:96px;font-size:13px}.sx-input{font-size:16px}}
/* かんたん入力の成績表（2回目）：背番号はバッジで中央、行の高さに名前と揃える、守備機会から右（任意の項目）の左に線。 */
.sx-table tbody td,.sx-table tbody th,.sx-table tfoot td,.sx-table tfoot th{vertical-align:middle}
.sx-table .sx-num{text-align:center}
.sx-badge{display:inline-grid;place-items:center;min-width:28px;height:22px;padding:0 6px;border-radius:6px;background:var(--brand-tint4);color:var(--brand);font-size:12px;font-weight:800;line-height:1}
.sx-badge.none{background:#eef1f5;color:#8a96ab}
.sx-who{justify-content:center;min-height:34px;padding:0 4px;line-height:1.3}
.sx-who .rx-pinch{margin-left:0}
.sx-table .sx-opt{border-left:2px solid #c9d5ef}
/* かんたん入力の入力カードをたたむ（2026-10-26 ユーザー指示）：たたむボタンはカードの右上。 */
.rx-card.folded{padding-bottom:12px}.rx-card.folded .rx-card-head{margin-bottom:0}
.rx-card-head .sx-fold{margin-left:auto}
.sx-input.sx-ip{width:60px}
.bk-table .bk-line{border-left:2px solid #c9d5ef}
.g-award-area{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0}.g-award-area select{min-width:140px}
.g-award-heading{margin:12px 0 6px;font-size:16px;color:var(--brand-deep)}
.g-award-now{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 8px}.g-award-now small{color:#5d6b82}
.g-award-count{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0}.g-award-count b{margin-right:10px;color:var(--brand-deep)}
.g-rank-tabs{flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}.g-rank-tabs>*{flex:0 0 auto}

/* 打席ごとに入力のグラウンド（2026-10-26 ユーザー指示）：LIVE の記録画面のように、グラウンドに打者・走者・相手の守備を置いて入力する。
   ナイター（.rxg.night）は色の制限なし（夜の球場・金色）、スタンダード（.rxg.standard）はほかの画面と同じ青と白。選手の札の決まりは live の field.css と同じ */
.rxg{--g-bg:#fff;--g-ink:#17335c;--g-sub:#5d6b82;--g-line:#d6e0f3;--g-accent:var(--brand);--g-tile:#fff;--g-tile-line:#c9d5ef;--g-hit:#335ac0;--g-on:#1f9d55;--g-out:#7d8aa0;--g-etc:#7a5bc7;--g-lamp:var(--brand);
  margin:0 0 16px;padding:14px;border:2px solid var(--brand);border-radius:14px;background:var(--g-bg);color:var(--g-ink)}
.rxg.night{--g-bg:radial-gradient(120% 70% at 50% 0,#1f3a7a 0,#0f1f47 55%,#0a1532 100%);--g-ink:#f3f6ff;--g-sub:#aebbe0;--g-line:rgba(255,255,255,.14);--g-accent:#f2c14e;--g-tile:rgba(255,255,255,.06);--g-tile-line:rgba(255,255,255,.2);
  --g-hit:#8fb2ff;--g-on:#4fe08f;--g-out:#b7c1d6;--g-etc:#c3aaff;--g-lamp:#ff6b6b;border-color:#2c467f;box-shadow:0 12px 30px rgba(6,14,38,.35),inset 0 1px 0 rgba(255,255,255,.08)}
.rxg-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:0 -14px 14px;padding:0 14px 12px;border-bottom:1px solid var(--g-line)}
.rxg-inning{display:flex;align-items:baseline;gap:14px}.rxg-inning strong{font-size:22px}
.rxg-score{display:inline-flex;align-items:baseline;gap:6px;color:var(--g-sub);font-weight:700}.rxg-score b{font-size:26px;line-height:1;color:var(--g-accent);font-variant-numeric:tabular-nums}
.rxg-theme{display:inline-flex;border:1px solid var(--g-tile-line);border-radius:8px;overflow:hidden}
.rxg-theme button{min-height:36px;padding:0 12px;border:0;border-radius:0;background:transparent;color:var(--g-sub);font-size:13px;font-weight:800}
.rxg-theme button[aria-pressed="true"]{background:var(--brand);color:#fff}.rxg.night .rxg-theme button[aria-pressed="true"]{background:#f2c14e;color:#1b2440}
.rxg-main{display:grid;gap:14px;grid-template-columns:minmax(0,1fr);grid-template-areas:"center" "side" "order"}
.rxg-center{grid-area:center;min-width:0}.rxg-side{grid-area:side;min-width:0}.rxg-order{grid-area:order;min-width:0}
@media (min-width:760px){.rxg-main{grid-template-columns:minmax(0,1fr) 210px;grid-template-areas:"center side" "order order"}}
@media (min-width:1240px){.rxg-main{grid-template-columns:190px minmax(0,1fr) 200px;grid-template-areas:"order center side"}}
.rxg-h{display:flex;align-items:center;gap:6px;height:40px;margin:0 0 10px;font-size:14px;color:var(--g-sub)}.rxg-h .ui-icon{width:18px;height:18px}
.rxg-now{display:flex;align-items:center;gap:10px;height:40px;margin:0 0 10px}.rxg-now>small{color:var(--g-sub);font-weight:700}
.rxg-now strong{display:flex;align-items:center;gap:8px;min-width:0;font-size:20px}.rxg.night .rxg-now .lu-num{background:#f2c14e;color:#1b2440}
.rxg.night .num-tag{background:rgba(255,255,255,.14);color:#fff}
.rxg-outs-text{display:inline-flex;align-items:center;gap:6px;margin-left:auto;color:var(--g-sub);font-weight:700}
.rxg-lamps{display:inline-flex;gap:5px}.rxg-lamps i{width:15px;height:15px;border:2px solid var(--g-lamp);border-radius:50%}.rxg-lamps i.on{background:var(--g-lamp);box-shadow:0 0 8px var(--g-lamp)}
.rxg.standard .rxg-lamps i.on{box-shadow:none}
/* グラウンド：LIVE の 400×285（ホーム 200,250）。位置は live-ground.js が CSSOM で入れる */
.rxg-field{--m:#fff;--s:#17335c;--led:#ffd84a;--accent-2:#19d3ff;position:relative;width:100%;aspect-ratio:400/285;border-radius:10px;overflow:hidden;background:#3e6b34;touch-action:none;user-select:none;-webkit-user-select:none}
.rxg-field.standard{--led:#335ac0;--accent-2:#7aa2ff;background:#eef3fc;border:1px solid #d6e0f3}
.rxg-field .ground,.rxg-field .layer{position:absolute;inset:0}.rxg-field .ground svg{width:100%;height:100%;display:block}
.rxg-field .pl{position:absolute;transform:translate(-50%,-92%);display:flex;flex-direction:column;align-items:center;gap:1px;transition:left .26s linear,top .26s linear,opacity .3s;z-index:2}
.rxg-field .pl b{font-size:11px;line-height:1.35;padding:1px 6px;border-radius:4px;background:var(--m);color:var(--s);border:1px solid rgba(255,255,255,.55);white-space:nowrap;font-weight:800}
.rxg-field .pl b em{font-style:normal;font-weight:600;margin-right:3px}
.rxg-field .fig{width:18px;height:23px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.5))}.rxg-field .fig .cap{fill:var(--m)}.rxg-field .fig .uni{fill:var(--m);stroke:var(--s);stroke-width:.8}
.rxg-field.standard .fig{filter:drop-shadow(0 1px 1px rgba(23,51,92,.35))}.rxg-field.standard .pl b{border-color:rgba(23,51,92,.4)}
.rxg-field .pl.run{z-index:3}.rxg-field .pl.run b{box-shadow:0 0 0 2px var(--led),0 0 10px rgba(255,216,74,.65)}.rxg-field.standard .pl.run b{box-shadow:0 0 0 2px var(--led)}
.rxg-field .pl.bat b{position:relative;top:6px;box-shadow:0 0 0 2px var(--accent-2),0 0 10px rgba(25,211,255,.6)}.rxg-field.standard .pl.bat b{box-shadow:0 0 0 2px var(--accent-2)}
.rxg-field .pl.lr{flex-direction:row-reverse;align-items:center;gap:3px;transform:translate(-9px,-100%)}
.rxg-field .pl.ll{flex-direction:row;align-items:center;gap:3px;transform:translate(calc(-100% + 9px),-100%)}
.rxg-field .pl.home{opacity:0;transition:left .26s linear,top .26s linear,opacity .5s .25s}
.rxg-field .pl.moved{transition:none;z-index:5}
.rxg-field .pl[role="button"]{cursor:pointer}.rxg-field .pl[role="button"]:focus-visible{outline:3px solid var(--led);outline-offset:2px;border-radius:6px}
.rxg-field .rxg-fd b{opacity:.92}.rxg-field .rxg-fd.pick{cursor:grab;z-index:4}.rxg-field .rxg-fd.pick b{animation:rxg-pick 1.4s ease-in-out infinite}
.rxg-field .rxg-fd.took b{box-shadow:0 0 0 3px var(--led)}
.rxg-field .pl.asking b{animation:rxg-ask 1s ease-in-out infinite}
@keyframes rxg-pick{50%{box-shadow:0 0 0 3px rgba(255,255,255,.85)}}
@keyframes rxg-ask{50%{box-shadow:0 0 0 4px var(--led),0 0 16px var(--led)}}
.rxg-field .ondeck{position:absolute;display:grid;grid-template-columns:auto auto;grid-template-areas:"cap fig" "name fig";align-items:end;justify-items:end;column-gap:2px;transform:translate(calc(-100% + 6px),-100%);z-index:2}
.rxg-field .ondeck>*{zoom:1}.rxg-field .ondeck small{grid-area:cap;font-size:10px;color:#fff;font-weight:700;text-shadow:0 1px 2px #000}.rxg-field.standard .ondeck small{color:#5d6b82;text-shadow:none}
.rxg-field .ondeck b{grid-area:name;font-size:11px;padding:1px 5px;border-radius:4px;background:var(--m);color:var(--s);white-space:nowrap;opacity:.85}.rxg-field .ondeck .fig{grid-area:fig}
@media (prefers-reduced-motion:reduce){.rxg-field .pl{transition:none}.rxg-field .rxg-fd.pick b,.rxg-field .pl.asking b{animation:none}}
/* グラウンドの下：いま聞いていること。選んだ結果は注目色の札（現在の対象） */
.rxg-ask{margin-top:10px;padding:10px 12px;min-height:58px;border:1px solid var(--g-line);border-radius:10px;background:var(--g-tile)}
.rxg-hint{display:flex;align-items:flex-start;gap:6px;margin:0;color:var(--g-sub);font-size:14px}.rxg-hint .ui-icon{flex:none;width:18px;height:18px;margin-top:1px}
.rxg-q{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 8px;font-size:15px}
.rxg-res{padding:2px 10px;border-radius:6px;background:var(--attn-tint);color:var(--attn-strong);font-size:14px}.rxg.night .rxg-res{background:#f2c14e;color:#1b2440}
.rxg-zone{margin:0 0 6px;color:var(--g-sub);font-size:13px}
.rxg-choices{display:flex;flex-wrap:wrap;gap:8px}
.rxg-choice{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border:1px solid var(--g-tile-line);border-radius:8px;background:#fff;color:var(--g-ink);font-size:15px;font-weight:800}
.rxg.night .rxg-choice{background:rgba(255,255,255,.08)}
.rxg-choice small{color:var(--g-sub);font-weight:700}.rxg-choice:hover{border-color:var(--g-accent)}
.rxg-choice.home{border-color:var(--g-on);color:var(--g-on)}.rxg-choice.out{color:var(--g-out)}
.rxg-choice.on,.rxg-choice[aria-pressed="true"]{border-color:var(--g-accent);box-shadow:inset 0 0 0 1px var(--g-accent)}
.rxg-choices .rxg-quit{margin-left:auto;border-color:#d6334a;background:#fff;color:#d6334a}.rxg.night .rxg-choices .rxg-quit{border-color:#ff7a8a;background:rgba(214,51,74,.16);color:#ffb3bd}
.rxg-choices .rxg-zone{flex:1 1 180px;align-self:center;margin:0}
/* 結果のタイル：ヒット＝青・出塁＝緑・アウト（三振）＝灰・その他＝紫（スコアブック入力の結果ボタンと同じ分け方） */
.rxg-kinds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
@media (min-width:760px){.rxg-kinds{grid-template-columns:repeat(2,minmax(0,1fr))}}
.rxg .rxg-kind{min-height:66px;border:1px solid var(--g-tile-line);border-left:4px solid var(--c,var(--g-tile-line));border-radius:8px;background:var(--g-tile);color:var(--g-ink);font-size:15px}
.rxg .rxg-kind .ui-icon{color:var(--c)}.rxg .rxg-kind:hover{border-color:var(--c);background:var(--g-tile)}
.rxg-kind.hit{--c:var(--g-hit)}.rxg-kind.on{--c:var(--g-on)}.rxg-kind.out{--c:var(--g-out)}.rxg-kind.etc{--c:var(--g-etc)}
.rxg.night .rxg-kind:hover{background:rgba(255,255,255,.12)}
.rxg-tools{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.rxg-tools .button{flex:1 1 0;min-width:0;white-space:nowrap}
.rxg.night .button.secondary{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.28);color:#fff}.rxg.night .button.secondary:hover{background:rgba(255,255,255,.16)}
.rxg.night .button.secondary .ui-icon{color:#f2c14e}
/* 打順：いまの打者を強調、今日の結果を小さく */
.rxg-order ol{display:grid;gap:4px;margin:0 0 10px;padding:0;list-style:none}
.rxg-ob{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:2px 8px;width:100%;min-height:40px;padding:5px 8px;border:1px solid var(--g-line);border-radius:8px;background:transparent;color:var(--g-ink);text-align:left}
.rxg-ob>b{grid-row:1;font-variant-numeric:tabular-nums;color:var(--g-sub)}.rxg-ob-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;font-size:14px}
.rxg-ob-did{grid-column:2;display:flex;flex-wrap:wrap;gap:3px}.rxg-ob-did:empty{display:none}.rxg-ob-did i{font-style:normal;font-size:11px;font-weight:700;padding:0 4px;border-radius:4px;background:var(--g-tile);color:var(--g-out);border:1px solid var(--g-line)}
.rxg-ob-did i.hit{color:var(--g-hit)}.rxg-ob-did i.on{color:var(--g-on)}
.rxg-ob.now{border-color:var(--g-accent);box-shadow:inset 3px 0 0 var(--g-accent)}.rxg-ob.now>b{color:var(--g-accent)}
.rxg-order>.button{width:100%}
@media (max-width:600px){
 .rxg{padding:10px;border-radius:12px}.rxg-inning strong{font-size:19px}.rxg-now strong{font-size:17px}
 .rxg-field .pl b{font-size:10px;padding:0 4px}.rxg-field .fig{width:15px;height:19px}
 .rxg-kinds{grid-template-columns:repeat(3,minmax(0,1fr))}.rxg .rxg-kind{min-height:58px;font-size:14px}
 .rxg-tools .button{padding:0 8px;font-size:13px}.rxg-choice{font-size:14px;padding:0 12px}
 .rxg-top{margin:0 -10px 12px;padding:0 10px 10px}
}
@media (min-width:1240px){.rxg-field .pl b{font-size:12px}.rxg-field .fig{width:22px;height:28px}}
/* 打席ごと：背番号の札は同じ幅、背番号のない選手は「?」（名前の頭がそろう、2026-10-26） */
.rxg .num-tag,.rx-grid .num-tag,.rx-extras .num-tag,.sheet .num-tag{width:30px;min-width:30px;padding:0}
.num-tag.none{background:transparent;border:1px dashed #b7c3dc;color:#8a97b0}.rxg.night .num-tag.none{border-color:rgba(255,255,255,.35);color:#aebbe0;background:transparent}
.rxg-restart{display:flex;justify-content:flex-end;margin-top:12px}
.rxg-tools [data-undo]{flex:0 0 auto}
/* 打席ごと 2回目の手直し（2026-10-26）：LIVE と同じ記録アイコン、打順の番号と名前を同じ行に、選手名から守備、記録を前に戻す */
.rxg .rxg-kind .rxg-ki{width:26px;height:26px;fill:none;stroke:var(--c);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rxg-tools [data-end-inning]{flex:1 1 auto}
@media (max-width:600px){.rxg-tools [data-end-inning]{flex-basis:100%}.rxg .rxg-kind .rxg-ki{width:22px;height:22px}.rxg-field .ondeck>*{zoom:.9}}
.rxg-order-tools{display:grid;gap:8px}.rxg-order-tools .button{width:100%}
.rxg-fielding{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.rxg-fielding:hover>span:first-child{color:var(--brand)}.rxg-fx{font-size:11px;font-weight:700;color:#5d6b82}
.rxg-fx-rows{display:grid;margin-bottom:8px}.rxg-fx-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #e3e9f5;font-weight:800;font-size:16px}
.rxg-back-list{max-height:52vh;overflow:auto}.rxg-back-list .sheet-option b{color:var(--brand-deep)}
.rxg-back-all{display:flex;justify-content:flex-end;margin-top:12px}
.rxg-tools .button{flex:0 0 auto}.rxg-tools [data-back-to]{flex:1 1 auto}.rxg-tools [data-end-inning]{flex:1 1 auto}
/* 打席ごと 3回目の手直し（2026-10-26）：打席の結果の背番号・名前は打順と同じ行、守備の数字は中央、お知らせはグラウンドの右下 */
.rxg-fielding{display:inline-flex;vertical-align:middle}
.rx-mini output{text-align:center}
.rxg-toast{position:absolute;right:10px;bottom:10px;z-index:8;max-width:calc(100% - 20px);padding:8px 14px;border-radius:8px;background:rgba(10,22,55,.92);color:#fff;font-size:13px;font-weight:700;box-shadow:0 6px 18px rgba(0,0,0,.35);opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s;pointer-events:none}
.rxg-field.night .rxg-toast{border:1px solid #f2c14e}.rxg-toast.visible{opacity:1;transform:none}
.rxg-choice{padding:0 12px;font-size:14px}.rxg-choices{gap:6px}
/* 打席ごと ナイター：得点の「+1」とチェンジ（2026-10-26、動きを減らす設定ではなし） */
.rxg-plus{position:absolute;transform:translate(-50%,-50%);z-index:7;font-size:30px;font-weight:900;color:#ffd84a;text-shadow:0 0 14px rgba(255,216,74,.9),0 2px 3px rgba(0,0,0,.6);animation:rxg-up 1.3s ease-out forwards;pointer-events:none}
@keyframes rxg-up{0%{transform:translate(-50%,-30%) scale(.6);opacity:0}20%{transform:translate(-50%,-60%) scale(1.15);opacity:1}100%{transform:translate(-50%,-220%) scale(1);opacity:0}}
.rxg-change{position:absolute;inset:0;z-index:7;display:grid;place-items:center;background:rgba(4,10,28,.35);pointer-events:none;animation:rxg-fade 1.5s ease-out forwards}
.rxg-change b{padding:10px 28px;border-radius:10px;border:2px solid #f2c14e;background:linear-gradient(180deg,#14275a,#0a1634);color:#ffe28a;font-size:28px;letter-spacing:.2em;box-shadow:0 0 30px rgba(242,193,78,.45);animation:rxg-pop 1.5s ease-out forwards}
@keyframes rxg-fade{0%,75%{opacity:1}100%{opacity:0}}@keyframes rxg-pop{0%{transform:scale(.6)}15%{transform:scale(1.08)}25%{transform:scale(1)}}
@media (max-width:600px){.rxg-plus{font-size:24px}.rxg-change b{font-size:22px;padding:8px 20px}}
/* 試合結果を記録：記録方法のカードは PC で4枚1行（2026-10-26）、その下に違いの表 */
@media(min-width:1240px){.rec-modes{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.rec-modes .rec-mode{padding:20px 16px}}
.rec-compare-table{min-width:760px}.rec-compare-table th,.rec-compare-table td{padding:10px 12px;font-size:13px;line-height:1.6;vertical-align:top;text-align:left}
.rec-compare-table thead th{white-space:nowrap}.rec-compare-table tbody th{white-space:nowrap;font-weight:800;color:var(--brand-deep)}
.rec-compare-table{width:100%;min-width:720px;table-layout:fixed}.rec-compare-table th:first-child{width:92px}
.rec-compare-table td{white-space:normal;word-break:break-word}.rec-compare-table thead th{white-space:normal}
@media(max-width:600px){.rec-compare-table{min-width:880px}}
/* 試合結果を記録：記録方法の選択（2026-10-26 ユーザー指示・色の制限なし）。カードは方法ごとに色とイラストを変え、違いはゲージと記号で見せる */
.rm-1{--rm:#e08a1b;--rm-tint:#fff6e0;--rm-line:#f1d9a6}.rm-2{--rm:#1f9d55;--rm-tint:#e8f7ee;--rm-line:#b7e2c7}.rm-3{--rm:#254dea;--rm-tint:#e9eeff;--rm-line:#b9c8f7}.rm-4{--rm:#7a3fd1;--rm-tint:#f3eafd;--rm-line:#d7bff3}
.rec-mode.rm{padding:0;gap:0;overflow:hidden;border:1px solid var(--rm-line);border-top:5px solid var(--rm);border-radius:16px;box-shadow:0 6px 18px rgba(23,51,92,.08);transition:transform .15s,box-shadow .15s}
.rec-mode.rm:hover{border-color:var(--rm);transform:translateY(-2px);box-shadow:0 12px 26px rgba(23,51,92,.16)}
.rec-mode.rm.recommended{border:2px solid var(--rm);border-top-width:5px;box-shadow:0 0 0 4px var(--rm-tint),0 10px 26px rgba(23,51,92,.14)}
.rm-art{display:block;height:108px;line-height:0}.rm-svg{display:block;width:100%;height:100%}
.rm-body{display:flex;flex-direction:column;gap:6px;padding:14px 16px 18px;flex:1}.rec-mode.rm strong{color:var(--rm);font-size:19px}.rm-body>span{font-size:14px;line-height:1.7}.rm-body small{margin-top:auto;padding-top:4px;color:#5d6b82}
.rec-mode.rm .rec-mode-badge{top:12px;right:12px;z-index:2;background:#fff;color:var(--rm);border:1px solid var(--rm);box-shadow:0 2px 8px rgba(0,0,0,.18)}
.rec-mode.rm .rec-mode-badge.paid{background:#fff;color:var(--rm)}
.rec-mode.rm.soon{background:#fff}.rec-mode.rm.soon .rm-art{filter:saturate(.45) brightness(.97)}.rec-mode.rm.soon strong{color:#5d6b82}
.rec-mode-form .rec-mode.rm{height:100%}
/* 過去の記録を移す(2026-11-02)：4つの方法の下に置く横長カード（青緑、色の制限なし）。幅が狭いときは縦並び */
.rm-5{--rm:#0f8b8d;--rm-tint:#e0f5f4;--rm-line:#a9dcda}
.rec-mode.rm.rm-wide{margin-bottom:16px;flex-direction:row;align-items:stretch}.rec-mode.rm.rm-wide .rm-art{flex:0 0 240px;height:auto;min-height:108px}.rec-mode.rm.rm-wide .rm-body{justify-content:center;padding:16px 20px}
.rec-mode.rm.rm-wide.soon{cursor:default}.rec-mode.rm.rm-wide.soon:hover{transform:none;box-shadow:0 6px 18px rgba(23,51,92,.08);border-color:var(--rm-line)}
@media(max-width:600px){.rec-mode.rm.rm-wide{flex-direction:column}.rec-mode.rm.rm-wide .rm-art{flex:none;height:108px;min-height:0}}
/* 違いのひと目表：左に項目、右に4つの方法（スマホでは方法ごとの縦カード） */
.rc-legend{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 14px;padding:0;list-style:none;font-size:13px;color:#5d6b82}.rc-legend li{display:flex;align-items:center;gap:8px}
.rc{display:grid;grid-template-columns:96px repeat(4,minmax(0,1fr));gap:10px}
.rc-labels,.rc-col{display:flex;flex-direction:column;min-width:0}
.rc-h{display:flex;align-items:center;gap:8px;height:52px;padding:0 12px;font-size:14px;font-weight:800}.rc-h .ui-icon{width:20px;height:20px;flex:none}
.rc-col{border:1px solid var(--rm-line);border-top:4px solid var(--rm);border-radius:12px;background:#fff;overflow:hidden}.rc-col .rc-h{background:var(--rm-tint);color:var(--rm)}
.rc-sec{height:30px;display:flex;align-items:center;padding:0 12px;font-size:11px;font-weight:800;letter-spacing:.06em;color:#5d6b82;background:#f4f7fd;border-top:1px solid #e3e9f5}
.rc-col .rc-sec{background:#fafbfe}
.rc-row{height:62px;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:0 12px;border-top:1px solid #edf1f9;font-size:13px;color:#1d2b4a}.rc-labels .rc-row,.rc-labels .rc-use-row{font-weight:800;color:#5d6b82;padding:0 4px;align-items:flex-start;justify-content:center}
.rc-use-row{height:76px;display:flex;align-items:center;padding:0 4px;border-top:1px solid #edf1f9;font-size:13px}
.rc-use{margin:0;height:76px;display:flex;align-items:center;padding:0 12px;border-top:1px solid #edf1f9;font-size:13px;font-weight:700;line-height:1.55;color:var(--rm)}
.rc-labels .rc-h{visibility:hidden}.rc-labels .rc-sec{background:none;border-top:0;padding:0 4px}
.rc-row small{font-size:12px;color:#5d6b82;line-height:1.35}
.rc-v{display:inline-flex;align-items:center;gap:7px;font-weight:800;font-size:14px}.rc-v i{flex:none;width:16px;height:16px;border-radius:50%;box-sizing:border-box}
.rc-v.auto{color:#254dea}.rc-v.auto i{background:#254dea;border:2px solid #254dea}
.rc-v.input{color:#c46a0a}.rc-v.input i{border:2px solid #f08a24;background:linear-gradient(90deg,#f08a24 50%,#fff 50%)}
.rc-v.none{color:#8a97b0;font-weight:700}.rc-v.none i{border:2px solid #b7c1d6;background:#fff}
.rc-gauge{display:inline-flex;gap:5px}.rc-gauge i{width:15px;height:15px;border-radius:50%;background:#e3e9f5}
.rc-gauge.lv1 i:nth-child(-n+1),.rc-gauge.lv2 i:nth-child(-n+2),.rc-gauge.lv3 i:nth-child(-n+3),.rc-gauge.lv4 i:nth-child(-n+4){background:var(--rm)}
.rc-when{align-self:flex-start;padding:3px 10px;border-radius:8px;font-size:12px;font-weight:800}.rc-when.after{background:#eef2fb;color:#335ac0}.rc-when.live{background:#d6334a;color:#fff}
.rc-price{align-self:flex-start;padding:3px 10px;border-radius:8px;font-size:12px;font-weight:800}.rc-price.free{background:#e6f7ec;color:#17703c}.rc-price.paid{background:#f3eafd;color:#6b3fb3}
.rec-compare-details{margin-top:16px}.rec-compare-details summary{cursor:pointer;font-size:13px;font-weight:800;color:var(--brand)}.rec-compare-details[open] summary{margin-bottom:10px}
@media(max-width:800px){
 .rc{grid-template-columns:minmax(0,1fr);gap:14px}.rc-labels{display:none}.rc-col .rc-sec{display:none}
 .rc-h{height:46px;font-size:15px}
 .rc-row{height:auto;min-height:46px;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px}
 .rc-row::before{content:attr(data-label);flex:none;font-size:12px;font-weight:800;color:#5d6b82}
 .rc-row>.rc-v{margin-left:auto}.rc-row>small{display:none}.rc-row .rc-gauge,.rc-row .rc-when,.rc-row .rc-price{margin-left:auto}
 .rc-use{height:auto;min-height:54px;padding:12px;border-top:1px solid #edf1f9}.rc-use::before{content:"こんなときに　";font-size:11px;font-weight:800;color:#5d6b82;margin-right:8px;flex:none}
}
.rc-labels{padding-top:4px}@media(max-width:800px){.rc-labels{padding-top:0}}
.rc-h,.rc-use,.rc-sec{margin:0}
.rec-compare .rc-col,.rec-compare .rc-labels{margin:0}
.m-panel.rec-compare .rc-col .rc-h,.m-panel.rec-compare .rc-labels .rc-h{margin:0}
/* 手直し：列の見出しは折り返さない・項目列は少し広く・バッジはイラストの下側に置いて LIVE などの絵を隠さない */
.rc{grid-template-columns:112px repeat(4,minmax(0,1fr))}
.rc-col .rc-h{padding:0 8px;gap:6px;font-size:13px;white-space:nowrap}.rc-col .rc-h .ui-icon{width:16px;height:16px}
.rc-sec{white-space:nowrap;overflow:hidden}
.rec-mode.rm .rec-mode-badge{top:78px;right:10px;max-width:calc(100% - 20px);padding:1px 8px;font-size:11px}
@media(max-width:800px){.rc{grid-template-columns:minmax(0,1fr)}.rc-col .rc-h{font-size:15px;padding:0 12px}.rc-col .rc-h .ui-icon{width:20px;height:20px}}
/* 同じ相手としてまとめる (予定詳細) */
.opponent-merge{margin-top:8px}.opponent-merge>summary{display:inline-flex;list-style:none;cursor:pointer}.opponent-merge>summary::-webkit-details-marker{display:none}.opponent-merge form{margin-top:8px;max-width:520px}.opponent-merge .m-help{margin:0 0 8px}
.merge-picker{border:1px solid #d6e0f2;border-radius:10px;background:#fff;overflow:hidden;margin-bottom:10px}
.merge-search{display:flex;align-items:center;gap:8px;padding:0 12px;border-bottom:1px solid #e5eaf2;color:#68778c}.merge-search svg{flex:none;width:18px;height:18px}
.merge-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;padding:11px 0;font:inherit;color:#20365f}
.merge-list{list-style:none;margin:0;padding:0;max-height:240px;overflow:auto}.merge-list li{border-bottom:1px solid #eef2f8}.merge-list li:last-child{border-bottom:0}.merge-list li[hidden]{display:none}
.merge-row{display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;color:#20365f}.merge-row:hover{background:var(--brand-tint3)}
.merge-row input{flex:none;width:18px;height:18px;margin:0;accent-color:var(--brand)}.merge-name{flex:1;min-width:0;font-weight:700;overflow-wrap:break-word}.merge-row small{flex:none;color:#68778c}
.merge-row:has(input:checked){background:var(--brand-tint3);box-shadow:inset 3px 0 0 var(--brand)}
.merge-empty{padding:10px 12px;margin:0}
/* 電話の幅: 名前が行の幅を使い、試合数・日付は下の行に（名前が1文字ずつ折れないように） */
@media(max-width:700px){.merge-row{flex-wrap:wrap}.merge-name{flex:1 1 calc(100% - 30px)}.merge-row small{margin-left:28px}}

/* ── 처음 쓰는 사람용 따라하기 안내(js/tour.js, server/docs/tour.md). 본체·LIVE에 같은 블록 ── */
.m9-tour-ring{position:fixed;z-index:10000;pointer-events:none;border:3px solid #335ac0;border-radius:10px;box-shadow:0 0 0 4px rgba(51,90,192,.25);animation:m9-tour-pulse 1.6s ease-in-out infinite}
.m9-tour-ring.dim{box-shadow:0 0 0 4px rgba(51,90,192,.25),0 0 0 9999px rgba(15,28,52,.38)}
.m9-tour{position:fixed;z-index:10001;box-sizing:border-box;padding:14px 14px 12px;background:#fff;color:#17335c;border:1px solid #c9d6ef;border-top:4px solid #335ac0;border-radius:12px;box-shadow:0 12px 32px rgba(15,28,52,.28);font-size:14px;line-height:1.6;text-align:left}
.m9-tour::before{content:"";position:absolute;left:var(--m9-tour-arrow,50%);width:12px;height:12px;margin-left:-6px;background:#fff;border:1px solid #c9d6ef;transform:rotate(45deg)}
.m9-tour[data-side=below]::before{top:-10px;border-right:0;border-bottom:0;background:#335ac0;border-color:#335ac0}
.m9-tour[data-side=above]::before{bottom:-7px;border-left:0;border-top:0}
.m9-tour.attn{border-top-color:#fe6207}.m9-tour.attn[data-side=below]::before{background:#fe6207;border-color:#fe6207}
.m9-tour-body b{display:block;margin:0 0 4px;font-size:15px;font-weight:800;color:#17335c}
.m9-tour.attn .m9-tour-body b{color:#c24a06}
.m9-tour-body p{margin:0;color:#33476b}.m9-tour-body p+p{margin-top:6px}
.m9-tour-foot{display:flex;align-items:center;gap:6px;margin-top:12px}
.m9-tour-count{flex:1;text-align:center;font-size:12px;color:#68778c}
.m9-tour-btn{min-height:36px;padding:0 12px;border:1px solid #c9d6ef;border-radius:8px;background:#fff;color:#20365f;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.m9-tour-btn.primary{background:#335ac0;border-color:#335ac0;color:#fff}
.m9-tour-btn.ghost{border-color:transparent;background:transparent;color:#68778c;padding:0 6px}
.m9-tour-btn:focus-visible{outline:3px solid rgba(51,90,192,.45);outline-offset:2px}
@media(max-width:600px){.m9-tour-btn{min-height:40px}}
@keyframes m9-tour-pulse{50%{box-shadow:0 0 0 8px rgba(51,90,192,.12)}}
.m9-tour-ring.dim{animation:none}
@media(prefers-reduced-motion:reduce){.m9-tour-ring{animation:none}}
/* 화면의 「使い方」 다시 보기 버튼 */
.tour-open{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border:1px solid #c9d6ef;border-radius:8px;background:#fff;color:#335ac0;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.tour-open svg{width:16px;height:16px;flex:none}
/* 募集フォーム（/posts/new）の組み替え(2026-10-27、ユーザー指示：色制限なし)：種類ごとの色とイラストのカード、5つのステップ、進み具合の帯。
   色は --pf1/--pf2/--pf-soft（ブランドの青系の固定値）。2026-10-29：種類を選んでも色は変えない（以前は種類ごとのテーマ色だった。選んだ種類は #mock-content[data-cat] に入る）。 */
#mock-content{--pf1:#335ac0;--pf2:#1f3f7a;--pf-soft:#eef3ff}
.pf-step{margin:0 0 20px;border:1px solid #dbe4f5;border-radius:16px;background:#fff;overflow:hidden;scroll-margin-top:92px}
.pf-step-head.panel-title{display:flex;flex-wrap:nowrap;align-items:center;gap:10px;margin:0;padding:12px 16px;border-left:6px solid var(--pf1);background:var(--pf-soft);font-size:18px;color:#17335c}
.pf-step-head .panel-title-icon{background:linear-gradient(135deg,var(--pf1),var(--pf2));color:#fff}
.pf-step-count{margin-left:auto;padding:2px 10px;border-radius:999px;background:#fff;font-size:12px;font-weight:700;color:#5d6b86;white-space:nowrap}
.pf-step-body{padding:18px 18px 4px}
.pf-legend-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;padding:0}
.post-form .category-picker{position:relative;border:0;padding:0;margin:0}
.post-form .category-tiles{gap:10px}
.post-form .category-tile{flex-direction:row;align-items:center;justify-content:flex-start;gap:10px;min-height:0;padding:8px 8px 8px 6px;overflow:visible;border:2px solid #d6e0f2;border-radius:12px;background:#fff;text-align:left;transition:transform .12s,box-shadow .12s}
.post-form .category-tile{gap:8px}.post-form .category-tile:hover{border-color:var(--brand-soft);transform:translateY(-1px);box-shadow:0 4px 10px rgba(23,51,92,.12)}
.ct-art{flex:none;display:block;width:64px;height:44px}
.ct-art svg{display:block;width:100%;height:100%}
.ct-art .p{fill:var(--pf1)}.ct-art .s{fill:var(--pf2)}.ct-art .l{fill:var(--pf-soft)}.ct-art .w{fill:#fff}.ct-art .ps{stroke:var(--pf1)}.ct-art .ss{stroke:var(--pf2)}
/* 募集の種類を選んでも色は変えない(2026-10-29): --pf1/--pf2/--pf-soft はブランドの青系の固定値(上の #mock-content)。 */
.ct-check{position:absolute;top:-8px;right:-8px;display:none;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--brand-vivid);color:#fff;box-shadow:0 1px 4px rgba(0,0,0,.3)}.ct-check .ui-icon{width:14px;height:14px}
.post-form .category-tile:has(input:checked) .ct-check{display:grid}
.ct-text{display:flex;flex-direction:column;gap:1px;min-width:0}
.post-form .category-tile .category-name{font-size:14px;font-weight:800;color:#17335c;line-height:1.35;white-space:nowrap}
.ct-desc{font-size:11.5px;font-weight:500;color:#5d6b86;line-height:1.4}
.post-form .category-tile:has(input:checked){border-color:var(--brand-vivid);background:#fff;box-shadow:0 0 0 1px var(--brand-vivid),0 6px 14px rgba(23,51,92,.14)}
.pf-lead{margin:0 0 14px;font-size:14px;color:#4a5f86}
.pf-more{margin:0 0 18px;padding:0 14px;border:1px dashed #b9c6e0;border-radius:12px}.pf-more[hidden]{display:none}
.pf-more>summary{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;list-style:none;font-weight:700;color:#264676}.pf-more>summary::-webkit-details-marker{display:none}
.pf-more>summary .ui-icon:last-child{margin-left:auto;transition:transform .15s}.pf-more[open]>summary .ui-icon:last-child{transform:rotate(90deg)}
.pf-more[open]{padding-bottom:6px}
@media(max-width:700px){.pf-step-body{padding:14px 14px 2px}.ct-art{width:56px;height:40px}.ct-desc{display:none}.post-form .category-tile{padding:6px 8px 6px 6px;gap:6px}.post-form .category-tile .category-name{font-size:13px;white-space:normal}.pf-step-head.panel-title{font-size:16px;padding:10px 12px}.pf-step{scroll-margin-top:84px}}
@media(prefers-reduced-motion:reduce){.post-form .category-tile{transition:none}.post-form .category-tile:hover{transform:none}}
.pf-auto-note{display:flex;align-items:flex-start;gap:8px;margin:10px 0 0;padding:9px 12px;border-radius:10px;border:1px solid #f0d27a;background:#fff4cc;color:#6b4a00;font-size:13px;line-height:1.7;font-weight:600}.pf-auto-note .ui-icon{flex:none;width:17px;height:17px;margin-top:3px;color:#c98a00}.pf-auto-note strong{color:#8a4b00;font-weight:800}
.pf-area{margin:0 0 18px;border:1px solid #d6e0f2;border-radius:12px;background:#fcfdff}
.pf-area>summary{display:flex;align-items:center;gap:8px;min-height:48px;padding:0 14px;cursor:pointer;list-style:none;font-weight:700;color:#264676}.pf-area>summary::-webkit-details-marker{display:none}
.pf-area>summary .ui-icon:first-child{flex:none;width:17px;height:17px;color:var(--brand)}
.pf-area-value{margin-left:auto;font-weight:700;color:var(--pf2);text-align:right}
.pf-area>summary .ui-icon:last-child{flex:none;transition:transform .15s}.pf-area[open]>summary .ui-icon:last-child{transform:rotate(90deg)}
.pf-area>[data-area-picker]{padding:0 14px 14px}
.pf-progress{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 0 14px;padding:6px 12px;border:1px solid #dbe4f5;border-radius:12px;background:rgba(255,255,255,.97);box-shadow:0 3px 10px rgba(23,51,92,.08)}
.pf-progress-title{display:flex;align-items:center;gap:6px;margin:0;font-size:13px;font-weight:800;color:#17335c;white-space:nowrap}.pf-progress-title .ui-icon{width:17px;height:17px;color:var(--pf1)}
.pf-progress ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:2px 0;flex:1 1 auto}
.pf-progress li+li{margin-left:4px;padding-left:4px;border-left:1px solid #dbe4f5}
.pf-progress ol a{display:flex;align-items:center;gap:5px;padding:3px 7px;border-radius:8px;font-size:12.5px;font-weight:700;color:#3d4c66;white-space:nowrap}
.pf-progress ol a:hover{background:var(--pf-soft)}
.pf-chip-mark{display:grid;place-items:center;flex:none;width:20px;height:20px;border-radius:50%;border:2px solid var(--pf1);background:#fff;color:var(--pf2);font-size:11px}.pf-chip-mark{line-height:1;box-sizing:border-box}.pf-chip-mark b{display:block;font-weight:800;line-height:1}
.pf-chip-mark .ui-icon{display:none;width:12px;height:12px}
.pf-progress a.optional .pf-chip-mark{border-style:dashed;border-color:#b9c6e0}
.pf-progress a.pf-alert .pf-chip-mark{border-color:#d6334a;background:#d6334a;color:#fff;box-shadow:0 0 0 3px rgba(214,51,74,.16)}
.pf-progress a.done .pf-chip-mark{border-color:#1f9d55;background:#1f9d55;color:#fff}.pf-progress a.done .pf-chip-mark .ui-icon{display:block}.pf-progress a.done .pf-chip-mark b{display:none}
.pf-remaining{display:flex;align-items:center;gap:10px;margin:0;font-size:13px}
.pf-remain-badge{padding:3px 11px;border-radius:999px;background:#fde8eb;color:#b3202f;font-weight:800;white-space:nowrap}
.pf-remain-badge.ok{background:#e4f6ea;color:#14633a;cursor:default}
.pf-jump{display:inline-flex;align-items:center;gap:4px;font-weight:700;color:var(--brand);white-space:nowrap}.pf-jump[hidden]{display:none}.pf-jump .ui-icon{width:15px;height:15px}
@media(max-width:700px){.pf-progress{gap:4px 8px;padding:6px 10px}.pf-progress ol{order:3;flex-basis:100%}.pf-progress ol a{padding:3px 3px;font-size:11.5px;gap:3px}.pf-progress ol .pf-chip-mark{width:18px;height:18px;font-size:10px}.pf-progress li+li{margin-left:0;padding-left:0}.pf-remaining{margin-left:auto}.pf-jump{display:none}}
/* 参加が9人を超えた「人数」の演出(2026-10-27、ユーザー指示・金色の例外あり)：10人目以降は金色のランプ。画面に見えたとき、1人ずつ弾む(JS が lamp-armed→lamp-play を付ける)。 */
.player-lamp-cell{position:relative}
.player-lamp-cell.is-extra .player-lamp.is-on{fill:var(--star);stroke:var(--star-edge)}
.lamp-plus{position:absolute;left:50%;top:-4px;transform:translateX(-50%);font-size:11px;font-weight:800;line-height:1;color:#9a6200;opacity:0;pointer-events:none}
.lamp-total{margin-left:10px;color:#17335c;font-weight:700}.lamp-total strong{font-size:1.15em;color:#17335c;font-variant-numeric:tabular-nums}
.player-lamps[data-lamp-cheer]{cursor:pointer;padding-top:14px;margin-top:0}
@keyframes lamp-pop{0%{opacity:0;transform:translateY(12px) scale(.3)}55%{opacity:1;transform:translateY(-10px) scale(1.25)}78%{transform:translateY(1px) scale(.95)}100%{opacity:1;transform:none}}
@keyframes lamp-plus{0%{opacity:0;transform:translate(-50%,6px)}25%{opacity:1}100%{opacity:0;transform:translate(-50%,-18px)}}
@keyframes lamp-glint{0%{opacity:0;transform:scale(.2) rotate(0)}40%{opacity:1;transform:scale(1.1) rotate(45deg)}100%{opacity:0;transform:scale(.4) rotate(90deg)}}
@keyframes lamp-okline{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.12)}100%{opacity:1;transform:none}}
.lamp-armed:not(.lamp-play) .player-lamp-cell,.lamp-armed:not(.lamp-play) .readiness-okline{opacity:0}
.lamp-play .player-lamp-cell{animation:lamp-pop .5s cubic-bezier(.2,.8,.3,1.2) both;animation-delay:calc(var(--i,0) * var(--lamp-step,70ms))}
.lamp-play .player-lamp-cell.is-extra .lamp-plus{animation:lamp-plus 1.1s ease-out both;animation-delay:calc(var(--i,0) * var(--lamp-step,70ms) + 220ms)}
.lamp-play .player-lamp-cell.is-extra::after{content:"";position:absolute;right:-2px;top:-3px;width:11px;height:11px;background:var(--star);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);opacity:0;animation:lamp-glint .9s ease-out both;animation-delay:calc(var(--i,0) * var(--lamp-step,70ms) + 200ms)}
.lamp-play .readiness-okline{animation:lamp-okline .55s cubic-bezier(.2,.8,.3,1.3) both;animation-delay:var(--cheer-end,1s)}
@media(prefers-reduced-motion:reduce){.lamp-play .player-lamp-cell,.lamp-play .readiness-okline,.lamp-play .lamp-plus,.lamp-play .player-lamp-cell.is-extra::after{animation:none}.lamp-armed:not(.lamp-play) .player-lamp-cell,.lamp-armed:not(.lamp-play) .readiness-okline{opacity:1}}

/* 地域: タブ(2026-10-27)。注目の一戦は色の制限なし — 試合前の夜の球場(ユーザー指示 2026-10-27) */
.cm-page-tabs{margin:4px 0 14px}
.cm-match{position:relative;isolation:isolate;overflow:hidden;padding:18px 18px 16px;border:1px solid rgba(255,214,102,.45);border-radius:16px;color:#fff;
  background:radial-gradient(120% 70% at 50% -10%,rgba(120,160,255,.35),transparent 60%),linear-gradient(180deg,#0d1a3d 0%,#071029 62%,#050a18 100%);
  box-shadow:0 12px 30px rgba(5,10,24,.38),inset 0 1px 0 rgba(255,255,255,.08)}
.cm-stage{position:absolute;inset:0;z-index:-1;pointer-events:none}
.cm-beam{position:absolute;top:-30%;width:55%;height:120%;background:linear-gradient(180deg,rgba(255,244,200,.34),rgba(255,244,200,0) 70%);filter:blur(6px);opacity:.75;animation:cm-beam 5s ease-in-out infinite alternate}
.cm-beam-l{left:-12%;clip-path:polygon(18% 0,32% 0,100% 100%,40% 100%);transform-origin:20% 0}
.cm-beam-r{right:-12%;clip-path:polygon(68% 0,82% 0,60% 100%,0 100%);transform-origin:80% 0;animation-delay:-2.5s}
.cm-turf{position:absolute;left:0;right:0;bottom:0;height:34%;background:repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 42px,transparent 42px 84px),linear-gradient(180deg,rgba(18,92,48,0),rgba(18,92,48,.55) 45%,#0f5a2e)}
.cm-match-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:13px}
.cm-match .cm-kind-match{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:6px;background:linear-gradient(180deg,#ffe28a,#e8a317);color:#3a2400;font-weight:900;letter-spacing:.04em;box-shadow:0 0 14px rgba(255,200,60,.45)}
.cm-status{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:6px;background:rgba(255,255,255,.1);font-weight:800}
.cm-status::before{content:"";width:8px;height:8px;border-radius:50%;background:#9aa6bd}
.cm-match.is-open .cm-status::before{background:#3ddc84;box-shadow:0 0 8px #3ddc84;animation:cm-blink 1.6s ease-in-out infinite}
.cm-match.is-live .cm-status{background:rgba(255,77,94,.2);color:#ffb3bb}
.cm-match.is-live .cm-status::before{background:#ff4d5e;box-shadow:0 0 8px #ff4d5e;animation:cm-blink 1s ease-in-out infinite}
.cm-match-head time{margin-left:auto;color:rgba(255,255,255,.8);font-weight:700}
.cm-countdown{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:4px 10px;margin:12px auto 0;padding:6px 14px;width:fit-content;max-width:100%;border:1px solid rgba(255,207,74,.35);border-radius:8px;background:rgba(0,0,0,.45);box-shadow:inset 0 0 12px rgba(0,0,0,.6)}
.cm-countdown[hidden]{display:none}
.cm-countdown small{color:rgba(255,255,255,.75);font-weight:700;letter-spacing:.06em}
.cm-countdown b{font:800 22px/1.1 ui-monospace,Consolas,monospace;font-variant-numeric:tabular-nums;color:#ffcf4a;letter-spacing:.08em;text-shadow:0 0 10px rgba(255,190,40,.7)}
.cm-countdown.is-near b{color:#ff6b78;text-shadow:0 0 10px rgba(255,77,94,.8);animation:cm-blink 1s steps(2) infinite}
.cm-match .cm-versus{margin:16px 0 12px;gap:8px}
.cm-match .cm-side{color:#fff;gap:8px}
.cm-match .cm-side strong{font-size:16px;font-weight:900;text-shadow:0 2px 8px rgba(0,0,0,.6)}
.cm-match .cm-side-logo{width:76px;height:76px;background:#fff;border:3px solid #fff}
.cm-home .cm-side-logo{box-shadow:0 0 0 3px #3d7bff,0 0 26px rgba(61,123,255,.85);animation:cm-in-l .7s cubic-bezier(.2,.8,.3,1.1) both,cm-glow-b 2.4s ease-in-out .7s infinite}
.cm-away .cm-side-logo{box-shadow:0 0 0 3px #ff4d5e,0 0 26px rgba(255,77,94,.85);animation:cm-in-r .7s cubic-bezier(.2,.8,.3,1.1) both,cm-glow-r 2.4s ease-in-out .7s infinite}
.cm-match .cm-side-blank{color:#8a97ad;background:#e9eef7}
.cm-match .cm-vs{position:relative;display:grid;place-items:center;min-width:84px;color:#fff}
.cm-match .cm-vs::before{content:"";position:absolute;inset:-18px -6px;background:radial-gradient(closest-side,rgba(255,220,120,.55),rgba(255,120,60,.18) 55%,transparent);animation:cm-clash 2.4s ease-in-out infinite}
.cm-match .cm-vs b{position:relative;font:italic 900 42px/1 system-ui,sans-serif;letter-spacing:-.02em;background:linear-gradient(180deg,#fff 10%,#ffe28a 45%,#e8a317 60%,#fff6d0);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 #7a4b00) drop-shadow(0 0 10px rgba(255,190,40,.6));animation:cm-vs 2.4s ease-in-out infinite}
.cm-match .cm-final{grid-auto-flow:column;gap:6px;padding:6px 12px;border:1px solid rgba(255,207,74,.4);border-radius:10px;background:rgba(0,0,0,.55)}
.cm-match .cm-final::before{display:none}
.cm-match .cm-final b{font:800 34px/1 ui-monospace,Consolas,monospace;background:none;color:#ffcf4a;filter:none;text-shadow:0 0 12px rgba(255,190,40,.75);animation:none}
.cm-match .cm-final i{font-style:normal;color:rgba(255,255,255,.6);font-weight:800}
.cm-side.is-lose{opacity:.5}
.cm-side.is-lose .cm-side-logo{filter:grayscale(.7);animation:none}
.cm-side.is-win strong::after{content:"WIN";display:block;margin-top:2px;font-size:11px;letter-spacing:.2em;color:#ffcf4a}
.cm-reasons{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:0 0 14px;padding:0;list-style:none}
.cm-reasons li{display:inline-flex;align-items:center;gap:5px;min-width:0;padding:4px 10px;border:1px dashed rgba(255,214,102,.75);border-radius:6px;background:rgba(255,200,60,.12);color:#ffe7a6;font-size:13px;font-weight:800;overflow-wrap:anywhere}
.cm-reasons .ui-icon{width:14px;height:14px;fill:#ffcf4a;flex:none}
.cm-match .cm-pick-label{color:#fff;text-align:center;font-size:17px;font-weight:900;letter-spacing:.04em}
.cm-match .cm-pick-label small{display:block;margin:2px 0 0;color:rgba(255,255,255,.7);font-size:12px;font-weight:400}
.cm-match .button.secondary.cm-pick-button{position:relative;border-color:transparent;color:#fff;font-weight:900;text-shadow:0 1px 2px rgba(0,0,0,.35);transition:transform .15s,opacity .15s,box-shadow .15s}
.cm-match .button.secondary.cm-pick-home{background:linear-gradient(180deg,#4d8bff,#1c3fb8)}
.cm-match .button.secondary.cm-pick-away{background:linear-gradient(180deg,#ff6676,#b8233a)}
.cm-match .button.secondary.cm-pick-button:hover{transform:translateY(-1px);filter:brightness(1.1)}
.cm-match .cm-pick.has-pick .cm-pick-button:not(.picked){opacity:.45}
.cm-match .button.secondary.cm-pick-button.picked{box-shadow:0 0 0 3px #ffcf4a,0 0 18px rgba(255,190,40,.7)}
.cm-match .cm-pick-button.is-stamped{animation:cm-press .45s cubic-bezier(.2,.8,.3,1.4)}
.cm-match .cm-pick-closed{color:rgba(255,255,255,.75);text-align:center}
.cm-match .cm-ratio progress{height:12px;border-radius:6px;background:#ff4d5e;accent-color:#3d7bff;box-shadow:0 0 12px rgba(0,0,0,.4)}
.cm-match .cm-ratio progress::-webkit-progress-bar{background:linear-gradient(90deg,#ff6676,#b8233a)}
.cm-match .cm-ratio progress::-webkit-progress-value{background:linear-gradient(90deg,#1c3fb8,#4d8bff);box-shadow:4px 0 8px rgba(255,255,255,.6)}
.cm-match .cm-ratio progress::-moz-progress-bar{background:linear-gradient(90deg,#1c3fb8,#4d8bff)}
.cm-match .cm-ratio p{color:#fff}
.cm-match .cm-ratio p span:first-child{color:#9ec0ff}
.cm-match .cm-ratio p span:last-child{color:#ffb3bb;text-align:right}
.cm-match .cm-ratio small{color:rgba(255,255,255,.65)}
.cm-match .cm-result{justify-content:center}
.cm-match .cm-hit{padding:6px 16px;border:2px solid #ffcf4a;border-radius:8px;background:rgba(255,190,40,.18);color:#ffe28a;font-size:18px;letter-spacing:.08em;transform:rotate(-6deg);box-shadow:0 0 16px rgba(255,190,40,.5);animation:cm-stamp .5s cubic-bezier(.2,.8,.3,1.4) both}
.cm-match .cm-miss{border-radius:8px;background:rgba(255,255,255,.12);color:rgba(255,255,255,.75)}
.cm-match .inline-link{color:#9ec0ff}
.cm-match .cm-card-foot{border-top-color:rgba(255,255,255,.14)}
.cm-match .button.secondary.cm-like-button{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.3);color:#fff}
.cm-match .button.secondary.cm-like-button:hover{background:rgba(255,255,255,.18)}
.cm-match .cm-comments{color:#ffe28a}
@keyframes cm-beam{from{transform:rotate(-4deg);opacity:.55}to{transform:rotate(4deg);opacity:.85}}
@keyframes cm-blink{50%{opacity:.35}}
@keyframes cm-in-l{from{opacity:0;transform:translateX(-40px) scale(.8)}to{opacity:1;transform:none}}
@keyframes cm-in-r{from{opacity:0;transform:translateX(40px) scale(.8)}to{opacity:1;transform:none}}
@keyframes cm-glow-b{50%{box-shadow:0 0 0 3px #3d7bff,0 0 40px rgba(61,123,255,1)}}
@keyframes cm-glow-r{50%{box-shadow:0 0 0 3px #ff4d5e,0 0 40px rgba(255,77,94,1)}}
@keyframes cm-clash{0%,100%{transform:scale(.85);opacity:.6}50%{transform:scale(1.15);opacity:1}}
@keyframes cm-vs{0%,100%{transform:scale(1)}8%{transform:scale(1.14) rotate(-3deg)}16%{transform:scale(1)}}
@keyframes cm-stamp{0%{transform:scale(1.6) rotate(-6deg);opacity:0}100%{transform:scale(1) rotate(-6deg);opacity:1}}
@keyframes cm-press{0%{transform:scale(1.18)}60%{transform:scale(.96)}100%{transform:none}}
@media(max-width:600px){.cm-match{padding:14px 12px}.cm-match .cm-side-logo{width:58px;height:58px}.cm-match .cm-vs{min-width:58px}.cm-match .cm-vs b{font-size:32px}.cm-match .cm-final b{font-size:26px}.cm-match .cm-side strong{font-size:14px}.cm-countdown b{font-size:19px}.cm-match-head time{margin-left:0;width:100%}}
@media(prefers-reduced-motion:reduce){.cm-beam,.cm-match .cm-vs::before,.cm-match .cm-vs b,.cm-home .cm-side-logo,.cm-away .cm-side-logo,.cm-status::before,.cm-countdown.is-near b,.cm-match .cm-pick-button.is-stamped,.cm-match .cm-hit{animation:none!important}}

/* 地域: 新着・TOP3のカードと試合予定もスポーツ(夜の球場)調に(2026-10-27、色の制限なし)。投稿詳細ページのカードは従来のまま */
.cm-list .cm-card,.cm-top .cm-card{position:relative;isolation:isolate;overflow:hidden;padding:16px 18px;border:1px solid rgba(255,214,102,.3);border-radius:16px;color:#e9eefc;
  background:radial-gradient(110% 60% at 50% -12%,rgba(120,160,255,.28),transparent 62%),linear-gradient(180deg,#0e1b3f 0%,#08112b 70%,#060b1c 100%);box-shadow:0 8px 22px rgba(5,10,24,.3)}
.cm-list .cm-card::before,.cm-top .cm-card::before{content:"";position:absolute;left:0;right:0;bottom:0;height:22%;z-index:-1;pointer-events:none;background:repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0 38px,transparent 38px 76px),linear-gradient(180deg,rgba(18,92,48,0),rgba(18,92,48,.45))}
.cm-list .cm-card-head,.cm-top .cm-card-head{color:rgba(255,255,255,.72)}
.cm-list .cm-team,.cm-top .cm-team{color:#fff}
.cm-list .cm-logo,.cm-top .cm-logo{border:2px solid rgba(255,255,255,.85);background:#fff}
.cm-list .cm-kind,.cm-top .cm-kind{border-radius:6px;background:linear-gradient(180deg,#ffe28a,#e8a317);color:#3a2400;font-weight:900;letter-spacing:.03em}
.cm-list .cm-title,.cm-top .cm-title,.cm-list .cm-title a,.cm-top .cm-title a{color:#fff}
.cm-list .cm-title a:hover,.cm-top .cm-title a:hover{color:#ffe28a}
.cm-list .cm-body,.cm-top .cm-body{color:rgba(255,255,255,.85)}
.cm-list .cm-author a,.cm-top .cm-author a{color:#fff}
.cm-list .cm-author small,.cm-top .cm-author small{color:rgba(255,255,255,.65)}
.cm-list .cm-player,.cm-top .cm-player{border:1px solid rgba(255,214,102,.45);box-shadow:0 0 0 3px rgba(0,0,0,.35),0 6px 18px rgba(0,0,0,.45)}
.cm-list .cm-card-foot,.cm-top .cm-card-foot{border-top-color:rgba(255,255,255,.14)}
.cm-list .button.secondary.cm-like-button,.cm-top .button.secondary.cm-like-button{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.3);color:#fff}
.cm-list .button.secondary.cm-like-button.liked,.cm-top .button.secondary.cm-like-button.liked{background:rgba(214,51,74,.25);border-color:#ff6b78;color:#ffd5da}
.cm-list .cm-like-total,.cm-top .cm-like-total{color:rgba(255,255,255,.75)}
.cm-list .cm-comments,.cm-top .cm-comments{color:#ffe28a}
.cm-list .inline-link,.cm-top .inline-link{color:#9ec0ff}
.cm-list .m-notice,.cm-top .m-notice{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.25)}
/* 試合結果: 電光掲示板 */
.cm-board{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;margin:10px 0 8px;padding:12px 10px;border:1px solid rgba(255,207,74,.35);border-radius:12px;background:rgba(0,0,0,.5);box-shadow:inset 0 0 16px rgba(0,0,0,.6);color:#fff}
.cm-board-team{display:grid;justify-items:center;gap:6px;min-width:0;text-align:center;color:#fff}
.cm-board-team b{font-size:14px;font-weight:900;overflow-wrap:anywhere}
.cm-board-logo{width:48px;height:48px;border-radius:50%;object-fit:cover;background:#fff;border:3px solid #3d7bff;box-shadow:0 0 16px rgba(61,123,255,.7)}
.cm-board-opp .cm-board-logo{border-color:#ff4d5e;box-shadow:0 0 16px rgba(255,77,94,.7)}
.cm-board-blank{display:grid;place-items:center;color:#8a97ad;background:#e9eef7}
.cm-board-score{display:flex;align-items:center;gap:8px;padding:4px 12px;font:800 32px/1 ui-monospace,Consolas,monospace;color:#ffcf4a;text-shadow:0 0 12px rgba(255,190,40,.75)}
.cm-board-score b{font:inherit}
.cm-board-score i{font-style:normal;color:rgba(255,255,255,.55);font-size:22px}
.cm-board.is-lose .cm-board-us,.cm-board.is-win .cm-board-opp{opacity:.55}

.cm-list .cm-score,.cm-top .cm-score{align-items:center;margin:0 0 8px}
.cm-outcome{display:inline-block;padding:2px 12px;border-radius:6px;font-weight:900;letter-spacing:.06em}
.cm-list .cm-outcome,.cm-top .cm-outcome{background:rgba(255,255,255,.14);color:#e3e9f6}
.cm-list .cm-outcome[data-outcome=win],.cm-top .cm-outcome[data-outcome=win]{background:linear-gradient(180deg,#ffe28a,#e8a317);color:#3a2400;box-shadow:0 0 12px rgba(255,190,40,.5)}
.cm-list .cm-outcome[data-outcome=draw],.cm-top .cm-outcome[data-outcome=draw]{background:linear-gradient(180deg,#f4f7fb,#aab4c6);color:#1d2740}
.cm-date{color:rgba(255,255,255,.75);font-weight:700}
.cm-list .cm-headline,.cm-top .cm-headline{border:1px dashed rgba(255,214,102,.75);border-radius:6px;background:rgba(255,200,60,.12);color:#ffe7a6;font-weight:800}
.cm-list .cm-headline .ui-icon,.cm-top .cm-headline .ui-icon{fill:#ffcf4a}
.cm-list .cm-interview,.cm-top .cm-interview{position:relative;padding:10px 14px 10px 38px;border-left:4px solid #3d7bff;background:rgba(255,255,255,.08);color:#f1f4fc}
.cm-list .cm-interview::before,.cm-top .cm-interview::before{content:"\201C";position:absolute;left:10px;top:-2px;font:900 40px/1.1 Georgia,serif;color:#ffcf4a}
.cm-list .cm-interview small,.cm-top .cm-interview small{color:#ffe28a;letter-spacing:.06em}
.cm-top-item .cm-rank b{color:#ffcf4a;text-shadow:0 0 10px rgba(255,190,40,.5)}
.cm-top-item:first-child .cm-card{border:2px solid #ffcf4a;box-shadow:0 0 22px rgba(255,190,40,.4),0 8px 22px rgba(5,10,24,.3)}
@media(max-width:600px){.cm-board-logo{width:40px;height:40px}.cm-board-score{font-size:26px;padding:4px 6px}.cm-board-team b{font-size:13px}}
/* 試合予定 */
.cm-upcoming{padding:0;overflow:hidden;border:0;background:linear-gradient(180deg,#0e1b3f,#08112b);color:#e9eefc}
.cm-up-head{position:relative;isolation:isolate;display:flex;align-items:center;gap:12px;padding:16px 18px 12px;overflow:hidden}
.cm-up-bar{position:absolute;inset:0;z-index:-1;pointer-events:none}
.cm-up-head .panel-title{margin:0;color:#fff}
.cm-up-head .panel-title-icon{background:rgba(255,255,255,.14);color:#ffcf4a}
.cm-up-count{margin-left:auto;padding:2px 10px;border-radius:6px;background:linear-gradient(180deg,#ffe28a,#e8a317);color:#3a2400;font-size:13px}
.cm-up-list{list-style:none;margin:0;padding:6px 14px 16px;display:grid;gap:10px;background:linear-gradient(180deg,transparent 55%,rgba(18,92,48,.5))}
.cm-up{position:relative;display:flex;align-items:stretch;gap:12px;min-width:0;border:1px solid rgba(255,214,102,.3);border-radius:12px;background:rgba(255,255,255,.07);overflow:hidden}
.cm-up::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#8a97ad}
.cm-up.tier-0::before{background:#ffcf4a}
.cm-up.tier-1::before{background:#3d7bff}
.cm-up-date{display:grid;justify-items:center;align-content:center;gap:1px;min-width:74px;padding:10px 8px 10px 14px;border-right:2px dashed rgba(255,255,255,.2)}
.cm-up-date small{font-size:12px;font-weight:800;color:rgba(255,255,255,.7)}
.cm-up-date b{font:800 22px/1.1 ui-monospace,Consolas,monospace;color:#ffcf4a;text-shadow:0 0 10px rgba(255,190,40,.6)}
.cm-up-date em{font-style:normal;font-weight:800;color:#fff;font-size:14px}
.cm-up-body{flex:1;min-width:0;display:grid;align-content:center;gap:4px;padding:10px 12px 10px 0}
.cm-up-teams{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-weight:900;color:#fff;overflow-wrap:anywhere}
.cm-up-teams a{color:#fff}
.cm-up-teams a:hover{color:#ffe28a}
.cm-up-teams i{font:italic 900 14px/1 system-ui,sans-serif;background:linear-gradient(180deg,#fff,#ffe28a 50%,#e8a317);-webkit-background-clip:text;background-clip:text;color:transparent}
.cm-up-open{padding:2px 8px;border:1px dashed rgba(255,214,102,.8);border-radius:6px;background:rgba(255,200,60,.12);color:#ffe7a6;font-size:13px}
.cm-up-tier{font-weight:800;color:rgba(255,255,255,.65)}
.cm-up.tier-0 .cm-up-tier{color:#ffe28a}
.cm-up.tier-1 .cm-up-tier{color:#9ec0ff}
.cm-up-soon{align-self:flex-start;margin:8px 8px 0 0;padding:2px 8px;border-radius:6px;background:rgba(255,77,94,.22);color:#ffb3bb;font-size:11px;font-weight:900;letter-spacing:.12em;animation:cm-blink 1.6s ease-in-out infinite}
.cm-up-empty{display:grid;justify-items:center;gap:8px;padding:28px 16px 36px;text-align:center;color:rgba(255,255,255,.8)}
.cm-up-empty span{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.1);color:#ffcf4a}
.cm-up-empty .ui-icon{width:32px;height:32px}
.cm-up-empty p{margin:0}
@media(max-width:600px){.cm-up-date{min-width:62px;padding-left:10px}.cm-up-soon{position:absolute;right:0;top:0;margin:6px 6px 0 0}}
@media(prefers-reduced-motion:reduce){.cm-up-soon{animation:none}}
@keyframes cm-soon{50%{opacity:.6}}
.cm-up-soon{animation-name:cm-soon}
@media(max-width:600px){.cm-up:has(.cm-up-soon) .cm-up-body{padding-top:30px}}

/* 地域: 独立ページ(2026-10-27、ユーザー指示)。共通ヘッダー・左メニュー・下メニューなし、夜の球場の世界観で色の制限なし */
body.cm-world{min-height:100vh;color:#e9eefc;background:
  radial-gradient(1px 1px at 12% 8%,rgba(255,255,255,.7),transparent 2px),radial-gradient(1px 1px at 68% 4%,rgba(255,255,255,.6),transparent 2px),
  radial-gradient(1.5px 1.5px at 85% 14%,rgba(255,255,255,.55),transparent 2px),radial-gradient(1px 1px at 34% 18%,rgba(255,255,255,.5),transparent 2px),
  radial-gradient(90% 40% at 50% 0,rgba(90,130,255,.28),transparent 70%),linear-gradient(180deg,#060c22 0,#081230 900px,#050a1a 100%) #050a1a}
html:has(body.cm-world){background:#050a1a}
.cm-world #mock-app{background:transparent}
.cm-shell{max-width:1040px;margin:0 auto;padding:0 20px 40px}
.cm-world #mock-content{padding:0}
.cm-bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;padding:10px 20px;background:rgba(5,10,26,.82);backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,214,102,.2)}
.cm-bar-logo{display:inline-flex;align-items:center;padding:4px 12px;border-radius:8px;background:#fff;box-shadow:0 0 18px rgba(120,160,255,.35)}
.cm-bar-logo img{display:block;width:auto;height:30px}
.cm-bar-logo:hover{box-shadow:0 0 22px rgba(255,207,74,.6)}
.cm-hero{position:relative;isolation:isolate;overflow:hidden;margin:18px 0 6px;padding:30px 24px 26px;text-align:center;border:1px solid rgba(255,214,102,.35);border-radius:18px;
  background:radial-gradient(120% 80% at 50% -20%,rgba(120,160,255,.4),transparent 60%),linear-gradient(180deg,#0f1f4a,#0a1430 70%,#0c3a22);box-shadow:0 14px 34px rgba(0,0,0,.45)}
.cm-hero-stage{position:absolute;inset:0;z-index:-1;pointer-events:none}
.cm-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:30%;z-index:-1;background:repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 48px,transparent 48px 96px),linear-gradient(180deg,rgba(18,92,48,0),rgba(18,92,48,.7))}
.cm-hero-kicker{margin:0;font-size:13px;font-weight:800;letter-spacing:.18em;color:#ffe28a}
.cm-hero h1{display:inline-flex;align-items:center;gap:10px;margin:6px 0 4px;font:italic 900 44px/1.1 system-ui,sans-serif;letter-spacing:.06em;color:#fff;text-shadow:0 0 18px rgba(120,160,255,.7),0 3px 0 #0a1430}
.cm-hero h1 .ui-icon{width:36px;height:36px;color:#ffcf4a;filter:drop-shadow(0 0 8px rgba(255,190,40,.7))}
.cm-hero-sub{display:table;margin:8px auto 0;padding:3px 14px;border-radius:6px;background:rgba(0,0,0,.45);border:1px solid rgba(255,207,74,.4);color:#ffcf4a;font-weight:800}
.cm-world .m-page-content{min-height:0}
.cm-world .m-panel{background:rgba(255,255,255,.05);border:1px solid rgba(255,214,102,.18);box-shadow:0 8px 24px rgba(0,0,0,.3);color:#e9eefc}
.cm-world .m-panel h2.panel-title,.cm-world .m-panel h3{color:#fff}
.cm-world .panel-title-icon{background:rgba(255,207,74,.14);color:#ffcf4a}
.cm-world .m-help,.cm-world .svc-empty,.cm-world .m-panel p{color:rgba(233,238,252,.82)}
.cm-world .m-notice{background:rgba(61,123,255,.16);border-color:rgba(158,192,255,.4);color:#dbe6ff}
.cm-world .m-notice.success{background:rgba(31,157,85,.2);border-color:rgba(61,220,132,.45);color:#c9f5dc}
.cm-world .text-link,.cm-world .inline-link{color:#9ec0ff}
.cm-world .text-link:hover,.cm-world .inline-link:hover{color:#ffe28a}
.cm-world .danger-text{color:#ff8a96}
.cm-world .button.primary{background:linear-gradient(180deg,#ffe28a,#e8a317);border-color:#e8a317;color:#2b1a00;font-weight:900;box-shadow:0 0 16px rgba(255,190,40,.35)}
.cm-world .button.primary:hover{filter:brightness(1.06)}
.cm-world .button.secondary{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.3);color:#fff}
.cm-world .button.secondary:hover{background:rgba(255,255,255,.18)}
.cm-world .cm-record{background:rgba(255,207,74,.15);color:#ffe28a}
.cm-world .cm-last summary{color:#ffe28a}
.cm-world .cm-rank span{color:#fff}.cm-world .cm-rank small{color:rgba(255,255,255,.65)}
.cm-world .cm-empty{color:rgba(255,255,255,.8)}.cm-world .cm-empty-icon{background:rgba(255,255,255,.1);color:#ffcf4a}
/* 説明パネル */
.cm-world .intro-card{background:transparent}
.cm-world .intro-points dt{color:#ffe28a}.cm-world .intro-points dd{color:rgba(233,238,252,.82)}
/* タブ: 電光掲示板 */
.cm-world .type-tabs.type-tabs-inline.cm-page-tabs{position:sticky;top:51px;z-index:20;margin:14px 0 16px;padding:6px;border:1px solid rgba(255,207,74,.35);border-radius:12px;background:rgba(0,0,0,.6);backdrop-filter:blur(6px);box-shadow:inset 0 0 14px rgba(0,0,0,.6)}
.cm-world .type-tabs.type-tabs-inline a{color:rgba(255,255,255,.7);border-radius:8px;padding:9px 14px}
.cm-world .type-tabs.type-tabs-inline a:hover{color:#fff}
.cm-world .type-tabs.type-tabs-inline a.active{color:#2b1a00;background:linear-gradient(180deg,#ffe28a,#e8a317);box-shadow:0 0 14px rgba(255,190,40,.45)}
.cm-world .type-tabs.type-tabs-inline a.active>span{text-decoration:none}
.cm-world .type-tab-divider{color:rgba(255,255,255,.25)}
.cm-world .cm-tabs.type-tabs.type-tabs-inline a.active{color:#ffe28a;background:transparent;box-shadow:none}
.cm-world .cm-tabs.type-tabs.type-tabs-inline a.active>span{text-decoration:underline;text-decoration-color:#ffcf4a}
/* 試合予定のパネルはそのまま */
.cm-world .m-panel.cm-upcoming{border:1px solid rgba(255,214,102,.25)}
/* 投稿詳細・コメント・投稿フォーム */
.cm-backlink{margin:4px 0 14px}
.cm-world .cm-detail{padding:18px}
.cm-world .cm-detail-card .cm-card{border:1px solid rgba(255,214,102,.3);padding:16px 18px}
.cm-world .cm-detail-card .cm-interview-full dt{color:#ffe28a}
.cm-world .guest-comment{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1)}
.cm-world .comment-author,.cm-world .comment-heading strong{color:#fff}
.cm-world .comment-heading time,.cm-world .deleted-comment,.cm-world .comment-panel h2 small{color:rgba(255,255,255,.6)}
.cm-world .comment-body{color:#eef2fb}
.cm-world .comment-editor{border-top-color:rgba(255,255,255,.14)}
.cm-world .m-field>span,.cm-world .m-field>legend,.cm-world .m-field legend,.cm-world .m-form label>span{color:#fff}
.cm-world .m-field small,.cm-world .cm-check{color:rgba(255,255,255,.7)}
.cm-world .cm-check.bad{color:#ff8a96}
.cm-world .ground-option{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.25);color:#fff}
.cm-world .ground-option:has(input:checked){background:rgba(255,207,74,.18);border-color:#ffcf4a;box-shadow:0 0 0 1px #ffcf4a;color:#ffe28a}
.cm-world .m-form-error{background:rgba(214,51,74,.2);color:#ffd5da}
/* フッター */
.cm-foot{display:grid;justify-items:center;gap:6px;padding:28px 20px 34px;border-top:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(15,90,46,0),rgba(15,90,46,.35));color:rgba(255,255,255,.55);font-size:12px;text-align:center}
.cm-foot p{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 16px;margin:0}
.cm-foot a{color:rgba(255,255,255,.72)}.cm-foot a:hover{color:#ffe28a}
.cm-world .page-top{background:linear-gradient(180deg,#ffe28a,#e8a317);color:#2b1a00;box-shadow:0 6px 18px rgba(0,0,0,.45)}
@media(max-width:600px){.cm-shell{padding:0 12px 32px}.cm-bar{padding:8px 12px}.cm-bar-logo img{height:26px}.cm-hero{padding:22px 14px 20px;margin-top:12px}.cm-hero h1{font-size:34px}.cm-hero h1 .ui-icon{width:28px;height:28px}
  .cm-world .type-tabs.type-tabs-inline.cm-page-tabs{top:45px}.cm-world .type-tabs.type-tabs-inline a{padding:9px 8px}.cm-world .m-panel{padding:18px 14px}}
.cm-world .m-panel.cm-upcoming{padding:0}
.cm-world:not(:has(.cm-bar)) .type-tabs.type-tabs-inline.cm-page-tabs{top:0}
.cm-world .svc-empty{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}
.cm-world .intro-card>svg{max-width:420px;margin:0 auto;border-radius:12px;opacity:.92;box-shadow:0 0 0 1px rgba(255,214,102,.3)}
.cm-world .m-field input[type=checkbox]+span,.cm-world .m-form .check span{color:#fff}
.cm-world .m-check span{color:#fff}
/* 入力欄: 白ではなく夜空に合う紺〜青(2026-10-28) */
.cm-world :is(input:not([type=checkbox],[type=radio],[type=hidden],[type=file],[type=submit],[type=button]),textarea,select){background:rgba(6,16,40,.5);border:1px solid rgba(143,178,255,.35);color:#f2f6ff;color-scheme:dark}
.cm-world :is(input,textarea)::placeholder{color:rgba(220,232,255,.55)}
.cm-world :is(input:not([type=checkbox],[type=radio],[type=hidden],[type=file],[type=submit],[type=button]),textarea,select):focus{background:rgba(6,16,40,.65);border-color:#8fb2ff;outline:2px solid rgba(143,178,255,.35);outline-offset:0}
.cm-world select option{background:#14264f;color:#f2f6ff}
.cm-world .cm-upload input[type=file]{background:rgba(6,16,40,.5);border:1px solid rgba(143,178,255,.35);color:#f2f6ff;color-scheme:dark}
.cm-world .cm-upload input[type=file]::file-selector-button{background:#335ac0;border:0;border-radius:8px;color:#fff;margin-right:10px;padding:7px 14px;cursor:pointer}
/* 新着の試合結果カード: 球場の夜景(外野の芝・ダイヤモンド・ボールの縫い目)と勝敗の電光板(2026-10-28) */
.cm-list .cm-card.cm-game,.cm-top .cm-card.cm-game{background:
  radial-gradient(110% 60% at 50% -12%,rgba(120,160,255,.28),transparent 62%),linear-gradient(180deg,#0e1b3f 0%,#0a2540 52%,#0c3d2a 100%)}
.cm-list .cm-card.cm-game::before,.cm-top .cm-card.cm-game::before{height:42%;background:repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 38px,transparent 38px 76px),linear-gradient(180deg,rgba(18,110,56,0),rgba(18,110,56,.55))}
/* 電光板: 青緑〜紺の板に電球のドット、左は青・右は赤の光、点数は黒いガラス板(2026-10-28) */
.cm-card.cm-game .cm-board{position:relative;gap:6px;padding:14px 10px;border-width:2px;border-style:double;border-radius:12px;
  background:radial-gradient(circle,rgba(255,255,255,.1) 1.2px,transparent 1.6px) 0 0/12px 12px,
  radial-gradient(70% 120% at 0% 50%,rgba(61,123,255,.38),transparent 70%),radial-gradient(70% 120% at 100% 50%,rgba(255,77,94,.3),transparent 70%),
  linear-gradient(180deg,#123a52 0%,#0b2440 55%,#081a33 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),inset 0 0 18px rgba(0,0,0,.55),0 3px 10px rgba(0,0,0,.4)}
.cm-card.cm-game .cm-board::before,.cm-card.cm-game .cm-board::after{content:"";position:absolute;top:5px;width:5px;height:5px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f2f5fb,#7d8aa0);box-shadow:0 1px 1px rgba(0,0,0,.6)}
.cm-card.cm-game .cm-board::before{left:6px}.cm-card.cm-game .cm-board::after{right:6px}
.cm-card.cm-game .cm-board{overflow:hidden}
.cm-card.cm-game .cm-board-score{font-size:46px;padding:4px 8px}.cm-card.cm-game .cm-board-score i{font-size:28px}
.cm-card.cm-game .cm-board-team{position:relative}
.cm-card.cm-game .cm-board-team>*{position:relative;z-index:1}
/* 勝ったチームのロゴにスポットライト(自チームが勝ち＝自チーム、負け＝相手が勝者。先攻・後攻の左右には関係しない。引き分けはなし) */
.cm-card.cm-game .cm-board.is-win .cm-board-us::before,.cm-card.cm-game .cm-board.is-lose .cm-board-opp::before,
.cm-card.cm-game .cm-board.is-win .cm-board-us::after,.cm-card.cm-game .cm-board.is-lose .cm-board-opp::after{content:"";position:absolute;z-index:0;top:-14px;left:50%;width:70px;height:calc(100% + 14px);margin-left:-35px;transform-origin:50% 0;pointer-events:none;
  clip-path:polygon(35% 0,65% 0,100% 100%,0 100%);background:linear-gradient(180deg,rgba(255,244,196,.34),rgba(255,226,138,.08) 70%,transparent);animation:cm-spot 3s ease-in-out infinite}
.cm-card.cm-game .cm-board.is-win .cm-board-us::before,.cm-card.cm-game .cm-board.is-lose .cm-board-opp::before{transform:rotate(24deg)}
.cm-card.cm-game .cm-board.is-win .cm-board-us::after,.cm-card.cm-game .cm-board.is-lose .cm-board-opp::after{transform:rotate(-24deg);animation-delay:-1.5s}
.cm-card.cm-game .cm-board.is-win .cm-board-us .cm-board-logo,.cm-card.cm-game .cm-board.is-lose .cm-board-opp .cm-board-logo{border-color:#ffe28a;box-shadow:0 0 14px rgba(255,226,138,.6)}
.cm-card.cm-game .cm-board.is-lose .cm-board-opp{opacity:1}
@keyframes cm-spot{0%,100%{opacity:.6}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){.cm-card.cm-game .cm-board-team::before,.cm-card.cm-game .cm-board-team::after{animation:none}}
@media(max-width:600px){.cm-card.cm-game .cm-board-score{font-size:36px;padding:4px 4px}.cm-card.cm-game .cm-board-score i{font-size:22px}}
.cm-card.cm-game:has(.cm-board.is-win){border-color:rgba(255,207,74,.7);box-shadow:0 8px 22px rgba(5,10,24,.3),0 0 22px rgba(255,190,40,.22)}
.cm-card.cm-game:has(.cm-board.is-win) .cm-board{border-color:#ffcf4a;box-shadow:inset 0 0 16px rgba(0,0,0,.6),0 0 14px rgba(255,190,40,.35)}
.cm-card.cm-game:has(.cm-board.is-lose) .cm-board{border-color:rgba(130,160,220,.45)}
.cm-card.cm-game:has(.cm-board.is-lose) .cm-board-score{color:#bcd0f5;text-shadow:0 0 10px rgba(120,160,255,.5)}
.cm-card.cm-game:has(.cm-board:not(.is-win):not(.is-lose)) .cm-board{border-color:rgba(200,208,222,.5)}
.cm-card.cm-game:has(.cm-board:not(.is-win):not(.is-lose)) .cm-board-score{color:#e3e9f6;text-shadow:0 0 10px rgba(255,255,255,.35)}
.cm-world .cm-pick-private{display:flex;align-items:center;gap:6px;font-weight:700}
.cm-world .cm-pick-private .ui-icon{width:16px;height:16px;flex:none}
/* 地域: PC は画面いっぱいに(2026-10-27) */
.cm-world{--cm-gutter:clamp(16px,3.2vw,56px)}
.cm-shell{max-width:none;padding:0 var(--cm-gutter) 48px}
.cm-bar{padding:10px var(--cm-gutter)}
.cm-bar-logo{padding:0;border-radius:0;background:none;box-shadow:none}
.cm-bar-logo img{height:34px;filter:drop-shadow(0 0 10px rgba(120,160,255,.45))}
.cm-bar-logo:hover{box-shadow:none}.cm-bar-logo:hover img{filter:drop-shadow(0 0 12px rgba(255,207,74,.7))}
.cm-hero{margin:0 calc(-1 * var(--cm-gutter)) 8px;padding:44px var(--cm-gutter) 40px;border-width:0 0 1px;border-radius:0}
.cm-hero h1{font-size:56px}
/* 地域の看板(hero)だけ画面いっぱい、その下(説明パネルから)はもとの幅(ユーザー指示 2026-10-27) */
.cm-world .m-page-content{max-width:1000px;margin:0 auto}
@media(max-width:600px){.cm-hero{padding:26px 14px 22px}.cm-hero h1{font-size:36px}.cm-bar-logo img{height:28px}}
.cm-world .type-tabs.type-tabs-inline.cm-page-tabs{top:56px;align-items:center}
.cm-world .type-tabs.type-tabs-inline.cm-page-tabs a{height:40px;min-height:40px;padding-top:0;padding-bottom:0;line-height:1.2;align-self:center}
.cm-world .type-tabs.type-tabs-inline.cm-page-tabs .type-tab-divider{align-self:center}
@media(max-width:600px){.cm-world .type-tabs.type-tabs-inline.cm-page-tabs{top:46px}}
@media(max-width:600px){
  .cm-world .type-tabs.type-tabs-inline.cm-page-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:4px;overflow:visible}
  .cm-world .type-tabs.type-tabs-inline.cm-page-tabs .type-tab-divider{display:none}
  .cm-world .type-tabs.type-tabs-inline.cm-page-tabs a{flex-direction:column;justify-content:center;gap:3px;height:52px;min-height:52px;padding:0 2px;font-size:11px;white-space:normal;text-align:center;line-height:1.15}
  .cm-world .type-tabs.type-tabs-inline.cm-page-tabs a .ui-icon{width:18px;height:18px}
}
/* 地域: タブの中身の外枠は付けない(中のカードに枠があり二重になるため、2026-10-27) */
.cm-world .m-panel[data-cm-panel]{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
.cm-world .m-panel.cm-upcoming{padding:0;border:0}
.cm-world .cm-up-head{padding:0 0 12px;overflow:visible}
.cm-world .cm-up-list{padding:0;background:none}
.cm-world .cm-up-empty{padding:24px 0}
.cm-world .m-panel[data-cm-panel]>h2.panel-title{margin-top:4px}
.cm-up-head{overflow:hidden}
.cm-world .cm-up-head{overflow:hidden;margin:0 0 4px}
.cm-world .cm-page-tabs a>span{display:block;line-height:1;margin:0;padding:0}
.cm-world .cm-page-tabs a>.ui-icon{margin:0;vertical-align:middle}
.cm-world .cm-page-tabs a>span{display:flex;align-items:center;height:20px;transform:none}
.cm-world .cm-page-tabs a.active>span{text-decoration:none;position:static;top:0;padding:0;margin:0}

/* ガイド一覧 (/guide, 2026-10-27): the stadium look of 地域, cards that link to the intro pages. Colors are free here. */
.guide-page{display:grid;gap:16px;padding-top:12px}
.gd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-top:10px}
.gd-card{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;color:#fff;background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,.04));border:1px solid rgba(255,214,102,.25);box-shadow:0 6px 16px rgba(0,0,0,.3);transition:transform .15s,box-shadow .15s,border-color .15s}
.gd-card:hover{transform:translateY(-3px);border-color:#ffcf4a;box-shadow:0 0 18px rgba(255,190,40,.4),0 10px 22px rgba(0,0,0,.4)}
.gd-icon{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:radial-gradient(circle at 30% 25%,#ffe28a,#e8a317);color:#2b1a00;box-shadow:0 0 12px rgba(255,190,40,.45)}
.gd-icon .ui-icon{width:24px;height:24px}
.gd-body{display:grid;gap:3px;min-width:0}
.gd-body strong{font-size:16px;font-weight:900;color:#fff}
.gd-body small{font-size:13px;line-height:1.5;color:rgba(233,238,252,.82)}
.cm-world .gd-card:hover .gd-body strong{color:#ffe28a}
@media (max-width:600px){.gd-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.gd-card{transition:none}.gd-card:hover{transform:none}}
/* 募集フォーム（スマホ）：募集内容の入力欄は自動で伸び、「大きい画面で入力する」で画面いっぱいに書ける（アプリと同じ、ユーザー指示 2026-10-28） */
.post-form .body-field textarea{display:block;box-sizing:border-box;width:100%;min-height:150px;line-height:1.6;overflow-y:hidden}
.post-form .textarea-expand{margin-top:8px;width:100%;justify-content:center}
.textarea-overlay{position:fixed;inset:0;z-index:2000;display:flex;flex-direction:column;gap:10px;padding:max(12px,env(safe-area-inset-top)) 14px max(12px,env(safe-area-inset-bottom));background:#fff;height:100vh;height:100dvh}
.textarea-overlay-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.textarea-overlay-head strong{font-size:17px;color:#17335c}
.textarea-overlay>textarea{flex:1;min-height:0;width:100%;box-sizing:border-box;resize:none;border:1px solid #cbd6e6;border-radius:8px;padding:12px;font:inherit;font-size:16px;line-height:1.7;color:#17335c;background:#fff}
.textarea-overlay>textarea:focus{outline:3px solid #c8d7ff;border-color:#6c91ed}
.textarea-overlay-count{text-align:right;color:#5b6b86;font-size:13px}
html.textarea-overlay-open{overflow:hidden}
/* 募集フォーム（スマホ）：日付・時刻の入力欄が右にはみ出さないように。iPhone の Safari は日付・時刻の入力欄が中身の幅で広がって右が切れる（School の登録フォームと同じ対処） */
.post-form .svc-grid,.post-form .m-field{min-width:0}
.post-form .m-field input[type=date],.post-form .m-field input[type=time]{-webkit-appearance:none;appearance:none;display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;inline-size:100%;min-height:50px;line-height:1.4}
.post-form .m-field input[type=date]::-webkit-date-and-time-value,.post-form .m-field input[type=time]::-webkit-date-and-time-value{text-align:left;min-width:0}
/* 使い方の一覧：ガイドのカードの上下に余白（2026-10-28 ユーザー指示） */
.guide-list .guide-card{padding:14px 0}
/* 「ポイント」「こんなチームに」などの太字と、続く文の間（日本語は詰めて書くが、韓国語は単語の間があく） */
.guide-why b{margin-right:.6em}
/* 使い方「チーム運営のコツ」：ケースの面は1列（ほかのガイドの手順は左にイラストがある） */
.guide-case{display:grid;gap:12px}.guide-case>p{margin:0;line-height:1.7}
#cases .guide-choice{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:700px){#cases .guide-choice{grid-template-columns:1fr}}


/* プロプランの申し込み（/my/team/plan、2026-10-28 ユーザー指示「プロの決済ボタンは黄金色に輝かせて」→ B案：画面は明るいまま、プロの枠とボタンだけ金色）。
   角・高さはボタン規格のまま。動きを減らす設定では後光の脈打ちを止める */
.m-panel.plan-pro{border:2px solid #e0a82e;background:linear-gradient(180deg,#fffaf0 0,#fff 140px);box-shadow:0 0 0 3px rgba(232,184,46,.18),0 6px 22px rgba(232,184,46,.28)}
.plan-pro .panel-title-icon{color:#b98400}
.button.plan-pay-pro{animation:plan-pro-halo 2.4s ease-in-out infinite}
@keyframes plan-pro-halo{0%,100%{box-shadow:0 2px 10px rgba(232,184,46,.45),0 0 0 0 rgba(232,184,46,.45),inset 0 1px 0 rgba(255,255,255,.65)}50%{box-shadow:0 2px 14px rgba(232,184,46,.7),0 0 22px 6px rgba(246,195,59,.55),inset 0 1px 0 rgba(255,255,255,.65)}}
@media (prefers-reduced-motion:reduce){.button.plan-pay-pro{animation:none;box-shadow:0 2px 14px rgba(232,184,46,.7),0 0 18px 4px rgba(246,195,59,.45),inset 0 1px 0 rgba(255,255,255,.65)}}

/* みんなのグラウンド(/grounds/**): 「地域」と同じ夜の球場の独立ページ(2026-10-28、ユーザー指示)。色の制限なし。
   アプリの widgets/arena.dart(Arena: 夜空・金 #ffd45c/#e8a317・すりガラスのカード)に合わせる。共通パーツ(grounds/parts)はマイページ・選手ページでは従来どおり */
.grounds-world{--gw-gold:#ffd45c;--gw-gold-deep:#e8a317;--gw-soft:rgba(233,238,252,.72);--gw-glass:rgba(255,255,255,.07);--gw-line:rgba(255,255,255,.16)}
.grounds-world :is(.g-back,.g-rank-link) a{color:#ffe28a}
.grounds-world .grounds-art{border-radius:14px;box-shadow:0 0 0 1px rgba(255,214,102,.35),0 10px 26px rgba(0,0,0,.35)}
.grounds-world .grounds-hero{border-color:rgba(255,214,102,.35);background:radial-gradient(90% 120% at 100% 0,rgba(120,160,255,.22),transparent 60%),rgba(255,255,255,.05)}
.grounds-world :is(.grounds-steps li,.g-nudges li,.g-reviews li,.g-comments li,.g-rank-row,.g-check-card,.g-book-pref-list a){background:var(--gw-glass);border-color:var(--gw-line);color:#e9eefc}
.grounds-world .grounds-steps .grounds-step-art{border-radius:8px;background:rgba(255,255,255,.9)}
.grounds-world :is(.grounds-steps strong,.g-nudges strong,.g-card-name,.g-summary-rating strong,.g-info dt,.g-standing-now strong,.g-standing-parts b,.g-mission-head strong,.g-mission-list li b,.g-mission-note,.g-book-count strong,.g-book-now strong,.g-book-pref-list b,.g-rank-points,.g-month-rank,.g-award-heading,.g-award-count b,.g-card-near){color:var(--gw-gold)}
.grounds-world :is(.grounds-total,.g-card-foot small,.g-card-rating small,.g-summary-rating small,.g-reviews small,.g-comments small,.g-log small,.g-dist small,.g-report,.g-hidden-note,.g-verified small,.g-unverified,.g-mine,.g-posts small,.g-from,.g-standing-now small,.g-book-count small,.g-book-now small,.g-book-tiers small,.g-book-grid small,.g-rank-hidden,.g-check-left,.g-month-now small,.g-check-ground small,.g-check-label small,.g-award-now small,.g-nudges small,.g-empty){color:var(--gw-soft)}
.grounds-world :is(.g-card-area,.g-card-rating,.g-check-progress,.g-rank-empty,.g-rank-mine,.g-book-region h3,.g-book-missing-title,.g-check-value){color:#e9eefc}
.grounds-world .g-rank-gap{color:rgba(255,255,255,.4)}
/* グラウンドのカード(アプリ _GroundCard): すりガラス+金の矢印 */
.grounds-world .g-card-link{position:relative;padding-right:34px;background:linear-gradient(180deg,rgba(255,255,255,.09),rgba(255,255,255,.04));border-color:var(--gw-line);color:#e9eefc;transition:border-color .15s,box-shadow .15s}
.grounds-world .g-card-link::after{content:"";position:absolute;right:14px;top:50%;width:9px;height:9px;border:solid var(--gw-gold);border-width:2px 2px 0 0;transform:translateY(-50%) rotate(45deg)}
.grounds-world .g-card-link:hover{background:rgba(255,212,92,.08);border-color:var(--gw-gold);box-shadow:0 0 16px rgba(255,190,40,.25)}
.grounds-world .g-card-area .ui-icon,.grounds-world .g-facts .ui-icon,.grounds-world .g-info dt .ui-icon,.grounds-world .g-mission-list li .ui-icon{color:var(--gw-gold)}
.grounds-world :is(.g-tag,.g-verified){background:rgba(255,212,92,.14);color:#ffe28a}
.grounds-world .g-rank-you{background:var(--gw-gold);color:#3b2600}
/* 充実度・進み具合のメーター: 金 */
.grounds-world :is(.g-meter,.g-complete meter,.g-dist progress){accent-color:var(--gw-gold)}
.grounds-world :is(meter,progress){-webkit-appearance:none;appearance:none;border:0;border-radius:5px;background:rgba(255,255,255,.14);overflow:hidden}
.grounds-world meter::-webkit-meter-bar{border:0;border-radius:5px;background:rgba(255,255,255,.14)}
.grounds-world meter::-webkit-meter-optimum-value,.grounds-world meter::-webkit-meter-suboptimum-value,.grounds-world meter::-webkit-meter-even-less-good-value{background:linear-gradient(90deg,#ffe89a,var(--gw-gold),var(--gw-gold-deep))}
.grounds-world meter::-moz-meter-bar{background:linear-gradient(90deg,#ffe89a,var(--gw-gold),var(--gw-gold-deep))}
.grounds-world progress::-webkit-progress-bar{background:rgba(255,255,255,.14)}
.grounds-world progress::-webkit-progress-value{background:linear-gradient(90deg,#ffe89a,var(--gw-gold))}
.grounds-world progress::-moz-progress-bar{background:linear-gradient(90deg,#ffe89a,var(--gw-gold))}
.grounds-world :is(.g-standing-bar,.g-book-pref-bar){background:rgba(255,255,255,.14)}
.grounds-world :is(.g-standing-bar span,.g-book-pref-bar em){background:linear-gradient(90deg,#ffe89a,var(--gw-gold),var(--gw-gold-deep));box-shadow:0 0 10px rgba(255,190,40,.45)}
.grounds-world .g-star{color:rgba(255,255,255,.3);fill:rgba(255,255,255,.12)}.grounds-world .g-star.on{color:var(--star-edge);fill:var(--star)}
/* 線 */
.grounds-world :is(.g-info>div,.g-standing-parts li,.g-mission-list li){border-color:rgba(255,255,255,.1)}
/* 自分の行・今の対象 */
.grounds-world .g-rank-row.mine{background:rgba(255,212,92,.16);border-color:var(--gw-gold);box-shadow:0 0 12px rgba(255,190,40,.28)}
.grounds-world .g-rank-no{background:rgba(255,255,255,.1);color:#fff}
.grounds-world .g-book-pref-list li.has a{border-color:rgba(255,212,92,.4);background:rgba(255,212,92,.08)}
.grounds-world .g-book-pref-list li.open a{border-color:var(--gw-gold);box-shadow:inset 0 0 0 1px var(--gw-gold)}
.grounds-world .g-book-photo{background:rgba(255,255,255,.08);color:rgba(255,255,255,.45)}
.grounds-world .g-book-grid.missing .g-book-photo{background:rgba(255,255,255,.04);color:rgba(255,255,255,.25)}
.grounds-world .g-photos img{border-color:var(--gw-line);background:rgba(255,255,255,.06)}
.grounds-world .g-title.none{background:rgba(255,255,255,.1);color:var(--gw-soft)}
/* 注目(オレンジ)は夜空で読める明るさに */
.grounds-world :is(.g-mission-left,.g-streak,.g-check-field){background:rgba(254,98,7,.2);color:#ffb37a}
.grounds-world .g-book-new{background:rgba(254,98,7,.16);border-color:#fe6207}.grounds-world .g-book-new strong{color:#ffb37a}.grounds-world .g-book-new p{color:#e9eefc}
.grounds-world .g-mission-list li.done .ui-icon,.grounds-world .g-mission-list li.done b{color:#6fe3a0}
.grounds-world .m-form-errors{background:rgba(214,51,74,.2);border-color:rgba(255,138,150,.5);color:#ffd5da}
@media(max-width:600px){.grounds-world .cm-hero h1{font-size:min(28px,6.2vw);letter-spacing:.02em;overflow-wrap:anywhere}}
/* 夜の球場ページの地域選択(日本地図・都道府県・市区町村): 白い箱をやめて夜空の地図に。選んだ地方・県・市区町村は金(2026-10-28、ユーザー指示) */
.cm-world .reg-map-picker{border-color:rgba(255,214,102,.28);background:radial-gradient(80% 90% at 30% 0,rgba(90,130,255,.22),transparent 70%),rgba(6,16,40,.55)}
.cm-world .reg-japan-map g,.cm-world .reg-japan-map path[data-region]{fill:#24427e;stroke:#0a1430;stroke-width:2}
.cm-world .reg-japan-map g:hover,.cm-world .reg-japan-map g:focus{fill:#3d63b8;stroke:#ffd45c;stroke-width:2.5}
.cm-world .reg-japan-map g.active{fill:#ffd45c;stroke:#fff4c2;filter:drop-shadow(0 0 6px rgba(255,190,40,.75))}
.cm-world .reg-japan-map text{fill:rgba(233,238,252,.6)}
.cm-world .reg-prefectures{border-top-color:rgba(255,255,255,.12);background:rgba(255,255,255,.03)}
.cm-world :is(.reg-map-heading,.reg-selected-heading){color:#fff}.cm-world .reg-map-heading>span{color:rgba(233,238,252,.6)}
.cm-world :is(.reg-region-buttons,.reg-prefecture-buttons,.reg-city-options) button{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.18);color:#e9eefc}
.cm-world :is(.reg-region-buttons,.reg-prefecture-buttons,.reg-city-options) button:hover{border-color:#ffd45c}
.cm-world :is(.reg-region-buttons,.reg-prefecture-buttons,.reg-city-options) button[aria-pressed=true]{background:linear-gradient(180deg,#ffe28a,#e8a317);border-color:#e8a317;color:#2b1a00;font-weight:800}
.cm-world .reg-city-panel{border-top-color:rgba(255,255,255,.12)}
.cm-world .reg-location-trail{color:rgba(233,238,252,.7)}.cm-world .reg-location-trail span{color:rgba(255,212,92,.7)}
.cm-world .reg-city-search{color:rgba(233,238,252,.75)}
.cm-world .reg-selected-areas button{background:rgba(255,212,92,.16);color:#ffe28a}
.cm-world :is(.reg-placeholder,.reg-area-source){color:rgba(233,238,252,.6)}
.cm-world .reg-city-options{scrollbar-color:rgba(255,212,92,.5) transparent}
.cm-world .area-picker-footer{border-top-color:rgba(255,255,255,.12);background:rgba(6,16,40,.6)}.cm-world .area-picker-footer small{color:rgba(233,238,252,.7)}
/* 夜の球場ページの「任意」バッジ: 明るい地をやめ、背景になじむ控えめな枠と薄い文字に(「必須」は従来の青のまま、2026-10-28) */
.cm-world .reg-badge:not(.required){background:transparent;border:1px solid rgba(255,255,255,.18);color:rgba(233,238,252,.5);font-weight:500}

/* ===== 選手ページ(夜空、2026-10-28): 地域・みんなのグラウンドと同じ独立ページ。色の制限なし ===== */
.player-world{--pw-gold:#ffd45c;--pw-gold-deep:#e8a317;--pw-soft:rgba(233,238,252,.74);--pw-glass:rgba(255,255,255,.07);--pw-line:rgba(255,255,255,.16)}
.player-world .pw-hero{position:relative;isolation:isolate;overflow:hidden;margin:0 calc(-1 * var(--cm-gutter)) 16px;border-bottom:1px solid rgba(255,214,102,.35);background:radial-gradient(90% 140% at 85% 0,rgba(110,150,255,.34),transparent 60%),linear-gradient(180deg,#0b1a44,#071030)}
.player-world .pw-cover{position:absolute;inset:0;z-index:-1}.player-world .pw-cover img{width:100%;height:100%;object-fit:cover;opacity:.38}
.player-world .pw-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,10,26,.25),rgba(5,10,26,.88))}
.player-world .pw-hero-body{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:22px;align-items:end;max-width:calc(1000px + 2 * var(--cm-gutter));margin:0 auto;padding:48px var(--cm-gutter) 26px}
.player-world .pw-photo{position:relative;display:grid;place-items:center;width:132px;height:132px;border-radius:50%;border:4px solid var(--pw-gold);background:#10224f;overflow:hidden;box-shadow:0 0 0 4px rgba(255,214,102,.18),0 10px 28px rgba(0,0,0,.5)}
.player-world .pw-photo img{width:100%;height:100%;object-fit:cover}.player-world .pw-photo-empty .ui-icon{width:56px;height:56px;color:rgba(255,255,255,.6)}
.player-world .pw-photo.rank-1{border-color:#cf8a4a}.player-world .pw-photo.rank-2{border-color:#c4ccd8}
.player-world .pw-photo.rank-3{border-color:#e8b82e;box-shadow:0 0 0 4px rgba(255,201,74,.3),0 0 26px rgba(255,201,74,.5)}
.player-world .pw-photo.rank-4{border-color:#eaf2ff;box-shadow:0 0 0 4px rgba(230,238,250,.4),0 0 30px rgba(230,238,250,.65)}
.player-world .pw-kicker{display:flex;align-items:center;gap:6px;margin:0 0 4px;font-size:13px;color:var(--pw-soft)}.player-world .pw-kicker b{color:var(--pw-gold)}.player-world .pw-kicker .ui-icon{width:16px;height:16px;color:var(--pw-gold)}
.player-world .pw-id h1{margin:0;font-size:38px;line-height:1.15;color:#fff;overflow-wrap:anywhere;text-shadow:0 2px 14px rgba(0,0,0,.6)}
.player-world .pw-number{margin-right:10px;color:var(--pw-gold);font-weight:900}
.player-world .pw-oneliner{margin:8px 0 0;font-size:20px;font-weight:700;color:#ffe9a8;text-shadow:0 2px 10px rgba(0,0,0,.6)}
.player-world .pw-facts{display:flex;flex-wrap:wrap;gap:6px 16px;margin:12px 0 0;padding:0;list-style:none;font-size:14px;color:var(--pw-soft)}
.player-world .pw-facts li{display:inline-flex;align-items:center;gap:6px}.player-world .pw-facts .ui-icon{width:16px;height:16px;color:var(--pw-gold)}
.player-world .pw-team{display:inline-flex;align-items:center;gap:8px;color:#fff;font-weight:700}.player-world .pw-team:hover{color:var(--pw-gold)}
.player-world .pw-team img,.player-world .pw-team-mark{width:28px;height:28px;border-radius:7px;background:#fff;object-fit:cover}.player-world .pw-team-mark{display:grid;place-items:center;color:#17335c}.player-world .pw-team-mark .ui-icon{color:#17335c}
.player-world .pw-badges{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}
.player-world .pw-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:8px;border:1px solid rgba(255,214,102,.45);background:rgba(255,212,92,.14);color:#ffe28a;font-size:13px;font-weight:800}
.player-world .pw-badge .ui-icon{width:16px;height:16px}.player-world .pw-badge.scout{background:linear-gradient(180deg,#ffe28a,#e8a317);border-color:#e8a317;color:#2b1a00}
.player-world .pw-side{display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.player-world .pw-share{display:flex;gap:8px}
.player-world .pw-heart .hp-heart-btn{min-height:48px;padding:0 20px;gap:8px;font-size:20px;border-color:#f3c6cd}
.player-world .m-page-content{padding-top:8px}
/* ハイライト */
.player-world .pw-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 10px;padding:0;list-style:none}
.player-world .pw-stats li{padding:14px 12px;border-radius:12px;border:1px solid var(--pw-line);background:var(--pw-glass);text-align:center}
.player-world .pw-stats small{display:block;font-size:13px;color:var(--pw-soft)}.player-world .pw-stats strong{display:block;font-size:34px;line-height:1.2;color:var(--pw-gold);font-variant-numeric:tabular-nums;text-shadow:0 0 14px rgba(255,190,40,.4)}
.player-world .pw-places{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 0;padding:0;list-style:none}
.player-world .pw-places li{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;border:1px solid var(--pw-line);background:var(--pw-glass);font-size:13px;color:#e9eefc}
.player-world .pw-places b{font-size:15px}.player-world .pw-places .ui-icon{width:16px;height:16px}
.player-world .pw-places .place-1{border-color:#e8b82e;background:linear-gradient(180deg,rgba(255,226,138,.28),rgba(232,163,23,.16))}.player-world .pw-places .place-1 :is(b,.ui-icon){color:var(--pw-gold)}
.player-world .pw-places .place-2{border-color:#c4ccd8}.player-world .pw-places .place-2 :is(b,.ui-icon){color:#e3e9f3}
.player-world .pw-places .place-3{border-color:#cf8a4a}.player-world .pw-places .place-3 :is(b,.ui-icon){color:#e6a870}
/* 最近の試合 */
.player-world .pw-recent{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.player-world .pw-recent a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;border:1px solid var(--pw-line);background:var(--pw-glass);color:#e9eefc}
.player-world .pw-recent a:hover{border-color:var(--pw-gold);box-shadow:0 0 14px rgba(255,190,40,.25)}
.player-world .pw-res{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;font-weight:900;font-size:17px;background:#fff;color:#17335c}
.player-world .res-LOSE .pw-res{background:#10172b;color:#fff;border:2px solid #fff}.player-world .res-DRAW .pw-res{background:#7d8aa0;color:#fff}
.player-world .pw-recent-main{display:flex;flex-direction:column;flex:1;min-width:0}.player-world .pw-recent-main strong{color:#fff;overflow-wrap:anywhere}
.player-world .pw-recent-main small,.player-world .pw-recent-main em{font-size:13px;font-style:normal;color:var(--pw-soft)}
.player-world .pw-recent-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px}
.player-world .pw-recent-badges b{padding:2px 8px;border-radius:6px;background:rgba(255,212,92,.18);color:#ffe28a;font-size:12px}
/* 試合ハイライト */
.player-world .pw-feats{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.player-world .pw-feats li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,214,102,.3);background:rgba(255,212,92,.06)}
.player-world .pw-feat-title{font-weight:800;color:var(--pw-gold)}.player-world .pw-feats small{color:var(--pw-soft);flex:1}
/* プロフィール */
.player-world .pw-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px;padding:0;list-style:none}
.player-world .pw-chips li{display:flex;flex-direction:column;padding:8px 14px;border-radius:10px;border:1px solid var(--pw-line);background:var(--pw-glass)}
.player-world .pw-chips small{font-size:12px;color:var(--pw-soft)}.player-world .pw-chips b{color:#fff}
.player-world .public-subtitle{color:var(--pw-gold)}.player-world .public-intro{color:#e9eefc}
.player-world .pw-inner{margin-top:14px}
.player-world .public-interview dt{color:#ffe28a}.player-world .public-interview dt::before{color:var(--pw-gold)}.player-world .public-interview dd{background:var(--pw-glass);color:#eef2fb}
.player-world .pw-field{position:relative;width:min(100%,420px);aspect-ratio:200/170;margin:6px 0 0;border-radius:14px;overflow:hidden;border:1px solid rgba(255,214,102,.35);background:#0c2a1a}
.player-world .pw-field-art{position:absolute;inset:0;width:100%;height:100%}
.player-world .pw-pos{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:rgba(5,10,26,.78);border:2px solid var(--pw-gold);color:#fff;line-height:1.05;text-align:center}
.player-world .pw-pos b{font-size:14px}.player-world .pw-pos i{font-style:normal;font-size:11px;color:var(--pw-gold)}
.player-world .pw-pos.none{opacity:.45;border-color:rgba(255,255,255,.4)}.player-world .pw-pos.none i{color:var(--pw-soft)}
.player-world .pw-pos[data-pos="投"]{left:50%;top:70%}.player-world .pw-pos[data-pos="捕"]{left:50%;top:92%}
.player-world .pw-pos[data-pos="一"]{left:76%;top:73%}.player-world .pw-pos[data-pos="二"]{left:62%;top:55%}
.player-world .pw-pos[data-pos="三"]{left:24%;top:73%}.player-world .pw-pos[data-pos="遊"]{left:38%;top:55%}
.player-world .pw-pos[data-pos="左"]{left:20%;top:30%}.player-world .pw-pos[data-pos="中"]{left:50%;top:14%}.player-world .pw-pos[data-pos="右"]{left:80%;top:30%}
/* 成績の詳細 */
.player-world .public-stat{background:var(--pw-glass);border:1px solid var(--pw-line)}.player-world .public-stat small,.player-world .public-stat span{color:var(--pw-soft)}.player-world .public-stat strong{color:var(--pw-gold)}
.player-world .pw-bests{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin:12px 0;padding:0;list-style:none}
.player-world .pw-bests li{display:flex;flex-direction:column;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,214,102,.3);background:rgba(255,212,92,.07)}
.player-world .pw-bests small{font-size:12px;color:var(--pw-soft)}.player-world .pw-bests strong{font-size:26px;color:var(--pw-gold);line-height:1.3}
.player-world .pw-fold{margin-top:8px}.player-world .pw-fold>summary,.player-world .pw-calc>summary{cursor:pointer;color:#ffe28a;font-weight:700;padding:8px 0}
.player-world .pw-calc{margin-top:6px}.player-world .pw-calc>summary{font-weight:400;font-size:13px;color:var(--pw-soft)}
.player-world .public-figures caption,.player-world .year-chart-title,.player-world .pit-panel figcaption{color:#ffe28a}
.player-world .public-figures th,.player-world .public-figures td{border-bottom-color:rgba(255,255,255,.14)}
.player-world .public-figures thead th{color:var(--pw-soft)}.player-world .public-figures tbody th{color:#e9eefc}.player-world .public-figures td{color:#fff}
.player-world .public-figures tr.total th,.player-world .public-figures tr.total td{border-top-color:rgba(255,214,102,.5);color:var(--pw-gold)}
.player-world .pit-panel{background:var(--pw-glass);border-color:var(--pw-line)}
.player-world .year-chart-grid line{stroke:rgba(255,255,255,.14)}.player-world .year-chart-grid text{fill:var(--pw-soft)}
.player-world .year-chart-legend{color:var(--pw-soft)}.player-world .year-chart-legend li::before{border-top-color:var(--pw-gold)}
.player-world .year-chart-avg{stroke:var(--pw-gold);filter:drop-shadow(0 0 4px rgba(255,190,40,.6))}.player-world .year-chart-avg-dot{fill:var(--pw-gold);stroke:#0b1a44}
.player-world .year-chart-ops{stroke:#9ec0ff}.player-world .year-chart-ops-dot{fill:#9ec0ff;stroke:#0b1a44}
.player-world .pit-bar{fill:#6f94ff}.player-world .pit-bar.a{fill:#6f94ff}.player-world .pit-bar.b{fill:var(--pw-gold)}
.player-world .pit-dot{fill:var(--pw-gold);stroke:#0b1a44}.player-world .pit-dot.open{fill:#0b1a44;stroke:var(--pw-gold)}.player-world .pit-dot.cap{fill:#0b1a44;stroke:#9ec0ff}
.player-world .pit-mark{fill:#ffe28a}.player-world .pit-note{color:var(--pw-soft)}
.player-world .pit-legend li::before{background:#6f94ff}.player-world .pit-legend li.b::before{background:var(--pw-gold)}
/* 所属チーム */
.player-world .public-history li{border-bottom-color:rgba(255,255,255,.14)}.player-world .public-history-text small{color:var(--pw-soft)}
.player-world .public-history .near-team-mark{background:#fff}
.player-world .member-role{background:rgba(255,212,92,.16);color:#ffe28a}.player-world .member-role.title{background:linear-gradient(180deg,#ffe28a,#e8a317);color:#2b1a00}
/* グラウンド活動 */
.player-world .pw-ground{margin-top:10px}.player-world .pw-ground-title{display:flex;align-items:center;gap:8px;margin:18px 0 10px;font-size:20px;color:#fff}.player-world .pw-ground-title .ui-icon{width:22px;height:22px;color:var(--pw-gold)}
.player-world .public-report{margin:18px 0 6px;text-align:center}.player-world .public-report a,.player-world .pw-made a{color:var(--pw-soft)}
.player-world .pw-made{margin:6px 0 22px;text-align:center;font-size:13px;color:var(--pw-soft)}.player-world .pw-made a{margin-left:12px;text-decoration:underline}
.player-world .pw-dock{display:none}
@media(max-width:700px){
.player-world .pw-hero-body{grid-template-columns:auto minmax(0,1fr);padding:30px 14px 20px;gap:14px}
.player-world .pw-photo{width:92px;height:92px;border-width:3px}.player-world .pw-id h1{font-size:28px}.player-world .pw-oneliner{font-size:17px}
.player-world .pw-side{grid-column:1 / -1;flex-direction:row;align-items:center;justify-content:space-between}.player-world .pw-share{display:none}
.player-world .pw-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.player-world .pw-stats strong{font-size:30px}
.player-world .pw-dock{position:sticky;bottom:0;z-index:25;display:flex;gap:8px;margin:0 -12px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(5,10,26,.9);backdrop-filter:blur(8px);border-top:1px solid rgba(255,214,102,.3)}
.player-world .pw-dock .button{flex:1}
.player-world .pw-recent a{flex-wrap:wrap}.player-world .pw-recent-badges{width:100%;justify-content:flex-start}
}
.player-world .hall-heart{display:none}
.player-world .pw-hero .cm-beam{top:-20%;height:150%;background:linear-gradient(180deg,rgba(255,244,200,.62),rgba(255,244,200,0) 78%);opacity:.9}

/* ヒーロー: ハートは枠なしで大きく、背景は星がまたたく夜空 */
.player-world .pw-heart .hp-heart-btn{min-height:64px;padding:0 6px;gap:10px;border:0;background:transparent;box-shadow:none;color:#fff;font-size:26px;font-weight:900}
.player-world .pw-heart .hp-heart-btn:hover{background:transparent}
.player-world .pw-heart .hp-heart-icon .ui-icon{width:60px;height:60px;color:#ff4d6a;fill:#ff4d6a;filter:drop-shadow(0 0 10px rgba(255,77,106,.75)) drop-shadow(0 0 22px rgba(255,77,106,.4));animation:pw-beat 2.4s ease-in-out infinite}
.player-world .pw-heart .hp-heart-btn:hover .hp-heart-icon .ui-icon{filter:drop-shadow(0 0 14px rgba(255,120,140,.95)) drop-shadow(0 0 30px rgba(255,77,106,.6))}
.player-world .pw-heart .hp-heart-btn:focus-visible{outline:3px solid var(--pw-gold);outline-offset:2px;border-radius:12px}
.player-world .pw-heart .hp-heart-btn b{text-shadow:0 2px 10px rgba(0,0,0,.6)}
.player-world .pw-stars{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.player-world .pw-stars::before,.player-world .pw-stars::after{content:"";position:absolute;inset:0;background-repeat:no-repeat;animation:pw-twinkle 3.4s ease-in-out infinite alternate}
.player-world .pw-stars::before{background-image:radial-gradient(1.6px 1.6px at 6% 22%,#fff,transparent),radial-gradient(1.2px 1.2px at 14% 70%,#cfe0ff,transparent),radial-gradient(2px 2px at 24% 14%,#fff,transparent),radial-gradient(1.2px 1.2px at 33% 52%,#fff4c8,transparent),radial-gradient(1.6px 1.6px at 44% 80%,#fff,transparent),radial-gradient(1.2px 1.2px at 53% 18%,#cfe0ff,transparent),radial-gradient(2px 2px at 63% 62%,#fff,transparent),radial-gradient(1.2px 1.2px at 72% 28%,#fff4c8,transparent),radial-gradient(1.6px 1.6px at 81% 78%,#fff,transparent),radial-gradient(1.2px 1.2px at 90% 16%,#fff,transparent),radial-gradient(1.6px 1.6px at 96% 54%,#cfe0ff,transparent)}
.player-world .pw-stars::after{animation-delay:-1.7s;animation-duration:2.6s;background-image:radial-gradient(1.4px 1.4px at 10% 40%,#fff,transparent),radial-gradient(2px 2px at 19% 88%,#fff4c8,transparent),radial-gradient(1.2px 1.2px at 28% 32%,#fff,transparent),radial-gradient(1.6px 1.6px at 38% 12%,#cfe0ff,transparent),radial-gradient(1.2px 1.2px at 48% 58%,#fff,transparent),radial-gradient(2px 2px at 58% 84%,#fff,transparent),radial-gradient(1.2px 1.2px at 68% 8%,#fff4c8,transparent),radial-gradient(1.6px 1.6px at 77% 48%,#fff,transparent),radial-gradient(1.2px 1.2px at 86% 90%,#cfe0ff,transparent),radial-gradient(2px 2px at 93% 34%,#fff,transparent)}
@keyframes pw-twinkle{from{opacity:.25}to{opacity:1}}
@keyframes pw-beat{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
@media(prefers-reduced-motion:reduce){.player-world .pw-stars::before,.player-world .pw-stars::after,.player-world .pw-heart .hp-heart-icon .ui-icon{animation:none}.player-world .pw-stars::before{opacity:.9}.player-world .pw-stars::after{opacity:.5}}
@media(max-width:700px){.player-world .pw-heart .hp-heart-icon .ui-icon{width:52px;height:52px}}

/* ===== チームページ(夜空、2026-10-28): 選手ページと同じ独立ページ。チームカラーが照明と強調線になる ===== */
.team-world{--tw-accent:#ffd45c;--tw-accent2:#ffd45c;--pw-gold:var(--tw-accent)}
.team-world .tw-hero{background:radial-gradient(90% 140% at 85% 0,color-mix(in srgb,var(--tw-accent) 30%,transparent),transparent 60%),linear-gradient(180deg,#0b1a44,#071030)}
.team-world .tw-hero .cm-beam{background:linear-gradient(180deg,color-mix(in srgb,var(--tw-accent) 62%,#fff4c8),transparent 78%)}
.team-world .pw-photo.tw-logo{border-radius:22px;border-color:var(--tw-accent);background:#fff}
.team-world .pw-photo.tw-logo img{object-fit:contain;padding:6px}
.team-world .pw-photo.tw-logo .pw-photo-empty .ui-icon{color:#17335c}
.team-world .pw-photo.tw-logo.rank-1{border-color:#cf8a4a}.team-world .pw-photo.tw-logo.rank-2{border-color:#c4ccd8}.team-world .pw-photo.tw-logo.rank-3{border-color:#e8b82e}.team-world .pw-photo.tw-logo.rank-4{border-color:#eaf2ff}
.team-world .pw-id h1{font-size:34px}
.team-world .pw-share{flex-wrap:wrap;justify-content:flex-end}
.team-world .pw-badge{border-color:color-mix(in srgb,var(--tw-accent) 55%,transparent);background:color-mix(in srgb,var(--tw-accent) 16%,transparent);color:#fff}
.team-world .pw-badge.scout{background:var(--tw-accent);border-color:var(--tw-accent);color:#10172b}
.team-world .pw-facts .ui-icon{color:var(--tw-accent)}
.team-world .m-panel{border-color:color-mix(in srgb,var(--tw-accent) 26%,transparent)}
.team-world .panel-title-icon{background:color-mix(in srgb,var(--tw-accent) 16%,transparent);color:var(--tw-accent)}
/* 入団・問い合わせの帯 */
.team-world .public-join{border-color:color-mix(in srgb,var(--tw-accent) 45%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--tw-accent) 12%,transparent),rgba(255,255,255,.04))}
.team-world .public-join .svc-facts dt{color:var(--tw-accent)}
/* タブ */
.team-world .event-tabs{margin:14px 0 16px}
.team-world .event-tabs a .count-badge{background:rgba(255,255,255,.16);color:#fff}
.team-world .event-tabs a.active .count-badge{background:rgba(0,0,0,.2);color:inherit}
.team-world .event-sections>[hidden]{display:none}
/* NEXT GAME */
.team-world .tw-ticket{display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap;padding:14px 16px;border-radius:14px;border:1px dashed color-mix(in srgb,var(--tw-accent) 60%,transparent);background:linear-gradient(90deg,color-mix(in srgb,var(--tw-accent) 18%,transparent),rgba(255,255,255,.05))}
.team-world .tw-ticket-date{flex:none;font-size:28px;font-weight:900;color:var(--tw-accent);white-space:nowrap;font-variant-numeric:tabular-nums;text-shadow:0 0 14px color-mix(in srgb,var(--tw-accent) 50%,transparent)}
.team-world .tw-ticket-body{display:flex;flex-direction:column;flex:1 1 100%;order:3;min-width:0}.team-world .tw-ticket-body strong{font-size:18px;color:#fff;overflow-wrap:break-word;line-height:1.35}.team-world .tw-ticket-body small{color:var(--pw-soft)}
.team-world .tw-ticket-days{flex:none;order:2;margin-left:auto;padding:6px 14px;border-radius:8px;white-space:nowrap;background:var(--tw-accent);color:#10172b;font-size:16px}
/* 今季の戦績 */
.team-world .tw-record{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin:0 0 12px}
.team-world .tw-record b{font-size:54px;line-height:1;font-weight:900;font-variant-numeric:tabular-nums;color:#fff}.team-world .tw-record b.w{color:var(--tw-accent);text-shadow:0 0 18px color-mix(in srgb,var(--tw-accent) 55%,transparent)}.team-world .tw-record b.d{color:var(--pw-soft)}
.team-world .tw-record i{font-style:normal;font-size:18px;color:var(--pw-soft);margin-right:10px}
.team-world .tw-streak{padding:4px 12px;border-radius:8px;background:color-mix(in srgb,var(--tw-accent) 22%,transparent);border:1px solid var(--tw-accent);color:#fff;font-weight:800;font-size:14px}
.team-world .pw-stats strong{color:var(--tw-accent)}
/* チームの顔 */
.team-world .tw-faces{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:0;padding:0;list-style:none}
.team-world .tw-faces a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 10px;border-radius:14px;border:1px solid var(--pw-line);background:var(--pw-glass);color:#e9eefc;text-align:center}
.team-world .tw-faces a:hover{border-color:var(--tw-accent);box-shadow:0 0 16px color-mix(in srgb,var(--tw-accent) 35%,transparent)}
.team-world .tw-faces img,.team-world .tw-face-empty{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid var(--tw-accent);background:#10224f}
.team-world .tw-face-empty{display:grid;place-items:center}.team-world .tw-face-empty .ui-icon{width:30px;height:30px;color:rgba(255,255,255,.6)}
.team-world .tw-faces small{margin-top:6px;font-size:12px;color:var(--pw-soft)}.team-world .tw-faces strong{font-size:24px;line-height:1.2;color:var(--tw-accent)}.team-world .tw-faces em{font-style:normal;font-size:13px;color:#fff;overflow-wrap:anywhere}
/* 活動日・年度別の勝率 */
.team-world .tw-days{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.team-world .tw-days li{padding:5px 12px;border-radius:8px;border:1px solid var(--pw-line);color:rgba(233,238,252,.4);font-size:13px}
.team-world .tw-days li.on{border-color:var(--tw-accent);background:color-mix(in srgb,var(--tw-accent) 22%,transparent);color:#fff;font-weight:800}
.team-world .tw-bars{display:flex;align-items:flex-end;gap:10px;height:150px;margin:6px 0 10px;padding:0;list-style:none}
.team-world .tw-bars li{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;flex:1;max-width:72px;height:100%;gap:4px}
.team-world .tw-bars b{font-size:12px;color:var(--tw-accent);font-variant-numeric:tabular-nums}.team-world .tw-bars small{font-size:12px;color:var(--pw-soft)}
.team-world .tw-bar{display:block;width:100%;min-height:4px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,var(--tw-accent),color-mix(in srgb,var(--tw-accent) 40%,#10172b));box-shadow:0 0 12px color-mix(in srgb,var(--tw-accent) 40%,transparent)}
/* メンバー構成 */
.team-world .tw-makeup{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:0 0 6px}
.team-world .tw-meter{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.team-world .tw-meter li{display:grid;grid-template-columns:72px minmax(0,1fr) 44px;align-items:center;gap:8px;font-size:13px;color:#e9eefc}
.team-world .tw-meter i{display:block;height:10px;border-radius:5px;background:rgba(255,255,255,.14);overflow:hidden}.team-world .tw-meter b{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,color-mix(in srgb,var(--tw-accent) 55%,#10172b),var(--tw-accent))}
.team-world .tw-meter em{font-style:normal;text-align:right;color:var(--pw-soft)}
/* 既存部品の夜空化 */
.team-world .svc-facts dt{color:var(--pw-soft)}.team-world .svc-facts dd{color:#fff}
.team-world .near-post,.team-world .public-games li,.team-world .public-member,.team-world .mgr-item{background:var(--pw-glass);border:1px solid var(--pw-line);color:#e9eefc;border-radius:12px}
.team-world .near-post:hover,.team-world .public-member:hover{border-color:var(--tw-accent)}
.team-world .near-post strong,.team-world .public-games strong,.team-world .public-member strong,.team-world .mgr-item strong,.team-world .mgr-item h3{color:#fff}
.team-world :is(.near-post,.public-games,.public-member,.mgr-item) :is(small,em,.near-date small){color:var(--pw-soft)}
.team-world .near-date strong{color:var(--tw-accent)}
.team-world .public-games{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:8px}.team-world .public-games li{padding:10px 12px}
.team-world .public-members{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.team-world .public-member{padding:10px 12px}
.team-world .member-photo{border:2px solid var(--tw-accent)}
.team-world .public-number{color:var(--tw-accent)}
.team-world .public-game-date{color:var(--tw-accent)}
.team-world .event-result b{color:#fff}
.team-world .type-tag{background:rgba(255,255,255,.1);color:#e9eefc}
.team-world .live-chip{margin:0 0 12px}
@media(max-width:700px){
.team-world .pw-id h1{font-size:26px}
.team-world .pw-share{display:none}
.team-world .tw-makeup{grid-template-columns:minmax(0,1fr)}
.team-world .tw-ticket{flex-wrap:wrap}.team-world .tw-ticket-date{font-size:24px}
.team-world .tw-record b{font-size:44px}
.team-world .tw-bars{gap:6px}
}
.team-world .near-date{background:rgba(255,255,255,.1);border:1px solid var(--pw-line);color:var(--pw-soft)}
.team-world .event-result em{background:#fff;color:#17335c;font-style:normal;border-radius:999px;padding:1px 8px}
@media(max-width:700px){.team-world .pw-dock .button.primary{white-space:nowrap}.team-world .pw-dock .button.secondary{flex:0 0 auto}}
.team-world .near-post{padding:14px;margin:0 0 10px}.team-world .near-post:last-of-type{margin-bottom:0}

/* ===== 試合ページ(夜空、2026-10-28): 選手・チームページと同じ独立ページ。色の制限なし。ヒーローは電光掲示板、金色固定＋チーム色は名前の下の細い帯だけ ===== */
.game-world .gw-hero-body{display:flex;flex-direction:column;align-items:center;gap:14px;max-width:calc(1000px + 2 * var(--cm-gutter));margin:0 auto;padding:44px var(--cm-gutter) 26px;text-align:center}
.game-world .gw-kicker{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 12px;margin:0;font-size:14px;color:var(--pw-soft)}
.game-world .gw-venue{display:flex;justify-content:center;align-items:center;gap:6px;margin:0;font-size:15px;color:#e9eefc;font-weight:700}.game-world .gw-venue .ui-icon{width:16px;height:16px;color:var(--pw-gold)}.game-world .gw-kicker .ui-icon{width:16px;height:16px;color:var(--pw-gold)}.game-world .gw-kicker b{padding:2px 10px;border-radius:8px;border:1px solid rgba(255,214,102,.45);background:rgba(255,212,92,.14);color:#ffe28a;font-size:13px}
.game-world .gw-board{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:18px;width:100%;max-width:860px}
.game-world .gw-team{--gw-team:var(--team-main,var(--pw-gold));display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;color:#fff}.game-world a.gw-team[href]:hover strong{color:var(--pw-gold)}
.game-world .gw-team strong{max-width:100%;font-size:20px;line-height:1.3;overflow-wrap:anywhere;text-shadow:0 2px 12px rgba(0,0,0,.6)}
.game-world .gw-logo{display:grid;place-items:center;width:84px;height:84px;border-radius:18px;background:#fff;overflow:hidden;border:3px solid var(--pw-gold);box-shadow:0 0 0 4px rgba(255,214,102,.18),0 10px 28px rgba(0,0,0,.5)}
.game-world .gw-logo img{width:100%;height:100%;object-fit:cover}.game-world .gw-logo .ui-icon{width:40px;height:40px;color:#17335c}
.game-world .gw-score{display:flex;align-items:center;gap:14px;padding:10px 24px;border-radius:14px;border:2px solid rgba(255,214,102,.55);background:rgba(5,10,26,.72);box-shadow:inset 0 0 24px rgba(255,190,40,.12),0 0 28px rgba(255,190,40,.2);font-variant-numeric:tabular-nums}
.game-world .gw-score b{font-size:64px;line-height:1.05;font-weight:900;color:var(--pw-gold);text-shadow:0 0 18px rgba(255,190,40,.6)}.game-world .gw-score i{font-style:normal;font-size:32px;color:var(--pw-soft)}
.game-world .gw-badges{justify-content:center;margin:0}.game-world .gw-badges a{color:#fff;font-weight:900}.game-world .gw-badges a:hover{color:var(--pw-gold)}
.game-world .gw-share{justify-content:center}
.game-world .gw-external{margin:0 0 12px}
.game-world .line-score td b{color:var(--pw-gold)}.game-world .line-score td{color:#fff}.game-world .public-figures td.gw-hot{color:var(--pw-gold);font-weight:800}
.game-world .game-order{color:var(--pw-gold)}
.game-world .public-figures a.inline-link{color:#fff}.game-world .public-figures a.inline-link:hover{color:var(--pw-gold)}
.game-world .interview-list dt{color:#ffe28a}.game-world .interview-list dd{background:var(--pw-glass);color:#eef2fb}
.game-world .public-team-link{margin:6px 0 16px;text-align:center}
@media(max-width:700px){
.game-world .gw-hero-body{padding:28px 14px 20px;gap:12px}
.game-world .gw-board{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 10px}.game-world .gw-score{grid-column:1 / -1;grid-row:1;justify-self:center}
.game-world .gw-score b{font-size:48px}.game-world .gw-logo{width:64px;height:64px;border-radius:14px}.game-world .gw-team strong{font-size:15px}
.game-world .gw-share{display:none}
.game-world .public-figures table:not(.line-score) thead th:first-child{position:sticky;left:0;z-index:2;background:#0b1a44;text-align:left}
.game-world .public-figures table:not(.line-score) tbody th{position:sticky;left:0;z-index:1;background:#0b1a44}
}

/* 試合ページ 2回目の調整(2026-10-29): 「勝ち」ラベル廃止→勝った側に WIN とくす玉の紙吹雪、本物のスコアボード、先攻が左・上、照明とお星さまは動かさない */
.game-world .cm-beam{animation:gw-sway 6s ease-in-out infinite alternate;opacity:.85}
@keyframes gw-sway{from{transform:rotate(-4deg)}to{transform:rotate(4deg)}}
.game-world .gw-board{margin-top:14px}
.game-world .gw-side{font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--pw-soft)}
.game-world .gw-logo-wrap{position:relative;display:block;margin-top:22px}
.game-world .gw-win{position:absolute;left:50%;top:-30px;z-index:3;transform:translateX(-50%);display:inline-flex;align-items:center;gap:6px;padding:3px 14px;border-radius:8px;border:2px solid #fff3c4;background:linear-gradient(180deg,#ffe28a,#e8a317);color:#3a2300;font-size:17px;font-weight:900;letter-spacing:.18em;line-height:1.3;white-space:nowrap;box-shadow:0 0 18px rgba(255,190,40,.7),0 4px 10px rgba(0,0,0,.45);text-shadow:0 1px 0 rgba(255,255,255,.6)}
.game-world .gw-win-star{font-style:normal;font-size:12px;color:#fff;text-shadow:0 0 6px rgba(255,255,255,.9)}
.game-world .is-win .gw-logo{box-shadow:0 0 0 4px rgba(255,214,102,.3),0 0 30px rgba(255,190,40,.65),0 10px 28px rgba(0,0,0,.5)}
.game-world .gw-confetti{position:absolute;left:50%;top:-34px;z-index:2;width:190px;height:150px;margin-left:-95px;overflow:visible;pointer-events:none}
.game-world .gw-confetti i{position:absolute;top:0;left:50%;width:7px;height:12px;border-radius:2px;background:#ffd45c;opacity:0;animation:gw-fall 3s linear 1 both}
.game-world .gw-confetti i:nth-child(4n+2){background:#fff}.game-world .gw-confetti i:nth-child(4n+3){background:#6fa0ff}.game-world .gw-confetti i:nth-child(4n){background:#ff6f91}
.game-world .gw-confetti i:nth-child(3n){width:8px;height:8px;border-radius:50%}
.game-world .gw-confetti i:nth-child(1){left:41%;--r:-260deg;animation-duration:2.85s;animation-delay:1.3s}
.game-world .gw-confetti i:nth-child(2){left:78%;--r:280deg;animation-duration:3.30s;animation-delay:0.2s}
.game-world .gw-confetti i:nth-child(3){left:23%;--r:-300deg;animation-duration:3.75s;animation-delay:1.5s}
.game-world .gw-confetti i:nth-child(4){left:60%;--r:320deg;animation-duration:2.40s;animation-delay:0.4s}
.game-world .gw-confetti i:nth-child(5){left:5%;--r:-340deg;animation-duration:2.85s;animation-delay:1.7s}
.game-world .gw-confetti i:nth-child(6){left:42%;--r:360deg;animation-duration:3.30s;animation-delay:0.6s}
.game-world .gw-confetti i:nth-child(7){left:79%;--r:-380deg;animation-duration:3.75s;animation-delay:1.9s}
.game-world .gw-confetti i:nth-child(8){left:24%;--r:400deg;animation-duration:2.40s;animation-delay:0.8s}
.game-world .gw-confetti i:nth-child(9){left:61%;--r:-420deg;animation-duration:2.85s;animation-delay:2.1s}
.game-world .gw-confetti i:nth-child(10){left:6%;--r:440deg;animation-duration:3.30s;animation-delay:1.0s}
.game-world .gw-confetti i:nth-child(11){left:43%;--r:-460deg;animation-duration:3.75s;animation-delay:2.3s}
.game-world .gw-confetti i:nth-child(12){left:80%;--r:480deg;animation-duration:2.40s;animation-delay:1.2s}
.game-world .gw-confetti i:nth-child(13){left:25%;--r:-500deg;animation-duration:2.85s;animation-delay:0.1s}
.game-world .gw-confetti i:nth-child(14){left:62%;--r:520deg;animation-duration:3.30s;animation-delay:1.4s}
.game-world .gw-confetti i:nth-child(15){left:7%;--r:-540deg;animation-duration:3.75s;animation-delay:0.3s}
.game-world .gw-confetti i:nth-child(16){left:44%;--r:560deg;animation-duration:2.40s;animation-delay:1.6s}
.game-world .gw-confetti i:nth-child(17){left:81%;--r:-580deg;animation-duration:2.85s;animation-delay:0.5s}
.game-world .gw-confetti i:nth-child(18){left:26%;--r:600deg;animation-duration:3.30s;animation-delay:1.8s}
@keyframes gw-fall{0%{transform:translateY(0) rotate(0);opacity:0}12%{opacity:1}85%{opacity:1}100%{transform:translateY(150px) translateX(14px) rotate(var(--r));opacity:0}}
@media(prefers-reduced-motion:reduce){.game-world .gw-confetti{display:none}.game-world .cm-beam,.game-world .pw-stars::before,.game-world .pw-stars::after{animation:none}}
/* スコアボード */
.game-world #game-score{padding-bottom:14px}
.game-world .gw-sb{overflow-x:auto;padding:10px;border-radius:14px;border:3px solid #cfd6e4;background:linear-gradient(180deg,#0e3322,#08241a);box-shadow:inset 0 0 0 2px #04150e,inset 0 0 36px rgba(0,0,0,.45),0 8px 24px rgba(0,0,0,.4)}
.game-world .gw-sb-table.long{min-width:620px}
.game-world .gw-sb-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:3px;font-variant-numeric:tabular-nums}
.game-world .gw-sb-table th:first-child{width:200px}.game-world .gw-sb-table th.gw-sb-total,.game-world .gw-sb-table td.gw-sb-total{width:56px}
.game-world .gw-sb-table thead th{height:26px;padding:0;text-align:center;font-size:13px;font-weight:700;color:#9fd4b0;border:0}
.game-world .gw-sb-table thead th.gw-sb-total{color:var(--pw-gold)}
.game-world .gw-sb-table tbody th,.game-world .gw-sb-table tbody td{height:44px;padding:0;border:0;border-radius:5px;text-align:center;background:rgba(0,0,0,.38);color:rgba(255,255,255,.55);font-size:22px;font-weight:700}
.game-world .gw-sb-table tbody td.run{color:#fff}.game-world .gw-sb-table tbody td.skip{color:rgba(255,255,255,.35)}
.game-world .gw-sb-table tbody th{height:44px;padding:0 8px;box-sizing:border-box;text-align:left;font-size:15px;color:#fff;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.game-world .gw-sb-table tbody th span{vertical-align:middle}
.game-world .gw-sb-side{display:inline-grid;vertical-align:middle;margin-right:8px;place-items:center;width:20px;height:20px;border-radius:5px;background:rgba(255,255,255,.14);font-style:normal;font-size:11px;font-weight:800;color:#cfe3d6}
.game-world .gw-sb-table td.gw-sb-total{background:#1c1305;border:1px solid rgba(255,214,102,.5);color:var(--pw-gold);font-size:28px;font-weight:900;text-shadow:0 0 12px rgba(255,190,40,.7)}
.game-world .gw-sb-table tr:not(.is-win) td.gw-sb-total{color:#ffe9a8;text-shadow:none}
.game-world .gw-sb-table tr.is-win td.gw-sb-total{background:linear-gradient(180deg,#3a2606,#1c1305);box-shadow:0 0 14px rgba(255,190,40,.45)}
@media(max-width:700px){
.game-world .gw-win{top:-27px;font-size:15px;padding:2px 11px}.game-world .gw-confetti{top:-30px;width:150px;margin-left:-75px;height:160px}
.game-world .gw-sb{padding:6px}.game-world .gw-sb-table{border-spacing:2px}
.game-world .gw-sb-table th:first-child{width:92px}.game-world .gw-sb-table th.gw-sb-total,.game-world .gw-sb-table td.gw-sb-total{width:38px}
.game-world .gw-sb-table thead th{font-size:11px}
.game-world .gw-sb-table tbody th,.game-world .gw-sb-table tbody td{height:34px;font-size:16px}
.game-world .gw-sb-table tbody th{height:34px;padding:0 4px;font-size:11px}.game-world .gw-sb-side{width:15px;height:15px;margin-right:4px;font-size:9px}
.game-world .gw-sb-table td.gw-sb-total{font-size:20px}
}

/* 新規登録 /signup の4カード: 色の制限なし。ただし周りの白・ブランド青になじむよう、上半分にやわらかい配色の場面イラスト(選手=夕方の球場、無所属=青空、審判=夜のライト、チーム=旗のもと)、下半分は白地に濃い青の文字。 */
.s-signup-options .s-signup-option{position:relative;isolation:isolate;overflow:hidden;justify-content:flex-start;padding:22px;background:#fff;border:1px solid #d4e0f5;border-radius:18px;color:#244378;box-shadow:0 6px 18px #254dea0f;transition:transform .2s,box-shadow .2s,border-color .2s}
.s-signup-options .s-signup-option:hover{transform:translateY(-3px);box-shadow:0 14px 30px #254dea24;border-color:#7798ee}
.s-signup-options .so-art{display:block;flex-shrink:0;align-self:stretch;overflow:hidden;aspect-ratio:16/9;margin:-22px -22px 20px;background:#edf3ff}
.s-signup-options .so-bg{display:block;width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .5s}
.s-signup-options .s-signup-option:hover .so-bg{transform:scale(1.04)}
.s-signup-options .s-option-top{position:absolute;top:14px;left:16px;margin:0}
.s-signup-options .s-option-top small{display:inline-block;padding:3px 12px;border-radius:999px;background:#ffffffe6;border:1px solid #d4e0f5;color:var(--brand-vivid,#254dea);font-size:13px;font-weight:800;letter-spacing:.12em}
.s-signup-options .s-signup-option h2{color:#244378;margin:0 0 8px;font-size:21px;line-height:1.5;text-shadow:none}
.s-signup-options .s-signup-option p{color:#566b8d;margin:0 0 18px;font-size:14px;line-height:1.85;text-shadow:none}
.s-signup-options .s-option-arrow{margin-top:auto;padding-top:14px;color:var(--brand-vivid,#254dea);font-weight:800;display:flex;align-items:center;gap:6px}
.s-signup-options .s-option-arrow .ui-icon{width:18px;height:18px}
@media(max-width:760px){.s-signup-options .s-signup-option{padding:20px}.s-signup-options .so-art{margin:-20px -20px 18px}}
@media(prefers-reduced-motion:reduce){.s-signup-options .s-signup-option,.s-signup-options .so-bg{transition:none}.s-signup-options .s-signup-option:hover{transform:none}.s-signup-options .s-signup-option:hover .so-bg{transform:none}}
/* 押せないボタンの上のカーソル: 基本CSSの「待機(ぐるぐる)」ではなく通常の「禁止」にする */
button:disabled,input:disabled,select:disabled,textarea:disabled,.button:disabled{cursor:not-allowed}
/* スコアブック入力: 前の打者の入力内容(小さく) */
.bk-prev{display:flex;flex-wrap:wrap;gap:0 4px;align-items:baseline;margin:0 0 8px;padding:5px 10px;border-radius:8px;background:#f2f6ff;color:#4a5b7a;font-size:12px;line-height:1.5}.bk-prev b{font-weight:800;margin-right:2px}.bk-prev b::after{content:'：'}.bk-prev span+span::before,.bk-prev i+span::before{content:'・';margin-right:4px}.bk-prev i{font-style:normal;margin-left:-2px}
/* スコアブック入力: クイック記録モードのチェック(下の左端) */
.bk-sheet .bk-actions .bk-quick{display:inline-flex;align-items:center;gap:6px;margin-right:auto;font-size:13px;font-weight:700;color:#3d4d6b;cursor:pointer;white-space:nowrap}.bk-sheet .bk-actions .bk-quick input{width:18px;height:18px;margin:0;accent-color:#335ac0}
.bk-sheet .bk-actions .bk-quick + .bk-del{margin-right:0}
@media(max-width:600px){.bk-sheet .bk-actions .bk-quick{flex:0 0 100%;margin-bottom:2px}}
/* スコアブック入力: 表の見出しのイニングごとのアウト数 */
.bk-table thead th .bk-outs{display:block;margin-top:1px;font-size:10px;font-weight:700;line-height:1.2;color:#6a7a96}.bk-table thead th .bk-outs.full{color:#1f7a45}.bk-table thead th .bk-outs.over{color:#d6334a}

/* チーム公開ページ(夜空): 試合結果の札。明るい背景に白い字で読めなかったので、暗い背景に合わせた色にする */
.team-world .event-result.win{background:color-mix(in srgb,var(--brand) 85%,#000)}
.team-world .event-result.lose{background:rgba(255,255,255,.12);color:#e9eefc}
.team-world .event-result.draw{background:rgba(255,255,255,.1);color:#e9eefc}
.team-world .event-result b{color:#fff}
.team-world :is(.public-games,.near-post) .event-result em,.team-world .event-result em{background:#fff;color:#17335c}
.team-world .event-result.lose em,.team-world .event-result.draw em{background:rgba(255,255,255,.22);color:#fff}
/* 年度別の勝率: 年が多くてもスマホの幅から出ないように。文字を小さくして1本ずつの幅を詰め、それでも足りないときだけ横にスクロールする */
.team-world .tw-bars{overflow-x:auto;overflow-y:hidden;gap:4px;padding-bottom:2px;-webkit-overflow-scrolling:touch}
.team-world .tw-bars li{flex:1 0 24px;min-width:24px}
.team-world .tw-bars b,.team-world .tw-bars small{white-space:nowrap}
@media(max-width:700px){.team-world .tw-bars{gap:3px}.team-world .tw-bars b,.team-world .tw-bars small{font-size:10px;letter-spacing:-.02em}}
/* 「地域なし」(チーム作成): チェックと制限の説明 */
.area-none{margin-top:12px}
.area-none-note{margin-top:8px;padding:10px 12px;border-radius:8px;background:#eef3ff;font-size:13px;line-height:1.7}
.area-none-note p{margin:0}
.area-none-note ul{margin:4px 0 0;padding-left:18px}
.area-none-list{margin:8px 0 12px;padding-left:20px;line-height:1.9}

/* 管理者アプリの「ユーザーとしてログイン」中の帯 (admin-view.js) */
.admin-view-bar{position:sticky;top:0;z-index:100000;display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 12px;background:#d6334a;color:#fff;font-size:14px;font-weight:700;text-align:center}
.admin-view-bar .admin-view-end{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:8px;background:#fff;color:#d6334a;font-size:13px;font-weight:700}

/* /school/plan の再構成（2026-10-30）: 要約カード（金×紺）と「必ず確認」「参考情報」の2グループ。この画面は色の制限なし */
.school-plan-page .plan-hero{background:linear-gradient(160deg,#0f2447 0%,#17335c 100%);color:#fff;border:1px solid #b98400;box-shadow:0 0 0 3px rgba(232,184,46,.25)}
.school-plan-page .plan-hero.is-basic{background:linear-gradient(160deg,#3a4658 0%,#4d596b 100%);border-color:#8591a3;box-shadow:none}
.school-plan-page .plan-hero .panel-title,.school-plan-page .plan-hero .school-register-help{color:#e8eefb}
.school-plan-page .plan-hero .panel-title-icon{color:#f6c33b}
.plan-hero-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:8px 0 12px}
.plan-hero-item{display:flex;flex-direction:column;gap:4px;padding:16px;border-radius:8px;background:rgba(255,255,255,.08);border:1px solid rgba(246,195,59,.45)}
.plan-hero-label{font-size:13px;color:#c9d6ee;font-weight:700}
.plan-hero-main{font-size:28px;line-height:1.3;font-weight:800;color:#ffe08a;overflow-wrap:anywhere}
.plan-hero.is-basic .plan-hero-main{color:#fff}
.plan-hero-sub{font-size:15px;font-weight:700;color:#fff}
.plan-group{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:28px 0 12px;padding:10px 14px;border-radius:8px;font-size:18px}
.plan-group span{display:inline-flex;align-items:center;gap:8px;font-weight:800}.plan-group small{font-size:13px;font-weight:400}
.plan-group-main{background:#fff4d1;border-left:6px solid #e8b82e;color:#5a3d00}
.plan-group-sub{background:#eef2f8;border-left:6px solid #9aa8bd;color:#3b4a60;cursor:pointer;list-style:none}
.plan-group-ref>summary::-webkit-details-marker{display:none}
@media(max-width:600px){.plan-hero-grid{grid-template-columns:1fr}.plan-hero-main{font-size:24px}}
.school-plan-page .plan-intro{grid-template-columns:minmax(0,1fr) 220px;padding:20px 28px;margin:8px 0 20px}
.plan-intro-copy{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0}
.plan-intro-chip{display:inline-flex;align-items:center;gap:6px;margin:0;padding:4px 12px;border-radius:8px;background:#e1ebff;color:var(--brand);font-size:14px;font-weight:700}
.school-plan-page .plan-intro h1{margin:0;font-size:28px;line-height:1.4}.school-plan-page .plan-intro p:last-child{margin:0;font-size:15px}
.school-plan-page .plan-intro .school-register-intro-image{max-height:110px;object-fit:contain;justify-self:end}
@media(max-width:600px){.school-plan-page .plan-intro{grid-template-columns:1fr;padding:18px}.school-plan-page .plan-intro .school-register-intro-image{display:none}}
.school-registration.school-in-app .school-register-content{padding-top:20px}
.school-registration .school-made-title{font-size:26px}

/* /school/plan: 基本プラン（無料）は「できなくなった」ではなく「ずっと使える」見せ方（南色＋緑）。有料は金。無料と有料のちがいの表 */
.school-plan-page .plan-hero.is-basic{background:linear-gradient(160deg,#0f2447 0%,#17335c 100%);border:1px solid #2fb36b;box-shadow:0 0 0 3px rgba(47,179,107,.2)}
.school-plan-page .plan-hero.is-basic .panel-title-icon{color:#7ee2a8}
.school-plan-page .plan-hero.is-basic .plan-hero-item{border-color:rgba(126,226,168,.5)}
.school-plan-page .plan-hero.is-basic .plan-hero-main{color:#7ee2a8}
.plan-included{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;color:#e8eefb}
.plan-included li{display:flex;align-items:flex-start;gap:8px;font-size:14px;line-height:1.5}
.plan-included .ui-icon{flex:none;width:20px;height:20px;color:#7ee2a8}
.school-plan-page .plan-hero .plan-included+.school-register-help{color:#c9d6ee}
.plan-compare-wrap{overflow-x:auto;border:1px solid #d7e1f5;border-radius:10px;background:#fff}
.plan-compare-table{width:100%;border-collapse:collapse;font-size:14px;color:#243657}
.plan-compare-table th,.plan-compare-table td{padding:10px 12px;border-bottom:1px solid #e8edf7;text-align:center;vertical-align:middle}
.plan-compare-table tbody th{text-align:left;font-weight:700;background:#f7f9fd}
.plan-compare-table th small{display:block;font-weight:400;color:#63738e;font-size:12px}
.plan-compare-table thead th{background:#eef3ff;color:#335ac0;font-size:14px}
.plan-compare-table thead th.is-now{background:#335ac0;color:#fff}
.plan-compare-table thead th.is-now small{color:#ffe08a;font-weight:700}
.plan-compare-table td.is-now{background:#fff8e1;font-weight:700}
.plan-compare-table tr:last-child>*{border-bottom:0}
.plan-compare-table td strong{color:#8a5a00}
@media(max-width:600px){.plan-included{grid-template-columns:1fr}.plan-compare-table{font-size:13px}.plan-compare-table th,.plan-compare-table td{padding:8px 6px}}
.plan-compare-table thead th{white-space:nowrap}.plan-compare-table tbody th{width:38%}
/* 中継URL(発行後): URLは折り返して表示 */
.live-url-text{word-break:break-all;color:#335ac0}
/* NEXT GAME の中継URL: 1行(長いURLは省略)+コピーのアイコンボタン */
.next-live-url{display:flex;align-items:center;gap:8px;margin:0;min-width:0}.next-live-url .ui-icon{flex:none}.next-live-url strong{flex:none}
.next-live-url-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#335ac0;font-size:13px}
/* 試合結果の「動画用画像」ダイアログ: 16:9 のプレビュー(透明部分は市松模様)、用途・見せ方の切り替え、YouTube 概要欄の文 */
.video-dialog{width:min(900px,calc(100vw - 24px))}
.video-choices{display:flex;flex-wrap:wrap;gap:0 28px}
.video-choices .ground-choice{margin-bottom:8px}
.video-message{margin:0 0 8px}
.video-current{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 8px}
.video-current small{color:#5b677d}
.video-stage{border-radius:8px;overflow:hidden;background-color:#e4eaf4;background-image:conic-gradient(#c9d3e4 25%,transparent 0 50%,#c9d3e4 0 75%,transparent 0);background-size:24px 24px;border:1px solid #cbd8ee}
.video-stage img{display:block;width:100%;height:auto;aspect-ratio:16/9}
.video-stage img.is-loading{opacity:.45}
.video-text{margin-top:20px;padding-top:16px;border-top:1px solid #e1e8f4}
.video-text .panel-title{display:flex;align-items:center;gap:12px;font-size:16px}
.video-text .panel-title-icon{margin:0}
.video-text textarea{font-size:13px;line-height:1.6}
/* 動画用画像のハイライト字幕: 打席の一覧(チェックで選ぶ・目のボタンでプレビュー) */
.video-dialog [hidden]{display:none!important}
.video-captions{margin-top:12px}
.video-caption-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}
.video-caption-tools>span{margin-right:auto;font-weight:700}
.video-caption-list{list-style:none;margin:0;padding:0;max-height:300px;overflow:auto;border:1px solid #cbd8ee;border-radius:8px}
.video-caption-list li{display:flex;align-items:center;gap:8px;padding:6px 8px 6px 12px;border-top:1px solid #e1e8f4}
.video-caption-list li:first-child{border-top:0}
.video-caption-list li.is-current{background:var(--attn-tint,#fff1e8)}
.video-caption-list label{display:flex;flex:1;align-items:center;gap:10px;min-width:0;cursor:pointer}
.video-caption-list input{flex:none;width:20px;height:20px}
.video-caption-inning{flex:none;min-width:52px;font-weight:700;color:#335ac0}
.video-caption-text{min-width:0;overflow-wrap:anywhere}
.video-caption-text b{margin-right:8px}
/* 動画用画像: approved broadcast artwork, real-record studio controls. */
.video-studio{width:100%;max-width:1360px}
.video-studio [hidden]{display:none!important}
.video-back{margin:0 0 12px}
.studio-toolbar{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px;margin:12px 0;padding:10px;background:#f3f6fb;border:1px solid #d8e2f1;border-radius:8px}
.studio-toolbar>.button{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:8px;row-gap:0;justify-content:start;align-items:center;height:auto;min-height:52px;padding:6px 14px;line-height:1.3;text-align:left}
.studio-toolbar>.button>.ui-icon{grid-row:1/3}
.studio-toolbar>.button span{font-weight:700}
.studio-toolbar>.button small{grid-column:2;font-size:11px;font-weight:400;color:#5b677d;min-height:14px}
.studio-toolbar-end{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto}
.studio-preview-column{min-width:0}
.studio-adjust{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 8px}
.studio-adjust .m-help{margin:0}
.studio-adjust [aria-pressed=true]{background:#335ac0;border-color:#335ac0;color:#fff}
.studio-stage{aspect-ratio:16/9;position:relative}
.studio-stage.is-adjusting [data-part]{cursor:move}
.studio-stage.is-adjusting .part-x{cursor:pointer}
.studio-stage.is-adjusting .part-x:hover circle{fill:#a8192f}
.studio-stage.is-adjusting [data-part]:hover{filter:drop-shadow(0 0 6px #f6c33b) drop-shadow(0 0 2px #f6c33b)}
.studio-stage.is-adjusting [data-studio-art]{touch-action:none;user-select:none}
.studio-stage [data-studio-background],.studio-stage [data-studio-art]{position:absolute;inset:0}
.studio-stage svg,.studio-stage [data-studio-background] img{display:block;width:100%;height:100%;object-fit:cover}
.studio-pop{box-sizing:border-box;width:min(460px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:18px;border:1px solid #cbd8ee;border-radius:8px;color:#17335c;background:#fff;margin:auto 24px 24px auto;overflow:auto}
.studio-pop::backdrop{background:rgba(15,32,62,.12)}
.studio-pop .sns-dialog-head.is-draggable{cursor:move;touch-action:none;user-select:none}
.studio-pop .sns-dialog-head.is-draggable h3::after{content:"\2630";margin-left:8px;font-size:12px;color:#8aa0c5}
.studio-pop .ground-options{gap:6px}
.studio-pop .m-field{margin:14px 0}
.studio-pop input[type=color]{width:70px;padding:3px}
.studio-color-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.studio-pop input[type=range]{width:100%;accent-color:#335ac0}
.studio-pop input[type=file]{max-width:100%;font-size:12px}
.studio-check-title{margin:14px 0 0;font-size:13px;color:#335ac0}
.studio-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;font-size:13px;margin:12px 0}
.studio-checks label{display:flex;gap:8px;align-items:center}
.studio-checks input{flex:none;width:18px;height:18px;accent-color:#335ac0}
.studio-scenes{margin-top:24px;padding-top:16px;border-top:1px solid #e1e8f4}
.studio-scenes .panel-title,.video-text .panel-title{display:flex;align-items:center;gap:12px;margin:0 0 12px;font-size:16px}
.studio-scenes .panel-title-icon,.video-text .panel-title-icon{flex:none;margin:0}
.studio-scene-tools{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.studio-scene-tools .m-field{max-width:320px}
.studio-scene-tools .m-field{margin:0}
.studio-scenes .m-actions{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px;margin:0}
.studio-count{margin:12px 0 8px}
.studio-edit-list{margin:12px 0;border:1px solid #cbd8ee;border-radius:8px;overflow:hidden}
.studio-edit-list:empty{display:none}
.studio-time-row{display:grid;grid-template-columns:minmax(0,1fr) 120px;align-items:center;gap:12px;padding:10px 12px;border-top:1px solid #e1e8f4}
.studio-time-row:first-child{border-top:0}
.studio-time-row span{min-width:0;overflow-wrap:anywhere;font-size:13px;font-weight:700}
.studio-time-row small{display:block;margin-top:2px;font-weight:400;color:#64758e}
.studio-time-row input{width:100%;text-align:center;font-variant-numeric:tabular-nums}
.studio-chapter-out{display:grid;gap:8px}
.studio-chapter-out .button{justify-self:start}
.studio-measure{position:fixed;left:-10000px;top:0;width:1920px;height:1080px;pointer-events:none}
.studio-measure svg{width:1920px;height:1080px}
@media(max-width:700px){.video-studio{padding:14px}.studio-toolbar>.button{flex:1 1 calc(50% - 8px)}.studio-toolbar-end{margin-left:0;width:100%}.studio-toolbar-end .button{flex:1}.studio-scene-tools{grid-template-columns:minmax(0,1fr)}.studio-time-row{grid-template-columns:minmax(0,1fr) 96px;gap:8px}.studio-checks{grid-template-columns:minmax(0,1fr)}.studio-pop{width:100vw;max-width:none;margin:auto 0 0;border-radius:12px 12px 0 0}}

/* 本日の活躍度と金の枠 (MVP、いなければ決勝打。server/docs/team-board.md) */
@keyframes star-glow{0%,100%{box-shadow:0 0 6px rgba(246,195,59,.55)}50%{box-shadow:0 0 16px rgba(246,195,59,.95)}}
.is-star{border:2px solid #f6c33b;border-radius:8px;animation:star-glow 2.4s ease-in-out infinite}
.game-awards div.is-star{padding:3px 8px;background:rgba(246,195,59,.12)}
.game-awards div.is-star dt{background:linear-gradient(180deg,#ffe28a,#e8a317);color:#2b1a00}
@media (prefers-reduced-motion:reduce){.is-star{animation:none;box-shadow:0 0 8px rgba(246,195,59,.7)}}
.score-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.score-row{display:flex;align-items:center;gap:8px;min-width:0;padding:8px 10px;border-radius:8px;background:rgba(127,143,170,.1)}
.score-row.is-star{background:rgba(246,195,59,.12)}
.score-rank{flex:none;width:22px;text-align:center;font-size:15px}
.score-row .row-photo{flex:none;margin:0}
.score-who{flex:1;min-width:0}
.score-name{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-weight:800;overflow-wrap:anywhere}
.score-tag{padding:1px 7px;border-radius:6px;background:rgba(246,195,59,.22);color:inherit;font-size:12px;font-style:normal;font-weight:800}
.score-parts{display:flex;flex-wrap:wrap;gap:0 10px;font-size:12px;opacity:.82}
.score-parts b{font-weight:800}
.score-points{flex:none;font-size:22px;font-variant-numeric:tabular-nums}
.score-points small{margin-left:1px;font-size:12px}
.score-best{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0 0 10px}
.score-best a{display:inline-flex;align-items:baseline;gap:8px;color:inherit}
.score-best strong{color:var(--pw-gold,#f6c33b);font-size:26px}
.score-bars{display:flex;align-items:flex-end;gap:3px;height:84px}
.score-bar{display:flex;flex:1;align-items:flex-end;max-width:24px;height:100%}
.score-bar i{display:block;width:100%;border-radius:3px 3px 0 0;background:rgba(255,255,255,.36)}
.score-bar.is-best i{background:linear-gradient(180deg,#ffe28a,#e8a317);box-shadow:0 0 8px rgba(246,195,59,.8)}
.rx-mvp-hint{align-items:center;margin-bottom:8px}.rx-mvp-hint>span{font-size:13px;font-weight:800}

/* 記録の入力: 大きな画面で入力 (PC。表だけをブラウザの画面いっぱいに。入力のシートはこの上に出る) */
.rx-wide-button{display:flex;margin:0 0 8px auto}
@media(min-width:900px){.m-panel>.rx-wide-button{position:absolute;top:22px;right:26px;margin:0}.m-panel:has(>.rx-wide-button){position:relative}.m-panel>.panel-title:has(+.rx-wide-button){padding-right:190px}}
body.rx-wide-open{overflow:hidden}
.m-panel.rx-wide{position:fixed;inset:0;z-index:900;display:flex;flex-direction:column;margin:0;padding:12px 20px;border-radius:0;background:#fff}
.m-panel.rx-wide>.panel-title{margin:0;padding-right:190px}
.m-panel.rx-wide>.rx-wide-button{position:absolute;top:10px;right:20px;margin:0}
.rx-wide>.m-help,.rx-wide>.rx-chips,.rx-wide>.rx-card,.rx-wide>.rx-add{display:none}
.rx-wide>.rx-table-wrap{flex:1;min-height:0;margin-top:12px;overflow:auto}
.rx-wide .sx-table,.rx-wide .bk-table{width:100%;font-size:16px}
.rx-wide .sx-table th,.rx-wide .sx-table td{padding:8px}
.rx-wide .bk-table td{min-width:76px}
.rx-wide .sx-val{min-width:40px;min-height:40px;font-size:17px}
.rx-wide thead th{position:sticky;top:0;z-index:2;background:#f3f6fc}
.rx-wide thead th.sx-order,.rx-wide thead th.sx-player,.rx-wide thead th.bk-order,.rx-wide thead th.bk-pos,.rx-wide thead th.bk-name{z-index:3}
@media(max-width:899px){.m-panel:not(.rx-wide)>.rx-wide-button{display:none}}

/* 打席の結果 (試合結果、スマホ): 写真を出さず、長い名前は「…」で切って、イニングの欄を広く取る */
@media(max-width:700px){
.rx-grid.readonly.rx-result-grid .rx-result-player,.rx-grid.readonly.rx-result-grid thead tr:first-child th:first-child{width:96px}
.rx-result-grid thead tr:first-child th:first-child{padding-left:4px;overflow:hidden;font-size:11px;white-space:nowrap}
.rx-grid.readonly.rx-result-grid tbody th{overflow:hidden;padding:6px 4px;font-size:13px;white-space:nowrap;text-overflow:ellipsis}
.rx-result-grid tbody th .row-photo{display:none}
.rx-result-grid tbody th .rx-order{width:1.2em}
.rx-result-grid tbody th .line-badge{margin:0 2px 0 0}
}

/* メインメニュー (server/docs/menu-home.md): 大きなカードと「今やること」 */
.menu-shell{display:block}.menu-shell main{max-width:900px;margin:0 auto}
@media(min-width:701px){.menu-shell .m-side{display:none}}
.menu-title{margin:0 0 12px;font-size:24px}
.menu-todo{display:grid;gap:8px}.menu-todo .panel-title{margin:0 0 4px}.menu-todo .m-notice{margin:0;font-size:16px}
.menu-todo .menu-next{background:#f2f6ff;border:1px solid #b9c9ee;color:#17335c}.menu-next-body{display:flex;align-items:center;flex-wrap:wrap;gap:2px 10px;min-width:0}.menu-next-tag{color:#335ac0;font-weight:800;letter-spacing:.04em}.menu-next-vs,.menu-next-venue{display:inline-flex;align-items:center;gap:4px;min-width:0}.menu-next-venue svg{width:16px;height:16px}.menu-next-logo{width:24px;height:24px;border-radius:50%;object-fit:cover;flex:none}
.menu-done{display:flex;align-items:center;gap:6px;margin:0;color:var(--ok-text);font-size:16px;font-weight:700}
.menu-readiness{display:grid;gap:8px;margin-top:4px}.menu-sub{display:flex;align-items:center;gap:6px;margin:6px 0 0;font-size:16px;font-weight:800;color:var(--attn-strong)}.menu-sub svg{width:20px;height:20px}.menu-sub .panel-count{color:var(--attn-strong);font-weight:800}
.menu-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
.menu-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:128px;padding:14px 8px;border:1px solid #c9d5ef;border-radius:8px;background:#fff;color:var(--brand-deep);text-align:center}
.menu-card:hover{border-color:var(--brand);background:var(--brand-tint)}
.menu-card .ui-icon{width:40px;height:40px;color:var(--brand)}
.menu-card strong{font-size:19px;overflow-wrap:anywhere}
.menu-card .side-count{position:absolute;top:8px;right:8px;margin:0;font-size:14px}
.menu-full{text-align:center}
@media(max-width:700px){.menu-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.menu-card{min-height:116px}.menu-card strong{font-size:min(16px,4.2vw);letter-spacing:0}}

/* スコアブック入力: 打数〜盗塁の列をたたむ */
.bk-sum-off .bk-sum{display:none}
.bk-table .bk-sum-tog,.rx-wide .bk-table td.bk-sum-tog{width:16px;min-width:16px;max-width:16px;padding:0}
.bk-sum-btn{display:grid;place-items:center;width:16px;min-height:36px;padding:0;border:0;border-radius:4px;background:none;color:var(--brand)}
.bk-sum-btn:hover{background:var(--brand-tint)}
.bk-sum-btn .ui-icon{width:14px;height:14px;transform:rotate(180deg)}.bk-sum-off .bk-sum-btn .ui-icon{transform:none}

/* 打席の結果の色 (白い面用。LIVE の結果画面の色を濃くしたもの): 本塁打＝赤い背景に白、安打＝金の背景に黒、出塁＝緑、アウト＝灰。結果の表は枠なし、入力の表はボタンなので薄い枠を残す */
.pa-hr{color:#fff;background:#d6334a;border-radius:4px;padding:0 5px;font-weight:900}.pa-h{color:#111;background:#f6c33b;border-radius:4px;padding:0 5px;font-weight:800}.pa-bb{color:#0f7d46;font-weight:800}.pa-o{color:#667085;font-weight:500}
.rx-grid.readonly .rx-pa{min-height:0;margin:0;padding:2px 0;border:0;border-radius:0;background:none}
/* 結果の表(読み取り用)でも、安打＝金の背景に黒字、本塁打＝赤い背景に白字を残す(上の background:none に負けないよう詳しく指定) */
.rx-grid.readonly .rx-pa.pa-h{background:#f6c33b;color:#111;border-radius:4px;padding:2px 6px}.rx-grid.readonly .rx-pa.pa-hr{background:#d6334a;color:#fff;border-radius:4px;padding:2px 6px}
.pa-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:8px 0 0;font-size:13px}.pa-legend b{font-weight:inherit}.pa-legend .pa-hr{font-weight:900}.pa-legend .pa-h,.pa-legend .pa-bb{font-weight:800}

/* ---- メインメニューのニュース (server/docs/menu-home.md) ---- */
.menu-news { margin: 0 0 12px; background: #fff; border: 1px solid var(--line, #d9e2f2); border-radius: 8px; overflow: hidden; }
.menu-news-view { position: relative; height: 48px; overflow: hidden; }
.menu-news-item { position: absolute; inset: 0; display: flex; align-items: center; gap: 8px; padding: 0 12px; color: inherit; font-size: 16px; line-height: 1.4; overflow: hidden; visibility: hidden; }
.menu-news-item > .menu-news-text { flex: 1 1 0; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.menu-news-run { display: inline; }
.menu-news.is-marquee .menu-news-item > .menu-news-text { text-overflow: clip; }
.menu-news.is-marquee .menu-news-run { display: inline-block; will-change: transform; }
.menu-news-item.is-current { visibility: visible; }
.menu-news-tag { flex: none; padding: 2px 8px; border-radius: 4px; background: #e8efff; color: #335ac0; font-size: 12px; }
.menu-news-tag.is-attn { background: var(--attn-tint, #fff1e6); color: var(--attn-strong, #c24a06); }
.is-rolling .menu-news-item { visibility: visible; transform: translateY(100%); transition: transform .5s ease; }
.is-rolling .menu-news-item.is-current { transform: translateY(0); }
.is-rolling .menu-news-item.is-leaving { transform: translateY(-100%); }
.is-rolling.no-motion .menu-news-item { transition: none; }

/* 功労者を決める: the line score's team column on the left, and the buttons on the 活躍度 cards (S size 36px, 8px corners) */
.honors-info .rec-linescore thead th:first-child{text-align:left;padding-left:12px}
.honors-scores .score-row{flex-wrap:wrap}
.honors-scores .honor-chips{display:flex;flex:0 0 100%;flex-wrap:wrap;gap:6px;padding-left:30px}
.honors-scores .honor-chip{min-height:36px;padding:4px 12px;font-size:13px;border-radius:8px}
.honors-scores .honor-chip[aria-pressed="true"]{background:#335ac0;border-color:#335ac0;color:#fff}
/* 功労者を決める: the choice summary sits on the white panel, so the board's white-on-dark award colours are turned dark */
.honors-summary{margin:12px 0 0}
.honors-summary dt{background:#eaf0ff;color:#335ac0}
.honors-summary dd{color:#1f2733}
.honors-summary div.is-star dt{background:linear-gradient(180deg,#ffe28a,#e8a317);color:#2b1a00}
.honors-summary div.is-star dd{color:#7a4f00}

/* チーム成績の ランク(S〜E): カード右上の「判子」。金・銀・銅は /my トロフィーと同じ金属色(AGENTS.md 色の例外 2026-11-02) */
.rank-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}
.rank-tiles li{position:relative}
.rank-tiles li.has-rank{padding-top:20px}
.rank-top{font-style:normal;font-size:11px;font-weight:700;color:#5d6b82}
.rank-stamp{--rk-ink:#335ac0;--rk-bg:#eef3ff;--rk-edge:#335ac0;position:absolute;top:6px;right:6px;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--rk-bg);border:2px solid var(--rk-edge);box-shadow:0 0 0 2px var(--rk-bg),0 0 0 3.5px var(--rk-edge);color:var(--rk-ink);opacity:.96;animation:rank-stamp-in .42s cubic-bezier(.2,1.4,.4,1) both}
.rank-stamp i{font-style:normal;font:900 18px/1 Georgia,"Times New Roman",serif;text-shadow:0 1px 0 rgba(255,255,255,.6)}
.rank-stamp.rank-S i{font-size:22px}.rank-stamp.big.rank-S i{font-size:37px}
.rank-stamp.big{position:static;width:56px;height:56px;flex:none}.rank-stamp.big i{font-size:30px}
.rank-S{--rk-ink:#7a5600;--rk-bg:linear-gradient(145deg,#fff2b8,#f0bf3c);--rk-edge:#c8940f}
.rank-A{--rk-ink:#4c5663;--rk-bg:linear-gradient(145deg,#fafbfd,#c3cbd6);--rk-edge:#8a95a5}
.rank-B{--rk-ink:#7a3f12;--rk-bg:linear-gradient(145deg,#fbe5cf,#df9f66);--rk-edge:#b0712f}
.rank-C{--rk-ink:#335ac0;--rk-bg:#eef3ff;--rk-edge:#335ac0}
.rank-D{--rk-ink:#4f6b9e;--rk-bg:#f3f6fb;--rk-edge:#8fa3c7}
.rank-E{--rk-ink:#7d8aa0;--rk-bg:#f5f6f8;--rk-edge:#a8b1c0}
.rank-stamp:is(.rank-C,.rank-D,.rank-E){box-shadow:none}
.rank-E.rank-stamp{border-style:dashed}
.rank-overall{display:flex;align-items:center;gap:14px;margin:0 0 12px;padding:12px 14px;border:1px solid #dbe4f5;border-radius:12px;background:#fff}
.rank-overall strong{display:block;font-size:16px;color:#1d2b4a}.rank-overall small{font-size:12px;color:#5d6b82}
.rank-pending{display:flex;align-items:center;gap:6px}
.rank-legend{margin-top:12px;font-size:13px;color:#33415c}.rank-legend summary{cursor:pointer;font-weight:700}
.rank-legend ul{display:flex;flex-wrap:wrap;gap:6px 14px;margin:8px 0;padding:0;list-style:none}
.rank-chip.rank-S{font-size:14px}
.rank-chip{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-right:5px;border-radius:50%;border:2px solid var(--rk-edge);background:var(--rk-bg);color:var(--rk-ink);font:900 12px/1 Georgia,serif}
@keyframes rank-stamp-in{from{transform:scale(2.2);opacity:0}to{transform:scale(1);opacity:.96}}
@media (prefers-reduced-motion:reduce){.rank-stamp{animation:none}}
@media (max-width:600px){.rank-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* 予定カード(2026-11-03): 1行目＝日付・開始時間・場所・天気 / 左＝相手のロゴ＋チーム名 / 右＝題名 / 出欠は折りたたみ(∨∧) */
.event-card{display:block}
.event-when{display:flex;flex-wrap:wrap;align-items:center;gap:2px 12px;font-size:14px;color:#47556c}
.event-when>strong{font-size:17px;color:var(--brand-deep)}
.event-when .ui-icon{width:16px;height:16px;vertical-align:-3px;margin-right:3px}
.event-when .event-start,.event-when .event-venue{display:inline-flex;align-items:center;min-width:0;overflow-wrap:anywhere}
.event-when .event-weather{margin:0}
.event-main{display:flex;align-items:flex-start;gap:12px;margin-top:10px}
.event-thumb{flex:none;display:flex;flex-direction:column;align-items:center;gap:4px;width:76px;text-align:center;color:#20365f}
.event-thumb .event-opp-logo{width:52px;height:52px}
.event-thumb-icon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:8px;background:var(--brand-tint2);color:var(--brand)}
.event-thumb-icon .ui-icon{width:28px;height:28px}
.event-thumb-name{max-width:100%;font-size:12px;line-height:1.3;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.event-info{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:4px;color:#20365f}
.event-info .event-title{font-size:16px;overflow-wrap:anywhere}
.event-card.canceled .event-title{text-decoration:line-through;color:#68778c}
.event-outcome{flex:none;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:56px;color:#20365f}
.event-outcome .outcome-mark{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;font-size:18px;font-weight:800;line-height:1;border:2px solid #17335c;background:#fff;color:#17335c}
.event-outcome.lose .outcome-mark{background:#111;border-color:#111;color:#fff}
.event-outcome.draw .outcome-mark{background:#e8ecf3;border-color:#7d8aa0;color:#47556c}
.event-outcome b{font-size:14px;font-weight:600;white-space:nowrap}
.event-answer{margin-top:12px;border-top:1px solid #e5eaf2;padding-top:8px}
.event-answer>summary{display:flex;align-items:center;gap:12px;list-style:none;cursor:pointer;min-height:36px;font-size:14px;font-weight:700;color:var(--brand-deep)}
.event-answer>summary::-webkit-details-marker{display:none}
.event-answer .event-brief{margin-left:auto;font-weight:600;color:#5d6b82;white-space:nowrap}
.event-answer .answer-chevron{flex:none;display:inline-flex}
.event-answer .answer-chevron .ui-icon{width:22px;height:22px;color:var(--brand);transform:rotate(90deg);transition:transform .15s}
.event-answer[open] .answer-chevron .ui-icon{transform:rotate(-90deg)}
.event-answer>summary:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:6px}
.event-answer-body .event-counts,.event-answer-body .answer-buttons{margin-left:0}
.event-answer-body .event-counts{margin-top:6px}
.event-card>.event-my-answer{margin-left:0}
@media(max-width:600px){
 .event-thumb{width:64px}.event-thumb .event-opp-logo,.event-thumb-icon{width:44px;height:44px}
 .event-when .event-weather small{display:none}
 .event-card .event-tags :is(.official-badge,.rating-badge){font-size:0;gap:0;padding:4px 6px}
}
.event-info .event-tags:not(:has(*)){display:none}
.event-go{flex:none;align-self:center;display:inline-flex;color:var(--brand)}.event-go .ui-icon{width:24px;height:24px}
.event-card .event-counts .count-short{display:none}
/* メンバーカードの肩書き・権限は背景なしのグレー文字、監督だけ従来の塗り */
.member-card-badge .member-role:not(.director){padding:2px 4px;background:none;color:#7d8aa0;font-weight:700}
.event-info .event-h2h{font-size:13px;color:#5d6b82}
/* メンバーカードの背景＝チームが選んだ背景パターン。模様の色はポジション色(--pos)を薄く */
.member-card{--pat:var(--pos,#7d8aa0);--pat-amt:9%}.member-card.pit{--pos:#7a5bc7}.member-card.cat{--pos:#2f6fd6}.member-card.inf{--pos:#1f9d55}.member-card.out{--pos:#c9801a}
/* メインメニューのニュース＝球場の電光掲示板: 濃紺の黒に、LED風のライムグリーン */
.menu-news{background:#0f2447;border-color:#24407a;box-shadow:inset 0 0 0 1px #00000040}
.menu-news .menu-news-item{color:#7cff8a;text-shadow:0 0 6px #7cff8a66;font-weight:700;letter-spacing:.02em}
.menu-news .menu-news-item:hover{color:#b5ffbc}
.menu-news .menu-news-tag{background:transparent;color:#7cff8a;border:1px solid #7cff8a99;text-shadow:none;font-weight:700}
.menu-news .menu-news-tag.is-attn{background:transparent;color:#ffb066;border-color:#ffb066aa}
.menu-news .menu-news-item:focus-visible{outline:2px solid #7cff8a;outline-offset:-3px}

/* 記録クイズ(/my/quiz): ステージごとの問題一覧。いまの問題はオレンジの印、クリア済みは緑 */
.quiz-progress{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 4px}
.quiz-progress .quiz-bar{flex:1 1 160px;height:10px;border-radius:8px;background:#e3e9f5;overflow:hidden}
.quiz-progress .quiz-bar i{display:block;height:100%;background:#335ac0}
.quiz-cert{display:flex;align-items:center;gap:10px;padding:12px;border-radius:8px;border:1px solid #e0a82e;background:linear-gradient(135deg,#fbe38a,#f4c64f);color:#4a3200;font-weight:800}
.quiz-cert .ui-icon{width:28px;height:28px}
.quiz-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.quiz-item{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:10px 12px;border:1px solid var(--line,#d9e0ee);border-radius:8px;background:#fff}
.quiz-item.is-open{border-color:var(--attn-strong,#c24a06);background:var(--attn-tint,#fff1e8)}
.quiz-item.is-locked{opacity:.6}
.quiz-no{flex:none;min-width:48px;padding:3px 8px;border-radius:8px;background:#335ac0;color:#fff;font-size:13px;font-weight:800;text-align:center}
.quiz-item.is-open .quiz-no{background:var(--attn-strong,#c24a06)}
.quiz-item.is-cleared .quiz-no{background:#1f9d55}
.quiz-body{flex:1 1 150px;min-width:0}
.quiz-body strong{display:block}
.quiz-body small{color:#5b6679}
.quiz-item form{margin:0}
.quiz-state{flex:1 1 100%;font-size:13px;font-weight:700;color:#5b6679;display:flex;align-items:center;gap:6px}
.quiz-state .ui-icon{width:16px;height:16px;flex:none}
.quiz-item .quiz-state:only-of-type{flex-basis:100%}
.quiz-item.is-cleared .quiz-state{color:#14532d;flex:none}

/* 認定記録者(記録クイズ全問クリア): メンバー一覧・選手ページとも金色。メンバー一覧は表示した直後に一度だけ後光が脈打ち光が走り、あとは後光のない静止した金色(2026-11-05 ユーザー指示、動きを減らす設定では最初から静止) */
.member-role.certified{position:relative;overflow:hidden;background:linear-gradient(135deg,#fff0a8 0%,#f3cf55 35%,#e8b82e 62%,#c99100 100%);color:#3b2600;border:1px solid #b98400;box-shadow:inset 0 1px 0 rgba(255,255,255,.65)}
.member-card-badge .member-role.certified:not(.director){padding:2px 10px;background:linear-gradient(135deg,#fff0a8 0%,#f3cf55 35%,#e8b82e 62%,#c99100 100%);color:#3b2600;font-weight:800}
.member-role.certified::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(255,255,255,.75),transparent);display:none}
@keyframes cert-halo{0%,100%{box-shadow:0 1px 6px rgba(232,184,46,.45),0 0 0 0 rgba(232,184,46,.4),inset 0 1px 0 rgba(255,255,255,.65)}50%{box-shadow:0 1px 8px rgba(232,184,46,.75),0 0 14px 3px rgba(246,195,59,.6),inset 0 1px 0 rgba(255,255,255,.65)}}
@media(prefers-reduced-motion:no-preference){.member-role.certified{animation:cert-halo 1.8s ease-in-out 2}.member-role.certified::after{display:block;animation:gold-shine 1.6s ease-in-out .5s 1}}
.player-world .pw-kicker.pw-cert{color:var(--pw-gold,#f6c33b)}
.player-world .pw-kicker.pw-cert b{color:var(--pw-gold,#f6c33b)}

/* 予定の紹介(未ログインで予定のURLを開いたとき・LINEのリンクの先): server/docs/schedule-preview.md */
.schedule-preview{display:grid;gap:10px}
.schedule-preview p{margin:0}
.schedule-preview-team{font-size:20px;font-weight:800;color:#17335c}
.schedule-preview-badge{display:inline-block;padding:2px 12px;border-radius:8px;background:#335ac0;color:#fff;font-size:14px;font-weight:800}
.schedule-preview-badge.is-canceled{background:#d6334a}
.schedule-preview-when,.schedule-preview-title{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:700}
.schedule-preview-when .ui-icon,.schedule-preview-title .ui-icon{width:20px;height:20px;flex:none;color:#335ac0}/* School 소개: マンガでわかる */
.school-manga-body{display:grid;grid-template-columns:minmax(0,300px) 1fr;gap:28px;align-items:center}
.school-manga-cover{padding:0;border:2px solid #17335c;border-radius:12px;overflow:hidden;background:#fff;cursor:pointer;box-shadow:0 6px 18px rgba(23,51,92,.18)}
.school-manga-cover img{display:block;width:100%;height:auto}
.school-manga-side p{margin:0 0 18px;font-size:17px;line-height:1.8}
.school-manga-dialog{width:min(100vw,520px);max-width:none;height:100dvh;max-height:100dvh;margin:auto;padding:0;border:0;background:#0f2447;color:#fff;overflow:hidden}
.school-manga-dialog[open]{display:flex;flex-direction:column}
.school-manga-dialog::backdrop{background:rgba(8,18,40,.85)}
.school-manga-bar{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;font-weight:800}
.school-manga-track{flex:1;min-height:0;display:flex;margin:0;padding:0;list-style:none;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.school-manga-track li{flex:0 0 100%;scroll-snap-align:center;display:flex;align-items:center;justify-content:center;min-width:0}
.school-manga-track img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.school-manga-nav{display:flex;gap:12px;padding:10px 12px calc(10px + env(safe-area-inset-bottom))}
.school-manga-nav .button{flex:1;justify-content:center}
html.manga-open{overflow:hidden}
@media(max-width:600px){.school-manga-body{grid-template-columns:1fr;justify-items:center}.school-manga-cover{width:min(70%,260px)}.school-manga-side{width:100%}.school-manga-side .button{width:100%;justify-content:center}}
.school-manga-dialog .button.outline{background:#0f2447;color:#fff;border:2px solid #fff}.school-manga-dialog .button:disabled{opacity:.45}.school-manga-dialog .button .ui-icon{color:#17335c}

.lu-memo-note{border-left:6px solid var(--attn-strong);background:var(--attn-tint)}.lu-memo-note .panel-title,.lu-memo-note .panel-title-icon{color:var(--attn-strong)}.lu-memo-note .svc-pre{margin:6px 0 0;font-size:16px;font-weight:700;line-height:1.6;color:var(--ink,#17233b)}

.lu-spot strong{display:flex;align-items:center;justify-content:center}.lu-spot .num-tag{flex:none}.lu-spot-name{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.event-lineup{margin:6px 0 0}.lineup-badge{display:inline-flex;align-items:center;gap:5px;min-height:36px;padding:0 12px;border-radius:8px;border:1px solid var(--ok-text,#22834a);background:#fff;color:var(--ok-text,#22834a);font-size:13px;font-weight:800}.lineup-badge .ui-icon{width:15px;height:15px}

.public-figures table:not(.line-score) thead th:first-child{text-align:left}

/* メンバーカードのフッター: 最終ログイン（管理者だけ） */
.member-card-foot{align-self:stretch;margin-top:auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2px 5px;padding:6px 6px 0;border-top:1px solid #e5eaf2;color:#5b6f93;font-size:12px;line-height:1.3}
.member-card-foot .ui-icon{flex:none;width:14px;height:14px}.member-card-foot small{font-size:11px}.member-card-foot b{font-weight:700;color:#20365f}
/* メンバーカードのフッターは白地（背景パターンを敷かない）。下の余白もフッターの中に入れてパターンが見えないようにする */
.member-card:has(.member-card-foot){padding-bottom:0}
.member-card-foot{position:relative;z-index:1;background:#fff;padding-bottom:9px}
@media(max-width:700px){.member-card:has(.member-card-foot){padding-bottom:0}.member-card-foot{padding-bottom:8px}}
/* 注目の記録(予定の詳細)・この試合で達成した記録(試合結果): 達成しそうな／した記録の一覧。注目は青、お祝いは勲章の金・銀・銅(試合結果の金色表示と同じ例外) */
.milestone-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.milestone-list li{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #d5e0f6;border-radius:8px;background:var(--brand-tint3)}
.milestone-mark{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--brand-tint);color:var(--brand)}
.milestone-mark .ui-icon{width:18px;height:18px}
.milestone-body{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;font-size:14px;line-height:1.5;color:#20365f}
.milestone-body strong{font-weight:700}
.milestone-badge{flex:none;min-width:28px;padding:2px 8px;border-radius:6px;font-size:12px;font-weight:700;text-align:center}
.milestone-cheer .milestone-list li{background:#fff}
.milestone-cheer .metal-gold{border-color:#e8b82e;background:#fff7d9}.milestone-cheer .metal-gold .milestone-mark{background:linear-gradient(135deg,#fbe38a,#e0a82e);color:#5b3d00}.milestone-cheer .metal-gold .milestone-badge{background:#e8b82e;color:#4a3200}
.milestone-cheer .metal-silver{border-color:#c4ccd8;background:#f3f5f9}.milestone-cheer .metal-silver .milestone-mark{background:linear-gradient(135deg,#f1f4f8,#b9c2cf);color:#3d4756}.milestone-cheer .metal-silver .milestone-badge{background:#c4ccd8;color:#2b3442}
.milestone-cheer .metal-bronze{border-color:#cf8a4a;background:#fbefe2}.milestone-cheer .metal-bronze .milestone-mark{background:linear-gradient(135deg,#f0c89b,#cf8a4a);color:#5a3010}.milestone-cheer .metal-bronze .milestone-badge{background:#cf8a4a;color:#3f2108}
@media(max-width:600px){.milestone-list li{padding:9px 10px}.milestone-body{font-size:13px}}

/* 選手ひとこと (server/docs/player-notes.md) */
.player-note-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}
.player-note-list{gap:14px}
.player-note-list li{display:grid;gap:8px;padding:0;border:0;background:none}
.player-note-name{display:flex;align-items:center;gap:8px;font-size:13px;color:#17335c}
.player-note-name .member-photo{width:32px;height:32px;border-radius:50%}.player-note-name .member-photo.empty .ui-icon{width:16px;height:16px}
.interviewer{display:flex;align-items:center;gap:10px;margin:0 0 12px}.interviewer>span:last-child{display:grid;line-height:1.3}.interviewer small{font-size:12px;color:#5b6b86}.interviewer b{font-size:15px}
.interviewer .member-photo{width:48px;height:48px;border-radius:50%}.interviewer .member-photo.empty .ui-icon{width:24px;height:24px}
.game-world .interviewer small{color:#c4cfe6}.game-world .interviewer b{color:#fff}
.player-note-body{position:relative;justify-self:start;max-width:100%;margin-left:6px;padding:10px 14px;border:1px solid #c9d6f0;border-radius:14px;background:#edf3ff;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.6}
.player-note-body::before{content:"";position:absolute;left:18px;top:-6px;width:10px;height:10px;background:#edf3ff;border-left:1px solid #c9d6f0;border-top:1px solid #c9d6f0;transform:rotate(45deg)}
.player-note-form{margin-bottom:8px}
.member-card-foot .login-device{display:inline-flex;align-items:center;margin-left:2px;color:#335ac0}

/* School 紹介の「LINE公式アカウント」（LINE 緑の例外、ユーザー指示 2026-11-05）。高さ・角はボタン規格のまま */
.school-line-body{display:grid;grid-template-columns:minmax(0,160px) 1fr;gap:20px;align-items:center;margin:0 0 10px}
.school-line-body img{display:block;width:100%;height:auto;border-radius:12px;border:1px solid #d9e2f3;background:#fff}
.school-line-text>p{margin:0 0 10px}.school-line-text .school-app-points{margin-bottom:14px}
.button.line{background:#06c755;color:#fff;border:1px solid #05a647}.button.line:hover{background:#05b64c;color:#fff;border-color:#049a40}
.button.line:focus-visible{outline:3px solid #05a647;outline-offset:2px}
@media (max-width:600px){.school-line-body{grid-template-columns:1fr}.school-line-body img{max-width:180px;margin:0 auto}}

/* School: the manga as a page of its own (/school/manga, to hand out by URL) */
.school-manga-page-content{max-width:560px;margin:0 auto;padding:16px 12px 32px}
.school-manga-page-title{margin:8px 0 6px;font-size:22px;line-height:1.4;text-align:center}
.school-manga-page-lead{margin:0 0 16px;text-align:center;color:#4a5a78}
.school-manga-sheets{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.school-manga-sheets img{display:block;width:100%;height:auto;border:2px solid #17335c;border-radius:12px;background:#fff}
.school-manga-page-cta{margin-top:24px;padding:16px;border:1px solid #cfdaf0;border-radius:12px;background:#edf3ff}
.school-manga-page-cta .school-top-actions{display:flex;flex-direction:column;gap:10px}
.school-manga-page-cta .school-top-button{width:100%;justify-content:center}

/* 結果が入った試合のカード: 右下の「予定の詳細」リンク */
.event-detail-link{margin:6px 0 0;text-align:right}.event-detail-link a{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:700;color:var(--brand,#335ac0)}.event-detail-link .ui-icon{width:16px;height:16px}
.event-past-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}.event-past-foot .event-my-answer,.event-past-foot .event-detail-link{margin:0}.event-past-foot .event-detail-link{margin-left:auto;white-space:nowrap}

/* School 登録フォーム: 必須の入力欄は濃い青の太枠で見分けやすく（2026-11-05 ユーザー指示）。任意欄は従来の薄い枠。高さは border-box で変わらない */
.school-registration .m-field input:required{border:2px solid #335ac0;background:#f3f7ff}
.school-registration .m-field input:required:focus{border-color:#335ac0;background:#fff;outline:none;box-shadow:0 0 0 3px #335ac033}
.school-registration .m-field input:required:user-invalid{border-color:#d6334a;background:#fff4f6;box-shadow:0 0 0 3px #d6334a26}
/* School トップ: 強調は「ずっと無料」カード、「もっと楽しみたくなったら」は通常の枠（2026-11-05 ユーザー指示） */
.school-top-plan>.school-top-small{margin:-4px 0 12px}
.menu-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px}
.menu-heading .menu-title{margin:0}
.menu-appearance{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700}
.menu-appearance>span{margin-right:4px}
.menu-appearance .button[aria-pressed="true"]{background:#335ac0;border-color:#335ac0;color:#fff}
.menu-backdrop{display:none;pointer-events:none}
/* Ballpark menu is its own scene; the standard menu retains the normal shell. */
.menu-heading-name{display:flex;align-items:center;gap:18px;min-width:0}
.menu-stadium-brand,.menu-stadium-logout,.menu-weather{display:none}
.menu-todo-content{display:grid;gap:8px;min-width:0}
.menu-todo-title{display:flex;align-items:center;gap:8px}
html[data-menu-appearance="stadium"] .menu-page{background:#f7f9fd;padding-bottom:0}
html[data-menu-appearance="stadium"] .menu-stadium-stage{position:relative;isolation:isolate;height:100svh;min-height:0;display:flex;flex-direction:column;background:#10213b}
html[data-menu-appearance="stadium"] .menu-backdrop{display:block;position:absolute;inset:0;background:#10213b center 55%/cover no-repeat;z-index:-1;overflow:hidden}
html[data-menu-appearance="stadium"] .menu-backdrop :is(.wx-front,.wx-back){position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
html[data-menu-appearance="stadium"] .menu-backdrop .wx-back{z-index:1}
html[data-menu-appearance="stadium"] .menu-backdrop .wx-front{z-index:2}
html[data-menu-appearance="stadium"] .menu-backdrop::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#07172d66,transparent 28%,transparent 60%,#07172d80),linear-gradient(90deg,#07172d33,transparent 35%,transparent 65%,#07172d33)}
html[data-menu-appearance="stadium"] .menu-stadium-stage>.site-header{display:none}
html[data-menu-appearance="stadium"] .menu-page #mock-app{position:relative;display:flex;flex:1;min-height:0;background:transparent}
html[data-menu-appearance="stadium"] .menu-shell{flex:1;width:100%;max-width:1600px;padding:24px 32px 28px}
html[data-menu-appearance="stadium"] .menu-shell main{width:100%;max-width:none}
html[data-menu-appearance="stadium"] .menu-shell .m-page-content{display:grid;grid-template-columns:300px minmax(120px,1fr) 300px;grid-template-rows:auto auto minmax(0,1fr) auto;gap:22px 32px;min-height:0;height:calc(100svh - 52px);align-items:start}
html[data-menu-appearance="stadium"] .menu-page .menu-heading{grid-column:1/-1;grid-row:1;margin:0;color:#fff;text-shadow:0 2px 12px #07152c}
html[data-menu-appearance="stadium"] .menu-stadium-brand{display:inline-flex;align-items:center;flex:none}
html[data-menu-appearance="stadium"] .menu-stadium-brand img{display:block;width:156px;height:auto}
html[data-menu-appearance="stadium"] .menu-heading .menu-title{font-size:15px;font-weight:600;letter-spacing:.04em}
html[data-menu-appearance="stadium"] .menu-stadium-logout{display:block;margin:0 0 0 4px}
html[data-menu-appearance="stadium"] .menu-page .menu-appearance .button{background:#10294bd9;border-color:#7994bc80;color:#e5edff;text-shadow:none}
html[data-menu-appearance="stadium"] .menu-page .menu-appearance .button[aria-pressed="true"]{background:#335ac0;border-color:#b0caff;color:#fff}
html[data-menu-appearance="stadium"] .menu-page .menu-news{grid-column:1/-1;grid-row:2;justify-self:center;width:min(720px,100%);margin:0;background:#0f2447e8}
html[data-menu-appearance="stadium"] .menu-page .menu-status{grid-column:3;grid-row:3;min-width:0;display:grid;gap:12px}
html[data-menu-appearance="stadium"] .menu-status>.m-notice{margin:0;background:#f7fafff2}
html[data-menu-appearance="stadium"] .menu-page .menu-todo{margin:0;padding:18px;background:#10294be8;border:1px solid #91b1df66;box-shadow:0 8px 24px #06152c26;border-radius:12px;color:#fff;backdrop-filter:blur(8px)}
html[data-menu-appearance="stadium"] .menu-todo .panel-title{font-size:16px;color:#fff}
html[data-menu-appearance="stadium"] .menu-todo .panel-title-icon{background:#335ac040;color:#b9d5ff}
html[data-menu-appearance="stadium"] .menu-todo .menu-done{margin:4px 0 0;font-size:13px;color:#d2e1f6}
html[data-menu-appearance="stadium"] .menu-todo .m-notice{font-size:14px;line-height:1.6;padding:12px}
html[data-menu-appearance="stadium"] .menu-todo .menu-next-body{display:grid;gap:4px}
html[data-menu-appearance="stadium"] .menu-todo .menu-sub{color:#fff;font-size:14px}
html[data-menu-appearance="stadium"] .menu-todo .shortage-game{background:#f7faff;color:#17335c}
html[data-menu-appearance="stadium"] .menu-page .menu-cards{grid-column:1;grid-row:3;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}
html[data-menu-appearance="stadium"] .menu-page .menu-card{flex-direction:column;justify-content:center;gap:7px;min-height:82px;padding:14px 8px;background:#10294be8;border-color:#91b1df66;color:#fff;box-shadow:0 6px 18px #06152c1a;backdrop-filter:blur(8px);transition:border-color .16s,box-shadow .16s}
html[data-menu-appearance="stadium"] .menu-page .menu-card:hover{border-color:#b4d0ff;box-shadow:0 0 0 1px #b4d0ff66}
html[data-menu-appearance="stadium"] .menu-page .menu-card .ui-icon{width:24px;height:24px;flex:none;color:#a9ccff}
html[data-menu-appearance="stadium"] .menu-page .menu-card strong{font-size:14px;line-height:1.4;text-align:center;overflow-wrap:anywhere}
html[data-menu-appearance="stadium"] .menu-page .menu-card .side-count{top:4px;right:4px;font-size:11px}
html[data-menu-appearance="stadium"] .menu-page .menu-full{grid-column:1;grid-row:4;margin:0;text-align:left}
html[data-menu-appearance="stadium"] .menu-page .menu-full a{display:inline-flex;align-items:center;min-height:44px;color:#fff;font-size:13px;background:#10294be8;padding:8px 14px;border-radius:8px}
html[data-menu-appearance="stadium"] .menu-page :is(.m-mobile-nav,.side-open){display:none}
html[data-menu-appearance="stadium"] .menu-page>.site-foot{position:relative;margin:0;background:#f7f9fd;color:#344764;border-top:1px solid #d8e2f1}
html[data-menu-appearance="stadium"] .menu-weather{display:grid;gap:10px;padding:16px;background:#10294be8;border:1px solid #91b1df66;border-radius:12px;color:#fff;backdrop-filter:blur(8px)}
html[data-menu-appearance="stadium"] .menu-weather .panel-title{margin:0;font-size:15px;color:#fff}
html[data-menu-appearance="stadium"] .menu-weather .panel-title-icon{color:#b9d5ff;background:#335ac040}
.menu-weather-summary{margin:0;font-size:14px;line-height:1.7;overflow-wrap:anywhere}
.menu-weather small{font-size:11px;line-height:1.6;color:#cfddf1}
.menu-weather a.inline-link{color:#c4d7ff}
.menu-weather .button{justify-self:start}
html[data-menu-appearance="stadium"] .menu-shell .m-side{display:none}
@media(min-width:701px) and (max-width:1050px){html[data-menu-appearance="stadium"] .menu-shell{padding:20px}html[data-menu-appearance="stadium"] .menu-shell .m-page-content{grid-template-columns:240px minmax(80px,1fr) 260px;column-gap:20px}html[data-menu-appearance="stadium"] .menu-heading .menu-title{display:none}}
@media(max-width:700px){
 .menu-heading{gap:10px}.menu-heading .menu-title{font-size:22px}
 html[data-menu-appearance="stadium"] .menu-shell{padding:16px 16px 24px}
 html[data-menu-appearance="stadium"] .menu-shell .m-page-content{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(180px,28svh) auto auto auto;gap:12px;min-height:calc(100svh - 40px)}
 html[data-menu-appearance="stadium"] .menu-page .menu-heading{grid-column:1;grid-row:1;flex-wrap:nowrap;gap:8px}
 html[data-menu-appearance="stadium"] .menu-stadium-brand img{width:112px}
 html[data-menu-appearance="stadium"] .menu-heading .menu-title,html[data-menu-appearance="stadium"] .menu-appearance>span{display:none}
 html[data-menu-appearance="stadium"] .menu-appearance{gap:4px}
 html[data-menu-appearance="stadium"] .menu-stadium-logout{margin:0}
 html[data-menu-appearance="stadium"] .menu-page .menu-news{grid-column:1;grid-row:2;width:100%}
 html[data-menu-appearance="stadium"] .menu-page .menu-news-item{font-size:13px}
 html[data-menu-appearance="stadium"] .menu-page .menu-status{grid-column:1;grid-row:4;gap:8px}
 html[data-menu-appearance="stadium"] .menu-page .menu-todo{padding:14px}
 html[data-menu-appearance="stadium"] .menu-page .menu-cards{grid-column:1;grid-row:5;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 html[data-menu-appearance="stadium"] .menu-page .menu-card{min-height:76px;padding:12px 6px}
 html[data-menu-appearance="stadium"] .menu-page .menu-card strong{font-size:13px}
 html[data-menu-appearance="stadium"] .menu-page .menu-full{grid-column:1;grid-row:6}
 html[data-menu-appearance="stadium"] .menu-backdrop{background-size:auto calc(100% + 220px);background-position:center bottom}
}
@media(prefers-reduced-motion:reduce){html[data-menu-appearance="stadium"] .menu-page .menu-card{transition:none}}
@media(max-width:767px),(max-height:499px){.menu-page .menu-appearance{display:none}}

/* Match readiness: summaries around the field, full controls in a roomy dialog. */
.readiness-entry{container:readiness / inline-size;min-width:0}
.readiness-preview{display:none}
html[data-menu-appearance="stadium"] .menu-readiness .readiness-enhanced>.shortage-game{display:none}
html[data-menu-appearance="stadium"] .menu-readiness .readiness-enhanced>.readiness-preview{display:grid;gap:10px;padding:14px 0;border-top:1px solid #91b1df55}
html[data-menu-appearance="stadium"] .readiness-preview>strong{font-size:14px;overflow-wrap:anywhere}
html[data-menu-appearance="stadium"] .readiness-preview .page-link{color:#fff}
html[data-menu-appearance="stadium"] .readiness-preview .shortage-tags{margin:0;gap:5px}
html[data-menu-appearance="stadium"] .readiness-preview .shortage-tag{font-size:12px;padding:3px 7px}
.readiness-preview .readiness-open{justify-self:start}
body.menu-page .readiness-dialog{position:fixed;inset:0;width:min(800px,calc(100vw - 40px));max-width:none;max-height:calc(100dvh - 48px);margin:auto;padding:0;border:1px solid #c9d6ee;border-radius:16px;background:#fff;color:#17335c;box-shadow:0 24px 90px #07172d66;overflow:hidden}
.readiness-dialog[open]{display:flex;flex-direction:column}
.readiness-dialog::backdrop{background:#07172d99}
.readiness-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid #dbe3f2;background:#f5f8ff;flex:none}
.readiness-dialog-head>div{min-width:0}
.readiness-dialog-head .panel-title{display:flex;align-items:center;gap:12px;margin:0 0 10px;font-size:19px;line-height:1.4}
.readiness-dialog-head .panel-title-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;margin:0;vertical-align:middle}
.readiness-target-label{font-size:12px;font-weight:700;color:#5b6b86}
.readiness-dialog-game{margin:4px 0 0;padding:6px 10px;border-radius:6px;background:var(--attn-tint);color:var(--attn-strong);font-size:15px;font-weight:800;overflow-wrap:anywhere}
.readiness-dialog-body{min-height:0;overflow:auto;overscroll-behavior:contain;padding:8px 24px 20px}
.readiness-dialog .shortage-game{min-width:0;margin:0;border:0}
.readiness-dialog .shortage-game>.shortage-head{display:none}
.readiness-dialog .readiness-place{margin:8px 0 14px}
.readiness-dialog .shortage-items .readiness-item,.readiness-dialog .shortage-items .readiness-item:first-of-type{grid-template-columns:130px minmax(0,1fr);align-items:start;gap:10px 16px;padding:16px 0}
.readiness-dialog .shortage-items .readiness-act{grid-column:1/-1;justify-self:stretch;justify-content:flex-start;gap:8px}
.readiness-dialog .shortage-items .readiness-act .button{max-width:100%;white-space:normal;text-align:left;justify-content:flex-start}
.readiness-dialog .readiness-act form{max-width:100%}
.readiness-dialog .shortage-line,.readiness-dialog .shortage-offer{overflow-wrap:anywhere}
.readiness-dialog .readiness-okline{flex-wrap:wrap}
/* A title tooltip must not widen a readiness action and push the adjacent status. */
body:not(.auth-page) .m-shell .shortage-game .button.icon-only[title]:is(:hover,:focus-visible){width:40px;min-width:40px;padding:0}
body:not(.auth-page) .m-shell .shortage-game .button.icon-only[title]:is(:hover,:focus-visible)::after{display:none;content:none}
@container readiness (max-width:620px){
 .shortage-items .readiness-item,.shortage-items .readiness-item:first-of-type{grid-template-columns:minmax(0,1fr);grid-template-areas:"label" "body" "act";gap:8px}
 .shortage-items .readiness-label{grid-area:label;white-space:normal}
 .shortage-items .readiness-body{grid-area:body;overflow-wrap:anywhere}
 .shortage-items .readiness-act{grid-area:act;justify-self:stretch;justify-content:flex-start;min-width:0;max-width:100%}
 .shortage-items .readiness-act form{max-width:100%}
 .shortage-game .shortage-head{gap:6px}
 .shortage-game .shortage-head strong{min-width:0;overflow-wrap:anywhere}
 .shortage-game .shortage-head .shortage-tags{flex:1 0 100%;margin-left:0}
 .shortage-game .shortage-head .shortage-chevron{margin-left:auto}
 .shortage-game .shortage-offer{flex-direction:column;align-items:flex-start;overflow-wrap:anywhere}
 .shortage-game .readiness-place{overflow-wrap:anywhere}
 .shortage-game .readiness-okline{flex-wrap:wrap}
}
@media(max-width:767px){.readiness-dialog-head{padding:16px}.readiness-dialog-body{padding:8px 16px 16px}}

/* Content layers must never change the field's viewport-sized composition. */
.menu-layer-actions{display:none}
.menu-layer-open{overflow:hidden}
html[data-menu-appearance="stadium"] .menu-page.menu-layer-ready .menu-layer-actions{display:grid;gap:10px}
html[data-menu-appearance="stadium"] .menu-page.menu-layer-ready .menu-status>.menu-todo{display:none}
html[data-menu-appearance="stadium"] .menu-page .menu-layer-trigger{display:flex;align-items:center;gap:9px;min-width:0;width:100%;background:#10294be8;border-color:#91b1df66;color:#fff;justify-content:flex-start;text-align:left}
.menu-layer-trigger>span{min-width:0;overflow-wrap:anywhere}
.menu-layer-trigger>.ui-icon{flex:none}
.menu-layer-count{margin-left:auto;white-space:nowrap;font-size:12px;padding:2px 6px;border-radius:4px;background:var(--attn-tint);color:var(--attn-strong)}
.menu-layer-count[data-empty="true"]{background:#335ac040;color:#d2e1f6}
html[data-menu-appearance="stadium"] .menu-shell,html[data-menu-appearance="stadium"] .menu-shell main{min-height:0}
html[data-menu-appearance="stadium"] .menu-page .menu-cards{max-height:100%;overflow-y:auto;overscroll-behavior:contain;align-content:start;scrollbar-width:thin}
html[data-menu-appearance="stadium"] .menu-page .menu-status{max-height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.menu-layer-controls{display:flex;align-items:center;gap:8px;flex:none}
.menu-layer-back .ui-icon{transform:rotate(180deg)}
.menu-title[tabindex="-1"]:focus{outline:none}
.readiness-dialog[data-view="todo"] .menu-readiness{display:none}
.readiness-dialog #menu-todo-content{gap:12px}
.readiness-dialog #menu-todo-content .m-notice{margin:0;padding:14px;font-size:15px;line-height:1.7}
.readiness-dialog #menu-todo-content .menu-next{background:#f2f6ff;border:1px solid #b9c9ee;color:#17335c}
.readiness-dialog[data-view="readiness"] .menu-readiness{margin:0}
.readiness-dialog[data-view="readiness"] .menu-readiness>.menu-sub{display:none}
.readiness-dialog #menu-readiness-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
html[data-menu-appearance="stadium"] .readiness-dialog .menu-readiness .readiness-preview{height:100%;padding:16px;border:1px solid #c9d6ee;border-radius:12px;background:#f7faff;align-content:start}
html[data-menu-appearance="stadium"] .readiness-dialog .readiness-preview .page-link{color:#17335c}
@media(max-width:1050px) and (min-width:768px){html[data-menu-appearance="stadium"] .menu-shell .m-page-content{height:calc(100svh - 40px)}}

/* Ballpark only: 30% transparent surfaces, steady buttons and night-colored content layers. */
html[data-menu-appearance="stadium"] .menu-page .menu-weather,
html[data-menu-appearance="stadium"] .menu-page .menu-player,
html[data-menu-appearance="stadium"] .menu-page .menu-layer-trigger{background:rgba(16,41,75,.7)}
html[data-menu-appearance="stadium"] .menu-page .menu-news{background:rgba(15,36,71,.7)}
html[data-menu-appearance="stadium"] .menu-page :is(.button,.menu-card),
html[data-menu-appearance="stadium"] .menu-page :is(.button,.menu-card):is(:hover,:focus-visible,:active){animation:none;transition:none;transform:none}
html[data-menu-appearance="stadium"] .menu-page .m-shell .button.icon-only[title]:is(:hover,:focus-visible){width:40px;min-width:40px;padding:0}
html[data-menu-appearance="stadium"] .menu-page .m-shell .button.icon-only[title]:is(:hover,:focus-visible)::after{display:none;content:none}
html[data-menu-appearance="stadium"] body.menu-page .readiness-dialog{background:#10294b;color:#eef4ff;border-color:#4b6b94}
html[data-menu-appearance="stadium"] .readiness-dialog .readiness-dialog-head{background:#132f53;border-color:#3b587e}
html[data-menu-appearance="stadium"] .readiness-dialog .panel-title{color:#f3f7ff}
html[data-menu-appearance="stadium"] .readiness-dialog .panel-title-icon{background:#284b73;color:#b8d5ff}
html[data-menu-appearance="stadium"] .readiness-dialog .readiness-target-label{color:#bdcfe8}
html[data-menu-appearance="stadium"] .readiness-dialog .readiness-place{color:#c0d2ec}
html[data-menu-appearance="stadium"] .readiness-dialog :is(.readiness-distance,.inline-link,.page-link){color:#b9d6ff}
html[data-menu-appearance="stadium"] .readiness-dialog .menu-readiness .readiness-preview{background:#18395f;border-color:#48688f}
html[data-menu-appearance="stadium"] .readiness-dialog .readiness-preview .page-link{color:#eef4ff}
html[data-menu-appearance="stadium"] .readiness-dialog .shortage-items .readiness-item{border-color:#3c587c}
html[data-menu-appearance="stadium"] .readiness-dialog .readiness-label{color:#e6efff}
html[data-menu-appearance="stadium"] .readiness-dialog .shortage-items .readiness-label .ui-icon{background:#284b73;color:#b8d5ff}
html[data-menu-appearance="stadium"] .readiness-dialog .shortage-line{color:#d2dff1}
html[data-menu-appearance="stadium"] .readiness-dialog .shortage-line.is-short{color:var(--attn)}
html[data-menu-appearance="stadium"] .readiness-dialog .readiness-okline{color:#9ee6bc}
html[data-menu-appearance="stadium"] .readiness-dialog .shortage-offer{background:#1d416b;color:#f1f6ff}
html[data-menu-appearance="stadium"] .readiness-dialog #menu-todo-content .m-notice{background:#18395f;color:#eef4ff;border-color:#48688f}
html[data-menu-appearance="stadium"] .readiness-dialog #menu-todo-content .join-alert{border-left:3px solid var(--attn)}
html[data-menu-appearance="stadium"] .readiness-dialog .menu-next-tag{color:#b9d6ff}
html[data-menu-appearance="stadium"] .readiness-dialog .menu-done{color:#c9daf1}
html[data-menu-appearance="stadium"] .menu-page :is(.readiness-dialog,.menu-weather) .button.secondary{background:#20436d;border-color:#54759d;color:#f1f6ff}
html[data-menu-appearance="stadium"] .menu-page :is(.readiness-dialog,.menu-weather) .button.secondary:is(:hover,:focus-visible){background:#2c5382;border-color:#b5d1f5;color:#fff}

/* Place news in the header's middle column, alongside the menu title and display controls. */
html[data-menu-appearance="stadium"] .menu-shell .m-page-content{grid-template-rows:auto minmax(0,1fr) auto}
html[data-menu-appearance="stadium"] .menu-page .menu-heading{display:contents}
html[data-menu-appearance="stadium"] .menu-heading-name{grid-column:1;grid-row:1;align-self:center}
html[data-menu-appearance="stadium"] .menu-appearance{grid-column:3;grid-row:1;align-self:center;justify-self:end}
html[data-menu-appearance="stadium"] .menu-page .menu-news{grid-column:2;grid-row:1;align-self:center;width:100%;min-width:0}
html[data-menu-appearance="stadium"] .menu-page :is(.menu-cards,.menu-status){grid-row:2}
html[data-menu-appearance="stadium"] .menu-page .menu-full{grid-row:3}
html[data-menu-appearance="stadium"] .menu-page :is(.menu-cards,.menu-status){margin-top:30px;max-height:calc(100% - 30px)}
html[data-menu-appearance="stadium"] .menu-weather .panel-title{display:flex;align-items:center;gap:12px;line-height:1.4}
html[data-menu-appearance="stadium"] .menu-weather .panel-title-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;margin:0;vertical-align:middle}

/* 打席の動画 (server/docs/play-videos.md, 2026-11-06): 打席の結果の打席ボタン(▶付き)・「動画」タブの一覧・打席のダイアログ(対象は主色のオレンジ)・大きな再生画面(字幕帯)。 */
.rx-grid.readonly .rx-pa-open{position:relative;font:inherit;font-size:13px;font-weight:700;cursor:pointer;line-height:1.4}
.rx-grid.readonly .rx-pa-open:hover{border-color:var(--brand-vivid);box-shadow:0 0 0 1px var(--brand-vivid)}
.rx-grid.readonly .rx-pa-open:focus-visible{outline:3px solid var(--brand-soft);outline-offset:2px}
.rx-pa-open.has-video{padding-right:20px}
.rx-pa-open .pv-dot{position:absolute;top:-6px;right:-6px;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--brand-vivid);color:#fff;box-shadow:0 0 0 2px #fff}
.rx-pa-open .pv-dot svg{width:11px;height:11px}
.pv-hint{display:flex;align-items:center;gap:8px}.pv-hint svg{flex:none;width:18px;height:18px;color:var(--brand-vivid)}
.event-tabs .tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;margin-left:4px;padding:0 6px;border-radius:10px;background:var(--brand-tint2,#eaf0fd);color:var(--brand-deep);font-size:12px}
.pv-usage-line{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 6px;font-weight:700;color:var(--brand-deep)}
.pv-usage-line span+span{font-weight:400;color:#5d6b82}
.pv-tools{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin:12px 0}
.pv-tools .ground-option{border-radius:8px}
.pv-tools .ground-option.is-on{border-color:var(--brand-vivid);background:var(--brand-tint2);box-shadow:0 0 0 1px var(--brand-vivid);color:var(--brand-deep)}
.pv-tools .ground-option:focus-visible{outline:3px solid var(--brand-soft);outline-offset:2px}
.pv-list{display:grid;gap:12px;margin:12px 0 0;padding:0;list-style:none}
.pv-item{display:grid;grid-template-columns:200px minmax(0,1fr);gap:14px;padding:12px;border:1px solid #dbe4f5;border-radius:10px;background:#fff}
.pv-item[hidden]{display:none}
.pv-thumb{position:relative;display:block;width:100%;aspect-ratio:16/9;padding:0;border:0;border-radius:8px;overflow:hidden;background:#0f2447;cursor:pointer}
.pv-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.pv-thumb-empty{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#9fb3d6}.pv-thumb-empty svg{width:36px;height:36px}
.pv-play-mark{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:rgba(15,36,71,.72);box-shadow:0 0 0 2px rgba(255,255,255,.85)}
.pv-play-mark:after{content:"";position:absolute;left:18px;top:14px;border-style:solid;border-width:9px 0 9px 15px;border-color:transparent transparent transparent #fff}
.pv-thumb:hover .pv-play-mark,.pv-thumb:focus-visible .pv-play-mark{background:var(--brand-vivid)}
.pv-thumb:focus-visible{outline:3px solid var(--brand-soft);outline-offset:2px}
.pv-duration{position:absolute;right:6px;bottom:6px;padding:1px 6px;border-radius:4px;background:rgba(0,0,0,.7);color:#fff;font-size:12px;font-weight:700}
.pv-info{min-width:0}
.pv-info p{margin:0 0 6px}
.pv-when{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.pv-inning{display:inline-block;padding:2px 10px;border-radius:8px;background:var(--brand-tint2,#eaf0fd);color:var(--brand-deep);font-size:14px}
.pv-situation{font-weight:700;color:#264676}
.pv-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:16px;font-weight:700;color:#1d2b4a;overflow-wrap:anywhere}
.pv-title .rx-pa{display:inline-block;width:auto;min-height:0;margin:0;padding:1px 8px;font-size:12px}
.pv-meta{display:flex;flex-wrap:wrap;gap:4px 16px;color:#5d6b82;font-size:13px}
.pv-meta span{display:inline-flex;align-items:center;gap:4px}.pv-meta svg{width:15px;height:15px}
.pv-changed{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 10px;border-radius:8px;background:var(--attn-tint);color:var(--attn-strong);font-size:13px;font-weight:700}
.pv-changed>svg{flex:none;width:16px;height:16px}
.pv-actions{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;margin-top:8px}
.pv-actions form{margin:0}
.pv-describe{max-width:560px}
@media(max-width:600px){.pv-item{grid-template-columns:1fr;gap:10px}.pv-title{font-size:15px}}
/* ダイアログ(打席)と再生画面 */
.pv-dialog,.pv-player{padding:0;border:0;border-radius:12px;box-shadow:0 20px 60px rgba(15,36,71,.35)}
.pv-dialog{width:min(640px,calc(100vw - 32px));max-height:calc(100svh - 32px);background:#fff;color:#1d2b4a}
.pv-dialog::backdrop,.pv-player::backdrop{background:rgba(15,36,71,.6)}
.pv-dialog-head,.pv-player-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid #e3e9f5;background:#fff}
.pv-dialog-head .panel-title,.pv-player-head .panel-title{display:flex;align-items:center;gap:12px;margin:0;line-height:1.4;min-width:0}
.pv-dialog-head .panel-title:focus,.pv-player-head .panel-title:focus{outline:none}
.pv-dialog-body{padding:14px 16px 18px}
.pv-target{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px}
.pv-target-label{font-size:13px;font-weight:700;color:#5d6b82}
.pv-target-badge{display:inline-block;padding:4px 12px;border-radius:8px;background:var(--attn-tint);color:var(--attn-strong);font-size:15px;overflow-wrap:anywhere}
.pv-mini{display:grid;gap:8px;margin:0 0 14px;padding:0;list-style:none}
.pv-mini-play{display:flex;align-items:center;gap:10px;width:100%;padding:6px;border:1px solid #dbe4f5;border-radius:8px;background:#fff;font:inherit;font-weight:700;color:#1d2b4a;text-align:left;cursor:pointer}
.pv-mini-play img{width:96px;aspect-ratio:16/9;object-fit:cover;border-radius:6px;flex:none}
.pv-mini-play:focus-visible{outline:3px solid var(--brand-soft);outline-offset:2px}
.pv-fields{margin:0;padding:0;border:0;min-width:0}
.pv-fields[disabled]{opacity:.55}
.pv-usage{margin:4px 0 0;font-size:13px;color:#5d6b82}
.pv-relink-box{padding:12px;border-radius:8px;background:var(--attn-tint)}
.pv-relink-box p{margin:0 0 8px;font-weight:700;color:var(--attn-strong)}
.pv-relink-bar{position:sticky;top:8px;z-index:3;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:0 0 12px;padding:10px 12px;border-radius:8px;background:var(--attn-tint);color:var(--attn-strong);font-weight:700}
.pv-relink-bar[hidden]{display:none}
.pv-player{width:min(980px,calc(100vw - 24px));max-height:calc(100svh - 24px);background:#0b1a33;color:#fff}
.pv-player-head{background:#0f2447;border-bottom-color:#24407a}
.pv-player-head .panel-title{color:#fff;font-size:16px}.pv-player-head [data-pv-player-title]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv-player .panel-title-icon{color:#9fb8f0}
.pv-stage{position:relative;background:#000}
.pv-stage video{display:block;width:100%;max-height:calc(100svh - 150px);background:#000}
.pv-caption{position:absolute;left:12px;right:12px;bottom:56px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:0;padding:8px 12px;border-radius:8px;background:rgba(15,36,71,.82);color:#fff;font-size:15px;pointer-events:none}
.pv-caption[hidden]{display:none}
.pv-caption b{padding:1px 8px;border-radius:6px;background:#335ac0;color:#fff}
.pv-caption strong{color:#fff}
.pv-player-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding:10px 16px;background:#0f2447}
.pv-player-foot .m-check{color:#fff;margin:0}
.pv-player-views{display:inline-flex;align-items:center;gap:6px;font-weight:700}.pv-player-views svg{width:16px;height:16px}
@media(max-width:600px){.pv-caption{left:6px;right:6px;bottom:48px;font-size:13px;padding:6px 8px}.pv-dialog-body{padding:12px}}
/* 選手ページのマイハイライト(夜空の独立ページ) */
.player-world .pv-item{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16)}
.player-world .pv-title{color:#fff}.player-world .pv-situation{color:#dbe6ff}.player-world .pv-meta{color:#b9c6e0}
.player-world .pv-inning{background:#f6c33b;color:#0f2447}
.player-world .pv-meta a{color:#ffe08a}
/* 打席の動画 2026-11-06 修正: 項目名のアイコンと文字の間隔、ダイアログの閉じる(×は40px角・「閉じる」は8px角の白)、説明の横の「説明を変える」リンク */
.pv-form .m-field>label,.pv-form .m-field>span:first-child,.pv-describe .m-field>span:first-child{display:inline-flex;align-items:center;gap:6px}
.pv-form .m-field>label .ui-icon,.pv-form .m-field>span:first-child>.ui-icon,.pv-describe .m-field>span:first-child>.ui-icon{width:17px;height:17px;flex:none;color:var(--brand)}
.pv-dialog-head>.button.icon-only,.pv-player-head>.button.icon-only{flex:none;box-sizing:border-box;width:40px;min-width:40px;height:40px;min-height:40px;padding:0;border-radius:8px}
.pv-player-head>.button.icon-only{background:#fff}
.pv-dialog .m-actions .button{box-sizing:border-box;min-height:44px;padding:10px 16px;border-radius:8px;font-size:14px;gap:8px}
.pv-dialog .m-actions .button.secondary{background:#fff;border:1px solid var(--brand);color:var(--brand-deep)}
.pv-edit-link{display:inline-flex;align-items:center;gap:4px;margin-left:4px;padding:0;border:0;background:none;font:inherit;font-size:13px;font-weight:700;color:var(--brand);cursor:pointer}
.pv-edit-link .ui-icon{width:14px;height:14px}
.pv-edit-link:hover{color:var(--brand-deep)}
.pv-edit-link:focus-visible{outline:3px solid var(--brand-soft);outline-offset:2px;border-radius:4px}
.pv-describe{flex-basis:100%;order:3;margin-top:4px}
.pv-describe[hidden]{display:none}
.pv-describe .m-actions{display:flex;flex-wrap:wrap;gap:8px}
/* 打席の動画 2026-11-06: 「動画」タブのYouTube(予定の詳細で登録したリンク)と、再生画面の左上アイコン(背景なし) */
.pv-youtube-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:8px}
.pv-youtube-item{display:grid;gap:4px;min-width:0}
.pv-youtube-item .video-embed{max-width:none;margin:0}
.pv-youtube-label{font-size:14px;color:var(--brand-deep)}
.pv-youtube-item .inline-link{justify-self:start;font-size:13px}
.pv-player-head .panel-title-icon{width:auto;height:auto;background:none;box-shadow:none;border-radius:0}
.pv-player-head .panel-title-icon .ui-icon{width:22px;height:22px}
/* 功労者の入力(/my/records/{id}/honors): 「試合後記」の見出しの上に余白を入れて、上の入力欄との間隔をあける */
.honors-memo-title{margin-top:32px}

/* 選手パネル (メインメニュー球場, server/docs/menu-home.md): 今やること の上。球場でだけ表示し、他の半透明パネルと同じ南色。折りたためる */
.menu-player{display:none}
html[data-menu-appearance="stadium"] .menu-page .menu-player{display:grid;gap:10px;padding:16px;background:rgba(16,41,75,.7);border:1px solid #91b1df66;border-radius:12px;color:#fff;backdrop-filter:blur(8px);box-shadow:0 8px 24px #06152c26}
html[data-menu-appearance="stadium"] .menu-page .menu-status{max-height:100%;overflow-y:auto;overscroll-behavior:contain}
html[data-menu-appearance="stadium"] .menu-player .panel-title{margin:0;font-size:15px;color:#fff}
html[data-menu-appearance="stadium"] .menu-player .panel-title-icon{color:#b9d5ff;background:none;border:0;box-shadow:none}
html[data-menu-appearance="stadium"] .menu-page .m-shell .menu-player .panel-fold.icon-only{background:none;border:0;box-shadow:none;color:#b9d5ff;width:40px;min-width:40px;height:40px;min-height:40px;padding:0}
html[data-menu-appearance="stadium"] .menu-page .m-shell .menu-player .panel-fold.icon-only:is(:hover,:focus-visible){color:#fff}
.menu-player-body{display:grid;gap:12px;min-width:0}
.menu-player-body[hidden]{display:none}
.menu-player-me{display:flex;align-items:center;gap:10px;color:#fff;min-width:0}
.menu-player-photo{flex:none;width:44px;height:44px;border-radius:50%;object-fit:cover;background:#18395f;border:2px solid #b9d5ff80}
.menu-player-nophoto{display:inline-flex;align-items:center;justify-content:center;color:#b9d5ff}.menu-player-nophoto .ui-icon{width:24px;height:24px}
.menu-player-who{display:grid;gap:2px;min-width:0}.menu-player-who strong{font-size:16px;overflow-wrap:anywhere}.menu-player-who small{font-size:12px;color:#cfddf1;display:flex;flex-wrap:wrap;gap:2px 8px}
.menu-player-jersey{font-weight:700;color:#fff}
.menu-player-block{display:grid;gap:6px;min-width:0}
.menu-player-sub{display:flex;align-items:center;gap:6px;margin:0;font-size:13px;color:#cfddf1}.menu-player-sub .ui-icon{width:16px;height:16px;flex:none}
.menu-player-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0}
.menu-player-stats>div{background:#18395f;border:1px solid #48688f;border-radius:8px;padding:6px 4px;text-align:center;min-width:0}
.menu-player-stats dt{font-size:11px;color:#cfddf1}.menu-player-stats dd{margin:2px 0 0;font-size:17px;font-weight:800;color:#fff;overflow-wrap:anywhere}
.menu-player-empty,.menu-player-note{margin:0;font-size:13px;line-height:1.6;color:#d2e1f6}
.menu-player-next{display:grid;gap:6px;padding:10px 12px;background:#18395f;border:1px solid #48688f;border-radius:8px;color:#fff;min-width:0}
.menu-player-game{font-size:13px;color:#eef4ff;overflow-wrap:anywhere}
.menu-player-place{display:flex;flex-wrap:wrap;gap:6px}.menu-player-place b{font-size:15px;font-weight:400;color:#fff}
.menu-player-me+.menu-player-block{padding-top:12px;border-top:1px solid #91b1df66}
html[data-menu-appearance="stadium"] .menu-weather .panel-title-icon{background:none;border:0;box-shadow:none}
.menu-weather-body{display:grid;gap:10px;min-width:0}.menu-weather-body[hidden]{display:none}
html[data-menu-appearance="stadium"] .menu-page .m-shell .menu-weather .panel-fold.icon-only{background:none;border:0;box-shadow:none;color:#b9d5ff;width:40px;min-width:40px;height:40px;min-height:40px;padding:0}
html[data-menu-appearance="stadium"] .menu-page .m-shell .menu-weather .panel-fold.icon-only:is(:hover,:focus-visible){color:#fff}
html[data-menu-appearance="stadium"] .menu-weather .panel-title{gap:8px}
.menu-player-live{display:flex;align-items:center;gap:0;min-width:0}
.menu-player-live-url{flex:1;min-width:0;color:#fff;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-menu-appearance="stadium"] .menu-page .m-shell .menu-player-live .button.icon-only{flex:none;background:none;border:0;box-shadow:none;color:#b9d5ff;margin:-8px -10px -8px -8px}
html[data-menu-appearance="stadium"] .menu-page .m-shell .menu-player-live .button.icon-only:is(:hover,:focus-visible){color:#fff}
.menu-player-season{display:grid;gap:6px;color:inherit;min-width:0}
/* 相手チームに渡すカード (/my/schedule/{id}/card, A4 1枚: 上半分=この試合のカード・下半分=審判さん向け) */
.oc-page{background:#e9edf3;color:#17335c}
.oc-tools{max-width:210mm;margin:18px auto;padding:0 16px;font-size:13px}.oc-tools p{margin:0 0 10px}.oc-tools .m-actions{display:flex;flex-wrap:wrap;gap:8px}
.oc-sheet{width:210mm;max-width:100%;background:#fff;margin:0 auto 24px;position:relative;box-shadow:0 8px 36px #17335c18}
.oc-half{height:148.5mm;padding:6mm 11mm 5mm;display:flex;flex-direction:column;overflow:hidden}
.oc-brand{display:flex;align-items:center;justify-content:space-between;margin-bottom:6.5mm}.oc-logo{width:38mm;height:auto}
.oc-audience{font-size:11pt;font-weight:700;border:1px solid var(--brand-vivid,#335ac0);border-radius:8px;color:var(--brand-vivid,#335ac0);padding:1mm 4mm}
.oc-game{display:flex;align-items:center;justify-content:space-between;gap:4mm;background:#edf3ff;border-radius:8px;padding:2mm 4mm;margin-bottom:2.5mm}
.oc-versus{display:flex;align-items:center;gap:3mm;font-size:13pt;font-weight:900}.oc-versus i{font-style:normal;font-size:9pt;color:#52647b}.oc-team{display:flex;align-items:center;gap:2mm}.oc-team img{width:9mm;height:9mm;object-fit:contain}
.oc-when{margin:0;text-align:right;font-size:10pt;line-height:1.4}.oc-when b{font-size:12pt}
.oc-card h1{font-size:19pt;line-height:1.3;margin:0 0 1.5mm;font-weight:900;letter-spacing:-.02em}
.oc-lead{font-size:10pt;margin:0 0 2.5mm;line-height:1.55;font-weight:700;color:#3d4c63}.oc-lead small{font-size:9pt;font-weight:400}
.oc-qrs{display:grid;grid-template-columns:34mm 1fr;gap:5mm;align-items:start;flex:1}
.oc-qrs-entry{grid-template-columns:32mm 32mm 1fr;gap:4mm}.oc-qrs-entry .oc-qrbox img{width:32mm;height:32mm}
.oc-entry-note{margin:10px 0 0;font-size:13px;color:#52647b}.oc-renew{margin-top:12px;padding:12px 14px;border:1px solid #ced9e8;border-radius:8px;background:#fff}.oc-renew p{margin:0 0 8px;font-size:13px}
.oc-qrbox{text-align:center}.oc-qrbox img{display:block;width:34mm;height:34mm;margin:0 auto}.oc-qrbox b{display:block;font-size:10pt;margin-top:.8mm}.oc-qrbox small{display:block;font-size:7.5pt;color:#52647b;word-break:break-all}
.oc-note h2{font-size:11pt;margin:0 0 1mm;font-weight:900}.oc-note p{font-size:9pt;margin:0 0 1.5mm;line-height:1.5;color:#3d4c63}
.oc-free{font-weight:700;color:#335ac0 !important}.oc-code{display:inline-block;border:1.5px dashed #335ac0;border-radius:6px;padding:1mm 2.5mm;font-size:9pt !important;color:#17335c !important}.oc-code b{font-size:12pt;color:#335ac0;letter-spacing:.06em}
.oc-card{position:relative}.oc-bottom{margin-top:auto;padding-right:36mm}
.oc-foot{margin:0;font-size:10pt;font-weight:900;color:#335ac0}
.oc-reg{position:absolute;right:11mm;bottom:5mm;display:flex;flex-direction:column;align-items:center;gap:.8mm}.oc-reg img{width:20mm;height:20mm;display:block}.oc-reg p{margin:0;font-size:10pt;color:#17335c}
.oc-cut{height:0;border-top:1px dashed #8492a5;text-align:center}.oc-cut span{position:relative;top:-2.4mm;padding:0 3mm;background:#fff;font-size:8pt;color:#52647b}
.oc-umpire h2{font-size:16pt;line-height:1.35;margin:0 0 1.5mm;font-weight:900}
.oc-umpire h2{margin-top:0}.oc-umpire .oc-lead{margin-bottom:2mm}
.oc-feats{display:grid;grid-template-columns:repeat(3,1fr);gap:3mm;list-style:none;margin:0 0 2.5mm;padding:0}.oc-feats li{border:1px solid #ced9e8;border-radius:6px;padding:2mm 3mm}.oc-feats b{display:block;font-size:10pt;margin-bottom:.6mm}.oc-feats span{display:block;font-size:8.6pt;line-height:1.45;color:#52647b}
.oc-steps{display:flex;gap:5mm;list-style:none;margin:0 0 2mm;padding:0;font-size:9pt;font-weight:700}.oc-steps li{display:flex;align-items:center;gap:1.4mm}.oc-steps i{width:4.6mm;height:4.6mm;border-radius:50%;background:#335ac0;color:#fff;font-style:normal;font-size:8pt;display:grid;place-items:center}
.oc-umpire-body{display:grid;grid-template-columns:1fr 32mm;gap:6mm;align-items:center;flex:1}.oc-umpire .oc-qrbox img{width:30mm;height:30mm}
.oc-chips{display:flex;flex-wrap:wrap;gap:1.6mm;list-style:none;margin:0 0 2.5mm;padding:0}.oc-chips li{font-size:9pt;font-weight:700;color:#335ac0;background:#edf3ff;border-radius:6px;padding:1mm 2.6mm}
.oc-url{margin:0;font-size:10pt}.oc-url b{display:block}.oc-url span{display:block;font-size:14pt;font-weight:900;color:#335ac0}
.oc-small{font-size:7.8pt;color:#52647b;margin:1.5mm 0 0}
@media (max-width:820px){.oc-sheet{zoom:calc((100vw - 24px)/794px);margin-left:12px}}
@media print{@page{size:A4 portrait;margin:0}.oc-page{background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}.oc-tools{display:none}.oc-sheet{margin:0;box-shadow:none;zoom:1}}
/* 「この試合の記録をチームに残す」 (/live-claim/{id}, public/live-claim.html) */
.live-claim-game{margin:0 0 14px;padding:12px 14px;border:1px solid #ced9e8;border-radius:8px;background:#f5f8ff}
.live-claim-when{display:flex;align-items:center;gap:6px;margin:0 0 6px;font-size:13px;color:#52647b}
.live-claim-score{display:flex;align-items:center;justify-content:center;gap:12px;margin:0;font-size:16px;flex-wrap:wrap}.live-claim-score span{font-size:22px;font-weight:800;color:#17335c}
.live-claim-names{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0 0 12px;padding:0}.live-claim-names li{padding:3px 10px;border-radius:6px;background:#edf3ff;color:#335ac0;font-size:13px;font-weight:700}
.live-claim-next{margin:0 0 14px}
/* 「チームの記録に残す」 is green to feel safe (user request 2026-11-07); the LINE hand-over and the next step after the claim. */
.button.claim-green{background:#1f9d55;border-color:#1f9d55;color:#fff}.button.claim-green:is(:hover,:focus-visible){background:#178246;border-color:#178246}
.live-claim-share{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0 0}.live-claim-share .m-help{flex-basis:100%;margin:0}
.live-claim-done{display:grid;gap:8px;justify-items:start}.live-claim-done p{margin:0}
.oc-after{font-size:8.6pt !important;color:#17335c !important;font-weight:700;margin-top:1mm !important}
.live-claim-past{margin:0 0 12px}.live-claim-past .m-help{margin:0 0 6px}.live-claim-next-actions{display:flex;flex-wrap:wrap;gap:8px}

/* メインメニュー：準備状況ダイアログ・「この試合、成立する？」・「今やること」の見出し／項目アイコンは背景なし、文字との間隔を詰める。人数の等番号は暗い面でも読める色にする。 */
.shortage-items .readiness-label,.readiness-dialog .shortage-items .readiness-label{gap:4px}
.shortage-items .readiness-label .ui-icon,.shortage-items .readiness-item.is-done .readiness-label .ui-icon,.shortage-items .readiness-item.is-idle .readiness-label .ui-icon,
html[data-menu-appearance="stadium"] .readiness-dialog .shortage-items .readiness-label .ui-icon{width:22px;height:22px;padding:0;border-radius:0;background:none;color:var(--brand)}
html[data-menu-appearance="stadium"] .readiness-dialog .shortage-items .readiness-label .ui-icon{color:#b8d5ff}
.readiness-dialog-head .panel-title,.menu-page .menu-todo-title,.menu-page .menu-readiness .panel-title{gap:6px}
.readiness-dialog-head .panel-title-icon,html[data-menu-appearance="stadium"] .readiness-dialog .panel-title-icon,
html[data-menu-appearance="stadium"] .menu-todo .panel-title-icon,html[data-menu-appearance="stadium"] .menu-readiness .panel-title-icon,
.menu-todo .panel-title-icon,.menu-readiness .panel-title-icon{width:auto;height:auto;background:none;box-shadow:none;border:0;border-radius:0}
.readiness-dialog-head .panel-title-icon .ui-icon,.menu-todo .panel-title-icon .ui-icon,.menu-readiness .panel-title-icon .ui-icon{width:24px;height:24px}
html[data-menu-appearance="stadium"] .readiness-dialog .player-lamp-no{color:#eaf2ff}
