*{box-sizing:border-box}
body{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;background:#f8f7f5;color:#222;margin:0}
.center{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}
.card{background:#fff;border:1px solid #d4d2cd;border-radius:10px;padding:26px;width:360px;box-shadow:0 4px 20px rgba(0,0,0,.06)}
.card.wide{width:820px;max-width:100%}
h1{font-size:18px;margin:0 0 4px}h2{font-size:15px;margin:18px 0 8px}
.sub{color:#666;font-size:13px;margin-bottom:16px}
label{display:block;font-size:12px;font-weight:600;color:#444;margin:10px 0 3px;text-transform:uppercase;letter-spacing:.4px}
input[type=text],input[type=password],input[type=email],select{width:100%;padding:9px 11px;border:1px solid #d4d2cd;border-radius:6px;font-size:14px}
input:focus,select:focus{outline:2px solid #2563eb;outline-offset:-1px}
button,.btn{display:inline-block;margin-top:14px;padding:10px 14px;background:#2563eb;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none}
button.full{width:100%}
button:hover{opacity:.92}
button.gray{background:#6b7280}button.warn{background:#b45309}button.green{background:#15803d}button.ghost{background:#fff;color:#2563eb;border:1px solid #2563eb}
.err{background:#fef2f2;color:#991b1b;border:1px solid #fca5a5;border-radius:6px;padding:8px 10px;font-size:13px;margin-bottom:12px}
.msg{background:#eff5ff;border:1px solid #bfdbfe;color:#1e3a8a;border-radius:6px;padding:9px 11px;font-size:13px;margin-bottom:12px}
.ok{background:#f0fdf4;border:1px solid #86efac;color:#166534;border-radius:6px;padding:9px 11px;font-size:13px;margin-bottom:12px}
table{width:100%;border-collapse:collapse;font-size:13px;margin:12px 0}
th,td{border:1px solid #e2e2e2;padding:7px 8px;text-align:left;vertical-align:top}
th{background:#f0f0ee}
.badge{font-size:11px;padding:1px 6px;border-radius:3px;background:#e5e7eb;margin:1px}
.badge.on{background:#dbeafe;color:#1e40af}.badge.admin{background:#fde68a;color:#92400e}
.secret{font-family:'SF Mono',Consolas,monospace;font-size:20px;letter-spacing:3px;background:#f5f4f2;border:1px dashed #b9b6b0;border-radius:6px;padding:12px;text-align:center;margin:10px 0}
.home-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:16px}
.tile{display:block;background:#fff;border:1px solid #d4d2cd;border-radius:10px;padding:18px;text-decoration:none;color:#222}
.tile:hover{border-color:#2563eb;box-shadow:0 2px 10px rgba(37,99,235,.1)}
.tile .t{font-size:15px;font-weight:700;color:#1e293b}.tile .d{font-size:12px;color:#666;margin-top:4px}
.topbar{display:flex;justify-content:space-between;align-items:center;background:#1e293b;color:#cbd5e1;padding:8px 16px;font-size:13px}
.topbar a{color:#93c5fd;text-decoration:none;margin-left:12px}.topbar a:hover{text-decoration:underline}
.wrap{max-width:920px;margin:0 auto;padding:18px}
small.hint{color:#777;font-size:12px}
.chk{display:inline-flex;align-items:center;gap:5px;margin:2px 10px 2px 0;font-size:13px;text-transform:none;font-weight:500}
