*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--bg-primary: #0f1117;--bg-secondary: #161a24;--bg-card: #1c2030;--bg-card-hover: #232840;--bg-input: #1a1e2e;--bg-modal: #1c2030;--bg-sidebar: #12151e;--border-color: #2a2f42;--border-light: #333850;--text-primary: #e8eaf0;--text-secondary: #8b90a5;--text-muted: #5a5f75;--text-inverse: #0f1117;--accent: #7c5cfc;--accent-hover: #9178ff;--accent-light: rgba(124, 92, 252, .15);--accent-glow: rgba(124, 92, 252, .3);--green: #22c55e;--green-bg: rgba(34, 197, 94, .12);--red: #ef4444;--red-bg: rgba(239, 68, 68, .12);--yellow: #f59e0b;--yellow-bg: rgba(245, 158, 11, .12);--blue: #3b82f6;--blue-bg: rgba(59, 130, 246, .12);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .4);--shadow-glow: 0 0 20px var(--accent-glow);--transition-fast: .15s ease;--transition: .25s ease;--transition-slow: .4s ease;--sidebar-width: 260px;--sidebar-collapsed: 72px;--header-height: 64px}body{font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;overflow:hidden;height:100vh}a{color:var(--accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-hover)}.app-layout{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--border-color);display:flex;flex-direction:column;transition:width var(--transition),min-width var(--transition);z-index:100}.sidebar-header{height:var(--header-height);display:flex;align-items:center;padding:0 var(--sp-5);border-bottom:1px solid var(--border-color)}.sidebar-logo{display:flex;align-items:center;gap:var(--sp-3)}.sidebar-logo-icon{width:36px;height:36px;background:linear-gradient(135deg,var(--accent),#a78bfa);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:800;color:#fff;flex-shrink:0}.sidebar-logo-text{font-size:17px;font-weight:700;color:var(--text-primary);letter-spacing:-.3px}.sidebar-logo-text span{color:var(--text-muted);font-weight:400;font-size:11px;display:block;margin-top:-2px}.sidebar-nav{flex:1;padding:var(--sp-4) var(--sp-3);overflow-y:auto}.nav-section{margin-bottom:var(--sp-6)}.nav-section-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-muted);padding:0 var(--sp-3);margin-bottom:var(--sp-2)}.nav-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-3);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);font-size:14px;font-weight:500;position:relative;-webkit-user-select:none;user-select:none}.nav-item:hover{background:var(--bg-card);color:var(--text-primary)}.nav-item.active{background:var(--accent-light);color:var(--accent)}.nav-item.active:before{content:"";position:absolute;left:-12px;top:50%;transform:translateY(-50%);width:3px;height:20px;background:var(--accent);border-radius:0 3px 3px 0}.nav-item .material-icons-round{font-size:20px;width:20px;text-align:center}.nav-badge{margin-left:auto;background:var(--accent);color:#fff;font-size:10px;font-weight:700;padding:2px 7px;border-radius:var(--radius-full);min-width:20px;text-align:center}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.main-header{height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 var(--sp-8);border-bottom:1px solid var(--border-color);background:var(--bg-secondary);flex-shrink:0}.main-header h1{font-size:20px;font-weight:700;letter-spacing:-.3px}.header-actions{display:flex;align-items:center;gap:var(--sp-3)}.page-content{flex:1;overflow-y:auto;padding:var(--sp-8);scroll-behavior:smooth}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--sp-6);transition:all var(--transition)}.card:hover{border-color:var(--border-light)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-5)}.card-title{font-size:15px;font-weight:600;color:var(--text-primary)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--sp-5);margin-bottom:var(--sp-8)}.stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--sp-6);display:flex;align-items:flex-start;gap:var(--sp-4);transition:all var(--transition);position:relative;overflow:hidden}.stat-card:after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:0;transition:opacity var(--transition)}.stat-card:hover{border-color:var(--border-light);transform:translateY(-2px);box-shadow:var(--shadow)}.stat-card:hover:after{opacity:1}.stat-icon{width:44px;height:44px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}.stat-icon.green{background:var(--green-bg);color:var(--green)}.stat-icon.red{background:var(--red-bg);color:var(--red)}.stat-icon.yellow{background:var(--yellow-bg);color:var(--yellow)}.stat-icon.blue{background:var(--blue-bg);color:var(--blue)}.stat-icon.accent{background:var(--accent-light);color:var(--accent)}.stat-info{flex:1}.stat-label{font-size:12px;color:var(--text-secondary);font-weight:500;margin-bottom:var(--sp-1)}.stat-value{font-size:28px;font-weight:800;line-height:1.1;letter-spacing:-1px}.stat-change{font-size:12px;font-weight:500;margin-top:var(--sp-1)}.stat-change.up{color:var(--green)}.stat-change.down{color:var(--red)}.health-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-4)}.health-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);padding:var(--sp-4) var(--sp-5);display:flex;align-items:center;gap:var(--sp-3);cursor:pointer;transition:all var(--transition-fast)}.health-card:hover{border-color:var(--border-light);background:var(--bg-card-hover)}.health-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.health-dot.online{background:var(--green);box-shadow:0 0 8px var(--green)}.health-dot.offline,.health-dot.error{background:var(--red);box-shadow:0 0 8px var(--red)}.health-dot.updating{background:var(--yellow);box-shadow:0 0 8px var(--yellow);animation:pulse 1.5s infinite}.health-dot.provisioning{background:var(--blue);box-shadow:0 0 8px var(--blue);animation:pulse 1.5s infinite}.health-dot.suspended{background:var(--text-muted)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.health-info{flex:1;min-width:0}.health-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.health-domain{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-container{overflow-x:auto;border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--bg-card)}table{width:100%;border-collapse:collapse}thead th{text-align:left;padding:var(--sp-3) var(--sp-5);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);border-bottom:1px solid var(--border-color);background:var(--bg-secondary);white-space:nowrap}thead th:first-child{border-radius:var(--radius-lg) 0 0 0}thead th:last-child{border-radius:0 var(--radius-lg) 0 0}tbody td{padding:var(--sp-4) var(--sp-5);font-size:13px;border-bottom:1px solid var(--border-color);white-space:nowrap}tbody tr{transition:background var(--transition-fast)}tbody tr:hover{background:var(--bg-card-hover)}tbody tr:last-child td{border-bottom:none}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--radius-full);font-size:11px;font-weight:600;letter-spacing:.2px}.badge.online{background:var(--green-bg);color:var(--green)}.badge.offline,.badge.error{background:var(--red-bg);color:var(--red)}.badge.updating{background:var(--yellow-bg);color:var(--yellow)}.badge.provisioning{background:var(--blue-bg);color:var(--blue)}.badge.suspended{background:#64648226;color:var(--text-muted)}.badge.auto{background:var(--green-bg);color:var(--green)}.badge.manual{background:var(--blue-bg);color:var(--blue)}.badge.completed{background:var(--green-bg);color:var(--green)}.badge.failed{background:var(--red-bg);color:var(--red)}.badge.in_progress{background:var(--yellow-bg);color:var(--yellow)}.badge.pending{background:#64648226;color:var(--text-muted)}.badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-radius:var(--radius);font-size:13px;font-weight:600;font-family:var(--font);border:1px solid transparent;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;line-height:1.5}.btn .material-icons-round{font-size:18px}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);box-shadow:var(--shadow-glow);transform:translateY(-1px)}.btn-secondary{background:transparent;color:var(--text-primary);border-color:var(--border-color)}.btn-secondary:hover{background:var(--bg-card);border-color:var(--border-light)}.btn-ghost{background:transparent;color:var(--text-secondary);padding:var(--sp-2)}.btn-ghost:hover{background:var(--bg-card);color:var(--text-primary)}.btn-danger{background:transparent;color:var(--red);border-color:var(--red)}.btn-danger:hover{background:var(--red-bg)}.btn-sm{padding:var(--sp-1) var(--sp-3);font-size:12px}.btn-sm .material-icons-round{font-size:16px}.btn-lg{padding:var(--sp-3) var(--sp-6);font-size:14px}.btn-icon{width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:var(--radius)}.form-group{margin-bottom:var(--sp-5)}.form-label{display:block;font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:var(--sp-2);text-transform:uppercase;letter-spacing:.5px}.form-input{width:100%;padding:var(--sp-3) var(--sp-4);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius);color:var(--text-primary);font-family:var(--font);font-size:14px;transition:all var(--transition-fast);outline:none}.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.form-input::placeholder{color:var(--text-muted)}select.form-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238b90a5' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}.modal{background:var(--bg-modal);border:1px solid var(--border-color);border-radius:var(--radius-xl);width:90%;max-width:560px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:slideUp .3s ease}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-6);border-bottom:1px solid var(--border-color)}.modal-title{font-size:18px;font-weight:700;display:flex;align-items:center;gap:var(--sp-3)}.modal-body{padding:var(--sp-6)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--sp-3);padding:var(--sp-4) var(--sp-6);border-top:1px solid var(--border-color)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.progress-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}.progress-dialog{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:min(560px,90vw);max-height:80vh;display:flex;flex-direction:column;box-shadow:0 24px 48px #00000080;animation:modalSlideIn .3s ease}.progress-dialog-header{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-5) var(--sp-6);border-bottom:1px solid var(--border-color)}.progress-dialog-header .material-icons-round{font-size:22px;color:var(--accent)}.progress-dialog-title{flex:1;font-size:15px;font-weight:700}.progress-dialog-step{font-size:12px;color:var(--text-muted);font-family:var(--font-mono)}.progress-bar-track{height:3px;background:var(--border-color);position:relative;overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-hover));transition:width .5s ease;border-radius:2px}.progress-bar-fill.indeterminate{width:30%!important;animation:indeterminate 1.5s ease-in-out infinite}@keyframes indeterminate{0%{transform:translate(-100%)}to{transform:translate(400%)}}.progress-dialog-log{flex:1;overflow-y:auto;padding:var(--sp-4) var(--sp-5);max-height:300px;min-height:120px;font-family:var(--font-mono);font-size:12px;line-height:1.8;background:var(--bg-primary)}.progress-log-line{display:flex;gap:var(--sp-2);padding:2px 0;animation:fadeIn .2s ease}.progress-log-time{color:var(--text-muted);flex-shrink:0}.progress-log-msg{color:var(--text-secondary)}.progress-dialog-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-6);border-top:1px solid var(--border-color)}.progress-status{display:flex;align-items:center;gap:var(--sp-2);font-size:13px;color:var(--text-muted)}.progress-status .spinner-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:pulse 1s ease-in-out infinite}.progress-status.completed{color:var(--green)}.progress-status.completed .spinner-dot{background:var(--green);animation:none}.progress-status.failed{color:var(--red)}.progress-status.failed .spinner-dot{background:var(--red);animation:none}.spinner-inline{display:inline-block;width:14px;height:14px;border:2px solid var(--border-color);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle}.checkbox-group{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-2)}.checkbox-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast)}.checkbox-item:hover{background:var(--bg-card-hover)}.checkbox-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.checkbox-item label{font-size:13px;cursor:pointer;color:var(--text-secondary)}.checkbox-item input:checked+label{color:var(--text-primary)}.ms-dropdown{display:none;position:fixed;z-index:9999;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);padding:var(--sp-2);box-shadow:0 8px 24px #00000080;max-height:220px;overflow-y:auto;min-width:200px}.ms-option{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2);border-radius:4px;cursor:pointer;font-size:13px;transition:background .15s ease}.ms-option:hover{background:var(--bg-card-hover)}.radio-group{display:flex;flex-direction:column;gap:var(--sp-2)}.radio-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);cursor:pointer}.radio-item:hover{background:var(--bg-card-hover)}.radio-item input[type=radio]{accent-color:var(--accent);cursor:pointer}.radio-item label{font-size:13px;cursor:pointer}.tabs{display:flex;gap:var(--sp-1);border-bottom:1px solid var(--border-color);margin-bottom:var(--sp-6)}.tab{padding:var(--sp-3) var(--sp-5);font-size:13px;font-weight:600;color:var(--text-secondary);cursor:pointer;border-bottom:2px solid transparent;transition:all var(--transition-fast)}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.timeline{display:flex;flex-direction:column;gap:var(--sp-1)}.timeline-item{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius);transition:background var(--transition-fast);font-size:13px}.timeline-item:hover{background:var(--bg-card-hover)}.timeline-icon{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;margin-top:2px}.timeline-body{flex:1;min-width:0}.timeline-message{color:var(--text-primary);line-height:1.4}.timeline-time{font-size:11px;color:var(--text-muted);margin-top:2px}.log-viewer{background:#0d0f14;border:1px solid var(--border-color);border-radius:var(--radius);font-family:var(--font-mono);font-size:12px;line-height:1.7;padding:var(--sp-4);max-height:500px;overflow-y:auto;color:var(--text-secondary)}.log-line{padding:1px 0;white-space:pre-wrap;word-break:break-all}.log-line.error{color:var(--red)}.log-line.warning{color:var(--yellow)}.log-line.info{color:var(--text-secondary)}.progress-bar{width:100%;height:6px;background:var(--bg-input);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),#a78bfa);border-radius:var(--radius-full);transition:width var(--transition)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);background-image:radial-gradient(ellipse at 30% 20%,rgba(124,92,252,.08) 0%,transparent 60%),radial-gradient(ellipse at 70% 80%,rgba(59,130,246,.06) 0%,transparent 60%)}.login-card{width:100%;max-width:400px;padding:var(--sp-10);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.login-card h1{font-size:24px;font-weight:800;margin-bottom:var(--sp-2);text-align:center}.login-card .subtitle{text-align:center;color:var(--text-secondary);font-size:14px;margin-bottom:var(--sp-8)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.gap-5{gap:var(--sp-5)}.mt-4{margin-top:var(--sp-4)}.mt-6{margin-top:var(--sp-6)}.mt-8{margin-top:var(--sp-8)}.mb-4{margin-bottom:var(--sp-4)}.mb-6{margin-bottom:var(--sp-6)}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.text-sm{font-size:13px}.text-xs{font-size:11px}.font-mono{font-family:var(--font-mono)}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-light)}.toast-container{position:fixed;top:var(--sp-5);right:var(--sp-5);z-index:2000;display:flex;flex-direction:column;gap:var(--sp-3)}.toast{padding:var(--sp-4) var(--sp-5);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-lg);font-size:13px;display:flex;align-items:center;gap:var(--sp-3);animation:slideIn .3s ease;max-width:400px}.toast.success{border-left:3px solid var(--green)}.toast.error{border-left:3px solid var(--red)}.toast.warning{border-left:3px solid var(--yellow)}.toast.info{border-left:3px solid var(--blue)}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.empty-state{text-align:center;padding:var(--sp-12) var(--sp-8);color:var(--text-muted)}.empty-state .material-icons-round{font-size:48px;margin-bottom:var(--sp-4);opacity:.4}.empty-state h3{font-size:16px;font-weight:600;color:var(--text-secondary);margin-bottom:var(--sp-2)}.empty-state p{font-size:13px;max-width:360px;margin:0 auto}
