:root{--radius-s: 8px;--radius-m: 12px;--radius-l: 16px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--shadow-1: 0 1px 2px rgba(0,0,0,.12);--shadow-2: 0 4px 16px rgba(0,0,0,.2);--shadow-3: 0 8px 32px rgba(0,0,0,.3);--ease: cubic-bezier(.2,.7,.2,1);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}[data-theme=dark]{--bg: #0e1117;--surface: #161b24;--surface-2: #1e2530;--surface-3: #262f3d;--text: #e6e8ee;--muted: #9aa3b2;--border: rgba(255,255,255,.08);--accent: #6a9bff;--accent-soft: rgba(106,155,255,.15);--success: #34d399;--warn: #fbbf24;--danger: #f87171}[data-theme=light]{--bg: #f6f7f9;--surface: #ffffff;--surface-2: #eef1f5;--surface-3: #e2e6ec;--text: #1a1f29;--muted: #5b6577;--border: rgba(20,25,35,.1);--accent: #2563eb;--accent-soft: rgba(37,99,235,.1);--success: #059669;--warn: #b45309;--danger: #dc2626}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior:none;transition:background .2s var(--ease),color .2s var(--ease)}.app{display:flex;flex-direction:column;height:100dvh;height:100vh}.topbar{display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-4);height:56px;flex:0 0 56px;background:var(--surface);border-bottom:1px solid var(--border);z-index:20}.brand{display:flex;align-items:center;gap:var(--space-2);font-weight:700;letter-spacing:.2px;white-space:nowrap}.brand.big{font-size:22px;justify-content:center}.brand.big small{font-size:13px}.brand .dot{width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.login{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-5)}.login-card{width:100%;max-width:380px;text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);padding:var(--space-6) var(--space-5);box-shadow:var(--shadow-2);display:flex;flex-direction:column;gap:var(--space-4);align-items:center}.login-sub{color:var(--muted);font-size:14px;margin:0;line-height:1.5}.login-note{color:var(--muted);font-size:12px;margin:0}.btn-google{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;padding:12px 16px;border-radius:var(--radius-m);background:var(--surface-2);border:1px solid var(--border);color:var(--text);font-weight:600;font-size:15px;cursor:pointer;text-decoration:none;transition:background .15s,transform .05s}.btn-google:hover{background:var(--surface-3)}.btn-google:active{transform:scale(.98)}.login-tabs{display:flex;gap:var(--space-2);width:100%;background:var(--surface-2);border-radius:var(--radius-m);padding:4px}.login-tab{flex:1;padding:8px 0;border:none;background:transparent;color:var(--muted);font-size:13px;font-weight:600;cursor:pointer;border-radius:var(--radius-s);transition:all .15s}.login-tab.active{background:var(--surface-3);color:var(--text)}.login-form{width:100%;display:flex;flex-direction:column;gap:var(--space-3)}.login-form .txt{width:100%;padding:11px 12px;border-radius:var(--radius-m);border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:15px;outline:none}.login-form .txt:focus{border-color:var(--accent)}.login-err{color:var(--danger);font-size:13px;margin:0;text-align:left}.f{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);margin-bottom:var(--space-3)}.f .txt{width:100%;margin:0}.frow{display:flex;gap:var(--space-3)}.frow .f{flex:1}.factions{display:flex;gap:var(--space-2);margin:var(--space-3) 0 var(--space-2)}.btn{border:none;cursor:pointer;border-radius:var(--radius-m);font-weight:600;padding:10px 14px;font-size:13px;transition:background .15s,transform .05s;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn:active{transform:scale(.97)}.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{background:transparent;border:1px solid var(--border);color:var(--muted)}.btn.ghost:hover{color:var(--danger);border-color:var(--danger);background:transparent}.btn.xsmall{padding:4px 8px;font-size:11.5px;border-radius:999px}.ent-head{display:flex;align-items:center;justify-content:space-between}.relrow{display:flex;align-items:center;gap:var(--space-2);padding:6px 4px;font-size:13px;border-bottom:1px solid var(--border)}.relrow .other{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.relrow .other em{color:var(--muted);font-style:normal;font-size:11.5px;margin-left:6px;font-weight:600}.iconbtn.small{width:28px;height:28px;font-size:13px}.newrel{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-2)}.newrel .txt{width:100%}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:50;display:flex;align-items:center;justify-content:center;animation:fade .2s var(--ease)}.modal{width:92%;max-width:420px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-l);box-shadow:var(--shadow-3);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.modal h3,.modal .factions{margin:0}.modal.wide{max-width:720px}.report-md{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-m);padding:var(--space-4);max-height:55vh;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:12.5px;line-height:1.55;color:var(--text);margin:0;font-family:var(--font)}.searchbtn{height:38px;white-space:nowrap}.f.chec{flex-direction:row;align-items:center;gap:var(--space-2);font-size:13.5px;color:var(--text)}.f.chec input{width:17px;height:17px;accent-color:var(--accent)}.brand small{color:var(--muted);font-weight:500;margin-left:2px}.topbar .spacer{flex:1}.search{flex:0 1 360px;min-width:120px;display:flex;align-items:center;gap:var(--space-2);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-m);padding:8px var(--space-3);height:38px}.search input{flex:1;background:none;border:none;outline:none;color:var(--text);font-size:14px;min-width:0}.search input::placeholder{color:var(--muted)}.iconbtn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--radius-m);border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:16px;cursor:pointer;transition:background .15s,transform .05s}.iconbtn:active{transform:scale(.94)}.iconbtn:hover{background:var(--surface-3)}.body{flex:1;display:flex;min-height:0}.sidebar{flex:0 0 280px;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border);overflow-y:auto;min-height:0}.sidebar .panel-title{padding:var(--space-4) var(--space-4) var(--space-2);font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:0 var(--space-4) var(--space-3)}.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:12.5px;background:var(--surface-2);border:1px solid var(--border);color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .15s}.chip.active{color:var(--text);border-color:var(--accent);background:var(--accent-soft)}.chip .cnt{font-size:11px;opacity:.7}.entlist{display:flex;flex-direction:column;padding:0 var(--space-2) var(--space-4);gap:2px}.entitem{display:flex;align-items:center;gap:var(--space-2);padding:8px 10px;border-radius:var(--radius-s);cursor:pointer;font-size:13.5px;transition:background .12s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entitem:hover{background:var(--surface-2)}.entitem.selected{background:var(--accent-soft)}.entitem .swatch{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.entitem .tag-tipo{font-size:11px;color:var(--muted);margin-left:auto;flex:0 0 auto}.graph-wrap{flex:1;position:relative;min-width:0;background:var(--bg)}#graph{position:absolute;top:0;right:0;bottom:0;left:0}.graph-hint{position:absolute;left:50%;transform:translate(-50%);bottom:var(--space-4);font-size:12px;color:var(--muted);background:var(--surface);border:1px solid var(--border);padding:6px 12px;border-radius:999px;pointer-events:none;box-shadow:var(--shadow-1)}.counts{position:absolute;top:var(--space-3);left:var(--space-3);display:flex;gap:var(--space-2);font-size:12px;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);padding:6px 12px;box-shadow:var(--shadow-1);pointer-events:none}.counts b{color:var(--text);font-weight:600}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:30;animation:fade .2s var(--ease)}.drawer{position:fixed;z-index:31;background:var(--surface);color:var(--text);display:flex;flex-direction:column;box-shadow:var(--shadow-3)}.drawer.right{top:0;right:0;bottom:0;width:380px;max-width:92vw;border-left:1px solid var(--border);animation:slideRight .25s var(--ease)}.drawer.bottom{left:0;right:0;bottom:0;max-height:78dvh;border-top-left-radius:var(--radius-l);border-top-right-radius:var(--radius-l);border-top:1px solid var(--border);animation:slideUp .28s var(--ease)}.drawer .grip{width:44px;height:5px;border-radius:999px;background:var(--surface-3);margin:var(--space-2) auto 4px;flex:0 0 auto}.drawer-head{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-4);border-bottom:1px solid var(--border)}.drawer-head h2{margin:0;font-size:17px}.drawer-head .spacer{flex:1}.drawer-body{padding:var(--space-4);overflow-y:auto}.drawer-body h3{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:var(--space-4) 0 var(--space-2)}.kv{display:flex;gap:var(--space-2);font-size:13px;padding:4px 0}.kv .k{color:var(--muted);flex:0 0 96px}.kv .v{flex:1;word-break:break-word}.badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:11.5px;border:1px solid var(--border);background:var(--surface-2)}.badge.accent{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.badge.warn{color:var(--warn);border-color:var(--warn);background:var(--warn);color:#000}.empty{padding:var(--space-5);color:var(--muted);text-align:center;font-size:13px}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes slideRight{0%{transform:translate(40px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideUp{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}@media (max-width: 860px){.sidebar{display:none}.search{flex:1}}@media (min-width: 861px){.drawer.bottom{display:none}}@media (max-width: 860px){.drawer.right{display:none}}@media (max-width: 480px){.brand small{display:none}.topbar{padding:0 var(--space-3)}}
