:root { --ink:#22242a; --muted:#6d727b; --line:#e0e3e8; --paper:#faf9f6; --accent:#8a6d3b; }
* { box-sizing: border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font:15px/1.7 "Microsoft YaHei","PingFang SC",sans-serif; }
.wrap { max-width:1100px; margin:0 auto; padding:0 28px; }
.site-head { border-bottom:1px solid var(--line); background:#fff; }
.site-head .wrap { display:flex; align-items:center; justify-content:space-between; height:66px; }
.brand { font-size:17px; font-weight:700; color:var(--ink); text-decoration:none; letter-spacing:.5px; }
.brand span { display:block; font-size:9px; letter-spacing:2px; color:var(--muted); font-weight:400; margin-top:2px; }
.site-head nav a { color:var(--muted); text-decoration:none; margin-left:22px; font-size:14px; }
.site-head nav a:hover { color:var(--accent); }
main.wrap { padding:40px 28px 60px; }
.hero { margin-bottom:34px; }
.hero h1 { font-size:30px; margin:0 0 10px; letter-spacing:1px; }
.hero p { color:var(--muted); margin:0; max-width:640px; }
.grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-bottom:34px; }
.card { display:block; border:1px solid var(--line); background:#fff; text-decoration:none; color:inherit; padding:0 0 18px; }
.card:hover { border-color:var(--accent); }
.thumb { height:120px; width:100%; }
.card h3 { margin:16px 20px 6px; font-size:16px; }
.card p { margin:0 20px 10px; color:var(--muted); font-size:13px; }
.card .meta { margin:0 20px; font:11px/1 "Cascadia Code",Consolas,monospace; color:var(--accent); }
.panel { border:1px solid var(--line); background:#fff; padding:26px 28px; margin-bottom:26px; }
.panel h2 { margin:0 0 6px; font-size:20px; }
.panel h3 { margin:22px 0 10px; font-size:15px; color:var(--accent); }
.panel .sub { color:var(--muted); font-size:13px; margin:0 0 16px; }
.news { list-style:none; padding:0; margin:12px 0 18px; }
.news li { padding:9px 0; border-bottom:1px dashed var(--line); font-size:13.5px; color:#33363b; }
.news .date { font-family:"Cascadia Code",Consolas,monospace; color:var(--accent); margin-right:12px; font-size:12px; }
.tiny { color:#9aa0a6; font-size:12px; margin:0; }
.tiny a { color:var(--accent); }
table.mini { width:100%; border-collapse:collapse; font-size:13.5px; }
table.mini th, table.mini td { text-align:left; padding:9px 10px; border-bottom:1px solid var(--line); }
table.mini thead th { font-size:12px; color:var(--muted); border-bottom:1px solid #c9ced4; }
table.mini tbody tr:nth-child(even) { background:#fafbfc; }
table.mini .empty { color:#9aa0a6; text-align:center; padding:20px; }
.mono { font-family:"Cascadia Code",Consolas,monospace; font-size:12.5px; }
.form { max-width:460px; }
.form label { display:block; font-size:13px; color:var(--muted); margin-bottom:14px; }
.form input, .form select, .form textarea { display:block; width:100%; margin-top:6px; padding:9px 11px; border:1px solid var(--line); font-size:14px; font-family:inherit; background:#fff; }
.form input:focus, .form textarea:focus, .form select:focus { outline:none; border-color:var(--accent); }
.form button { padding:11px 30px; background:var(--accent); color:#fff; border:none; font-size:14px; cursor:pointer; font-family:inherit; }
.login-wrap { display:flex; justify-content:center; padding:30px 0; }
.login-card { width:380px; border:1px solid var(--line); background:#fff; padding:32px 30px; }
.login-card h2 { margin:0 0 4px; font-size:19px; }
.login-card .sub { color:var(--muted); font-size:12.5px; margin:0 0 22px; }
.login-card label { display:block; font-size:13px; color:var(--muted); margin-bottom:14px; }
.login-card input { display:block; width:100%; margin-top:6px; padding:9px 11px; border:1px solid var(--line); font-size:14px; font-family:inherit; }
.login-card input:focus { outline:none; border-color:var(--accent); }
.login-card button { width:100%; padding:11px; background:var(--accent); color:#fff; border:none; font-size:14px; cursor:pointer; margin-top:6px; font-family:inherit; }
.login-card .err { color:#a13d2a; background:#fdf3f0; border-left:3px solid #a13d2a; padding:9px 12px; font-size:13px; margin:0 0 16px; }
.login-card .foot { color:#9aa0a6; font-size:12px; margin:18px 0 0; text-align:center; }
.ok { color:#2c6e49; background:#f2f8f4; border-left:3px solid #2c6e49; padding:9px 12px; font-size:13px; }
.err { color:#a13d2a; background:#fdf3f0; border-left:3px solid #a13d2a; padding:9px 12px; font-size:13px; }
.admin-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:20px 0; }
.admin-item { border:1px solid var(--line); padding:16px; background:#fdfdfb; }
.admin-item h4 { margin:0 0 8px; font-size:14px; color:var(--accent); }
.admin-item p { margin:0; font-size:12.5px; color:var(--muted); }
.back { margin-top:22px; font-size:13px; }
.back a { color:var(--accent); text-decoration:none; }
.site-foot { border-top:1px solid var(--line); padding:20px 0; color:#9aa0a6; font-size:12px; text-align:center; }
@media (max-width:760px) { .grid, .admin-grid { grid-template-columns:1fr; } }