:root{--bg:#0d0f12;--top:#101319;--panel:#171a20;--text:#f3f6fb;--muted:#9aa4b2;--green:#18c45f;--yellow:#ffea00;--red:#ff1d25;--offline:#747b86;--blue:#1859ff;--tileW:136px;--tileH:104px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}a{color:#8fc7ff;text-decoration:none}.topbar{display:flex;justify-content:space-between;align-items:flex-start;padding:12px 18px;border-bottom:1px solid #242b36;background:var(--top)}.topbar h1{margin:0 0 6px;font-size:24px}.subline{color:var(--muted);font-size:13px}.topbar nav a{margin-left:14px}input,select,button{font-size:14px;padding:7px;margin-top:5px;border-radius:4px;border:1px solid #3b4354;background:#0e1117;color:var(--text)}button{background:#2369ff;border:0;cursor:pointer}main{padding:10px}.tile-grid{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start}.tile-group{position:relative;display:flex;flex-wrap:wrap;gap:4px;align-items:flex-start;border:3px solid #00aa44;padding:7px 4px 4px;margin:0 2px 3px 0;background:rgba(0,0,0,.14)}.tile-group-title{position:absolute;top:-15px;left:50%;transform:translateX(-50%);padding:0 10px;background:var(--bg);font-size:13px;font-weight:900;letter-spacing:.5px;text-transform:uppercase;white-space:nowrap;text-shadow:1px 1px #000}.tile-group-inner{display:flex;flex-wrap:wrap;gap:4px}.tile-group .tile{margin:0}.tile{width:var(--tileW);height:var(--tileH);position:relative;background:#030405;border:3px solid #00aa44;overflow:hidden;text-align:center;box-shadow:0 0 0 1px #000 inset}.tile-title{position:absolute;top:3px;left:4px;right:4px;font-size:11px;line-height:12px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:1px 1px #000;z-index:8}.tile-title.long-title{font-size:9px;letter-spacing:-.2px}.status-dot{position:absolute;top:23px;left:50%;transform:translateX(-50%);width:46px;height:46px;border-radius:50%;background:var(--offline);z-index:1}.healthy .status-dot{background:var(--green)}.attention .status-dot{background:var(--yellow)}.critical .status-dot{background:var(--red);animation:pulse 1s infinite}.offline .status-dot{background:var(--offline)}.status-text{position:absolute;top:55px;left:2px;right:2px;height:15px;line-height:14px;font-size:11px;font-weight:900;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:1px 1px 2px #000;z-index:6}.see-more-in{position:absolute;top:9px;left:50%;transform:translateX(-50%);font-size:6.5px;line-height:8px;background:#07090d;color:#8fc7ff;padding:1px 3px;white-space:nowrap;z-index:7}.last-seen{position:absolute;top:24px;left:50%;transform:translateX(-50%);font-size:6.3px;line-height:7px;color:#cbd5e1;background:rgba(0,0,0,.62);padding:1px 2px;white-space:nowrap;z-index:7;text-shadow:1px 1px #000}.tile-metrics{position:absolute;left:50%;bottom:2px;transform:translateX(-50%);display:flex;gap:4px;align-items:center;justify-content:center;z-index:5}.mini-gauge{display:flex;flex-direction:column;align-items:center;color:#dce5f0}.ring{--p:0;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#777 calc(var(--p)*1%),#272d36 0)}.mini-gauge.good .ring{background:conic-gradient(var(--green) calc(var(--p)*1%),#272d36 0)}.mini-gauge.disk-good .ring{background:conic-gradient(var(--blue) calc(var(--p)*1%),#272d36 0)}.mini-gauge.warn .ring{background:conic-gradient(var(--yellow) calc(var(--p)*1%),#272d36 0)}.mini-gauge.bad .ring{background:conic-gradient(var(--red) calc(var(--p)*1%),#272d36 0);animation:blink 1s step-end infinite}.mini-gauge.neutral .ring{background:conic-gradient(#737b86 calc(var(--p)*1%),#272d36 0)}.ring span{font-size:6.3px;font-weight:900;color:#fff;background:#10151d;border-radius:50%;width:15px;height:15px;display:grid;place-items:center}.glabel{font-size:6.2px;margin-top:0;color:#dce5f0}.critical{animation:borderPulse 1.2s infinite}.empty{padding:28px;color:var(--muted)}@keyframes pulse{50%{transform:translateX(-50%) scale(1.08);filter:brightness(1.35)}}@keyframes borderPulse{50%{box-shadow:0 0 16px #ff1d25}}@keyframes blink{50%{opacity:.25}}
.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh}.auth-box{background:var(--panel);padding:28px;width:420px;border:1px solid #2a3040;border-radius:8px}.auth-box label{display:block;margin-top:12px;color:var(--muted)}.auth-box input,.auth-box select{width:100%}.error{background:#6b1111;padding:10px;margin:10px 0}.panel{background:var(--panel);border:1px solid #252b36;padding:16px;margin-bottom:16px;border-radius:6px}.details-wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.section-title{font-size:18px;margin:0 0 12px}.kv{display:grid;grid-template-columns:180px 1fr;gap:8px 14px;margin-bottom:6px}.kv b{color:#dfe8f5}.muted{color:var(--muted)}.badge{display:inline-block;font-weight:bold;border-radius:999px;padding:3px 9px;background:#3b4354;color:#fff}.badge.good{background:#0d7e3c}.badge.warn{background:#a47d00}.badge.bad{background:#9b171b}.blink-red{color:#ff4a4f;font-weight:bold;animation:blink 1s step-end infinite}table{width:100%;border-collapse:collapse}th,td{border-bottom:1px solid #2a3040;padding:8px;text-align:left}pre{white-space:pre-wrap;word-break:break-word;background:#0a0c10;padding:12px;border-radius:6px}.raw-payload summary{cursor:pointer;font-weight:bold;margin-bottom:10px}.health-hero{display:flex;align-items:center;gap:16px;margin-bottom:18px}.big-dot{width:70px;height:70px;border-radius:50%;background:var(--offline)}.health-hero.healthy .big-dot{background:var(--green)}.health-hero.attention .big-dot{background:var(--yellow)}.health-hero.critical .big-dot{background:var(--red)}.big-status{font-size:42px;font-weight:900;text-transform:uppercase;text-shadow:2px 2px #000}.arrange-tools{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.arrange-tools input{width:180px}.feedback{color:#7df594;font-weight:bold;opacity:0;transition:opacity .2s}.feedback.show{opacity:1}.arrange-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:14px}.arrange-card{background:var(--panel);border:3px solid #00aa44;padding:12px;border-radius:6px;cursor:grab;transition:transform .12s ease,box-shadow .12s ease}.arrange-card.dragging{opacity:.5}.arrange-card.drag-over{transform:translateX(14px);box-shadow:0 0 0 2px #7dd3fc}.arrange-card.selected{box-shadow:0 0 0 2px #7dd3fc inset}.arrange-card label{display:block;color:var(--muted);font-size:12px;margin-top:8px}.arrange-card input{width:100%}.arrange-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.select-tile{margin:0!important;color:#dbe8ff!important}.select-tile input,.hidden-row input{width:auto}
@media (min-width:2500px){:root{--tileW:154px;--tileH:118px}.tile-title{font-size:13px;line-height:14px}.tile-title.long-title{font-size:11px}.status-dot{top:26px;width:52px;height:52px}.status-text{top:63px;font-size:13px;line-height:15px;height:16px}.see-more-in{font-size:7.5px;top:11px}.last-seen{font-size:7px;top:27px}.ring{width:25px;height:25px}.ring span{width:17px;height:17px;font-size:7px}.glabel{font-size:7px}.tile-metrics{gap:5px}}
/* v1.8.7 attached group arrange mode */
.attach-row{display:flex!important;align-items:center;gap:6px;color:#dbe8ff!important;margin-top:8px!important;white-space:nowrap}.attach-row input{width:auto!important;margin:0!important}.muted-small{font-size:10px;color:var(--muted);font-weight:700;text-transform:none;letter-spacing:0}.arrange-grid{display:flex;flex-direction:column;gap:14px;margin-top:14px}.arrange-single-block{display:block;max-width:280px;cursor:grab}.arrange-group-block{position:relative;border:4px solid #00aa44;border-radius:8px;padding:18px 10px 10px;margin-top:8px;background:rgba(0,0,0,.18);cursor:grab;transition:transform .12s ease,box-shadow .12s ease}.arrange-group-block.dragging,.arrange-single-block.dragging{opacity:.55}.arrange-group-block.drag-over,.arrange-single-block.drag-over{transform:translateX(18px);box-shadow:0 0 0 2px #7dd3fc}.arrange-group-title{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--bg);padding:0 12px;font-size:15px;font-weight:900;text-transform:uppercase;white-space:nowrap;text-shadow:1px 1px #000}.arrange-group-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.arrange-group-block .arrange-card{cursor:default}.arrange-single-block .arrange-card{cursor:grab}
/* v1.8.8 front-page drag/drop + group settings */
.autosave-status{color:#7df594;font-weight:800}.tile-block{display:inline-flex;align-items:flex-start}.tile-block[draggable="true"],.tile-group[draggable="true"]{cursor:grab}.tile-block.dragging,.tile.dragging{opacity:.55}.tile-block.drag-over,.tile.drag-over{transform:translateX(12px);box-shadow:0 0 0 2px #7dd3fc,0 0 14px rgba(125,211,252,.35)}.tile-group{border-radius:2px}.tile-group-inner .tile{cursor:grab}.single-block{margin:0 2px 3px 0}.group-settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.arrange-tools select{font-size:14px;padding:7px;margin-top:5px;border-radius:4px;border:1px solid #3b4354;background:#0e1117;color:var(--text)}

/* RecTech Health Monitor v2.0 */
.topbar-v2{position:relative;min-height:92px;padding:14px 190px 14px 18px;gap:14px;align-items:flex-start}.brand-block{min-width:0}.brand-title-row{display:flex;align-items:center;gap:10px}.version-pill{font-size:12px;color:#93c5fd;border:1px solid #334155;border-radius:999px;padding:2px 8px;background:#0b1220}.dashboard-tools{display:flex;gap:8px;align-items:center;margin-top:9px;flex-wrap:wrap}.dashboard-tools input[type=search],.settings-filterbar input[type=search]{width:330px;max-width:45vw}.dashboard-tools button{padding:6px 10px;background:#1f2937;border:1px solid #334155}.main-nav{position:absolute;top:14px;right:150px;z-index:3}.top-logo{position:absolute;right:18px;top:8px;height:76px;width:auto;max-width:120px;object-fit:contain;filter:drop-shadow(0 2px 4px #000)}.small-logo{height:58px}.compact-topbar{min-height:72px}.hm-footer{position:fixed;right:10px;bottom:6px;color:#4b5563;font-size:11px;pointer-events:none}.tile-grid{align-items:flex-start;gap:8px}.tile-group{display:block;border-radius:5px;padding:26px 5px 5px;margin:8px 4px 6px 0;min-height:36px}.tile-group.collapsed{padding:6px 10px;margin-top:8px}.group-header{position:absolute;top:-11px;left:10px;right:10px;height:22px;display:flex;align-items:center;justify-content:center;gap:8px;border-top:3px solid;border-left:0;border-right:0;border-bottom:0;background:var(--bg);font-weight:900;text-transform:uppercase;text-shadow:1px 1px #000;white-space:nowrap}.group-title-text{font-size:13px;letter-spacing:.4px}.collapse-btn{background:#07090d;border:1px solid #2d3748;color:#dbeafe;border-radius:4px;font-size:10px;line-height:1;padding:3px 5px;margin:0;cursor:pointer}.group-counts{font-size:10px;display:flex;gap:5px;opacity:.88}.group-counts .ok{color:#22c55e}.group-counts .warn{color:#facc15}.group-counts .bad{color:#ff1d25}.group-counts .off{color:#94a3b8}.ungrouped-block{opacity:.96}.tile-group-title{display:none}.tile-group-inner{display:flex;flex-wrap:wrap;gap:5px}.tile-block.drag-over,.tile.drag-over{transform:translateX(12px);box-shadow:0 0 0 2px #7dd3fc,0 0 18px rgba(125,211,252,.35)}.tile-block[draggable="true"] .group-header{cursor:grab}.settings-filterbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.settings-filterbar label{color:#dce5f0}.setting-row{display:grid;grid-template-columns:58px 1fr;gap:8px;margin:8px 0;color:#dce5f0}.group-name-chip{display:inline-block;border:1px solid;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:800;background:#0a0c10}.group-none{color:var(--muted);font-size:12px}.remove-group{width:100%;margin-top:10px;background:#6d1218!important;border:1px solid #ef4444!important;color:white!important;font-weight:800}.remove-group:hover{filter:brightness(1.15)}
@media (max-width:900px){.topbar-v2{padding-right:18px}.top-logo{position:static;height:56px;margin-left:auto}.main-nav{position:static;margin-left:auto}.dashboard-tools input[type=search]{max-width:100%;width:240px}.topbar-v2{flex-wrap:wrap}}

/* v2.0.1 drag/group polish */
.group-drag-handle{cursor:grab;user-select:none}
.group-drag-handle:active{cursor:grabbing}
.draggable-tile{cursor:grab}
.draggable-tile:active{cursor:grabbing}
.tile.dragging,.tile-block.dragging{opacity:.55;filter:brightness(1.25)}
.tile.drag-over{outline:2px dashed #66aaff;outline-offset:2px;transform:translateX(3px)}
.tile.drop-into-group,.tile-block.drop-into-group{box-shadow:0 0 0 2px #66aaff,0 0 18px rgba(102,170,255,.55)}
.tile-block.drag-over{box-shadow:0 0 0 2px #66aaff inset,0 0 18px rgba(102,170,255,.35)}
