:root{--color-bg-dark: #1a1a1a;--color-bg-sidebar: #2d3748;--color-bg-light: #f7fafc;--color-bg-card: #ffffff;--color-text-primary: #2d3748;--color-text-secondary: #718096;--color-text-light: #e2e8f0;--color-accent: #f6ad55;--color-accent-hover: #ed8936;--color-success: #48bb78;--color-warning: #ed8936;--color-error: #f56565;--color-border: #e2e8f0;--color-hover: #edf2f7;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg-light);color:var(--color-text-primary);line-height:1.6}.loading-screen,.error-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:var(--spacing-xl);text-align:center}.loading-spinner{width:3rem;height:3rem;border:4px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--spacing-lg)}@keyframes spin{to{transform:rotate(360deg)}}.error-screen h1{color:var(--color-error);margin-bottom:var(--spacing-md)}.error-hint{color:var(--color-text-secondary);font-size:.875rem;margin-top:var(--spacing-md)}.app-container{display:flex;min-height:100vh}.sidebar{width:16rem;background-color:var(--color-bg-sidebar);color:var(--color-text-light);display:flex;flex-direction:column;flex-shrink:0}.sidebar-header{padding:var(--spacing-xl);border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-logo{font-size:1.5rem;font-weight:700;color:var(--color-text-light)}.sidebar-nav{flex:1;padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-sm)}.nav-link{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);color:var(--color-text-light);text-decoration:none;border-radius:var(--radius-md);transition:background-color .2s}.nav-link:hover{background-color:#ffffff1a}.nav-link.active{background-color:var(--color-accent);color:var(--color-bg-dark);font-weight:600}.nav-icon{font-size:1.25rem}.nav-label{font-size:.875rem}.sidebar-footer{padding:var(--spacing-lg);border-top:1px solid rgba(255,255,255,.1)}.user-info{display:flex;align-items:center;gap:var(--spacing-md)}.user-avatar{width:2.5rem;height:2.5rem;border-radius:50%;background-color:var(--color-accent);color:var(--color-bg-dark);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem}.user-details{flex:1;min-width:0}.user-name{font-size:.875rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role{font-size:.75rem;color:var(--color-text-secondary);text-transform:capitalize}.main-content{flex:1;overflow-y:auto;background-color:var(--color-bg-light)}.page-container{max-width:80rem;margin:0 auto;padding:var(--spacing-xl)}.page-header{margin-bottom:var(--spacing-xl)}.page-title{font-size:2rem;font-weight:700;margin-bottom:var(--spacing-sm);color:var(--color-text-primary)}.page-subtitle{font-size:1rem;color:var(--color-text-secondary)}.page-meta{display:flex;align-items:center;gap:var(--spacing-md);margin-top:var(--spacing-sm)}.breadcrumb{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.875rem;margin-bottom:var(--spacing-md);color:var(--color-text-secondary)}.breadcrumb-link{color:var(--color-accent);text-decoration:none}.breadcrumb-link:hover{text-decoration:underline}.breadcrumb-separator{color:var(--color-text-secondary)}.breadcrumb-current{color:var(--color-text-primary)}.card{background-color:var(--color-bg-card);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-sm);margin-bottom:var(--spacing-lg)}.card-placeholder{border:2px dashed var(--color-border);background-color:transparent}.card-title{font-size:1.25rem;font-weight:600;margin-bottom:var(--spacing-md);color:var(--color-text-primary)}.card-text{color:var(--color-text-secondary);line-height:1.6}.card-text.muted{font-style:italic}.card-text.error{color:var(--color-error)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(20rem,1fr));gap:var(--spacing-lg)}.status-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.status-healthy{background-color:var(--color-success);color:#fff}.status-degraded{background-color:var(--color-warning);color:#fff}.status-active{background-color:var(--color-success);color:#fff}.status-disabled{background-color:var(--color-text-secondary);color:#fff}.status-archived{background-color:var(--color-border);color:var(--color-text-secondary)}.status-info{display:flex;flex-direction:column;gap:var(--spacing-md)}.checks-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.check-item{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.875rem}.check-status{font-weight:700}.check-ok{color:var(--color-success)}.check-error{color:var(--color-error)}.check-name{color:var(--color-text-secondary);font-family:var(--font-mono);font-size:.75rem}.modules-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:var(--spacing-lg)}.module-card{background-color:var(--color-bg-card);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s;cursor:pointer}.module-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.module-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:var(--spacing-sm)}.module-name{font-size:1.125rem;font-weight:600;color:var(--color-text-primary)}.module-status{font-size:.625rem;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm)}.module-version{font-size:.875rem;color:var(--color-text-secondary)}.info-list{display:grid;grid-template-columns:auto 1fr;gap:var(--spacing-md) var(--spacing-lg);font-size:.875rem}.info-list dt{font-weight:600;color:var(--color-text-secondary)}.info-list dd{color:var(--color-text-primary)}.role-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-accent);color:#fff;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:uppercase}.button{display:inline-block;padding:var(--spacing-md) var(--spacing-lg);border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:600;cursor:pointer;transition:background-color .2s,transform .1s;text-decoration:none;text-align:center}.button:hover{transform:translateY(-1px)}.button:active{transform:translateY(0)}.button:disabled{opacity:.5;cursor:not-allowed;transform:none}.button-primary{background-color:var(--color-accent);color:#fff}.button-primary:hover:not(:disabled){background-color:var(--color-accent-hover)}.button-secondary{background-color:var(--color-bg-card);color:var(--color-text-primary);border:1px solid var(--color-border)}.button-secondary:hover:not(:disabled){background-color:var(--color-hover)}.export-status{margin-top:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-md);font-size:.875rem}.export-status.success{background-color:#48bb781a;color:var(--color-success)}.export-status.error{background-color:#f565651a;color:var(--color-error)}.loading-text{color:var(--color-text-secondary);text-align:center;padding:var(--spacing-xl)}.error-text{color:var(--color-error);text-align:center;padding:var(--spacing-xl)}
