:root{--text:#22262a;--text-muted:#6b7178;--bg:#f4f2ef;--surface:#fff;--border:#d9d5cf;--navbar-bg:#202426;--navbar-text:#f4f2ef;--accent:#a13c2c;--accent-dark:#7d2f22;color:var(--text);background:var(--bg);font:16px/1.5 Inter,system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0}#root{flex-direction:column;min-height:100vh;display:flex}h1{letter-spacing:.02em;margin:0 0 16px;font-size:22px;font-weight:700}table{border-collapse:collapse;background:var(--surface);width:100%;margin-top:12px}th{text-align:left;border-bottom:2px solid var(--navbar-bg);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:8px 10px;font-size:12px}td{text-align:left;border-bottom:1px solid var(--border);padding:8px 10px}.error{color:#a13c2c}.hint{color:var(--text-muted);font-size:14px}.particles-bg{z-index:0;position:fixed;inset:0}.navbar{z-index:1;background:var(--navbar-bg);height:56px;color:var(--navbar-text);border-bottom:3px solid var(--accent);align-items:center;gap:24px;padding:0 24px;display:flex;position:relative}.navbar .brand{letter-spacing:.06em;text-transform:uppercase;color:var(--navbar-text);font-size:17px;font-weight:800}.navbar .brand-button{cursor:pointer;background:0 0;border:none;padding:0}.navbar .brand-button:hover{color:var(--accent)}.navbar a{color:#c6c9cc;border-bottom:2px solid #0000;padding:8px 0;font-size:14px;text-decoration:none}.navbar a:hover{color:var(--navbar-text)}.navbar a.active{color:var(--navbar-text);border-bottom-color:var(--accent);font-weight:600}.navbar .spacer{flex:1}.navbar span:not(.brand){color:#c6c9cc;font-size:14px}.live-updates-toggle{color:#c6c9cc;cursor:pointer;align-items:center;gap:6px;font-size:14px;display:flex}.navbar button{color:var(--navbar-text);background:0 0;border:1px solid #4a4f53}.navbar button:hover{border-color:var(--accent)}.app-main{z-index:1;width:100%;max-width:1000px;margin:0 auto;padding:24px;position:relative}.login-page{flex:1;justify-content:center;align-items:center;display:flex}.login-form{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:4px;flex-direction:column;gap:12px;width:320px;padding:28px;display:flex}.login-form label{flex-direction:column;gap:4px;font-size:14px;display:flex}.login-form input,.filters input,.filters select{border:1px solid var(--border);border-radius:4px;padding:8px;font-size:14px}button{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;letter-spacing:.01em;border-radius:3px;padding:8px 14px;font-size:14px;font-weight:600}button:hover:not(:disabled){background:var(--accent-dark);border-color:var(--accent-dark)}button:disabled{opacity:.6;cursor:default}.filters{align-items:center;gap:10px;margin-bottom:10px;display:flex}.filters label{align-items:center;gap:6px;font-size:14px;display:flex}.status-badge{text-transform:uppercase;letter-spacing:.03em;color:var(--accent-dark);background:#f1e2de;border-radius:2px;margin-left:8px;padding:3px 9px;font-size:12px;font-weight:600}.status-badge--location{background:var(--surface);border:1px solid var(--border);color:inherit}.log{flex-direction:column;gap:10px;padding:0;list-style:none;display:flex}.log-entry{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:4px;padding:10px 14px;font-size:14px}.log-entry-header{align-items:baseline;gap:16px;display:flex}.log-entry-detail{color:#5a5f63;margin-top:4px}.log-entry-collis{flex-direction:column;gap:4px;margin:6px 0 0;padding:0;list-style:none;display:flex}.pager{align-items:center;gap:12px;margin-top:14px;font-size:14px;display:flex}.link-button{color:var(--accent);font-weight:600;font-size:inherit;cursor:pointer;background:0 0;border:none;margin-left:8px;padding:0;text-decoration:underline}.link-button:hover{color:var(--accent-dark)}.lightbox-overlay{z-index:100;background:#000c;justify-content:center;align-items:center;padding:32px;display:flex;position:fixed;inset:0}.lightbox-image{border-radius:4px;max-width:100%;max-height:100%}.lightbox-close{color:#fff;background:0 0;border:none;padding:4px 10px;font-size:32px;line-height:1;position:absolute;top:20px;right:24px}.lightbox-close:hover{color:var(--accent)}.modal-overlay{z-index:100;background:#00000059;justify-content:flex-start;align-items:flex-start;padding:64px 0 0 24px;display:flex;position:fixed;inset:0}.dashboard-modal{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:4px;width:320px;padding:16px 20px;box-shadow:0 8px 24px #00000040}.dashboard-modal-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.dashboard-modal-header h2{margin:0;font-size:16px}.dashboard-modal-close{color:inherit;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.dashboard-modal-close:hover{color:var(--accent)}.dashboard-modal-placeholder{color:#5a5f63;margin:0;font-size:14px}.dashboard-modal--wide{width:520px;max-height:80vh;overflow-y:auto}.dashboard-legend{color:var(--text-muted);gap:16px;margin-bottom:8px;font-size:12px;display:flex}.dashboard-legend-swatch{vertical-align:middle;border-radius:2px;width:10px;height:10px;margin-right:4px;display:inline-block}.dashboard-chart{width:100%;height:auto}.new-key-banner{border:1px solid #d9b3a7;border-left:3px solid var(--accent);background:#f1e2de;border-radius:4px;margin-bottom:12px;padding:10px 14px}
