html,body{margin:0;padding:0}:root{color:#14201a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#e8efe9;font-family:IBM Plex Sans,Segoe UI,system-ui,sans-serif;line-height:1.45}*{box-sizing:border-box}body{background:radial-gradient(80% 50% at 10% -10%,#c5ddc8 0%,#0000 55%),radial-gradient(60% 40% at 100% 0,#d4e4f0 0%,#0000 50%),#e8efe9;min-height:100vh;margin:0}#root{min-height:100vh}.page{max-width:1280px;margin:0 auto;padding:2rem 1.25rem 3rem}.login-page{place-items:center;min-height:100vh;display:grid}.login-form{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffb8;border:1px solid #14201a14;flex-direction:column;gap:.85rem;width:min(100%,360px);padding:1.75rem;display:flex}.login-form h1,.header h1{letter-spacing:-.02em;margin:0;font-size:1.6rem}.muted{color:#4a5c52;margin:.25rem 0 0;font-size:.92rem}label{flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:600;display:flex}input{font:inherit;color:inherit;background:#fff;border:1px solid #14201a2e;padding:.65rem .75rem}button{font:inherit;cursor:pointer;color:#f4faf6;background:#1b4332;border:none;padding:.7rem 1rem;font-weight:600}button.secondary{color:#1b4332;background:0 0;border:1px solid #1b433259}.error{color:#8b1e1e;margin:0;font-size:.9rem}.error.banner{background:#fde8e8;border:1px solid #f0b4b4;margin-bottom:1rem;padding:.75rem 1rem}.header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.header-actions{flex-shrink:0;gap:.5rem;display:flex}.table-wrap{background:#ffffffc7;border:1px solid #14201a14;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #14201a14;padding:.75rem .9rem}th{text-transform:uppercase;letter-spacing:.04em;color:#4a5c52;font-size:.78rem;font-weight:700}.url-cell{text-overflow:ellipsis;white-space:nowrap;max-width:11rem;font-size:.75rem;overflow:hidden}.mono{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.85rem}.empty{text-align:center;padding:2rem 1rem!important}.badge{letter-spacing:.02em;text-transform:uppercase;padding:.2rem .55rem;font-size:.78rem;font-weight:700;display:inline-block}.badge.live{color:#1b4332;background:#d8f3dc}.badge.offline{color:#8b1e1e;background:#fde2e1}.badge.update{color:#7a5b00;vertical-align:middle;background:#fff3cd;margin-left:.35rem}.row-offline td{background:#fde2e159}.actions{flex-wrap:wrap;gap:.4rem;min-width:14rem;display:flex}button.small{padding:.4rem .65rem;font-size:.8rem}button.danger{color:#fff;background:#8b1e1e}button.danger:disabled,button:disabled{opacity:.55;cursor:not-allowed}.edit-form{gap:.85rem;display:grid;overflow:auto}.checkbox-row{flex-direction:row;align-items:center;gap:.55rem;font-weight:600}.checkbox-row input{width:auto}.hint{color:#5a6b62;margin:0;font-size:.82rem;line-height:1.4}.modal-actions{justify-content:flex-end;gap:.5rem;margin-top:.25rem;display:flex}.modal-actions.wrap{flex-wrap:wrap;justify-content:flex-start}.app-log{color:#d7ebe0;white-space:pre-wrap;word-break:break-word;background:#0f1a14;max-height:55vh;margin:0;padding:.85rem 1rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.78rem;line-height:1.45;overflow:auto}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0c16117a;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0}.modal{background:#f7faf7;border:1px solid #14201a1f;flex-direction:column;width:min(100%,960px);max-height:min(88vh,900px);padding:1.25rem 1.35rem 1.35rem;display:flex;overflow:hidden;box-shadow:0 18px 48px #0c161138}.modal.modal-sm{width:min(100%,520px);max-height:min(90vh,860px)}.modal.modal-lg{width:min(100%,1040px)}.modal-body{flex:1;min-height:0;overflow:auto}.panel-header{flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.panel-header h2{margin:0;font-size:1.2rem}.sim-filter{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.45rem;margin-bottom:.85rem;font-size:.85rem;font-weight:600;display:flex}.panel-table{background:#fff;border:none;max-height:none;overflow:visible}.panel-table thead th{z-index:1;background:#f0f5f1;position:sticky;top:0}.body-cell{white-space:pre-wrap;word-break:break-word;max-width:28rem}@media (width<=640px){.header,.panel-header{flex-direction:column}.modal-backdrop{align-items:flex-end;padding:.75rem}.modal{width:100%;max-height:92vh}}
