*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;font-size:16px;color:#1c1c1e;background:#f5f5f4}
.topbar{background:#111;color:#fff;display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:12px 18px}
.brand{font-weight:700;font-size:18px}
.brand-badge{background:#f5490b;color:#fff;border-radius:6px;padding:2px 7px;margin-right:6px}
.brand-sub{color:#f5490b;font-weight:600}
.topnav a{color:#fff;text-decoration:none;margin-left:14px;font-size:15px}
.topnav a:hover{color:#f5490b}
.wrap{max-width:1060px;margin:0 auto;padding:22px 16px 40px}
h1{font-size:24px;margin:6px 0 14px}h2{font-size:19px;margin:4px 0 8px}h3{margin:6px 0 10px}
.card{background:#fff;border:1px solid #e5e2df;border-radius:12px;padding:18px;margin:0 0 16px}
.card.narrow{max-width:430px;margin:30px auto}
.card.prog{display:flex;flex-direction:column;gap:6px}
.card.stat{text-align:center}.card.stat strong{display:block;font-size:30px;color:#f5490b}.card.stat span{color:#666}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
label{display:block;margin:10px 0;font-weight:600;font-size:14px}
label input,label select{display:block;width:100%;margin-top:5px;padding:10px;border:1px solid #cfcbc7;border-radius:8px;font-size:16px;font-weight:400}
label.check{font-weight:400;display:flex;gap:8px;align-items:center}
label.check input{width:auto;margin:0}
fieldset{border:1px solid #e5e2df;border-radius:10px;margin:14px 0;padding:10px 14px}
legend{font-weight:700;font-size:14px;padding:0 6px}
.btn{display:inline-block;background:#f5490b;color:#fff;border:0;border-radius:8px;padding:10px 18px;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none}
.btn:hover{background:#d63e08}
.btn.ghost{background:#fff;color:#f5490b;border:1px solid #f5490b}
.btn.danger{background:#b3261e}
.tbl{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e5e2df;border-radius:12px;overflow:hidden}
.tbl th,.tbl td{padding:9px 10px;border-bottom:1px solid #eee9e5;text-align:left;font-size:14px;vertical-align:top}
.tbl th{background:#111;color:#fff}
.muted{color:#6b6660;font-size:14px}
.error{background:#fdecea;border:1px solid #f3b8b2;color:#8c1d13;border-radius:8px;padding:10px 12px;margin:10px 0}
.flash{background:#e9f7ee;border:1px solid #a9d9ba;color:#14532d;border-radius:8px;padding:10px 12px;margin:0 0 14px}
.notice{background:#fff6ec;border:1px solid #f5cfa5;color:#7a4b12;border-radius:8px;padding:12px;margin:12px 0}
.foot{text-align:center;color:#8a857f;font-size:13px;padding:18px 10px 26px}
hr{border:0;border-top:1px solid #eee9e5;margin:18px 0}
@media(max-width:640px){.tbl{display:block;overflow-x:auto}.topnav a{margin-left:10px}}
