:root {
  --color-bg: #0d1117;
  --color-surface: #161b22;
  --color-border: #21262d;
  --color-primary: #58a6ff;
  --color-accent: #7ee787;
  --color-text: #e6edf3;
  --color-text-secondary: #8b949e;
  --color-text-muted: #484f58;
  --color-danger: #f85149;
  --color-warning: #d2991d;
  --font-body: 'Roboto', 'Noto Sans SC', system-ui, -apple-system, sans-serif;
  --font-heading: 'Roboto', 'Noto Sans SC', system-ui, -apple-system, sans-serif;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --transition-fast: 150ms ease;
  --transition-base: 250ms ease;
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.3);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.4);
  --header-height: 56px;
  --container-max: 1400px;
}

[data-theme="light"] {
  --color-bg: #ffffff;
  --color-surface: #f6f8fa;
  --color-border: #d0d7de;
  --color-primary: #0969da;
  --color-accent: #1a7f37;
  --color-text: #1f2328;
  --color-text-secondary: #656d76;
  --color-text-muted: #8b949e;
  --color-danger: #cf222e;
  --color-warning: #9a6700;
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.08);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.1);
}
[data-theme="light"] .home-hero__overlay{background:linear-gradient(135deg,rgba(255,255,255,0.88),rgba(255,255,255,0.7))}
[data-theme="light"] .home-hero__logo{color:var(--color-text)}
[data-theme="light"] .home-hero__slogan{color:var(--color-text-secondary)}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--color-primary);text-decoration:none}
ul,ol{list-style:none}
input,select,button{font:inherit;color:inherit}
button{cursor:pointer;border:none;background:none}
:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}
::selection{background:rgba(88,166,255,0.2)}
.container{max-width:var(--container-max);margin:0 auto;padding:0 16px}
.skip-link{position:absolute;top:-100%;left:16px;background:var(--color-primary);color:#fff;padding:8px 16px;border-radius:var(--radius-sm);font-size:14px;z-index:1000;transition:top .2s}
.skip-link:focus{top:8px}

.header{position:sticky;top:0;z-index:100;background:var(--color-bg);border-bottom:1px solid var(--color-border);height:var(--header-height);display:flex;align-items:center}
.header .container{width:100%;height:100%}
.header__inner{display:flex;align-items:center;justify-content:space-between;height:100%}
.header__left{flex:1}
.header__logo{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:18px;color:var(--color-text)}
.header__logo svg{flex-shrink:0}
.header__center{display:flex;align-items:center;gap:24px}
.header__link{font-size:14px;font-weight:500;color:var(--color-text-secondary);padding:6px 12px;border-bottom:2px solid transparent;transition:color var(--transition-fast),border-color var(--transition-fast)}
.header__link:hover,.header__link--active{color:var(--color-text);border-bottom-color:var(--color-primary)}
.header__right{flex:1;display:flex;align-items:center;gap:12px;justify-content:flex-end}
.header__search-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-sm);color:var(--color-text-secondary);transition:color var(--transition-fast);font-size:18px}
.header__search-btn:hover{color:var(--color-text)}
.header__hamburger{display:none;flex-direction:column;gap:4px;width:48px;height:48px;align-items:center;justify-content:center;padding:12px}
.header__hamburger span{display:block;width:22px;height:2px;background:var(--color-text);border-radius:1px;transition:all var(--transition-base)}
.header__hamburger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.header__hamburger[aria-expanded="true"] span:nth-child(2){opacity:0}
.header__hamburger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:600;border-radius:var(--radius-sm);transition:all var(--transition-fast);white-space:nowrap;min-height:40px}
.btn--sm{padding:6px 14px;font-size:13px;min-height:36px}
.btn--md{padding:10px 20px;font-size:14px}
.btn--lg{padding:12px 28px;font-size:16px;min-height:48px}
.btn--primary{background:var(--color-accent);color:#0d1117}
.btn--primary:hover{filter:brightness(1.1)}
.btn--outline{border:1px solid var(--color-border);color:var(--color-text-secondary)}
.btn--outline:hover{color:var(--color-text);border-color:var(--color-primary)}
.btn--ghost{color:var(--color-text-secondary)}
.btn--ghost:hover{color:var(--color-text);background:var(--color-surface)}

.dropdown{position:relative}
.dropdown__trigger{display:flex;align-items:center;gap:4px;font-size:14px;font-weight:500;color:var(--color-text-secondary);padding:6px 12px;border-bottom:2px solid transparent;transition:color var(--transition-fast)}
.dropdown__trigger:hover,.dropdown__trigger--active{color:var(--color-text)}
.dropdown__menu{position:absolute;top:100%;left:0;margin-top:8px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:8px;min-width:160px;box-shadow:var(--shadow-md);display:none;flex-direction:column;gap:2px;z-index:50}
.dropdown__menu--open{display:flex}
.dropdown__link{display:block;padding:8px 12px;font-size:13px;color:var(--color-text-secondary);border-radius:var(--radius-sm);transition:all var(--transition-fast)}
.dropdown__link:hover{color:var(--color-text);background:var(--color-bg)}
.dropdown__link--active{color:var(--color-primary)}

.theme-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:16px;transition:all var(--transition-fast)}
.theme-toggle:hover{color:var(--color-text);background:var(--color-surface)}

