@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,400..800;1,400..800&display=swap";:root{--bg:#12151a;--surface:#1a1f27;--surface-2:#212833;--line:#2c3542;--fg:#e9edf3;--muted:#9aa7b8;--accent:#f59e0b;--accent-ink:#12151a;--up:#34d399;--down:#f87171;--pending:#94a3b8;--danger:#ef4444;--radius:14px;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-size:14.5px}*{box-sizing:border-box}#__nuxt,body,html{height:100%}body{background:var(--bg);color:var(--fg);font-family:var(--mono);font-size:var(--font-size);-webkit-font-smoothing:antialiased;margin:0;line-height:1.55}::selection{background:#f59e0b47}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:700}p{margin:0}a{color:inherit;text-decoration:none}button{font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.shell{flex-direction:column;min-height:100%;display:flex}.topbar{border-bottom:1px solid var(--line);background:var(--surface);z-index:20;justify-content:space-between;gap:16px;padding:14px 24px;position:sticky;top:0}.brand,.topbar{align-items:center;display:flex}.brand{letter-spacing:.02em;gap:10px;font-size:16px;font-weight:800}.brand svg{color:var(--accent)}.brand small{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:500}.nav{gap:4px;display:flex}.nav,.nav a{align-items:center}.nav a{color:var(--muted);border-radius:8px;gap:8px;padding:7px 14px;font-size:13px;font-weight:600;transition:color .16s,background .16s;display:inline-flex}.nav a:hover{color:var(--fg);background:var(--surface-2)}.nav a.router-link-active{color:var(--accent);background:#f59e0b1a}.page{flex:1;width:100%;max-width:1320px;margin:0 auto;padding:28px 24px 64px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.page-head h1{font-size:22px}.page-head .sub{color:var(--muted);margin-top:4px;font-size:13px}.btn{cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-size:13px;font-weight:700;transition:background .16s,color .16s,border-color .16s,transform 80ms;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover:not(:disabled){background:#f8b938}.btn-ghost{color:var(--fg);border-color:var(--line);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-2);border-color:#3a4554}.btn-danger{color:var(--danger);background:0 0;border-color:#ef444466}.btn-danger:hover:not(:disabled){background:#ef44441f}.btn-sm{border-radius:8px;padding:6px 10px;font-size:12px}.summary{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:10px 28px;margin-bottom:24px;padding:12px 20px;font-size:13px;display:flex}.summary .item{align-items:center;gap:8px;display:inline-flex}.summary b{font-variant-numeric:tabular-nums;font-size:17px}.summary .label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.summary .spacer{flex:1}.summary .refresh-note{color:var(--muted);align-items:center;gap:7px;font-size:11.5px;display:inline-flex}.pulse-dot{background:var(--up);border-radius:50%;width:7px;height:7px;animation:2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.25}}.grid{grid-template-columns:repeat(auto-fill,minmax(305px,1fr));gap:16px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 18px 14px;transition:border-color .2s,background .2s;position:relative;overflow:hidden}.card:hover{border-color:#3a4554}.card:before{content:"";background:var(--pending);width:3px;transition:background .3s;position:absolute;inset:0 auto 0 0}.card[data-status=up]:before{background:var(--up)}.card[data-status=down]:before{background:var(--down)}.card[data-status=paused]:before{background:0 0}@keyframes flash-up{0%{border-color:var(--up);box-shadow:0 0 #34d39900}25%{border-color:var(--up);box-shadow:0 0 32px 2px #34d39959}to{box-shadow:0 0 #34d39900}}@keyframes flash-down{0%{border-color:var(--down);box-shadow:0 0 #f8717100}25%{border-color:var(--down);box-shadow:0 0 32px 2px #f8717166}to{box-shadow:0 0 #f8717100}}.card.flash-up{animation:1.6s ease-out flash-up}.card.flash-down{animation:1.6s ease-out flash-down}.card-top{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:4px;display:flex}.card h3{word-break:break-word;font-size:15.5px;line-height:1.3}.card .desc{color:var(--muted);-webkit-line-clamp:1;-webkit-box-orient:vertical;margin-top:3px;font-size:12px;display:-webkit-box;overflow:hidden}.badge{letter-spacing:.1em;text-transform:uppercase;border-radius:999px;flex:none;align-items:center;gap:6px;padding:3px 10px;font-size:10.5px;font-weight:800;display:inline-flex}.badge .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.badge.up{color:var(--up);background:#34d3991f}.badge.down{color:var(--down);background:#f8717121}.badge.down .dot{animation:1.1s ease-in-out infinite pulse}.badge.pending{color:var(--pending);background:#94a3b81f}.badge.paused{color:var(--muted);background:var(--surface-2)}.endpoint{color:var(--fg);word-break:break-all;align-items:center;gap:8px;margin:12px 0 14px;font-size:13.5px;font-weight:600;display:flex}.endpoint svg{color:var(--muted);flex:none}.meta{border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:18px;padding:10px 0 12px;display:flex}.meta>div{min-width:0}.meta .k{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px;font-size:10.5px}.meta .v{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13.5px;font-weight:600}.meta .v.err{color:var(--down);white-space:normal;word-break:break-word;font-size:11.5px;font-weight:500}.card-actions{align-items:center;gap:6px;margin-top:12px;display:flex}.card-actions .grow{flex:1}.card-actions .interval{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.switch{border:1px solid var(--line);background:var(--surface-2);cursor:pointer;border-radius:999px;flex:none;width:34px;height:19px;padding:0;transition:background .18s,border-color .18s;position:relative}.switch:after{content:"";background:var(--muted);border-radius:50%;width:13px;height:13px;transition:transform .18s,background .18s;position:absolute;top:2px;left:2px}.switch[aria-checked=true]{background:#34d39940;border-color:#34d39980}.switch[aria-checked=true]:after{background:var(--up);transform:translate(15px)}.switch:disabled{opacity:.5;cursor:not-allowed}.empty{text-align:center;border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);grid-column:1/-1;padding:72px 24px}.empty svg{color:var(--accent);margin-bottom:14px}.empty h2{color:var(--fg);margin-bottom:6px;font-size:17px}.empty p{max-width:44ch;margin:0 auto 18px;font-size:13px}.skeleton{border-radius:var(--radius);background:linear-gradient(100deg,var(--surface) 40%,var(--surface-2) 50%,var(--surface) 60%);border:1px solid var(--line);background-size:200% 100%;height:178px;animation:1.4s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;background:#080a0db8;justify-content:center;align-items:flex-start;padding:8vh 16px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-width:520px;padding:22px 22px 18px;box-shadow:0 24px 64px #00000073}.modal h2{margin-bottom:18px;font-size:17px}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-grid .full{grid-column:1/-1}.field label{text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;font-weight:700;display:block}.field .hint,.field label{color:var(--muted);font-size:11px}.field .hint{margin-top:5px}.field input,.field select,.field textarea{background:var(--bg);border:1px solid var(--line);width:100%;color:var(--fg);border-radius:9px;padding:9px 11px;font-family:inherit;font-size:13.5px;transition:border-color .16s}.field textarea{resize:vertical;min-height:56px}.field input::-moz-placeholder{color:#5c6879}.field textarea::-moz-placeholder{color:#5c6879}.field input::placeholder,.field textarea::placeholder{color:#5c6879}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);outline:none}.field input[type=number]{font-variant-numeric:tabular-nums}.modal-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.form-error{color:var(--down);background:#ef44441a;border:1px solid #ef444459;border-radius:9px;margin-top:14px;padding:10px 12px;font-size:12.5px}.settings-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);max-width:560px;padding:24px}.settings-card .form-grid{grid-template-columns:1fr}.settings-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:20px;display:flex}.inline-status{align-items:center;gap:7px;font-size:12.5px;display:inline-flex}.inline-status.ok{color:var(--up)}.inline-status.fail{color:var(--down)}.switch-row{border:1px solid var(--line);background:var(--bg);border-radius:10px;justify-content:space-between;align-items:center;gap:14px;padding:13px 14px;display:flex}.switch-row .t{font-size:13px;font-weight:700}.switch-row .d{color:var(--muted);margin-top:2px;font-size:11.5px}.icon-btn{width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;transition:color .15s,background .15s,border-color .15s;display:inline-flex}.icon-btn:hover:not(:disabled){color:var(--fg);background:var(--surface-2);border-color:var(--line)}.icon-btn.danger:hover:not(:disabled){color:var(--danger);background:#ef44441a;border-color:#ef444459}.icon-btn:disabled{opacity:.45;cursor:not-allowed}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(1turn)}}.modal-enter-active,.modal-leave-active{transition:opacity .18s}.modal-enter-from,.modal-leave-to{opacity:0}.modal-enter-active .modal{transition:transform .2s cubic-bezier(.2,.9,.3,1.1)}.modal-enter-from .modal{transform:translateY(14px)scale(.98)}@media (width<=640px){.topbar{padding:12px 16px}.page{padding:20px 16px 48px}.form-grid{grid-template-columns:1fr}.brand small{display:none}}
