:root { --wine:#713047; --wine-dark:#512237; --cream:#f5f0e9; --ink:#2d282b; --line:#d6c9cb; --bg:#f7f5f3; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:"Noto Sans CJK SC","Microsoft YaHei",Arial,sans-serif; line-height:1.55; }
.shell { width:min(1180px,calc(100% - 32px)); margin:auto; }
.site-header { background:var(--wine); color:white; }
.header-inner { display:flex; align-items:center; justify-content:space-between; min-height:64px; gap:16px; }
.brand { color:white; text-decoration:none; font-size:20px; font-weight:700; }
.brand span { font-weight:400; opacity:.85; margin-left:8px; }
nav { display:flex; align-items:center; gap:18px; }
nav a, nav .text-button { color:white; }
.who { opacity:.8; }
main { padding:28px 0 64px; }
h1 { font-size:30px; line-height:1.25; margin:0 0 12px; color:var(--wine-dark); }
h2 { font-size:19px; margin:0 0 16px; color:var(--wine-dark); }
p { margin:0 0 16px; }
.page-heading { margin:6px 0 22px; }
.eyebrow { color:var(--wine); font-size:13px; font-weight:700; letter-spacing:.05em; margin-bottom:8px; }
.muted { color:#71666c; }
.card { background:white; border:1px solid #e3dadd; border-radius:10px; padding:24px; margin:0 0 20px; box-shadow:0 2px 9px #28101808; }
.narrow { max-width:520px; }
.date-form { display:flex; align-items:end; gap:16px; flex-wrap:wrap; }
label { display:block; font-weight:600; margin:0 0 16px; }
label input, select { display:block; width:100%; min-height:42px; margin-top:6px; border:1px solid #baadb1; border-radius:6px; background:white; color:var(--ink); font:inherit; padding:7px 10px; }
.date-form label { margin:0; min-width:230px; }
.button { display:inline-block; border:1px solid var(--wine); border-radius:6px; background:var(--wine); color:white; text-decoration:none; font:inherit; font-weight:700; padding:10px 17px; cursor:pointer; white-space:nowrap; }
.button:hover { background:var(--wine-dark); }
.button.secondary { background:white; color:var(--wine); }
.button.secondary:hover { background:var(--cream); }
.text-button { background:none; border:0; text-decoration:underline; font:inherit; cursor:pointer; padding:0; }
.inline-form { display:inline-block; margin-right:12px; }
.alert { border-radius:6px; padding:12px 14px; }
.alert.error { color:#7f283b; background:#fce8ec; }
.alert.success { color:#265c3f; background:#e6f3e8; }
.status-card { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; border-radius:8px; padding:16px 20px; margin-bottom:20px; }
.status-card.good { background:#e6f3e8; color:#265c3f; }
.status-card.warning { background:#f9ede2; color:#79502b; }
.issues { margin:0; padding-left:22px; }
.issues li { margin:6px 0; }
.table-card { padding:22px 0 14px; }
.table-card h2, .table-card .actions { padding:0 22px; }
.table-scroll { overflow-x:auto; }
table { width:100%; border-collapse:collapse; min-width:780px; }
th { background:var(--cream); color:var(--wine-dark); font-weight:700; text-align:left; }
td, th { padding:12px 14px; border-bottom:1px solid var(--line); vertical-align:middle; }
td select { margin:0; min-width:115px; }
td small { display:block; color:#806c73; margin-top:3px; }
.time, .id-cell { white-space:nowrap; }
.id-cell { font-size:12px; color:#796d72; }
.empty { text-align:center; color:#766b70; }
.actions { margin-top:16px; }
.generate-form { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.subtle-link { margin-left:12px; color:var(--wine); }
.credential { background:var(--cream); padding:12px; font-family:monospace; font-size:18px; overflow-wrap:anywhere; }
@media (max-width:640px) { h1{font-size:25px;} .card{padding:18px;} .header-inner{align-items:flex-start;padding:13px 0;flex-direction:column;} nav{flex-wrap:wrap;} .status-card{display:block;} }
