/* The common --space is defined only in spacing.css. No width-dependent spacing. */
:root{
  scrollbar-gutter:stable;
  --header-row-height:max(83px,4.5rem);
}

/* Panel boundaries and controls use the same spacing. */
.app{padding:var(--space);gap:var(--space);grid-template-columns:var(--rail-width) minmax(0,1fr)}
.content-stack,.summary-grid,.subject-grid,.taxonomy,.history-list,
.small-scores,.small-score-row,.small-axis,
.segmented,.button-row,.panel-header,.history-header,.detail-top,.setting-row,
.history-entry,.summary-panel{gap:var(--space)}
/* Transparent panels share panel padding without adding a visible surface. */
.panel,.detail,.transparent-panel,.view>.heading-row{padding:var(--space)}
/* Layer 2 owns extra vertical padding; layer 3 and panel-to-panel gaps stay unchanged. */
.panel{padding-block:calc(var(--space) * 1.5)}
.space-top{margin-top:var(--space)}
.session-message,.panel-header,.field-label{margin-bottom:var(--space)}
/* 分類は選択リスト。内部の選択肢は連続した行なのでgap:0。
   ３つのリスト同士のgapと各行の内側paddingは、パネル／パーツの規約を維持する。 */
.taxonomy{--tax-gap:0px}
.tax-column{column-gap:var(--space)}
.tax-subject-column{column-gap:0}
.status-details{gap:var(--space);margin-top:var(--space)}
.status-details>.detail{margin:0}
.settings-heading{margin-bottom:0}
.setting-row{padding-block:var(--space)}
.setting-row:last-child{padding-block-end:0}

/* Align the brand, menu and page heading. */
.masthead{flex-basis:var(--header-row-height);height:var(--header-row-height);min-height:var(--header-row-height)}
.left-rail>.sidebar{padding:var(--space);padding-block:calc(var(--space) * 1.5);gap:var(--space);scrollbar-gutter:auto}
/* Profile and navigation form one menu. Their divider owns the vertical gap;
   the sidebar gap separates this menu from its footer, not the profile from nav. */
.sidebar-menu{min-width:0}
.profile-mini{padding:0 var(--space)}
.view>.heading-row>div{align-items:flex-end}

  .view>.heading-row{height:var(--header-row-height);padding-inline-end:var(--space);margin-bottom:0}
  .view>.heading-row>div{min-width:0;gap:var(--space)}
  .view[data-page="summary"]{padding-top:var(--header-row-height)}

/* Full-screen practice controls share the same scale. */
.practice-gate-actions,.practice-focus-footer,.exam-app .exam-review-actions{gap:var(--space)}
.exam-app .exam-answer{column-gap:var(--space);row-gap:var(--space)}

/* Member logout and trial signup share the menu footer; no header overlay is reserved. */
.sidebar-footer{margin-top:auto;display:grid;gap:var(--space)}
.sidebar-footer .session-message{margin:0}

.sidebar-footer .exam-card{justify-content:center;text-align:center}
