*{box-sizing:border-box;font-family:Arial,sans-serif}body{margin:0;background:#eef2f7;color:#111827}nav{background:#0f172a;color:white;padding:14px 22px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;position:sticky;top:0;z-index:10}nav .brand{font-weight:bold;font-size:18px;margin-right:10px}nav a{color:#e5e7eb;text-decoration:none;padding:8px 10px;border-radius:8px;font-size:14px}nav a:hover{background:#334155}.container{max-width:1180px;margin:28px auto;padding:0 18px}.card{background:white;border-radius:14px;padding:24px;margin-bottom:22px;box-shadow:0 8px 18px rgba(15,23,42,.08)}h1{margin-top:0;color:#0f172a}.muted{color:#64748b}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.dash{display:block;text-decoration:none;color:#111827;background:white;border-radius:14px;padding:20px;box-shadow:0 8px 18px rgba(15,23,42,.08);border-left:6px solid #2563eb;transition:.15s}.dash:hover{transform:translateY(-3px)}label{display:block;font-weight:bold;margin:12px 0 6px;color:#334155}input,select,textarea{width:100%;padding:11px;border:1px solid #cbd5e1;border-radius:9px;font-size:15px;background:white}textarea{min-height:86px;resize:vertical}button{border:none;border-radius:9px;padding:10px 14px;font-weight:bold;cursor:pointer}.btn{background:#2563eb;color:white;margin-top:14px}.btn:hover{background:#1d4ed8}.danger{background:#dc2626;color:white}.danger:hover{background:#b91c1c}table{width:100%;border-collapse:collapse;margin-top:14px;background:white}th,td{padding:11px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:top}th{background:#0f172a;color:white}tr:hover{background:#f8fafc}.msg{display:none;padding:12px;margin-bottom:14px;border-radius:9px}.ok{display:block;background:#dcfce7;color:#166534;border:1px solid #86efac}.err{display:block;background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.empty{text-align:center;color:#64748b;padding:18px}.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#e0f2fe;color:#075985;font-size:12px;font-weight:bold}canvas{max-height:430px}@media(max-width:800px){table{font-size:13px}th,td{padding:8px}nav a{font-size:12px;padding:7px}}