@import"https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap";.notification-center{position:relative}.notification-center-toggle{position:relative;background:color-mix(in srgb,var(--color-surface-variant) 60%,transparent);border:1px solid color-mix(in srgb,var(--color-border) 40%,transparent);border-radius:var(--radius-lg);color:var(--color-text-secondary, #888);font-size:1.35rem;cursor:pointer;padding:var(--spacing-sm);display:flex;align-items:center;justify-content:center;transition:color .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease;min-width:44px;min-height:44px;box-sizing:border-box}.notification-center-toggle:hover{color:var(--color-primary, #2196f3);background:var(--color-surface-variant);border-color:color-mix(in srgb,var(--color-border) 70%,transparent);box-shadow:0 2px 8px #0000001a}.notification-badge{position:absolute;top:2px;right:2px;background:linear-gradient(135deg,var(--color-error, #f44336),#d32f2f);color:#fff;font-size:.7rem;font-weight:600;border-radius:10px;min-width:18px;height:18px;display:flex;align-items:center;justify-content:center;padding:0 4px;box-shadow:0 2px 6px #f4433666}.notification-overlay{position:fixed;inset:0;background:#00000080;z-index:999}.notification-panel{position:absolute;top:calc(100% + .5rem);right:0;width:400px;max-height:600px;background:color-mix(in srgb,var(--color-surface) 98%,var(--color-background));border:1px solid color-mix(in srgb,var(--color-border) 60%,transparent);border-radius:var(--radius-lg, 12px);box-shadow:0 8px 32px #00000040,0 1px #ffffff0a;z-index:1000;display:flex;flex-direction:column;overflow:hidden}.notification-panel-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);border-bottom:1px solid var(--color-border, #444)}.notification-panel-header h3{margin:0;font-size:1.1rem;color:var(--color-text-primary, #fff)}.notification-panel-actions{display:flex;gap:var(--spacing-sm);align-items:center}.notification-action-btn{background:transparent;border:1px solid var(--color-border, #444);color:var(--color-text-secondary, #888);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm, 4px);cursor:pointer;font-size:.85rem;transition:all var(--transition-base);min-height:32px}.notification-action-btn:hover{background:var(--color-surface-variant, #2a2a2a);color:var(--color-text-primary, #fff)}.notification-close-btn{background:transparent;border:none;color:var(--color-text-secondary, #888);cursor:pointer;padding:var(--spacing-xs);display:flex;align-items:center;justify-content:center;min-width:32px;min-height:32px;border-radius:var(--radius-sm, 4px);transition:all var(--transition-base)}.notification-close-btn:hover{background:var(--color-surface-variant, #2a2a2a);color:var(--color-text-primary, #fff)}.notification-list{flex:1;overflow-y:auto;max-height:500px}.notification-empty{padding:var(--spacing-xl);text-align:center;color:var(--color-text-secondary, #888)}.notification-empty svg{font-size:3rem;margin-bottom:var(--spacing-md);opacity:.5}.notification-item{display:flex;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border, #444);cursor:pointer;transition:background-color var(--transition-base)}.notification-item:hover{background:var(--color-surface-variant, #2a2a2a)}.notification-item.unread{background:#2196f30d;border-left:3px solid var(--color-primary, #2196f3)}.notification-item.error.unread{border-left-color:var(--color-error, #f44336);background:#f443360d}.notification-item.warning.unread{border-left-color:var(--color-warning, #ff9800);background:#ff98000d}.notification-item.success.unread{border-left-color:var(--color-success, #4caf50);background:#4caf500d}.notification-item-icon{flex-shrink:0;font-size:1.5rem}.notification-icon.error{color:var(--color-error, #f44336)}.notification-icon.warning{color:var(--color-warning, #ff9800)}.notification-icon.success{color:var(--color-success, #4caf50)}.notification-icon.info{color:var(--color-primary, #2196f3)}.notification-item-content{flex:1;min-width:0}.notification-item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xs)}.notification-item-title{margin:0;font-size:.95rem;font-weight:600;color:var(--color-text-primary, #fff)}.notification-item-close{background:transparent;border:none;color:var(--color-text-secondary, #888);cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius-sm, 4px);transition:all var(--transition-base);flex-shrink:0}.notification-item-close:hover{background:var(--color-surface-variant, #2a2a2a);color:var(--color-text-primary, #fff)}.notification-item-message{margin:0 0 var(--spacing-xs) 0;font-size:.85rem;color:var(--color-text-secondary, #888);line-height:1.4}.notification-item-footer{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-xs)}.notification-item-time{font-size:.75rem;color:var(--color-text-secondary, #666)}.notification-item-action{background:transparent;border:1px solid var(--color-primary, #2196f3);color:var(--color-primary, #2196f3);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm, 4px);cursor:pointer;font-size:.8rem;transition:all var(--transition-base)}.notification-item-action:hover{background:var(--color-primary, #2196f3);color:#fff}@media(max-width:768px){.notification-panel{width:calc(100vw - 2rem);max-width:400px;right:-1rem;max-height:calc(100vh - 120px)}.notification-list{max-height:calc(100vh - 180px)}}.tooltip-trigger{position:relative;display:inline-block}.tooltip{position:fixed;background-color:var(--color-surface);color:var(--color-text-primary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);white-space:normal;max-width:300px;word-wrap:break-word;z-index:var(--z-tooltip, 9999);box-shadow:var(--shadow-lg);border:1px solid var(--color-border);pointer-events:none;animation:tooltip-fade-in var(--transition-base)}.tooltip:before{content:"";position:absolute;width:0;height:0;border:6px solid transparent}.tooltip-top:before{bottom:-12px;left:50%;transform:translate(-50%);border-top-color:var(--color-surface)}.tooltip-bottom:before{top:-12px;left:50%;transform:translate(-50%);border-bottom-color:var(--color-surface)}.tooltip-left:before{right:-12px;top:50%;transform:translateY(-50%);border-left-color:var(--color-surface)}.tooltip-right:before{left:-12px;top:50%;transform:translateY(-50%);border-right-color:var(--color-surface)}@keyframes tooltip-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.version-update-banner{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-md);background:linear-gradient(135deg,color-mix(in srgb,var(--color-warning) 22%,var(--color-surface)),color-mix(in srgb,var(--color-warning-dark) 18%,var(--color-surface)));border:1px solid color-mix(in srgb,var(--color-warning) 50%,transparent);border-radius:var(--radius-full);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);box-shadow:0 1px 4px #ff980026,inset 0 1px #ffffff0f;transition:box-shadow var(--transition-base),border-color var(--transition-base)}.version-update-banner:hover{box-shadow:0 2px 8px #ff980040,inset 0 1px #ffffff14;border-color:color-mix(in srgb,var(--color-warning) 70%,transparent)}.version-update-banner-icon{flex-shrink:0;font-size:.95rem;color:var(--color-warning)}.version-update-banner-text{flex:0 1 auto;white-space:nowrap}.version-update-banner-text strong{color:var(--color-warning);font-weight:600}.version-update-banner-link{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:2px var(--spacing-sm);background:var(--color-warning);color:var(--color-background);border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-decoration:none;white-space:nowrap;transition:background var(--transition-base),transform var(--transition-fast)}.version-update-banner-link:hover{background:var(--color-warning-dark);color:var(--color-text-primary);transform:translateY(-1px)}.version-update-banner-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.header-time-container{display:flex;align-items:center;gap:var(--spacing-sm);padding:8px var(--spacing-md);background:color-mix(in srgb,var(--color-surface-variant) 70%,transparent);border:1px solid color-mix(in srgb,var(--color-border) 40%,transparent);border-radius:var(--radius-lg);transition:background .2s ease,border-color .2s ease,box-shadow .2s ease;height:40px;box-sizing:border-box}.header-time-container:hover{border-color:color-mix(in srgb,var(--color-border) 70%,transparent);background:var(--color-surface-variant);box-shadow:0 2px 8px #0000001a}.header-time-content{display:flex;align-items:center}.header-time-clock{font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-variant-numeric:tabular-nums;letter-spacing:.5px}.header-time-toggle{background:transparent;border:1px solid var(--color-border);cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm);font-size:.7rem;font-weight:var(--font-weight-bold);text-transform:uppercase;transition:all var(--transition-base);margin-left:var(--spacing-xs);min-width:34px;text-align:center}.header-time-toggle.utc{color:var(--color-info);border-color:#2196f34d;background-color:#2196f31a}.header-time-toggle.cet{color:var(--color-warning);border-color:var(--color-border);color:var(--color-text-secondary)}.header-time-toggle:hover{transform:translateY(-1px);filter:brightness(1.2)}.header-time-dual{display:flex;align-items:center;gap:.35rem;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums;letter-spacing:.3px}.ht-dual-utc{color:#2196f3f2}.ht-dual-sep{color:var(--color-text-secondary);opacity:.7;font-weight:400;-webkit-user-select:none;user-select:none}.ht-dual-cet{color:var(--color-text-primary)}.header-time-cycle{display:flex;align-items:center;justify-content:center;width:22px;height:22px;margin-left:var(--spacing-xs);padding:0;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:.85rem;line-height:1;cursor:pointer;opacity:.6;flex-shrink:0;transition:all var(--transition-base)}.header-time-cycle:hover{opacity:1;color:var(--color-primary);border-color:var(--color-border);background:#2196f314}.setup-wizard-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#00000073;padding:var(--spacing-md)}.setup-wizard-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-lg);max-width:400px;width:100%;box-shadow:0 4px 12px #00000026}.setup-wizard-title{margin:0 0 var(--spacing-sm);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.setup-wizard-text{margin:0 0 var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.45}.setup-wizard-link{margin:0 0 var(--spacing-md);font-size:var(--font-size-sm)}.setup-wizard-link a{color:var(--color-primary);text-decoration:none}.setup-wizard-link a:hover{text-decoration:underline}.setup-wizard-form{display:flex;flex-direction:column;gap:var(--spacing-sm)}.setup-wizard-toggle{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.setup-wizard-checkbox{width:18px;height:18px;cursor:pointer}.setup-wizard-note{margin:0;font-size:var(--font-size-xs);color:var(--color-text-secondary);line-height:1.4}.setup-wizard-actions{margin-top:var(--spacing-md)}.setup-wizard-actions .btn{min-width:100px}.layout{display:flex;min-height:100vh;background-color:var(--color-background)}.sidebar{width:var(--sidebar-width);background:linear-gradient(180deg,var(--color-surface) 0%,color-mix(in srgb,var(--color-surface) 98%,var(--color-background)) 100%);border-right:1px solid color-mix(in srgb,var(--color-border) 60%,transparent);box-shadow:4px 0 24px #00000026;display:flex;flex-direction:column;position:fixed;left:0;top:0;height:100vh;z-index:var(--z-sidebar)}.sidebar-header{padding:var(--spacing-xl) var(--spacing-lg);border-bottom:1px solid color-mix(in srgb,var(--color-border) 50%,transparent);flex-shrink:0}.sidebar-logo-container{display:flex;align-items:center;gap:var(--spacing-md)}.sidebar-logo-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#2196f340,#9c27b026);border-radius:var(--radius-lg);color:var(--color-primary);box-shadow:inset 0 1px #ffffff14,0 4px 12px #2196f340;flex-shrink:0;border:1px solid rgba(33,150,243,.2);transition:transform var(--transition-base),box-shadow var(--transition-base)}.sidebar-logo-icon:hover{transform:scale(1.02);box-shadow:inset 0 1px #ffffff1a,0 6px 16px #2196f34d}.sidebar-logo-icon svg{font-size:1.35rem;position:relative;z-index:1}.sidebar-logo{font-size:var(--font-size-xl);font-weight:700;margin:0;letter-spacing:-.02em;background:linear-gradient(135deg,var(--color-primary) 0%,#9c27b0 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 0 20px rgba(33,150,243,.15))}.sidebar-nav{position:relative;flex:1;padding:var(--spacing-md) var(--spacing-sm);overflow-y:auto;overflow-x:hidden}.sidebar-nav-indicator{position:absolute;left:var(--spacing-sm);right:var(--spacing-sm);border-radius:var(--radius-lg);background:linear-gradient(90deg,#2196f340,#2196f31a);pointer-events:none;z-index:0;transition:top .25s ease-out,height .25s ease-out}.nav-item{position:relative;z-index:1;display:flex;align-items:center;gap:var(--spacing-md);padding:12px var(--spacing-md);margin-bottom:4px;color:var(--color-text-secondary);text-decoration:none;border-radius:var(--radius-lg);transition:background-color .2s ease,color .2s ease,transform .15s ease,box-shadow .2s ease;font-size:var(--font-size-sm);font-weight:500;letter-spacing:.01em}.nav-item:hover{background-color:color-mix(in srgb,var(--color-surface-variant) 80%,transparent);color:var(--color-text-primary);transform:translate(2px)}.nav-item.active{background:transparent;color:var(--color-primary)}.nav-item.active:hover{background:transparent}.nav-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;font-size:.7rem;font-weight:700;line-height:20px;text-align:center;color:#fff;background:linear-gradient(135deg,var(--color-warning, #ff9800),#f57c00);border-radius:10px;flex-shrink:0;box-shadow:0 2px 6px #ff980066}.nav-icon{font-size:1.35rem;display:flex;align-items:center;justify-content:center;width:28px;height:28px;min-width:28px;min-height:28px;border-radius:var(--radius-md);transition:transform var(--transition-base),background-color .2s ease}.nav-item.active .nav-icon{background-color:#2196f326}.nav-icon.icon-clicked.settings-icon,.nav-icon.icon-clicked.sync-icon{animation:rotateIcon .6s ease-out}.nav-icon.icon-clicked.scheduler-icon{animation:clockRotate .8s ease-out}.nav-icon.icon-clicked.runs-icon{animation:playPauseIcon .6s ease-out}.nav-icon.icon-clicked.pipelines-icon{animation:flowIcon .8s ease-out}.nav-icon.icon-clicked.dashboard-icon{animation:dashboardLines .6s ease-out}.nav-icon.icon-clicked.secrets-icon{animation:lockUnlockIcon .8s ease-out}.nav-icon.icon-clicked.users-icon{animation:bounceIcon .6s ease-out}@keyframes rotateIcon{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounceIcon{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes scaleIcon{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@keyframes wiggleIcon{0%,to{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}@keyframes pulseIcon{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.8}}@keyframes clockRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes lockUnlockIcon{0%{transform:rotateY(0) scale(1)}25%{transform:rotateY(90deg) scale(1.1)}50%{transform:rotateY(180deg) scale(1)}75%{transform:rotateY(270deg) scale(1.1)}to{transform:rotateY(360deg) scale(1)}}@keyframes dashboardLines{0%,to{transform:translateY(0) scaleY(1)}25%{transform:translateY(-2px) scaleY(1.2)}50%{transform:translateY(2px) scaleY(.8)}75%{transform:translateY(-1px) scaleY(1.1)}}@keyframes flowIcon{0%{transform:translate(0) scale(1);opacity:1}25%{transform:translate(4px) scale(1.1);opacity:.8}50%{transform:translate(0) scale(1);opacity:1}75%{transform:translate(-4px) scale(1.1);opacity:.8}to{transform:translate(0) scale(1);opacity:1}}@keyframes playPauseIcon{0%{opacity:1;transform:scale(1) rotate(0)}30%{opacity:.3;transform:scale(.9) rotate(180deg)}60%{opacity:1;transform:scale(1.1) rotate(360deg)}to{opacity:1;transform:scale(1) rotate(360deg)}}.nav-label{flex:1}.sidebar-lang{display:flex;align-items:center;justify-content:center;gap:6px;padding:var(--spacing-sm) var(--spacing-md);border-top:1px solid color-mix(in srgb,var(--color-border) 50%,transparent);flex-shrink:0}.sidebar-lang .lang-btn{background:none;border:none;color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm)}.sidebar-lang .lang-btn:hover{color:var(--color-text-primary)}.sidebar-lang .lang-btn.active{color:var(--color-primary);font-weight:600}.sidebar-lang .lang-sep{color:var(--color-text-tertiary);font-size:var(--font-size-xs)}.sidebar-footer{padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid color-mix(in srgb,var(--color-border) 50%,transparent);display:flex;flex-direction:column;gap:var(--spacing-sm);background:color-mix(in srgb,var(--color-surface) 95%,var(--color-background));flex-shrink:0}.backend-status{display:flex;align-items:center;gap:var(--spacing-sm);padding:10px var(--spacing-md);border-radius:var(--radius-lg);font-size:var(--font-size-sm);background:color-mix(in srgb,var(--color-surface-variant) 70%,transparent);border:1px solid color-mix(in srgb,var(--color-border) 40%,transparent);transition:border-color .2s ease,box-shadow .2s ease}.backend-status:hover{border-color:color-mix(in srgb,var(--color-border) 70%,transparent)}.status-dot-icon{font-size:.65rem;transition:filter .2s ease}.backend-status.online .status-dot-icon{color:var(--color-success);filter:drop-shadow(0 0 3px var(--color-success))}.backend-status.online.pulse .status-dot-icon{animation:greenLedPulse .6s ease-out}@keyframes greenLedPulse{0%{filter:drop-shadow(0 0 2px var(--color-success));transform:scale(1)}50%{filter:drop-shadow(0 0 12px var(--color-success)) drop-shadow(0 0 20px var(--color-success));transform:scale(1.3)}to{filter:drop-shadow(0 0 2px var(--color-success));transform:scale(1)}}.backend-status.offline .status-dot-icon{color:var(--color-error);filter:drop-shadow(0 0 3px var(--color-error))}.backend-status.checking .status-dot-icon{color:var(--color-warning);filter:drop-shadow(0 0 3px var(--color-warning));animation:pulse 1.5s ease-in-out infinite}.status-text{color:var(--color-text-secondary);font-weight:500;font-size:.8125rem}.sidebar-github-link,.sidebar-docs-link{display:flex;align-items:center;gap:var(--spacing-sm);padding:10px var(--spacing-md);background:color-mix(in srgb,var(--color-surface-variant) 60%,transparent);color:var(--color-text-secondary);text-decoration:none;border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:500;transition:background .2s ease,color .2s ease,transform .15s ease,border-color .2s ease;border:1px solid transparent}.sidebar-github-link:hover,.sidebar-docs-link:hover{background:var(--color-surface-variant);color:var(--color-text-primary);border-color:color-mix(in srgb,var(--color-border) 60%,transparent);transform:translateY(-1px)}.sidebar-github-link svg,.sidebar-docs-link svg{color:var(--color-primary);flex-shrink:0;opacity:.9}.sidebar-footer-text{margin:0;font-size:var(--font-size-xs);color:var(--color-text-secondary);text-align:center;padding:var(--spacing-xs) 0;line-height:1.4}.sidebar-footer-text .heart{color:#f44336;animation:heartBeat 1.5s ease-in-out infinite;display:inline-block}.sidebar-footer-text strong{color:var(--color-primary);font-weight:600}.logout-btn{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);width:100%;padding:12px var(--spacing-md);background:color-mix(in srgb,var(--color-error) 12%,transparent);color:var(--color-text-secondary);border:1px solid color-mix(in srgb,var(--color-error) 35%,transparent);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .15s ease}.logout-btn:hover{background:color-mix(in srgb,var(--color-error) 25%,transparent);color:#fff;border-color:var(--color-error);transform:translateY(-1px)}.logout-btn svg{font-size:1.2rem;opacity:.9}.layout-main{flex:1;margin-left:var(--sidebar-width);display:flex;flex-direction:column;min-height:100vh}.main-header{background:linear-gradient(180deg,color-mix(in srgb,var(--color-surface) 102%,white) 0%,var(--color-surface) 50%,color-mix(in srgb,var(--color-surface) 98%,var(--color-background)) 100%);border-bottom:1px solid color-mix(in srgb,var(--color-border) 55%,transparent);box-shadow:0 1px #ffffff08,0 4px 20px #00000014;padding:var(--spacing-md) var(--spacing-xl);position:sticky;top:0;z-index:var(--z-header);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.header-content{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--spacing-lg)}.page-title{justify-self:start;font-size:var(--font-size-2xl);font-weight:600;color:var(--color-text-primary);margin:0;letter-spacing:-.02em;line-height:1.25;text-shadow:0 0 40px rgba(255,255,255,.03)}.header-center{justify-self:center;min-width:0}.header-actions{justify-self:end;display:flex;align-items:center;gap:var(--spacing-sm)}.header-actions>*{flex-shrink:0}.header-center .version-update-banner{margin:0}.main-content{flex:1;padding:var(--spacing-xl);max-width:1400px;width:100%;margin:0 auto;position:relative;padding-bottom:calc(var(--spacing-xl) + 60px)}.page-transition-wrap{animation:pageFadeIn .25s ease-out}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.layout-footer{position:fixed;bottom:var(--spacing-md);left:calc(var(--sidebar-width) + var(--spacing-md));display:flex;flex-direction:column;gap:var(--spacing-xs);z-index:var(--z-header) - 1;pointer-events:none}.footer-github-link{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:#2a2a2acc;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);color:var(--color-text-primary);text-decoration:none;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-base);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:auto;width:fit-content}.footer-github-link:hover{background:#2a2a2af2;border-color:#fff3;transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.footer-github-link svg{font-size:1.25rem;color:var(--color-primary);flex-shrink:0}.footer-text{margin:0;font-size:var(--font-size-xs);color:var(--color-text-secondary);pointer-events:none}.footer-text .heart{color:#f44336;animation:heartBeat 1.5s ease-in-out infinite;display:inline-block}@keyframes heartBeat{0%,to{transform:scale(1)}10%,30%{transform:scale(1.2)}20%,40%{transform:scale(1)}}.footer-text strong{color:var(--color-primary);font-weight:var(--font-weight-bold)}.mobile-menu-button{display:none;position:fixed;top:1rem;left:1rem;z-index:var(--z-sidebar) + 1;background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);padding:var(--spacing-md);font-size:1.5rem;cursor:pointer;box-shadow:0 2px 8px #0000004d;transition:all var(--transition-base);touch-action:manipulation;min-width:48px;min-height:48px}.mobile-menu-button:active{transform:scale(.95);background-color:var(--color-primary-dark, #1976d2)}.sidebar-overlay{display:none;position:fixed;inset:0;background-color:#00000080;z-index:var(--z-sidebar) - 1;opacity:0;pointer-events:none;transition:opacity .25s ease-out}.sidebar-overlay.visible{opacity:1;pointer-events:auto}@media(max-width:768px){.mobile-menu-button{display:flex;align-items:center;justify-content:center}.sidebar-overlay{display:block}.sidebar-overlay:not(.visible){pointer-events:none}.sidebar{transform:translate(-100%);transition:transform .3s ease-out;box-shadow:2px 0 8px #0000004d}.sidebar.open{transform:translate(0)}.layout-main{margin-left:0}.main-header{padding:var(--spacing-md) var(--spacing-lg);padding-left:calc(var(--spacing-lg) + 60px)}.page-title{font-size:var(--font-size-xl)}.main-content{padding:var(--spacing-md)}.nav-item{padding:var(--spacing-lg);min-height:48px}.logout-btn{min-height:48px;padding:var(--spacing-lg)}.nav-icon{font-size:1.75rem}.layout-footer{left:var(--spacing-md)}.main-content{padding-bottom:calc(var(--spacing-md) + 60px)}}#root{min-height:100vh;display:flex;flex-direction:column}:root{--color-primary: #2196F3;--color-primary-dark: #1976D2;--color-primary-light: #64B5F6;--color-secondary: #009688;--color-secondary-dark: #00796B;--color-secondary-light: #4DB6AC;--color-success: #4CAF50;--color-success-dark: #388E3C;--color-error: #F44336;--color-error-dark: #D32F2F;--color-warning: #FF9800;--color-warning-dark: #F57C00;--color-info: #2196F3;--color-background: #121212;--color-surface: #1E1E1E;--color-surface-variant: #2A2A2A;--color-card: #1E1E1E;--color-text-primary: #FFFFFF;--color-text-secondary: #B0B0B0;--color-text-disabled: #666666;--color-border: #333333;--color-border-light: #444444;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-size-4xl: 2.5rem;--line-height: 1.5;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-bold: 600;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .1), 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 2px 4px rgba(0, 0, 0, .2), 0 1px 2px rgba(0, 0, 0, .1);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .2), 0 2px 4px rgba(0, 0, 0, .15);--shadow-xl: 0 8px 16px rgba(0, 0, 0, .3), 0 4px 8px rgba(0, 0, 0, .2);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--sidebar-width: 240px;--sidebar-width-collapsed: 64px;--z-sidebar: 100;--z-header: 90;--z-dropdown: 1000;--z-modal: 2000;--z-tooltip: 3000}.card{background-color:var(--color-card);border-radius:var(--radius-lg);padding:var(--spacing-lg);border:1px solid color-mix(in srgb,var(--color-border) 55%,transparent);box-shadow:inset 0 1px #ffffff08,var(--shadow-md),0 0 0 1px #0000000d;transition:box-shadow .2s ease,border-color .2s ease,transform .2s ease}.card:hover{box-shadow:inset 0 1px #ffffff0a,var(--shadow-lg),0 0 0 1px #0000000a;border-color:color-mix(in srgb,var(--color-border) 75%,transparent)}.card-elevated{box-shadow:inset 0 1px #ffffff0a,var(--shadow-lg),0 0 0 1px #0000000d;border-color:color-mix(in srgb,var(--color-border) 65%,transparent)}.empty-state{text-align:center;padding:var(--spacing-2xl);color:var(--color-text-secondary);font-size:var(--font-size-base);background-color:var(--color-surface);border-radius:var(--radius-lg);border:1px solid color-mix(in srgb,var(--color-border) 55%,transparent);box-shadow:inset 0 1px #ffffff08,var(--shadow-md),0 0 0 1px #0000000d;animation:empty-state-in .45s ease-out both}@keyframes empty-state-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.empty-state h3{color:var(--color-text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin:0 0 var(--spacing-md) 0}.empty-state p{color:var(--color-text-secondary);margin:0;line-height:var(--line-height)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-2xl);color:var(--color-text-secondary);background-color:var(--color-surface);border-radius:var(--radius-lg);border:1px solid color-mix(in srgb,var(--color-border) 55%,transparent);box-shadow:inset 0 1px #ffffff08,var(--shadow-md),0 0 0 1px #0000000d}.loading-state{text-align:center;padding:var(--spacing-2xl);color:var(--color-text-secondary);font-size:var(--font-size-base);background-color:var(--color-surface);border-radius:var(--radius-lg);border:1px solid color-mix(in srgb,var(--color-border) 55%,transparent);box-shadow:inset 0 1px #ffffff08,var(--shadow-md),0 0 0 1px #0000000d}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border:none;border-radius:var(--radius-lg);font-family:var(--font-family);font-size:var(--font-size-base);font-weight:500;cursor:pointer;transition:background .2s ease,box-shadow .2s ease,transform .2s ease,border-color .2s ease;text-decoration:none;outline:none}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:var(--color-text-primary);box-shadow:0 2px 8px #2196f340}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-dark);box-shadow:0 4px 16px #2196f359;transform:translateY(-1px)}.btn-secondary{background-color:var(--color-secondary);color:var(--color-text-primary)}.btn-secondary:hover:not(:disabled){background-color:var(--color-secondary-dark);box-shadow:0 4px 12px #0003;transform:translateY(-1px)}.btn-outlined{background-color:transparent;color:var(--color-primary);border:1px solid color-mix(in srgb,var(--color-primary) 70%,transparent)}.btn-outlined:hover:not(:disabled){background-color:#2196f31a;border-color:var(--color-primary);box-shadow:0 2px 8px #2196f326;transform:translateY(-1px)}.btn-success{background-color:var(--color-success);color:var(--color-text-primary)}.btn-success:hover:not(:disabled){background-color:var(--color-success-dark);box-shadow:0 4px 12px #4caf504d;transform:translateY(-1px)}.btn-error{background-color:var(--color-error);color:var(--color-text-primary)}.btn-error:hover:not(:disabled){background-color:var(--color-error-dark);box-shadow:0 4px 12px #f443364d;transform:translateY(-1px)}.btn-warning{background-color:var(--color-warning);color:var(--color-text-primary)}.btn-warning:hover:not(:disabled){background-color:var(--color-warning-dark);box-shadow:0 4px 12px #ff98004d;transform:translateY(-1px)}.badge{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap}.badge-primary{background-color:var(--color-primary);color:var(--color-text-primary)}.badge-success{background-color:var(--color-success);color:var(--color-text-primary)}.badge-error{background-color:var(--color-error);color:var(--color-text-primary)}.badge-warning{background-color:var(--color-warning);color:var(--color-text-primary)}.badge-info{background-color:var(--color-info);color:var(--color-text-primary)}.badge-secondary{background-color:var(--color-surface-variant);color:var(--color-text-secondary)}.form-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-surface);border:1px solid color-mix(in srgb,var(--color-border) 60%,transparent);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--font-size-base);transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2196f333;background-color:color-mix(in srgb,var(--color-surface) 98%,white)}.form-input::placeholder{color:var(--color-text-disabled)}.form-label{display:block;margin-bottom:var(--spacing-xs);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.form-group{margin-bottom:var(--spacing-lg)}.status-dot{width:8px;height:8px;border-radius:var(--radius-full);display:inline-block}.status-dot.online{background-color:var(--color-success);box-shadow:0 0 4px var(--color-success)}.status-dot.offline{background-color:var(--color-error);box-shadow:0 0 4px var(--color-error)}.status-dot.checking{background-color:var(--color-warning);box-shadow:0 0 4px var(--color-warning);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.fade-in{animation:fade-in .3s ease-out}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}*{box-sizing:border-box;margin:0;padding:0}:root{font-family:var(--font-family);line-height:var(--line-height);font-weight:var(--font-weight-normal);color-scheme:dark;color:var(--color-text-primary);background-color:var(--color-background);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--color-background);color:var(--color-text-primary)}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-medium);line-height:1.2;margin:0}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}p{margin:0;line-height:var(--line-height)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-base)}a:hover{color:var(--color-primary-light)}button{font-family:var(--font-family);cursor:pointer;border:none;outline:none;transition:all var(--transition-base)}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}input,select,textarea{font-family:var(--font-family);color:var(--color-text-primary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-background)}::-webkit-scrollbar-thumb{background:var(--color-surface-variant);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-border)}
