:root{--bg: #f7f4ef;--card: #ffffff;--text: #4a4a4a;--muted: #8a8a8a;--accent: #7a8b6e;--accent-soft: #e8efe5;--danger: #c45c5c;--radius: 12px;--shadow: 0 8px 32px rgba(0, 0, 0, .06)}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:linear-gradient(180deg,var(--bg) 0%,#ede8e1 100%);color:var(--text)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.page{max-width:960px;margin:0 auto;padding:24px 20px 48px}.card{background:var(--card);border-radius:var(--radius);padding:24px 28px;box-shadow:var(--shadow)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 22px;border:none;border-radius:12px;background:var(--accent);color:#fff;font-weight:600;font-size:1rem;cursor:pointer;box-shadow:0 8px 24px #7a8b6e40}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--accent);box-shadow:none;border:2px solid var(--accent)}.input{width:100%;padding:12px 14px;border:none;border-radius:10px;background:var(--bg);font:inherit;color:var(--text)}.label{display:block;font-size:.85rem;font-weight:500;margin-bottom:8px;color:var(--text)}.field{margin-bottom:18px}.msg{padding:10px 14px;border-radius:8px;font-size:.9rem;margin-bottom:14px}.msg.err{background:#fdeaea;color:var(--danger)}.msg.ok{background:var(--accent-soft);color:var(--accent)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;flex-wrap:wrap}.topbar h1{margin:0;font-size:1.25rem;font-weight:600}.sub{color:var(--muted);font-size:.9rem;margin:0 0 16px}