.mobile-menu{position:fixed;top:var(--header-height);left:0;right:0;bottom:0;background:var(--color-bg);z-index:99;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;opacity:0;visibility:hidden;transition:opacity var(--transition-base),visibility var(--transition-base)}
.mobile-menu--open{opacity:1;visibility:visible}
.mobile-menu__link{font-size:22px;font-weight:600;color:var(--color-text);padding:8px 0;transition:color var(--transition-fast)}
.mobile-menu__link:hover{color:var(--color-primary)}

.section{padding:48px 0}
.section__title{font-size:clamp(20px,2.5vw,28px);font-weight:700;color:var(--color-text);margin-bottom:8px;text-align:center}
.section__desc{font-size:14px;color:var(--color-text-secondary);text-align:center;margin-bottom:32px}

.home-hero{position:relative;padding:80px 0 60px;background-size:cover;background-position:center;background-repeat:no-repeat;background-color:var(--color-surface)}
.home-hero__overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(13,17,23,0.85),rgba(13,17,23,0.6));pointer-events:none}
.home-hero__logo{font-size:clamp(28px,4vw,40px);font-weight:800;color:#fff;text-align:center;margin-bottom:8px;letter-spacing:-1px}
.home-hero__slogan{font-size:14px;color:rgba(255,255,255,0.8);text-align:center;margin-bottom:32px}
.home-header{padding:16px 0;margin-bottom:32px}
.home-header__top{position:relative;display:flex;align-items:center;justify-content:center;padding-bottom:12px}
.home-header__logo{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:20px;color:var(--color-text)}
.home-header__top .theme-toggle{position:absolute;right:0;top:50%;transform:translateY(-50%)}
.home-header__nav{display:flex;align-items:center;justify-content:center;gap:20px}
.home-header__nav a{font-size:14px;font-weight:500;color:var(--color-text-secondary);padding:4px 12px;border-radius:var(--radius-sm);transition:all var(--transition-fast)}
.home-header__nav a:hover{color:var(--color-text);background:var(--color-surface)}

.search-banner{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:40px 32px;text-align:center;margin-bottom:40px}
.search-banner__input{width:100%;max-width:560px;height:48px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0 16px;font-size:16px;outline:none;transition:border-color var(--transition-fast)}
.search-banner__input:focus{border-color:var(--color-primary)}
.search-banner__tags{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:16px}
.filter-chip{padding:4px 14px;font-size:12px;font-weight:500;border-radius:20px;border:1px solid var(--color-border);color:var(--color-text-secondary);transition:all var(--transition-fast)}
.filter-chip:hover{color:var(--color-text);border-color:var(--color-text-muted)}
.filter-chip--active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}

