:root{font-family:Segoe UI Variable,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;color:var(--ink);background:var(--canvas);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5;--canvas: #f5f6f1;--surface: #fff;--surface-soft: #f7f9f5;--ink: #203c30;--muted: #596b60;--border: #d9e2d8;--green: #245b40;--green-hover: #19472f;--green-soft: #edf4ea;--focus: #38784f;--focus-halo: #38784f26;--danger: #a43732;--danger-soft: #fff2ef;--radius: 12px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent;transition:background-color .15s,border-color .15s,box-shadow .15s}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}button:focus-visible,a:focus-visible,[tabindex="0"]:focus-visible{outline:2px solid var(--focus);outline-offset:3px}h1:focus{outline:none}svg{width:100%;height:100%}.ui-icon{width:19px;height:19px;flex:0 0 19px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ui-input:not([type=checkbox]):not([type=file]),.ui-select{display:block;width:100%;min-width:0;min-height:48px;padding:11px 13px;border:1px solid #b9c8ba;border-radius:9px;color:var(--ink);background:var(--surface);font-size:16px;font-weight:400;line-height:1.5;outline:none;scroll-margin-block:100px}.ui-input::placeholder{color:#67786d;opacity:1}.ui-input:not([type=checkbox]):not([type=file]):focus,.ui-select:focus{border-color:var(--focus);box-shadow:0 0 0 3px var(--focus-halo)}.ui-input:disabled,.ui-select:disabled{background:#edf0e9;color:var(--muted);cursor:not-allowed}.ui-input[aria-invalid=true],.ui-select[aria-invalid=true]{border-color:var(--danger)}.ui-input[type=checkbox]{accent-color:var(--green)}.ui-input[type=checkbox]:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.ui-input[inputmode=decimal]{font-variant-numeric:tabular-nums}.primary,.secondary,.back{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:9px;min-height:46px;padding:11px 17px;font-size:14px;font-weight:600;line-height:1.4;text-decoration:none;border:1px solid transparent}.primary{color:#fff;background:var(--green);box-shadow:0 2px 3px #153d2110}.secondary,.back{color:var(--green);background:var(--surface);border-color:#bdcdbd}.danger-button{color:var(--danger);border-color:#dfbcb6}.back{margin:0 0 22px}.back svg,.share-trigger svg{width:20px;height:20px;flex-shrink:0}.back-mobile{display:none}.ui-button:active:not(:disabled){filter:brightness(.96)}@media(hover:hover){.primary:hover:not(:disabled){background:var(--green-hover)}.secondary:hover:not(:disabled),.back:hover:not(:disabled){background:var(--green-soft);border-color:#89a48d}.danger-button:hover:not(:disabled){background:var(--danger-soft);border-color:#c58b82}}.app-header{background:var(--surface);border-bottom:1px solid var(--border);padding:22px 28px}.header-inner{max-width:1100px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;font-size:23px;letter-spacing:-.6px}.brand b{font-weight:650}.brand small{display:block;font-size:10px;font-weight:600;letter-spacing:1.6px;margin-top:2px;color:var(--muted)}.brand-icon{display:block;width:44px;height:44px;padding:8px;border-radius:13px;background:var(--green);color:#e9f1d5}.header-status{display:flex;flex-direction:column;align-items:flex-end;gap:5px;text-align:right}.header-status small{font-size:11px;color:var(--muted)}.connection{display:inline-flex;gap:7px;align-items:center;font-size:12px;font-weight:600;color:var(--green);background:var(--green-soft);padding:5px 10px;border-radius:20px}.connection i,.status-dot{width:7px;height:7px;display:inline-block;background:#4b8050;border-radius:50%;flex-shrink:0}.disconnected{background:#faf0dc;color:#795624}.disconnected i{background:#996924}main{max-width:1156px;margin:auto;padding:0 28px}.installed-main{padding-top:36px}.offline-bar{margin:24px 0 30px;display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted)}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:26px}.eyebrow{font-size:11px;letter-spacing:1.6px;color:var(--green);font-weight:650;margin:0 0 8px}h1{font-size:clamp(28px,3.5vw,36px);font-weight:650;letter-spacing:-1px;line-height:1.2;margin:0;overflow-wrap:anywhere}.subtitle{color:var(--muted);font-size:14px;margin:10px 0 0;line-height:1.6}.page-actions{display:flex;align-items:flex-end;flex-direction:column;gap:10px;flex-shrink:0}.backup-toolbar{display:flex;gap:8px;flex-wrap:wrap}.backup-toolbar .secondary{min-height:44px;padding:9px 12px;font-size:13px}.app-footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;border-top:1px solid var(--border);margin:36px 0 24px;padding-top:20px;color:var(--muted);font-size:12px}.experiment-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}.experiment-topbar .back{margin:0}.list-panel,.form-panel{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 3px 16px #203c3006;overflow:hidden}.form-panel{padding:28px}.list-toolbar{padding:20px 24px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--border);color:var(--muted);font-size:13px}.list-toolbar strong{color:var(--green);font-size:16px;font-variant-numeric:tabular-nums;margin-right:4px}.list-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0}.list-actions .search{min-width:0}.list-actions>.ui-button{flex-shrink:0;min-height:48px}.search{display:flex;align-items:center;gap:10px;background:var(--surface-soft);border:1px solid #c5d1c4;border-radius:10px;padding:0 13px;width:350px;max-width:100%;color:var(--muted);transition:border-color .15s,box-shadow .15s}.search:focus-within{border-color:var(--focus);box-shadow:0 0 0 3px var(--focus-halo);background:var(--surface)}.search .ui-input[type=search],.search .ui-input[type=search]:focus{border:0;border-radius:0;background:transparent;padding:11px 0;min-height:46px;font-size:16px;box-shadow:none;outline:none}.experiment-list{padding:8px 12px}.experiment-card{display:flex;align-items:center;width:100%;text-align:left;border:1px solid transparent;border-bottom-color:#e7ece3;background:var(--surface);padding:22px 12px;gap:16px;color:inherit;border-radius:10px}.experiment-card:last-child{border-bottom-color:transparent}.experiment-card:focus-visible{outline-offset:-2px}@media(hover:hover){.experiment-card:hover{background:var(--surface-soft);border-color:var(--border)}}.card-icon{width:44px;height:48px;padding:11px;border-radius:12px;background:var(--green-soft);color:var(--green);flex-shrink:0}.card-main{flex:1;min-width:0}.card-title{display:block;font-size:17px;font-weight:650;overflow-wrap:anywhere}.card-place{display:block;color:var(--muted);font-size:14px;line-height:1.6;margin-top:5px;overflow-wrap:anywhere}.card-place span{margin:0 5px}.card-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:#45614b;font-size:12px;margin-top:10px;overflow-wrap:anywhere}.card-tags span{background:var(--green-soft);padding:3px 8px;border-radius:6px}.card-end{display:flex;align-items:center;gap:20px;color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.empty-state{text-align:center;padding:56px 22px 62px}.empty-icon{display:block;width:66px;height:66px;margin:0 auto 20px;background:var(--green-soft);border-radius:20px;padding:16px;color:var(--green)}.empty-state h2{font-size:22px;font-weight:600;letter-spacing:-.4px;margin:0 0 12px}.empty-state p{max-width:400px;margin:0 auto 25px;line-height:1.7;font-size:14px;color:var(--muted)}.empty-text{padding:32px 16px;text-align:center;color:var(--muted)}.section-heading{display:flex;align-items:center;gap:14px;margin-bottom:26px}.section-number{font-size:12px;color:var(--green);border:1px solid var(--border);background:var(--green-soft);padding:9px 11px;border-radius:9px}.section-heading h2{font-size:18px;font-weight:600;margin:0}.section-heading p{color:var(--muted);font-size:13px;margin:4px 0 0}.form-grid,.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.full-width{grid-column:1 / -1}.form-grid label{font-size:14px;color:var(--ink);font-weight:600}.form-grid .ui-input,.form-grid .ui-select{margin-top:8px}.form-footer{display:flex;align-items:center;justify-content:flex-end;gap:20px;border-top:1px solid var(--border);margin-top:28px;padding-top:22px}.form-footer>div{display:flex;gap:10px;flex-wrap:wrap}.form-footer p{color:var(--muted);font-size:13px;line-height:1.6}.detail-grid{margin:0}.detail-grid>div{padding-bottom:20px;border-bottom:1px solid #e7ece3}.detail-grid dt{color:var(--muted);font-size:13px}.detail-grid dd{font-size:17px;font-weight:550;margin:7px 0 0;overflow-wrap:anywhere}.detail-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:20px}.install-panel{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:19px 22px;margin-bottom:28px;background:var(--green-soft);border:1px solid #cfdfc9;border-radius:var(--radius)}.install-panel strong{font-size:15px;font-weight:650}.install-panel p{font-size:13px;color:var(--muted);line-height:1.6;margin:5px 0 0}.install-panel>.secondary{flex-shrink:0}.install-dialog{color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:28px;max-width:460px;width:calc(100% - 32px);max-height:85dvh;overflow:auto;box-shadow:0 20px 80px #0b281c33}.install-dialog[open]{animation:appear .16s ease-out}.install-dialog::backdrop{background:#142d236b}.install-dialog h2{font-size:23px;font-weight:650;letter-spacing:-.5px;margin:0 0 18px}.install-dialog p,.install-dialog li{font-size:14px;line-height:1.65}.install-dialog ol{padding-left:22px}.install-dialog li{margin-bottom:10px}.install-dialog .primary{width:100%;margin-top:10px}.export-dialog-actions{display:flex;flex-direction:column;gap:12px}.export-filename{overflow-wrap:anywhere}.export-format-options{display:grid;gap:12px}.export-format{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;background:var(--surface-soft);border:1px solid #c4d3c1;border-radius:var(--radius);padding:18px;color:var(--ink);min-height:76px}.export-format strong{font-size:16px;font-weight:600}.export-format span{font-size:13px;line-height:1.5;color:var(--muted)}@media(hover:hover){.export-format:hover:not(:disabled){background:var(--green-soft);border-color:var(--green)}}.export-close{width:100%;margin-top:16px}.message{background:var(--green-soft);border:1px solid #cfdfc9;border-radius:10px;padding:14px 18px;font-size:14px;display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.message button{background:none;border:0;color:var(--green);min-height:44px;padding:8px;font-weight:600}.text-button{text-decoration:underline;text-underline-offset:3px}.error{color:var(--danger);background:var(--danger-soft);border:1px solid #edc9c2;padding:12px 14px;border-radius:9px;font-size:14px;line-height:1.6}.toast-container{position:fixed;top:calc(18px + env(safe-area-inset-top));right:18px;z-index:1000;width:min(420px,calc(100% - 36px));pointer-events:none}.toast{display:flex;align-items:flex-start;gap:12px;padding:16px;border-radius:14px;background:#fff;border:1px solid #b5cfbc;box-shadow:0 8px 32px #17332520;pointer-events:auto;color:var(--green);animation:appear .16s ease-out}.toast-error{border-color:#d7a49a;color:var(--danger)}.toast-info{border-color:#b8cbd1;color:#2b5964}.toast-icon{display:grid;place-items:center;border-radius:50%;background:var(--green-soft);width:28px;height:28px;flex-shrink:0;font-weight:700}.toast-error .toast-icon{background:var(--danger-soft)}.toast-info .toast-icon{background:#edf4f6}.toast strong{font-size:14px}.toast p{font-size:14px;line-height:1.6;margin:4px 0 0;overflow-wrap:anywhere}.toast button{margin-left:auto;background:none;border:0;color:inherit;font-size:26px;min-width:44px;min-height:44px;flex-shrink:0}.backup-dialog{max-width:560px}.backup-dialog>.secondary{margin-top:10px;margin-right:6px}.backup-list{display:grid;gap:10px;max-height:260px;overflow:auto}.backup-list strong{overflow-wrap:anywhere}.backup-selected{border:2px solid var(--green);background:var(--green-soft)}.backup-warning{padding:16px;border:1px solid #dbc795;background:#fff9ea;border-radius:var(--radius);margin:16px 0}.backup-warning p{margin-top:0}.backup-confirm{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.5;margin-top:16px}.backup-confirm input{flex-shrink:0;width:22px;height:22px;margin:0}.backup-name{display:block;margin:20px 0 10px;font-size:14px;font-weight:600}.backup-name input{margin-top:8px}.backup-file-actions{display:grid;gap:10px;margin:14px 0}.backup-file-actions small{line-height:1.5;color:var(--muted)}@keyframes appear{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media(max-width:700px){.app-header{padding:18px}.brand{font-size:21px;gap:9px}.brand-icon{width:38px;height:38px;padding:7px}.brand small{font-size:9px;letter-spacing:1px}.header-status{max-width:132px}.header-status small{font-size:10px;line-height:1.4}main{padding:0 16px}.installed-main{padding-top:28px}.offline-bar{margin:20px 0 26px}.page-heading{flex-direction:column;align-items:stretch;gap:20px}.page-actions{align-items:stretch}.backup-toolbar{display:grid;grid-template-columns:1fr 1fr}.list-toolbar{padding:18px;flex-direction:column;align-items:stretch;gap:14px}.list-actions{flex-direction:column;align-items:stretch}.search{width:100%}.experiment-list{padding:4px 8px}.experiment-card{gap:10px;padding:20px 10px}.card-icon{display:none}.card-end{gap:10px;font-size:12px;flex-direction:column;align-items:flex-end}.card-title{font-size:16px}.empty-state{padding:40px 18px}.empty-state h2{font-size:21px}.form-panel{padding:22px 18px}.form-grid,.detail-grid{grid-template-columns:1fr;gap:22px}.form-footer>div{width:100%;display:flex;flex-direction:column-reverse}.form-footer button{width:100%}.install-panel{flex-direction:column;align-items:stretch;padding:18px;gap:14px}.install-dialog{padding:22px}.back-desktop{display:none}.back-mobile{display:inline}.share-trigger{padding:10px 12px}.app-footer{font-size:11px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(forced-colors:active){.ui-input:focus-visible,.ui-select:focus-visible,.search:focus-within{outline:2px solid Highlight;outline-offset:2px}.search .ui-input:focus-visible{outline:none}}.legal-links{display:flex;flex-wrap:wrap;gap:12px 20px}.legal-links a{color:var(--muted);text-underline-offset:3px}.legal-links a:hover{color:var(--green)}.experiment-sections{display:flex;gap:6px;margin-bottom:24px;padding:5px;border:1px solid var(--border);background:#eaf0e5;border-radius:12px;width:fit-content;max-width:100%}.experiment-sections button{border:1px solid transparent;background:transparent;color:#45604b;min-height:46px;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600}.experiment-sections button.selected{background:var(--surface);border-color:#ced9c8;color:var(--green);box-shadow:0 2px 4px #163b2410}.transbordos-heading,.data-toolbar{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-bottom:24px}.input-help,.transbordo-count{font-size:13px;line-height:1.65;color:var(--muted)}.transbordo-count{margin-top:0}.transbordo-form{border:1px solid var(--border);border-radius:var(--radius);padding:24px;background:var(--surface-soft);margin-bottom:26px}.transbordo-form h3{margin:0 0 24px;font-weight:600;font-size:19px;letter-spacing:-.3px}.transbordo-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.transbordo-card{border:1px solid var(--border);border-radius:var(--radius);padding:22px;min-width:0;background:var(--surface)}.transbordo-card-heading h3{margin:0 0 6px;font-size:18px;font-weight:650;overflow-wrap:anywhere}.transbordo-card-heading span{font-size:12px;color:var(--muted)}.transbordo-card dl{display:flex;flex-wrap:wrap;gap:24px;margin:20px 0 0;padding-top:18px;border-top:1px solid var(--border)}.transbordo-card dt{font-size:13px;color:var(--muted)}.transbordo-card dd{margin:5px 0 0;font-size:23px;font-weight:600;letter-spacing:-.5px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.transbordo-card dd small{font-size:13px;font-weight:400;color:var(--muted)}.weigh-box{border:1px solid #ccd9c7;background:var(--surface);border-radius:var(--radius);padding:20px}.weigh-box h4{margin:0 0 12px;font-size:15px;font-weight:650}.weigh-box p{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}.weigh-box p:last-child{padding-top:12px;border-top:1px solid var(--border);margin-bottom:0}.weigh-box strong{color:var(--ink)}.tch-result{background:var(--green-soft);border:1px solid #cfdfc9;border-radius:var(--radius);padding:20px;margin-top:20px;font-size:17px;color:var(--green)}.tch-result strong{font-size:23px;font-variant-numeric:tabular-nums}.tch-result small{display:block;color:#49634b;font-size:13px;margin-top:6px}.data-group{margin-top:30px}.data-group>h3{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:18px;font-weight:650;margin:0 0 12px}.data-group>h3:before{content:"";width:4px;height:20px;border-radius:4px;background:var(--green)}.data-group-control>h3:before{background:#68798b}.data-count{font-size:12px;color:var(--muted);background:var(--surface-soft);border:1px solid var(--border);border-radius:20px;padding:3px 9px;font-weight:500}.table-hint{display:none;font-size:12px;color:var(--muted)}.data-table-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);max-width:100%;scrollbar-color:#a6b7a2 #f3f6ef;scrollbar-width:thin}.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:14px;white-space:nowrap;font-variant-numeric:tabular-nums}.data-table th,.data-table td{padding:13px 15px;text-align:right;border-bottom:1px solid #e1e8dc;vertical-align:middle}.data-table thead th{background:#edf3e7;font-size:12px;font-weight:650;color:#405c42}.data-group-control thead th{background:#edf1f4;color:#435765}.data-table thead th:first-child{position:sticky;left:0;z-index:2;text-align:left}.data-table .fleet-cell{text-align:left;position:sticky;left:0;background:var(--surface);min-width:100px;box-shadow:1px 0 var(--border);z-index:1}.data-table .fleet-cell small{display:block;font-weight:400;font-size:11px;color:var(--muted);margin-top:4px}.data-table .alternate td,.data-table .alternate .fleet-cell{background:#f7f9f4}.data-table .tch-cell{font-weight:700;color:var(--green)}.data-table .secondary{min-height:44px;padding:9px 12px;font-size:13px}@media(max-width:1000px){.table-hint{display:block}}@media(max-width:700px){.experiment-sections{width:100%}.experiment-sections button{flex:1;padding:10px 6px;font-size:13px}.transbordos-heading,.data-toolbar{flex-direction:column;align-items:stretch}.transbordo-list{grid-template-columns:1fr}.transbordo-form{padding:20px 14px}.transbordo-card{padding:18px}.weigh-box{padding:16px}}
