*{box-sizing:border-box}:root{--bg:#0f1115;--panel:#161922;--border:#262b38;--border-soft:#1d212b;--text:#e6e6e6;--text-muted:#9aa4b8;--text-dim:#6b7280;--hover:#1c202b;--selected:#232a3a;--accent:#3b5bfd;--green:#3ecf6a;--red:#e5484d;--yellow:#e8b339;--input-bg:#0f1115;--btn-border:#333a4a}:root.light{--bg:#f4f5f7;--panel:#fff;--border:#dfe3ea;--border-soft:#eceef2;--text:#1a1d24;--text-muted:#5c6373;--text-dim:#8b93a7;--hover:#eef0f4;--selected:#e4e9ff;--accent:#3b5bfd;--green:#1a9e4b;--red:#d3313a;--yellow:#b8860b;--input-bg:#fff;--btn-border:#cfd5e0}body{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,Segoe UI,Roboto,sans-serif}.app{height:100vh;display:flex}.sidebar{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:260px;display:flex}.sidebar-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);padding:1rem;font-size:.85rem;font-weight:600}.sidebar-list{margin:0;padding:0;list-style:none;overflow-y:auto}.sidebar-item{cursor:pointer;border-bottom:1px solid var(--border-soft);align-items:center;gap:.6rem;padding:.75rem 1rem;display:flex}.sidebar-item:hover{background:var(--hover)}.sidebar-item.selected{background:var(--selected)}.sidebar-item-name{font-weight:500}.sidebar-item-sub{color:var(--text-muted);font-size:.78rem}.dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.dot.online{background:var(--green)}.dot.offline{background:var(--red)}.sidebar-empty{color:var(--text-dim);padding:1rem}.main{flex-direction:column;flex:1;min-width:0;display:flex}.toolbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.toolbar h1{margin:0;font-size:1.1rem}.toolbar-buttons{align-items:center;display:flex}.toolbar-buttons button{border:1px solid var(--btn-border);color:var(--text);cursor:pointer;background:0 0;padding:.4rem .9rem;font-size:.85rem}.toolbar-buttons button.active{background:var(--accent);border-color:var(--accent);color:#fff}.error{color:var(--red);padding:0 1.5rem}.feed{padding:1.5rem;overflow-y:auto}.feed-meta{color:var(--text-muted);margin-bottom:1rem;font-size:.85rem}.chart-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;max-width:720px;margin-bottom:1.25rem;padding:1rem}.chart-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem;font-size:.8rem}.feed-event{background:var(--panel);border:1px solid var(--border);border-radius:10px;max-width:480px;margin-bottom:.5rem;padding:.6rem .9rem}.feed-event--error{border-color:var(--red)}.feed-event--online{border-color:var(--green)}.feed-event-time{color:var(--text-dim);margin-bottom:.2rem;font-size:.72rem}.empty-state{color:var(--text-dim);padding:1.5rem}.agents-table{border-collapse:collapse;table-layout:fixed;width:calc(100% - 3rem);margin:1.5rem}.agents-table th,.agents-table td{border:1px solid var(--border);text-align:left;padding:.6rem}.agents-table th{color:var(--text-muted);text-transform:uppercase;font-size:.8rem;font-weight:500}.agents-table tbody tr{cursor:pointer}.agents-table tbody tr:hover{background:var(--hover)}.status-online{color:var(--green)}.status-offline{color:var(--red)}.releases{padding:1.5rem;overflow-y:auto}.release-upload{background:var(--panel);border:1px solid var(--border);border-radius:10px;max-width:720px;margin-bottom:1.5rem;padding:1rem}.upload-form{flex-wrap:wrap;gap:.6rem;display:flex}.upload-form input[type=text]{background:var(--input-bg);border:1px solid var(--btn-border);color:var(--text);border-radius:6px;padding:.45rem .7rem;font-size:.85rem}.upload-form input[type=file]{color:var(--text-muted);font-size:.85rem}.upload-form button,.releases-table button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.45rem .9rem;font-size:.85rem}.upload-form button:disabled,.releases-table button:disabled{opacity:.5;cursor:default}.releases-table{width:100%;margin:0 0 1.5rem}.msg-ok{color:var(--green);font-size:.85rem}.msg-error{color:var(--red);font-size:.85rem}.task-done{color:var(--green)}.task-failed{color:var(--red)}.task-pending,.task-acknowledged,.task-downloading{color:var(--yellow)}.sidebar-search{background:var(--input-bg);border:1px solid var(--border);color:var(--text);border-radius:6px;margin:.6rem .75rem;padding:.45rem .7rem;font-size:.85rem}.sidebar-search::placeholder{color:var(--text-dim)}.badge{color:var(--accent);flex-shrink:0;margin-left:auto;font-size:.9rem}.sidebar-item.unread .sidebar-item-name{font-weight:700}.sidebar-item.unread{background:color-mix(in srgb, var(--accent) 8%, transparent)}.theme-toggle{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:6px;margin-right:.5rem;padding:.4rem .6rem}.tab-badge{background:var(--red);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:6px;padding:0 5px;font-size:.72rem;font-weight:700;display:inline-flex}.feed-tabs{gap:.5rem;margin-bottom:1rem;display:flex}.feed-tab{border:1px solid var(--btn-border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:.4rem;padding:.4rem .9rem;font-size:.85rem;display:flex}.feed-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.feed-tab-count{background:color-mix(in srgb, var(--text-muted) 25%, transparent);color:inherit;text-align:center;border-radius:9px;min-width:18px;padding:0 .4rem;font-size:.72rem;font-weight:700}.feed-tab.active .feed-tab-count{background:#ffffff40}.feed-event--status{border-color:var(--accent)}.feed-event--offline{border-color:var(--red)}.feed-event--info{border-color:var(--green)}.login-screen{background:var(--bg);justify-content:center;align-items:center;height:100vh;display:flex}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;flex-direction:column;width:320px;padding:2.5rem;display:flex}.login-title{color:var(--text);margin:0;font-size:1.4rem}.login-sub{color:var(--text-muted);margin:.3rem 0 1.5rem;font-size:.9rem}.login-input{background:var(--input-bg);border:1px solid var(--btn-border);color:var(--text);border-radius:8px;margin-bottom:.75rem;padding:.6rem .8rem;font-size:.9rem}.login-button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;margin-top:.5rem;padding:.6rem;font-size:.9rem}.login-button:disabled{opacity:.5}.login-error{color:var(--red);margin:.25rem 0;font-size:.85rem}.sub-active{color:var(--green)}.sub-warn{color:var(--yellow)}.sub-danger{color:var(--red)}.sub-unknown{color:var(--text-dim)}.sub-card{max-width:720px}.sub-actions{gap:.5rem;margin-top:1rem;display:flex}.sub-actions button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.45rem .9rem;font-size:.85rem}.sub-actions button:disabled{opacity:.5;cursor:default}.sub-key-form{border-top:1px solid var(--border);margin-top:1rem;padding-top:.75rem}.sub-key-form label{color:var(--text-muted);margin-bottom:.35rem;font-size:.78rem;display:block}.sub-key-row{gap:.5rem;display:flex}.sub-key-row input{background:var(--input-bg);border:1px solid var(--btn-border);color:var(--text);border-radius:6px;padding:.4rem .6rem;font-size:.85rem}.sub-key-row button{border:1px solid var(--btn-border);color:var(--text);cursor:pointer;background:0 0;border-radius:6px;padding:.4rem .9rem;font-size:.85rem}.sub-card .agent-row{border-bottom:1px solid var(--border);justify-content:space-between;padding:.45rem 0;font-size:.9rem;display:flex}.sub-card .agent-row:last-of-type{border-bottom:none}.sub-card .agent-row span:first-child{color:var(--text-muted)}
