:root{--bg: #fbfafc;--surface: #ffffff;--sunken: #f4f2f6;--ink: #17151a;--muted: #6b6570;--faint: #9a94a0;--line: #e7e3ea;--line-strong: #d6d0db;--red: #dc0000;--blue: #0054f0;--green: #0f8a4f;--amber: #b45d00;--red-soft: #fdecec;--blue-soft: #eaf1ff;--green-soft: #e8f6ef;--amber-soft: #fdf1e3;--shadow: 0 1px 2px rgba(23, 21, 26, .04), 0 1px 1px rgba(23, 21, 26, .03);--radius: 12px;--rail: 244px;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #0f0e11;--surface: #17161a;--sunken: #1f1d23;--ink: #f1eff3;--muted: #a39ca9;--faint: #75707b;--line: #2a282f;--line-strong: #37343d;--red: #ff5a52;--blue: #6f9dff;--green: #3ccb86;--amber: #f0a24a;--red-soft: #3a1717;--blue-soft: #16223d;--green-soft: #112c20;--amber-soft: #33240f;--shadow: none;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 Inter,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}a{color:var(--blue)}button{font:inherit}:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:6px}.num{font-variant-numeric:tabular-nums}.app{display:grid;grid-template-columns:var(--rail) 1fr;min-height:100%}.side{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:4px;padding:16px 12px;border-right:1px solid var(--line);background:var(--surface)}.brand{display:flex;align-items:center;gap:10px;padding:6px 8px 16px}.brand img{width:30px;height:30px;object-fit:contain;border-radius:7px;flex:none}.brand b{font-size:15px;letter-spacing:-.01em}.brand span{display:block;font-size:12px;color:var(--muted);font-weight:500}.group{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);padding:14px 10px 6px}.nav{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;cursor:pointer;text-align:left;padding:8px 10px;border-radius:8px;color:var(--muted);font-weight:500}.nav svg{width:17px;height:17px;flex:none}.nav:hover{background:var(--sunken);color:var(--ink)}.nav[aria-current=page]{background:var(--sunken);color:var(--ink);font-weight:600}.nav[aria-current=page] svg{color:var(--blue)}.nav .count{margin-left:auto;min-width:20px;padding:0 6px;border-radius:999px;font-size:11px;font-weight:700;line-height:18px;text-align:center;color:var(--amber);border:1px solid currentColor}.me{margin-top:auto;border-top:1px solid var(--line);padding:12px 8px 0;display:flex;align-items:center;gap:10px}.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;border:1px solid var(--line-strong);color:var(--muted);flex:none}.me .who{min-width:0;flex:1;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-btn{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;width:30px;height:30px;display:grid;place-items:center;cursor:pointer;flex:none}.icon-btn:hover{color:var(--ink);border-color:var(--line-strong)}.icon-btn svg{width:15px;height:15px}.main{min-width:0}.topbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:16px;padding:14px 32px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.topbar h1{font-size:16px;margin:0;letter-spacing:-.01em}.topbar .sub{color:var(--muted);font-size:13px}.topbar .right{margin-left:auto;display:flex;align-items:center;gap:10px}.live{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.live i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px var(--green-soft)}.content{padding:24px 32px 64px;max-width:1240px}.panel h2:first-child{margin-top:0}@media(max-width:860px){.app{grid-template-columns:1fr}.side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--line);padding:10px}.brand{padding:4px 8px;width:100%}.group,.me{display:none}.nav{width:auto}.topbar,.content{padding-left:16px;padding-right:16px}}h2{font-size:13px;font-weight:600;color:var(--muted);margin:28px 0 10px;display:flex;align-items:center;gap:8px}.note{color:var(--muted);font-size:13px}.error{color:var(--red);font-size:13px;margin:8px 0}code{font:12px ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--sunken);padding:2px 6px;border-radius:6px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.card .label{color:var(--muted);font-size:12px;font-weight:500;display:flex;align-items:center;gap:6px}.card .value{font-size:28px;font-weight:650;letter-spacing:-.02em;margin-top:6px;font-variant-numeric:tabular-nums}.card .meta{color:var(--faint);font-size:12px;margin-top:4px}button.card.open{text-align:left;cursor:pointer;color:inherit;width:100%;transition:border-color .15s,transform .15s}button.card.open:hover{border-color:var(--line-strong)}button.card.open:active{transform:translateY(1px)}.cards.kpi{grid-template-columns:1.6fr repeat(4,1fr)}@media(max-width:1100px){.cards.kpi{grid-template-columns:repeat(2,1fr)}.cards.kpi .hero{grid-column:span 2}}@media(max-width:560px){.cards.kpi{grid-template-columns:1fr}.cards.kpi .hero{grid-column:auto}}.card.hero .value{font-size:36px}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:var(--line-strong)}.dot.warn{background:var(--amber);box-shadow:0 0 0 3px var(--amber-soft)}.dot.ok{background:var(--green)}.cards.duo{grid-template-columns:repeat(2,1fr);margin-bottom:12px}.cards.quad{grid-template-columns:repeat(4,1fr)}@media(max-width:900px){.cards.quad{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.cards.duo,.cards.quad{grid-template-columns:1fr}}.card .go{margin-left:auto;width:16px;height:16px;display:inline-flex;color:var(--faint);transition:transform .15s,color .15s}button.card.open:hover .go{color:var(--ink);transform:translate(2px)}button.act.back{display:inline-flex;align-items:center;gap:6px;margin-bottom:20px}button.act.back+.filters+h2,button.act.back+h2{margin-top:8px}.filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 16px}.seg{display:inline-flex;padding:3px;gap:2px;border:1px solid var(--line);border-radius:999px;background:var(--surface);box-shadow:var(--shadow)}.seg button{border:0;background:transparent;padding:6px 13px;border-radius:999px;color:var(--muted);font-weight:500;font-size:13px;cursor:pointer;white-space:nowrap}.seg button:hover{color:var(--ink)}.seg button[aria-pressed=true]{background:var(--ink);color:var(--bg);font-weight:600}.range-label{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.custom{display:flex;flex-wrap:wrap;align-items:center;gap:8px;width:100%;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.custom label{margin:0}.custom input{width:auto;padding:7px 10px}.todo{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.todo button{display:flex;align-items:center;gap:12px;width:100%;border:0;border-top:1px solid var(--line);background:transparent;color:inherit;padding:13px 16px;cursor:pointer;text-align:left}.todo button:first-child{border-top:0}.todo button:hover{background:var(--sunken)}.todo .what{flex:1;font-weight:500}.todo .n{font-variant-numeric:tabular-nums;font-weight:650}.todo .chev{color:var(--faint)}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto;box-shadow:var(--shadow)}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data th{text-align:left;font-weight:500;font-size:12px;color:var(--muted);padding:10px 14px;border-bottom:1px solid var(--line);background:var(--sunken);white-space:nowrap}table.data td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:top}table.data tr:last-child td{border-bottom:0}table.data tbody tr:hover td{background:color-mix(in srgb,var(--sunken) 60%,transparent)}table.data .r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}table.data .strong{font-weight:600}table.data .dim{color:var(--muted)}.tag{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;border-radius:999px;padding:1px 8px;border:1px solid currentColor;white-space:nowrap;line-height:18px}.tag.red{color:var(--red);background:var(--red-soft);border-color:transparent}.tag.green{color:var(--green);background:var(--green-soft);border-color:transparent}.tag.amber{color:var(--amber);background:var(--amber-soft);border-color:transparent}.tag.blue{color:var(--blue);background:var(--blue-soft);border-color:transparent}.tag.grey{color:var(--muted);background:var(--sunken);border-color:transparent}.row{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin-bottom:8px;box-shadow:var(--shadow)}.row:hover{border-color:var(--line-strong)}.row .body{flex:1;min-width:0}.row .title{font-weight:600}.row .meta{color:var(--muted);font-size:12.5px;word-break:break-word;margin-top:2px}button.act{border:1px solid transparent;border-radius:999px;padding:7px 14px;cursor:pointer;background:var(--ink);color:var(--bg);font-weight:600;font-size:13px;white-space:nowrap}button.act:hover{opacity:.9}button.act.danger{background:transparent;color:var(--red);border-color:var(--red)}button.act.danger:hover{background:var(--red-soft);opacity:1}button.act.quiet{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}button.act.quiet:hover{background:var(--sunken);opacity:1}button.act:disabled{opacity:.45;cursor:not-allowed}input,textarea{width:100%;border:1px solid var(--line-strong);border-radius:10px;padding:9px 12px;font:inherit;color:inherit;background:var(--surface)}input:focus,textarea:focus{outline:2px solid var(--blue-soft);border-color:var(--blue)}label{display:block;font-size:12px;font-weight:500;color:var(--muted);margin:12px 0 6px}.banner svg{width:18px;height:18px;flex:none;margin-top:1px}.banner{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--red);background:var(--red-soft);color:var(--red);border-radius:var(--radius);padding:12px 14px;margin-bottom:16px;font-weight:600}.skeleton{border-radius:8px;background:linear-gradient(90deg,var(--sunken) 0%,var(--line) 50%,var(--sunken) 100%);background-size:200% 100%;animation:shimmer 1.2s linear infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}.empty{text-align:center;padding:40px 16px;color:var(--muted);border:1px dashed var(--line-strong);border-radius:var(--radius)}.empty b{display:block;color:var(--ink);margin-bottom:4px}.gate{min-height:100%;display:grid;place-items:center;padding:24px 16px}.gate-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:var(--shadow)}.gate-card .brand{justify-content:center;padding-bottom:8px}.gate-card h1{font-size:20px;text-align:center;margin:0 0 4px;letter-spacing:-.01em}.gate-card .note{text-align:center}.gate-card button.act{width:100%;padding:10px;margin-top:16px}.captcha{display:flex;justify-content:center;min-height:65px;margin:12px 0 4px}.gate-card .qr{display:block;width:180px;height:180px;margin:12px auto}.gate-card .secret{font-family:ui-monospace,monospace;font-size:12px;word-break:break-all;-webkit-user-select:all;user-select:all}
