html,body,#root{margin:0;padding:0;width:100%;min-height:100%}body{min-width:320px;font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;color:#0f172a;background:#f3f6fb;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:radial-gradient(circle at 15% 10%,#dbeafe 0%,transparent 35%),radial-gradient(circle at 85% 15%,#cffafe 0%,transparent 35%),linear-gradient(180deg,#eef2ff,#f8fafc 40%,#f1f5f9)}.page{width:100%;max-width:1680px;margin:14px auto;padding-inline:24px}.dashboard-shell{width:100%;margin-inline:auto;display:grid;grid-template-columns:290px minmax(0,1fr);gap:16px;align-items:start}.sidebar{position:sticky;top:14px;background:linear-gradient(180deg,#0f172a,#111b33);color:#e2e8f0;border-radius:16px;padding:20px 16px;display:flex;flex-direction:column;gap:14px;min-height:calc(100vh - 28px);border:1px solid rgba(148,163,184,.2);box-shadow:0 18px 40px #02061747}.sidebar-brand h1{font-size:20px;margin:0;color:#f8fafc;letter-spacing:.2px}.sidebar-brand p{margin:7px 0 0;color:#9fb0c7;font-size:13px}.menu-list{display:flex;flex-direction:column;gap:8px}.menu-item{background:transparent;border:1px solid #22314d;color:#d6deea;border-radius:10px;padding:11px 12px;text-align:left;font-weight:600;cursor:pointer;transition:all .16s ease}.menu-item:hover{border-color:#35507e;background:#2563eb29}.menu-item.active{border-color:#60a5fa;background:linear-gradient(90deg,#1d4ed8,#2563eb);color:#fff}.btn-logout{margin-top:auto;background:linear-gradient(90deg,#dc2626,#ef4444);color:#fff;border:0;border-radius:10px;padding:10px 12px;font-weight:700;cursor:pointer}.content{display:grid;gap:14px;min-width:0}.card{background:#fffffff2;border:1px solid #dbe3ef;border-radius:14px;padding:16px;box-shadow:0 10px 26px #0f172a0f;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.content-header{display:flex;align-items:center;justify-content:space-between}.content-header h2{margin:0;font-size:24px}.muted{color:#64748b;font-size:13px}label{display:grid;gap:6px;font-weight:600}input,select,textarea{width:100%;padding:9px 10px;border-radius:8px;border:1px solid #cbd5e1;background:#fff}input:focus,select:focus,textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}button{padding:10px 14px;border:0;border-radius:8px;background:linear-gradient(90deg,#1d4ed8,#2563eb);color:#fff;font-weight:700;cursor:pointer}button:disabled{opacity:.65;cursor:not-allowed}.btn-danger{background:linear-gradient(90deg,#b91c1c,#dc2626)}.error{color:#b91c1c;font-weight:600}.cards-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric-card{border-left:4px solid #3b82f6}.metric{font-size:30px;font-weight:800;margin:4px 0}.actions-row{display:flex;gap:10px;margin-bottom:10px;flex-wrap:wrap}.server-filter-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.server-select{border:1px solid #cbd5e1;border-radius:10px;padding:8px 12px;min-width:320px;background:#fff}.server-detail-grid{margin-top:14px;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.detail-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:4px}.detail-item span{color:#64748b;font-size:12px}table{width:100%;border-collapse:separate;border-spacing:0;margin-top:12px;font-size:14px;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}th,td{border-bottom:1px solid #e2e8f0;text-align:left;padding:10px;white-space:nowrap}th{color:#334155;background:#f8fafc;position:sticky;top:0;z-index:1}tbody tr:last-child td{border-bottom:0}.badge{display:inline-block;font-size:12px;padding:4px 10px;border-radius:999px;font-weight:700}.badge-online,.badge-succeeded{background:#dcfce7;color:#166534}.badge-offline,.badge-failed,.badge-canceled{background:#fee2e2;color:#991b1b}.badge-queued,.badge-retrying{background:#fef3c7;color:#92400e}.badge-running{background:#dbeafe;color:#1e40af}.clickable-row{cursor:pointer}.clickable-row:hover{background:#f8fafc}.selected-row{background:#e0edff}.ipblock-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.table-toolbar{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid #dbe3ef;border-radius:10px;background:#f8fbff}.attached-server-chip{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;border:1px solid #bfdbfe;background:#eff6ff;color:#1e3a8a;font-size:12px;font-weight:600}.storage-folder-input-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.storage-folder-status-list{margin-top:8px;display:grid;gap:6px}.storage-folder-status-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;border:1px solid #dbe3ef;background:#f8fafc}.storage-folder-status-item .path{font-family:Consolas,Courier New,monospace;font-size:12px}.storage-folder-status-item .meta{margin-top:3px;font-size:12px;font-weight:600}.compact-field input{height:34px;max-width:360px}.storage-folder-status-item.ok{border-color:#86efac;background:#f0fdf4}.storage-folder-status-item.warn{border-color:#fca5a5;background:#fef2f2}.docs-page h3{margin-top:16px;margin-bottom:8px}.docs-page pre{background:#0f172a;color:#e2e8f0;border-radius:10px;padding:12px;overflow:auto}.vm-modal-backdrop{position:fixed;inset:0;background:#02061780;display:flex;align-items:center;justify-content:center;padding:16px;z-index:1000}.vm-modal{width:min(1080px,96vw);max-height:92vh;overflow:auto}.vm-modal-header{display:flex;justify-content:space-between;align-items:center;gap:10px}.success-text{color:#166534;font-weight:700}.log-box{max-height:260px;overflow:auto;background:#0f172a;color:#e2e8f0;border-radius:10px;padding:10px}.log-line{font-family:Consolas,Courier New,monospace;font-size:12px;padding:6px 8px;border-bottom:1px dashed rgba(148,163,184,.35);border-left:3px solid transparent;border-radius:6px;margin-bottom:4px}.log-line:last-child{border-bottom:none;margin-bottom:0}.log-time{color:#93c5fd}.log-phase{display:inline-block;min-width:62px;text-align:center;font-size:10px;font-weight:800;letter-spacing:.4px;border-radius:999px;padding:1px 8px;margin-right:4px;border:1px solid rgba(148,163,184,.4)}.log-line.phase-export{border-left-color:#f59e0b;background:#f59e0b14}.log-line.phase-import{border-left-color:#60a5fa;background:#60a5fa14}.log-line.phase-network{border-left-color:#34d399;background:#34d39914}.log-line.phase-config{border-left-color:#c084fc;background:#c084fc14}.log-line.phase-error{border-left-color:#f87171;background:#f871711a}.log-line.phase-success{border-left-color:#4ade80;background:#4ade801a}.log-line.phase-system{border-left-color:#94a3b8;background:#94a3b814}.vm-action-grid{margin-top:14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.slim-card{padding:12px}.slim-card h4{margin:0 0 10px}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.create-vm-section{max-width:760px}.create-vm-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;align-items:start}.create-vm-field,.create-vm-field input,.create-vm-field select{width:100%;max-width:320px}.create-vm-field.password-field{max-width:420px;grid-column:1 / -1}.create-vm-field.password-field input{max-width:420px}.checkbox-row{margin:8px 0;display:flex;flex-wrap:wrap;gap:12px}.danger-card{border-left:4px solid #ef4444}.vm-tab-row{margin:10px 0;display:flex;gap:8px;flex-wrap:wrap}.vm-tab{background:#e2e8f0;color:#0f172a}.vm-tab.active{background:#1d4ed8;color:#fff}@media(max-width:1400px){.cards-grid,.vm-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:980px){.page{padding-inline:12px}.dashboard-shell{grid-template-columns:1fr}.sidebar{position:static;min-height:unset}.server-filter-row{flex-direction:column;align-items:stretch}.server-select{min-width:unset}.form-grid-2,.vm-action-grid,.cards-grid,.ipblock-detail-grid{grid-template-columns:1fr}.create-vm-field,.create-vm-field input,.create-vm-field select,.create-vm-field.password-field,.create-vm-field.password-field input{max-width:100%}.table-toolbar{flex-direction:column;align-items:flex-start}.storage-folder-input-row{grid-template-columns:1fr}table{font-size:13px;display:block;overflow-x:auto}}
