:root{--bg: #ffffff;--bg-soft: #f7f7f7;--surface: #ffffff;--surface-2: #f7f7f7;--ink: #222222;--ink-2: #484848;--muted: #717171;--faint: #b0b0b0;--hair: #ebebeb;--hair-2: #dddddd;--accent: #ff4b33;--accent-soft: #fff1ee;--accent-ink: #d93a24;--good: #008a05;--good-soft: #ebf7ec;--warn: #b45309;--warn-soft: #fff6e6;--bad: #c13515;--bad-soft: #fdecea;--info: #3b5bdb;--info-soft: #eef2ff;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 6px 20px rgba(0, 0, 0, .06);--shadow-lg: 0 8px 28px rgba(0, 0, 0, .12), 0 2px 6px rgba(0, 0, 0, .04);--radius: 20px;--radius-sm: 12px;--sidebar: 264px;--ease: cubic-bezier(.2, .8, .2, 1);--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Inter", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg: #000000;--bg-soft: #0c0c0d;--surface: #161617;--surface-2: #1f1f21;--ink: #f5f5f7;--ink-2: #d2d2d7;--muted: #98989d;--faint: #636366;--hair: #2a2a2c;--hair-2: #3a3a3c;--accent-soft: #3a1611;--good: #30d158;--good-soft: #10291a;--warn: #ffb340;--warn-soft: #33250d;--bad: #ff6961;--bad-soft: #3a1513;--info: #7d9bff;--info-soft: #161d38;--shadow-sm: none;--shadow: 0 0 0 1px rgba(255, 255, 255, .06);--shadow-lg: 0 0 0 1px rgba(255, 255, 255, .08), 0 16px 40px rgba(0, 0, 0, .6);color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}::selection{background:var(--accent-soft)}.shell{display:flex;min-height:100%}.sidebar{position:sticky;top:0;height:100vh;width:var(--sidebar);flex:0 0 var(--sidebar);padding:22px 14px 18px;display:flex;flex-direction:column;gap:2px;background:var(--bg-soft);border-right:1px solid var(--hair);overflow-y:auto}.brand{display:flex;align-items:center;gap:11px;padding:4px 10px 22px}.brand img{width:34px;height:34px;border-radius:9px}.brand b{display:block;font-size:16px;font-weight:650;letter-spacing:-.01em}.brand span{display:block;font-size:12px;color:var(--muted)}.nav-label{font-size:11px;font-weight:600;color:var(--faint);text-transform:uppercase;letter-spacing:.06em;padding:14px 12px 6px}.nav a{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:12px;font-size:14.5px;font-weight:500;color:var(--ink-2);transition:background .15s var(--ease),color .15s var(--ease)}.nav a svg{width:19px;height:19px;flex:none;color:var(--muted);transition:color .15s}.nav a:hover{background:var(--surface-2)}.nav a.active{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:var(--shadow)}.nav a.active svg{color:var(--accent)}.nav .count{margin-left:auto;font-size:11.5px;font-weight:600;min-width:20px;padding:1px 7px;border-radius:999px;background:var(--accent);color:#fff;text-align:center}.sidebar-foot{margin-top:auto;padding-top:16px;display:grid;gap:10px}.me{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;font-size:13px;color:var(--muted)}.me b{color:var(--ink);font-weight:600;display:block;font-size:13.5px}.main{flex:1;min-width:0}.page{max-width:1320px;margin:0 auto;padding:36px 44px 80px}.page.narrow{max-width:1040px}.top{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:28px}.top h1{font-size:34px;line-height:1.1;font-weight:700;letter-spacing:-.025em;margin:0}.top .sub{margin-top:6px;color:var(--muted);font-size:14px;display:flex;align-items:center;gap:8px}.top .spacer{flex:1}.crumbs{font-size:13px;color:var(--muted);margin-bottom:10px;display:flex;gap:6px;align-items:center}.crumbs a:hover{color:var(--ink);text-decoration:underline}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--good);box-shadow:0 0 #008a0580;animation:pulse 2.4s infinite}@keyframes pulse{0%{box-shadow:0 0 #008a0573}70%{box-shadow:0 0 0 8px #008a0500}to{box-shadow:0 0 #008a0500}}.seg{display:inline-flex;padding:3px;gap:2px;border-radius:12px;background:var(--surface-2)}.seg button{border:0;background:transparent;padding:7px 14px;border-radius:9px;font-size:13.5px;font-weight:500;color:var(--muted);cursor:pointer;transition:all .2s var(--ease);white-space:nowrap}.seg button.on{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 3px #0000001a}.search-pill{display:flex;align-items:center;gap:10px;height:44px;padding:0 8px 0 18px;border-radius:999px;background:var(--surface);border:1px solid var(--hair-2);box-shadow:0 1px 2px #00000014,0 4px 12px #0000000d;cursor:pointer;min-width:300px;color:var(--muted);font-size:14px;transition:box-shadow .2s var(--ease)}.search-pill:hover{box-shadow:0 2px 4px #0000002e}.search-pill .k{margin-left:auto;width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center}.search-pill .k svg{width:15px;height:15px}kbd{font-family:var(--font);font-size:11.5px;padding:2px 6px;border-radius:6px;border:1px solid var(--hair-2);color:var(--muted);background:var(--surface)}.grid{display:grid;gap:20px}.g-kpi{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.g-kpi.six{grid-template-columns:repeat(3,minmax(0,1fr))}@media (min-width: 1500px){.g-kpi.six{grid-template-columns:repeat(6,minmax(0,1fr))}}.g-2{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr)}.g-3{grid-template-columns:repeat(3,minmax(0,1fr))}.g-2e{grid-template-columns:repeat(2,minmax(0,1fr))}.mt{margin-top:20px}.mt-lg{margin-top:36px}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;min-width:0}.card.flat{box-shadow:none;border:1px solid var(--hair)}.card.pad-0{padding:0;overflow:hidden}.card-h{display:flex;align-items:baseline;gap:10px;margin-bottom:18px}.card-h h3{margin:0;font-size:17px;font-weight:650;letter-spacing:-.012em}.card-h .meta{margin-left:auto;font-size:13px;color:var(--muted)}.card-h a.meta:hover{color:var(--ink);text-decoration:underline}.section-title{font-size:22px;font-weight:650;letter-spacing:-.02em;margin:0 0 16px}.kpi{display:flex;flex-direction:column;gap:6px;cursor:default;transition:transform .25s var(--ease),box-shadow .25s var(--ease)}a.kpi:hover,.kpi.click:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);cursor:pointer}.kpi .l{font-size:13.5px;color:var(--muted);font-weight:500}.kpi .v{font-size:34px;font-weight:700;letter-spacing:-.03em;line-height:1.1;font-variant-numeric:tabular-nums}.kpi .row{display:flex;align-items:center;gap:8px}.kpi .s{font-size:12.5px;color:var(--muted)}.kpi svg.spark{margin-top:8px}.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;line-height:1.5}.pill.good{background:var(--good-soft);color:var(--good)}.pill.bad{background:var(--bad-soft);color:var(--bad)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.info{background:var(--info-soft);color:var(--info)}.pill.mute{background:var(--surface-2);color:var(--muted)}.pill.acc{background:var(--accent-soft);color:var(--accent-ink)}.dot{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block}.dot.good{background:var(--good)}.dot.bad{background:var(--bad)}.dot.warn{background:var(--warn)}.dot.info{background:var(--info)}.dot.mute{background:var(--faint)}.dot.acc{background:var(--accent)}.list{display:flex;flex-direction:column}.li{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-top:1px solid var(--hair)}.li:first-child{border-top:0;padding-top:2px}a.li{border-radius:12px;margin:0 -10px;padding-left:10px;padding-right:10px;transition:background .15s}a.li:hover{background:var(--surface-2)}.li .t{font-size:14.5px;font-weight:550}.li .d{font-size:13px;color:var(--muted);margin-top:2px}.li .x{margin-left:auto;text-align:right;font-size:13px;color:var(--muted);white-space:nowrap}.li .tm{font-size:12.5px;color:var(--faint);width:46px;flex:none;padding-top:2px;font-variant-numeric:tabular-nums}.grow{flex:1;min-width:0}.ellip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-wrap{overflow-x:auto}table.t{width:100%;border-collapse:collapse;font-size:14px}table.t th{text-align:left;font-size:12px;font-weight:600;color:var(--muted);padding:12px 16px;border-bottom:1px solid var(--hair);white-space:nowrap;position:sticky;top:0;background:var(--surface)}table.t td{padding:14px 16px;border-bottom:1px solid var(--hair);vertical-align:middle}table.t tr:last-child td{border-bottom:0}table.t tbody tr{transition:background .12s}table.t tbody tr.click{cursor:pointer}table.t tbody tr.click:hover{background:var(--surface-2)}table.t .num{text-align:right;font-variant-numeric:tabular-nums}table.t .strong{font-weight:600}table.t .sub{font-size:12.5px;color:var(--muted)}.av{width:40px;height:40px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;font-weight:650;font-size:14px;flex:none;overflow:hidden}.av img{width:100%;height:100%;object-fit:cover}.av.lg{width:84px;height:84px;font-size:28px}.av.sm{width:32px;height:32px;font-size:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 18px;border-radius:12px;border:1px solid var(--hair-2);background:var(--surface);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s var(--ease);white-space:nowrap}.btn:hover{border-color:var(--ink)}.btn:active{transform:scale(.98)}.btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn.primary:hover{opacity:.88}.btn.accent{background:linear-gradient(180deg,#ff5a42,#e8402a);color:#fff;border:0}.btn.danger{background:var(--bad);color:#fff;border:0}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--surface-2)}.btn.sm{height:32px;padding:0 12px;font-size:13px;border-radius:10px}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.input,.select,.textarea{height:44px;border:1px solid var(--hair-2);border-radius:12px;padding:0 14px;background:var(--surface);outline:none;transition:border-color .15s,box-shadow .15s;width:100%}.textarea{height:auto;padding:12px 14px;resize:vertical;min-height:88px}.input:focus,.select:focus,.textarea:focus{border-color:var(--ink);box-shadow:0 0 0 3px #0000000f}.field{display:grid;gap:6px}.field label{font-size:13px;font-weight:600;color:var(--ink-2)}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:18px}.toolbar .input{max-width:340px}.toolbar .select{width:auto;min-width:150px}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{border:1px solid var(--hair-2);background:var(--surface);border-radius:999px;padding:8px 15px;font-size:13.5px;font-weight:500;cursor:pointer;transition:all .15s;display:inline-flex;gap:6px;align-items:center}.chip:hover{border-color:var(--ink)}.chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.chip .n{color:var(--muted);font-weight:500}.chip.on .n{color:inherit;opacity:.7}.toggle{width:44px;height:26px;border-radius:999px;background:var(--hair-2);position:relative;border:0;cursor:pointer;transition:background .2s var(--ease);flex:none}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .2s var(--ease)}.toggle.on{background:var(--good)}.toggle.on:after{transform:translate(18px)}.progress{height:10px;border-radius:999px;background:var(--surface-2);overflow:hidden}.progress>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#ff7a5c,var(--accent));transition:width .8s var(--ease)}.bar{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}.bar>i{display:block;height:100%;border-radius:999px;background:var(--ink)}.bar.acc>i{background:var(--accent)}.big{font-size:56px;font-weight:700;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}.big small{font-size:22px;font-weight:600;color:var(--faint);letter-spacing:-.01em;margin-left:6px}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:13px}.xs{font-size:12px}.strong{font-weight:600}.right{text-align:right}.flex{display:flex;align-items:center;gap:10px}.wrap{flex-wrap:wrap}.between{justify-content:space-between}.col{display:flex;flex-direction:column}.gap-s{gap:6px}.gap-l{gap:18px}.heat{display:grid;gap:3px;font-size:11px;color:var(--faint)}.heat .c{height:22px;border-radius:5px;background:var(--accent)}.heat .c.empty{background:var(--surface-2)}.sk{background:linear-gradient(90deg,var(--surface-2) 25%,var(--hair) 37%,var(--surface-2) 63%);background-size:400% 100%;animation:sk 1.4s ease infinite;border-radius:10px}@keyframes sk{0%{background-position:100% 50%}to{background-position:0 50%}}.empty{text-align:center;color:var(--muted);padding:36px 12px;font-size:14px}.empty b{display:block;color:var(--ink);font-size:16px;margin-bottom:4px}.err{background:var(--bad-soft);color:var(--bad);border-radius:var(--radius-sm);padding:14px 16px;font-size:14px}.note{background:var(--surface-2);border-radius:var(--radius-sm);padding:14px 16px;font-size:13.5px;color:var(--ink-2)}.note.warn{background:var(--warn-soft);color:var(--warn)}.fade-in{animation:fade .35s var(--ease)}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000052;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;animation:fade .2s}.modal{width:100%;max-width:560px;background:var(--surface);border-radius:24px;box-shadow:var(--shadow-lg);padding:28px;max-height:80vh;overflow:auto}.modal h2{margin:0 0 6px;font-size:22px;letter-spacing:-.02em}.palette{width:100%;max-width:640px;background:var(--surface);border-radius:22px;box-shadow:var(--shadow-lg);overflow:hidden}.palette input{width:100%;height:64px;border:0;outline:0;padding:0 24px;font-size:18px;background:transparent;border-bottom:1px solid var(--hair)}.palette .res{max-height:56vh;overflow:auto;padding:8px}.palette .it{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:12px;cursor:pointer}.palette .it.sel,.palette .it:hover{background:var(--surface-2)}.palette .grp{font-size:11px;font-weight:600;color:var(--faint);text-transform:uppercase;letter-spacing:.06em;padding:10px 14px 4px}.sheet{position:fixed;right:16px;top:16px;bottom:16px;width:min(460px,calc(100vw - 32px));background:var(--surface);border-radius:24px;box-shadow:var(--shadow-lg);z-index:60;display:flex;flex-direction:column;animation:slide .3s var(--ease)}@keyframes slide{0%{transform:translate(24px);opacity:0}to{transform:none;opacity:1}}.sheet-h{padding:20px 22px 14px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--hair)}.sheet-b{flex:1;overflow:auto;padding:18px 22px;display:flex;flex-direction:column;gap:14px}.sheet-f{padding:14px 16px;border-top:1px solid var(--hair);display:flex;gap:8px}.msg{max-width:92%;padding:12px 14px;border-radius:18px;font-size:14px;white-space:pre-wrap;line-height:1.5}.msg.me{align-self:flex-end;background:var(--ink);color:var(--bg);border-bottom-right-radius:6px}.msg.ai{align-self:flex-start;background:var(--surface-2);border-bottom-left-radius:6px}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%);background:var(--ink);color:var(--bg);padding:12px 18px;border-radius:14px;font-size:14px;font-weight:500;z-index:80;box-shadow:var(--shadow-lg);animation:fade .25s}.login{min-height:100%;display:grid;place-items:center;padding:24px;background:radial-gradient(1200px 600px at 50% -10%,var(--accent-soft),transparent 60%),var(--bg)}.login .box{width:100%;max-width:400px;text-align:center}.login img{width:72px;height:72px;border-radius:18px;box-shadow:var(--shadow-lg)}.login h1{font-size:30px;letter-spacing:-.025em;margin:22px 0 6px}.tabbar,.m-only{display:none}@media (max-width: 1100px){.g-2,.g-3{grid-template-columns:minmax(0,1fr)}}@media (max-width: 900px){.sidebar{display:none}.page{padding:20px 16px 110px}.top{margin-bottom:20px}.top h1{font-size:30px}.search-pill{min-width:0;width:100%}.g-kpi,.g-kpi.six{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.g-2e{grid-template-columns:minmax(0,1fr)}.card{padding:18px;border-radius:18px}.kpi .v{font-size:28px}.big{font-size:46px}.m-only{display:initial}.d-only{display:none!important}.tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:8px 6px calc(8px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-top:1px solid var(--hair)}.tabbar a,.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10.5px;font-weight:500;color:var(--muted);background:none;border:0;padding:4px 0}.tabbar svg{width:24px;height:24px}.tabbar .active{color:var(--accent)}.seg{overflow-x:auto;max-width:100%}table.t th,table.t td{padding:12px 10px}}
