.fio[data-v-432a8391]{margin:0 0 4px}.sensor-poll[data-v-ebc58145]{margin-top:12px}.sp-head[data-v-ebc58145]{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;justify-content:space-between}.sp-fix[data-v-ebc58145]{margin-left:8px}.server-check[data-v-1ce9c057]{margin-top:12px}.sc-head[data-v-1ce9c057]{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;justify-content:space-between}.sc-fix[data-v-1ce9c057]{margin-top:4px;display:block}.sc-sim[data-v-1ce9c057]{margin-left:6px}.sc-note[data-v-1ce9c057]{margin:4px 0 0}.small-note[data-v-1ce9c057]{font-size:.85em}.tools[data-v-4ac3596e]{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.hint[data-v-4ac3596e]{margin:4px 0 8px}.grid-table[data-v-4ac3596e]{width:100%;border-collapse:collapse}.grid-table th[data-v-4ac3596e],.grid-table td[data-v-4ac3596e]{text-align:left;padding:4px 8px;border-bottom:1px solid var(--border, #ddd);vertical-align:top}.grid-table .num[data-v-4ac3596e]{text-align:right;white-space:nowrap}.group td[data-v-4ac3596e]{font-weight:600;padding-top:12px}tr.hidden td[data-v-4ac3596e]{opacity:.55}tr.clickable[data-v-4ac3596e]{cursor:pointer}tr.clickable:hover td[data-v-4ac3596e],tr.active td[data-v-4ac3596e]{background:var(--hover, rgba(0, 0, 0, .04))}.edit[data-v-4ac3596e]{border:1px solid var(--border, #ddd);border-radius:8px;padding:12px;margin-bottom:12px;position:sticky;top:0;z-index:10;background:var(--card);box-shadow:0 6px 12px -8px #00000040}.edit h3[data-v-4ac3596e]{margin:0 0 8px}.grid[data-v-4ac3596e]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.row[data-v-4ac3596e]{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;align-items:flex-end}.row label[data-v-4ac3596e]{display:flex;flex-direction:column;gap:2px}.row .grow[data-v-4ac3596e]{flex:1 1 180px}.row .short[data-v-4ac3596e]{flex:0 0 90px}.row .short input[data-v-4ac3596e]{width:100%;min-width:0}.row .check[data-v-4ac3596e]{flex-direction:row;align-items:center;gap:6px;min-height:36px;white-space:nowrap}.grid label[data-v-4ac3596e]{display:flex;flex-direction:column;gap:2px}.grid .wide[data-v-4ac3596e]{grid-column:1 / -1}.grid .check[data-v-4ac3596e],.tools .check[data-v-4ac3596e]{flex-direction:row;align-items:center;gap:6px}.mats[data-v-4ac3596e]{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0}.mat[data-v-4ac3596e]{border:1px solid var(--border, #ddd);border-radius:6px;padding:2px 6px}.qty[data-v-4ac3596e]{width:4em}.actions[data-v-4ac3596e]{display:flex;gap:8px}.backups .inline[data-v-7097405f]{display:flex;gap:8px;flex-wrap:wrap}.backups .inline input[data-v-7097405f]{flex:1 1 320px}.backups .counts[data-v-7097405f]{font-size:.8rem}.backups .row-actions[data-v-7097405f]{white-space:nowrap;display:flex;gap:6px}.backups .cmd[data-v-7097405f]{margin:8px 0;padding:10px 12px;background:color-mix(in srgb,var(--accent) 6%,transparent);border-radius:8px;overflow-x:auto;-webkit-user-select:all;user-select:all}.backups td input[type=checkbox][data-v-7097405f]{width:16px;height:16px;min-height:0;accent-color:var(--accent)}.firmware .clickable[data-v-416ebeaa]{cursor:pointer}.firmware .current[data-v-416ebeaa]{background:color-mix(in srgb,var(--accent) 8%,transparent)}.firmware details[data-v-416ebeaa]{margin-top:8px}.firmware summary[data-v-416ebeaa]{cursor:pointer;font-weight:600}.firmware .nested[data-v-416ebeaa]{margin-left:16px}.firmware .skip-list[data-v-416ebeaa]{display:flex;flex-wrap:wrap;gap:6px 18px;margin:6px 0}.firmware .exclude-text[data-v-416ebeaa]{width:100%;max-width:520px;font-family:ui-monospace,monospace}.firmware ul[data-v-416ebeaa]{margin:6px 0 0;padding-left:20px;max-height:360px;overflow-y:auto}.shipments .clickable[data-v-89023fa3]{cursor:pointer}.shipments .doc[data-v-89023fa3]{margin-top:14px}.shipments h3[data-v-89023fa3]{margin:0 0 6px;font-size:1rem}.shipments details[data-v-89023fa3]{margin-top:8px}.shipments summary[data-v-89023fa3]{cursor:pointer;font-weight:600}.shipments summary.bad[data-v-89023fa3]{color:var(--bad)}.shipments ul[data-v-89023fa3]{margin:6px 0 0;padding-left:20px;max-height:360px;overflow-y:auto}.shipments .unknown-row[data-v-89023fa3]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-top:8px}.shipments .unknown-row select.invalid[data-v-89023fa3]{border-color:var(--bad)}.sim-import .clickable[data-v-80a47981]{cursor:pointer}.sim-import details[data-v-80a47981]{margin-top:8px}.sim-import summary[data-v-80a47981]{cursor:pointer;font-weight:600}.sim-import summary.bad[data-v-80a47981]{color:var(--bad)}.sim-import ul[data-v-80a47981]{margin:6px 0 0;padding-left:20px;max-height:360px;overflow-y:auto}.sim-import .row-no[data-v-80a47981]{margin-right:6px}.sim-import li .check-inline[data-v-80a47981]{display:inline-flex;flex-direction:row;align-items:center;gap:4px;white-space:nowrap;margin-right:8px;font-size:.9rem}.sim-import li .check-inline input[data-v-80a47981]{width:auto;min-height:0;margin:0}.sim-import select.invalid[data-v-80a47981]{border-color:var(--bad)}:root{--bg: #f3f5f8;--card: #ffffff;--text: #17202b;--muted: #667085;--border: #d8dee6;--accent: #1f5fa8;--accent-text: #ffffff;--ok: #157a3c;--bad: #b42318;--warn: #9a6200;--warn-bg: #fff6e0;--bad-bg: #fdecea;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #11151b;--card: #1a2029;--text: #e7ebf0;--muted: #98a2b3;--border: #2d3643;--accent: #5b9be0;--accent-text: #0b1220;--ok: #4cc27a;--bad: #f07a6e;--warn: #e8b64c;--warn-bg: #2e2612;--bad-bg: #331c1a}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-text-size-adjust:100%}button,input{font:inherit;color:inherit}.topbar{display:flex;align-items:center;justify-content:space-between;padding:6px 16px;padding-top:max(6px,env(safe-area-inset-top));background:var(--card);border-bottom:1px solid var(--border)}.brand{font-weight:600;color:inherit;text-decoration:none}.user{position:relative}.topbar button.link{padding:2px 0}.add-menu{position:relative}.add-menu .menu{left:0;right:auto;min-width:240px}.menu button.menu-sep{border-top:2px solid var(--border)}.menu{position:absolute;right:0;top:calc(100% + 6px);z-index:10;min-width:240px;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #00000026;display:flex;flex-direction:column;overflow:hidden}.menu button{background:none;border:0;padding:12px 14px;text-align:left;cursor:pointer}.menu button+button{border-top:1px solid var(--border)}.link{background:none;border:0;color:var(--accent);cursor:pointer;padding:6px 0}.page{max-width:560px;margin:0 auto;padding:16px;padding-bottom:max(16px,env(safe-area-inset-bottom))}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;margin-top:12px}.card.narrow{max-width:380px;margin:24px auto 0;display:flex;flex-direction:column;gap:14px}.card.dim{opacity:.55;transition:opacity .15s}h1,h2{margin:0;font-size:1.25rem}label{display:flex;flex-direction:column;gap:6px;font-size:.9rem;color:var(--muted)}label.check{flex-direction:row;align-items:center;gap:10px;color:var(--text);font-size:1rem}label.check input{width:20px;height:20px}input:not([type=checkbox]){width:100%;min-height:48px;padding:10px 12px;font-size:1.05rem;background:var(--bg);border:1px solid var(--border);border-radius:10px;color:var(--text)}input:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.primary{min-height:48px;padding:0 20px;border:0;border-radius:10px;cursor:pointer;background:var(--accent);color:var(--accent-text);font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}button:disabled{opacity:.6;cursor:default}.query{display:flex;gap:8px}.device-input{font-size:1.25rem!important;letter-spacing:.04em;font-variant-numeric:tabular-nums}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.chip{border:1px solid var(--border);background:var(--card);border-radius:999px;padding:6px 14px;min-height:36px;cursor:pointer;font-variant-numeric:tabular-nums}.alert{margin:12px 0 0;padding:10px 12px;border-radius:10px}.alert.bad{background:var(--bad-bg);color:var(--bad)}.alert.warn{background:var(--warn-bg);color:var(--warn)}.card .alert{margin-top:12px}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}.muted{color:var(--muted);font-size:.9rem}.fields{margin:12px 0 0;display:grid;grid-template-columns:1fr}.fields dt{color:var(--muted);font-size:.85rem;padding-top:10px}.fields dd{margin:2px 0 0;padding-bottom:10px;border-bottom:1px solid var(--border);font-size:1.05rem}.fields dd:last-of-type{border-bottom:0}.fields .sub{display:block;font-size:.85rem;color:var(--muted)}.ok{color:var(--ok);font-weight:600}.bad{color:var(--bad);font-weight:600}.warn{color:var(--warn)}.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.95rem;word-break:break-all}.sim{margin-top:8px;border-top:1px solid var(--border);padding-top:8px}.sim summary{cursor:pointer;padding:8px 0;font-weight:600}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:520px){.fields{grid-template-columns:minmax(180px,45%) 1fr;column-gap:12px}.fields dt,.fields dd{padding:10px 0;border-bottom:1px solid var(--border);margin:0}.fields dt:nth-last-of-type(1),.fields dd:last-of-type{border-bottom:0}}.suggest{margin-top:10px;display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px}.suggest p{grid-column:1 / -1;margin:4px 0 0}.suggest-item{min-height:44px;border:1px solid var(--border);background:var(--card);border-radius:10px;cursor:pointer;font-size:1.05rem;font-variant-numeric:tabular-nums;letter-spacing:.03em}.suggest-item mark{background:none;color:var(--accent);font-weight:700}.notice{margin:0;padding:10px 16px;text-align:center;background:var(--card);border-bottom:1px solid var(--border);color:var(--muted)}h1{margin-bottom:4px}button.small{min-height:38px;padding:0 12px;border-radius:8px;cursor:pointer;font-size:.9rem;border:1px solid var(--border);background:var(--card);color:var(--text)}button.primary.small{border:0;background:var(--accent);color:var(--accent-text)}button.danger{color:var(--bad);border-color:var(--bad)}button.row-x{min-height:0;padding:0 6px;line-height:1.4;border-radius:6px;cursor:pointer;border:1px solid transparent;background:none;color:var(--muted)}button.row-x:hover:not(:disabled){color:var(--bad);border-color:var(--bad)}select{width:100%;min-height:48px;padding:10px 12px;font:inherit;font-size:1rem;background:var(--bg);border:1px solid var(--border);border-radius:10px;color:var(--text)}.form-grid{display:flex;flex-direction:column;gap:12px}.user-card.inactive{opacity:.7}.user-card .meta{margin:6px 0 0}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.inline{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.inline input{flex:1 1 200px;min-height:38px!important}.badge{font-size:.8rem;padding:3px 10px;border-radius:999px;border:1px solid var(--border);color:var(--muted)}.badge.admin,.badge.manager{color:var(--accent);border-color:var(--accent)}.alert.ok-bg{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok)}.icon-btn{flex-direction:column;gap:2px;padding:0 12px;min-width:72px;font-size:.8rem}.icon-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.icon-btn .spinner{width:22px;height:22px}.map-link{color:var(--accent);margin-left:6px;font-family:system-ui,sans-serif;font-size:.9rem}.level{display:flex;align-items:center;gap:10px}.bars{display:inline-flex;gap:3px}.bars i{width:14px;height:10px;border-radius:2px;background:var(--border)}.bars.tone-ok i.on{background:var(--ok)}.bars.tone-warn i.on{background:var(--warn)}.flags{display:flex;flex-wrap:wrap;gap:6px}.flag{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.9rem;padding:2px 10px;border-radius:6px;border:1px solid var(--border);color:var(--muted)}.flag.on{color:var(--text);border-color:var(--text);font-weight:600}.flag.input{padding:2px 7px}.sensor{display:block}.rows{width:100%;border-collapse:collapse;font-size:.85rem}.rows td{padding:5px 4px;border-top:1px solid var(--border);vertical-align:top}.rows .t{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--muted)}.rows .kind{color:var(--muted)}.plate-line{margin:4px 0 0;font-weight:600}.mode-toggle{display:block;margin-top:6px;font-size:.9rem}.plate-hits{margin-top:10px;display:flex;flex-direction:column;gap:6px}.plate-hits p{margin:4px 0 0}.plate-hit{min-height:44px;border:1px solid var(--border);background:var(--card);border-radius:10px;cursor:pointer;text-align:left;padding:8px 12px}.plate-hit .serial{font-variant-numeric:tabular-nums;font-weight:600;margin-right:6px}.schema-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;border-top:1px solid var(--border)}.schema-row .info{min-width:0}.schema-row .name{overflow-wrap:anywhere}.progress{height:8px;background:var(--border);border-radius:4px;overflow:hidden;margin-top:8px}.progress i{display:block;height:100%;background:var(--accent)}.nav{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}.nav-link{color:var(--muted);text-decoration:none}.nav-link.router-link-active{color:var(--accent);font-weight:600}.page.medium{max-width:720px}.page.wide{max-width:none;padding:5px 24px 16px}.acc h1{margin:0}.acc h2{font-size:1.05rem;display:flex;gap:8px;align-items:baseline}.acc-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:4px 0 8px}.filters{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 4px}.filters input,.filters select{min-height:32px!important;padding:4px 10px;font-size:.95rem;border-radius:8px;width:auto}.acc-head .search{flex:1 1 360px;max-width:720px;margin-left:16px;min-height:32px!important;padding:4px 10px;font-size:.95rem;border-radius:8px}.filters select{flex:0 1 200px}.chip-x{border-color:var(--accent)!important;color:var(--accent)!important}.table-wrap{overflow-x:auto;margin-top:8px;background:var(--card);border:1px solid var(--border);border-radius:10px;transition:opacity .15s}.card .table-wrap{border:0;border-radius:0;margin-top:8px}.table-wrap.dim{opacity:.55}.grid{width:100%;border-collapse:collapse;font-size:.9rem}.grid th,.grid td{padding:5px 10px;text-align:left;vertical-align:top;border-bottom:1px solid var(--border)}.grid th{position:sticky;top:0;background:var(--card);color:var(--muted);font-weight:600;font-size:.8rem;white-space:nowrap;-webkit-user-select:none;user-select:none}.grid th.sortable{cursor:pointer}.grid th.sortable:hover{color:var(--text)}.grid .arrow{margin-left:4px;font-size:.7rem}.grid tbody tr:last-child td{border-bottom:0}.grid tr.row{cursor:pointer}.grid tr.row:hover td{background:color-mix(in srgb,var(--accent) 7%,transparent)}.grid a{color:var(--accent);text-decoration:none}.grid a.plain{color:inherit}.grid a.plain:hover,.grid a:hover{text-decoration:underline}.grid .num{text-align:right;font-variant-numeric:tabular-nums}.grid .empty{text-align:center;color:var(--muted);padding:24px}.grid .sub,.grid .sub-line{display:block;font-size:.8rem;color:var(--muted)}.grid .sub-line{color:inherit;font-size:inherit}.nowrap{white-space:nowrap}.grid .center{text-align:center}.grid .note-cell{max-width:260px;font-size:.85rem;color:var(--muted);overflow-wrap:anywhere}.acc .alert.warn a{color:inherit}input.flag-box{width:16px;height:16px;margin:0;opacity:1;accent-color:var(--accent);cursor:default}.strong{font-weight:600}.mono-num{font-variant-numeric:tabular-nums;letter-spacing:.02em}.st{display:inline-block;white-space:nowrap;font-size:.85rem}.st.c{padding:1px 8px;border-left:4px solid var(--st);border-radius:4px;background:color-mix(in srgb,var(--st) 25%,transparent)}.grid tr.gone td{opacity:.6}.tag-gone{display:inline-block;margin-left:6px;padding:0 6px;border-radius:4px;font-size:.75rem;font-weight:400;color:var(--muted);border:1px solid var(--border);white-space:nowrap;vertical-align:middle}.filters .check-inline{display:inline-flex;flex-direction:row;align-items:center;gap:6px;font-size:.9rem;white-space:nowrap}.filters .check-inline input{width:auto;min-height:0!important}.imported-note{margin:4px 0 8px}.st.big{font-size:.95rem}.st.big.c{padding:3px 10px}.pager{display:flex;align-items:center;justify-content:center;gap:12px;margin:12px 0}.client-line{margin:0 0 4px}.client-line a,.small-link{color:var(--accent)}.small-link{font-size:.9rem;text-decoration:none}.note-card{background:var(--warn-bg)}.editor .card:not(.wide2) label.full textarea{min-height:14em}.note-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0}.note{white-space:pre-wrap;background:var(--warn-bg);color:var(--text);padding:8px 12px;border-radius:8px;margin:12px 0 0}.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0 12px;align-items:start}.cols .card{margin-top:12px}.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;margin:10px 0 0;font-size:.95rem}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.kv.conn{grid-template-columns:max-content 1fr max-content 1fr}.history{list-style:none;margin:8px 0 0;padding:0;font-size:.9rem}.history>li{padding:8px 0;border-top:1px solid var(--border)}.history>li:first-child{border-top:0}.h-head{display:flex;gap:10px;flex-wrap:wrap;align-items:baseline}.changes{margin:4px 0 0;padding-left:20px}.head-actions{display:flex;align-items:center;gap:10px}.sensor-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 12px;align-items:start}.calib{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start}.calib-table{flex:0 0 auto;max-height:420px;overflow-y:auto}.calib-chart{flex:1 1 360px;max-width:560px;margin:8px 0 0}.calib-chart svg{width:100%;height:auto;display:block}.calib-chart figcaption{margin-top:4px;font-size:.85rem}h2.calib-changed{color:var(--accent)}.calib-mark{margin-left:6px;font-size:.75rem;font-weight:600;text-transform:none}.chart-bg{fill:var(--bg)}.chart-line{fill:none;stroke:var(--accent);stroke-width:2}.chart-dot{fill:var(--card);stroke:var(--accent);stroke-width:1.5}.editor .cols{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.editor .card.wide2{grid-column:1 / -1}.editor.sensor-edit .cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.6fr)}.side-slot{display:contents}.edit-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:10px}.edit-grid.two{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.edit-grid label,.edit-bar label{gap:4px;font-size:.85rem}.edit-grid label.full{grid-column:1 / -1}.editor input:not([type=checkbox]),.editor select,.editor textarea{min-height:36px;padding:6px 10px;font-size:.95rem;border-radius:8px}.editor textarea{width:100%;font:inherit;font-size:.95rem;resize:vertical;background:var(--bg);border:1px solid var(--border);color:var(--text)}.editor label.changed>span{color:var(--accent);font-weight:600}.editor .invalid{border-color:var(--bad)!important}.editor .req{color:var(--bad);margin-left:2px}.editor small{font-size:.8rem}.flag-edit{width:20px;height:20px;accent-color:var(--accent)}.acc-head.edit-sticky{position:sticky;top:0;z-index:15;margin:0 -24px;padding:4px 24px 10px;background:var(--bg);border-bottom:1px solid var(--border);box-shadow:0 6px 12px -8px #0003}.edit-head-actions{margin-left:auto;flex:1 1 560px;min-width:0}.edit-controls{display:flex;align-items:center;justify-content:flex-end;gap:12px}.edit-controls .edit-comment{flex:1 1 260px;min-width:0;min-height:36px!important;padding:6px 10px;font-size:.9rem;border-radius:8px}.edit-controls .edit-comment.invalid{border-color:var(--bad)}.edit-error{margin:6px 0 0!important;padding:6px 10px!important;font-size:.9rem;display:flex;gap:10px;align-items:center}.sensor-add{margin-top:8px;max-width:640px}.sensor-add .inline-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.sensor-add select{width:auto;min-height:38px;padding:4px 10px}.picker{position:relative}.picker-row{display:flex;gap:6px}.picker-list{position:absolute;left:0;right:0;top:calc(100% + 2px);z-index:20;margin:0;padding:4px 0;list-style:none;background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #00000026;max-height:280px;overflow-y:auto;color:var(--text);font-size:.95rem}.picker-list li{padding:6px 10px;cursor:pointer}.picker-list li:hover,.picker-list li[aria-selected=true]{background:color-mix(in srgb,var(--accent) 10%,transparent)}.acc-head .edit-btn{margin-left:auto}.service .card{max-width:900px}.service.firmware .card{max-width:1100px}.export-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:10px}.export-form label{flex:0 1 260px;font-size:.85rem}.export-form input{min-height:38px!important;padding:6px 10px;font-size:1rem}.export-form .invalid{border-color:var(--bad)}a.button-link{display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border-radius:8px;text-decoration:none;border:1px solid var(--border);background:var(--card);color:var(--text);font-size:.9rem}a.button-link.primary{border:0;background:var(--accent);color:var(--accent-text);font-weight:600}a.button-link.disabled{opacity:.5;pointer-events:none}.service .actions{align-items:center}.drawer-backdrop{position:fixed;inset:0;z-index:40;background:#00000040}.drawer{position:absolute;top:0;right:0;bottom:0;width:min(520px,100%);overflow-y:auto;background:var(--card);border-left:1px solid var(--border);box-shadow:-8px 0 24px #00000026;padding:16px}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:8px;position:sticky;top:-16px;margin:-16px -16px 0;padding:16px;background:var(--card);border-bottom:1px solid var(--border)}.h-comment{margin-top:2px;font-size:.9rem}.colpick{position:relative;margin-left:auto}.colpick>button{min-height:36px}.colpick-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:30;min-width:230px;max-height:70vh;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding:8px 12px;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #00000026}.colpick-menu label.check{font-size:.9rem;gap:8px;padding:3px 0;white-space:nowrap}.colpick-menu label.check input{width:16px;height:16px}.colpick-menu .link{align-self:flex-start;font-size:.9rem;margin-top:4px}.dicts{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:12px;align-items:start}.dict .card-head{align-items:center}.dict-filter{width:200px!important;min-height:34px!important;padding:4px 10px;font-size:.9rem;border-radius:8px}.dict-add,.dict-inline{display:flex;gap:8px;align-items:center;margin-top:10px}.dict-inline{margin-top:0}.dict-add input,.dict-inline input,.dict-inline select{min-height:34px!important;padding:4px 10px;font-size:.9rem;border-radius:8px;flex:1 1 200px;width:auto}.dict-actions .link{font-size:.85rem;padding:0 6px}.danger-link{color:var(--bad)!important}.dict-hint{margin:4px 0 0;font-size:.85rem}.dict-cell-input{min-height:32px!important;padding:3px 8px;font-size:.9rem;border-radius:6px;width:100%}.acc>.dict{margin-top:12px}.filters .filter-client{flex:0 0 300px}.filters .filter-client input{width:100%}.acts-filters .filter-client{flex:0 0 220px}.acts-filters select{flex:0 0 180px;width:180px;min-width:0}.statuses .card-head{align-items:center}.tabs{display:flex;gap:4px;flex-wrap:wrap}.tabs button.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.color-input{width:44px!important;min-width:44px;height:34px;padding:2px!important;flex:0 0 44px!important}.status-edit input:not(.color-input){flex:1 1 180px}.order-btns .link{padding:0 4px;font-size:1rem}.order-btns .link:disabled{opacity:.3}.trans-cell{font-size:.85rem;max-width:420px}.trans-row td{background:color-mix(in srgb,var(--accent) 5%,transparent)}.trans-editor .muted{margin:0 0 8px}.trans-grid{display:grid;grid-template-columns:minmax(220px,max-content) minmax(220px,360px);gap:6px 16px;align-items:center}.trans-grid label.check{font-size:.9rem;gap:8px}.trans-grid label.check input{width:16px;height:16px}.head-main{min-width:96px}.head-new{margin-left:auto}.filters .period{flex-direction:row;align-items:center;gap:6px;font-size:.9rem}.filters .period input{width:150px}.export-btn{margin-left:auto}.export-btn+.head-new{margin-left:0}.acc-head .acts-search{flex:0 0 300px}.act-head h2{margin-top:14px;font-size:1rem}.act-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 14px;margin-top:8px}.act-grid label{gap:4px;font-size:.85rem}.act-grid label.wide{grid-column:span 2}.act-grid label.full{grid-column:1 / -1}.act input:not([type=checkbox]),.act select,.act textarea{min-height:36px!important;padding:6px 10px;font-size:.95rem;border-radius:8px}.act textarea{width:100%;font:inherit;background:var(--bg);border:1px solid var(--border);color:var(--text);resize:vertical}.act .inline-row,.editor .inline-row{display:flex;gap:6px;align-items:center}.act .inline-row input,.editor .inline-row input{flex:1 1 auto;min-width:0}.vehicle-pick{width:auto!important;max-width:100%;margin-top:6px}.status-pick{width:auto!important;min-height:34px!important;padding:4px 8px;font-size:.9rem;border-radius:8px}.works select{min-width:200px;width:100%}.works .price-input{width:90px!important;text-align:right}.works .note-input{min-width:140px}.works .mats{min-width:220px}.works .mat{display:inline-flex;align-items:center;gap:4px;margin:0 8px 4px 0;padding:2px 6px;border:1px solid var(--border);border-radius:6px;font-size:.85rem}.works .qty-input{width:48px!important;min-height:26px!important;padding:2px 4px!important;font-size:.85rem!important}.works .mat-add{width:auto!important;min-width:0!important;font-size:.85rem!important;min-height:28px!important}.work-add{width:auto!important;min-width:360px}.act-note{margin:10px 0 0;font-size:.85rem}.works tr.work-data td{background:color-mix(in srgb,var(--accent) 4%,transparent);border-top:0;padding-top:2px}.data-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px 14px}.data-grid label{gap:3px;font-size:.8rem}.data-grid label.calib-in{grid-column:span 2}.obj-picker .sub{display:block;font-size:.8rem;color:var(--muted)}.obj-picker .badge{margin-left:6px;font-size:.75rem;padding:1px 6px}.picker-empty{position:absolute;z-index:20;margin:2px 0 0;padding:6px 10px;background:var(--card);border:1px solid var(--border);border-radius:8px}.applied{margin:6px 0 0;padding-left:18px;font-size:.85rem}.problems{margin:6px 0;padding-left:18px}.act-preview.bad{border-color:var(--bad)}.act-preview .bad{margin:6px 0 0}.act .table-wrap{overflow:visible}.data-grid .tmc-cell{display:flex;flex-direction:column;gap:3px;font-size:.8rem}.data-grid label.tmc-check{flex-direction:row;align-items:center;gap:6px;min-height:36px;font-size:.9rem}.act-vehicle{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:14px;align-items:stretch}.act-vehicle-main .vehicle-pick{width:100%}.act-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.act-note-field{display:flex;flex-direction:column;gap:4px;font-size:.85rem}.act-note-field textarea{flex:1 1 auto;min-height:80px}.act-grid.head-row{display:flex;flex-wrap:wrap;align-items:flex-start}.act-grid.head-row>label{flex:0 0 140px}.act-grid.head-row>label.date-cell{flex:0 0 auto}.act-grid.head-row>label.date-cell input{flex:0 0 136px;width:136px}.act-grid.head-row>label.wide{flex:1 1 260px}.act-grid.head-row>label.km-cell{flex:0 0 auto;width:max-content}.act-grid.head-row>label.km-cell input{width:0;min-width:100%}.act-grid.head-row>label.num-cell{flex:0 0 100px}.act-grid.head-row>label.num-cell input{width:100%;min-width:0}.act-grid.head-row>label.date-cell button{padding-left:8px;padding-right:8px}.act-grid.head-row>label.num-cell,.act-grid.head-row>label.date-cell{margin-right:-8px}.data-grid .conn-list{display:flex;flex-direction:column;gap:4px;font-size:.8rem;grid-column:span 2}.data-grid .conn-list .inline-row select{flex:0 0 130px}.data-grid .conn-list .conn-add{align-self:flex-start;width:200px}.calib-backdrop{display:flex;align-items:flex-start;justify-content:center;padding-top:6vh}.calib-dialog{width:min(440px,calc(100vw - 32px));max-height:86vh;display:flex;flex-direction:column;gap:8px}.calib-dialog h2{margin:0}.calib-dialog p{margin:0;font-size:.85rem}.calib-scroll{overflow:auto;min-height:0}.calib-table input{width:130px;min-height:30px;padding:4px 8px}.calib-table td{padding:2px 6px}.calib-dialog .add-row{align-self:flex-start}.seg{display:inline-flex;gap:0}.seg button{border-radius:0}.seg button:first-child{border-radius:8px 0 0 8px}.seg button:last-child{border-radius:0 8px 8px 0;margin-left:-1px}.seg button.on{background:var(--accent);color:#fff;border-color:var(--accent)}.report th.grp{text-align:center;border-left:1px solid var(--border)}.report .grp-first{border-left:1px solid var(--border)}.report tr.sum-row td{font-weight:600;background:color-mix(in srgb,var(--accent) 5%,transparent)}.works select.invalid{border-color:var(--bad)}.batch-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}@media(min-width:701px){.batch-bar button.small,.batch-bar a.button-link,.filters button.small{min-height:32px}}.grid .sel-col{width:32px;padding-right:0}.grid .sel-col input{width:16px;height:16px;margin:0;min-height:0;accent-color:var(--accent);cursor:pointer}.batch-dialog{width:min(760px,calc(100vw - 32px))}.batch-dialog h3{margin:8px 0 0;font-size:1rem}.batch-fields{display:grid;grid-template-columns:170px 1fr;gap:8px 12px;align-items:center}.batch-fields .check-inline{display:inline-flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:6px}.batch-fields .check-inline input{width:auto;min-height:0}.batch-fields .batch-off{opacity:.5;pointer-events:none}.batch-fields select,.batch-fields input:not([type=checkbox]){min-height:36px;padding:6px 10px;font-size:.95rem}.batch-comment{display:flex;flex-direction:column;gap:4px;font-size:.9rem}.batch-scroll{max-height:40vh;border:1px solid var(--border);border-radius:8px}.batch-detail{background:color-mix(in srgb,var(--accent) 4%,transparent)}.reports-menu{position:relative}.reports-menu .menu{left:0;right:auto;min-width:220px}.report-dialog{width:min(960px,calc(100vw - 32px))}.report-scroll{max-height:60vh;border:1px solid var(--border);border-radius:8px}.warn-text{color:var(--warn)}.warn-list{margin:4px 0;padding-left:20px}.alert .warn-list a{color:inherit}.alert.bad a{color:inherit;text-decoration:underline}.hints-add{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}.hints-add input{width:9em}.actions select.small{width:auto;min-height:38px;padding:0 10px;font-size:.9rem}.backup-banner{margin:0;border-radius:0;text-align:center}.backup-banner a{color:inherit;font-weight:600}:root{--nav-h: 58px}.cards{display:flex;flex-direction:column;gap:8px;margin-top:8px;transition:opacity .15s}.cards.dim{opacity:.55}.rowcard{display:block;padding:12px 14px;background:var(--card);border:1px solid var(--border);border-radius:12px;color:inherit;text-decoration:none}.rowcard.gone{opacity:.6}.rowcard:active{background:color-mix(in srgb,var(--accent) 8%,var(--card))}.rc-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}.rc-title{font-size:1.2rem;font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.rc-line{margin-top:4px;font-size:.95rem;overflow-wrap:anywhere}.rc-sub{color:var(--muted)}.empty-note{text-align:center;padding:24px 0}.more-btn{width:100%;margin:12px 0}.filters-btn{margin:8px 0 4px}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:12;display:flex;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--card);border-top:1px solid var(--border)}.bottom-nav a{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--muted);text-decoration:none;font-size:.72rem}.bottom-nav a.router-link-active{color:var(--accent);font-weight:600}.bottom-nav svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}@media(max-width:700px){.topbar{padding-left:12px;padding-right:12px}.nav .nav-link,.menu .nav-dup{display:none}.menu{z-index:13;max-width:calc(100vw - 24px)}.menu button{min-height:48px}.page,.page.wide{padding-left:12px;padding-right:12px;padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 16px)}.acc:has(.edit-head-actions){padding-bottom:150px}input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px!important;min-height:44px!important}button.small,a.button-link,button.primary{min-height:44px}button.link{min-height:44px;display:inline-flex;align-items:center}.filters .check-inline{min-height:44px}.filters .check-inline input{width:20px;height:20px}.acc-head .search,.acc-head .acts-search{flex:1 1 100%;max-width:none;margin-left:0;order:5}.acc-head .head-new{order:2;flex:1 1 100%;margin-left:0;min-height:52px;justify-content:center;font-size:1.05rem}.filters{flex-direction:column;align-items:stretch;flex-wrap:nowrap}.filters select,.acts-filters select,.filters .filter-client,.acts-filters .filter-client{flex:0 0 auto;width:100%}.filters .period{flex-direction:row;width:100%}.filters .period input{flex:1 1 auto;width:auto}.filters button.small{align-self:flex-start}.acc-head .edit-btn,.acc-head .head-history{flex:1 1 calc(50% - 6px);margin-left:0;min-height:48px;font-size:1rem}.acc-head .edit-btn.danger{flex-basis:100%}.cols,.editor .cols,.editor.sensor-edit .cols,.dicts,.sensor-split{grid-template-columns:minmax(0,1fr)}.kv{grid-template-columns:minmax(0,1fr);gap:0}.kv dt{margin-top:10px;font-size:.85rem}.kv.conn{grid-template-columns:max-content minmax(0,1fr);gap:4px 16px}.kv.conn dt{margin-top:0;font-size:inherit}.edit-grid.two{grid-template-columns:minmax(0,1fr)}.calib-table{max-height:320px;width:100%}.calib-chart{flex-basis:100%;max-width:none}.acc-head.edit-sticky{position:static;margin:4px 0 8px;padding:0;background:none;border:0;box-shadow:none}.edit-head-actions{position:fixed;left:0;right:0;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom));z-index:11;flex:none;margin:0;padding:8px 12px;background:var(--card);border-top:1px solid var(--border)}.edit-controls{flex-wrap:wrap;justify-content:stretch;gap:8px}.edit-controls .edit-comment{flex:1 1 100%}.edit-controls button{flex:1 1 0;min-height:48px;font-size:1rem}.edit-error{margin:0 0 6px!important}.table-wrap:has(.grid.stack){border:0;background:none;overflow:visible}.grid.stack,.grid.stack tbody{display:block}.grid.stack thead{display:none}.grid.stack tr{display:block;margin-top:8px;padding:6px 12px;background:var(--card);border:1px solid var(--border);border-radius:12px}.grid.stack td{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:5px 0;border:0;text-align:right;overflow-wrap:anywhere}.grid.stack td[data-label]:before{content:attr(data-label);flex:0 0 auto;color:var(--muted);font-size:.85rem;text-align:left}.grid.stack td:first-child{font-weight:600;font-size:1.05rem}.grid.stack td.empty{justify-content:center}.grid.stack.form td{flex-direction:column;align-items:stretch;text-align:left;justify-content:flex-start;gap:4px}.grid.stack .nowrap{white-space:normal}.grid.stack.works tr.work-data{margin-top:0;border-top:0;border-radius:0 0 12px 12px}.grid.stack.works tr:has(+tr.work-data){margin-bottom:0;border-bottom:0;border-radius:12px 12px 0 0}.grid.stack.works tr.work-data td{background:none}.grid.stack.form td:first-child{font-weight:inherit;font-size:inherit}.grid.stack.works td.mats{align-items:stretch}.act-grid,.act-grid.three{grid-template-columns:minmax(0,1fr)}.act-grid label.wide{grid-column:auto}.act-grid.head-row{flex-direction:column;align-items:stretch;flex-wrap:nowrap}.act-grid.head-row>label,.act-grid.head-row>label.date-cell,.act-grid.head-row>label.wide,.act-grid.head-row>label.km-cell,.act-grid.head-row>label.num-cell{flex:0 0 auto;width:100%;margin-right:0}.act-grid.head-row>label.date-cell input,.act-grid.head-row>label.km-cell input,.act-grid.head-row>label.num-cell input{flex:1 1 auto;width:auto;min-width:0}.act-vehicle,.data-grid{grid-template-columns:minmax(0,1fr)}.data-grid label.calib-in,.data-grid .conn-list{grid-column:auto}.data-grid .conn-list .inline-row select{flex:0 0 120px}.data-grid .conn-list .conn-add,.work-add,.vehicle-pick{width:100%!important;min-width:0}.works .note-input,.works .mats,.works select{min-width:0}.works .mat-add{width:100%!important}.works .mat{min-height:44px}.act .actions{flex-direction:column;align-items:stretch}.act .actions .primary{min-height:52px}.status-pick{width:100%!important}.picker-list{max-height:50vh;font-size:1rem}.picker-list li{padding:12px}.drawer{width:100%;border-left:0;padding-bottom:calc(16px + env(safe-area-inset-bottom))}.calib-backdrop{padding-top:0;align-items:stretch}.calib-dialog{width:100%;max-height:none;height:100%;margin:0;border:0;border-radius:0;padding-bottom:calc(16px + env(safe-area-inset-bottom))}.calib-scroll{flex:1 1 auto}.calib-dialog .actions{margin-top:0}.calib-dialog .actions button{flex:1 1 0;min-height:48px}.calib-table input{width:100%;min-width:80px}.calib-table td{padding:3px 4px}}
