:root{--bg:#15152f;--card:#1b203b;--raised:#242b49;--border:#35415e;--text:#f4f5fb;--muted:#b1b9cd;--accent:#e34629;--bar:#3d9bc1;--link:#73c8e7;--good:#77e2bf;--bad:#ff776f;--mid:#f2c46d;--age-1:#35816d;--age-2:#806626;--age-3:#905322;--age-4:#963f4e;--unassigned:#35212a;--nav-w:232px}.panel{z-index:20;--bg:#080d16;--card:#0d1522;--raised:#132033;--border:#293b53;--text:#e6edf7;--muted:#95a4bb;--link:#69d9df;--accent:#69d9df;background:var(--bg);min-height:100vh;color:var(--text);position:fixed;inset:0;overflow-y:auto}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}a{color:var(--link)}main{max-width:1120px;margin:0 auto;padding:20px 16px 96px}h1{margin:4px 0 16px;font-size:22px}h1 .back{color:var(--link);text-decoration:none}h2{margin:28px 0 10px;font-size:17px}.muted{color:var(--muted);font-size:14px}.warn{color:var(--bad)}.up{color:var(--good)}.down{color:var(--bad)}.error{color:var(--bad);margin-top:12px;font-size:14px}.ok{color:var(--good);margin-top:12px;font-size:14px}.sidenav{width:var(--nav-w);background:var(--card);border-right:1px solid var(--border);z-index:10;flex-direction:column;gap:4px;padding:18px 12px;display:flex;position:fixed;inset:0 auto 0 0}.sidenav .brand{color:var(--text);padding:4px 12px 16px;font-size:18px;font-weight:800;text-decoration:none}.sidenav a.item,.sidenav span.item{color:var(--muted);border-left:3px solid #0000;border-radius:10px;padding:10px 12px;font-size:15px;text-decoration:none;display:block}.sidenav a.item:hover{color:var(--text);background:var(--raised)}.sidenav a.item.on{background:var(--raised);color:var(--text);border-left-color:var(--accent);font-weight:600;box-shadow:0 2px 8px #00000059}.sidenav span.item{opacity:.45}.sidenav span.item small{margin-left:4px;font-size:11px}.sidenav hr{border:0;border-top:1px solid var(--border);margin:10px 4px}.sidenav .who{color:var(--muted);margin-top:auto;padding:10px 12px;font-size:13px}.sidenav .who form{margin-top:8px}.mobilebar,.bottomnav{display:none}body:has(.sidenav) main{margin-left:calc(var(--nav-w) + max(0px, (100vw - var(--nav-w) - 1120px) / 2))}@media (max-width:860px){.sidenav{display:none}body:has(.sidenav) main{margin-left:auto}.mobilebar{background:var(--card);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.mobilebar .brand{color:var(--text);font-weight:800;text-decoration:none}.mobilebar .who{color:var(--muted);align-items:center;gap:10px;font-size:13px;display:flex}.bottomnav{padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:var(--card);border-top:1px solid var(--border);z-index:10;grid-template-columns:repeat(5,1fr);gap:4px;display:grid;position:fixed;inset:auto 0 0}.bottomnav a,.bottomnav span{text-align:center;min-height:44px;color:var(--muted);border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;padding:4px;font-size:11px;line-height:1.2;text-decoration:none;display:flex}.bottomnav a.on{border-color:var(--accent);color:var(--text);background:var(--raised);font-weight:600}.bottomnav span{opacity:.4}}.panelbar{z-index:5;background:var(--card);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex;position:sticky;top:0}.panelbar strong{font-size:17px}.panelbar .close{background:var(--raised);width:36px;height:36px;color:var(--text);border:1px solid var(--border);border-radius:10px;place-items:center;font-size:20px;text-decoration:none;display:grid}.panel main{margin-left:auto;margin-right:auto;padding-bottom:40px}body:has(.sidenav) .panel main{margin-left:auto;margin-right:auto;padding-bottom:40px}button,a.button{border:1px solid var(--border);background:var(--raised);color:var(--text);cursor:pointer;border-radius:10px;padding:10px 16px;font-family:inherit;font-size:15px;text-decoration:none;display:inline-block}button:disabled{opacity:.5;cursor:default}a.button.primary,button.primary,button.full,a.button.on{background:var(--accent);border-color:var(--accent);color:#fff}.panel a.button.primary,.panel button.primary,.panel button.full{color:#04121a}button.full{width:100%;margin-top:20px;padding:14px;font-size:16px;font-weight:600}button.small{padding:6px 10px;font-size:13px}label{color:var(--muted);margin:12px 0 4px;font-size:14px;display:block}input,select,textarea{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);border-radius:10px;padding:12px;font-family:inherit;font-size:16px}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.7}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.login{max-width:360px;margin:12vh auto 0;padding:16px}.login .logo{text-align:center;font-size:30px;font-weight:800}.login .logo span{color:var(--accent)}.tiles{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;display:grid}.tile{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:14px;padding:18px 16px;font-weight:600;text-decoration:none;display:block}a.tile:hover{background:var(--raised);border-color:var(--accent)}.tile.soon{color:var(--muted);font-weight:400}.tile small{color:var(--muted);font-size:13px;font-weight:400;display:block}.stats{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:12px 0 20px;display:grid}.stat{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px 18px}.stat small{color:var(--muted);font-size:13px;display:block}.stat b{font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin:2px 0;font-size:28px;font-weight:800;display:block}.stat .up{color:var(--good)}.stat .down,.stat b.warn{color:var(--bad)}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.toolbar .spacer{flex:1}.monthnav{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;font-size:14px;display:flex}.monthnav a{color:var(--link);text-decoration:none}.monthnav strong{font-size:16px}.rankcards{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}@media (max-width:1100px){.rankcards{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.rankcards{grid-template-columns:1fr}}.rankcard{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px 16px 12px}.rankcard:first-child{background:var(--raised);border-color:var(--accent)}.rankcard .head{color:var(--muted);justify-content:space-between;align-items:baseline;font-size:14px;display:flex}.rankcard .head strong{color:var(--text);font-size:15px}.rankcard .big{font-variant-numeric:tabular-nums;margin:4px 0 6px;font-size:26px;font-weight:800}.rankcard .row{color:var(--muted);justify-content:space-between;font-size:14px;display:flex}.rankcard .row b{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.bar{background:var(--bg);border-radius:99px;height:6px;margin-top:10px;overflow:hidden}.bar span{background:var(--bar);border-radius:99px;height:100%;display:block}.agecards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:12px 0 8px;display:grid}.agecard{background:var(--card);border:1px solid var(--border);border-top:4px solid var(--border);border-radius:12px;padding:12px 14px}.agecard small{color:var(--muted);font-size:12px;display:block}.agecard b{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:clamp(15px,4vw,18px);font-weight:800;display:block}.agecard.all{border-top-color:var(--accent)}.agecard.a1{border-top-color:var(--age-1)}.agecard.a2{border-top-color:var(--age-2)}.agecard.a3{border-top-color:var(--age-3)}.agecard.a4,.agecard.a5{border-top-color:var(--age-4)}.agecard.credit{border-top-color:var(--muted)}.agetag{background:var(--age-4);color:#fff;white-space:nowrap;border-radius:99px;padding:1px 8px;font-size:12px;display:inline-block}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:10px 8px}th{color:var(--muted);font-size:13px;font-weight:500}td form{flex-wrap:wrap;gap:6px;display:flex}td input{flex:1;min-width:120px;padding:8px;font-size:14px}td button{padding:8px 12px;font-size:14px}table.sales{font-variant-numeric:tabular-nums;background:var(--card);border-radius:12px;overflow:hidden}table.sales .num{text-align:right;white-space:nowrap}table.sales tfoot td{border-bottom:0;font-weight:700}table.sales td a{color:var(--link);font-weight:600;text-decoration:none}table.sales tr.unassigned td{background:var(--unassigned)}table.buckets{max-width:420px}table.buckets tr.credit td{color:var(--muted)}@media (max-width:480px){th,td{padding:9px 6px}table.sales{font-size:13px}table.sales.wide th:nth-child(n+5),table.sales.wide td:nth-child(n+5),table.sales.hide4 th:nth-child(4),table.sales.hide4 td:nth-child(4){display:none}}.tag{background:var(--raised);border:1px solid var(--border);border-radius:99px;padding:2px 8px;font-size:12px}.v-good{color:var(--good);font-weight:700}.v-mid{color:var(--mid);font-weight:700}.v-bad{color:var(--bad);font-weight:700}form.search{gap:8px;margin-bottom:8px;display:flex}form.search input{flex:1}nav.filters{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}nav.filters a{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:99px;padding:6px 14px;font-size:14px;text-decoration:none}nav.filters a.on{background:var(--accent);border-color:var(--accent);color:#fff}.panel nav.filters a.on{color:#04121a}ul.custlist{background:var(--card);border:1px solid var(--border);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}ul.custlist li+li{border-top:1px solid var(--border)}ul.custlist li a{color:var(--text);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;text-decoration:none;display:flex}ul.custlist li a:hover{background:var(--raised)}ul.custlist small{color:var(--muted);font-size:12px;display:block}ul.custlist .owner{color:var(--muted);text-align:right;white-space:nowrap;font-size:13px}ul.custlist .owner.warn{color:var(--bad)}ul.visits li a{justify-content:flex-start}ul.visits .grow{flex:1}details.cust{background:var(--card);border:1px solid var(--border);border-radius:12px;margin-bottom:8px}details.cust summary{cursor:pointer;justify-content:space-between;gap:12px;padding:12px 14px;list-style:none;display:flex}details.cust summary::-webkit-details-marker{display:none}details.cust summary small{color:var(--muted);font-size:12px;display:block}details.cust summary .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:700}details.cust summary small.warn{color:var(--bad);font-weight:400}details.cust table{border-radius:0 0 12px 12px;margin:0;font-size:13px}dl.facts{background:var(--card);border:1px solid var(--border);border-radius:12px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 16px;margin:0;padding:14px 16px;display:grid}dl.facts dt{color:var(--muted);font-size:12px}dl.facts dd{margin:0}.dot{border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.dot.green{background:#2da44e}.dot.yellow{background:#d4a72c}.dot.red{background:var(--bad)}.badge{border:1px solid var(--border);white-space:nowrap;border-radius:99px;padding:2px 8px;font-size:12px}.badge.ok{border-color:var(--good);color:var(--good);background:#77e2bf26}.badge.problem{border-color:var(--bad);color:var(--bad);background:#ff776f26}.photos{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.photos a{color:var(--link);text-decoration:none;display:block}.photos img{aspect-ratio:1;object-fit:cover;background:var(--card);border:1px solid var(--border);border-radius:10px;width:100%}.photos small{font-size:12px;display:block}form.review{flex-wrap:wrap;align-items:center;gap:8px;display:flex}form.review .choices{gap:8px;display:flex}form.review .choices label{border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:10px;margin:0;padding:8px 14px;font-size:15px}form.review .choices label.on.ok{border-color:var(--good);color:var(--good)}form.review .choices label.on.problem{border-color:var(--bad);color:var(--bad)}form.review .choices input{width:auto;margin-right:4px}form.review>input[name=reason]{flex:220px}form.review p{flex-basis:100%;margin:4px 0 0}form.visitform label{margin-top:16px}form.visitform small.muted{margin-top:4px;font-size:12px;display:block}form.visitform input[type=file]{padding:10px}form.visitform .photos{margin-bottom:8px}form.visitform .photos span{display:block}.gps{border:1px solid var(--border);background:var(--card);border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-size:14px;display:flex}.gps.ok{border-color:var(--good)}.gps.error{border-color:var(--bad);color:var(--bad)}form.assign{flex-wrap:wrap;gap:8px;display:flex}form.assign select,form.assign input{flex:200px}form.assign p{flex-basis:100%;margin:4px 0 0}.reportcard{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:18px}.reportcard .stat{background:var(--raised)}.reporthead{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.reporthead h1{margin:0}.reporthead p{margin:4px 0 0}form.reportdate{gap:8px;display:flex}form.reportdate input{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;width:auto;padding:9px 10px;font-size:15px}.stats.four{grid-template-columns:repeat(4,1fr);margin-bottom:0}@media (max-width:1000px){.stats.four{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.stats.four{grid-template-columns:1fr}}.stats.four .stat b{font-size:24px}.things{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}@media (max-width:860px){.things{grid-template-columns:1fr}}.thing{background:var(--card);border:1px solid var(--border);border-left:6px solid var(--accent);color:var(--text);border-radius:12px;flex-direction:column;gap:4px;padding:14px 16px;text-decoration:none;display:flex}a.thing:hover{background:var(--raised)}.thing strong{font-size:16px}.taskcounts{grid-template-columns:repeat(7,1fr);gap:10px;display:grid}@media (max-width:1000px){.taskcounts{grid-template-columns:repeat(4,1fr)}}@media (max-width:480px){.taskcounts{grid-template-columns:repeat(2,1fr)}}.taskcounts .stat{padding:12px 14px}.taskcounts .stat b{font-size:24px}.taskcounts .stat.alert{border-color:var(--bad)}.taskcounts .stat.alert b{color:var(--bad)}.tablescroll{border:1px solid var(--border);border-radius:12px;overflow-x:auto}.tablescroll table.sales{border-radius:0}table.usage th,table.usage td:first-child{white-space:nowrap}table.usage .tag{margin-left:6px}.score{text-align:center;color:#08121a;border-radius:99px;min-width:38px;padding:2px 8px;font-weight:800;display:inline-block}.score.low{background:var(--bad)}.score.mid{background:var(--mid)}.score.high{background:var(--good)}.skeleton{gap:12px;display:grid}.skeleton div{background:var(--card);border:1px solid var(--border);border-radius:14px;animation:1.2s ease-in-out infinite pulse}.skeleton .title{width:40%;height:28px}.skeleton .row{background:0 0;border:0;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;animation:none;display:grid}.skeleton .row div{height:96px}.skeleton .block{height:260px}@keyframes pulse{50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.skeleton div{animation:none}}
