:root{color:#27263b;font-synthesis:none;--ink:#19182f;--muted:#74758a;--line:#e6e7ee;--purple:#6757e8;--purple-dark:#17162f;--mint:#22b7a0;--orange:#ffaf45;background:#f4f5f9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}.shell{grid-template-columns:264px minmax(0,1fr);min-height:100vh;transition:all .2s;display:grid}.shell.sidebar-collapsed{grid-template-columns:82px minmax(0,1fr)}.sidebar{color:#fff;z-index:20;background:linear-gradient(160deg,#191830 0%,#22203e 100%);flex-direction:column;height:100vh;padding:22px 14px 14px;display:flex;position:sticky;top:0}.brand{white-space:nowrap;align-items:center;gap:12px;padding:0 10px 18px;display:flex;overflow:hidden}.brand-mark{background:linear-gradient(145deg,#7969f5,#4e3cce);border-radius:13px;flex:none;place-items:center;width:42px;height:42px;font:800 23px Manrope;display:grid;box-shadow:0 8px 22px #08071980}.brand strong{font:800 18px Manrope;display:block}.brand small{color:#aaa8c2;margin-top:2px;display:block}.demo-chip{color:#ffc66e;letter-spacing:.08em;text-align:center;white-space:nowrap;background:#f4ab4912;border:1px solid #f4ab4944;border-radius:9px;margin:0 7px 20px;padding:8px 10px;font-size:10px;font-weight:800;overflow:hidden}.sidebar nav{flex-direction:column;gap:4px;padding:0 2px;display:flex;overflow-y:auto}.sidebar nav button,.sidebar-footer button{color:#b9b8ca;text-align:left;white-space:nowrap;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;min-height:44px;padding:11px 12px;display:flex;overflow:hidden}.sidebar nav button span,.sidebar-footer button span{text-align:center;flex:0 0 24px;width:24px;font-size:19px;font-style:normal}.sidebar nav em,.sidebar-footer em{font-style:normal;font-weight:600}.sidebar nav button:hover{color:#fff;background:#ffffff0b}.sidebar nav button.active{color:#fff;background:linear-gradient(90deg,#6d5de8,#5c4bd4);box-shadow:0 6px 18px #08071944}.sidebar-footer{border-top:1px solid #ffffff13;margin-top:auto;padding-top:12px}.sidebar-footer button{width:100%}.sidebar-collapsed .brand>div:last-child,.sidebar-collapsed .demo-chip,.sidebar-collapsed nav em,.sidebar-collapsed .sidebar-footer em{display:none}.sidebar-collapsed .brand{padding-inline:5px}.sidebar-collapsed nav button{justify-content:center;padding-inline:8px}.workspace{min-width:0}.topbar{border-bottom:1px solid var(--line);z-index:12;background:#fff;align-items:center;gap:26px;height:76px;padding:0 28px;display:flex;position:sticky;top:0}.establishment-picker{flex-direction:column;gap:2px;display:flex}.establishment-picker span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:700}.establishment-picker select{color:var(--ink);background:0 0;border:0;min-width:220px;padding:2px 20px 2px 0;font-weight:700}.topbar-status{color:#7e7e90;align-items:center;gap:9px;margin-left:auto;display:flex}.topbar-status div{flex-direction:column;display:flex}.topbar-status strong{font-size:12px}.topbar-status small{font-size:10px}.cloud-off{background:#f1f1f5;border-radius:10px;place-items:center;width:32px;height:32px;display:grid}.account{text-align:left;background:0 0;border:0;align-items:center;gap:10px;display:flex}.account>span{color:#5c49d0;background:#ebe8ff;border-radius:50%;place-items:center;width:38px;height:38px;font-weight:800;display:grid}.account div{flex-direction:column;display:flex}.account strong{font-size:13px}.account small{color:var(--muted);font-size:11px}.mobile-menu{display:none}main{max-width:1600px;margin:auto;padding:30px 32px 50px}.page-header{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px;display:flex}.page-header h1{color:var(--ink);letter-spacing:-.035em;margin:2px 0 6px;font:800 clamp(26px,2.2vw,36px) Manrope}.page-header p:not(.eyebrow){color:var(--muted);margin:0;font-size:14px}.eyebrow{color:var(--purple);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:11px;font-weight:800}.page-actions{align-items:center;gap:9px;display:flex}.primary,.secondary,.ghost,.danger{border:1px solid #0000;border-radius:9px;padding:10px 14px;font-size:13px;font-weight:700}.primary{background:var(--purple);color:#fff;box-shadow:0 5px 14px #6757e82c}.primary:hover{background:#5747d5}.secondary{color:#4f4e65;background:#fff;border-color:#dddde7}.ghost{color:#65657a;background:0 0;border:0}.danger{color:#c14343;background:#fff1f1;border-color:#f2cccc}.period{color:#4a495f;background:#fff;border:1px solid #dddde7;border-radius:9px;padding:9px 32px 9px 12px;font-weight:600}.notice{color:#5b50a1;background:#f5f3ff;border:1px solid #dcd8ff;border-radius:11px;margin-bottom:20px;padding:12px 15px;font-size:13px}.notice.warn{color:#8a642f;background:#fff9ef;border-color:#f6dfbd}.notice.success{color:#27755d;background:#f2fbf7;border-color:#ccecdf}.metric-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;display:grid}.metric{border:1px solid var(--line);background:#fff;border-radius:14px;flex-direction:column;min-height:116px;padding:18px 20px;display:flex}.metric span{color:var(--muted);font-size:12px;font-weight:600}.metric strong{color:var(--ink);margin-top:9px;font:800 27px Manrope}.metric small{color:#9999a8;margin-top:auto;font-size:10px}.metric.accent{background:linear-gradient(145deg,#6757e8,#4f3dcc);border:0;box-shadow:0 12px 25px #5645d22b}.metric.accent span,.metric.accent strong,.metric.accent small{color:#fff}.metric.accent small{opacity:.72}.dashboard-grid{grid-template-columns:1.25fr .95fr;gap:16px;display:grid}.card{border:1px solid var(--line);background:#fff;border-radius:14px;padding:20px;box-shadow:0 3px 12px #29284a08}.card-header{margin-bottom:18px}.card-header h2{color:var(--ink);margin:0;font:700 16px Manrope}.card-header p{color:var(--muted);margin:4px 0 0;font-size:11px}.bar-chart{flex-direction:column;gap:15px;display:flex}.bar-row{grid-template-columns:100px 1fr 90px;align-items:center;gap:12px;font-size:12px;display:grid}.bar-row>div{background:#eeeef4;border-radius:8px;height:8px;overflow:hidden}.bar-row i{background:linear-gradient(90deg,#7566ea,#9a8ff5);border-radius:8px;height:100%;display:block}.bar-row strong{text-align:right}.donut-layout{justify-content:space-around;align-items:center;gap:28px;display:flex}.donut{--p:70%;background:radial-gradient(circle at center,#fff 0 56%,transparent 57%),conic-gradient(var(--purple) 0 var(--p),#e8e7f0 var(--p) 100%);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:138px;height:138px;display:flex}.donut strong{font:800 25px Manrope}.donut small{color:var(--muted)}.legend{min-width:180px}.legend p{grid-template-columns:10px 1fr auto;align-items:center;gap:9px;margin:12px 0;font-size:12px;display:grid}.legend i{background:var(--purple);border-radius:50%;width:8px;height:8px}.legend .color-1{background:var(--mint)}.legend .color-2{background:var(--orange)}.health-list{flex-direction:column;display:flex}.health-list button{border:0;border-bottom:1px solid var(--line);background:0 0;justify-content:space-between;padding:15px 2px;font-size:13px;display:flex}.health-list button:last-child{border:0}.health-list strong{color:#55546b}.alerts p{align-items:center;gap:10px;margin:13px 0;font-size:13px;display:flex}.warning,.neutral-dot{background:#f3a63d;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #f3a63d1d}.neutral-dot{box-shadow:none;background:#9c9cab}.cards-list{gap:14px;display:grid}.entity-card{padding:0;overflow:hidden}.entity-heading{align-items:center;gap:14px;padding:19px 20px;display:flex}.entity-heading>div:nth-child(2){flex:1}.entity-heading h3{margin:0;font:700 16px Manrope}.entity-heading p{color:var(--muted);margin:4px 0 0;font-size:12px}.entity-icon{width:43px;height:43px;color:var(--purple);background:#f0edff;border-radius:12px;place-items:center;font-weight:800;display:grid}.category-color{border-radius:7px;width:14px;height:43px}.status{white-space:nowrap;border-radius:20px;align-items:center;gap:7px;padding:5px 9px;font-size:10px;font-weight:800;display:inline-flex}.status i{background:currentColor;border-radius:50%;width:6px;height:6px}.status.good{color:#18866f;background:#eaf8f3}.status.warn{color:#a76a1c;background:#fff5e5}.status.bad{color:#bd3f4c;background:#fff0f1}.status.neutral{color:#717181;background:#f0f0f3}.entity-facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid}.entity-facts span{color:var(--muted);border-right:1px solid var(--line);padding:14px 20px;font-size:10px}.entity-facts span:last-child{border:0}.entity-facts strong{color:#454458;margin-top:4px;font-size:12px;display:block}.card-actions{justify-content:flex-end;gap:8px;padding:13px 18px;display:flex}.inline-form{margin-bottom:15px}.form-row{align-items:flex-end;gap:10px;display:flex}.form-row label{color:var(--muted);flex:1;font-size:11px;font-weight:700}.form-row input,.table-tools input{border:1px solid #dcdce6;border-radius:9px;outline:none;width:100%;margin-top:6px;padding:10px 12px;display:block}.form-row input:focus,.table-tools input:focus{border-color:var(--purple);box-shadow:0 0 0 3px #6757e817}.tabs{border-bottom:1px solid var(--line);gap:5px;margin-bottom:15px;display:flex}.tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:11px 14px;font-weight:700}.tabs button.active{color:var(--purple);border-color:var(--purple)}.tabs b{background:#ececf2;border-radius:10px;margin-left:4px;padding:2px 6px;font-size:10px}.table-tools{justify-content:space-between;align-items:center;gap:20px;margin-bottom:15px;display:flex}.table-tools input{max-width:360px;margin:0}.table-tools span{color:var(--muted);font-size:11px}.data-table{min-width:0}.table-head,.table-row{grid-template-columns:1.4fr 1fr 1fr .6fr .7fr;align-items:center;gap:14px;display:grid}.table-head{color:#9292a2;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--line);padding:9px 12px;font-size:9px;font-weight:800}.table-row{border-bottom:1px solid #ededf2;padding:14px 12px;font-size:12px}.table-row:last-child{border:0}.table-row span{min-width:0}.table-row strong{display:block}.table-row small{color:var(--muted);text-overflow:ellipsis;margin-top:3px;display:block;overflow:hidden}.choice-groups{border-top:1px solid var(--line);padding:8px 20px}.choice-groups>div{border-bottom:1px solid var(--line);grid-template-columns:120px 1fr 2fr;gap:18px;padding:11px 0;font-size:12px;display:grid}.choice-groups>div:last-child{border:0}.choice-groups span,.choice-groups small{color:var(--muted)}.route-tags{gap:7px;padding:12px 20px 0;display:flex}.route-tags span{border:1px solid;border-radius:16px;padding:4px 9px;font-size:10px;font-weight:700}.devices-table .table-head,.devices-table .table-row{grid-template-columns:1.4fr 1.2fr .8fr 1fr .7fr}.two-column{grid-template-columns:1fr 1fr;gap:16px;display:grid}.people>div{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 0;display:flex}.people>div>span{width:38px;height:38px;color:var(--purple);background:#ece9ff;border-radius:50%;place-items:center;font-size:11px;font-weight:800;display:grid}.people>div>div{flex-direction:column;flex:1;display:flex}.people small,.profiles small{color:var(--muted);margin-top:3px}.profiles>div{border-bottom:1px solid var(--line);padding:12px 0}.profiles header{justify-content:space-between;display:flex}.profiles header>div{flex-direction:column;display:flex}.profiles p{flex-wrap:wrap;gap:5px;display:flex}.profiles p span{color:#656478;background:#f3f2f8;border-radius:6px;padding:4px 7px;font-size:9px}.toggle{background:#cccdd5;border:0;border-radius:14px;width:39px;height:23px;padding:3px;transition:all .2s}.toggle span{background:#fff;border-radius:50%;width:17px;height:17px;transition:all .2s;display:block;box-shadow:0 1px 4px #0002}.toggle.on{background:var(--purple)}.toggle.on span{transform:translate(16px)}.floor-card{overflow:auto}.floor-canvas{background-color:#0000;background-image:linear-gradient(#f4f5f9 1px,#0000 1px),linear-gradient(90deg,#f4f5f9 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:24px 24px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;border-radius:10px;grid-template-columns:repeat(6,minmax(90px,1fr));gap:12px;min-width:680px;padding:8px;display:grid}.floor-canvas button{color:#343349;background:#fff;border:1px solid #dfe0e8;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-height:78px;display:flex;box-shadow:0 3px 8px #2625450a}.floor-canvas button strong{font:800 17px Manrope}.floor-canvas button small{color:var(--muted);font-size:9px}.floor-canvas button.inactive{opacity:.38;border-style:dashed}.stats-table .table-head,.stats-table .table-row{grid-template-columns:1.4fr repeat(4,1fr)}.settings-grid{align-items:start}.setting-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:14px 0;display:flex}.setting-row:last-child{border:0}.setting-row div{flex-direction:column;display:flex}.setting-row small{color:var(--muted);margin-top:4px}.danger-zone{border-color:#f0d1d1}.danger-zone p{color:var(--muted);font-size:12px}.audit-list>div{border-bottom:1px solid var(--line);gap:12px;padding:10px 0;display:flex}.audit-list i{background:var(--purple);border-radius:50%;width:8px;height:8px;margin-top:5px}.audit-list span{flex-direction:column;display:flex}.audit-list small{color:var(--muted);margin-top:3px}.empty-state{text-align:center;min-height:260px;color:var(--muted);background:#fff;border:1px dashed #d7d7e1;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state span{color:#aaa3ed;font-size:38px}.empty-state strong{color:var(--ink);margin-top:8px;font:700 18px Manrope}.empty-state p{max-width:390px}.app-loading{min-height:100vh;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex}.spinner{border:3px solid #e3e1f5;border-top-color:var(--purple);border-radius:50%;width:34px;height:34px;animation:.8s linear infinite spin}.saving,.toast,.error-toast{z-index:50;color:#fff;background:#26243f;border-radius:10px;padding:11px 15px;font-size:12px;font-weight:700;position:fixed;bottom:22px;right:22px;box-shadow:0 10px 30px #11112f44}.toast{background:#21896f}.error-toast{background:#b9404d;border:0}.scrim{display:none}.mobile-menu{background:#f3f2f7;border:0;border-radius:9px;width:40px;height:40px}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1100px){.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.two-column{grid-template-columns:1fr}.topbar-status{display:none}.floor-canvas{grid-template-columns:repeat(5,minmax(90px,1fr))}.data-table{overflow-x:auto}.table-head,.table-row{min-width:760px}}@media (width<=780px){.shell,.shell.sidebar-collapsed{display:block}.sidebar{width:270px;transition:all .22s;position:fixed;left:0;transform:translate(-100%)}.sidebar.mobile-open{transform:translate(0)}.scrim{z-index:15;background:#10102266;border:0;display:block;position:fixed;inset:0}.mobile-menu{display:block}.topbar{gap:12px;height:68px;padding:0 14px}.establishment-picker span{display:none}.establishment-picker select{min-width:0;max-width:180px}.account div{display:none}main{padding:23px 16px 40px}.page-header{flex-direction:column;align-items:flex-start}.page-actions{width:100%}.page-actions>*{flex:1}.metric-grid{grid-template-columns:1fr 1fr}.entity-facts{grid-template-columns:1fr}.entity-facts span{border-right:0;border-bottom:1px solid var(--line)}.choice-groups>div{grid-template-columns:1fr;gap:5px}.donut-layout{flex-direction:column}.form-row{flex-wrap:wrap}.form-row label{flex-basis:100%}}@media (width<=480px){.metric-grid{grid-template-columns:1fr}.metric{min-height:100px}.page-header h1{font-size:26px}.account{padding:0}.topbar{gap:8px}.establishment-picker select{max-width:150px;font-size:12px}.bar-row{grid-template-columns:75px 1fr 75px}.card{padding:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.brand-mark,.brand strong,.page-header h1,.metric strong,.card-header h2,.donut strong,.entity-heading h3,.floor-canvas button strong,.empty-state strong{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@media (width>=481px) and (width<=780px){.establishment-picker select{max-width:240px}}.demo-chip.preview-chip{color:#86ead6;background:#22b7a018;border-color:#5de0c255}.cloud-on{color:#17866f;background:#e8f8f4;border-radius:10px;place-items:center;width:32px;height:32px;display:grid}.preview-login{max-width:900px;margin:4vh auto 0}.preview-login-form{grid-template-columns:1fr 1fr;align-items:end;gap:16px;display:grid}.preview-login-form label,.preview-mutation-form label{color:var(--muted);font-size:11px;font-weight:700}.preview-login-form label:first-child,.preview-login-form label:nth-child(4){grid-column:1/-1}.preview-login-form label small{margin-top:2px;font-weight:500;display:block}.preview-login-form input,.preview-mutation-form input,.preview-mutation-form select{background:#fff;border:1px solid #dcdce6;border-radius:9px;width:100%;margin-top:6px;padding:10px 12px;display:block}.preview-login-form .primary{justify-self:start}.preview-mutation-form{grid-template-columns:repeat(4,minmax(120px,1fr)) auto auto;align-items:end;gap:10px;display:grid}.capability-list p{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin:0;padding:10px 0;font-size:12px;display:flex}.capability-list p:last-child{border:0}.compact-button{padding:6px 9px;font-size:11px}@media (width<=780px){.preview-login-form,.preview-mutation-form{grid-template-columns:1fr}.preview-login-form label:first-child,.preview-login-form label:nth-child(4){grid-column:auto}.preview-mutation-form .primary,.preview-mutation-form .ghost{width:100%}}
