@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--color-bg-primary:#fffbf4;--color-bg-secondary:#f7f2ea;--color-bg-tertiary:#efe8dc;--color-bg-elevated:#fffbf4;--color-grouped-bg:#f7f2ea;--color-material:#fffbf4c7;--color-label-primary:#1a1510;--color-label-secondary:#1a1510a8;--color-label-tertiary:#1a15106b;--color-label-quaternary:#1a151038;--color-separator:#1a151017;--color-separator-opaque:#1a15102e;--color-fill-primary:#a8824c29;--color-fill-secondary:#a8824c1f;--color-fill-tertiary:#a8824c17;--color-fill-quaternary:#a8824c0f;--color-accent:#a8824c;--color-accent-hover:#8a6a44;--color-accent-active:#6e5436;--color-accent-subtle:#a8824c24;--color-success:#4f7a3a;--color-success-subtle:#4f7a3a1f;--color-warning:#b07a2e;--color-warning-subtle:#b07a2e24;--color-danger:#b14a38;--color-danger-subtle:#b14a381c;--color-destructive:#b14a38;--color-destructive-subtle:#b14a381c;--color-info:#3a6b8c;--color-info-subtle:#3a6b8c1c;--color-purple:#76548c;--color-purple-subtle:#76548c1f;--elev-1:0 1px 3px #4a37200d;--elev-2:0 1px 3px #4a37200d, 0 4px 14px #4a372012;--elev-3:0 2px 6px #4a37200f, 0 12px 28px #4a37201a;--elev-4:0 10px 28px #4a37201f, 0 24px 56px #4a37201f;--glow-accent:0 4px 14px #a8824c4d;--color-scrollbar-thumb:#a8824c4d;--color-scrollbar-thumb-hover:#a8824c80;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "SF Pro Display", system-ui, sans-serif;--font-serif:"Fraunces", Georgia, "Times New Roman", serif;--font-mono:"JetBrains Mono", "SF Mono", "Menlo", monospace;--sidebar-width:260px;--header-height:56px;--radius-card:16px;--ease-out:cubic-bezier(.16, 1, .3, 1)}.app-error-boundary{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;padding:24px;display:flex}.dark{--color-bg-primary:#0c0c12;--color-bg-secondary:#07070a;--color-bg-tertiary:#14141c;--color-bg-elevated:#0c0c12;--color-grouped-bg:#07070a;--color-material:#0c0c12c7;--color-label-primary:#f5f1ea;--color-label-secondary:#f5f1eaa3;--color-label-tertiary:#f5f1ea66;--color-label-quaternary:#f5f1ea33;--color-separator:#f5f1ea14;--color-separator-opaque:#f5f1ea29;--color-fill-primary:#d4a5742e;--color-fill-secondary:#d4a57421;--color-fill-tertiary:#d4a57417;--color-fill-quaternary:#d4a5740f;--color-accent:#d4a574;--color-accent-hover:#e0b98c;--color-accent-active:#eac9a4;--color-accent-subtle:#d4a57429;--color-success:#8fb87a;--color-success-subtle:#8fb87a24;--color-warning:#d9a55e;--color-warning-subtle:#d9a55e24;--color-danger:#d98370;--color-danger-subtle:#d9837024;--color-destructive:#d98370;--color-destructive-subtle:#d9837024;--color-info:#7ba6c4;--color-info-subtle:#7ba6c424;--color-purple:#b596c9;--color-purple-subtle:#b596c929;--elev-1:0 1px 3px #0006;--elev-2:0 2px 10px #0000007a;--elev-3:0 6px 22px #0000008f;--elev-4:0 16px 44px #000000a3;--glow-accent:0 0 18px #d4a57466;--color-scrollbar-thumb:#d4a5744d;--color-scrollbar-thumb-hover:#d4a57480}*,:before,:after{box-sizing:border-box}html{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--color-bg-secondary);color:var(--color-label-primary);text-rendering:optimizelegibility;margin:0;font-size:15px;line-height:1.5}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}html.theme-transition,html.theme-transition *,html.theme-transition :before,html.theme-transition :after{transition:background-color .25s,color .25s,border-color .25s,box-shadow .25s!important}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background-color:#0000}::-webkit-scrollbar-thumb{background-color:var(--color-scrollbar-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:100px}::-webkit-scrollbar-thumb:hover{background-color:var(--color-scrollbar-thumb-hover)}.page-title,.section-title,.card-header-title,.modal-title,.stat-value{font-family:var(--font-serif);letter-spacing:-.01em;font-weight:500}.page-title{letter-spacing:-.02em;color:var(--color-label-primary);margin:0;font-size:30px;font-weight:400;line-height:36px}.page-subtitle{text-transform:uppercase;letter-spacing:.16em;color:var(--color-accent);margin:0 0 4px;font-size:11px;font-weight:600}.page-header{margin-bottom:24px}.section-title{color:var(--color-label-primary);margin:0 0 16px;font-size:20px;line-height:24px}code,.code-text{font-family:var(--font-mono)}.app-shell{min-height:100vh}.sidebar{background-color:var(--color-bg-primary);border-right:1px solid var(--color-separator);width:var(--sidebar-width);z-index:40;flex-direction:column;height:100vh;display:flex;position:fixed;top:0;left:0}.sidebar-logo{height:var(--header-height);border-bottom:1px solid var(--color-separator);align-items:center;gap:10px;padding:0 18px;display:flex}.sidebar-logo-icon{background:linear-gradient(135deg, var(--color-accent), var(--color-accent-hover));color:#fff;width:32px;height:32px;font-family:var(--font-serif);border-radius:9px;justify-content:center;align-items:center;font-size:18px;font-weight:600;display:flex}.sidebar-logo-text{font-family:var(--font-serif);letter-spacing:-.01em;color:var(--color-label-primary);font-size:19px;font-weight:500}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:12px;display:flex;overflow-y:auto}.sidebar-nav-item{color:var(--color-label-secondary);border-radius:10px;align-items:center;gap:12px;min-height:38px;padding:9px 12px;font-size:14px;font-weight:500;transition:background-color .15s,color .15s;display:flex;position:relative}.sidebar-nav-item:hover{background-color:var(--color-fill-quaternary);color:var(--color-label-primary)}.sidebar-nav-item.active{background-color:var(--color-accent-subtle);color:var(--color-accent);font-weight:600}.sidebar-nav-item.active:before{content:"";background-color:var(--color-accent);border-radius:100px;width:3px;height:18px;position:absolute;top:50%;left:3px;transform:translateY(-50%)}.sidebar-nav-item-icon{flex-shrink:0;width:19px;height:19px}.sidebar-footer{border-top:1px solid var(--color-separator);color:var(--color-label-tertiary);flex-shrink:0;padding:12px;font-size:12px}.app-main{margin-left:var(--sidebar-width);flex-direction:column;min-height:100vh;display:flex}.app-header{z-index:30;height:var(--header-height);background-color:var(--color-material);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--color-separator);justify-content:space-between;align-items:center;gap:16px;padding:0 24px;display:flex;position:sticky;top:0}.app-header-title{font-family:var(--font-serif);color:var(--color-label-primary);font-size:16px;font-weight:500}.app-content{flex:1;width:100%;max-width:1280px;padding:28px 32px}.theme-toggle{width:38px;height:38px;color:var(--color-label-secondary);background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;transition:background-color .15s,color .15s;display:inline-flex}.theme-toggle:hover{background-color:var(--color-fill-tertiary);color:var(--color-label-primary)}.card{background-color:var(--color-bg-primary);border-radius:var(--radius-card);border:1px solid var(--color-separator);box-shadow:var(--elev-2);transition:box-shadow .2s var(--ease-out), border-color .2s ease}.card-header{border-bottom:1px solid var(--color-separator);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.card-header-title{color:var(--color-label-primary);font-size:17px}.card-body{padding:20px}.card-footer{border-top:1px solid var(--color-separator);justify-content:flex-end;align-items:center;gap:12px;padding:16px 20px;display:flex}.card-interactive{cursor:pointer}.card-interactive:hover{box-shadow:var(--elev-3);transform:translateY(-2px)}.stat-card{background-color:var(--color-bg-primary);border:1px solid var(--color-separator);border-radius:var(--radius-card);box-shadow:var(--elev-2);transition:transform .18s var(--ease-out), box-shadow .18s var(--ease-out);padding:20px;position:relative}.stat-card:hover{box-shadow:var(--elev-3);transform:translateY(-2px)}.stat-card-icon{width:44px;height:44px;color:var(--color-accent);background-color:var(--color-accent-subtle);border-radius:12px;justify-content:center;align-items:center;margin-bottom:14px;display:flex}.stat-value{color:var(--color-label-primary);font-variant-numeric:tabular-nums;font-size:28px;line-height:34px}.stat-label{color:var(--color-label-secondary);margin-top:2px;font-size:13px;line-height:18px}.btn{transition:background-color .18s var(--ease-out), color .18s ease, box-shadow .18s var(--ease-out), transform .12s var(--ease-out), opacity .18s ease;border:none;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-size:15px;font-weight:500;line-height:20px;display:inline-flex}.btn:focus-visible{box-shadow:0 0 0 2px var(--color-bg-primary), 0 0 0 4px var(--color-accent);outline:none}.btn:disabled{opacity:.4;cursor:not-allowed}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{color:#fff;background-color:var(--color-accent);box-shadow:var(--glow-accent)}.btn-primary:hover:not(:disabled){background-color:var(--color-accent-hover);transform:translateY(-1px)}.btn-secondary{background-color:var(--color-fill-tertiary);color:var(--color-label-primary)}.btn-secondary:hover:not(:disabled){background-color:var(--color-fill-secondary)}.btn-tinted{background-color:var(--color-accent-subtle);color:var(--color-accent)}.btn-tinted:hover:not(:disabled){background-color:var(--color-accent);color:#fff}.btn-danger{color:#fff;background-color:var(--color-danger)}.btn-danger:hover:not(:disabled){opacity:.88}.btn-plain{color:var(--color-accent);background:0 0;padding:6px 10px}.btn-plain:hover:not(:disabled){background-color:var(--color-accent-subtle)}.btn-sm{border-radius:8px;padding:6px 12px;font-size:13px;line-height:18px}.btn-lg{border-radius:12px;padding:12px 24px;font-size:17px;line-height:22px}.btn-block{width:100%}.input{border:1px solid var(--color-separator-opaque);background-color:var(--color-bg-primary);width:100%;color:var(--color-label-primary);border-radius:10px;padding:10px 12px;font-family:inherit;font-size:15px;line-height:20px;transition:border-color .2s,box-shadow .2s}.input::placeholder{color:var(--color-label-tertiary)}.input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-subtle);outline:none}.label{color:var(--color-label-secondary);margin-bottom:6px;font-size:13px;font-weight:500;line-height:18px;display:block}.form-group{margin-bottom:16px}.badge{letter-spacing:.005em;border:1px solid #0000;border-radius:100px;align-items:center;padding:2px 10px;font-size:12px;font-weight:500;line-height:16px;display:inline-flex}.badge-success{background-color:var(--color-success-subtle);color:var(--color-success);border-color:color-mix(in srgb, var(--color-success) 22%, transparent)}.badge-danger{background-color:var(--color-danger-subtle);color:var(--color-danger);border-color:color-mix(in srgb, var(--color-danger) 22%, transparent)}.badge-warning{background-color:var(--color-warning-subtle);color:var(--color-warning);border-color:color-mix(in srgb, var(--color-warning) 22%, transparent)}.badge-info{background-color:var(--color-info-subtle);color:var(--color-info);border-color:color-mix(in srgb, var(--color-info) 22%, transparent)}.badge-accent{background-color:var(--color-accent-subtle);color:var(--color-accent);border-color:color-mix(in srgb, var(--color-accent) 22%, transparent)}.badge-neutral{background-color:var(--color-fill-tertiary);color:var(--color-label-secondary)}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(20px);background-color:#0006;justify-content:center;align-items:center;padding:16px;animation:.2s modal-fade-in;display:flex;position:fixed;inset:0}.modal-content{z-index:101;background-color:var(--color-bg-elevated);border:1px solid var(--color-separator);border-radius:var(--radius-card);width:100%;max-width:520px;max-height:90vh;box-shadow:var(--elev-4);animation:.2s modal-scale-in;position:relative;overflow-y:auto}.modal-sm{max-width:400px}.modal-lg{max-width:640px}.modal-header{border-bottom:1px solid var(--color-separator);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-title{color:var(--color-label-primary);font-size:17px}.modal-body{padding:20px}.modal-footer{border-top:1px solid var(--color-separator);justify-content:flex-end;gap:12px;padding:16px 20px;display:flex}.modal-close{width:32px;height:32px;color:var(--color-label-secondary);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.modal-close:hover{background-color:var(--color-fill-tertiary);color:var(--color-label-primary)}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.state-block{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:48px 24px;display:flex}.state-icon{width:48px;height:48px;color:var(--color-label-quaternary);margin-bottom:12px}.state-icon-danger{color:var(--color-danger)}.state-title{color:var(--color-label-primary);margin:0 0 4px;font-size:17px;font-weight:600}.state-text{color:var(--color-label-secondary);max-width:320px;margin:0 0 16px;font-size:14px}.spinner{border-style:solid;border-color:var(--color-fill-primary);border-top-color:var(--color-accent);border-radius:50%;animation:.7s linear infinite spinner-rotate;display:inline-block}.spinner-sm{border-width:2px;width:16px;height:16px}.spinner-md{border-width:3px;width:24px;height:24px}.spinner-lg{border-width:4px;width:40px;height:40px}.spinner-center{justify-content:center;align-items:center;padding:48px 24px;display:flex}@keyframes spinner-rotate{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:1.4s}}.list-stack{flex-direction:column;gap:8px;display:flex}.list-row{background-color:var(--color-bg-primary);border:1px solid var(--color-separator);box-shadow:var(--elev-1);transition:transform .16s var(--ease-out), box-shadow .16s var(--ease-out), border-color .16s ease;border-radius:14px;align-items:center;gap:16px;padding:14px 16px;display:flex;position:relative}.list-row:hover{box-shadow:var(--elev-3);border-color:color-mix(in srgb, var(--color-accent) 30%, var(--color-separator));transform:translateY(-2px)}.list-avatar{color:#fff;background:linear-gradient(135deg, var(--color-accent), var(--color-accent-hover));width:44px;height:44px;box-shadow:var(--glow-accent);border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;font-weight:600;display:inline-flex}.list-cell{flex:1;min-width:0}.list-primary{color:var(--color-label-primary);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:600;overflow:hidden}.list-secondary{font-family:var(--font-mono);color:var(--color-label-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-bottom:28px;display:grid}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.toolbar-spacer{margin-left:auto}.chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.chart-card{background-color:var(--color-bg-secondary);border:1px solid var(--color-separator);border-radius:14px;margin:0;padding:16px}.chart-card-wide{grid-column:1/-1}.chart-card-title{color:var(--color-label-secondary);letter-spacing:.01em;margin-bottom:12px;font-size:13px;font-weight:600}.chart-card-body{height:256px}.chart-empty{height:100%;color:var(--color-label-tertiary);justify-content:center;align-items:center;font-size:13px;display:flex}.chart-card-body svg:focus,.chart-card-body .recharts-surface:focus{outline:none}@media (width<=720px){.chart-grid{grid-template-columns:1fr}}.drawer-overlay{z-index:100;-webkit-backdrop-filter:blur(8px);background-color:#0006;justify-content:flex-end;animation:.2s drawer-fade-in;display:flex;position:fixed;inset:0}.drawer-panel{background-color:var(--color-bg-elevated);border-left:1px solid var(--color-separator);width:100%;max-width:480px;height:100%;box-shadow:var(--elev-4);animation:drawer-slide-in .24s var(--ease-out);flex-direction:column;display:flex;position:relative}.drawer-panel-lg{max-width:620px}.drawer-header{border-bottom:1px solid var(--color-separator);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.drawer-title{font-family:var(--font-serif);color:var(--color-label-primary);margin:0;font-size:18px;font-weight:500}.drawer-close{width:32px;height:32px;color:var(--color-label-secondary);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.drawer-close:hover{background-color:var(--color-fill-tertiary);color:var(--color-label-primary)}.drawer-body{flex:1;padding:20px;overflow-y:auto}.drawer-sections{flex-direction:column;gap:24px;display:flex}.drawer-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--color-label-tertiary);margin:0 0 12px;font-size:12px;font-weight:600}.drawer-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;margin:0;display:grid}.drawer-meta-item{min-width:0}.drawer-meta-item-full{grid-column:1/-1}.drawer-meta-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-label-tertiary);margin-bottom:3px;font-size:11px;font-weight:600}.drawer-meta-value{color:var(--color-label-primary);word-break:break-word;margin:0;font-size:14px}.drawer-meta-ua{color:var(--color-label-secondary);font-size:12px;line-height:1.5}.drawer-meta-link{color:var(--color-accent);text-decoration:underline}.drawer-meta-link:hover{color:var(--color-accent-hover)}@keyframes drawer-fade-in{0%{opacity:0}to{opacity:1}}@keyframes drawer-slide-in{0%{opacity:.4;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.drawer-overlay{animation:none}.drawer-panel{animation:.2s drawer-fade-in}}@media (width<=640px){.drawer-panel,.drawer-panel-lg{max-width:100%}.drawer-meta-grid{grid-template-columns:1fr}}.data-table-wrap{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:13.5px}.data-table th{text-align:left;letter-spacing:.02em;text-transform:uppercase;color:var(--color-label-secondary);border-bottom:1px solid var(--color-separator);white-space:nowrap;padding:8px 12px;font-size:12px;font-weight:600}.data-table td{color:var(--color-label-primary);border-bottom:1px solid var(--color-separator);vertical-align:middle;padding:10px 12px}.data-row{cursor:pointer;transition:background-color .16s}.data-row:hover,.data-row:focus-visible{background-color:var(--color-fill-primary);outline:none}.data-cell-truncate{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.visitor-trail-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.visitor-trail-step{background-color:var(--color-bg-primary);border:1px solid var(--color-separator);border-radius:8px;align-items:center;gap:16px;padding:6px 10px;font-size:12.5px;display:flex}.visitor-trail-path{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-label-primary);flex:1;overflow:hidden}.visitor-trail-time{color:var(--color-label-secondary)}.visitor-trail-duration{text-align:right;min-width:48px;color:var(--color-label-secondary)}.chat-transcript{flex-direction:column;gap:8px;display:flex}.chat-transcript-bubble{background-color:var(--color-bg-secondary);border:1px solid var(--color-separator);width:fit-content;max-width:78%;color:var(--color-label-primary);white-space:pre-wrap;word-break:break-word;border-radius:14px 14px 14px 5px;padding:10px 14px;font-size:14px;line-height:1.5}.chat-transcript-bubble-user{background-color:var(--color-accent);color:#fff;border-color:#0000;border-bottom-right-radius:5px;border-bottom-left-radius:14px;margin-left:auto}.chat-transcript-time{font-family:var(--font-mono);opacity:.7;margin-top:4px;font-size:11px;display:block}.chat-transcript-bubble .md-body{overflow-wrap:anywhere;word-break:break-word;font-size:14px;line-height:1.5}.chat-transcript-bubble .md-body>:first-child{margin-top:0}.chat-transcript-bubble .md-body>:last-child{margin-bottom:0}.chat-transcript-bubble .md-body p{margin:0 0 8px}.chat-transcript-bubble .md-body ul,.chat-transcript-bubble .md-body ol{margin:0 0 8px;padding-left:20px}.chat-transcript-bubble .md-body li{margin:2px 0}.chat-transcript-bubble .md-body strong{font-weight:600}.chat-transcript-bubble .md-body a{color:var(--color-accent);overflow-wrap:anywhere;text-decoration:underline}.chat-transcript-bubble .md-body code{font-family:var(--font-mono);background-color:var(--color-bg-secondary);border-radius:5px;padding:1px 5px;font-size:12.5px}.chat-transcript-bubble .md-body pre{background-color:var(--color-bg-secondary);border-radius:10px;margin:0 0 8px;padding:10px 12px;overflow-x:auto}.chat-transcript-bubble .md-body pre code{background:0 0;padding:0}.login-shell{background-color:var(--color-bg-secondary);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{text-align:center;width:100%;max-width:400px;padding:32px}.login-logo{background:linear-gradient(135deg, var(--color-accent), var(--color-accent-hover));color:#fff;width:56px;height:56px;font-family:var(--font-serif);box-shadow:var(--glow-accent);border-radius:16px;justify-content:center;align-items:center;margin-bottom:20px;font-size:28px;font-weight:600;display:inline-flex}@media (width<=768px){.sidebar{transform:translate(-100%)}.app-main{margin-left:0}.app-content{padding:20px 16px}}
