/* Shared frame for the directory, introduction pages, and native tools. */
.sidebar-toggle { display:flex; align-items:center; gap:11px; min-height:40px; margin:-23px 0 22px; padding:9px 12px; border:0; border-radius:5px; color:var(--muted); background:transparent; text-align:left; font-size:12px; }
.sidebar-toggle:hover { background:var(--surface); color:var(--fg); }
.sidebar-toggle svg { width:18px; height:18px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.5; }
.sidebar, .directory-main { transition:width 300ms ease, margin-left 300ms ease; }
.sidebar-collapsed .sidebar { width:72px; padding-inline:10px; }
.sidebar-collapsed .directory-main { margin-left:72px; }
.sidebar-collapsed .brand { padding:0; justify-content:center; }
.sidebar-collapsed .brand > span, .sidebar-collapsed .sidebar-label, .sidebar-collapsed .filter > span, .sidebar-collapsed .sidebar-links, .sidebar-collapsed .sidebar-bottom, .sidebar-collapsed .sidebar-toggle > span { display:none; }
.sidebar-collapsed .filter, .sidebar-collapsed .sidebar-toggle { justify-content:center; padding-inline:0; }
.sidebar-collapsed .sidebar-toggle svg { transform:rotate(180deg); }
/* 展开时文字保持单行，由“解码”动画从左往右逐个确定，不再被窄侧栏挤成竖排 */
.brand > span, .sidebar-label, .filter > span, .sidebar-links > a, .sidebar-toggle > span, .sidebar-bottom { white-space:nowrap; }
.directory-main > main:not(.directory-content) { width:100%; max-width:1200px; margin:0 auto; padding:34px 40px 48px; flex:1; }
.directory-main > main h1 { font-size:28px; line-height:1.4; font-weight:650; letter-spacing:-.6px; }
.tool-intro { padding:24px 0 32px; animation:none; }
.tool-intro h1 { margin:9px 0 14px; }
.title-period { display:none; }
.eyebrow, .tool-eyebrow { color:var(--muted); font-size:11px; letter-spacing:.05em; }
.site-definition, .hero-description { max-width:85ch; font-size:14px; line-height:1.9; color:var(--muted); margin:16px 0; }
.button { display:inline-flex; align-items:center; gap:12px; margin-top:18px; padding:10px 18px; border:1px solid var(--accent); border-radius:5px; background:var(--accent); color:#fff; font-size:13px; font-weight:550; cursor:pointer; transition:background 140ms, transform 140ms; }
.button:hover { background:#294e3b; transform:translateY(-1px); }
.button:active { transform:translateY(1px); }
.text-link { display:inline-block; margin-top:18px; color:var(--accent); text-decoration:underline; text-underline-offset:4px; }
.tool-section { padding:28px 0; }
.tool-section h2 { font-size:20px; margin:0 0 18px; }
.tool-section h3 { font-size:15px; }
.tool-section p, .tool-section li { font-size:14px; }
.tool-page .tool-requirements { margin-left:0; font-size:12px; }
.faq details { border-top:1px solid var(--line); padding:16px 0; }
.faq summary { cursor:pointer; font-size:14px; font-weight:550; }
.faq details p { margin-top:12px; }
.guide-title { margin:26px 0 10px; font-size:18px; }
.tool-header { margin-top:0; }
.tool-header h1 { margin:8px 0 12px; }
.tool-shell .tool-navigation { font-size:12px; }
.toolbox-directory h1 { margin:9px 0 14px; }
.toolbox-directory li a { border:1px solid var(--line); border-radius:12px; background:#fcfcf9; padding:24px; }
.toolbox-directory li a:hover { border-color:#a9b9ac; }
.toolbox-directory li a.tool-card-surface { transition:transform 350ms ease-out, box-shadow 350ms ease-out, border-color 350ms ease-out; }
.toolbox-directory li a.tool-card-surface[data-tilting] { transition-duration:100ms; }
.toolbox-directory h3 { font-size:16px; }
.directory-main .hero-note { color:var(--muted); margin-top:24px; }
.tool-shell input, .tool-shell select, .tool-shell textarea { color:var(--fg); color-scheme:light; }
@media (max-width:1050px) { .directory-main > main:not(.directory-content) { padding-inline:26px; } }
@media (max-width:760px) {
 .sidebar { position:relative; }
 .sidebar-toggle { position:absolute; top:16px; right:16px; margin:0; }
 .sidebar-toggle > span { display:none; }
 .sidebar-collapsed .sidebar { width:100%; padding:20px 16px 12px; }
 .sidebar-collapsed .brand { justify-content:flex-start; margin-bottom:0; }
 .sidebar-collapsed .brand > span { display:flex; }
 .sidebar-collapsed .filters { display:none; }
 .sidebar-collapsed .directory-main { margin-left:0; }
 .directory-main > main:not(.directory-content) { padding:24px 20px 36px; }
 .directory-main > main h1 { font-size:25px; }
}
@media (prefers-reduced-motion:reduce) { *, *::before, *::after { transition:none!important; animation:none!important; } }