.tag-cloud{padding:24px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center}
.tag-cloud__tag{display:inline-flex;align-items:center;font-size:12px;font-weight:500;padding:5px 14px;border-radius:16px;color:var(--color-text-secondary);background:var(--color-bg);border:1px solid var(--color-border);transition:all var(--transition-fast);white-space:nowrap}
.tag-cloud__tag:hover{color:var(--color-text);border-color:var(--color-primary)}
.tag-cloud__tag--l{font-size:15px;font-weight:700;padding:6px 16px;color:var(--color-text)}
.tag-cloud__tag--m{font-size:13px;font-weight:600;padding:5px 14px}
.tag-cloud__tag--s{font-size:11px;padding:4px 12px}

.card-grid{display:flex;flex-wrap:wrap;gap:4px}
.card-grid__item{flex:1 1 200px;min-width:150px;position:relative;border-radius:var(--radius-sm);overflow:hidden;background:var(--color-surface);transition:transform var(--transition-base);display:block}
.card-grid__item:hover{transform:scale(1.03);z-index:2}
.card-grid__img{width:100%;aspect-ratio:16/10;background:var(--color-border);display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--color-text-muted)}
.card-grid__info{position:absolute;bottom:0;left:0;right:0;padding:6px 8px;background:linear-gradient(transparent,rgba(0,0,0,0.75));font-size:11px;color:#fff;display:flex;justify-content:space-between;align-items:center;opacity:0;transition:opacity var(--transition-fast)}
.card-grid__item:hover .card-grid__info{opacity:1}

.news-section__grid{display:flex;flex-wrap:wrap;gap:12px}
.news-section__card{flex:1 1 180px;min-width:160px;border-radius:var(--radius-sm);overflow:hidden;background:var(--color-surface);border:1px solid var(--color-border);transition:transform var(--transition-base);display:block}
.news-section__card:hover{transform:translateY(-1px)}
.news-section__img{width:100%;aspect-ratio:16/10;background:var(--color-border)}
.news-section__info{padding:4px 8px;font-size:11px;color:var(--color-text-secondary);text-align:center}

.cta-box{text-align:center;padding:40px 20px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}
.cta-box__actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:16px}

.featured-wall{display:flex;flex-direction:column;gap:4px}
.featured-wall__row{display:flex;gap:4px}
.featured-wall__img{flex:1;background:var(--color-border);border-radius:var(--radius-sm);transition:transform var(--transition-base);display:block}
.featured-wall__img:hover{transform:scale(1.02)}
.featured-wall__row--lg .featured-wall__img{height:220px}
.featured-wall__row--md .featured-wall__img{height:150px}
.featured-wall__row--sm .featured-wall__img{height:100px}

.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 0;margin-bottom:16px}
.toolbar__search{flex:1;min-width:200px;height:40px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0 12px;font-size:14px;outline:none}
.toolbar__search:focus{border-color:var(--color-primary)}
.toolbar__group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.toolbar__select{height:36px;padding:0 10px;font-size:13px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);outline:none;cursor:pointer}
.toolbar__select:focus{border-color:var(--color-primary)}
.toolbar__label{font-size:13px;color:var(--color-text-secondary);white-space:nowrap}

.hot-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 0;margin-bottom:12px}
.hot-tags__label{font-size:12px;color:var(--color-text-muted);white-space:nowrap}
.hot-tags__tag{font-size:11px;padding:2px 10px;border-radius:12px;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-secondary);transition:all var(--transition-fast)}
.hot-tags__tag:hover{color:var(--color-primary);border-color:var(--color-primary)}

.time-tabs{display:flex;gap:4px;margin-bottom:16px}
.time-tab{padding:6px 16px;font-size:13px;font-weight:500;border-radius:var(--radius-sm);color:var(--color-text-secondary);transition:all var(--transition-fast)}
.time-tab:hover{color:var(--color-text)}
.time-tab--active{background:var(--color-primary);color:#fff}

.pagination{display:flex;gap:4px;justify-content:center;padding:24px 0}
.pagination__btn{padding:6px 12px;font-size:13px;border-radius:var(--radius-sm);border:1px solid var(--color-border);color:var(--color-text-secondary);transition:all var(--transition-fast)}
.pagination__btn:hover{color:var(--color-text);border-color:var(--color-primary)}
.pagination__btn--active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}
.pagination__btn--disabled{opacity:.4;pointer-events:none}

