:root { --ink:#2f2925; --muted:#81756d; --accent:#9b654f; --paper:#f7f3ee; --panel:#fffdf9; --line:#eadfd6; --sidebar:#302b28; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; color:var(--ink); background:var(--paper); font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif; }
button,input,textarea { font:inherit; }
button { cursor:pointer; }
.admin-shell { display:grid; grid-template-columns:238px minmax(0,1fr); min-height:100vh; }
.sidebar { display:flex; flex-direction:column; padding:32px 24px; background:var(--sidebar); color:#f8eee6; }
.brand-mark { display:grid; place-items:center; width:42px; height:42px; border:1px solid rgba(255,255,255,.35); border-radius:50%; color:#f4c9ae; font:27px "Songti SC",serif; }
.brand-title { margin-top:20px; font:26px "Songti SC",serif; letter-spacing:4px; }
.brand-subtitle { margin-top:8px; color:#bba89c; font-size:12px; letter-spacing:2px; }
.nav { display:grid; gap:8px; margin-top:56px; }
.nav-item { padding:12px 14px; border:0; border-radius:10px; background:transparent; color:#bbaea6; text-align:left; font-size:14px; }
.nav-item:hover,.nav-item.active { background:#51423a; color:#fffaf4; }
.sidebar-foot { margin-top:auto; color:#998d85; font-size:11px; line-height:1.8; }
.main-content { min-width:0; padding:34px 46px 70px; }
.topbar { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; padding-bottom:28px; border-bottom:1px solid var(--line); }
.eyebrow { color:var(--accent); font-size:10px; letter-spacing:4px; }
h1,h2,h3,p { margin:0; }
h1 { margin-top:9px; font:34px "Songti SC",serif; letter-spacing:3px; }
h2 { margin-top:10px; font:29px "Songti SC",serif; letter-spacing:2px; }
h3 { font:17px "Songti SC",serif; }
.auth-box { display:flex; align-items:end; gap:8px; }
.auth-box label { color:var(--muted); font-size:11px; }
.auth-box input { width:170px; padding:10px 12px; border:1px solid var(--line); border-radius:8px; background:white; color:var(--ink); font-size:12px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:38px; padding:0 16px; border:0; border-radius:8px; font-size:12px; text-decoration:none; }
.button-dark { background:var(--ink); color:white; }
.button-dark:hover { background:#554038; }
.button-light { border:1px solid rgba(155,101,79,.28); background:#fffaf4; color:var(--accent); }
.status { margin:20px 0; padding:10px 14px; border-radius:8px; background:#f0e7df; color:#896c5c; font-size:12px; }
.status.error { background:#f9e7e3; color:#a14d45; }
.view { display:none; }
.active-view { display:block; }
.hero-note { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:30px; border-radius:18px; background:#eadbd0; }
.hero-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:flex-end; }
.button-row { display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.hero-note h2 { color:#4d3a31; }
.hero-note p { margin-top:10px; color:#816d62; font-size:13px; }
.metric-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:18px; }
.metric { padding:20px; border:1px solid var(--line); border-radius:14px; background:var(--panel); }
.metric-label { color:var(--muted); font-size:12px; }
.metric-value { margin-top:12px; color:var(--accent); font:31px Georgia,serif; }
.two-column { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(280px, .65fr); gap:18px; margin-top:18px; }
.panel { padding:24px; border:1px solid var(--line); border-radius:14px; background:var(--panel); }
.panel-heading { display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding-bottom:16px; border-bottom:1px solid var(--line); }
.panel-caption { color:var(--muted); font-size:11px; line-height:1.7; }
.pending-list { display:grid; gap:14px; padding-top:14px; }
.pending-item,.check-row { display:flex; align-items:center; gap:12px; padding:12px 0; color:#61534b; font-size:13px; }
.pending-item { justify-content:space-between; border-bottom:1px solid #f0e7df; }
.pending-item strong { color:var(--accent); font-size:18px; }
.check-row + .check-row { border-top:1px solid #f0e7df; }
.check-dot { color:#a89589; font-size:19px; }
.check-dot.done { color:#789478; }
.section-intro { display:flex; align-items:end; justify-content:space-between; margin-bottom:22px; }
.tag { display:inline-flex; align-items:center; min-height:28px; padding:0 10px; border-radius:999px; background:#f0e3d9; color:var(--accent); font-size:11px; }
.record-list { display:grid; gap:12px; }
.record { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 20px; border:1px solid var(--line); border-radius:12px; background:var(--panel); }
.record-content { min-width:0; }
.record-name { color:#4b3b33; font-family:"Songti SC",serif; font-size:18px; }
.record-text { margin-top:7px; color:#71645c; font-size:14px; line-height:1.7; }
.record-meta { margin-top:6px; color:#a08d82; font-size:11px; }
.record-actions { display:flex; flex-shrink:0; gap:8px; }
.action { padding:8px 12px; border:1px solid var(--line); border-radius:7px; background:white; color:#7b5d4e; font-size:11px; }
.action.approve { background:#7d927d; border-color:#7d927d; color:white; }
.action.reject { color:#a65a51; }
.photo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.photo-card { overflow:hidden; border:1px solid var(--line); border-radius:12px; background:var(--panel); }
.photo-card img { display:block; width:100%; height:220px; object-fit:cover; background:#eadbd0; }
.photo-card-body { padding:14px; }
.photo-card-body .record-meta { margin-bottom:12px; }
.table-wrap { overflow:auto; }
table { width:100%; border-collapse:collapse; font-size:13px; }
th,td { padding:14px 12px; border-bottom:1px solid var(--line); text-align:left; white-space:nowrap; }
th { color:var(--muted); font-size:11px; font-weight:500; }
td { color:#5f5048; }
.seat-layout { align-items:start; margin-top:0; }
.seat-layout h3 { margin-bottom:7px; }
.code-input { width:100%; min-height:340px; margin:18px 0; padding:14px; border:1px solid var(--line); border-radius:8px; background:#2f2925; color:#f4e9df; font:12px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace; resize:vertical; }
.plain-input { width:100%; min-height:130px; margin:18px 0 10px; padding:14px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); font:13px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace; resize:vertical; }
.import-note { margin:10px 0 2px; }
.rule-box { margin-top:20px; padding:18px; border-radius:10px; background:#f0e3d9; color:#806a5e; font-size:13px; line-height:1.8; }
.settings-panel { max-width:840px; }
.settings-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-bottom:24px; }
.settings-field { display:grid; gap:8px; color:var(--muted); font-size:12px; }
.settings-field-wide { grid-column:1 / -1; }
.settings-field input,.settings-field textarea { width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); font-size:13px; }
.settings-field textarea { min-height:82px; resize:vertical; }
.settings-note { margin-top:16px; }
@media (max-width:900px) { .admin-shell { grid-template-columns:1fr; } .sidebar { padding:20px; } .nav { display:flex; flex-wrap:wrap; margin-top:24px; } .sidebar-foot { display:none; } .main-content { padding:26px 20px 50px; } .topbar { align-items:flex-start; flex-direction:column; } .auth-box { align-items:center; flex-wrap:wrap; } .metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .two-column { grid-template-columns:1fr; } .photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .main-content { padding:20px 14px 40px; } .metric-grid,.photo-grid,.settings-grid { grid-template-columns:1fr; } .settings-field-wide { grid-column:auto; } .hero-note { align-items:flex-start; flex-direction:column; } .record { align-items:flex-start; flex-direction:column; } }
