:root{--bg:#ffffff;--fg:#111827;--muted:#6b7280;--border:#e5e7eb;--card:#f9fafb;--primary:#1f2937;--primary-fg:#ffffff;--accent:#2563eb;--danger:#b91c1c;--ok:#15803d;--radius:10px;--maxw:1080px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:var(--accent)}h1,h2,h3{line-height:1.2}.container{max-width:var(--maxw);margin:0 auto;padding:0 20px}.btn{display:inline-block;background:var(--primary);color:var(--primary-fg);padding:10px 16px;border-radius:var(--radius);border:1px solid var(--primary);text-decoration:none;font-weight:600;cursor:pointer}.btn--accent{background:var(--accent);border-color:var(--accent)}.input,.select,.textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);font:inherit;background:#fff}.label{display:block;font-size:.875rem;font-weight:600;margin:14px 0 6px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.muted{color:var(--muted)}.notice{padding:10px 14px;border-radius:var(--radius);border:1px solid var(--border);background:#fff}.notice--error{border-color:var(--danger);color:var(--danger)}.notice--ok{border-color:var(--ok);color:var(--ok)}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);font-size:.925rem}th{color:var(--muted);font-weight:600}