/* PulseWatch front end: dashboard app, account forms, pricing, live status. */
:root{--pw-accent:#4f46e5;--pw-accent-2:#4338ca;--pw-up:#10b981;--pw-down:#ef4444;--pw-warn:#f59e0b;--pw-maint:#3b82f6;--pw-ink:#0f172a;--pw-muted:#64748b;--pw-line:#e2e8f0;--pw-bg:#f8fafc;--pw-card:#fff;--pw-r:14px}
.pw-app,.pw-auth,.pw-pricing,.pw-live,.pw-status-index{font-size:15px;color:var(--pw-ink);line-height:1.5}
.pw-app *,.pw-auth *{box-sizing:border-box}
.pw-muted{color:var(--pw-muted)}.pw-small{font-size:13px}
.pw-card,.pw-panel{background:var(--pw-card);border:1px solid var(--pw-line);border-radius:var(--pw-r);padding:20px}
.pw-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.pw-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.pw-between{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.pw-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--pw-line);background:#fff;color:var(--pw-ink);border-radius:10px;padding:9px 16px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;line-height:1.2}
.pw-btn:hover{border-color:var(--pw-accent);color:var(--pw-accent)}
.pw-btn.is-accent{background:var(--pw-accent);border-color:var(--pw-accent);color:#fff}.pw-btn.is-accent:hover{background:var(--pw-accent-2);color:#fff}
.pw-btn.is-ghost{background:transparent;border-color:transparent}.pw-btn.is-outline{background:transparent}
.pw-btn.is-danger{color:var(--pw-down)}.pw-btn.is-danger:hover{border-color:var(--pw-down)}
.pw-btn.is-small{padding:5px 10px;font-size:13px}.pw-btn[disabled]{opacity:.55;cursor:not-allowed}
.pw-link{background:none;border:0;padding:0;color:var(--pw-accent);cursor:pointer;font:inherit;text-decoration:underline}
.pw-badge{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;background:#e2e8f0;color:#334155}
.pw-badge.is-up,.pw-badge.is-done,.pw-badge.is-connected,.pw-badge.is-sent,.pw-badge.is-resolved,.pw-badge.is-completed,.pw-badge.is-operational{background:#d1fae5;color:#065f46}
.pw-badge.is-down,.pw-badge.is-failed,.pw-badge.is-error,.pw-badge.is-major{background:#fee2e2;color:#991b1b}
.pw-badge.is-paused,.pw-badge.is-new,.pw-badge.is-pending,.pw-badge.is-queued{background:#e2e8f0;color:#475569}
.pw-badge.is-warn,.pw-badge.is-running,.pw-badge.is-partial,.pw-badge.is-investigating,.pw-badge.is-identified,.pw-badge.is-monitoring{background:#fef3c7;color:#92400e}
.pw-badge.is-maintenance,.pw-badge.is-scheduled,.pw-badge.is-in_progress{background:#dbeafe;color:#1e40af}
.pw-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--pw-up);box-shadow:0 0 0 4px #d1fae5}
.is-down .pw-dot,.is-major .pw-dot{background:var(--pw-down);box-shadow:0 0 0 4px #fee2e2}.is-partial .pw-dot{background:var(--pw-warn);box-shadow:0 0 0 4px #fef3c7}.is-maintenance .pw-dot{background:var(--pw-maint);box-shadow:0 0 0 4px #dbeafe}
.pw-pulse{animation:pwp 2s infinite}@keyframes pwp{50%{box-shadow:0 0 0 8px rgba(16,185,129,.15)}}
/* App shell */
.pw-app{max-width:1180px;margin:0 auto}
.pw-dash-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 16px;flex-wrap:wrap}.pw-dash-head h1,.pw-dash-head h2{margin:0}
.pw-tabs{display:flex;gap:4px;border-bottom:1px solid var(--pw-line);margin-bottom:20px;overflow-x:auto}
.pw-tab{background:none;border:0;border-bottom:2px solid transparent;padding:10px 14px;font:inherit;font-weight:600;color:var(--pw-muted);cursor:pointer;white-space:nowrap}
.pw-tab.is-active,.pw-tab:hover{color:var(--pw-ink);border-bottom-color:var(--pw-accent)}
.pw-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px}
.pw-kpi{background:#fff;border:1px solid var(--pw-line);border-radius:var(--pw-r);padding:14px 16px}.pw-kpi b{display:block;font-size:22px}.pw-kpi span{color:var(--pw-muted);font-size:13px}
.pw-scroll{overflow-x:auto}
.pw-table{width:100%;border-collapse:collapse;background:#fff}.pw-table th,.pw-table td{padding:10px 12px;border-bottom:1px solid var(--pw-line);text-align:left;vertical-align:top}.pw-table th{font-size:12px;text-transform:uppercase;color:var(--pw-muted);letter-spacing:.04em}
.pw-table tr:hover td{background:#fafbff}
.pw-empty{text-align:center;padding:40px 20px;color:var(--pw-muted);border:2px dashed var(--pw-line);border-radius:var(--pw-r)}
.pw-loading{padding:40px;text-align:center;color:var(--pw-muted)}
.pw-notice{padding:12px 14px;border-radius:10px;background:#eef2ff;border:1px solid #c7d2fe;margin:0 0 14px}.pw-notice.is-error{background:#fef2f2;border-color:#fecaca;color:#991b1b}.pw-notice.is-warn{background:#fffbeb;border-color:#fde68a}
.pw-help{font-size:13px;color:var(--pw-muted);margin:4px 0 0}
/* Forms */
.pw-form{display:grid;gap:14px}.pw-field label{display:block;font-weight:600;margin-bottom:4px}
.pw-field input,.pw-field select,.pw-field textarea,.pw-auth input[type=text],.pw-auth input[type=email],.pw-auth input[type=password]{width:100%;padding:10px 12px;border:1px solid #cbd5e1;border-radius:10px;font:inherit;background:#fff}
.pw-field input:focus,.pw-field select:focus,.pw-field textarea:focus,.pw-auth input:focus{outline:2px solid var(--pw-accent);outline-offset:1px;border-color:var(--pw-accent)}
.pw-check{display:flex;gap:8px;align-items:flex-start}.pw-check input{margin-top:4px}
.pw-inline{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.pw-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:8px}
.pw-seg{display:inline-flex;border:1px solid var(--pw-line);border-radius:10px;overflow:hidden}.pw-seg button{border:0;background:#fff;padding:7px 12px;cursor:pointer;font:inherit}.pw-seg button.is-active{background:var(--pw-accent);color:#fff}
.pw-multi{display:flex;flex-wrap:wrap;gap:6px 14px}
.pw-code,.pw-code-area{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;background:#0f172a;color:#e2e8f0;padding:10px 12px;border-radius:10px;word-break:break-all;white-space:pre-wrap}
.pw-code-area{width:100%;min-height:80px;border:0}
.pw-hp{position:absolute!important;left:-9999px!important;height:1px;overflow:hidden}
/* Modal + toast */
.pw-modal{position:fixed;inset:0;background:rgba(15,23,42,.55);display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;z-index:9999;overflow:auto}
.pw-modal>div{background:#fff;border-radius:18px;max-width:620px;width:100%;padding:24px;box-shadow:0 30px 80px rgba(0,0,0,.3)}
.pw-toast{position:fixed;bottom:20px;right:20px;background:#0f172a;color:#fff;padding:12px 18px;border-radius:12px;z-index:10000;box-shadow:0 10px 30px rgba(0,0,0,.25);max-width:360px}.pw-toast.is-error{background:#991b1b}
/* Charts and bars */
.pw-chart-wrap{background:#fff;border:1px solid var(--pw-line);border-radius:var(--pw-r);padding:14px}.pw-chart{width:100%;height:160px;display:block}.pw-chart-legend{font-size:12px;color:var(--pw-muted)}
.pw-bars{display:flex;gap:2px;height:32px;align-items:stretch}.pw-bars span{flex:1;border-radius:2px;background:var(--pw-up);min-width:2px}.pw-bars span.is-warn{background:var(--pw-warn)}.pw-bars span.is-down{background:var(--pw-down)}.pw-bars span.is-none{background:#e2e8f0}
.pw-meter{height:10px;background:#e2e8f0;border-radius:99px;overflow:hidden}.pw-meter span{display:block;height:100%;background:var(--pw-accent)}
.pw-quota.is-warn .pw-meter span{background:var(--pw-warn)}.pw-quota.is-danger .pw-meter span{background:var(--pw-down)}
.pw-comps{display:grid;gap:10px}.pw-comp{border:1px solid var(--pw-line);border-radius:12px;padding:12px;background:#fff}
/* Pricing */
.pw-pricing{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:24px 0}
.pw-pricing__h{grid-column:1/-1;margin:24px 0 0;font-size:24px}
.pw-plan{background:#fff;border:1px solid var(--pw-line);border-radius:18px;padding:26px;display:flex;flex-direction:column;gap:10px;position:relative}
.pw-plan.is-featured{border:2px solid var(--pw-accent);box-shadow:0 20px 50px rgba(79,70,229,.15)}
.pw-plan__tag{color:var(--pw-muted);font-size:14px}.pw-plan__price{font-size:38px;font-weight:800;line-height:1}.pw-plan__price small{font-size:15px;color:var(--pw-muted);font-weight:500}
.pw-plan ul{list-style:none;padding:0;margin:6px 0 12px;display:grid;gap:6px}.pw-plan li::before{content:"✓";color:var(--pw-up);font-weight:800;margin-right:8px}
.pw-plan .pw-buy{margin-top:auto}.pw-buy .pw-btn{width:100%;justify-content:center}
/* Live status + status index */
.pw-live{display:grid;gap:8px}.pw-live .pw-row{background:#fff;border:1px solid var(--pw-line);border-radius:12px;padding:10px 14px;justify-content:space-between}
.pw-status-card{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:inherit}.pw-status-card:hover{border-color:var(--pw-accent)}
/* Auth */
.pw-auth-wrap{display:grid;place-items:center;padding:30px 0}
.pw-auth{max-width:440px;width:100%;background:#fff;border:1px solid var(--pw-line);border-radius:20px;padding:32px;box-shadow:0 20px 60px rgba(15,23,42,.08)}
.pw-auth h2{margin-top:0}.pw-auth p{margin:0 0 14px}.pw-auth label{display:block;font-weight:600;margin-bottom:4px}
.pw-auth .button,.pw-auth button[type=submit],.pw-auth input[type=submit]{width:100%;background:var(--pw-accent);color:#fff;border:0;border-radius:10px;padding:12px;font-weight:700;cursor:pointer;font-size:15px}
.pw-acct{display:flex;gap:14px;align-items:center}
.pw-legal-note{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:12px 14px}
@media (max-width:640px){.pw-card,.pw-panel{padding:14px}.pw-auth{padding:22px}.pw-table th,.pw-table td{padding:8px}}
