:root{--bg:#fff;--text:#1b1f23;--muted:#6a737d;--primary:#1f6f43;--danger:#b42318;--warn:#b54708;--line:#d0d7de;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0}main{max-width:1100px;margin:0 auto;padding:16px}main.center{flex-direction:column;align-items:center;gap:12px;padding-top:6vh;display:flex}header{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding-bottom:12px;display:flex}header button{margin-left:auto}.label{flex-direction:column;line-height:1.2;display:inline-flex}.label small{color:var(--muted);font-size:.8em}button{border:1px solid var(--line);min-width:56px;min-height:56px;color:inherit;background:#f6f8fa;border-radius:12px;padding:8px 16px;font-size:18px}button:disabled{opacity:.4}button.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.primary .label small{color:#d7efe2}button.danger{background:var(--danger);border-color:var(--danger);color:#fff}button.danger .label small{color:#fde2df}button.big{width:100%;min-height:72px;margin-top:16px;font-size:22px}input{border:1px solid var(--line);border-radius:10px;min-width:280px;padding:12px;font-size:22px}input[type=checkbox],input[type=radio]{vertical-align:middle;width:20px;min-width:0;height:20px;padding:0}.keypad{grid-template-columns:repeat(3,96px);gap:10px;display:grid}.keypad button{height:80px;font-size:28px}.pin-dots{letter-spacing:8px;min-height:40px;font-size:32px}.tiles{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;padding-top:16px;display:grid}.tile{min-height:140px;font-size:24px}.status{grid-column:1/-1;margin:0;font-size:20px}.hint{color:var(--muted);grid-column:1/-1}.error{color:var(--danger);font-weight:600}.warn{color:var(--warn)}.sync.ok{color:var(--primary)}.sync.off{color:var(--danger)}.kinds{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}ul.count{margin:0;padding:0;list-style:none}ul.count li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}ul.count input{text-align:right;width:160px;min-width:0}label{justify-content:space-between;align-items:center;gap:12px;margin:12px 0;display:flex}main.admin{max-width:1200px}main.admin header select{padding:8px;font-size:16px}table{border-collapse:collapse;width:100%;margin:12px 0;font-size:16px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:8px}th{color:var(--muted);font-weight:600}td.neg{color:var(--danger);font-weight:600}td.pos{color:var(--warn);font-weight:600}tr.muted td{color:var(--muted)}.form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.form input,.form select{min-width:180px;font-size:16px}select{border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px;font-size:18px}textarea{border:1px solid var(--line);border-radius:8px;width:100%;min-height:70px;padding:8px;font-size:16px}label.inline{justify-content:flex-start;gap:8px;display:flex}.setup-link{border:1px solid var(--line);background:#f6f8fa;border-radius:10px;margin-top:12px;padding:12px}.setup-link code{word-break:break-all;margin:8px 0;display:block}main.admin button{min-height:40px;font-size:16px}.level{color:#fff;border-radius:999px;padding:6px 14px;font-weight:700;display:inline-block}.level.green{background:var(--primary)}.level.orange{background:var(--warn)}.level.red{background:var(--danger)}li.issue.red{color:var(--danger)}li.issue.orange{color:var(--warn)}input.cell{width:100%;min-width:0;padding:6px 8px;font-size:15px}input.cell.num{text-align:right;width:110px}input.wide{min-width:420px;font-family:monospace;font-size:15px}tr.changed td{background:#fff8e1}.form.sticky{border-top:1px solid var(--line);background:#fff;padding:10px 0;position:sticky;bottom:0}.batch{border:1px solid var(--line);border-radius:14px;margin:12px 0;padding:14px}.batch.interrupted{border-color:var(--danger)}.timer{font-variant-numeric:tabular-nums;margin:8px 0;font-size:44px;font-weight:700}.timer.over{color:var(--danger)}ol.stages{color:var(--muted)}h2{margin:18px 0 8px}.camera{flex-direction:column;gap:10px;margin:12px 0;display:flex}.camera video,.camera img{object-fit:contain;background:#000;border-radius:12px;width:100%;max-height:50vh}.camera input[type=file]{margin-top:8px;display:block}.photos{flex-wrap:wrap;gap:12px;display:flex}.photos figure{width:180px;margin:0}.photos img{object-fit:cover;border:1px solid var(--line);border-radius:8px;width:180px;height:180px}.photos figcaption,.photo-missing{color:var(--muted);font-size:13px}li.line{grid-template-columns:2fr 1fr 1fr 1.4fr auto;align-items:center;gap:8px;display:grid}table.totals td{padding:4px 8px}.damage{gap:6px;display:flex}button.small{min-height:36px;padding:4px 10px;font-size:13px}.panel-box{border:1px solid var(--line);background:#fafafa;border-radius:12px;margin:12px 0;padding:12px 16px}.envelope-code{border:3px dashed var(--primary);text-align:center;border-radius:12px;margin:10px 0;padding:12px}.envelope-code strong{letter-spacing:3px;font-family:monospace;font-size:40px;display:block}header .spacer{flex:1}.profile{position:relative}.avatar-btn{align-items:center;gap:8px;display:inline-flex}.avatar{color:#fff;background:#222;border-radius:50%;place-items:center;width:28px;height:28px;font-size:12px;font-weight:700;display:inline-grid}.profile-menu{z-index:20;width:min(420px,92vw);position:absolute;top:110%;right:0;box-shadow:0 8px 24px #00000026}.form.column{flex-direction:column;align-items:stretch}.form.column label{flex-direction:column;gap:4px;display:flex}.alert{background:#fff;border-left:4px solid #e0a800;margin:8px 0;padding:6px 10px}.alert.red{border-left-color:#c62828}.alert p{margin:4px 0}.empty{border:1px dashed var(--line);color:#555;background:#fcfcfc;border-radius:10px;padding:16px}.scroll-x{overflow-x:auto}table.matrix th{vertical-align:bottom;font-size:12px}table.matrix td.c{text-align:center}.pairing img{border:1px solid var(--line);margin:8px 0;display:block}.code-big{letter-spacing:4px;font:700 28px/1.2 ui-monospace,monospace}a.button{border:1px solid var(--line);color:inherit;border-radius:8px;padding:8px 14px;text-decoration:none;display:inline-block}td.actions button{margin:2px}tr.row-open>td{background:#eef6f0}tr.row-panel>td{background:#f4faf6;border-left:4px solid #1f6f43;padding:4px 12px 12px}tr.row-panel .panel-box{background:#fff;margin:8px 0}tr.row-panel>td{text-align:left}tr.row-panel .form.column{gap:8px;max-width:560px}tr.row-panel .form.column label{text-align:left;align-items:stretch}tr.row-panel fieldset label.inline{flex-direction:row;align-items:center;gap:8px;display:flex}tr.row-panel h3{margin:4px 0 8px}table.matrix tr.group-row td{background:#eef2ef;padding-top:10px;font-weight:700}.num-mini{width:56px}details.add-box{margin:8px 0 12px}details.add-box>summary{cursor:pointer;color:#fff;background:#1f6f43;border-radius:8px;padding:8px 14px;list-style:none;display:inline-block}details.add-box>summary::-webkit-details-marker{display:none}.form.filters{margin:8px 0}table.matrix input.num-mini{text-align:center;min-width:0;padding:4px 6px;width:64px!important}table.matrix td:first-child{min-width:240px}table.matrix{width:auto}table.matrix th:not(:first-child),table.matrix td.c{text-align:center;width:104px;max-width:104px}table.matrix thead th{z-index:1;background:#fff;position:sticky;top:0}.tile .tile-sub{margin-top:6px;font-size:.6em;display:block}.subtabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:6px;margin:8px 0 12px;padding-bottom:8px;display:flex}.subtabs button.active{color:#fff;background:#1f6f43}.subtabs button.warn:not(.active){color:#8a5200;border-color:#b26a00}.chips{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.chips button{border-radius:999px;padding:6px 12px;font-size:14px}.chips button.active{color:#fff;background:#1f6f43}.chips small{opacity:.7;margin-left:4px}.grid2{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px 16px;display:grid}.grid2 label{flex-direction:column;gap:4px;font-size:14px;display:flex}.grid2 input:not([type=checkbox]):not([type=radio]),.grid2 select{width:100%;min-width:0;padding:8px;font-size:16px}.with-unit{align-items:center;gap:6px;display:flex}.with-unit input{text-align:right;width:140px!important;min-width:0!important}.with-unit span{color:#374151;font-weight:600}.warn-box{background:#fff8eb;border:1px solid #b26a00;border-radius:10px;margin:10px 0;padding:10px 14px}.form.filters label.inline{align-items:center;gap:6px;display:inline-flex}
