@font-face{font-family:Montserrat;src:url(/assets/montserrat-latin-500-normal-DRFEGfly.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Montserrat;src:url(/assets/montserrat-latin-700-normal-BdjcYUrC.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--bg-app: #070713;--bg-page: #10101c;--surface: rgba(255, 255, 255, .07);--surface-strong: rgba(255, 255, 255, .11);--surface-soft: rgba(255, 255, 255, .045);--line: rgba(255, 255, 255, .12);--line-soft: rgba(255, 255, 255, .08);--text: #fff;--text-2: rgba(255, 255, 255, .76);--text-3: rgba(255, 255, 255, .46);--brand: #ff7a1a;--brand-deep: #f06500;--pink: #ff6fad;--green: #31e69b;--violet: #a66cff;--yellow: #ffcc69;--font-mixed: "SF Pro Display", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-number: "Montserrat", "SF Pro Display", Arial, sans-serif;--ease: cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box}html{min-width:320px;background:var(--bg-app)}body{margin:0;min-width:320px;color:var(--text);font-family:var(--font-mixed);background:radial-gradient(circle at 78% -8%,rgba(255,122,26,.2),transparent 28rem),radial-gradient(circle at 4% 18%,rgba(166,108,255,.14),transparent 25rem),linear-gradient(180deg,var(--bg-app) 0%,var(--bg-page) 58%,#170e1e 100%)}button,input,select{font:inherit}button{color:inherit;cursor:pointer}.page-shell{width:min(1480px,100%);min-height:100svh;margin:0 auto;padding:38px clamp(18px,4vw,64px) 72px}.intro-card,.query-card,.profile-card,.timeline-card,.feedback{position:relative;overflow:hidden;border:1px solid var(--line-soft);border-radius:24px;background:linear-gradient(145deg,#ffffff1b,#ffffff09);box-shadow:0 24px 80px #0003;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.intro-card:before,.query-card:before,.profile-card:before,.timeline-card:before{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;content:"";background:linear-gradient(120deg,rgba(255,255,255,.08),transparent 32%);opacity:.55}.intro-card,.query-card{padding:clamp(22px,3vw,36px)}.profile-card,.timeline-card{padding:24px}.query-card,.profile-card,.timeline-card{margin-top:16px}.intro-header,.profile-head,.timeline-head{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.intro-copy-block{min-width:0}.brand-lockup{display:flex;align-items:center;gap:10px;margin-bottom:26px;color:var(--text-2);font:700 12px/16px var(--font-number);letter-spacing:.16em}.brand-mark{display:grid;place-items:center;width:38px;height:38px;overflow:hidden;border-radius:12px;background:#000;box-shadow:0 8px 24px #00000040}.brand-mark img{width:100%;height:100%;object-fit:contain}.eyebrow{margin:0 0 10px;color:var(--brand);font:700 11px/16px var(--font-number);letter-spacing:.16em;text-transform:uppercase}.intro-card h1{max-width:760px;margin:0;font-size:clamp(32px,5vw,64px);line-height:1.02;letter-spacing:-.045em}.hero-copy{max-width:720px;margin:18px 0 0;color:var(--text-2);font-size:15px;line-height:1.7}.intro-signal{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;padding:9px 12px;border:1px solid rgba(49,230,155,.2);border-radius:999px;color:var(--green);background:#31e69b14;font-size:12px;font-weight:600}.auth-state{min-height:100vh;display:grid;place-items:center}.auth-card{width:min(520px,calc(100vw - 40px));padding:42px;border:1px solid var(--line);border-radius:28px;background:var(--panel);box-shadow:var(--shadow)}.auth-card h1{margin:24px 0 12px}.auth-card p:not(.eyebrow){color:var(--muted);line-height:1.7}.auth-login-button{display:inline-flex;text-decoration:none;margin-top:18px;padding:0 20px;align-items:center}.auth-user-chip{display:inline-flex;align-items:center;gap:9px;align-self:flex-start;padding:7px 10px 7px 7px;border:1px solid var(--line);border-radius:999px;background:#ffffff0a;color:var(--text)}.auth-user-chip img,.auth-user-chip>span{width:28px;height:28px;border-radius:50%;object-fit:cover;display:grid;place-items:center;background:var(--accent);color:var(--ink);font-weight:800}.auth-user-chip button{border:0;background:transparent;color:var(--muted);cursor:pointer;padding:2px 4px}.auth-user-chip button:hover{color:var(--accent)}.signal-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px #31e69b1a,0 0 16px var(--green)}.query-card-head{position:relative;z-index:1;display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin-bottom:22px}.query-card-head h2,.profile-head h2,.timeline-title-block h2{margin:0;font-size:20px;line-height:1.25;letter-spacing:-.02em}.query-card-head:after{content:"QUERY / SINGLE USER";color:var(--text-3);font:700 10px/16px var(--font-number);letter-spacing:.14em}.query-form{position:relative;z-index:1;display:grid;grid-template-columns:180px minmax(260px,1fr) 146px;gap:12px;align-items:end}.query-field{display:flex;flex-direction:column;gap:8px;min-width:0}.query-label{color:var(--text-3);font:700 11px/16px var(--font-number);letter-spacing:.12em;text-transform:uppercase}.query-input,.query-select{width:100%;min-height:48px;border:1px solid var(--line);border-radius:14px;outline:none;color:var(--text);background:#0000002e;padding:0 15px;transition:border-color .12s var(--ease),background .12s var(--ease),box-shadow .12s var(--ease)}.query-input::placeholder{color:var(--text-3)}.query-input:focus,.query-select:focus{border-color:#ff7a1ab3;background:#00000047;box-shadow:0 0 0 4px #ff7a1a1c}.query-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--brand) 50%),linear-gradient(135deg,var(--brand) 50%,transparent 50%);background-position:calc(100% - 18px) 21px,calc(100% - 13px) 21px;background-repeat:no-repeat;background-size:5px 5px,5px 5px}.query-select option{color:var(--text);background:#171422}.query-button{min-height:48px;border:0;border-radius:14px;color:#1b0b02;background:linear-gradient(135deg,#ffad63,var(--brand) 54%,var(--brand-deep));box-shadow:0 12px 28px #ff730038;font-size:14px;font-weight:700;transition:transform .12s var(--ease),box-shadow .12s var(--ease),filter .12s var(--ease)}.query-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 16px 34px #ff730057;filter:saturate(1.1)}.query-button:disabled{cursor:wait;opacity:.62}.feedback{padding:15px 18px;margin-top:16px;font-size:13px;line-height:1.5}.feedback.error{border-color:#ff445f59;color:#ff9bab;background:#e72a491f}.feedback.warn{border-color:#ffcc694d;color:var(--yellow);background:#f0ad1d1a}.profile-head,.timeline-head{margin-bottom:20px}.profile-head span,.timeline-head span{color:var(--text-3);font-size:13px}.base-info-row{position:relative;z-index:1;display:grid;grid-template-columns:248px minmax(0,1fr);gap:14px}.avatar-panel{display:flex;align-items:center;gap:14px;min-height:130px;padding:18px;border:1px solid rgba(255,122,26,.2);border-radius:18px;background:linear-gradient(145deg,#ff7a1a2e,#a66cff14)}.avatar-image,.avatar-fallback{width:72px;height:72px;flex:0 0 72px;border-radius:24px}.avatar-image{object-fit:cover;border:2px solid rgba(255,255,255,.25);background:var(--surface)}.avatar-fallback{display:grid;place-items:center;border:1px dashed var(--line);color:var(--text-3);font-size:12px}.avatar-info-block{min-width:0}.avatar-meta{display:flex;flex-wrap:wrap;gap:7px}.avatar-kind-chip,.gender-chip{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border:1px solid var(--line);border-radius:999px;font-size:11px;font-weight:600}.avatar-kind-chip.default{color:var(--text-2);background:var(--surface)}.avatar-kind-chip.uploaded{color:var(--green);border-color:#31e69b47;background:#31e69b1a}.avatar-kind-chip.unknown{color:var(--text-3);background:var(--surface-soft)}.gender-chip.male{color:#9cc9ff;background:#5ea8ff1f}.gender-chip.female{color:var(--pink);background:#ff6fad1f}.gender-chip.unknown{color:var(--text-3);background:var(--surface-soft)}.gender-icon{margin-right:5px}.summary-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.summary-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.summary-item{min-width:0;min-height:58px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:14px;background:var(--surface-soft)}.summary-label{display:block;margin-bottom:5px;color:var(--text-3);font:500 10px/14px var(--font-number);letter-spacing:.05em;text-transform:uppercase}.summary-value{display:block;overflow:hidden;color:var(--text-2);font:500 13px/18px var(--font-number);text-overflow:ellipsis;white-space:nowrap}.timeline-toolbar-shell{position:relative;z-index:1;padding-bottom:20px;border-bottom:1px solid var(--line-soft)}.timeline-title-block{margin-bottom:18px}.timeline-title-block h2:before{display:inline-block;width:8px;height:8px;margin:0 10px 3px 0;border-radius:50%;background:var(--brand);box-shadow:0 0 14px var(--brand);content:""}.timeline-toolbar-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.stats-strip{display:flex;flex:1 1 auto;flex-wrap:wrap;gap:8px;min-width:0}.stats-chip{min-height:52px;flex:1 1 124px;padding:9px 12px;border:1px solid var(--line-soft);border-radius:14px;background:var(--surface-soft)}.stats-chip-wide{flex:1.65 1 260px}.stats-chip span{display:block;margin-bottom:4px;color:var(--text-3);font-size:10px}.stats-chip strong{display:block;overflow:hidden;color:var(--text);font:700 14px/18px var(--font-number);text-overflow:ellipsis;white-space:nowrap}.timeline-toolbar-controls{display:flex;flex:0 0 auto;flex-direction:column;align-items:flex-end;gap:8px}.mode-switch,.filter-chips{display:flex;flex-wrap:wrap;gap:6px}.mode-chip,.filter-chip{min-height:32px;padding:0 11px;border:1px solid var(--line);border-radius:999px;color:var(--text-3);background:transparent;font-size:11px;font-weight:600;transition:color .12s var(--ease),background .12s var(--ease),border-color .12s var(--ease)}.mode-chip:hover,.filter-chip:hover{color:var(--text);border-color:#ffffff42}.mode-chip.active{border-color:transparent;color:#1b0b02;background:var(--brand);box-shadow:0 6px 18px #ff7a1a33}.filter-chip.active{color:var(--text);border-color:#ff6fad52;background:#ff6fad1f}.filter-chips-placeholder{visibility:hidden}.filter-chips-inline{justify-content:flex-end}.timeline-legend{position:relative;z-index:1;display:grid;grid-template-columns:1fr 136px 1fr;gap:10px;margin:18px 0 12px}.timeline-legend.tracking-only{grid-template-columns:1fr 136px}.timeline-legend.business-only{grid-template-columns:136px 1fr}.legend-card,.legend-axis{min-height:58px;border-radius:16px}.legend-card{display:flex;align-items:center;gap:10px;padding:10px 13px;border:1px solid var(--line-soft)}.legend-card.tracking{background:#a66cff1a}.legend-card.business{background:#ff7a1a1a}.legend-card strong{font-size:12px}.legend-card p{margin:3px 0 0;color:var(--text-3);font-size:11px;line-height:1.35}.legend-axis{display:flex;align-items:center;justify-content:center;border:1px dashed rgba(255,255,255,.18);color:var(--text-3);font:600 11px/16px var(--font-number)}.legend-dot{width:9px;height:9px;flex:0 0 9px;border-radius:50%}.legend-card.tracking .legend-dot{background:var(--violet);box-shadow:0 0 14px var(--violet)}.legend-card.business .legend-dot{background:var(--brand);box-shadow:0 0 14px var(--brand)}.timeline-list{position:relative;z-index:1;display:flex;flex-direction:column;gap:8px}.timeline-row{display:grid;grid-template-columns:minmax(0,1fr) 136px minmax(0,1fr);gap:10px;align-items:stretch}.timeline-row.tracking-only{grid-template-columns:minmax(0,1fr) 136px}.timeline-row.business-only{grid-template-columns:136px minmax(0,1fr)}.timeline-side{min-width:0}.timeline-axis{position:relative;display:flex;align-items:center;justify-content:center;min-height:68px}.timeline-axis:before{position:absolute;top:-10px;bottom:-10px;width:2px;border-radius:9px;background:linear-gradient(180deg,#a66cff40,#ff7a1a80,#a66cff33);content:""}.time-pill{position:relative;z-index:1;padding:7px 10px;border:1px solid rgba(255,255,255,.18);border-radius:999px;color:var(--text-2);background:#1b1727;box-shadow:0 8px 20px #0003;font:500 10px/14px var(--font-number);white-space:nowrap}.event-card,.event-placeholder{min-height:68px;border-radius:16px}.event-card{position:relative;padding:12px 14px;border:1px solid var(--line-soft);transition:transform .12s var(--ease),border-color .12s var(--ease)}.event-card:hover{transform:translateY(-2px);border-color:#ffffff3d}.event-card.tracking{border-left:3px solid var(--violet);background:linear-gradient(145deg,#a66cff21,#ffffff0b)}.event-card.business{border-left:3px solid var(--brand);background:linear-gradient(145deg,#ff7a1a21,#ffffff0b)}.event-placeholder{border:1px dashed rgba(255,255,255,.08);background:#ffffff05}.tracking-detail,.compact-detail-list,.event-detail-list{display:flex;flex-direction:column;gap:7px}.tracking-detail-title,.compact-detail-title{color:var(--text);font-size:13px;font-weight:700;line-height:1.25}.tracking-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.tracking-detail-title-wrap{min-width:0}.tracking-detail-code{display:block;margin-top:3px;overflow:hidden;color:var(--text-3);font:500 10px/14px var(--font-number);text-overflow:ellipsis;white-space:nowrap}.tracking-expand-button{flex:0 0 auto;min-height:28px;padding:0 9px;border:1px solid rgba(166,108,255,.3);border-radius:999px;color:#d7c8ff;background:#a66cff1a;font-size:10px;font-weight:600}.tracking-expand-button:hover,.tracking-expand-button.active{border-color:#ff7a1a73;color:var(--brand);background:#ff7a1a1a}.tracking-property-picker{display:flex;flex-direction:column;gap:10px;padding:11px;border:1px solid var(--line-soft);border-radius:13px;background:#00000026}.tracking-picker-head{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--text-2);font-size:11px;font-weight:600}.tracking-picker-actions{display:inline-flex;gap:8px}.tracking-picker-actions button{padding:0;border:0;color:var(--brand);background:transparent;font-size:10px}.tracking-property-group{display:flex;flex-direction:column;gap:6px}.tracking-property-group-label{color:var(--text-3);font-size:10px}.tracking-property-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:5px}.tracking-property-check{display:grid;grid-template-columns:14px minmax(0,1fr);align-items:center;column-gap:6px;min-width:0;padding:6px 7px;border:1px solid var(--line-soft);border-radius:9px;background:#ffffff09;cursor:pointer}.tracking-property-check input{width:13px;height:13px;accent-color:var(--brand)}.tracking-property-check span{overflow:hidden;color:var(--text-2);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.tracking-property-check code{grid-column:2;overflow:hidden;color:var(--text-3);font:500 9px/12px var(--font-number);text-overflow:ellipsis;white-space:nowrap}.tracking-property-table{display:grid;overflow:hidden;border:1px solid var(--line-soft);border-radius:10px}.tracking-property-row{display:grid;grid-template-columns:minmax(92px,.4fr) minmax(0,1fr);background:#0000001f}.tracking-property-row+.tracking-property-row{border-top:1px solid var(--line-soft)}.tracking-property-row span,.tracking-property-row strong{min-width:0;padding:4px 7px;color:var(--text-3);font-size:11px;line-height:1.25;word-break:break-word}.tracking-property-row span{color:#c3afff;background:#a66cff14;font-weight:600}.tracking-property-row strong{color:var(--text-2);font-weight:500}.tracking-empty-properties{color:var(--text-3);font-size:11px}.compact-detail-row{display:flex;align-items:center;min-width:0;gap:8px}.compact-detail-row-content{align-items:flex-start}.compact-detail-row-split{justify-content:space-between;align-items:flex-start}.compact-detail-meta{min-width:0;overflow:hidden;flex:1;color:var(--text-3);font-size:11px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.compact-detail-content{min-width:0;overflow:hidden;flex:1;color:var(--text-2);font-size:12px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.event-detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.event-card.business .event-detail-list{grid-template-columns:1fr}.event-detail-item{display:flex;min-width:0;flex-direction:column;gap:4px;padding:7px 9px;border:1px solid var(--line-soft);border-radius:10px;background:#0000001a}.event-detail-wide{grid-column:1 / -1}.event-detail-item span{color:var(--text-3);font-size:10px}.event-detail-item strong{color:var(--text-2);font-size:12px;line-height:1.4;word-break:break-word}.audio-play-button{display:inline-flex;width:30px;height:30px;flex:0 0 30px;align-items:center;justify-content:center;border:1px solid rgba(255,122,26,.35);border-radius:50%;color:var(--brand);background:#ff7a1a1a;font-size:11px}.audio-play-button.playing{color:#1b0b02;background:var(--brand)}.event-audio-hidden{display:none}.empty-state{padding:42px 18px;border:1px dashed var(--line);border-radius:16px;color:var(--text-3);text-align:center;font-size:13px}@media(max-width:980px){.query-form{grid-template-columns:1fr 1.4fr}.query-button{grid-column:1 / -1}.base-info-row{grid-template-columns:1fr}.summary-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.timeline-toolbar-row{align-items:stretch;flex-direction:column}.timeline-toolbar-controls{align-items:flex-start}.filter-chips-inline{justify-content:flex-start}}@media(max-width:680px){.page-shell{padding:18px 12px 42px}.intro-card,.query-card,.profile-card,.timeline-card{border-radius:20px;padding:18px}.intro-header{flex-direction:column;gap:16px}.brand-lockup{margin-bottom:18px}.intro-card h1{font-size:35px}.hero-copy{font-size:14px}.query-form{grid-template-columns:1fr}.query-button{grid-column:auto}.summary-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.timeline-legend,.timeline-legend.tracking-only,.timeline-legend.business-only{grid-template-columns:1fr}.legend-axis{min-height:34px}.timeline-row,.timeline-row.tracking-only,.timeline-row.business-only{grid-template-columns:1fr;gap:4px}.timeline-axis{min-height:34px;justify-content:flex-start}.timeline-axis:before{top:-8px;bottom:-8px;left:18px;width:2px}.time-pill{margin-left:8px}.event-placeholder{display:none}.event-detail-list{grid-template-columns:1fr}.event-detail-wide{grid-column:auto}.tracking-detail-head{flex-direction:column}.tracking-expand-button{align-self:flex-start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
