:root{--primary: #3b82f6;--success: #10b981;--danger: #ef4444;--warning: #f59e0b;--info: #06b6d4;--bg: #f8fafc;--bg-dark: #1e293b;--text: #1e293b;--text-light: #64748b;--text-lighter: #94a3b8;--border: #e2e8f0;--shadow: 0 1px 3px 0 rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--radius: 8px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}.container{max-width:1400px;margin:0 auto;padding:20px}header{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:20px;border-radius:var(--radius);margin-bottom:24px;box-shadow:var(--shadow)}.header-left h1{font-size:28px;margin-bottom:5px}.subtitle{color:var(--text-light);font-size:14px}.header-actions{display:flex;gap:12px;align-items:center}.last-update{font-size:12px;color:var(--text-light);margin-left:10px}.connection-status{display:flex;align-items:center;gap:6px;font-size:12px;padding:6px 12px;border-radius:var(--radius);background:var(--bg);transition:all .3s}.connection-status i{font-size:8px}.connection-status.connected{color:var(--success)}.connection-status.connected i{animation:pulse 2s infinite}.connection-status.disconnected{color:var(--danger)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}button,.btn{padding:8px 16px;border:none;border-radius:var(--radius);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;background:var(--bg);color:var(--text)}button:hover{opacity:.8;transform:translateY(-1px)}.btn-primary{background:var(--primary);color:#fff}.btn-secondary{background:var(--text-light);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-success{background:var(--success);color:#fff}.btn-icon{width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;font-size:18px}.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:#fff;padding:20px;border-radius:var(--radius);box-shadow:var(--shadow);display:flex;align-items:center;gap:16px;transition:transform .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.stat-icon{font-size:32px;width:60px;height:60px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);background:var(--bg)}.stat-up .stat-icon{background:#d1fae5}.stat-down .stat-icon{background:#fee2e2}.stat-incidents .stat-icon{background:#fed7aa}.stat-latency .stat-icon{background:#dbeafe}.stat-value{font-size:32px;font-weight:700;line-height:1}.stat-label{color:var(--text-light);font-size:14px}.filters{display:flex;gap:12px;margin-bottom:24px}.search-input{flex:1;padding:10px 16px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px;background:#fff}.filter-select{padding:10px 16px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px;background:#fff;cursor:pointer}.checks-section h2{margin-bottom:16px;font-size:20px}.checks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:16px}.check-card{background:#fff;padding:20px;border-radius:var(--radius);box-shadow:var(--shadow);border-left:4px solid var(--border);transition:all .2s}.check-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.check-card.status-up{border-left-color:var(--success)}.check-card.status-down{border-left-color:var(--danger)}.check-card.status-muted{border-left-color:var(--text-lighter);opacity:.7}.check-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.check-title{flex:1}.check-name{font-size:16px;font-weight:600;margin-bottom:4px}.check-type{display:inline-block;padding:2px 8px;background:var(--bg);border-radius:4px;font-size:11px;text-transform:uppercase;font-weight:600;color:var(--text-light)}.check-status{font-size:24px}.check-details{margin-bottom:12px}.check-detail{display:flex;justify-content:space-between;padding:4px 0;font-size:13px}.check-detail-label{color:var(--text-light)}.check-detail-value{font-weight:500}.latency-good{color:var(--success)}.latency-medium{color:var(--warning)}.latency-bad{color:var(--danger)}.check-actions{display:flex;gap:8px;flex-wrap:wrap}.check-actions button{flex:1;min-width:80px;font-size:12px;padding:6px 12px}.loading,.empty-state{text-align:center;padding:60px 20px}.spinner{width:40px;height:40px;margin:0 auto 16px;border:4px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-icon{font-size:64px;margin-bottom:16px}.empty-state h3{margin-bottom:8px}.empty-state p{color:var(--text-light);margin-bottom:16px}.modal{display:none;position:fixed;inset:0;background:#00000080;z-index:1000;backdrop-filter:blur(4px);align-items:center;justify-content:center}.modal.active{display:flex;align-items:center;justify-content:center}.modal-content{background:#fff;border-radius:var(--radius);width:90%;max-width:800px;max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px -12px #00000040}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:20px}.modal-close{background:none;border:none;font-size:32px;cursor:pointer;color:var(--text-light);padding:0;width:32px;height:32px;line-height:1}.modal-close:hover{color:var(--text);transform:none}form{padding:20px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-bottom:24px}.form-group{display:flex;flex-direction:column}.form-group label{font-size:14px;font-weight:500;margin-bottom:6px;color:var(--text)}.form-group input[type=text],.form-group input[type=number],.form-group select{padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px}.form-group input[type=checkbox]{width:20px;height:20px;cursor:pointer}.form-group small{font-size:12px;color:var(--text-lighter);margin-top:4px}.input-group{display:flex;gap:8px}.input-group input{flex:1}.modal-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:16px;border-top:1px solid var(--border)}.badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.badge-success{background:#d1fae5;color:#065f46}.badge-danger{background:#fee2e2;color:#991b1b}.badge-warning{background:#fed7aa;color:#92400e}.badge-muted{background:var(--bg);color:var(--text-light)}@media(max-width:768px){.container{padding:12px}header{flex-direction:column;gap:16px}.header-actions{width:100%;justify-content:space-between}.checks-grid,.form-grid{grid-template-columns:1fr}.filters{flex-direction:column}}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.check-card{animation:slideIn .3s ease-out}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-lighter)}.toast-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:12px;pointer-events:none}.toast{display:flex;align-items:center;gap:12px;min-width:300px;max-width:500px;padding:16px;background:#fff;border-radius:var(--radius);box-shadow:0 4px 12px #00000026;opacity:0;transform:translate(400px);transition:all .3s ease-out;pointer-events:all;border-left:4px solid var(--info)}.toast.show{opacity:1;transform:translate(0)}.toast.hide{opacity:0;transform:translate(400px)}.toast-success{border-left-color:var(--success)}.toast-error{border-left-color:var(--danger)}.toast-warning{border-left-color:var(--warning)}.toast-info{border-left-color:var(--info)}.toast-icon{font-size:20px;flex-shrink:0}.toast-message{flex:1;font-size:14px;line-height:1.5;color:var(--text);word-break:break-word}.toast-close{background:none;border:none;font-size:24px;line-height:1;color:var(--text-light);cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:4px;transition:background .2s}.toast-close:hover{background:var(--bg);color:var(--text);transform:none;opacity:1}.uptime-history{margin:12px 0;padding:12px;background:var(--bg);border-radius:6px}.uptime-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px;font-weight:600;color:var(--text-light);text-transform:uppercase;letter-spacing:.5px}.uptime-percent{font-size:14px;font-weight:700;color:var(--text)}.uptime-bars{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.uptime-bar{position:relative;height:40px;border-radius:4px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:4px;cursor:pointer;transition:all .2s ease;border:2px solid transparent}.uptime-bar:hover{transform:translateY(-2px);border-color:#0000001a;box-shadow:0 2px 8px #00000026}.uptime-day{font-size:10px;font-weight:600;color:#00000080;text-transform:uppercase}.uptime-excellent{background:linear-gradient(to top,#10b981,#34d399)}.uptime-good{background:linear-gradient(to top,#3b82f6,#60a5fa)}.uptime-fair{background:linear-gradient(to top,#f59e0b,#fbbf24)}.uptime-poor{background:linear-gradient(to top,#f97316,#fb923c)}.uptime-critical{background:linear-gradient(to top,#ef4444,#f87171)}.uptime-excellent .uptime-day,.uptime-good .uptime-day,.uptime-critical .uptime-day{color:#ffffffe6}.uptime-header-row{display:grid;grid-template-columns:350px 120px 1fr;gap:16px;padding:12px 20px;background:var(--bg);border-radius:var(--radius);margin-bottom:12px;font-size:12px;font-weight:600;color:var(--text-light);text-transform:uppercase;letter-spacing:.5px}.uptime-header-service{padding-left:40px}.uptime-header-uptime{text-align:right}.uptime-header-days{display:flex;justify-content:flex-start;gap:4px}.uptime-row{display:grid;grid-template-columns:350px 120px 1fr;gap:16px;align-items:center;padding:16px 20px;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:8px;transition:all .2s}.uptime-row:hover{box-shadow:var(--shadow-lg);transform:translate(4px)}.uptime-row-header{display:flex;align-items:center;gap:12px}.uptime-row-status{font-size:20px;line-height:1}.uptime-row-name{display:flex;flex-direction:column;gap:4px}.uptime-name{font-size:15px;font-weight:600;color:var(--text)}.uptime-type{font-size:10px;font-weight:600;color:var(--text-lighter);text-transform:uppercase;letter-spacing:.5px}.uptime-row-percentage{font-size:16px;font-weight:700;text-align:right;padding-right:8px}.uptime-row-percentage.uptime-excellent{color:#10b981}.uptime-row-percentage.uptime-good{color:#3b82f6}.uptime-row-percentage.uptime-fair{color:#f59e0b}.uptime-row-percentage.uptime-poor{color:#f97316}.uptime-row-percentage.uptime-critical{color:#ef4444}.uptime-row-squares{display:flex;gap:4px;flex-wrap:wrap}.uptime-square{width:32px;height:32px;border-radius:4px;cursor:pointer;transition:all .2s;border:1px solid var(--border)}.uptime-square:hover{transform:scale(1.15);border-color:#0000004d;box-shadow:0 2px 8px #00000026}.uptime-square.bar-excellent{background:#10b981;border-color:#059669}.uptime-square.bar-good{background:#3b82f6;border-color:#2563eb}.uptime-square.bar-fair{background:#f59e0b;border-color:#d97706}.uptime-square.bar-poor{background:#f97316;border-color:#ea580c}.uptime-square.bar-critical{background:#ef4444;border-color:#dc2626}.uptime-square.bar-no-data{background:var(--bg);border-color:var(--border)}.uptime-check-row{display:grid;grid-template-columns:60px minmax(300px,1fr) 140px minmax(420px,auto);gap:16px;padding:12px 24px;background:#fff;border-bottom:1px solid var(--border);transition:all .2s;align-items:center}.uptime-check-row:hover{background:#f5f5f5}.uptime-col-service{display:flex;align-items:center;gap:12px}.uptime-check-arrow{display:flex;align-items:center;justify-content:center;font-size:18px}.uptime-check-info{flex:1;min-width:0}.uptime-check-name{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.uptime-progress-bars{display:flex;height:6px;border-radius:3px;overflow:hidden;margin-top:6px;background:#e9ecef}.uptime-progress-bar{height:100%;transition:width .3s}.uptime-col-uptime{text-align:center;font-size:15px;font-weight:700;padding:6px 12px;border-radius:4px}.uptime-col-uptime.uptime-excellent{color:#065f46;background:#d1fae5}.uptime-col-uptime.uptime-good{color:#1e40af;background:#dbeafe}.uptime-col-uptime.uptime-fair{color:#92400e;background:#fef3c7}.uptime-col-uptime.uptime-poor{color:#9a3412;background:#fed7aa}.uptime-col-uptime.uptime-critical{color:#991b1b;background:#fee2e2}.uptime-col-days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.uptime-day-indicator{height:36px;display:flex;align-items:center;justify-content:center;border-radius:4px;cursor:pointer;transition:all .2s;font-size:18px;position:relative}.uptime-day-indicator:hover{transform:scale(1.15);box-shadow:0 4px 8px #0003;z-index:10}.uptime-day-indicator:active{transform:scale(1.1)}.uptime-day-indicator.excellent{background:#d1fae5;color:#065f46}.uptime-day-indicator.good{background:#dbeafe;color:#1e40af}.uptime-day-indicator.warning{background:#fef3c7;color:#92400e}.uptime-day-indicator.critical{background:#fee2e2;color:#991b1b}.uptime-day-indicator.no-data{background:#f3f4f6;color:#9ca3af}@media(max-width:1200px){.uptime-header-row,.uptime-row{grid-template-columns:280px 100px 1fr}.uptime-check-row{grid-template-columns:250px 100px 1fr}}@media(max-width:768px){.uptime-header-row{display:none}.uptime-row{grid-template-columns:1fr;gap:12px}.uptime-row-percentage{text-align:left}.uptime-square{width:28px;height:28px}.uptime-check-row{grid-template-columns:1fr;gap:10px}.uptime-col-uptime{text-align:left}.uptime-day-indicator{height:28px;font-size:14px}}
