.mqtt-page{padding:28px}.mqtt-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}.mqtt-eyebrow{margin:0 0 10px;color:#b45309;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.mqtt-hero h1{margin:0;font-size:clamp(2rem,3vw,2.8rem);letter-spacing:-.04em}.mqtt-subtitle{max-width:680px;margin:12px 0 0;color:var(--muted);font-size:1rem}.mqtt-status{display:inline-flex;align-items:center;gap:10px;border-radius:999px;padding:12px 16px;border:1px solid #fed7aa;background:linear-gradient(135deg,#fff7ed,#fffbeb);color:#9a3412;font-weight:700;white-space:nowrap}.mqtt-status-dot{width:10px;height:10px;border-radius:999px;background:currentColor;box-shadow:0 0 0 5px #f9731626}.mqtt-status-connected{border-color:#bbf7d0;background:linear-gradient(135deg,#f0fdf4,#ecfeff);color:#166534}.mqtt-status-reconnecting{border-color:#fde68a;background:linear-gradient(135deg,#fffbeb,#fff7ed);color:#b45309}.mqtt-status-disconnected{border-color:#fecaca;background:linear-gradient(135deg,#fef2f2,#fff1f2);color:#b91c1c}.mqtt-grid{display:grid;grid-template-columns:minmax(320px,430px) minmax(0,1fr);gap:22px}.mqtt-card{background:linear-gradient(180deg,#fffffffa,#f8fafcfa);border:1px solid rgba(226,232,240,.95);border-radius:24px;box-shadow:var(--shadow);overflow:hidden}.mqtt-publish-card,.mqtt-stream-card{padding:22px}.mqtt-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.mqtt-card-header h2{margin:0;font-size:1.2rem}.mqtt-card-header p{margin:6px 0 0;color:var(--muted);font-size:.92rem}.mqtt-mode-toggle{display:inline-flex;gap:8px;padding:6px;margin-bottom:16px;border:1px solid #fed7aa;border-radius:16px;background:#fff7ed}.mqtt-mode-btn{border:0;border-radius:12px;padding:10px 14px;background:transparent;color:#9a3412;font-weight:700;cursor:pointer;transition:background .2s ease,color .2s ease}.mqtt-mode-btn.active{background:linear-gradient(135deg,#ea580c,#f59e0b);color:#fff}.mqtt-mode-note{margin-bottom:16px;padding:14px 16px;border:1px dashed #fdba74;border-radius:16px;background:#fff7ed;color:#9a3412;font-size:.92rem}.mqtt-field{display:block;margin-bottom:16px}.mqtt-field span{display:block;margin-bottom:8px;font-weight:700;color:#334155}.mqtt-field input,.mqtt-field textarea{width:100%;border:1px solid #cbd5e1;border-radius:16px;background:#fff;padding:12px 14px;transition:border-color .2s ease,box-shadow .2s ease}.mqtt-field textarea{min-height:240px;resize:vertical;font-family:Consolas,Courier New,monospace}.mqtt-field input:focus,.mqtt-field textarea:focus{outline:none;border-color:#fb923c;box-shadow:0 0 0 4px #fb923c24}.mqtt-auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.mqtt-publish-actions{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.mqtt-primary-btn{border:0;border-radius:14px;padding:12px 18px;background:linear-gradient(135deg,#ea580c,#f59e0b);color:#fff;font-weight:700;cursor:pointer;box-shadow:0 12px 24px #ea580c38;transition:transform .2s ease,box-shadow .2s ease}.mqtt-primary-btn:hover{transform:translateY(-1px);box-shadow:0 16px 32px #ea580c47}.mqtt-feedback{margin:0;font-size:.92rem}.mqtt-feedback-pending{color:var(--muted)}.mqtt-feedback-success{color:#166534}.mqtt-feedback-error{color:#b91c1c}.mqtt-count-pill{display:inline-flex;align-items:center;justify-content:center;min-width:96px;padding:8px 12px;border-radius:999px;background:#fff7ed;color:#c2410c;font-size:.82rem;font-weight:800}.mqtt-stream-actions{display:flex;align-items:center;gap:10px}.mqtt-secondary-btn{border:1px solid #fdba74;border-radius:14px;padding:10px 14px;background:#fff7ed;color:#c2410c;font-weight:700;cursor:pointer;transition:background .2s ease,color .2s ease,opacity .2s ease}.mqtt-secondary-btn:hover:not(:disabled){background:#ffedd5}.mqtt-secondary-btn:disabled{cursor:wait;opacity:.7}.mqtt-empty-state{border:1px dashed #fdba74;border-radius:18px;padding:24px;background:linear-gradient(135deg,#fff7ed,#fffbeb)}.mqtt-empty-state strong{display:block;margin-bottom:8px}.mqtt-empty-state p{margin:0;color:#9a3412}.mqtt-message-list{display:flex;flex-direction:column;gap:14px;max-height:70vh;overflow:auto;padding-right:4px}.mqtt-message-card{border:1px solid #e2e8f0;border-radius:18px;background:linear-gradient(180deg,#fff,#f8fafc);padding:16px}.mqtt-message-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;color:var(--muted);font-size:.84rem}.mqtt-topic-chip{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;background:#ffedd5;color:#c2410c;font-weight:800}.mqtt-topic-group{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}.mqtt-response-chip{display:inline-flex;align-items:center;max-width:100%;border-radius:999px;padding:6px 10px;background:#dbeafe;color:#1d4ed8;font-weight:800;overflow-wrap:anywhere}.mqtt-payload{margin:0;padding:14px;border-radius:16px;background:#0f172a;color:#e2e8f0;overflow:auto;font-size:.86rem;line-height:1.55;white-space:pre-wrap;word-break:break-word}.mqtt-payload.is-json{background:linear-gradient(135deg,#0f172a,#1e293b)}.mqtt-ack-panel{margin-top:12px;padding:12px;border:1px solid #dbeafe;border-radius:14px;background:#eff6ff}.mqtt-ack-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;color:#475569;font-size:.82rem}.mqtt-ack-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;background:#e2e8f0;color:#334155;font-size:.76rem;font-weight:800;text-transform:uppercase}.mqtt-ack-published,.mqtt-ack-received{background:#dcfce7;color:#166534}.mqtt-ack-failed{background:#fee2e2;color:#991b1b}.mqtt-ack-skipped{background:#fef3c7;color:#92400e}.mqtt-ack-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}.mqtt-ack-details div{min-width:0}.mqtt-ack-details dt{margin-bottom:4px;color:#64748b;font-size:.72rem;font-weight:800;text-transform:uppercase}.mqtt-ack-details dd{margin:0;color:#1e293b;font-size:.84rem;overflow-wrap:anywhere}.mqtt-ack-payload{margin:12px 0 0;padding:12px;border-radius:12px;background:#172554;color:#dbeafe;overflow:auto;font-size:.8rem;line-height:1.5;white-space:pre-wrap;word-break:break-word}.mqtt-ack-payload.is-json{background:linear-gradient(135deg,#172554,#1e3a8a)}@media(max-width:1080px){.mqtt-grid{grid-template-columns:1fr}}@media(max-width:720px){.mqtt-page{padding:16px}.mqtt-hero{flex-direction:column}.mqtt-message-meta{flex-direction:column;align-items:flex-start}.mqtt-stream-actions{width:100%;justify-content:space-between}.mqtt-auth-grid,.mqtt-ack-details{grid-template-columns:1fr}}:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#17353f;background:#edf5f7;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,textarea{font:inherit}
