:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;background-image:url(/assets/cartographer-DAUtArzX.png);background-position:0 0;background-repeat:repeat;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%}body{margin:0;display:flex;flex-wrap:wrap;place-items:center;min-width:320px;height:100%;min-height:100dvh}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}h1{font-size:2rem;margin:0;padding:0 1rem;display:flex;justify-content:center;align-items:center;gap:1rem;-webkit-user-select:none;user-select:none}h2{font-size:.875rem;font-weight:400;margin:0 auto;max-width:240px}button{border-radius:8px;border:1px solid transparent;padding:.5em 1em;margin-bottom:.3rem;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s;display:inline-flex;justify-content:center;align-items:center;gap:.5rem}button div{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:25px}button small{font-size:.425rem}button[hidden]{display:none!important}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}select{appearance:none;border-radius:8px;border:1px solid transparent;padding:.6em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;text-align:center;transition:border-color .25s}select:hover{border-color:#646cff}select:focus,select:focus-visible{outline:4px auto -webkit-focus-ring-color}footer small{margin-top:1rem;gap:.5rem;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;padding:0 1rem;font-size:.75rem;-webkit-user-select:none;user-select:none}footer .footer-cli-line{flex:0 0 100%;display:inline-flex;justify-content:center;align-items:center;gap:.35rem}footer .footer-cli-line code{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.75rem;line-height:1.2;padding:.2rem .45rem;border-radius:.4rem;border:1px solid rgba(137,137,137,.45);background:#89898926;color:inherit;-webkit-user-select:text;user-select:text}footer .footer-copy-btn{display:inline-flex;align-items:center;justify-content:center;width:1.4rem;height:1.4rem;margin:0;padding:0;border-radius:.35rem;border:1px solid rgba(137,137,137,.45);background:#8989891f;color:inherit}footer .footer-copy-btn:hover{border-color:#646cff}footer .footer-copy-btn.is-copied{color:#3c8772;border-color:#3c8772;background:#3c87721f}footer .footer-copy-btn.is-copy-error{color:#c05757;border-color:#c05757;background:#c057571f}footer,footer a{color:#898989}footer a:hover{border-color:#646cff}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}select,input,button{background-color:#e6e6e6}.app-shell-card{background-color:#f9f9f9}footer a{color:#213547}footer a:hover{color:#747bff}}header,footer,#app{flex:0 0 100%;max-width:1024px;margin:0 auto;text-align:center;width:100%}header{position:relative;padding-bottom:.5rem}.header-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.header-brand{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem}.header-row h1{font-size:1.5rem;justify-content:flex-start;padding:0;gap:.5rem}.header-brand small{font-size:.75rem;line-height:1.2;text-align:left;-webkit-user-select:none;user-select:none}.header-actions{display:flex;gap:.5rem}#error{white-space:pre;justify-content:center;background-color:#898989;border-radius:1rem;padding:1rem;margin:0 1rem 1rem}.app-shell-card{background:#2e2e2e;border-radius:1rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1rem;margin:0 1rem}.session-page{width:100%;text-align:left}.section-content{margin-bottom:.75rem}.new-session-description{font-size:.875rem}.new-session-toolbar{width:100%;display:flex;justify-content:flex-end;margin-bottom:.45rem}.new-session-shortcut{display:inline-flex;align-items:center;justify-content:center;border:1px solid #4a4a4a;border-radius:.6rem;padding:.4rem .65rem;color:inherit;text-decoration:none;background:#ffffff08}.new-session-shortcut:hover{border-color:#646cff;background:#646cff1f}.session-controls{display:inline-flex;gap:.5rem;align-items:center;margin-bottom:.5rem}.page-title-row{display:flex;align-items:center;gap:.5rem}.page-title-row h3{margin:0}.input{display:grid;grid-template-columns:repeat(4,1fr);align-items:center;justify-content:center;gap:.5rem;width:100%}.input>button{grid-column:span 2}.input:last-of-type{border:none;grid-template-columns:1fr;display:inline-grid;width:auto}.input>strong{grid-column:span 4;padding:.5rem}.app-shell-card>div:not(.input){display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem;text-align:center;width:100%}.app-shell-card>div:not(.input)>button{padding:.25rem;background:none;border:none;margin:0}.app-shell-card>div:not(.input)>button:hover{opacity:.8}@media only screen and (min-width:900px){.app-shell-card{padding:1.25rem 1.35rem;gap:.75rem}.session-page{max-width:100%}.section-content{margin-bottom:1rem}}@media only screen and (max-width:640px){.header-row{align-items:flex-start;gap:.75rem}.header-brand{min-width:0}.header-row h1{font-size:1.25rem}.header-brand small{max-width:100%}.header-actions{flex:0 0 auto;gap:.35rem}.app-shell-card{margin:0 .5rem;padding:.75rem}}#session-options-form{display:grid;gap:.5rem;margin-bottom:.75rem}#session-options-form>label{display:flex;flex-direction:column;align-items:flex-start;text-align:left;border:1px solid #4a4a4a;border-radius:.75rem;padding:.75rem;gap:.35rem;background:#ffffff08}#session-options-form>label[hidden]{display:none}#session-options-form>label input:not([type=checkbox]),#session-options-form>label select{width:100%;box-sizing:border-box}#session-options-form>label.session-option-toggle{flex-direction:row;align-items:center;gap:.5rem}#session-options-form>label.session-option-toggle input[type=checkbox]{margin:0}#session-options-form>label.session-option-dependent.is-disabled{opacity:.7}.session-page-repeaters #session-options-form{gap:.75rem}.repeaters-options{display:grid;gap:.45rem}.repeaters-set-wrapper{border:1px solid #4a4a4a;border-radius:.75rem;padding:.5rem;display:grid;gap:.4rem;background:#ffffff05}.repeaters-set-title{font-size:.78rem;font-weight:700;opacity:.82;text-transform:uppercase;letter-spacing:.03em;padding:0 .2rem}.repeaters-field{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.6rem;border:1px solid #4a4a4a;border-radius:.75rem;padding:.65rem .75rem;background:#ffffff08}.repeaters-field[hidden]{display:none!important}.repeaters-label{font-size:.9rem;font-weight:600}.repeaters-field input[type=number],.repeaters-field select{width:7rem;margin:0;text-align:center;font-weight:700}.repeaters-input-with-unit{display:inline-flex;align-items:center;gap:.35rem}.repeaters-unit{font-size:.8rem;opacity:.85;min-width:.6rem;text-align:left}.repeaters-field.session-option-toggle{display:flex;justify-content:flex-start}.repeaters-field.session-option-toggle input[type=checkbox]{width:auto}.repeaters-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.repeaters-metric{border:1px solid #4a4a4a;border-radius:.7rem;background:#ffffff08;padding:.5rem .45rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.repeaters-metric strong{font-size:.92rem}.repeaters-metric small{opacity:.82;font-size:.68rem}#masses{min-height:80px;width:100%;margin-bottom:.75rem}#masses>.device-mass{display:flex;justify-content:center;flex-wrap:wrap;padding-top:.5rem;gap:.5rem}#masses>.device-mass>div{display:flex;flex-direction:column;justify-content:center;text-align:center;flex:0 0 calc(33.33% - 1rem);min-width:120px;border:1px solid #4a4a4a;border-radius:.5rem;padding-block:.7rem;padding-inline:.55rem;background:#ffffff08}#masses label{opacity:.85;font-size:clamp(.8rem,.75vw,.95rem);line-height:1.2}#masses strong{font-size:clamp(1.15rem,1.15vw,1.6rem);line-height:1.08;font-weight:800}#masses strong span{font-size:clamp(.95rem,1.2vw,1.15rem);opacity:.85}#session-status{margin:0 0 .5rem;font-size:.875rem}.session-controls>button{min-height:2.6rem}#masses{min-height:80px}#masses>div{display:flex;justify-content:center;flex-wrap:wrap;padding-top:.5rem}#masses>div>div{display:flex;justify-content:center;flex:0 0 calc(33.33% - 1rem);gap:.5rem;margin:.5rem}.chart{padding:0 .5rem;height:320px!important;width:100%!important;max-width:100%;margin-top:.6rem}.measurement-list{margin-bottom:1rem}.measurement-list-item{cursor:default}.measurement-list-item small{display:block}.measurement-empty{min-height:8rem}.performance-metric{display:flex;flex-direction:column}.performance-metrics{display:flex;flex-direction:column;row-gap:1rem}.performance-row{display:flex;justify-content:space-between}@media only screen and (min-width:900px){#session-status{margin-bottom:.7rem}.session-controls{margin-bottom:.8rem;gap:.6rem}#masses>.device-mass{gap:.7rem;padding-top:.35rem}#masses>.device-mass>div{padding-block:.8rem;padding-inline:.75rem}#masses strong{font-size:clamp(1.35rem,1.5vw,1.95rem)}.chart{margin-top:.8rem;height:340px!important}}@media only screen and (max-width:640px){.session-controls{display:flex;flex-wrap:wrap;width:100%;gap:.5rem}.session-controls>button{flex:1 1 calc(50% - .5rem);min-width:9rem;margin:0}#masses>.device-mass{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}#masses>.device-mass>div{flex:0 0 auto;min-width:0;width:100%;padding-block:.65rem;padding-inline:0}#masses>.device-mass>div:only-child{grid-column:1 / -1;justify-self:center;width:min(18rem,100%)}#masses>div>div{margin:0}.chart{height:250px!important;padding:0 .15rem;margin-top:.35rem}#masses label{font-size:clamp(.8rem,2.9vw,.95rem)}#masses strong{font-size:clamp(1.9rem,8vw,2.5rem)}#masses strong span{font-size:clamp(.9rem,3.2vw,1.05rem)}#session-status{margin-bottom:.4rem}}@media only screen and (max-width:420px){.session-controls>button{flex-basis:100%;min-width:0}}dialog::backdrop{background:#00000080}dialog form{padding:1rem;min-width:200px}dialog menu{display:flex;gap:.5rem;margin-top:1rem}.tare-dialog{border:1px solid #4a4a4a;border-radius:.75rem;background:#2e2e2e;color:inherit;width:min(480px,calc(100% - 2rem));padding:0}.tare-dialog-form{padding:1rem;display:flex;flex-direction:column;gap:.5rem}.tare-dialog-form h3,.tare-dialog-form p{margin:0}.tare-dialog-current,.tare-dialog-status{border:1px solid #4a4a4a;border-radius:.5rem;padding:.5rem .75rem;background:#ffffff08}.tare-dialog-actions{justify-content:flex-end}.save-measurement-dialog{border:1px solid #4a4a4a;border-radius:.75rem;background:#2e2e2e;color:inherit;width:min(520px,calc(100% - 2rem));padding:0}.save-measurement-form{padding:1rem;display:flex;flex-direction:column;gap:.75rem}.save-measurement-form h3{margin:0}.save-measurement-field{display:flex;flex-direction:column;gap:.35rem}.save-measurement-field input,.save-measurement-field textarea{width:100%;border:1px solid #4a4a4a;border-radius:.5rem;padding:.5rem .75rem;background:#ffffff08;color:inherit;font:inherit}.save-measurement-field textarea{resize:vertical;min-height:6rem}.save-measurement-actions{justify-content:flex-end}.settings-group{display:flex;flex-direction:column;align-items:flex-start;text-align:left;margin-bottom:.75rem;gap:.5rem}.settings-group h4{margin:0}.settings-group label{display:flex;flex-direction:column;align-items:flex-start;width:100%;gap:.25rem}.settings-group input,.settings-group select{width:100%;box-sizing:border-box}.settings-output{width:100%;box-sizing:border-box;min-height:4rem;border-radius:.75rem;border:1px solid #4a4a4a;padding:.75rem;margin:0;overflow:auto;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.85rem;background:#ffffff08}.action-menu{width:100%}.action-menu-list{margin:0;padding:0;list-style:none;display:grid;gap:.5rem}.card{border:1px solid #4a4a4a;border-radius:.5rem;background:#ffffff08;transition:border-color .2s ease,background-color .2s ease}.card-content{display:block;padding:.5rem .75rem;color:inherit;text-decoration:none;text-align:left;border-radius:.5rem;-webkit-user-select:none;user-select:none;min-width:0;overflow:hidden;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.card-content strong{display:block;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.card-content small{opacity:.85;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.card:hover{border-color:#646cff;background:#646cff1f}.action-menu-link-disabled{opacity:.6;cursor:not-allowed}@media(prefers-color-scheme:light){.card{border-color:#d1d5db;background:#0f172a0a}.card:hover{border-color:#4f46e5;background:#4f46e51f}}#device-list{position:absolute;top:calc(100% - .25rem);right:1rem;width:min(360px,calc(100% - 2rem));text-align:left;background:#2a2a2a;border:1px solid #4a4a4a;border-radius:.75rem;padding:.5rem;box-shadow:0 10px 30px #00000059;z-index:20;max-height:min(70dvh,560px);overflow-y:auto}#device-list h3{margin:0 0 .25rem;font-size:.95rem}#device-list ul{margin:0;padding:0;list-style:none}#device-list li+li{margin-top:.25rem}#device-list .device-list-item{display:flex;align-items:stretch;gap:.25rem}#device-list li button{flex:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;margin:0;gap:.2rem;line-height:1.2;min-height:3rem;padding:.5rem .65rem;text-align:left}#device-list .device-name{font-size:.875rem;font-weight:700}#device-list .device-short-description{font-size:.625rem;font-weight:400}#device-list .device-link{width:2rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid #4a4a4a;border-radius:.5rem;color:#e5e7eb;text-decoration:none;background:#1f1f1f}#device-list .device-link:hover{border-color:#60a5fa;color:#fff;background:#23252a}#device-list li button:disabled{cursor:not-allowed;opacity:.55}#device-list li button:disabled:hover{border-color:#4a4a4a;background:inherit}#device-connect-status{display:block;margin-top:.5rem;opacity:.8}#device-list .device-disconnect-btn{width:100%;margin:.4rem 0 0}[data-toggle-device-list].is-connected{border-color:#22c55e}@media only screen and (max-width:640px){#device-list{position:fixed;top:.75rem;left:.75rem;right:.75rem;width:auto;max-height:calc(100dvh - 1.5rem);padding:.75rem;border-radius:1rem}#device-list .device-list-item{gap:.4rem}#device-list li button{min-height:3.5rem;padding:.65rem .75rem}#device-list .device-name{font-size:.95rem}#device-list .device-short-description{font-size:.72rem}#device-list .device-link{width:2.5rem;border-radius:.6rem}}@media(prefers-color-scheme:light){#device-list{background:#fff;border-color:#d1d5db;box-shadow:0 10px 24px #0f172a1f}#device-list li button,#device-list .device-link{color:#111827;background:#f3f4f6;border-color:#d1d5db}#device-list .device-link:hover{border-color:#4f46e5;background:#eef2ff;color:#111827}#device-list li button:hover{border-color:#4f46e5;background:#eef2ff}#device-list li button:disabled:hover{border-color:#d1d5db;background:#f3f4f6}#device-connect-status{color:#374151;opacity:1}}@media only screen and (min-width:768px){.chart{height:480px!important}.input strong{flex:0 0 auto}.input>button{grid-column:span 1}#masses{min-height:40px}#masses>.device-mass>div{flex:0 0 auto}}@media(prefers-color-scheme:light){.app-shell-card{background:#f9f9f9}#masses>.device-mass>div{border-color:#d1d5db;background:#0f172a08}#error{background-color:#d1d5db}.settings-group{border-color:#d1d5db;background:#0f172a08}#session-options-form>label{border-color:#d1d5db;background:#0f172a08}.new-session-shortcut,.repeaters-set-wrapper,.repeaters-field,.repeaters-metric{border-color:#d1d5db;background:#0f172a08}.new-session-shortcut:hover{border-color:#4f46e5;background:#4f46e51f}.settings-output{border-color:#d1d5db;background:#0f172a08}.tare-dialog{border-color:#d1d5db;background:#fff}.tare-dialog-current,.tare-dialog-status{border-color:#d1d5db;background:#0f172a08}.save-measurement-dialog{border-color:#d1d5db;background:#fff}.save-measurement-field input,.save-measurement-field textarea{border-color:#d1d5db;background:#0f172a08}}
