.training { position: relative; }
.training-planet { position: absolute; right: -12%; top: -40px; width: min(55vw, 640px); opacity: 0.2; z-index: -1; pointer-events: none; }
.training-note { max-width: 480px; margin: 8vh auto; padding: 32px; }
.training-note h1 { font-size: 1.6rem; margin: 0 0 8px; }
.training-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 20px; }
.training-head h1 { margin: 4px 0; }
.training-head .muted { max-width: 720px; margin: 0; }
.training-totals { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin-bottom: 20px; }
.training-totals .card { display: grid; gap: 4px; padding: 14px 16px; }
.training-totals span { font-size: 0.82rem; }
.training-form { display: grid; gap: 12px; padding: 20px; margin-bottom: 20px; }
.training-form h2 { margin: 0; font-size: 1.15rem; }
.training-form select, .training-form input:not([type="file"]), .training-form textarea { width: 100%; box-sizing: border-box; }
.training-form textarea { font-family: inherit; }
.training-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.training-actions { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.training-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 20px; align-items: start; }
.training-nav { display: grid; gap: 2px; padding: 8px; position: sticky; top: 84px; }
.training-nav button { display: flex; justify-content: space-between; gap: 8px; padding: 9px 10px; border: 0; border-radius: 8px; background: none; color: var(--text); font: inherit; font-size: 0.92rem; text-align: left; cursor: pointer; }
.training-nav button:hover { background: var(--surface-2); }
.training-nav button.is-on { background: var(--surface-2); font-weight: 600; }
.training-main { display: grid; gap: 10px; min-width: 0; }
.training-search { width: 100%; box-sizing: border-box; padding: 11px 14px; border-radius: 10px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text); font: inherit; }
.training-item { padding: 12px 16px; margin-bottom: 10px; }
.training-item summary { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; cursor: pointer; }
.training-item summary .muted { font-size: 0.84rem; }
.training-kind { padding: 1px 8px; border-radius: 99px; font-size: 0.72rem; border: 1px solid var(--border); color: var(--muted); }
.training-kind-rule { color: #fca5a5; border-color: #fca5a566; }
.training-kind-instruction { color: #93c5fd; border-color: #93c5fd66; }
.training-kind-file { color: #86efac; border-color: #86efac66; }
.training-keywords { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 0; }
.training-keywords span { padding: 1px 8px; border-radius: 6px; background: var(--surface-2); font-size: 0.8rem; color: var(--muted); }
.training-item pre { margin: 12px 0; max-height: 420px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; font-size: 0.92rem; line-height: 1.55; }
.training-meta { display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; font-size: 0.85rem; padding: 4px 0; }
.training-meta button { background: none; border: 0; color: var(--accent); cursor: pointer; font: inherit; padding: 0; }
.training-history { padding: 12px 16px; }
.training-history summary { cursor: pointer; color: var(--muted); }
@media (max-width: 760px) {
  .training-layout, .training-row { grid-template-columns: minmax(0, 1fr); }
  .training-nav { position: static; }
}