.detail-layout{display:flex;gap:24px;flex-wrap:wrap}
.detail-layout__preview{flex:3;min-width:320px}
.detail-layout__preview-img{width:100%;aspect-ratio:16/9;background:var(--color-border);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:14px}
.detail-layout__actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.detail-layout__sidebar{flex:1;min-width:260px}
.detail-layout__sidebar section{margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid var(--color-border)}
.detail-layout__sidebar section:last-child{border-bottom:none}

.res-table{width:100%;border-collapse:collapse;font-size:12px}
.res-table th{text-align:left;font-weight:600;color:var(--color-text);padding:4px 8px;border-bottom:1px solid var(--color-border)}
.res-table td{padding:3px 8px;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border)}
.res-table tr:last-child td{border-bottom:none}
.res-table td--active{color:var(--color-primary);font-weight:600}

.info-panel{font-size:13px;color:var(--color-text-secondary);line-height:1.8}
.info-panel__label{color:var(--color-text);font-weight:600}
.info-panel__tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}

.breadcrumb{font-size:12px;color:var(--color-text-muted);margin-bottom:12px}
.breadcrumb a{color:var(--color-text-secondary)}
.breadcrumb a:hover{color:var(--color-primary)}

.color-picker{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}
.color-picker__dot{width:20px;height:20px;border-radius:50%;border:2px solid var(--color-border);cursor:pointer;transition:border-color var(--transition-fast)}
.color-picker__dot:hover{border-color:var(--color-primary)}

.upload-zone{border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:48px;text-align:center;transition:border-color var(--transition-fast),background var(--transition-fast)}
.upload-zone:hover{border-color:var(--color-primary);background:var(--color-surface)}
.upload-zone__icon{font-size:40px;margin-bottom:12px;color:var(--color-text-muted)}
.upload-zone__text{font-size:14px;color:var(--color-text-secondary)}

.rule-box{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px;margin-bottom:12px;font-size:13px;color:var(--color-text-secondary)}

.form{max-width:420px;margin:0 auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:32px}
.form__title{font-size:22px;font-weight:700;text-align:center;margin-bottom:24px;color:var(--color-text)}
.form__group{margin-bottom:16px}
.form__label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--color-text)}
.form__input{width:100%;height:42px;padding:0 12px;font-size:14px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);outline:none;transition:border-color var(--transition-fast)}
.form__input:focus{border-color:var(--color-primary)}
.form__input--textarea{height:80px;padding:10px 12px;resize:vertical}
.form__checkbox{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-secondary)}
.form__submit{width:100%;height:44px;font-weight:600;font-size:15px;background:var(--color-accent);color:#0d1117;border-radius:var(--radius-sm);margin-top:8px;transition:filter var(--transition-fast)}
.form__submit:hover{filter:brightness(1.1)}
.form__footer{text-align:center;margin-top:16px;font-size:13px;color:var(--color-text-secondary)}
.form__footer a{color:var(--color-primary);font-weight:600}

.content-page{max-width:780px;margin:0 auto}
.content-page__title{font-size:clamp(22px,3vw,32px);font-weight:800;margin-bottom:24px;color:var(--color-text)}
.content-page section{margin-bottom:24px}
.content-page h2{font-size:18px;font-weight:700;margin-bottom:10px;color:var(--color-text)}
.content-page p{font-size:14px;color:var(--color-text-secondary);line-height:1.8;margin-bottom:10px}

.tab-nav{display:flex;gap:2px;border-bottom:2px solid var(--color-border);margin-bottom:24px}
.tab-nav__item{padding:8px 20px;font-size:14px;font-weight:500;color:var(--color-text-secondary);border-bottom:2px solid transparent;margin-bottom:-2px;transition:all var(--transition-fast)}
.tab-nav__item:hover{color:var(--color-text)}
.tab-nav__item--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}

