:root{--md-sys-color-primary: #4A70A9;--md-sys-color-primary-container: #8FABD4;--md-sys-color-on-primary: #FFFFFF;--md-sys-color-on-primary-container: #000000;--md-sys-color-secondary: #8FABD4;--md-sys-color-secondary-container: #EFECE3;--md-sys-color-on-secondary: #000000;--md-sys-color-on-secondary-container: #000000;--md-sys-color-surface: #EFECE3;--md-sys-color-surface-variant: #F5F3ED;--md-sys-color-on-surface: #000000;--md-sys-color-on-surface-variant: rgba(0, 0, 0, .6);--md-sys-color-background: #EFECE3;--md-sys-color-on-background: #000000;--primary-color: #4A70A9;--primary-hover: #3d5d8e;--primary-light: #8FABD4;--secondary-color: #8FABD4;--success-color: #2e7d32;--success-bg: #c8e6c9;--warning-color: #ed6c02;--warning-bg: #ffe0b2;--danger-color: #d32f2f;--danger-bg: #ffcdd2;--bg-color: #EFECE3;--sidebar-bg: rgba(255, 255, 255, .85);--card-bg: #FFFFFF;--border-color: rgba(0, 0, 0, .12);--text-primary: #000000;--text-secondary: rgba(0, 0, 0, .7);--text-muted: rgba(0, 0, 0, .5);--border-radius-lg: 28px;--border-radius-md: 16px;--border-radius-sm: 12px;--shadow-sm: 0px 1px 2px rgba(0, 0, 0, .3), 0px 1px 3px 1px rgba(0, 0, 0, .15);--shadow-md: 0px 1px 2px rgba(0, 0, 0, .3), 0px 2px 6px 2px rgba(0, 0, 0, .15);--shadow-lg: 0px 4px 8px 3px rgba(0, 0, 0, .15), 0px 1px 3px rgba(0, 0, 0, .3);--transition-speed: .2s}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;padding:0;font-family:Google Sans Flex,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;vertical-align:middle}.flower-container{min-height:100vh;background:var(--bg-color);font-family:Google Sans Flex,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.flower-header{background:var(--card-bg);backdrop-filter:blur(10px);box-shadow:var(--shadow-md);position:sticky;top:0;z-index:100}.header-content{max-width:1400px;margin:0 auto;padding:1.25rem 2rem;display:flex;justify-content:space-between;align-items:center}.header-left{display:flex;align-items:center;gap:.75rem}.header-left .material-symbols-outlined{font-size:2rem;color:var(--primary-color)}.header-left h1{margin:0;font-size:1.5rem;font-weight:600;color:var(--text-primary)}.header-right{display:flex;align-items:center;gap:1rem}.btn-refresh{background:var(--primary-color);color:#fff;border:none;padding:.5rem;border-radius:var(--border-radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-speed) ease}.btn-refresh:hover{background:var(--primary-hover);transform:scale(1.05)}.btn-refresh.spinning .material-symbols-outlined{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-back{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--md-sys-color-surface-variant);color:var(--text-secondary);text-decoration:none;border-radius:var(--border-radius-sm);font-weight:500;transition:all var(--transition-speed) ease}.btn-back:hover{background:var(--md-sys-color-surface);color:var(--text-primary)}.flower-main{max-width:1400px;margin:0 auto;padding:2rem}.status-bar{background:var(--card-bg);backdrop-filter:blur(10px);border-radius:var(--border-radius-sm);padding:1rem 1.5rem;margin-bottom:2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-md)}.status-indicator{display:flex;align-items:center;gap:.75rem;font-weight:500}.status-dot{width:12px;height:12px;border-radius:50%;animation:pulse 2s infinite}.status-indicator.status-connected .status-dot{background:#48bb78}.status-indicator.status-error .status-dot{background:#f56565}.status-indicator.status-connecting .status-dot{background:#ed8936}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.last-update{color:var(--text-muted);font-size:.875rem}.card{background:var(--card-bg);backdrop-filter:blur(10px);border-radius:var(--border-radius-sm);box-shadow:var(--shadow-lg);margin-bottom:2rem;overflow:hidden}.card-header{padding:1.5rem;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.card-header h2{margin:0;font-size:1.25rem;font-weight:600;display:flex;align-items:center;gap:.5rem;color:var(--text-primary)}.card-stats{display:flex;gap:1.5rem}.card-stats .stat{color:var(--text-secondary);font-size:.875rem}.card-stats .stat strong{color:var(--primary-color);font-size:1.125rem;margin-left:.25rem}.card-body{padding:1.5rem}.filter-controls{display:flex;gap:.75rem}.form-select{padding:.5rem 1rem;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);background:#fff;font-size:.875rem;cursor:pointer;transition:all var(--transition-speed) ease}.form-select:hover{border-color:var(--primary-color)}.form-select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-light)}.workers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.worker-card{background:var(--md-sys-color-surface-variant);border-radius:var(--border-radius-sm);padding:1rem;border-left:4px solid var(--border-color);transition:all var(--transition-speed) ease}.worker-card.online{border-left-color:#48bb78}.worker-card.offline{border-left-color:#f56565}.worker-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.worker-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.worker-name{display:flex;align-items:center;gap:.5rem;font-weight:600;color:var(--text-primary)}.worker-status{display:flex;align-items:center;gap:.5rem;font-size:.75rem;font-weight:500;padding:.25rem .75rem;border-radius:12px}.worker-status.status-online{background:#c6f6d5;color:#22543d}.worker-status.status-offline{background:#fed7d7;color:#742a2a}.worker-stats{display:flex;flex-direction:column;gap:.5rem}.stat-item{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);font-size:.875rem}.stat-item .material-symbols-outlined{font-size:1rem;color:var(--primary-color)}.tasks-list{display:flex;flex-direction:column;gap:.75rem}.task-item{background:var(--md-sys-color-surface-variant);border-radius:var(--border-radius-sm);padding:1rem;border-left:4px solid var(--border-color);transition:all var(--transition-speed) ease}.task-item:hover{transform:translate(4px);box-shadow:var(--shadow-md)}.task-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.task-name{display:flex;align-items:center;gap:.5rem;font-weight:600;color:var(--text-primary)}.task-state{padding:.25rem .75rem;border-radius:var(--border-radius-md);font-size:.75rem;font-weight:600;text-transform:uppercase}.task-state.state-success{background:#c6f6d5;color:#22543d}.task-state.state-failure{background:#fed7d7;color:#742a2a}.task-state.state-pending{background:#feebc8;color:#7c2d12}.task-state.state-started{background:#bee3f8;color:#2c5282}.task-state.state-retry{background:#e9d8fd;color:#44337a}.task-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem;margin-bottom:.75rem;font-size:.875rem;color:var(--text-secondary)}.task-actions{display:flex;gap:.5rem;flex-wrap:wrap}.btn-view-task,.btn-revoke-task{display:flex;align-items:center;gap:.25rem;border:none;padding:.5rem 1rem;border-radius:var(--border-radius-sm);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-speed) ease}.btn-view-task{background:var(--primary-color);color:#fff}.btn-view-task:hover{background:var(--primary-hover);transform:scale(1.02)}.btn-revoke-task{background:var(--danger-color);color:#fff}.btn-revoke-task:hover{background:#b71c1c;transform:scale(1.02)}.btn-view-task .material-symbols-outlined,.btn-revoke-task .material-symbols-outlined{font-size:18px}.modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;backdrop-filter:blur(4px);z-index:1000;align-items:center;justify-content:center;padding:2rem}.modal.show{display:flex}.modal-content{background:#fff;border-radius:var(--border-radius-sm);max-width:800px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.modal-header{padding:1.5rem;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.modal-header h3{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.btn-close{background:transparent;border:none;cursor:pointer;padding:.5rem;color:var(--text-muted);transition:all var(--transition-speed) ease}.btn-close:hover{color:var(--text-primary);transform:scale(1.1)}.modal-body{padding:1.5rem;overflow-y:auto}.task-detail-section{margin-bottom:1.5rem}.task-detail-section h4{margin:0 0 1rem;font-size:1rem;font-weight:600;color:var(--text-primary);padding-bottom:.5rem;border-bottom:2px solid var(--primary-color)}.detail-grid{display:grid;gap:1rem}.detail-item{display:flex;flex-direction:column;gap:.25rem}.detail-item label{font-weight:500;color:var(--text-secondary);font-size:.875rem}.detail-item code{background:var(--md-sys-color-surface-variant);padding:.5rem;border-radius:4px;font-family:Courier New,monospace;font-size:.875rem;word-break:break-all}.detail-item pre{background:var(--md-sys-color-surface-variant);padding:1rem;border-radius:4px;font-family:Courier New,monospace;font-size:.875rem;overflow-x:auto;margin:0}.error-section{background:var(--danger-bg);padding:1rem;border-radius:var(--border-radius-sm);border-left:4px solid var(--danger-color)}.error-text{color:var(--danger-color)}.loading{text-align:center;padding:2rem;color:var(--text-muted)}.empty-state{text-align:center;padding:3rem 2rem;color:var(--text-muted)}.empty-state .material-symbols-outlined{font-size:3rem;color:var(--border-color);margin-bottom:1rem}.error-message{text-align:center;padding:2rem;color:var(--danger-color);display:flex;flex-direction:column;align-items:center;gap:.5rem}.error-message .material-symbols-outlined{font-size:3rem}.error-message h3{color:var(--text-primary);margin:.5rem 0}.error-message p{color:var(--text-secondary);margin:.25rem 0;max-width:600px}.error-message ul{color:var(--text-secondary);padding-left:1.5rem}@media (max-width: 768px){.flower-main,.header-content{padding:1rem}.header-left h1{font-size:1.25rem}.workers-grid{grid-template-columns:1fr}.card-header{flex-direction:column;align-items:flex-start;gap:1rem}.filter-controls{width:100%;flex-direction:column}.form-select{width:100%}.task-details{grid-template-columns:1fr}}
