@font-face{font-family:Roboto;src:url(/fonts/Roboto-Regular.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Roboto;src:url(/fonts/Roboto-Medium.ttf) format("truetype");font-weight:500;font-display:swap}@font-face{font-family:Roboto;src:url(/fonts/Roboto-Bold.ttf) format("truetype");font-weight:700;font-display:swap}:root{font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#171717;background:#f4f4f2;font-synthesis:none;text-rendering:optimizeLegibility;--bg: #f4f4f2;--surface: #ffffff;--surface-muted: #f8f8f6;--text: #171717;--muted: #73736f;--line: #dfdfda;--blue: #1f60d3;--blue-soft: #e9f0fb;--green: #297a55;--green-soft: #e9f4ed;--orange: #a85a23;--orange-soft: #f8ede4;--red: #a43d39;--radius: 8px;color-scheme:light}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:var(--bg)}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg)}button,input{font:inherit;letter-spacing:0}button{color:inherit}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid rgba(31,96,211,.25);outline-offset:2px}a{color:inherit}.boot-screen{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:14px;color:var(--muted);font-size:14px}.boot-screen img{width:42px;height:42px}.login-shell{min-height:100vh;display:grid;place-items:center;padding:32px 20px;background:var(--bg)}.login-panel{width:min(100%,420px);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:36px}.login-logo{width:42px;height:42px;display:block;margin-bottom:34px}.login-heading span,.topbar__context{display:block;font-size:12px;line-height:1.2;color:var(--muted);font-weight:500;text-transform:uppercase}.login-heading h1{margin:7px 0 9px;font-size:30px;line-height:1.1;letter-spacing:0}.login-heading p{margin:0;color:var(--muted);font-size:15px;line-height:1.55}.login-form{display:grid;gap:13px;margin-top:30px}.login-form label{display:grid;gap:8px}.login-form label>span{font-size:13px;font-weight:500}.login-form input{width:100%;height:48px;border:1px solid #cfcfca;border-radius:24px;padding:0 17px;color:var(--text);background:#fff}.login-form input:hover{border-color:#a7a7a1}.login-form input:focus{border-color:var(--blue);outline:3px solid rgba(31,96,211,.13)}.login-form .code-input{font-size:22px;font-weight:600;letter-spacing:.22em;text-align:center}.button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;border:1px solid transparent;padding:0 18px;font-size:14px;font-weight:500;cursor:pointer}.button:disabled{opacity:.55;cursor:wait}.button--primary{background:#171717;color:#fff}.button--primary:hover:not(:disabled){background:#30302e}.button--secondary{background:#fff;border-color:#cfcfca}.button--secondary:hover:not(:disabled){background:var(--surface-muted)}.button--wide{width:100%}.text-button{width:fit-content;justify-self:center;border:0;background:none;padding:5px 3px;color:var(--muted);font-size:13px;cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px}.text-button:hover{color:var(--text);text-decoration-color:currentColor}.login-error{margin:18px 0 0;color:var(--red);font-size:13px;line-height:1.45;text-align:center}.login-security{display:flex;justify-content:center;align-items:center;gap:7px;margin-top:28px;color:var(--muted);font-size:12px}.access-denied{text-align:center}.access-denied>svg{margin-bottom:24px}.access-denied .button{margin-top:28px}.app-shell{min-height:100vh;display:grid;grid-template-columns:232px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:24px 16px 18px;border-right:1px solid var(--line);background:var(--surface-muted)}.brand{display:flex;align-items:center;gap:10px;padding:0 8px 28px}.brand img{width:31px;height:31px}.brand div{display:flex;align-items:baseline;gap:6px}.brand strong{font-size:17px}.brand span{font-size:12px;color:var(--muted)}.sidebar nav{display:grid;gap:4px}.sidebar nav button{height:42px;display:flex;align-items:center;gap:11px;padding:0 12px;border:0;border-radius:6px;background:transparent;color:#5f5f5a;cursor:pointer;font-size:14px;font-weight:500}.sidebar nav button:hover{background:#ecece8;color:var(--text)}.sidebar nav button.is-active{background:#e5e5e0;color:var(--text)}.sidebar-account{margin-top:auto;padding:16px 8px 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:8px}.sidebar-account>div{min-width:0;display:grid;gap:3px}.sidebar-account span{color:var(--muted);font-size:11px}.sidebar-account strong{overflow:hidden;text-overflow:ellipsis;font-size:12px;font-weight:500}.sidebar-account button{margin-left:auto;flex:0 0 34px;height:34px;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;cursor:pointer}.sidebar-account button:hover{background:#e6e6e1}.app-main{min-width:0}.topbar{position:sticky;top:0;z-index:10;min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px clamp(22px,4vw,54px);border-bottom:1px solid var(--line);background:#f4f4f2f0;backdrop-filter:blur(16px)}.topbar h1{margin:4px 0 0;font-size:24px;line-height:1.1}.topbar__actions{display:flex;align-items:center;gap:10px}.range-control,.filter-control{display:flex;align-items:center;padding:3px;border:1px solid var(--line);border-radius:999px;background:#fff}.range-control button,.filter-control button{height:30px;min-width:47px;padding:0 11px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-size:12px;font-weight:500;cursor:pointer}.range-control button:hover,.filter-control button:hover{color:var(--text)}.range-control button.is-active,.filter-control button.is-active{background:#171717;color:#fff}.icon-button{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer}.icon-button:hover:not(:disabled){background:#eeeeea}.icon-button:disabled{opacity:.6;cursor:wait}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.content{width:min(100%,1480px);margin:0 auto;padding:32px clamp(22px,4vw,54px) 72px}.dashboard-view{display:grid;gap:22px}.metric-grid{display:grid;gap:12px}.metric-grid--six{grid-template-columns:repeat(6,minmax(0,1fr))}.metric-grid--five{grid-template-columns:repeat(5,minmax(0,1fr))}.metric-grid--four{grid-template-columns:repeat(4,minmax(0,1fr))}.metric{min-width:0;min-height:124px;display:flex;flex-direction:column;justify-content:space-between;padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.metric__label{color:var(--muted);font-size:12px;font-weight:500}.metric__value{margin-top:14px;font-size:clamp(24px,2.1vw,32px);line-height:1;white-space:nowrap}.metric__detail{margin-top:11px;color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metric--positive{border-top-color:#8fc2a5}.metric--warning{border-top-color:#d79a6b}.panel{min-width:0;padding:22px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.panel--compact{padding:20px}.panel--table{padding-bottom:8px}.panel--chart{min-height:390px}.panel--small-chart{min-height:300px}.section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.section-header h2{margin:0;font-size:16px;line-height:1.2}.section-header p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.4}.section-header__action{min-width:0}.two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.three-column{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.chart{width:100%;height:220px}.chart--main{height:290px}.recharts-cartesian-axis-tick text{fill:#85857f;font-size:11px}.recharts-tooltip-wrapper{outline:none}.chart-tooltip{min-width:150px;display:grid;gap:8px;padding:11px 12px;border:1px solid var(--line);border-radius:6px;background:#fff;box-shadow:0 8px 24px #0f0f0f14;font-size:12px}.chart-tooltip>strong{padding-bottom:4px}.chart-tooltip span{display:grid;grid-template-columns:8px 1fr auto;align-items:center;gap:7px;color:var(--muted)}.chart-tooltip i{width:7px;height:7px;border-radius:50%}.chart-tooltip b{color:var(--text)}.chart-legend{display:flex;flex-wrap:wrap;gap:18px;padding-top:8px;font-size:11px;color:var(--muted)}.chart-legend span{display:flex;align-items:center;gap:6px}.legend-dot{width:8px;height:8px;border-radius:50%}.legend-dot--blue{background:var(--blue)}.legend-dot--soft{background:#6f91cf}.legend-dot--black{background:#171717}.funnel{display:grid;gap:13px}.funnel-row{display:grid;grid-template-columns:minmax(112px,1.3fr) minmax(70px,2fr) 42px 45px;align-items:center;gap:10px;font-size:12px}.funnel-row>span{color:#555550}.funnel-row>strong{text-align:right;font-size:12px}.funnel-row>small{color:var(--muted);text-align:right}.funnel-track{height:8px;overflow:hidden;border-radius:999px;background:#efefec}.funnel-track i{display:block;height:100%;border-radius:inherit;background:var(--blue)}.quality-list{display:grid}.quality-list>div{min-height:45px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid #ecece8;font-size:13px}.quality-list>div:last-child{border-bottom:0}.quality-list span{display:flex;align-items:center;gap:9px;color:#555550}.quality-list strong{font-size:13px}.status-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#aaa}.status-dot--good{background:var(--green)}.status-dot--warning{background:var(--orange)}.status-dot--bad{background:var(--red)}.status-dot--muted{background:#a5a5a0}.breakdown-list{display:grid;gap:14px}.breakdown-list>div{display:grid;grid-template-columns:minmax(80px,1fr) minmax(45px,1fr) auto;align-items:center;gap:10px;font-size:12px}.breakdown-list span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#555550}.breakdown-list>div>div{height:5px;border-radius:99px;background:#efefec;overflow:hidden}.breakdown-list i{display:block;height:100%;border-radius:99px;background:#7898d2}.breakdown-list strong{font-size:12px;text-align:right}.muted-copy{color:var(--muted);font-size:13px}.customer-tools{display:flex;align-items:center;gap:10px}.search-field{width:min(280px,30vw);height:38px;display:flex;align-items:center;gap:8px;padding:0 13px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted)}.search-field:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #1f60d31f}.search-field input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--text);font-size:12px}.filter-control button{min-width:auto}.customer-table-wrap{width:100%;overflow-x:auto}.customer-table{width:100%;border-collapse:collapse;font-size:12px}.customer-table th{padding:10px 12px;color:var(--muted);font-size:11px;font-weight:500;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.customer-table td{padding:13px 12px;border-bottom:1px solid #ecece8;vertical-align:middle;color:#555550}.customer-table tbody tr{cursor:pointer}.customer-table tbody tr:hover,.customer-table tbody tr:focus{background:#f7f7f4;outline:none}.customer-table td strong{display:block;max-width:240px;overflow:hidden;text-overflow:ellipsis;color:var(--text);font-size:12px;font-weight:500}.customer-table td span:not(.status-badge):not(.status-dot){display:block;margin-top:4px;color:var(--muted);font-size:11px}.status-badge{width:fit-content;display:inline-flex;align-items:center;gap:7px;color:#555550;white-space:nowrap;font-size:11px}.status-badge--good{color:var(--green)}.status-badge--warning{color:var(--orange)}.customer-cards{display:none}.table-pagination{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 12px 0;color:var(--muted);font-size:11px}.table-pagination>div{display:flex;align-items:center;gap:10px}.table-pagination .icon-button:disabled{opacity:.32;cursor:default}.customer-detail .section-header{border-bottom:1px solid var(--line);padding-bottom:19px}.customer-detail__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}.detail-group h3{margin:0 0 13px;font-size:13px}.detail-group dl{margin:0;display:grid;gap:11px}.detail-group dl>div{display:grid;gap:3px}.detail-group dt{color:var(--muted);font-size:10px;text-transform:uppercase}.detail-group dd{margin:0;font-size:12px;overflow-wrap:anywhere}.inline-success{display:inline-flex;align-items:center;gap:5px;color:var(--green)}.stripe-link{width:fit-content;display:inline-flex;align-items:center;gap:5px;margin-top:22px;color:var(--blue);font-size:12px;text-decoration:none}.stripe-link:hover{text-decoration:underline;text-underline-offset:4px}.source-list{display:grid}.source-list>div{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #ecece8}.source-list>div:last-child{border-bottom:0}.source-list>div>span{display:flex;align-items:center;gap:11px}.source-list>div>span>div{display:grid;gap:4px}.source-list strong{font-size:13px}.source-list small{color:var(--muted);font-size:11px}.source-list b{color:var(--muted);font-size:11px;font-weight:400}.privacy-list{margin:0;padding:0;list-style:none;display:grid;gap:13px}.privacy-list li{position:relative;padding-left:19px;color:#555550;font-size:13px}.privacy-list li:before{content:"";position:absolute;left:1px;top:6px;width:6px;height:6px;border-radius:50%;background:var(--green)}.note-panel{background:transparent}.note-panel h3{margin:0 0 7px;font-size:13px}.note-panel p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.empty-state{min-height:220px;display:grid;place-content:center;justify-items:center;gap:8px;text-align:center;color:var(--muted)}.empty-state strong{color:var(--text);font-size:14px}.empty-state p{max-width:360px;margin:0;font-size:12px;line-height:1.5}.error-state{min-height:160px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:22px;border:1px solid #e4ccc5;border-radius:var(--radius);background:#fff9f6}.error-state strong{font-size:14px}.error-state p{margin:5px 0 0;color:var(--muted);font-size:12px}.error-state code{display:inline-block;margin-top:7px;color:var(--red);font-size:10px}.inline-warning{margin-bottom:18px;padding:11px 14px;border:1px solid #ead9c9;border-radius:6px;background:#fff8f1;color:#6f4a2d;font-size:12px}.inline-warning button{border:0;background:none;color:inherit;font-weight:600;text-decoration:underline;cursor:pointer}.skeleton{min-height:100px;display:grid;align-content:center;gap:9px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.skeleton span{height:12px;border-radius:4px;background:linear-gradient(90deg,#eeeeea,#f7f7f4,#eeeeea);background-size:200% 100%;animation:shimmer 1.4s infinite}.skeleton span:nth-child(2n){width:72%}@keyframes shimmer{to{background-position:-200% 0}}.trend{display:inline-flex;align-items:center;gap:3px;font-size:11px}.trend--up{color:var(--green)}.trend--down{color:var(--red)}.trend--flat{color:var(--muted)}.mobile-nav{display:none}@media(max-width:1180px){.metric-grid--six,.metric-grid--five{grid-template-columns:repeat(3,minmax(0,1fr))}.customer-detail__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.app-shell{display:block}.sidebar{display:none}.topbar{min-height:74px;padding-inline:20px}.content{padding:22px 18px 92px}.mobile-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;height:calc(68px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,1fr);padding:7px 8px calc(7px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fffffff7;backdrop-filter:blur(16px)}.mobile-nav button{display:grid;place-content:center;justify-items:center;gap:4px;border:0;background:transparent;color:#777772;font-size:9px;cursor:pointer}.mobile-nav button.is-active{color:var(--text)}.two-column,.three-column{grid-template-columns:1fr}.customer-tools{width:100%;align-items:stretch;flex-direction:column}.search-field{width:100%}.panel--table .section-header{flex-direction:column}.panel--table .section-header__action{width:100%}}@media(max-width:640px){.login-shell{padding:0;background:#fff}.login-panel{min-height:100vh;display:flex;flex-direction:column;justify-content:center;border:0;border-radius:0;padding:34px 24px}.login-logo{margin-bottom:42px}.topbar{min-height:70px}.topbar h1{font-size:21px}.topbar__context{display:none}.topbar__actions{gap:7px}.range-control button{min-width:40px;padding-inline:8px}.icon-button{width:36px;height:36px;flex-basis:36px}.content{padding-inline:13px}.dashboard-view{gap:13px}.metric-grid{gap:8px}.metric-grid--six,.metric-grid--five,.metric-grid--four{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{min-height:112px;padding:14px}.metric__value{font-size:24px}.panel{padding:17px}.panel--table{padding-bottom:6px}.panel--chart{min-height:335px}.panel--small-chart{min-height:280px}.section-header{margin-bottom:17px}.chart--main{height:240px}.funnel-row{grid-template-columns:minmax(96px,1.25fr) minmax(40px,1fr) 35px;gap:7px}.funnel-row>small{display:none}.customer-table-wrap{display:none}.customer-cards{display:grid}.customer-cards>button{display:grid;grid-template-columns:1fr auto;gap:12px;padding:15px 0;border:0;border-bottom:1px solid #ecece8;background:transparent;text-align:left;cursor:pointer}.customer-cards>button>div:first-child{min-width:0;display:grid;gap:4px}.customer-cards strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.customer-cards span{color:var(--muted);font-size:10px}.customer-cards dl{grid-column:1 / -1;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.customer-cards dl>div{display:grid;gap:3px}.customer-cards dt{color:var(--muted);font-size:9px;text-transform:uppercase}.customer-cards dd{margin:0;font-size:11px}.table-pagination{padding:16px 0 0}.customer-detail__grid{grid-template-columns:1fr;gap:22px}.filter-control{width:100%;overflow-x:auto}.filter-control button{flex:1}.source-list>div{align-items:flex-start;padding:11px 0}.source-list small{line-height:1.4}.source-list b{flex:0 0 auto}.error-state{grid-template-columns:auto 1fr}.error-state .button{grid-column:1 / -1;width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