.stats-grid{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.stats-card{flex:1 1 160px;min-width:140px;max-width:220px;text-align:center;padding:24px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}
.stats-card__value{font-size:clamp(22px,3vw,32px);font-weight:800;color:var(--color-primary)}
.stats-card__label{font-size:13px;color:var(--color-text-secondary);margin-top:4px}

.related-grid{display:flex;flex-wrap:wrap;gap:4px}
.related-grid__item{flex:1 1 120px;min-width:100px;border-radius:var(--radius-sm);overflow:hidden;background:var(--color-border);transition:transform var(--transition-base);display:block}
.related-grid__item:hover{transform:scale(1.04);z-index:2}
.related-grid__img{width:100%;aspect-ratio:16/10;background:var(--color-border);display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--color-text-muted)}

.help-grid{display:flex;flex-wrap:wrap;gap:12px}
.help-card{flex:1 1 220px;min-width:200px;padding:24px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:transform var(--transition-base)}
.help-card:hover{transform:translateY(-2px)}
.help-card__icon{font-size:28px;margin-bottom:12px}
.help-card__title{font-size:16px;font-weight:700;margin-bottom:6px;color:var(--color-text)}
.help-card__desc{font-size:13px;color:var(--color-text-secondary);line-height:1.6}

.faq-list{display:flex;flex-direction:column;gap:1px}
.faq-item{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}
.faq-item__question{padding:14px 18px;font-size:15px;font-weight:600;cursor:pointer;display:flex;justify-content:space-between;align-items:center;color:var(--color-text)}
.faq-item__question:hover{background:var(--color-surface)}
.faq-item__answer{padding:0 18px 14px;font-size:14px;color:var(--color-text-secondary);line-height:1.7;display:none}
.faq-item--open .faq-item__answer{display:block}

.empty-state{text-align:center;padding:60px 20px;color:var(--color-text-muted)}
.empty-state__icon{font-size:48px;margin-bottom:12px}
.empty-state__text{font-size:15px}

.footer{border-top:1px solid var(--color-border);padding:32px 0;text-align:center;font-size:12px;color:var(--color-text-muted);line-height:1.8}
.footer a{color:var(--color-text-secondary)}
.footer a:hover{color:var(--color-primary)}
.footer__stats{margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--color-border)}
.footer__stats-text{font-size:14px;color:var(--color-text-secondary);margin:6px 0;line-height:1.8}
.footer__stats-text strong{color:var(--color-primary);font-size:16px;font-weight:600}
.footer__bottom{font-size:12px;color:var(--color-text-muted)}

@media(max-width:1024px){
  .card-grid__item{flex:1 1 160px;min-width:130px}
  .stats-card{flex:1 1 140px}
}
@media(max-width:640px){
  .header__center{display:none}
  .header__hamburger{display:flex}
  .header__search-btn--mobile{display:flex}
  .section{padding:32px 0}
  .card-grid__item{flex:1 1 calc(50% - 2px);min-width:0}
  .card-grid__info{opacity:1;background:linear-gradient(transparent,rgba(0,0,0,0.6))}
  .detail-layout{flex-direction:column}
  .detail-layout__preview{min-width:0}
  .featured-wall__row--lg .featured-wall__img{height:140px}
  .featured-wall__row--md .featured-wall__img{height:100px}
  .featured-wall__row--sm .featured-wall__img{height:70px}
  .toolbar{flex-direction:column;align-items:stretch}
  .toolbar__search{flex:none}
  .form{padding:24px 16px}
  .stats-card{flex:1 1 calc(50% - 8px);min-width:120px}
  .related-grid__item{flex:1 1 calc(25% - 3px);min-width:0}
  .help-card{flex:1 1 100%}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
  .card-grid__item:hover{transform:none}
  .card-grid__info{opacity:1}
}
