:root{--bg:#0b0f19;--card:#111827;--card2:#1e293b;--inp:#070b14;--bdr:#334155;--bdr-f:#6366f1;--txt:#f8fafc;--muted:#94a3b8;--p:#6366f1;--acc:#38bdf8;--ok:#10b981;--warn:#f59e0b;--err:#ef4444;--r:8px;--sh:0 4px 20px rgba(0,0,0,0.5)}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Inter',sans-serif;color:var(--txt);background:var(--bg);display:flex;flex-direction:column}.app-container{flex:1 1 0%;display:flex;flex-direction:column;min-height:0;height:100%;overflow:hidden}header{flex-shrink:0;background:#111827;padding:12px 20px;border-bottom:1px solid var(--bdr);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}h1{font-size:17px;font-weight:700;margin:0;color:#fff;display:flex;align-items:center;gap:6px}h1::before{content:"📍";font-size:17px}nav{margin:0;padding:0}nav a{color:var(--acc);text-decoration:none;font-size:12px;font-weight:600;padding:5px 10px;background:rgba(56,189,248,0.1);border:1px solid rgba(56,189,248,0.25);border-radius:var(--r);display:inline-flex;align-items:center}nav a:hover{background:rgba(56,189,248,0.2);border-color:var(--acc)}.github-section{display:flex;align-items:center;margin:0}.github-section p{display:none}.github-button{display:inline-flex;align-items:center;gap:6px;background:#1e293b;color:#f8fafc;border:1px solid var(--bdr);padding:5px 12px;border-radius:var(--r);font-size:12px;font-weight:600;text-decoration:none}.github-button:hover{background:#334155;border-color:#64748b}.github-button svg path{fill:#38bdf8}.sponsor-section{display:inline-flex;align-items:center;margin:0;padding:0;background:transparent;border:none}.sponsor-close,.sponsor-text{display:none}.sponsor-button{display:inline-flex;align-items:center;gap:6px;background:#6366f1;color:white;border:1px solid rgba(255,255,255,0.15);padding:5px 12px;border-radius:var(--r);font-size:12px;font-weight:600;text-decoration:none}.sponsor-button:hover{background:#4f46e5}main{flex:1 1 0%;display:flex;min-height:0;height:100%;overflow:hidden;background:var(--bg)}.sidebar{width:350px;flex-shrink:0;height:100%;overflow-y:auto;overscroll-behavior:contain;background:var(--card);padding:18px;border-right:1px solid var(--bdr)}.sidebar::-webkit-scrollbar,.content::-webkit-scrollbar{width:8px;height:8px}.sidebar::-webkit-scrollbar-thumb,.content::-webkit-scrollbar-thumb{background:#334155;border-radius:4px}.sidebar::-webkit-scrollbar-thumb:hover,.content::-webkit-scrollbar-thumb:hover{background:#475569}.content{flex:1 1 0%;min-height:0;height:100%;padding:20px;overflow-y:auto;overscroll-behavior:contain;background:#090d16}form{display:flex;flex-direction:column;gap:14px}fieldset{border:1px solid var(--bdr);padding:12px;margin:0;border-radius:var(--r);background:var(--inp)}legend{font-size:11px;text-transform:uppercase;letter-spacing:1px;font-weight:700;color:var(--acc);padding:0 6px}.form-group{margin-bottom:10px}.form-group:last-child{margin-bottom:0}label{display:block;font-size:12px;font-weight:600;margin-bottom:4px;color:var(--muted)}input[type="text"],input[type="number"],textarea{width:100%;padding:8px 10px;background:#060a12;border:1px solid var(--bdr);border-radius:var(--r);color:var(--txt);font-size:13px;font-family:inherit;box-sizing:border-box}input[type="text"]:focus,input[type="number"]:focus,textarea:focus{outline:none;border-color:var(--bdr-f);background:#0b1120;box-shadow:0 0 0 3px rgba(99,102,241,0.25)}.checkbox{display:flex;align-items:center;gap:8px}.checkbox input[type="checkbox"]{width:15px;height:15px;accent-color:var(--p);cursor:pointer}.checkbox label{margin:0;cursor:pointer;color:var(--txt);font-size:12px}.expandable-section{border:1px solid var(--bdr);border-radius:var(--r);background:var(--inp);overflow:hidden}.expandable-section summary{cursor:pointer;padding:8px 12px;font-size:12px;font-weight:600;color:var(--txt);background:var(--card2);user-select:none}.expandable-section summary:hover{background:#28354e}.expandable-section fieldset{border:none;background:transparent;padding:10px}.text-muted{color:var(--muted);font-size:11px;margin:2px 0 4px 0}button[type="submit"],button{background:#6366f1;color:white;border:none;padding:10px 16px;border-radius:var(--r);cursor:pointer;font-size:13px;font-weight:700;box-shadow:0 4px 12px rgba(99,102,241,0.4);width:100%}button[type="submit"]:hover,button:hover{background:#4f46e5}table{width:100%;border-collapse:separate;border-spacing:0;background:var(--card);box-shadow:var(--sh);border-radius:var(--r);border:1px solid var(--bdr);overflow:hidden}th,td{text-align:left;padding:10px 14px;font-size:12px;border-bottom:1px solid var(--bdr)}th{font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:0.6px;color:var(--muted);background:var(--card2)}tr:last-child td{border-bottom:none}tr:hover td{background:rgba(255,255,255,0.02)}.status-indicator{display:inline-flex;align-items:center;padding:3px 7px;border-radius:9999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.4px}.status-ok{background:rgba(16,185,129,0.15);color:#34d399;border:1px solid rgba(16,185,129,0.3)}.status-pending,.status-working{background:rgba(245,158,11,0.15);color:#fbbf24;border:1px solid rgba(245,158,11,0.3)}.status-failed,.status-error{background:rgba(239,68,68,0.15);color:#f87171;border:1px solid rgba(239,68,68,0.3)}.download-button,.delete-button,.view-button{display:inline-flex;align-items:center;padding:4px 8px;border-radius:var(--r);font-size:11px;font-weight:600;text-decoration:none;margin-right:4px}.download-button{background:rgba(16,185,129,0.2);color:#34d399;border:1px solid rgba(16,185,129,0.3)}.download-button:hover{background:#10b981;color:#fff}.delete-button{background:rgba(239,68,68,0.2);color:#f87171;border:1px solid rgba(239,68,68,0.3)}.delete-button:hover{background:#ef4444;color:#fff}.view-button{background:rgba(56,189,248,0.2);color:#38bdf8;border:1px solid rgba(56,189,248,0.3)}.view-button:hover{background:#38bdf8;color:#0b1120}.error-message{display:none;background:rgba(239,68,68,0.1);border:1px solid var(--err);color:#fca5a5;padding:8px 12px;border-radius:var(--r);margin-bottom:12px;font-size:12px}.error-message:not(:empty){display:block}.spinner{width:20px;height:20px;border:3px solid rgba(99,102,241,0.2);border-top-color:var(--p);border-radius:50%;animation:spin .8s linear infinite;margin:12px auto;display:none}.htmx-request .spinner,.spinner.htmx-request{display:block}@keyframes spin{to{transform:rotate(360deg)}}.map-modal{display:flex;position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,0.8);backdrop-filter:blur(4px);justify-content:center;align-items:center}.map-modal-content{background:var(--card);width:90vw;height:85vh;border-radius:12px;border:1px solid var(--bdr);box-shadow:0 25px 50px rgba(0,0,0,0.7);display:flex;flex-direction:column;overflow:hidden}.map-modal-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--bdr);background:var(--card2)}.map-modal-header h2{margin:0;font-size:14px;color:var(--txt)}.map-modal-close{background:transparent;border:none;color:var(--muted);font-size:18px;cursor:pointer;padding:4px;width:auto;box-shadow:none}.map-modal-close:hover{color:var(--txt);background:transparent;box-shadow:none}.map-modal-body{flex:1;background:var(--bg)}@media(max-width:900px){html,body{overflow:auto}.app-container{height:auto;overflow:visible}main{flex-direction:column;height:auto;overflow:visible}.sidebar{width:100%;height:auto;border-right:none;border-bottom:1px solid var(--bdr);overflow:visible}.content{padding:14px;height:auto;overflow:visible}}/*                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              */