:root{--bg0: #121417;--bg1: #171b20;--card: rgba(255, 255, 255, .08);--card2: rgba(255, 255, 255, .06);--line: rgba(255, 255, 255, .12);--ink: rgba(255, 255, 255, .92);--muted: rgba(255, 255, 255, .62);--accent: #e8c07d;--accent2: #7dd3e8}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial,sans-serif;color:var(--ink)}html{background:radial-gradient(1100px 700px at 10% 0%,#223041 0%,var(--bg0) 55%,#0d0f12 100%);background-repeat:no-repeat;background-attachment:fixed}body{background:transparent}.bg{position:fixed;inset:0;background:radial-gradient(900px 500px at 80% 20%,rgba(232,192,125,.16),transparent 55%),radial-gradient(700px 420px at 20% 70%,rgba(125,211,232,.14),transparent 60%);pointer-events:none;filter:blur(.2px)}.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a0c0e8c}.top-left{display:flex;align-items:center;gap:12px}.mark{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-weight:800;letter-spacing:.06em;background:linear-gradient(135deg,#e8c07d38,#7dd3e82e);border:1px solid rgba(255,255,255,.12)}.title{font-size:16px;font-weight:760}.sub{font-size:12px;color:var(--muted);margin-top:2px}.wrap{max-width:1120px;margin:18px auto 60px;padding:0 18px;display:grid;gap:14px}.tabs{display:flex;gap:10px}.tab{appearance:none;border:1px solid rgba(0,0,0,.14);background:#ffffffb3;color:#1f2a2e;padding:10px 12px;border-radius:12px;font-weight:650;letter-spacing:.2px;cursor:pointer}.tab:hover{background:#ffffffe6}.tab.is-active{border-color:#00000040;background:#fff;box-shadow:0 10px 30px #10161a1a}.tab-panel{display:block}.tab-panel[hidden]{display:none!important}.row{display:flex;align-items:center;gap:12px}.spacer{flex:1}.inline{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:#ffffffbf;padding:6px 10px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:#00000024}.inline select{appearance:none;border:1px solid rgba(255,255,255,.16);background:#00000047;color:#ffffffe6;border-radius:10px;padding:6px 10px}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:#0003;font-size:11px;font-weight:750;letter-spacing:.2px}.badge.electricity{background:#7dd3e824}.badge.water{background:#48a8ff24}.badge.heat{background:#e8c07d24}.badge.inline{margin-right:8px}.table.compact.meters .badge.inline{width:62px;flex:0 0 62px;justify-content:center}@media(max-width:520px){.table.compact.meters .badge.inline{width:54px;flex-basis:54px}}.split{display:grid;grid-template-columns:1fr 1.3fr;gap:14px}.split{grid-template-columns:1fr}.h3{margin:6px 0 10px;font-size:14px;letter-spacing:.2px;text-transform:uppercase;color:#ffffffb8}@media(max-width:920px){.split{grid-template-columns:1fr}}.card{border:1px solid var(--line);background:linear-gradient(180deg,var(--card),var(--card2));border-radius:16px;padding:14px;box-shadow:0 18px 50px #00000059}.card-head h1,.card-head h2{margin:0;font-size:16px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.controls{display:flex;gap:10px;align-items:center}.toggle{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:#0000002e}.toggle input{transform:translateY(1px)}.toggle span{font-weight:650;color:#ffffffd1}.small{font-size:12px}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.muted{color:var(--muted);font-size:12px}.upload{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;margin-top:12px}.upload-dnd{position:relative;grid-template-columns:1fr auto;grid-auto-rows:auto}.upload-dnd input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.upload-dnd .status,.upload-dnd .queue{grid-column:1 / -1}.dropzone{padding:14px 12px;border-radius:14px;border:1px dashed rgba(255,255,255,.25);background:#0000002e;color:var(--ink);-webkit-user-select:none;user-select:none}.dropzone:hover{border-color:#ffffff61}.dropzone:focus{outline:2px solid rgba(232,192,125,.55);outline-offset:2px}.dropzone.is-dragover{border-color:#e8c07de6;box-shadow:0 0 0 1px #e8c07d59,0 12px 50px #00000059}.dz-title{font-weight:750;letter-spacing:.2px}.dz-sub{margin-top:2px}.upload-actions{display:grid;gap:10px}.queue{grid-column:1 / -1;display:grid;gap:8px;margin-top:6px}.queue-item{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:#00000024}.queue-item.is-ok{border-color:#32c87859}.queue-item.is-err{border-color:#ff5a5a59}.queue-name{font-weight:650}.queue-meta{font-size:12px;color:var(--muted);margin-top:2px}.btn-sm{padding:8px 10px;border-radius:10px;font-weight:650}input[type=file]{width:100%;padding:10px;border-radius:12px;border:1px dashed rgba(255,255,255,.25);background:#0000002e;color:var(--ink)}label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}input[type=text],input[type=number]{width:100%;padding:10px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:#0000002e;color:var(--ink)}.btn{border:1px solid rgba(255,255,255,.18);background:linear-gradient(180deg,#e8c07d47,#e8c07d2e);color:var(--ink);border-radius:12px;padding:10px 12px;cursor:pointer;font-weight:650}.btn:hover{filter:brightness(1.06)}.btn:active{transform:translateY(1px)}.btn-quiet{background:#ffffff14;border:1px solid rgba(255,255,255,.12);color:var(--ink);padding:9px 12px}.status{grid-column:1 / -1;font-size:12px;color:var(--muted)}.details{margin-top:10px;border-top:1px dashed rgba(255,255,255,.14);padding-top:10px}.details summary{cursor:pointer;color:var(--muted);font-size:12px}.details-body{margin-top:10px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.table{margin-top:10px;border:1px solid rgba(255,255,255,.12);border-radius:14px;overflow:hidden}.table.compact{margin-top:8px}.trow{display:grid;grid-template-columns:var(--cols, 1.2fr .9fr .9fr .9fr .9fr 1.2fr);gap:10px;padding:10px 12px;border-top:1px solid rgba(255,255,255,.08);background:#0000001f}.table.compact .trow{gap:6px;padding:4px 6px;font-size:12px}.table.compact .trow.head{font-size:12px}.table.compact .subcell{margin-top:1px;font-size:10px}.table.compact .cell.wrap{line-height:1.15}.table.compact .badge{padding:3px 6px;font-size:10px}.table.compact.meters .trow{padding:1px 6px;gap:3px;font-size:12px}.table.compact.meters .trow.head{font-size:12px}.table.compact.meters .subcell{font-size:10px}.table.compact.meters .cell.unit{text-align:center}.table.compact.meters .cell.snap{font-variant-numeric:tabular-nums}.meta{color:#ffffffa3;font-size:10px;font-weight:650;letter-spacing:.1px;margin-left:6px}.meta .muted{color:#ffffff94}.trow.group{background:#00000047}.trow .cell.span{grid-column:1 / -1}.trow:not(.head):hover{background:#ffffff0f}.trow.head{background:#00000038;border-top:none;font-weight:700}.trow.head.sticky{position:sticky;top:0;z-index:5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.trow .cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trow .cell.wrap{white-space:normal;line-height:1.25}.trow .subcell{margin-top:4px;font-size:11px;color:#ffffffa6}.trow .num{font-variant-numeric:tabular-nums;text-align:right}@media(max-width:840px){.upload{grid-template-columns:1fr}.trow{grid-template-columns:var(--cols-sm, var(--cols, 1.2fr 1fr 1fr))}.trow .hide-sm{display:none}}
