:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#000000de;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden}body{min-width:320px}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#fff;cursor:pointer;transition:border-color .25s}button:hover{border-color:#0cf}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.password-modal-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:1000}.password-modal-background{position:absolute;inset:0;background:#fff;background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 800"><defs><pattern id="grid" width="40" height="40" patternUnits="userSpaceOnUse"><path d="M 40 0 L 0 0 0 40" fill="none" stroke="%2300CCFF" stroke-width="0.5" opacity="0.2"/></pattern></defs><rect fill="%23ffffff" width="1200" height="800"/><rect fill="url(%23grid)" width="1200" height="800"/><rect x="100" y="300" width="60" height="200" fill="%2300CCFF" opacity="0.3" rx="4"/><rect x="200" y="250" width="60" height="250" fill="%2366F7FF" opacity="0.4" rx="4"/><rect x="300" y="350" width="60" height="150" fill="%2300CCFF" opacity="0.3" rx="4"/><rect x="400" y="200" width="60" height="300" fill="%2366F7FF" opacity="0.4" rx="4"/><rect x="500" y="280" width="60" height="220" fill="%2300CCFF" opacity="0.3" rx="4"/><rect x="600" y="320" width="60" height="180" fill="%2366F7FF" opacity="0.4" rx="4"/><rect x="700" y="240" width="60" height="260" fill="%2300CCFF" opacity="0.3" rx="4"/><rect x="800" y="300" width="60" height="200" fill="%2366F7FF" opacity="0.4" rx="4"/><rect x="900" y="360" width="60" height="140" fill="%2300CCFF" opacity="0.3" rx="4"/><rect x="1000" y="220" width="60" height="280" fill="%2366F7FF" opacity="0.4" rx="4"/><circle cx="150" cy="150" r="40" fill="%2300CCFF" opacity="0.2"/><circle cx="950" cy="650" r="60" fill="%2366F7FF" opacity="0.25"/><circle cx="1050" cy="200" r="50" fill="%2300CCFF" opacity="0.2"/></svg>');background-size:cover;background-position:center;filter:blur(10px);transform:scale(1.1)}.password-modal-container{position:relative;z-index:1001;width:100%;max-width:400px;padding:20px}.password-modal{background:#fffffff2;border-radius:12px;padding:2rem;box-shadow:0 8px 32px #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(0,0,0,.1)}.password-modal-header{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-bottom:1.5rem}.logo-with-text{display:flex;align-items:center;gap:.75rem;max-width:100%;width:100%;justify-content:center;flex-wrap:wrap}.logo-with-text svg{max-width:145px;height:auto;flex-shrink:1}.reports-text{font-size:23px;font-weight:800;color:#000;white-space:nowrap;line-height:1;display:flex;align-items:center;flex-shrink:0;text-transform:uppercase}@media(max-width:480px){.logo-with-text svg{max-width:150px}.reports-text{font-size:23px}}.password-modal h2{margin:0;color:#000;font-size:1.5rem;text-align:center}.password-input-group{margin-bottom:1rem}.password-input-group input{width:100%;padding:.75rem;font-size:1rem;border:1px solid rgba(0,0,0,.2);border-radius:6px;background:#00000005;color:#000;box-sizing:border-box}.password-input-group input:focus{outline:none;border-color:#0cf;background:#00000008}.password-input-group input::placeholder{color:#00000080}.password-input-group input:disabled{opacity:.6;cursor:not-allowed}.password-modal button{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.75rem;font-size:1rem;font-weight:500;background-color:#0cf;color:#000;border:none;border-radius:6px;cursor:pointer;transition:background-color .25s}.password-modal button:hover:not(:disabled){background-color:#66f7ff}.password-modal button:disabled{opacity:.6;cursor:not-allowed}.password-loading-status{display:flex;align-items:center;justify-content:center;gap:.65rem;margin-bottom:1rem;padding:.8rem .9rem;color:#000000b8;background:#00ccff14;border:1px solid rgba(0,204,255,.22);border-radius:8px;font-size:.9rem;line-height:1.35;text-align:left}.password-spinner,.button-spinner{display:inline-block;flex-shrink:0;border:2px solid rgba(0,0,0,.16);border-top-color:#00a3cc;border-radius:999px;animation:spin .8s linear infinite}.password-spinner{width:1.35rem;height:1.35rem}.button-spinner{width:.95rem;height:.95rem}.password-error{color:#ff6b6b;font-size:.875rem;margin-bottom:1rem;text-align:center}@keyframes spin{to{transform:rotate(360deg)}}.dashboard-header{background:#fffffff2;border-bottom:1px solid rgba(0,0,0,.1);padding:1rem 2rem;position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.header-content{display:flex;justify-content:space-between;align-items:center;width:100%}.header-logo{display:flex;align-items:center;gap:.75rem}.header-logo svg{max-width:145px;height:auto}.reports-text{font-size:23px;font-weight:800;color:#000;white-space:nowrap;line-height:1;display:flex;align-items:center;text-transform:uppercase}.header-actions{display:flex;align-items:center;gap:1rem}.logout-button{padding:.5rem 1.25rem;font-size:.9rem;background-color:#ff6b6b1a;color:#ff6b6b;border:1px solid rgba(255,107,107,.3);border-radius:6px;cursor:pointer;transition:all .25s}.logout-button:hover{background-color:#ff6b6b33;border-color:#ff6b6b80}.dashboard{height:100vh;display:flex;flex-direction:column;background:#fff;color:#000;overflow:hidden}.dashboard-content{flex:1;display:flex;flex-direction:row;width:100%;overflow:hidden}.location-nav{width:300px;flex-shrink:0;border-right:1px solid rgba(0,0,0,.1);background:#f7f9fb;padding:1.5rem 1rem;overflow-y:auto}.location-nav-header{padding:0 .5rem 1rem}.location-nav-eyebrow,.dashboard-eyebrow{display:block;margin-bottom:.25rem;color:#0000008c;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.location-nav-header h2{margin:0;color:#000;font-size:1.4rem;line-height:1.2}.location-nav-list{display:flex;flex-direction:column;gap:1rem}.location-group-section{display:flex;flex-direction:column;gap:.5rem}.location-group-label{padding:0 .6rem;color:#00000075;font-size:.68rem;font-weight:800;letter-spacing:.11em;line-height:1.2;text-transform:uppercase}.location-nav-group{display:flex;flex-direction:column;gap:.6rem}.location-nav-group.active{padding:.35rem;background:#ffffffb3;border:1px solid rgba(0,204,255,.22);border-radius:12px}.location-nav-button{display:flex;align-items:center;justify-content:space-between;gap:.65rem;width:100%;padding:.85rem 1rem;color:#000000b8;text-align:left;background:transparent;border:1px solid transparent;border-radius:8px}.location-nav-button:hover{color:#000;background:#00ccff14;border-color:#00ccff40}.location-nav-button.active{color:#000;background:#fff;border-color:transparent;box-shadow:none}.analytics-nav{display:flex;flex-direction:column;gap:.75rem;padding:0 .25rem .4rem .7rem}.analytics-nav-group{display:flex;flex-direction:column;gap:.35rem}.analytics-nav-button{display:flex;align-items:center;justify-content:space-between;gap:.55rem;width:100%;padding:.55rem .65rem;color:#0000009e;font-size:.78rem;font-weight:800;letter-spacing:.04em;text-align:left;text-transform:uppercase;background:transparent;border:1px solid transparent;border-radius:8px}.analytics-nav-button:hover,.analytics-nav-button.active{color:#000;background:#00ccff14;border-color:#00ccff2e}.analytics-report-list{display:flex;flex-direction:column;gap:.3rem;margin-left:.5rem;padding-left:.65rem;border-left:2px solid rgba(0,0,0,.08)}.analytics-report-button{display:flex;align-items:center;justify-content:space-between;gap:.6rem;width:100%;padding:.65rem .75rem;color:#000000b3;font-size:.92rem;text-align:left;background:transparent;border:1px solid transparent;border-radius:8px}.nav-item-label{display:flex;align-items:center;gap:.5rem;min-width:0}.nav-item-text{display:flex;flex-direction:column;align-items:flex-start;gap:.16rem;min-width:0}.nav-icon{width:1.1rem;height:1.1rem;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.82}.nav-icon-small{width:.95rem;height:.95rem;opacity:.7}.location-capability-icons{display:inline-flex;align-items:center;gap:.25rem;flex-shrink:0}.location-capability-icon{display:inline-flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;border-radius:999px;background:#0000000b;color:#00000085}.location-capability-icon .nav-icon{width:.78rem;height:.78rem;opacity:1;stroke-width:2}.capability-touch{background:#815bff1c;color:#5b3dcc}.capability-sensor{background:#14aa691c;color:#0b8050}.location-nav-button.active .nav-icon,.analytics-nav-button.active .nav-icon,.analytics-report-button.active .nav-icon{color:#00a3cc;opacity:1}.analytics-report-button:hover{color:#000;background:#0000000a;border-color:#00000014}.analytics-report-button.active{color:#000;background:#fff;border-color:#00ccff73;box-shadow:0 3px 10px #0000000d}.location-nav-button .report-status,.analytics-nav-button .report-status,.analytics-report-button .report-status{flex-shrink:0}.dashboard-main{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:1.25rem 2rem 2rem;min-width:0}.report-status{padding:.15rem .4rem;color:#0000008c;background:#00000014;border-radius:999px;font-size:.7rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.report-status-small{padding:.08rem .28rem;color:#004f63;background:#00ccff24;font-size:.52rem;letter-spacing:.025em}.location-summary-panel{display:grid;grid-template-columns:minmax(15rem,.9fr) minmax(20rem,1.4fr);gap:1rem;align-items:center;margin:-.1rem 0 .85rem;padding:0 0 .75rem;border-bottom:1px solid rgba(0,0,0,.08)}.location-summary-heading{display:flex;align-items:center;gap:.9rem;color:#000000a8;font-size:.84rem;line-height:1.3}.location-summary-heading>div{display:flex;flex-direction:column;gap:.15rem;min-width:0}.location-summary-heading strong{color:#000;font-size:.98rem;line-height:1.2}.location-detail-label{color:#0000007a;font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.location-detail-list{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.45rem;margin:0;padding:0}.location-detail-row{display:flex;align-items:center;justify-content:space-between;gap:.55rem;min-height:1.75rem;width:fit-content;max-width:100%;padding:.3rem .55rem;background:var(--detail-bg, rgba(0, 0, 0, .035));border:1px solid var(--detail-border, rgba(0, 0, 0, .055));border-radius:999px}.location-detail-row dt{display:flex;align-items:center;gap:.35rem;color:var(--detail-label, rgba(0, 0, 0, .48));font-size:.6rem;font-weight:800;letter-spacing:.045em;line-height:1;text-transform:uppercase;white-space:nowrap}.location-detail-row dd{margin:0;color:var(--detail-value, rgba(0, 0, 0, .78));font-size:.76rem;font-weight:700;line-height:1;text-align:right;white-space:nowrap;padding-left:.1rem}.detail-pill-icon{display:inline-block;width:.58rem;height:.58rem;background:currentColor;flex-shrink:0}.detail-screens{--detail-bg: rgba(0, 204, 255, .11);--detail-border: rgba(0, 163, 204, .26);--detail-label: #007a99;--detail-value: #004f63}.detail-screens .detail-pill-icon{width:.42rem;height:.58rem;border-radius:2px;box-shadow:.2rem 0 0 currentColor;margin-right:.2rem}.detail-touch{--detail-bg: rgba(129, 91, 255, .11);--detail-border: rgba(129, 91, 255, .25);--detail-label: #5b3dcc;--detail-value: #3d2a88}.detail-touch .detail-pill-icon{width:.58rem;height:.58rem;clip-path:polygon(45% 0,65% 0,65% 45%,100% 45%,100% 65%,65% 65%,65% 100%,45% 100%,45% 65%,0 65%,0 45%,45% 45%)}.detail-sensor{--detail-bg: rgba(20, 170, 105, .11);--detail-border: rgba(20, 170, 105, .25);--detail-label: #0b8050;--detail-value: #075436}.detail-sensor .detail-pill-icon{width:.5rem;height:.5rem;border-radius:999px;box-shadow:0 0 0 2px #14aa692e}.detail-screen-size{--detail-bg: rgba(255, 169, 64, .14);--detail-border: rgba(255, 169, 64, .3);--detail-label: #a65f00;--detail-value: #704000}.detail-screen-size .detail-pill-icon{width:.48rem;height:.62rem;border-radius:1px}.detail-player{--detail-bg: rgba(255, 107, 107, .11);--detail-border: rgba(255, 107, 107, .25);--detail-label: #b83d3d;--detail-value: #7d2828}.detail-player .detail-pill-icon{width:.55rem;height:.55rem;clip-path:polygon(0 0,100% 50%,0 100%)}.tab-content-wrapper{flex:1;display:flex;flex-direction:column;overflow:hidden}.tab-content{flex:1;display:flex;flex-direction:column;overflow:hidden;animation:fadeIn .3s ease-in}.tab-content iframe{flex:1;min-height:0;width:100%;height:100%;background:#fff;border:none;border-radius:2px}.dashboard-logo{height:48px;width:auto;flex-shrink:0;object-fit:contain}.empty-report-state{display:flex;flex:1;flex-direction:column;justify-content:center;min-height:18rem;padding:2rem;background:#00000008;border:1px dashed rgba(0,0,0,.18);border-radius:12px}.empty-report-state h2{margin:0 0 .35rem;color:#000;font-size:1.45rem}.empty-report-state p{margin:0 0 1rem;color:#000000b3}.unavailable-report{width:fit-content;padding:.85rem 1rem;color:#000000c7;background:#fff;border:1px solid rgba(0,0,0,.12);border-radius:8px}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:800px){.dashboard-content{flex-direction:column;overflow-y:auto}.location-nav{width:100%;padding:1rem;border-right:none;border-bottom:1px solid rgba(0,0,0,.1);overflow:visible}.location-nav-list{gap:.75rem}.location-nav-button{white-space:nowrap}.location-nav-group.active{min-width:100%}.analytics-report-list{overflow-x:auto}.dashboard-main{min-height:42rem;padding:1rem;overflow:visible}.location-summary-panel{grid-template-columns:1fr}.location-detail-list{justify-content:flex-start}}#root{width:100%;height:100vh;margin:0;padding:0;overflow:hidden}.app-loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;gap:.75rem;color:#000000b8;background:#fff;font-size:.95rem;font-weight:700}.app-loading-spinner{width:1.4rem;height:1.4rem;border:2px solid rgba(0,0,0,.16);border-top-color:#00a3cc;border-radius:999px;animation:app-spin .8s linear infinite}@keyframes app-spin{to{transform:rotate(360deg)}}
