*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#f3f5f8;color:#222}
.top{background:#1f4e79;color:#fff;padding:12px 16px;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center}
.top nav a{color:#fff;margin-left:14px;text-decoration:none}main{max-width:1000px;margin:0 auto;padding:16px}
.card{background:#fff;border-radius:10px;padding:16px;margin-bottom:16px;box-shadow:0 1px 3px rgba(0,0,0,.08)}.narrow{max-width:420px;margin:30px auto}
h1{font-size:1.35rem;margin-top:0}h2{font-size:1.1rem;margin-top:0}label{display:block;margin:10px 0}label input{display:block;width:100%;padding:10px;margin-top:4px;border:1px solid #ccd;border-radius:6px;font-size:1rem}
.check input{display:inline;width:auto}button,.btn{background:#1f6fbf;color:#fff;border:0;border-radius:6px;padding:10px 16px;font-size:1rem;cursor:pointer;text-decoration:none;display:inline-block;margin:4px 2px}
.secondary{background:#6c7a89}.danger{background:#c0392b}.small{padding:5px 9px;font-size:.85rem}.inline{display:inline}.hidden{display:none}
.alert{padding:10px;border-radius:6px}.alert.ok{background:#e3f6e8}.alert.err{background:#fde4e1}.alert.warn{background:#fff4d6}
.badge{padding:2px 8px;border-radius:10px;background:#e4e7eb;font-size:.8rem}.badge.ok{background:#c9efd4}.badge.err{background:#f8cfc9}.badge.warn{background:#ffe8a8}
.muted{color:#667}.small{font-size:.85rem}.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{border-bottom:1px solid #e5e8ec;padding:6px;text-align:left;white-space:nowrap}
.progress{background:#e4e7eb;border-radius:8px;height:18px;overflow:hidden}.progress div{background:#2e9e5b;height:100%;transition:width .3s}
input[type=file]{margin:8px 0;max-width:100%}@media(max-width:600px){.top nav a{margin-left:8px}}
