/* Minimal, clean, readable. Works site-wide. */
:root {
  --bg:#fff; --fg:#111; --muted:#666;
  --link:#0a58ca; --link-visited:#6f42c1;
  --border:#e5e7eb; --soft:#f7f7f7;
  --radius:10px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; padding:0; background:var(--bg); color:var(--fg);
  font:16px/1.6 system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", sans-serif;
}
a{color:var(--link); text-decoration:none}
a:visited{color:var(--link-visited)}
a:hover{text-decoration:underline}
.container{max-width:980px;margin:0 auto;padding:18px}
header,footer{background:var(--soft);border-bottom:1px solid var(--border)}
footer{border-top:1px solid var(--border);border-bottom:0;margin-top:24px}
main h1,main h2,main h3{line-height:1.3}
main h1{font-size:1.7rem;margin:0 0 .6rem}
main h2{font-size:1.3rem;margin:1.2rem 0 .4rem}
section.card, article.card{
  border:1px solid var(--border); border-radius:var(--radius);
  padding:12px; background:#fff; margin:12px 0;
}
table{border-collapse:collapse; width:100%}
th,td{border:1px solid var(--border); padding:8px; text-align:left}
th{background:#fafafa}
form label{display:block;margin:.5rem 0}
input[type="text"], input[type="email"], input[type="url"], input[type="tel"],
input[type="password"], textarea, select{
  width:100%; max-width:640px; padding:10px; border:1px solid var(--border);
  border-radius:8px; background:#fff;
}
textarea{min-height:120px}
button, .btn{
  display:inline-block; padding:8px 14px; border:1px solid var(--border);
  border-radius:8px; background:#f5f5f5; cursor:pointer;
}
.btn-primary{background:#0d6efd;color:#fff;border-color:#0d6efd}
.btn-danger{background:#dc3545;color:#fff;border-color:#dc3545}
.notice{background:#eef6ff;border-left:4px solid #0d6efd;padding:10px;border-radius:8px}
.error{background:#fff5f5;border-left:4px solid #dc3545;padding:10px;border-radius:8px}
.small{color:var(--muted);font-size:.9rem}
.sr-only{position:absolute !important;left:-9999px !important}
