*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#fff;color:#1a1a1a;overflow-x:hidden;margin:0;min-height:100vh}#root{max-width:100%;margin:0;padding:0;min-height:100vh}.header{background:#f8f9fa;padding:12px 16px;border-bottom:2px solid #e9ecef;position:sticky;top:0;z-index:100}.header-content{display:flex;align-items:center;justify-content:space-between}.hamburger{width:44px;height:44px;cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;border-radius:8px;transition:background .2s ease}.hamburger:hover{background:#0000000d}.hamburger span{width:24px;height:3px;background:#495057;border-radius:2px;transition:all .3s ease}.app-title{font-size:14px;font-weight:600;color:#6c757d;text-transform:uppercase;letter-spacing:.5px}.system-status{padding:8px 20px;border-radius:24px;font-weight:700;font-size:14px;display:flex;align-items:center;gap:8px;text-transform:uppercase}.system-status.online{background:#28a745;color:#fff}.system-status.warning{background:#ffc107;color:#000}.system-status.critical{background:#dc3545;color:#fff;animation:blink 2s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.8}}.slide-menu{position:fixed;top:0;left:-300px;width:300px;height:100vh;background:#fff;box-shadow:4px 0 20px #0000001a;transition:left .3s ease;z-index:200;overflow-y:auto}.slide-menu.active{left:0}.menu-header{padding:24px;background:#f8f9fa;border-bottom:1px solid #dee2e6}.menu-title{font-size:20px;font-weight:700;color:#212529;margin-bottom:4px}.menu-subtitle{font-size:13px;color:#6c757d}.menu-nav{padding:16px 0}.menu-item{display:flex;align-items:center;padding:16px 24px;cursor:pointer;transition:all .2s ease;color:#495057;text-decoration:none;font-size:16px;font-weight:500}.menu-item:hover{background:#f8f9fa}.menu-item.active{background:#e3f2fd;color:#1976d2;border-left:4px solid #1976d2}.menu-icon{width:24px;height:24px;margin-right:16px;display:flex;align-items:center;justify-content:center;font-size:20px}.content{min-height:100vh;background:#fff}.page{display:none;padding:20px}.page.active{display:block}.status-summary{background:#f8f9fa;border-radius:12px;padding:20px;margin-bottom:24px;border:1px solid #dee2e6}.summary-title{font-size:18px;font-weight:700;color:#212529;margin-bottom:16px}.status-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.status-item{background:#fff;padding:16px;border-radius:8px;text-align:center;border:1px solid #e9ecef}.status-value{font-size:32px;font-weight:700;margin-bottom:4px}.status-item.green .status-value{color:#28a745}.status-item.yellow .status-value{color:#ffc107}.status-item.red .status-value{color:#dc3545}.status-label{font-size:12px;color:#6c757d;text-transform:uppercase;font-weight:600}.server-group{background:#fff;border:1px solid #dee2e6;border-radius:12px;margin-bottom:16px;overflow:hidden}.server-header{background:#f8f9fa;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:background .2s ease}.server-header:hover{background:#e9ecef}.server-name{font-size:16px;font-weight:600;color:#212529}.server-status{display:flex;align-items:center;gap:8px}.status-dot{width:12px;height:12px;border-radius:50%;background:#28a745}.status-dot.warning{background:#ffc107}.status-dot.error{background:#dc3545}.server-info{font-size:12px;color:#6c757d}.agent-list{padding:8px}.agent-item{background:#f8f9fa;border-radius:8px;padding:12px 16px;margin:8px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:all .2s ease}.agent-item:hover{background:#e9ecef;transform:translate(4px)}.agent-info{flex:1}.agent-name{font-size:14px;font-weight:600;color:#212529}.agent-details{font-size:12px;color:#6c757d;margin-top:2px}.agent-status{padding:4px 12px;border-radius:16px;font-size:11px;font-weight:700;text-transform:uppercase}.agent-status.active,.agent-status.online{background:#d4edda;color:#155724}.agent-status.warning{background:#fff3cd;color:#856404}.agent-status.error,.agent-status.offline,.agent-status.critical{background:#f8d7da;color:#721c24}.agent-status.disabled{background:#e2e3e5;color:#383d41}.screenshot-container{display:flex;gap:20px;padding:20px;margin:-20px;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.screenshot-container::-webkit-scrollbar{height:12px}.screenshot-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:6px}.screenshot-container::-webkit-scrollbar-thumb{background:#888;border-radius:6px}.screenshot-container::-webkit-scrollbar-thumb:hover{background:#555}.screenshot-item{background:#fff;border:1px solid #dee2e6;border-radius:8px;cursor:pointer;transition:all .2s ease;overflow:hidden;flex:0 0 600px;min-width:600px}.screenshot-item:hover{background:#f8f9fa;transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.screenshot-preview{width:100%;height:600px;background:#e9ecef;display:flex;align-items:center;justify-content:center;font-size:48px;color:#adb5bd;overflow:hidden;position:relative}.screenshot-preview img{width:100%;height:100%;object-fit:contain}.screenshot-info{padding:16px 20px}.screenshot-title{font-size:16px;font-weight:600;color:#212529;margin-bottom:4px}.screenshot-meta{font-size:13px;color:#6c757d}.settings-section{background:#fff;border:1px solid #dee2e6;border-radius:12px;padding:24px;margin-bottom:20px}.section-title{font-size:18px;font-weight:700;color:#212529;margin-bottom:20px}.setting-item{display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid #f8f9fa}.setting-item:last-child{border-bottom:none}.setting-label{font-size:14px;color:#212529;font-weight:500}.setting-description{font-size:12px;color:#6c757d;margin-top:4px}.toggle-switch{width:52px;height:28px;background:#ced4da;border-radius:14px;position:relative;cursor:pointer;transition:background .3s ease}.toggle-switch.active{background:#28a745}.toggle-switch:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;background:#fff;border-radius:50%;transition:transform .3s ease;box-shadow:0 2px 4px #0003}.toggle-switch.active:after{transform:translate(24px)}.input-group{display:flex;align-items:center;gap:8px}.input-field{width:80px;padding:8px 12px;border:2px solid #ced4da;border-radius:6px;font-size:14px;text-align:center;font-weight:600}.input-field:focus{outline:none;border-color:#1976d2}.input-unit{font-size:13px;color:#6c757d;font-weight:600}.button{width:100%;padding:14px;background:#1976d2;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s ease}.button:hover{background:#1565c0}.button:active{transform:translateY(1px)}.modal{position:fixed;inset:0;background:#00000080;display:none;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal.active{display:flex}.modal-content{background:#fff;border-radius:12px;width:100%;max-width:400px;padding:24px}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-title{font-size:20px;font-weight:700;color:#212529}.modal-close{width:36px;height:36px;background:#f8f9fa;border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:24px;color:#6c757d;transition:all .2s ease}.modal-close:hover{background:#e9ecef}.detail-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #f8f9fa}.detail-row:last-child{border-bottom:none}.detail-label{font-size:14px;color:#6c757d;font-weight:500}.detail-value{font-size:14px;font-weight:600;color:#212529}.overlay{position:fixed;inset:0;background:#0000004d;opacity:0;visibility:hidden;transition:all .3s ease;z-index:150}.overlay.active{opacity:1;visibility:visible}.agent-data-table{width:100%;border-collapse:collapse;margin-top:1rem}.agent-data-table th,.agent-data-table td{padding:.75rem;text-align:left;border-bottom:1px solid #dee2e6}.agent-data-table th{background:#f8f9fa;font-weight:700;color:#212529}.agent-data-table tr:hover{background:#f8f9fa}.agent-type-badge{padding:.25rem .5rem;border-radius:4px;font-size:.8rem;font-weight:700;text-transform:uppercase}.agent-type-badge.yudin{background:#2196f3;color:#fff}.agent-type-badge.tslab{background:#4caf50;color:#fff}.agent-type-badge.quik{background:#ff9800;color:#fff}.agent-type-badge.screenshot_upload{background:#9c27b0;color:#fff}.agent-data-details{max-width:300px}.agent-data-details summary{cursor:pointer;color:#1976d2;font-size:.9rem}.agent-data-json{background:#f8f9fa;padding:.5rem;margin-top:.5rem;border-radius:4px;font-size:.8rem;overflow-x:auto;max-width:300px;max-height:200px;overflow-y:auto}.loading,.error{text-align:center;padding:2rem;font-size:1.2rem}.error{color:#dc3545}.error-banner{background:#ffc107;color:#000;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:500;border-bottom:2px solid #e09800;animation:slideDown .3s ease}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.error-icon{font-size:20px;flex-shrink:0}.error-message{flex:1}.error-dismiss{background:none;border:none;color:#000;font-size:20px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:background .2s ease}.error-dismiss:hover{background:#0000001a}@media (max-width: 768px){.screenshot-container{flex-direction:column;gap:0;padding:0;overflow-x:visible}.screenshot-item{border-radius:0;border:none;border-bottom:1px solid #dee2e6;flex:none;min-width:100%}.screenshot-item:hover{transform:none;box-shadow:none}.screenshot-preview{height:200px;aspect-ratio:1 / 1}.screenshot-preview img{object-fit:cover;object-position:bottom}}@media (min-width: 769px) and (max-width: 1024px){.screenshot-item{flex:0 0 400px;min-width:400px}.screenshot-preview{height:400px}}@media (min-width: 1400px){.screenshot-preview{height:700px}.screenshot-item{flex:0 0 700px;min-width:700px}}@media (min-width: 1920px){.screenshot-preview{height:800px}.screenshot-item{flex:0 0 800px;min-width:800px}}footer{margin-top:3rem;text-align:center;color:#6c757d;font-size:.9rem}.fullscreen-gallery{position:fixed;inset:0;background:#000;z-index:10000;display:flex;flex-direction:column;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.gallery-close{position:absolute;top:20px;right:20px;background:none;border:none;color:#fff;font-size:48px;cursor:pointer;z-index:10001;transition:transform .2s}.gallery-close:hover{transform:scale(1.1)}.gallery-content{flex:1;display:flex;align-items:center;justify-content:center;position:relative;padding:0;width:100%;height:100%}.gallery-nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;font-size:48px;width:60px;height:60px;border-radius:50%;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center}.gallery-nav:hover{background:#fff3;transform:translateY(-50%) scale(1.1)}.gallery-nav-prev{left:20px}.gallery-nav-next{right:20px}.gallery-image-container{width:100%;height:100%;position:relative;display:flex;align-items:center;justify-content:center}.gallery-image{width:100%;height:100%;object-fit:contain;box-shadow:none}.gallery-info{position:absolute;top:20px;left:50%;transform:translate(-50%);text-align:center;color:#fff;background:#000c;padding:10px 20px;border-radius:8px;min-width:300px;z-index:10}.gallery-title{font-size:18px;font-weight:700;margin-bottom:5px}.gallery-subtitle{font-size:14px;color:#ccc;margin-bottom:5px}.gallery-meta{font-size:12px;color:#999}.gallery-thumbnails{position:fixed;bottom:10px;left:50%;transform:translate(-50%);display:flex;gap:10px;max-width:90%;overflow-x:auto;padding:10px;background:#000000e6;border-radius:8px;z-index:10002}.gallery-thumbnail{width:60px;height:60px;cursor:pointer;opacity:.6;transition:all .3s;flex-shrink:0;border:2px solid transparent;border-radius:4px;overflow:hidden}.gallery-thumbnail.active{opacity:1;border-color:#fff}.gallery-thumbnail:hover{opacity:1;transform:scale(1.1)}.gallery-thumbnail img{width:100%;height:100%;object-fit:cover}@media (max-width: 768px){.gallery-content{padding:0}.gallery-nav{width:50px;height:50px;font-size:36px}.gallery-nav-prev{left:10px}.gallery-nav-next{right:10px}.gallery-info{top:10px;min-width:250px;font-size:14px}.gallery-thumbnails{bottom:10px;padding:5px}.gallery-thumbnail{width:40px;height:40px}}
