:root{
    --ink:#1b2028; --ink-2:#2b333e; --paper:#f6f4ef; --card:#ffffff;
    --red:#8c1f28; --red-2:#a8353d; --gold:#b98a4a; --muted:#7c828c; --line:#e7e1d7;
    --shadow:0 12px 34px rgba(27,32,40,.08);
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;
    font-size:15px;line-height:1.75;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
h1,h2,h3,h4{font-family:"Songti SC","SimSun",Georgia,serif;font-weight:700;line-height:1.35}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.muted{color:var(--muted)}
.small{font-size:13px}
.center{text-align:center}

/* ── 头部 ── */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;gap:26px;height:74px}
.brand{display:flex;align-items:center;gap:12px}
.brand img{width:42px;height:42px}
.brand-text strong{display:block;font-family:"Songti SC","SimSun",serif;font-size:19px;letter-spacing:.5px}
.brand-text em{display:block;font-style:normal;font-size:12px;color:var(--muted)}
.main-nav{display:flex;gap:22px;margin-left:auto}
.main-nav a{position:relative;padding:6px 0;font-size:15px;color:var(--ink-2)}
.main-nav a:hover{color:var(--red)}
.main-nav a.active{color:var(--red);font-weight:700}
.main-nav a.active::after{content:"";position:absolute;left:0;right:0;bottom:-16px;height:2px;background:var(--red)}
.header-actions{margin-left:8px}
.btn-ghost{border:1px solid var(--line);padding:7px 16px;border-radius:8px;font-size:14px;color:var(--ink-2);
    background:#fff;transition:.2s}
.btn-ghost:hover{border-color:var(--red);color:var(--red)}
.site-notice{background:#fdf7e8;border-bottom:1px solid #f0e4c8;font-size:13.5px;color:#7a5c1c;padding:8px 0}

/* ── 按钮 ── */
.btn{display:inline-block;background:var(--red);color:#fff;padding:11px 24px;border-radius:9px;border:0;
    font-size:15px;cursor:pointer;transition:.2s}
.btn:hover{background:var(--red-2)}
.btn-outline{display:inline-block;border:1px solid var(--red);color:var(--red);padding:10px 22px;border-radius:9px;
    background:transparent;cursor:pointer}
.btn-outline:hover{background:var(--red);color:#fff}
.btn-sm{padding:6px 14px;font-size:13px;border-radius:7px}
.btn-gray{background:#eceff3;color:var(--ink-2)}
.btn-gray:hover{background:#e1e5ea;color:var(--ink)}

/* ── 首页 Hero ── */
.hero{position:relative;overflow:hidden;background:
    radial-gradient(circle at 15% 20%,rgba(185,138,74,.22),transparent 55%),
    radial-gradient(circle at 85% 10%,rgba(140,31,40,.32),transparent 50%),
    linear-gradient(135deg,#1b2028,#2f3843 60%,#232a33);color:#fff;padding:64px 0 56px}
.hero::after{content:"";position:absolute;inset:0;opacity:.06;
    background-image:repeating-linear-gradient(45deg,#fff 0 2px,transparent 2px 22px)}
.hero .wrap{position:relative;z-index:1}
.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:44px;align-items:center}
.hero h1{font-size:38px;margin:0 0 14px;letter-spacing:1px}
.hero p.lead{color:rgba(255,255,255,.78);font-size:16px;max-width:640px;margin:0 0 26px}
.hero-search{display:flex;gap:10px;max-width:520px}
.hero-search input{flex:1;padding:13px 16px;border-radius:9px;border:1px solid rgba(255,255,255,.2);
    background:rgba(255,255,255,.1);color:#fff;font-size:15px}
.hero-search input::placeholder{color:rgba(255,255,255,.55)}
.hero-search button{background:var(--gold);color:#2a1c06;border:0;border-radius:9px;padding:0 26px;font-size:15px;cursor:pointer}
.hero-headlines{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:20px 22px}
.hero-headlines h3{font-size:15px;margin:0 0 12px;color:#fff;letter-spacing:.5px}
.hero-headlines ul{list-style:none;margin:0;padding:0}
.hero-headlines li{padding:9px 0;border-bottom:1px dashed rgba(255,255,255,.16);font-size:14px}
.hero-headlines li:last-child{border-bottom:0}
.hero-headlines a:hover{color:var(--gold)}
.hero-headlines .meta{display:block;font-size:12px;color:rgba(255,255,255,.55);margin-top:2px}

/* ── 数据条 ── */
.stat-bar{background:#fff;box-shadow:var(--shadow);border-radius:16px;margin:-34px auto 0;position:relative;z-index:2;
    display:grid;grid-template-columns:repeat(4,1fr);max-width:1180px}
.stat-bar div{padding:22px 10px;text-align:center;border-right:1px solid var(--line)}
.stat-bar div:last-child{border-right:0}
.stat-bar strong{display:block;font-size:28px;color:var(--red);font-family:Georgia,serif}
.stat-bar span{font-size:13.5px;color:var(--muted)}

/* ── 通用区块 ── */
.section{padding:56px 0 10px}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:26px;gap:20px}
.section-head h2{font-size:25px;margin:0 0 6px}
.section-head h2::after{content:"";display:block;width:44px;height:3px;background:var(--red);margin-top:10px;border-radius:2px}
.section-head p{margin:0;color:var(--muted);font-size:14px}
.section-head .more{color:var(--red);font-size:14px;white-space:nowrap}

/* ── 协会卡片 ── */
.grid{display:grid;gap:22px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.assoc-card{background:var(--card);border-radius:14px;overflow:hidden;box-shadow:var(--shadow);display:flex;
    flex-direction:column;transition:.25s}
.assoc-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(27,32,40,.13)}
.assoc-cover{height:120px;background-size:cover;background-position:center;position:relative}
.assoc-cover .logo{width:56px;height:56px;border-radius:12px;border:3px solid #fff;position:absolute;left:22px;
    bottom:-26px;background:#fff;object-fit:cover}
.assoc-body{padding:34px 22px 22px;display:flex;flex-direction:column;flex:1}
.assoc-body h3{margin:0 0 6px;font-size:18px}
.assoc-body .region{font-size:13px;color:var(--muted);margin-bottom:10px}
.assoc-body .intro{font-size:13.5px;color:#5b6270;flex:1}
.assoc-meta{display:flex;gap:16px;margin-top:14px;font-size:13px;color:var(--muted);border-top:1px dashed var(--line);
    padding-top:12px}
.assoc-meta b{color:var(--ink);font-family:Georgia,serif}

/* ── 动态列表 ── */
.filter-chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:22px}
.chip{border:1px solid var(--line);background:#fff;border-radius:20px;padding:6px 16px;font-size:13.5px;color:var(--ink-2)}
.chip:hover{border-color:var(--red);color:var(--red)}
.chip.active{background:var(--red);border-color:var(--red);color:#fff}
.news-list{display:grid;gap:16px}
.news-item{display:flex;gap:18px;background:#fff;border-radius:12px;padding:16px;box-shadow:0 6px 20px rgba(27,32,40,.05)}
.news-item .thumb{width:172px;height:114px;flex:0 0 172px;border-radius:9px;background-size:cover;background-position:center;
    background-color:#f0ece5}
.news-item h3{margin:0 0 8px;font-size:17px}
.news-item h3 a:hover{color:var(--red)}
.news-item p{margin:0 0 10px;font-size:13.5px;color:#5b6270}
.news-item .meta{font-size:12.5px;color:var(--muted);display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.tag{display:inline-block;font-size:12px;border-radius:5px;padding:2px 9px;background:#f1efe9;color:#6b6f78}
.tag-assoc{background:#f7ecec;color:var(--red)}
.badge{display:inline-block;font-size:12px;border-radius:5px;padding:2px 9px;color:#fff}
.badge.lv1{background:linear-gradient(135deg,#a8353d,#7d1a22)}
.badge.lv2{background:linear-gradient(135deg,#c9a05c,#a3762f)}
.badge.lv3{background:#8b939f}
.dot-top{background:var(--red);color:#fff;font-size:11px;border-radius:4px;padding:1px 6px}

/* ── 名家卡片 ── */
.artist-card{background:#fff;border-radius:14px;padding:24px 18px 18px;text-align:center;box-shadow:var(--shadow);
    display:flex;flex-direction:column}
.artist-card .avatar{width:96px;height:96px;border-radius:50%;object-fit:cover;margin:0 auto 14px;border:3px solid #f3efe7}
.artist-card h3{margin:0 0 4px;font-size:17px}
.artist-card .pos{font-size:12.5px;color:var(--muted);min-height:20px}
.artist-card .spec{font-size:13px;color:#5b6270;margin:10px 0 12px;flex:1}
.artist-card .foot{display:flex;align-items:center;justify-content:space-between;border-top:1px dashed var(--line);
    padding-top:12px;font-size:13px}
.like-btn{background:#f7f0f0;color:var(--red);border:0;border-radius:20px;padding:5px 14px;font-size:13px;cursor:pointer}
.like-btn:hover{background:#f2e2e3}

/* ── 详情页 ── */
.page-head{background:#fff;border-bottom:1px solid var(--line);padding:26px 0}
.crumb{font-size:13px;color:var(--muted);margin-bottom:8px}
.crumb a:hover{color:var(--red)}
.page-head h1{margin:0;font-size:26px}
.detail{background:#fff;border-radius:14px;padding:34px 38px;box-shadow:var(--shadow)}
.detail .meta{font-size:13px;color:var(--muted);display:flex;gap:16px;flex-wrap:wrap;padding-bottom:18px;
    border-bottom:1px solid var(--line);margin-bottom:22px}
.article{font-size:16px;line-height:2;color:#343a44}
.article img{border-radius:10px;margin:16px 0}
.article p{margin:0 0 16px}
.artist-hero{display:grid;grid-template-columns:220px 1fr;gap:30px;align-items:start}
.artist-hero .photo{width:100%;border-radius:14px;object-fit:cover;background:#f0ece5}
.kv{display:grid;grid-template-columns:104px 1fr;gap:8px 14px;font-size:14.5px;margin:0}
.kv dt{color:var(--muted)}
.kv dd{margin:0}
.side-card{background:#fff;border-radius:14px;padding:22px;box-shadow:var(--shadow)}
.side-card h3{font-size:16px;margin:0 0 14px;padding-left:10px;border-left:3px solid var(--red)}
.side-card ul{list-style:none;margin:0;padding:0;font-size:14px}
.side-card li{padding:8px 0;border-bottom:1px dashed var(--line)}
.side-card li:last-child{border-bottom:0}
.layout-2{display:grid;grid-template-columns:1fr 320px;gap:26px;align-items:start}

/* ── 表单 ── */
.form-card{background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:30px 34px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 22px}
.form-grid .full{grid-column:1/-1}
.field label{display:block;font-size:13.5px;color:#5b6270;margin-bottom:6px}
.field label em{color:var(--red);font-style:normal;margin-left:3px}
.field input[type=text],.field input[type=password],.field input[type=email],.field input[type=number],
.field input[type=date],.field select,.field textarea{width:100%;padding:10px 12px;border:1px solid var(--line);
    border-radius:9px;font-size:14.5px;background:#fdfcfa;font-family:inherit}
.field textarea{min-height:110px;resize:vertical;line-height:1.7}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--red);background:#fff}
.field .hint{font-size:12px;color:var(--muted);margin-top:5px}
.check{display:flex;align-items:center;gap:8px;font-size:14px;margin-top:6px}
.form-actions{margin-top:24px;display:flex;gap:12px;align-items:center}

/* ── 分页 ── */
.pager{display:flex;gap:8px;align-items:center;justify-content:center;margin:34px 0 10px;flex-wrap:wrap}
.pager a,.pager span{padding:7px 14px;border-radius:8px;background:#fff;border:1px solid var(--line);font-size:14px}
.pager a:hover{border-color:var(--red);color:var(--red)}
.pager .current{background:var(--red);border-color:var(--red);color:#fff}
.pager-info{border:0!important;background:transparent!important;color:var(--muted);font-size:13px}

/* ── 页脚 ── */
.site-footer{background:var(--ink);color:rgba(255,255,255,.72);margin-top:66px;padding:46px 0 0;font-size:13.5px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:30px;padding-bottom:32px}
.site-footer h4{color:#fff;font-size:15px;margin:0 0 14px}
.site-footer p{margin:0;line-height:1.9}
.footer-links,.footer-contact{list-style:none;margin:0;padding:0}
.footer-links li,.footer-contact li{padding:5px 0}
.footer-links a:hover{color:var(--gold)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding:16px 0;font-size:12.5px;color:rgba(255,255,255,.5)}

/* ── 空状态 ── */
.empty{background:#fff;border:1px dashed var(--line);border-radius:12px;padding:40px;text-align:center;color:var(--muted)}

/* ══════════ 后台 ══════════ */
.admin-body{background:#f2f3f5;display:flex;min-height:100vh}
.admin-side{width:224px;flex:0 0 224px;background:#1b2028;color:rgba(255,255,255,.75);padding:20px 0}
.admin-side .brand{padding:0 20px 18px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:14px}
.admin-side .brand img{width:34px;height:34px}
.admin-side .brand strong{font-size:15px;color:#fff;font-family:inherit}
.admin-side .brand em{font-size:11.5px;color:rgba(255,255,255,.5)}
.admin-menu{list-style:none;margin:0;padding:0}
.admin-menu a{display:block;padding:11px 20px;font-size:14px;border-left:3px solid transparent}
.admin-menu a:hover{background:rgba(255,255,255,.06);color:#fff}
.admin-menu a.active{background:rgba(140,31,40,.28);border-left-color:var(--red);color:#fff}
.admin-main{flex:1;min-width:0;display:flex;flex-direction:column}
.admin-top{background:#fff;border-bottom:1px solid #e3e6ea;padding:0 26px;height:62px;display:flex;align-items:center;
    justify-content:space-between}
.admin-top h1{font-size:17px;margin:0;font-family:inherit}
.admin-top .who{font-size:13.5px;color:#5b6270;display:flex;gap:14px;align-items:center}
.admin-content{padding:24px 26px 60px}
.panel{background:#fff;border-radius:12px;box-shadow:0 4px 16px rgba(27,32,40,.06);padding:22px 24px;margin-bottom:20px}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.panel-head h2{font-size:16px;margin:0;font-family:inherit}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.toolbar input[type=text],.toolbar select{padding:8px 12px;border:1px solid #dfe3e8;border-radius:8px;font-size:14px}
table.data{width:100%;border-collapse:collapse;font-size:14px}
table.data th{text-align:left;font-weight:600;color:#5b6270;background:#f7f8fa;padding:11px 12px;font-size:13px;
    white-space:nowrap}
table.data td{padding:11px 12px;border-top:1px solid #eef0f3;vertical-align:middle}
table.data tr:hover td{background:#fcfcfd}
table.data img.thumb{width:54px;height:38px;object-fit:cover;border-radius:6px}
table.data img.round{width:36px;height:36px;border-radius:50%;object-fit:cover}
.stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}
.stat-card{background:#fff;border-radius:12px;padding:18px 20px;box-shadow:0 4px 16px rgba(27,32,40,.06)}
.stat-card span{font-size:13px;color:#68707c}
.stat-card strong{display:block;font-size:26px;font-family:Georgia,serif;margin-top:6px;color:#1b2028}
.alert{padding:12px 16px;border-radius:9px;font-size:14px;margin-bottom:16px}
.alert-success{background:#edf7ed;color:#1f6b31}
.alert-error{background:#fdecec;color:#a12020}
.alert-info{background:#eef4fb;color:#245c92}
.pill{display:inline-block;font-size:12px;padding:2px 10px;border-radius:20px;background:#eef0f3;color:#5b6270}
.pill-on{background:#e7f5ea;color:#1f6b31}
.pill-off{background:#fdecec;color:#a12020}
.pill-wait{background:#fdf3e3;color:#8a5c12}
.inline-form{display:inline}
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;
    background:radial-gradient(circle at 20% 20%,rgba(185,138,74,.25),transparent 55%),
    linear-gradient(135deg,#1b2028,#333d49);padding:20px}
.login-box{background:#fff;border-radius:16px;padding:38px 40px;width:100%;max-width:420px;box-shadow:0 22px 60px rgba(0,0,0,.28)}
.login-box h1{font-size:21px;margin:0 0 6px}
.login-box .sub{color:var(--muted);font-size:13.5px;margin:0 0 24px}
.login-box .field{margin-bottom:16px}
.login-box .btn{width:100%;padding:12px;font-size:15px}
.login-tip{margin-top:18px;font-size:12.5px;color:var(--muted);text-align:center}

/* ── 响应式 ── */
@media (max-width:1000px){
    .grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}
    .hero-grid{grid-template-columns:1fr;gap:28px}
    .layout-2{grid-template-columns:1fr}
    .footer-grid{grid-template-columns:1fr 1fr}
    .stat-bar{grid-template-columns:repeat(2,1fr)}
    .stat-cards{grid-template-columns:repeat(2,1fr)}
    .artist-hero{grid-template-columns:1fr}
}
@media (max-width:720px){
    .header-inner{height:auto;flex-wrap:wrap;padding:12px 0;gap:12px}
    .main-nav{width:100%;margin-left:0;overflow-x:auto;gap:18px}
    .main-nav a.active::after{display:none}
    .grid-3,.grid-4{grid-template-columns:1fr}
    .news-item{flex-direction:column}
    .news-item .thumb{width:100%;flex:none;height:160px}
    .hero h1{font-size:27px}
    .form-grid{grid-template-columns:1fr}
    .detail{padding:22px 20px}
    .admin-body{flex-direction:column}
    .admin-side{width:100%;flex:none}
    .admin-menu a{display:inline-block;border-left:0;border-bottom:3px solid transparent;padding:10px 14px}
    .admin-menu a.active{border-left:0;border-bottom-color:var(--red)}
    .admin-side .brand{border-bottom:0;margin-bottom:0}
    .footer-grid{grid-template-columns:1fr}
}
