/* Page specific styles (archive, links, register, about etc.) */
:root {
  --page-max-width: 880px;
}

.page-header { margin-bottom:32px; text-align:center; }
.page-header .page-title { font-size:2.1rem; margin:0 0 8px; background:linear-gradient(135deg,var(--main-color),var(--dark-main-color)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.page-description { color:var(--text-secondary); font-size:.95rem; }

.archive-page .archive-section { margin-bottom:40px; }
.archive-page h2 { font-size:1.25rem; margin:0 0 14px; position:relative; }
.archive-page h2:after { content:""; position:absolute; left:50%; transform:translateX(-50%); bottom:-6px; width:46px; height:3px; border-radius:3px; background:linear-gradient(90deg,var(--main-color),var(--dark-main-color)); }
.archive-page ul { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px 18px; }
.archive-years li a, .archive-cats li a { position:relative; padding:6px 14px; border-radius:22px; font-size:.85rem; background:var(--bg-elevate,#f5f7f6); color:var(--text-primary); display:inline-block; transition:.25s; }
[data-theme="dark"] .archive-years li a, [data-theme="dark"] .archive-cats li a { background:#2a2d2c; }
.archive-years li a:hover, .archive-cats li a:hover { background:linear-gradient(135deg,var(--main-color),var(--dark-main-color)); color:#fff; }
.archive-tags { padding:14px 18px; background:var(--bg-elevate,#f5f7f6); border:1px solid var(--border-primary); border-radius:14px; }
[data-theme="dark"] .archive-tags { background:#222; }
.archive-tags a { text-decoration:none; margin:4px 10px; display:inline-block; color:var(--text-secondary); transition:.25s; }
.archive-tags a:hover { color:var(--main-color); transform:translateY(-2px); }
.recent-posts { list-style:none; margin:0; padding:0; }
.recent-posts li { display:flex; gap:10px; padding:8px 0; border-bottom:1px dashed var(--border-primary); }
.recent-posts li:last-child { border-bottom:none; }
.recent-posts .date { min-width:95px; font-family:var(--font-mono,monospace); font-size:.8rem; color:var(--text-secondary); }

/* Links page */
.links-page .friend-links { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:14px; }
.links-page .friend-links li a { display:block; padding:10px 14px; border:1px solid var(--border-primary); border-radius:12px; background:var(--bg-elevate,#f3f5f4); font-size:.85rem; text-decoration:none; color:var(--text-primary); transition:.3s; }
.links-page .friend-links li a:hover { background:linear-gradient(135deg,var(--main-color),var(--dark-main-color)); color:#fff; box-shadow:0 8px 24px -8px rgba(0,0,0,.28); transform:translateY(-4px); }
[data-theme="dark"] .links-page .friend-links li a { background:#2a2d2c; }
.links-apply ol { padding-left:18px; font-size:.9rem; line-height:1.6; }
.links-apply h2 { margin-top:50px; }

/* Register page */
.register-form { max-width:420px; margin:0 auto; background:var(--bg-elevate,#f6f8f7); padding:28px 32px 34px; border:1px solid var(--border-primary); border-radius:18px; box-shadow:0 10px 36px -14px rgba(0,0,0,.18); }
[data-theme="dark"] .register-form { background:#222; }
.register-form .form-group { margin-bottom:18px; display:flex; flex-direction:column; gap:6px; }
.register-form label { font-weight:600; font-size:.85rem; letter-spacing:.5px; }
.register-form input { border:1px solid var(--border-primary); background:var(--bg-primary); padding:10px 14px; border-radius:10px; font-size:.9rem; }
.register-form input:focus { outline:2px solid var(--main-color); outline-offset:2px; }
.register-form .btn.primary { background:linear-gradient(135deg,var(--main-color),var(--dark-main-color)); color:#fff; border:none; padding:10px 18px; border-radius:10px; cursor:pointer; font-size:.9rem; }
.register-form .btn.primary:hover { filter:brightness(1.08); }
.register-page .tips { margin-top:16px; font-size:.8rem; color:var(--text-secondary); text-align:center; }

/* Common container width adjust */
.archive-page .container, .links-page .container, .register-page .container { max-width:var(--page-max-width); }
.about-page .container { max-width:var(--page-max-width); }

/* About page */
.about-hero { text-align:center; margin:0 0 40px; }
.about-avatar { width:110px; height:110px; border-radius:50%; object-fit:cover; border:4px solid var(--bg-primary); box-shadow:0 6px 20px -6px rgba(0,0,0,.3); }
.about-site-title { font-size:1.8rem; margin:18px 0 6px; }
.about-tagline { color:var(--text-secondary); font-size:.9rem; }
.about-content { line-height:1.85; font-size:.95rem; margin:0 auto 42px; }
.about-content p { margin:1em 0; }
.about-stats { margin:10px 0 50px; }
.about-stats h3 { font-size:1.1rem; margin:0 0 18px; text-align:center; }
.stats-list { list-style:none; margin:0; padding:0; display:flex; justify-content:center; gap:40px; }
.stats-list li { text-align:center; }
.stats-list .num { display:block; font-size:1.4rem; font-weight:600; background:linear-gradient(135deg,var(--main-color),var(--dark-main-color)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.stats-list .label { font-size:.7rem; letter-spacing:1px; text-transform:uppercase; color:var(--text-secondary); }
.about-social { margin:0 0 60px; }
.about-social h3 { text-align:center; margin:0 0 20px; }
.social-list { list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:10px 16px; justify-content:center; }
.social-list a, .social-list .email { font-size:.75rem; letter-spacing:.6px; padding:8px 14px; border-radius:22px; background:var(--bg-elevate,#f5f7f6); border:1px solid var(--border-primary); text-decoration:none; color:var(--text-secondary); transition:.25s; }
.social-list a:hover { background:linear-gradient(135deg,var(--main-color),var(--dark-main-color)); color:#fff; }
[data-theme="dark"] .social-list a, [data-theme="dark"] .social-list .email { background:#2a2d2c; }

/* Archive index layout */
.archive-index-page .archive-layout { display:grid; grid-template-columns:260px 1fr; gap:38px; }
@media (max-width:960px){ .archive-index-page .archive-layout { grid-template-columns:1fr; } .archive-sidebar { order:2; } }
.archive-sidebar { position:sticky; top:90px; align-self:start; max-height:calc(100vh - 120px); overflow:auto; padding-right:4px; }
.archive-sidebar-title { font-size:1rem; font-weight:600; margin:0 0 14px; letter-spacing:.5px; }
.month-archive-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.year-group > .year-label { display:block; font-size:.85rem; font-weight:600; letter-spacing:1px; margin:10px 0 6px; color:var(--text-secondary); }
.year-group .inner-months { list-style:none; margin:0; padding:0 0 0 4px; display:flex; flex-direction:column; gap:4px; }
.year-group .inner-months a { display:block; padding:6px 10px 6px 14px; font-size:.78rem; border-radius:8px; text-decoration:none; background:var(--bg-elevate,#f5f7f6); color:var(--text-secondary); border:1px solid var(--border-primary); transition:.25s; }
.year-group .inner-months a:hover { background:linear-gradient(135deg,var(--main-color),var(--dark-main-color)); color:#fff; }
[data-theme="dark"] .year-group .inner-months a { background:#2a2d2c; }
.archive-main .posts-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:28px; }
/* Collapsible years */
.year-group { border:1px solid var(--border-primary); border-radius:12px; padding:6px 10px 8px; background:var(--bg-elevate,#f6f8f7); }
[data-theme="dark"] .year-group { background:#222; }
.year-group + .year-group { margin-top:10px; }
.year-group .year-toggle { all:unset; display:flex; align-items:center; gap:8px; cursor:pointer; width:100%; padding:4px 4px 6px; }
.year-group .chevron { width:10px; height:10px; display:inline-block; position:relative; }
.year-group .chevron:before, .year-group .chevron:after { content:""; position:absolute; inset:0; margin:auto; width:8px; height:2px; background:var(--text-secondary); transition:.25s; transform-origin:center; }
.year-group .chevron:before { transform:rotate(45deg) translate(2px,2px); }
.year-group .chevron:after { transform:rotate(-45deg) translate(-2px,2px); }
.year-group[data-collapsed="true"] .chevron:before { transform:rotate(-45deg) translate(2px,-2px); }
.year-group[data-collapsed="true"] .chevron:after { transform:rotate(45deg) translate(-2px,-2px); }
.year-group .year-label { font-size:.9rem; font-weight:600; letter-spacing:.5px; }
.year-group[data-collapsed="true"] .inner-months { display:none; }

/* Generic page */
.page-default .page-article { max-width:var(--page-max-width); margin:0 auto 60px; }
.page-article-header { text-align:center; margin:0 0 30px; }
.page-article-title { font-size:2rem; margin:0 0 12px; font-weight:700; letter-spacing:.5px; }
.page-article-meta { font-size:.7rem; letter-spacing:.5px; color:var(--text-secondary); display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.page-feature-img { margin:26px auto 0; border-radius:20px; overflow:hidden; max-width:100%; box-shadow:0 10px 34px -12px rgba(0,0,0,.25); }
.page-feature-img img { width:100%; height:100%; object-fit:cover; display:block; }
.page-article-content { font-size:.98rem; line-height:1.85; }
.page-article-content p { margin:1em 0; }
.page-article-content h2, .page-article-content h3 { margin:2.2em 0 1em; line-height:1.35; font-weight:600; }
.page-article-comments { margin-top:50px; }

/* Taxonomy (category & tag) */
.taxonomy-page .posts-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:28px; }
.taxonomy-page .page-header { text-align:center; margin-bottom:38px; }
.taxonomy-page .page-title { font-size:2rem; margin:0 0 10px; }
.taxonomy-page .page-description { font-size:.85rem; color:var(--text-secondary); }

/* Card adjustments if needed inside taxonomy/page context */
.taxonomy-page .post-card, .archive-index-page .post-card { transition:box-shadow .3s, transform .3s; }
.taxonomy-page .post-card:hover, .archive-index-page .post-card:hover { box-shadow:0 14px 40px -10px rgba(0,0,0,.28); transform:translateY(-6px); }

@media (max-width:960px){
  .page-article-title { font-size:1.7rem; }
  .taxonomy-page .page-title { font-size:1.7rem; }
}
