:root{--background:#fff;--cards:#fff;--gray:#aaa;--input-bg:#f7f7f7;--border:#ebebeb;--button:#111;--placeholder:#bbbbc0;--black:#000;--white:#fff;--ink:#1a1a1a;--muted:#6b6b70;--chart:#111;--ok-bg:#111;--ok-fg:#fff;--warn-bg:#e9e9ec;--warn-fg:#4a4a50;--off-bg:#f1f1f3;--off-fg:#8a8a8f;--subtle:#f4f4f5}*{box-sizing:border-box;margin:0;padding:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif}body{background:var(--background);color:var(--black)}.login-wrap{background:var(--input-bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--cards);border:1px solid var(--border);border-radius:16px;flex-direction:column;width:360px;padding:40px;display:flex;box-shadow:0 4px 24px #0000000f}.login-card h1{text-align:center;color:var(--black);font-size:26px;font-weight:700}.login-card .subtitle{text-align:center;color:var(--gray);margin-bottom:28px;font-size:14px}.login-card label{color:var(--gray);margin-top:14px;margin-bottom:6px;font-size:13px}.login-card input{background:var(--input-bg);border:1px solid var(--border);color:var(--black);border-radius:10px;padding:13px;font-size:14px}.login-card input:focus{border-color:var(--button);outline:none}.login-card input::placeholder{color:var(--placeholder)}.login-card button{background:var(--button);color:var(--white);cursor:pointer;border:none;border-radius:10px;margin-top:24px;padding:14px;font-size:15px;font-weight:600;transition:opacity .15s}.login-card button:hover{opacity:.85}.login-card button:disabled{opacity:.5;cursor:not-allowed}.error{color:#d14343;text-align:center;background:#fdecec;border-radius:10px;margin-bottom:8px;padding:11px;font-size:13px}.notice{background:var(--input-bg);color:var(--black);text-align:center;border:1px solid var(--border);border-radius:10px;margin-bottom:8px;padding:11px;font-size:13px}.login-card .otp-input{text-align:center;letter-spacing:10px;font-size:24px;font-weight:700}.login-links{justify-content:space-between;margin-top:14px;display:flex}.login-card .link-btn{color:var(--black);background:0 0;margin:0;padding:4px 0;font-size:13px;font-weight:600}.login-card .link-btn:hover{opacity:.6}.login-card .link-btn:disabled{color:var(--gray);opacity:1;cursor:default}.login-hint{color:var(--gray);text-align:center;margin-top:14px;font-size:12px}.login-card .login-switch{align-self:center;margin-top:10px}.login-card .choice-btn{background:var(--cards);color:var(--black);border:1px solid var(--border);text-align:left;flex-direction:column;align-items:flex-start;gap:3px;margin-top:12px;padding:14px 16px;display:flex}.login-card .choice-btn:first-of-type{margin-top:0}.login-card .choice-btn:hover{opacity:1;border-color:var(--button);background:var(--input-bg)}.choice-title{font-size:15px;font-weight:600}.choice-sub{color:var(--gray);font-size:12px;font-weight:400}.sec-card{max-width:640px}.sec-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.sec-text{color:var(--muted);font-size:13px;line-height:1.5}.sec-actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.btn-ghost{background:var(--cards);color:var(--ink);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:500}.btn-ghost:hover{background:var(--subtle)}.btn-ghost:disabled{opacity:.45;cursor:not-allowed}.sec-setup{grid-template-columns:1fr 1fr;gap:20px;margin-top:16px;display:grid}.sec-step{flex-direction:column;gap:8px;margin-top:14px;display:flex}.sec-setup .sec-step{margin-top:0}.sec-step-title{color:var(--ink);font-size:14px;font-weight:600}.sec-qr{border:1px solid var(--border);background:#fff;border-radius:10px;width:180px;height:180px;padding:6px}.sec-secret{font-family:var(--mono,monospace);background:var(--input-bg);word-break:break-all;color:var(--ink);border-radius:8px;padding:8px 10px;font-size:13px}.sec-code,.sec-input{background:var(--input-bg);border:1px solid var(--border);color:var(--ink);border-radius:10px;max-width:260px;padding:11px 12px;font-size:14px}.sec-code{letter-spacing:6px;text-align:center;font-size:20px;font-weight:700}.sec-code:focus,.sec-input:focus{border-color:var(--button);outline:none}.sec-codes{grid-template-columns:repeat(4,max-content);gap:8px 16px;margin-top:12px;display:grid}.sec-codes code{font-family:var(--mono,monospace);color:var(--ink);background:var(--input-bg);border-radius:8px;padding:6px 10px;font-size:15px}@media (width<=760px){.sec-setup{grid-template-columns:1fr}.sec-codes{grid-template-columns:repeat(2,max-content)}}.layout{background:var(--background);min-height:100vh;display:flex}.sidebar{background:var(--background);border-right:1px solid var(--border);flex-direction:column;flex:none;width:216px;height:100vh;padding:24px 12px;display:flex;position:sticky;top:0}.sidebar .brand{letter-spacing:-.2px;color:var(--ink);padding:0 12px 24px;font-size:15px;font-weight:700}.sidebar a{color:var(--muted);border-radius:8px;align-items:center;gap:10px;margin-bottom:2px;padding:8px 12px;font-size:13.5px;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex}.sidebar a:hover{background:var(--subtle);color:var(--ink)}.sidebar a.active{background:var(--subtle);color:var(--ink);font-weight:600}.sidebar .logout{color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;margin-top:auto;padding:8px 12px;font-size:13px;font-weight:500;transition:color .12s,background .12s}.sidebar .logout:hover{color:#d14343;background:var(--subtle)}.dialog-backdrop{z-index:100;background:#11111152;justify-content:center;align-items:center;padding:16px;animation:.12s ease-out fadeIn;display:flex;position:fixed;inset:0}.dialog{background:var(--cards);border:1px solid var(--border);border-radius:14px;width:100%;max-width:360px;padding:22px;animation:.14s ease-out popIn;box-shadow:0 12px 40px #0000001f}.dialog-title{color:var(--ink);font-size:16px;font-weight:650}.dialog-text{color:var(--muted);margin-top:6px;font-size:13px;line-height:1.5}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:none}}.main{background:var(--background);flex:1;min-width:0;padding:32px 40px 56px}.main>*{max-width:1320px;margin-left:auto;margin-right:auto}.page-title{letter-spacing:-.3px;color:var(--ink);margin-bottom:24px;font-size:22px;font-weight:700}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px;display:grid}.stat-card{background:var(--cards);border:1px solid var(--border);border-radius:12px;padding:16px 18px}.stat-card .label{color:var(--muted);margin-bottom:8px;font-size:12px;font-weight:500}.stat-card .value{color:var(--ink);font-variant-numeric:tabular-nums;font-size:26px;font-weight:650;line-height:1.1}.stat-card .hint{color:var(--gray);margin-top:6px;font-size:12px}.kpi-strip{background:var(--border);border:1px solid var(--border);border-radius:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;margin-bottom:16px;display:grid;overflow:hidden}.kpi{background:var(--cards);padding:16px 20px}.kpi-label{color:var(--muted);font-size:12px;font-weight:500}.kpi-value{color:var(--ink);letter-spacing:-.5px;font-variant-numeric:tabular-nums;margin-top:6px;font-size:26px;font-weight:650;line-height:1.1}.kpi-hint{color:var(--gray);margin-top:4px;font-size:12px}.grid-2{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.grid-2>.card{margin-bottom:0}.panel-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.panel-head .card-title{margin-bottom:0}.panel-meta{color:var(--muted);font-size:12px}.subhead{color:var(--muted);margin:18px 0 10px;font-size:12px;font-weight:500}.subhead:first-of-type{margin-top:0}.inline-stats{border-top:1px solid var(--border);color:var(--muted);flex-wrap:wrap;gap:20px;margin-top:16px;padding-top:14px;font-size:12px;display:flex}.inline-stats strong{color:var(--ink);margin-left:4px;font-size:13px;font-weight:600}.card{background:var(--cards);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:20px}.card h2{margin-bottom:16px;font-size:16px;font-weight:600}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);padding:12px;font-size:14px}th{color:var(--gray);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:500}.btn-danger{color:#d14343;cursor:pointer;background:#fdecec;border:none;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:500}.btn-danger:hover{background:#fbd9d9}.btn-small{background:var(--button);color:var(--white);cursor:pointer;border:none;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:500}.badge-active{color:#1d9e75;background:#e6f4ec;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:600}.badge-inactive{color:#d14343;background:#fdecec;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:600}.info-row{border-bottom:1px solid var(--border);justify-content:space-between;padding:12px 0;font-size:14px;display:flex}.info-row span:first-child{color:var(--gray)}.info-row span:last-child{font-weight:500}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.page-head .page-title{margin-bottom:0}.page-sub{color:var(--muted);align-items:center;gap:6px;margin-top:4px;font-size:13px;display:flex}.live-dot{background:#1d9e75;border-radius:50%;width:8px;height:8px;display:inline-block;box-shadow:0 0 0 3px #1d9e7529}.range-toggle{background:var(--subtle);border-radius:9px;padding:3px;display:inline-flex}.range-toggle button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:6px 12px;font-size:13px;font-weight:600}.range-toggle button.active{background:var(--cards);color:var(--ink);box-shadow:0 1px 3px #00000014}.section{margin-bottom:36px}.section-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.section-title{color:var(--ink);font-size:15px;font-weight:650}.section-subtitle{color:var(--muted);margin-top:2px;font-size:13px}.card-title{color:var(--ink);margin-bottom:14px;font-size:13.5px;font-weight:600}.two-col{grid-template-columns:1fr 1fr;gap:16px;display:grid}.muted{color:var(--muted)}table.rows{border-collapse:collapse;width:100%}table.rows th,table.rows td{text-align:left;border-bottom:1px solid var(--border);padding:11px 10px;font-size:14px}table.rows th{color:var(--muted);text-transform:none;letter-spacing:0;font-size:12px;font-weight:500}table.rows tr:last-child td{border-bottom:none}.clickable{cursor:pointer}tr.clickable:hover{background:var(--subtle)}.user-cell{align-items:center;gap:10px;font-weight:500;display:inline-flex}.avatar{object-fit:cover;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.avatar-placeholder{background:var(--input-bg);color:var(--muted);font-weight:700}.people{flex-direction:column;list-style:none;display:flex}.person{border-bottom:1px solid var(--border);border-radius:8px;align-items:center;gap:10px;margin:0 -6px;padding:8px 6px;display:flex}.person.clickable:hover{background:var(--subtle)}.person:last-child{border-bottom:none}.person-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:500;overflow:hidden}.person-time{color:var(--gray);white-space:nowrap;margin-left:auto;font-size:12px}.person .badge{margin-left:4px}.badge{white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:600}.badge-presence-active{background:var(--ok-bg);color:var(--ok-fg)}.badge-presence-recent{background:var(--warn-bg);color:var(--warn-fg)}.badge-presence-inactive{background:var(--off-bg);color:var(--off-fg)}.stars{color:var(--border);letter-spacing:1px;white-space:nowrap;font-size:15px}.stars .star.on{color:#f5a623}.feedback-head{margin-bottom:16px}.feedback-score{align-items:center;gap:12px;display:flex}.score-num{color:var(--ink);letter-spacing:-.5px;font-size:32px;font-weight:650;line-height:1}.feedback-list{flex-direction:column;gap:14px;list-style:none;display:flex}.feedback-item{border-bottom:1px solid var(--border);padding-bottom:14px}.feedback-item:last-child{border-bottom:none;padding-bottom:0}.feedback-item-head{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.feedback-comment{color:var(--muted);margin-top:6px;font-size:13.5px;line-height:1.55}.state{text-align:center;border-radius:10px;padding:24px 12px;font-size:14px}.state-loading{color:var(--muted);justify-content:center;align-items:center;gap:10px;display:flex}.state-empty{color:var(--gray)}.state-error{color:#d14343;background:#fdecec}.spinner{border:2px solid var(--border);border-top-color:var(--chart);border-radius:50%;width:15px;height:15px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.chart-grid{stroke:#f1f1f2;stroke-width:1px}.chart-tick{fill:var(--gray);font-size:11px}.chart-crosshair{stroke:var(--gray);stroke-dasharray:3 3;stroke-width:1px}.chart-tooltip{background:var(--ink);color:var(--white);pointer-events:none;white-space:nowrap;border-radius:8px;padding:6px 10px;font-size:12px;position:absolute;transform:translate(-50%)}.chart-tooltip-sub{color:#c9c9ce;font-size:11px}.hbar-list{flex-direction:column;gap:12px;display:flex}.hbar-row{grid-template-columns:120px 1fr auto;align-items:center;gap:14px;display:grid}.hbar-label{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.hbar-track{background:var(--subtle);border-radius:999px;height:8px;overflow:hidden}.hbar-fill{background:var(--chart);border-radius:999px;min-width:4px;height:100%}.hbar-value{color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.hbar-sub{color:var(--gray);font-size:12px;font-weight:400}.link-btn{color:var(--chart);cursor:pointer;background:0 0;border:none;padding:4px 2px;font-size:13px;font-weight:600}.link-btn:hover{text-decoration:underline}.demo-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:16px;display:grid}.mini-stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;display:grid}.mini-stats>div{flex-direction:column;gap:4px;display:flex}.mini-stats span{color:var(--muted);font-size:12px}.mini-stats strong{color:var(--ink);font-size:20px;font-weight:700}.ex-usage{flex-direction:column;display:flex}.ex-usage-cols{grid-template-columns:minmax(130px,1.4fr) 2fr 72px 84px}.ex-usage-head{text-transform:uppercase;letter-spacing:.5px;color:var(--gray);border-bottom:1px solid var(--border);grid-template-columns:minmax(130px,1.4fr) 2fr 72px 84px;align-items:center;gap:18px;padding:0 12px 10px;font-size:11px;display:grid}.ex-usage-row{text-align:left;border:none;border-bottom:1px solid var(--border);cursor:pointer;width:100%;font:inherit;color:var(--ink);background:0 0;grid-template-columns:minmax(130px,1.4fr) 2fr 72px 84px;align-items:center;gap:18px;padding:15px 12px;transition:background .12s;display:grid}.ex-usage-row:hover{background:var(--input-bg)}.ex-usage-row:last-child{border-bottom:none}.ex-usage-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.ex-usage-bar{background:var(--input-bg);border-radius:999px;height:8px;overflow:hidden}.ex-usage-fill{background:var(--chart);border-radius:999px;min-width:3px;height:100%;display:block}.ex-usage-metric{text-align:right}.ex-usage-users{color:var(--ink);font-size:16px;font-weight:700}.ex-usage-sessions{color:var(--muted);font-size:14px}@media (width<=680px){.ex-usage-head,.ex-usage-row{grid-template-columns:1fr 60px 70px;gap:12px}.ex-usage-bar{display:none}}.toolbar{flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.search-input{background:var(--cards);border:1px solid var(--border);min-width:200px;max-width:420px;color:var(--ink);border-radius:10px;flex:1;padding:11px 14px;font-size:14px}.search-input:focus{border-color:var(--ink);outline:none}.search-input::placeholder{color:var(--placeholder)}.select{background:var(--cards);border:1px solid var(--border);color:var(--ink);cursor:pointer;border-radius:10px;padding:11px 14px;font-size:14px}.select:focus{border-color:var(--chart);outline:none}.user-id{flex-direction:column;line-height:1.3;display:inline-flex}.user-id-name{color:var(--ink);font-weight:600}.user-id-handle{color:var(--muted);font-size:12px}.table-foot{color:var(--gray);padding-top:14px;font-size:12px}.profile-header{align-items:center;gap:16px;display:flex}.profile-id{flex-direction:column;gap:2px;display:flex}.profile-name{color:var(--ink);font-size:20px;font-weight:700}.profile-badges{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.badge-neutral{background:var(--input-bg);color:var(--muted)}.detail-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=760px){.detail-grid{grid-template-columns:1fr}}.pager{justify-content:center;align-items:center;gap:14px;margin-top:16px;display:flex}.pager-info{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.btn-small:disabled{opacity:.45;cursor:not-allowed}table.rows th.col-right,table.rows td.col-right{text-align:right}table.rows th.col-center,table.rows td.col-center{text-align:center}.table-scroll{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.table-scroll>table.rows{min-width:560px}.feedback-message{white-space:normal;word-break:break-word;max-width:420px}table.rows tfoot td{border-top:1px solid var(--border);color:var(--ink);border-bottom:none;font-weight:600}table.rows tfoot .row-total td{padding-top:12px}.seg-tabs{background:var(--subtle);border-radius:9px;flex-wrap:wrap;margin-bottom:24px;padding:3px;display:inline-flex}.seg-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:8px 16px;font-size:13px;font-weight:600}.seg-tabs button.active{background:var(--cards);color:var(--ink);box-shadow:0 1px 3px #00000014}.analytics-tiles{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;display:grid}@media (width<=900px){.two-col,.grid-2{grid-template-columns:1fr}}@media (width<=760px){.layout{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--border);flex-flow:wrap;align-items:center;gap:2px;width:100%;height:auto;padding:12px 16px;position:static}.sidebar .brand{padding:0 12px 0 0}.sidebar .logout{margin-top:0;margin-left:auto}.main{padding:20px 16px}.hbar-row{grid-template-columns:100px 1fr auto;gap:8px}}
