.spring-guide{color:var(--text-primary);padding-top:32px;padding-bottom:64px}.spring-guide a{color:var(--color-link);text-underline-offset:3px}.dark .spring-guide a{color:#93baff}.spring-guide a:hover{text-decoration:underline}.spring-breadcrumb{color:var(--text-secondary);flex-wrap:wrap;gap:8px;margin-bottom:24px;font-size:12px;display:flex}.spring-hero{max-width:820px;margin-bottom:32px}.spring-guide h1{letter-spacing:-.035em;overflow-wrap:anywhere;margin:12px 0 16px;font-size:clamp(28px,4vw,42px);font-weight:650;line-height:1.2}.spring-hero>p{color:var(--text-secondary);font-size:16px;line-height:1.8}.spring-meta{color:var(--text-muted);font-size:12px}.spring-actions{flex-wrap:wrap;gap:12px;margin:20px 0;display:flex}.spring-actions a{border:1px solid var(--border-themed);background:var(--bg-surface);border-radius:8px;align-items:center;min-height:44px;padding:10px 16px;font-size:14px;display:inline-flex}.spring-guide h2{letter-spacing:-.025em;margin:36px 0 16px;scroll-margin-top:100px;font-size:24px;font-weight:600;line-height:1.4}.spring-note{background:var(--bg-surface);border:1px solid var(--border-themed);border-left:3px solid var(--color-link);border-radius:8px;margin:24px 0;padding:20px 24px}.spring-note h2{margin:0 0 12px;font-size:18px}.spring-note p,.spring-note li{color:var(--text-secondary);font-size:14px;line-height:1.8}.spring-note ul{gap:12px;padding-left:20px;list-style:outside;display:grid}.spring-note p{margin-top:12px}.spring-chapters{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0;list-style:none;display:grid}.spring-chapters a{border:1px solid var(--border-themed);background:var(--bg-surface);border-radius:10px;height:100%;padding:22px;text-decoration:none;display:block}.spring-chapters a:hover{border-color:var(--color-link)}.spring-chapters strong{color:var(--text-primary);margin:8px 0;font-size:17px;display:block}.spring-chapters p{color:var(--text-secondary);font-size:14px;line-height:1.7}.spring-reading-layout{grid-template-columns:240px minmax(0,1fr);align-items:start;gap:40px;display:grid}.spring-toc{border:1px solid var(--border-themed);border-radius:8px;max-height:calc(100dvh - 120px);padding:18px;font-size:13px;position:sticky;top:96px;overflow:auto}.spring-toc summary{cursor:pointer;min-height:30px;font-weight:600}.spring-toc ol{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.spring-toc a{padding:5px 0;line-height:1.6;display:block}.spring-chapter{min-width:0}.spring-chapter>p{color:var(--text-secondary);overflow-wrap:anywhere;margin:18px 0;font-size:15px;line-height:1.85}.spring-code{border:1px solid var(--border-themed);background:var(--bg-surface);border-radius:8px;min-width:0;margin:20px 0;overflow:hidden}.spring-code figcaption{color:var(--text-muted);border-bottom:1px solid var(--border-themed);padding:8px 14px;font-size:11px}.spring-code pre{tab-size:4;color:var(--text-primary);margin:0;padding:18px;font-size:12px;line-height:1.8;overflow-x:auto}.spring-pagination{border-top:1px solid var(--border-themed);flex-wrap:wrap;justify-content:space-between;gap:16px;margin:32px 0;padding:24px 0;font-size:14px;display:flex}.spring-pagination a{overflow-wrap:anywhere;max-width:100%}.spring-attribution{border-top:1px solid var(--border-themed);color:var(--text-secondary);margin-top:32px;padding-top:24px;font-size:12px;line-height:1.8}.spring-attribution p{margin:10px 0}.spring-credits{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0;font-size:13px;list-style:none;display:grid}.spring-credits small{color:var(--text-secondary);margin-top:4px;display:block}.spring-faq details{border-bottom:1px solid var(--border-themed);padding:18px 0}.spring-faq summary{cursor:pointer;font-weight:600}.spring-faq p{color:var(--text-secondary);margin-top:12px;line-height:1.8}.spring-table-wrap{margin:20px 0;overflow:auto}.spring-table-wrap table{border-collapse:collapse;width:100%;font-size:13px}.spring-table-wrap th,.spring-table-wrap td{border-bottom:1px solid var(--border-themed);text-align:left;padding:10px}@media (width<=800px){.spring-reading-layout{grid-template-columns:1fr;gap:24px}.spring-toc{max-height:300px;position:static}}@media (width<=600px){.spring-chapters{grid-template-columns:1fr}.spring-credits{grid-template-columns:repeat(2,minmax(0,1fr))}.spring-note{padding:18px}}@media print{.spring-toc,.spring-actions,.spring-pagination{display:none}.spring-reading-layout{display:block}.spring-code pre{white-space:pre-wrap;overflow-wrap:anywhere}}
