@font-face{font-family:JetBrains Mono;src:url(https://satteliet.graviteit.be/fonts/JetBrainsMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(https://satteliet.graviteit.be/fonts/JetBrainsMono-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(https://satteliet.graviteit.be/fonts/JetBrainsMono-SemiBold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(https://satteliet.graviteit.be/fonts/JetBrainsMono-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--text: #334155;--text-bright: #1e293b;--text-muted: #64748b;--text-dim: #94a3b8;--bg-body: linear-gradient(135deg, #f5f5fa 0%, #eeeef5 40%, #f5f5fa 70%, #f0f0f8 100%);--bg-card: rgba(255, 255, 255, .7);--bg-input: rgba(255, 255, 255, .8);--bg-input-focus: #ffffff;--bg-hover: rgba(0, 0, 0, .02);--bg-modal: #ffffff;--border: #e2e8f0;--border-card: rgba(0, 0, 0, .08);--border-row: rgba(0, 0, 0, .06);--border-modal: rgba(0, 0, 0, .1);--accent: #7c3aed;--accent-bright: #6d28d9;--accent-bg: rgba(124, 58, 237, .06);--accent-border: rgba(124, 58, 237, .2);--accent-border-hover: rgba(124, 58, 237, .35);--accent-border-bright: rgba(109, 40, 217, .5);--green: #16a34a;--green-bg: rgba(22, 163, 74, .1);--green-glow: rgba(22, 163, 74, .3);--yellow: #b45309;--yellow-bg: rgba(180, 83, 9, .08);--red: #dc2626;--red-bg: rgba(220, 38, 38, .08);--red-glow: rgba(220, 38, 38, .3);--purple: #7c3aed;--purple-bg: rgba(124, 58, 237, .08);--backdrop: rgba(0, 0, 0, .3);--btn-bg: #7c3aed;--btn-hover: #6d28d9}[data-theme=dark]{--text: #e2e8f0;--text-bright: #f8fafc;--text-muted: #888;--text-dim: #555;--bg-body: linear-gradient(135deg, #1a1a2e 0%, #1e1e36 40%, #1a1a2e 70%, #1c1c30 100%);--bg-card: rgba(255, 255, 255, .03);--bg-input: rgba(255, 255, 255, .05);--bg-input-focus: rgba(255, 255, 255, .07);--bg-hover: rgba(255, 255, 255, .03);--bg-modal: #1e1e36;--border: #2a2a38;--border-card: rgba(255, 255, 255, .08);--border-row: rgba(255, 255, 255, .04);--border-modal: rgba(255, 255, 255, .1);--accent: #a78bfa;--accent-bright: #8b5cf6;--accent-bg: rgba(167, 139, 250, .1);--accent-border: rgba(167, 139, 250, .3);--accent-border-hover: rgba(167, 139, 250, .5);--accent-border-bright: rgba(139, 92, 246, .7);--green: #4ade80;--green-bg: rgba(74, 222, 128, .15);--green-glow: rgba(74, 222, 128, .4);--yellow: #fbbf24;--yellow-bg: rgba(251, 191, 36, .15);--red: #f87171;--red-bg: rgba(248, 113, 113, .15);--red-glow: rgba(248, 113, 113, .4);--purple: #a78bfa;--purple-bg: rgba(167, 139, 250, .15);--backdrop: rgba(0, 0, 0, .6);--btn-bg: #8b5cf6;--btn-hover: #a78bfa}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:JetBrains Mono,monospace;font-size:13px;color:var(--text);background:var(--bg-body);min-height:100vh}.app-wrap{max-width:1200px;margin:0 auto;padding:40px 32px}.app-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.app-header h1{color:var(--text-bright);font-size:18px;font-weight:600;letter-spacing:.5px}.app-header .version{display:inline-block;font-size:10px;color:var(--text-muted);border:1px solid var(--border);border-radius:4px;padding:2px 8px;letter-spacing:.5px;margin-left:10px}.header-actions{display:flex;align-items:center;gap:12px}.download-btn{font-size:11px;font-weight:500;color:var(--accent);border:1px solid var(--accent-border);border-radius:6px;padding:6px 14px;text-decoration:none;letter-spacing:.3px;transition:background .15s,border-color .15s}.download-btn:hover{background:var(--accent-bg);border-color:var(--accent-border-hover)}.theme-toggle{background:none;border:1px solid var(--border);border-radius:6px;padding:5px 9px;cursor:pointer;color:var(--text-muted);line-height:1;transition:border-color .15s,color .15s;display:flex;align-items:center;justify-content:center}.theme-toggle:hover{border-color:var(--accent-border-hover);color:var(--accent)}.theme-toggle svg{width:14px;height:14px}.sat-card{background:var(--bg-card);border:1px solid var(--border-card);border-radius:10px;padding:20px 24px}.summary-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.summary-card{text-align:center;padding:20px 16px}.summary-card .summary-value{font-size:28px;font-weight:700;color:var(--text-bright);line-height:1;margin-bottom:8px}.summary-card .summary-label{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted)}.search-bar{margin-bottom:20px}.search-bar input{width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:JetBrains Mono,monospace;font-size:13px;padding:10px 14px;outline:none;transition:border-color .15s}.search-bar input::placeholder{color:var(--text-dim)}.search-bar input:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-border);background:var(--bg-input-focus)}.sites-table{width:100%;border-collapse:collapse;font-size:12px}.sites-table th{color:var(--text-muted);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:1.5px;text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s}.sites-table th:hover{color:var(--text)}.sites-table td{padding:12px;border-bottom:1px solid var(--border-row);color:var(--text);vertical-align:middle}.sites-table tbody tr{cursor:pointer;transition:background .15s}.sites-table tbody tr:hover{background:var(--bg-hover)}.sites-table .site-url{color:var(--text-bright);font-weight:500}.login-link{display:inline-flex;align-items:center;justify-content:center;margin-left:10px;padding:2px 8px;color:var(--accent-bright);text-decoration:none;opacity:1;font-size:13px;border:1px solid var(--accent-border-bright);border-radius:4px;transition:background .15s;vertical-align:middle}.login-link:hover{background:var(--accent-bg)}.badge{display:inline-block;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:1px;padding:2px 6px;border-radius:3px;vertical-align:middle;margin-left:6px}.badge:first-child{margin-left:0}.badge-live{background:var(--green-bg);color:var(--green)}.badge-warning{background:var(--yellow-bg);color:var(--yellow)}.badge-error{background:var(--red-bg);color:var(--red)}.badge-purple{background:var(--purple-bg);color:var(--purple)}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:middle}.status-dot.ok{background:var(--green);box-shadow:0 0 6px var(--green-glow)}.status-dot.stale{background:var(--red);box-shadow:0 0 6px var(--red-glow)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--backdrop);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:40px}.modal-card{background:var(--bg-modal);border:1px solid var(--border-modal);border-radius:12px;padding:32px;width:100%;max-width:720px;max-height:calc(100vh - 80px);overflow-y:auto;position:relative}.modal-card h2{color:var(--text-bright);font-size:16px;font-weight:600;margin-bottom:24px}.modal-close{position:absolute;top:16px;right:20px;background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;font-family:JetBrains Mono,monospace;transition:color .15s}.modal-close:hover{color:var(--text-bright)}.info-table{width:100%;border-collapse:collapse;font-size:12px}.info-table td{padding:8px 12px;border-bottom:1px solid var(--border-row);color:var(--text);vertical-align:top}.info-table tr:last-child td{border-bottom:none}.info-table .info-label{color:var(--text-muted);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:1.5px;width:160px;white-space:nowrap;padding-top:10px}.info-table .info-slugs{word-break:break-word;line-height:1.8}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{width:360px;text-align:center}.login-card h1{color:var(--text-bright);font-size:18px;font-weight:600;margin-bottom:6px}.login-card .login-sub{color:var(--text-muted);font-size:11px;margin-bottom:24px}.login-card input{width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:JetBrains Mono,monospace;font-size:13px;padding:10px 14px;outline:none;margin-bottom:16px;transition:border-color .15s}.login-card input:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-border);background:var(--bg-input-focus)}.login-card button{width:100%;background:var(--btn-bg);border:1px solid var(--btn-bg);border-radius:6px;color:#f8fafc;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:1px;padding:10px 18px;cursor:pointer;transition:all .15s}.login-card button:hover{background:var(--btn-hover);border-color:var(--btn-hover)}.login-card .login-error{color:var(--red);font-size:11px;margin-bottom:12px}.muted{color:var(--text-muted)}.loading{text-align:center;padding:40px;color:var(--text-muted);font-size:12px}.empty-state{text-align:center;padding:40px;color:var(--text-dim);font-size:12px}
