:root{color:#e8eef8;font-synthesis:none;text-rendering:optimizelegibility;background:#07101d;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{color:#e8eef8;background:radial-gradient(circle at 100% 0,#16305b 0,#0b1628 28%,#07101d 58%);min-width:320px;margin:0}button,input,select{font:inherit}.login-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:#0c182af5;border:1px solid #8aa6d333;border-radius:24px;width:min(460px,100%);padding:34px;box-shadow:0 30px 90px #0000006b}.brand{letter-spacing:.05em;font-weight:800}.brand span{color:#67a1ff}.login-card h1{margin:26px 0 12px;font-size:34px;line-height:1.05}.login-card p{color:#9fb0c9;line-height:1.55}.login-card label,.link-generator label{gap:8px;margin-top:22px;display:grid}.login-card label span,.link-generator label span{color:#9fb0c9;font-size:13px}.login-card input,.link-generator input,.link-generator select,.filters select{color:#fff;background:#0b1728;border:1px solid #29405f;border-radius:12px;outline:none;width:100%;padding:13px 14px}.login-card input:focus,.link-generator input:focus,.link-generator select:focus,.filters select:focus{border-color:#5f9cff}.login-card button,.top-actions button,.link-generator button,.range-switch button,.maintenance-actions button{color:#fff;cursor:pointer;background:#4285f4;border:0;border-radius:12px;padding:12px 16px;font-weight:700}.login-card button{width:100%;margin-top:18px}.login-card button:disabled,.top-actions button:disabled,.link-generator button:disabled,.maintenance-actions button:disabled{opacity:.5;cursor:not-allowed}.error,.floating-error{color:#ffd4dd;background:#4a1e28;border:1px solid #71313f;border-radius:12px;margin-top:14px;padding:12px 14px}.success{color:#b8f3d5;background:#123b2c;border:1px solid #286849;border-radius:12px;margin-top:14px;padding:12px 14px}.app-shell{max-width:1600px;margin:0 auto;padding:24px}.topbar{justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;display:flex}.topbar p{color:#71839f;margin:6px 0 0;font-size:13px}.top-actions{gap:10px;display:flex}.top-actions .ghost{color:#b9c8dd;background:#15243a}.filters{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.range-switch{flex-wrap:wrap;gap:8px;display:flex}.range-switch button{color:#95a8c2;background:#14243a;padding:10px 14px}.range-switch button.active{color:#091422;background:#e8eef8}.filters select{width:auto;min-width:220px}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px;display:grid}.metrics.five{grid-template-columns:repeat(5,minmax(0,1fr))}.metric,.panel{background:linear-gradient(#0f1d31fa,#0a1423fa);border:1px solid #849fc829;box-shadow:0 12px 38px #00000029}.metric{border-radius:18px;padding:22px}.metric span,.metric small{color:#8295b0;display:block}.metric b{margin:8px 0 4px;font-size:34px;display:block}.metric small{font-size:12px}.grid{gap:14px;margin-bottom:14px;display:grid}.grid.two{grid-template-columns:1.25fr 1fr}.panel{border-radius:18px;margin-bottom:14px;padding:22px;overflow:hidden}.panel-title span{letter-spacing:.13em;color:#659cf2;font-size:11px;font-weight:800}.panel-title h2{margin:5px 0 18px;font-size:21px}.daily-chart{align-items:flex-end;gap:8px;height:220px;padding-top:8px;display:flex;overflow-x:auto}.day{text-align:center;grid-template-rows:1fr auto auto;gap:4px;min-width:40px;height:100%;display:grid}.day .bars{justify-content:center;align-items:flex-end;min-height:120px;display:flex}.day i{background:linear-gradient(#69a5ff,#346dd5);border-radius:7px 7px 3px 3px;width:70%;max-width:30px;display:block}.day b{font-size:12px}.day span{color:#7386a2;font-size:10px}.source-list>div{grid-template-columns:minmax(120px,1fr) 2fr 44px;align-items:center;gap:12px;margin:14px 0;display:grid}.source-list div>div{display:grid}.source-list span{color:#7487a4;font-size:11px}.source-list em{background:#14243a;border-radius:999px;height:7px;overflow:hidden}.source-list em i{background:#4b8cf5;border-radius:999px;height:100%;display:block}.source-list strong{text-align:right}.table-wrap{overflow:auto}.table-wrap.compact table{min-width:620px}table{border-collapse:collapse;width:100%;min-width:760px}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #182943;padding:13px 10px;font-size:13px}th{color:#7285a1;font-weight:600}td{color:#b8c5d7}.subcell{color:#6f829f;margin-top:3px;font-size:10px;display:block}.campaign-list>div,.page-list>div,.visit-list>div{border-bottom:1px solid #182943;justify-content:space-between;gap:16px;padding:13px 0;display:flex}.campaign-list>div>div,.page-list>div>div,.visit-list>div>div{gap:3px;display:grid}.campaign-list span,.page-list span,.visit-list span,.visit-list small{color:#768aa7;font-size:11px}.campaign-list strong{font-size:18px}.campaign-list>div>div:not(:first-child){text-align:right}.link-generator{gap:4px;display:grid}.generated-link{color:#8eabd0;word-break:break-all;background:#07111f;border:1px dashed #294364;border-radius:12px;min-height:54px;margin-top:16px;padding:13px;font-size:12px}.link-generator button{margin-top:10px}.page-list strong{font-size:18px}.visit-list time{white-space:nowrap;color:#8b9bb2;font-size:11px}.empty{color:#70839e;text-align:center;padding:24px 0}.floating-error{max-width:360px;position:fixed;bottom:20px;right:20px;box-shadow:0 12px 40px #00000059}code,.mono{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.visit-details-list{gap:10px;display:grid}.visit-detail{background:#091524;border:1px solid #1c304c;border-radius:14px;overflow:hidden}.visit-detail summary{cursor:pointer;justify-content:space-between;align-items:center;gap:18px;padding:15px 16px;list-style:none;display:flex}.visit-detail summary::-webkit-details-marker{display:none}.visit-detail summary>div:first-child{gap:3px;min-width:0;display:grid}.visit-detail summary b{font-size:14px}.visit-detail summary span{color:#9eafc7;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.visit-detail summary small{color:#6f849f;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.visit-summary-right{flex:none;justify-items:end;gap:4px;display:grid}.visit-summary-right strong{color:#70a4f5;text-transform:uppercase;font-size:11px}.visit-summary-right time{color:#8495ac;font-size:11px}.visit-detail[open] summary{background:#0b192b;border-bottom:1px solid #1a2b43}.visit-body{gap:14px;padding:16px;display:grid}.detail-group{background:#07111e;border:1px solid #182b45;border-radius:12px;padding:14px}.detail-group h3{color:#72a5f6;margin:0 0 12px;font-size:13px}.detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.info{background:#0b1728;border-radius:9px;min-width:0;padding:10px}.info.wide{grid-column:span 2}.info span{color:#6f829e;margin-bottom:5px;font-size:10px;display:block}.info b{color:#c7d3e4;word-break:break-word;white-space:pre-wrap;font-size:12px;font-weight:600;line-height:1.45;display:block}.info b.mono{color:#a9c5ea;font-size:11px;font-weight:500}.storage-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.retention-note{color:#8296b2;margin:16px 0;font-size:12px;line-height:1.55}.maintenance-actions{flex-wrap:wrap;gap:10px;display:flex}.maintenance-actions .danger{background:#7d2433}.maintenance-panel{border-color:#69a5ff3d}@media (width<=1150px){.metrics.five{grid-template-columns:repeat(3,1fr)}.detail-grid,.storage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.metrics,.metrics.five{grid-template-columns:repeat(2,1fr)}.grid.two{grid-template-columns:1fr}.filters,.topbar{flex-direction:column;align-items:stretch}.filters select{width:100%}.top-actions{justify-content:flex-start}.detail-grid{grid-template-columns:1fr}.info.wide{grid-column:auto}.storage-grid{grid-template-columns:1fr}}@media (width<=520px){.app-shell{padding:14px}.metrics,.metrics.five{grid-template-columns:1fr 1fr;gap:10px}.metric{padding:16px}.metric b{font-size:25px}.panel{padding:16px}.login-card{padding:24px}.login-card h1{font-size:29px}.top-actions button{flex:1}.source-list>div{grid-template-columns:1fr 1.5fr 34px}.visit-detail summary{align-items:flex-start;padding:13px}.visit-summary-right{max-width:100px}.maintenance-actions{display:grid}.maintenance-actions button{width:100%}}
