﻿*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
    body{background:#1a1e2e;color:#fff;font-family:'Inter',-apple-system,Arial,sans-serif;font-size:14px;height:100vh;overflow:hidden;display:flex;flex-direction:column}
    .demo-banner{background:rgba(26,30,46,.95);border-bottom:1px solid rgba(255,255,255,.07);padding:6px 20px;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#8892a4;flex-shrink:0}
    .back-link{color:#8892a4;text-decoration:none}
    .back-link:hover{color:#e0e0e0}
    .app-root{display:flex;flex:1;overflow:hidden}

    
    .sidebar{width:250px;background:#2a2e3e;display:flex;flex-direction:column;height:100%;flex-shrink:0;overflow-y:auto}
    .sidebar-header{padding:20px 16px 12px;border-bottom:1px solid rgba(255,255,255,.06)}
    .app-title{font-size:18px;font-weight:700;color:#f1c40f;margin-bottom:2px}
    .app-version{font-size:11px;color:#8892a4}

    
    .sidebar-section{padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.05)}
    .sidebar-section-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#8892a4;margin-bottom:8px}
    .stat-row{display:flex;align-items:center;justify-content:space-between;padding:5px 0;font-size:12px}
    .stat-key{color:#8892a4}
    .stat-val{color:#e0e0e0;font-weight:500}
    .stat-val.running{color:#2ecc71}
    .stat-val.warn{color:#f39c12}

    
    .res-row{margin-bottom:10px}
    .res-header{display:flex;justify-content:space-between;font-size:11px;color:#8892a4;margin-bottom:4px}
    .res-header span:last-child{color:#e0e0e0}
    .progress-track{height:6px;background:rgba(255,255,255,.08);border-radius:3px;overflow:hidden}
    .progress-fill{height:100%;border-radius:3px;transition:width .4s}
    .fill-cpu{background:#3498db}
    .fill-mem{background:#9b59b6}
    .fill-disk{background:#1abc9c}

    
    .sidebar-actions{padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.05);display:flex;flex-direction:column;gap:8px}
    .btn-action{border:none;border-radius:8px;padding:9px 14px;font-size:13px;font-weight:600;cursor:pointer;font-family:'Inter',sans-serif;transition:opacity .15s}
    .btn-action:hover{opacity:.85}
    .btn-start{background:#2ecc71;color:#111}
    .btn-restart{background:#3498db;color:#fff}
    .btn-stop{background:#e74c3c;color:#fff}
    .btn-disabled{background:#555;color:#999;cursor:not-allowed}

    
    .app-list{padding:8px;flex:1}
    .app-list-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#8892a4;padding:4px 8px 6px}
    .app-item{display:flex;align-items:center;gap:8px;padding:8px;border-radius:8px;cursor:pointer;transition:background .15s;margin-bottom:2px}
    .app-item:hover,.app-item.active{background:rgba(255,255,255,.07)}
    .app-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
    .dot-green{background:#2ecc71}
    .dot-red{background:#e74c3c}
    .dot-yellow{background:#f39c12}
    .app-item-name{font-size:12px;font-weight:500}
    .app-item-status{font-size:10px;color:#8892a4;margin-left:auto}

    
    .main{flex:1;display:flex;flex-direction:column;overflow:hidden}
    .main-header{background:#2a2e3e;padding:0 20px;border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0}
    .main-title{padding:16px 0 0;font-size:22px;font-weight:700;margin-bottom:12px}

    
    .tabs{display:flex;gap:0}
    .tab-btn{background:none;border:none;color:#8892a4;padding:10px 18px;font-size:13px;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;transition:all .15s;font-family:'Inter',sans-serif}
    .tab-btn:hover{color:#e0e0e0}
    .tab-btn.active{color:#f1c40f;border-bottom-color:#f1c40f}

    
    .panel{display:none;flex:1;overflow:auto;padding:20px}
    .panel.active{display:flex;flex-direction:column}

    
    .console{flex:1;background:#0a0b10;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:14px;font-family:'JetBrains Mono','Fira Code',monospace;font-size:12px;line-height:1.9;overflow-y:auto;max-height:calc(100vh - 240px)}
    .log-ts{color:#4a5568}
    .log-info{color:#3b82f6}
    .log-warn{color:#f59e0b}
    .log-error{color:#ef4444}
    .log-ok{color:#10b981}
    .log-line{display:flex;gap:8px}

    
    .charts-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;flex-shrink:0}
    .chart-box{background:#2a2e3e;border-radius:10px;padding:14px}
    .chart-box-title{font-size:12px;font-weight:600;color:#8892a4;margin-bottom:10px}

    
    .users-wrap{display:flex;flex-direction:column;gap:20px;max-height:calc(100vh - 220px);overflow-y:auto}
    .panel-card{background:#2a2e3e;border-radius:10px;padding:16px}
    .panel-card-title{font-size:14px;font-weight:600;margin-bottom:12px;color:#e0e0e0}
    table{width:100%;border-collapse:collapse}
    th{padding:8px 12px;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#8892a4;border-bottom:1px solid rgba(255,255,255,.06)}
    td{padding:10px 12px;font-size:13px;border-bottom:1px solid rgba(255,255,255,.04)}
    tr:last-child td{border-bottom:none}
    tr:hover td{background:rgba(255,255,255,.03)}
    .role-badge{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}
    .role-admin{background:rgba(241,196,15,.15);color:#f1c40f}
    .role-user{background:rgba(255,255,255,.1);color:#8892a4}
    .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
    .form-field{display:flex;flex-direction:column;gap:4px}
    .form-field label{font-size:11px;color:#8892a4;font-weight:600;text-transform:uppercase;letter-spacing:.05em}
    .form-input{background:#1a1e2e;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#e0e0e0;padding:7px 10px;font-size:13px;outline:none;transition:border-color .15s;font-family:'Inter',sans-serif}
    .form-input:focus{border-color:#3498db}
    .form-select{background:#1a1e2e;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#e0e0e0;padding:7px 10px;font-size:13px;outline:none;font-family:'Inter',sans-serif}
    .btn-add{background:#2ecc71;border:none;border-radius:6px;color:#111;padding:8px 18px;font-size:13px;font-weight:600;cursor:pointer;margin-top:10px;font-family:'Inter',sans-serif}
    .btn-action-small{background:none;border:1px solid rgba(255,255,255,.1);border-radius:4px;color:#8892a4;padding:3px 8px;font-size:11px;cursor:pointer;font-family:'Inter',sans-serif}
    .btn-action-small:hover{color:#e0e0e0;border-color:rgba(255,255,255,.2)}
    .btn-del{border-color:rgba(231,76,60,.3);color:#e74c3c}

    
    .backup-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:13px}
    .backup-row:last-child{border-bottom:none}
    .backup-icon{font-size:18px}
    .backup-name{font-weight:500;flex:1}
    .backup-date{color:#8892a4;font-size:12px}
    .backup-size{color:#8892a4;font-size:12px;width:80px;text-align:right}

    
    .settings-section{margin-bottom:20px}
    .settings-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:#8892a4;margin-bottom:10px}
    .setting-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.04);font-size:13px}
    .setting-row:last-child{border-bottom:none}
    .toggle{position:relative;display:inline-block;width:36px;height:20px;cursor:pointer}
    .toggle input{opacity:0;width:0;height:0}
    .toggle-track{position:absolute;inset:0;background:#444;border-radius:10px;transition:.2s}
    .toggle input:checked+.toggle-track{background:#2ecc71}
    .toggle-thumb{position:absolute;left:3px;top:3px;width:14px;height:14px;background:#fff;border-radius:50%;transition:.2s}
    .toggle input:checked~.toggle-thumb{left:19px}
