.tokyo-score-page { --score-accent: #08718d; --score-soft: #e8f6f8; --score-border: #b8d9df; }
.score-hero { display:flex; justify-content:space-between; gap:24px; align-items:center; padding:32px; margin-bottom:24px; background:linear-gradient(135deg,#eff6ff,#dbeafe); color:#1e3a8a; border-radius:8px; }
.score-hero h1 { margin:8px 0; font-size:clamp(1.65rem,4vw,2.4rem); }
.score-hero p { margin:0; line-height:1.8; }
.score-year-badge { min-width:180px; padding:16px; border:1px solid #93c5fd; border-radius:8px; text-align:center; }
.score-year-badge strong,.score-year-badge span { display:block; }.score-year-badge strong { font-size:1.35rem; }.score-year-badge span { margin-top:4px; font-size:.85rem; }
.score-warning { padding:18px 20px; margin-bottom:24px; border:1px solid #e5b54c; border-radius:8px; background:#fff9e8; }.score-warning p { margin:8px 0 0; line-height:1.8; }
.score-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr); gap:24px; align-items:start; }.score-form,.score-result,.score-guide,.score-related,.score-sources { padding:24px; border:1px solid var(--score-border); border-radius:8px; background:#fff; }.score-form fieldset { margin:0 0 20px; padding:16px; border:1px solid #d6e5e8; border-radius:8px; }.score-form legend { padding:0 8px; font-weight:700; color:var(--score-accent); }.score-form label { display:flex; flex-direction:column; gap:6px; font-weight:700; }.score-form select,.score-form input { width:100%; box-sizing:border-box; min-height:42px; padding:8px 10px; border:1px solid #aac6cc; border-radius:8px; background:#fff; font:inherit; }.score-help { color:#52666c; font-size:.9rem; line-height:1.7; }.grade-grid,.exam-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }.score-button { width:100%; padding:13px 20px; border:0; border-radius:8px; background:var(--score-accent); color:#fff; font:inherit; font-weight:700; cursor:pointer; }.score-button:hover { background:#07566b; }
.score-result { position:sticky; top:20px; background:var(--score-soft); text-align:center; }.score-result-label { margin:0; color:var(--score-accent); font-weight:700; }.score-result h2 { margin:8px 0 0; color:#07566b; font-size:2.7rem; }.score-result > p:not(.score-result-label):not(.score-result-note) { margin:0 0 20px; }.score-result dl { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:0; text-align:left; }.score-result dl div { padding:12px; border-radius:8px; background:#fff; }.score-result dt { color:#52666c; font-size:.85rem; }.score-result dd { margin:4px 0 0; font-size:1.15rem; font-weight:700; }.score-result-note { margin:18px 0 0; font-size:.85rem; line-height:1.7; text-align:left; }
.score-guide,.score-related,.score-sources { margin-top:24px; }.score-guide h2,.score-related h2,.score-sources h2 { margin-top:0; color:var(--score-accent); }.score-guide-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }.score-guide h3 { margin-bottom:6px; }.score-guide p,.score-related p,.score-sources p,.score-sources li { line-height:1.8; }.score-related-link { display:inline-block; padding:11px 16px; border-radius:8px; background:var(--score-accent); color:#fff; font-weight:700; }.score-sources ul { padding-left:1.3em; }
.score-school-section { margin-top:24px; padding:24px; border:1px solid var(--score-border); border-radius:8px; background:#fff; }.score-school-heading { display:flex; justify-content:space-between; gap:20px; align-items:end; }.score-school-heading h2 { margin:4px 0 0; color:var(--score-accent); }.score-school-heading-note,.score-school-help,.score-school-source { color:#52666c; font-size:.9rem; line-height:1.7; }.score-school-filters { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:20px 0 12px; }.score-school-filters label { display:flex; flex-direction:column; gap:6px; font-weight:700; }.score-school-filters select { min-height:42px; padding:8px 10px; border:1px solid #aac6cc; border-radius:8px; background:#fff; font:inherit; }.score-school-list { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; }.score-school-card { padding:16px; border:1px solid #d6e5e8; border-radius:8px; background:#f8fcfc; }.score-school-card-top { display:flex; justify-content:space-between; gap:8px; align-items:start; }.score-school-card h3 { margin:0; font-size:1.05rem; }.score-school-card p { min-height:3.3em; margin:10px 0; color:#52666c; font-size:.85rem; line-height:1.6; }.score-school-card dl { display:grid; gap:7px; margin:0; }.score-school-card dl div { display:flex; justify-content:space-between; gap:8px; }.score-school-card dt { color:#52666c; font-size:.78rem; }.score-school-card dd { margin:0; font-weight:700; }.score-school-category { flex:none; padding:4px 7px; border-radius:8px; font-size:.75rem; font-weight:700; }.category-挑戦 { background:#fff0e8; color:#a43d12; }.category-適正 { background:#e8f6f8; color:#07566b; }.category-安全 { background:#edf8ee; color:#28733a; }.score-school-source { margin:18px 0 0; }
@media (max-width:1000px) { .score-school-list { grid-template-columns:repeat(3,1fr); } }
@media (max-width:760px) { .score-hero,.score-layout { display:block; }.score-year-badge { margin-top:20px; }.score-result { position:static; margin-top:24px; }.grade-grid,.exam-grid,.score-guide-grid,.score-school-filters { grid-template-columns:1fr 1fr; }.score-school-heading { display:block; }.score-school-list { grid-template-columns:1fr 1fr; } }
@media (max-width:480px) { .score-school-list,.score-school-filters { grid-template-columns:1fr; } }
