*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #4338ca;--color-primary-hover: #3730a3;--color-text: #111827;--color-text-secondary: #374151;--color-bg: #ffffff;--color-bg-surface: #f9fafb;--color-border: #d1d5db;--color-error: #b91c1c;--color-error-bg: #fee2e2;--radius: 8px;--tap-target: 44px}html{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px;line-height:1.5;color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased}body{min-height:100dvh;display:flex;flex-direction:column}#root{flex:1;display:flex;flex-direction:column}:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px;border-radius:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap-target);min-width:var(--tap-target);padding:0 20px;font-size:1rem;font-weight:600;line-height:1;border:none;border-radius:var(--radius);cursor:pointer;text-decoration:none;transition:background-color .15s ease;white-space:nowrap}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover{background-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--color-bg-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background-color:var(--color-border)}.signin-page{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;gap:32px;text-align:center}.signin-logo{font-size:2.5rem;font-weight:800;color:var(--color-primary);letter-spacing:-.05em}.signin-tagline{font-size:1.125rem;color:var(--color-text-secondary);max-width:320px}.btn-google{background-color:#fff;color:#3c4043;border:1px solid #dadce0;box-shadow:0 1px 3px #3c404326;font-weight:500;padding:0 24px;font-size:1rem}.btn-google:hover{background-color:#f8f9fa;box-shadow:0 1px 3px #3c40434d}.google-icon{width:20px;height:20px;flex-shrink:0}.app-header{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:56px;border-bottom:1px solid var(--color-border);background-color:var(--color-bg);position:sticky;top:0;z-index:10}.app-header-brand{font-size:1.25rem;font-weight:700;color:var(--color-primary);text-decoration:none}.user-menu{display:flex;align-items:center;gap:12px}.user-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid var(--color-border)}.user-avatar-placeholder{width:36px;height:36px;border-radius:50%;background-color:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem;flex-shrink:0}.user-name{font-size:.875rem;font-weight:500;color:var(--color-text);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 400px){.user-name{display:none}}.app-main{flex:1;display:flex;flex-direction:column;max-width:800px;width:100%;margin:0 auto;overflow:hidden}.app-footer{flex-shrink:0;display:flex;justify-content:flex-end;max-width:800px;width:100%;margin:0 auto;padding:2px 16px calc(4px + env(safe-area-inset-bottom,0px))}.model-badge{font-size:.75rem;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.denied-page{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;gap:24px;text-align:center}.denied-icon{font-size:3rem}.denied-title{font-size:1.5rem;font-weight:700;color:var(--color-text)}.denied-message{font-size:1rem;color:var(--color-text-secondary);max-width:400px;line-height:1.6}.denied-email{font-weight:600;color:var(--color-error);word-break:break-all}.denied-actions{display:flex;flex-direction:column;gap:12px;width:100%;max-width:320px}.loading-page{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--color-text-secondary)}.spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 375px){html{font-size:16px}.btn{padding:0 16px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.chat-page{flex:1;display:flex;flex-direction:column;height:0;min-height:calc(100dvh - 56px)}.chat-page--loading,.chat-page--error{flex:1;display:flex;align-items:center;justify-content:center;padding:24px;color:var(--color-text-secondary)}.chat-page--error{color:var(--color-error)}.thread-switcher{display:flex;border-bottom:1px solid var(--color-border);background:var(--color-bg);padding:0 16px;flex-shrink:0}.thread-tab{min-height:44px;padding:0 20px;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;font-size:.9375rem;font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:color .12s,border-color .12s}.thread-tab:hover{color:var(--color-text)}.thread-tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.chat-body{flex:1;display:flex;flex-direction:column;overflow:hidden}.chat-loading{flex:1;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);font-size:.9375rem}.message-list{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.message-bubble{display:flex;flex-direction:column;max-width:78%;gap:4px}.message-bubble--user{align-self:flex-end;align-items:flex-end}.message-bubble--assistant{align-self:flex-start;align-items:flex-start}.message-sender{display:flex;align-items:center;gap:6px;margin-bottom:2px}.message-avatar{width:20px;height:20px;border-radius:50%;object-fit:cover}.message-sender-name{font-size:.75rem;font-weight:600;color:var(--color-text-secondary)}.message-content{padding:10px 14px;border-radius:16px;font-size:.9375rem;line-height:1.5;white-space:pre-wrap;word-break:break-word}.message-bubble--user .message-content{background-color:var(--color-primary);color:#fff;border-bottom-right-radius:4px}.message-bubble--assistant .message-content{background-color:var(--color-bg-surface);color:var(--color-text);border:1px solid var(--color-border);border-bottom-left-radius:4px}.message-bubble--error .message-content{background-color:var(--color-error-bg);color:var(--color-error);border-color:var(--color-error)}.message-bubble--pending .message-content{opacity:.6}.streaming-cursor{display:inline-block;animation:blink 1s step-end infinite;margin-left:1px;font-size:.85em}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.message-status{font-size:.75rem;color:var(--color-text-secondary);display:flex;align-items:center;gap:4px;padding:0 4px}.message-status--error{color:var(--color-error)}.retry-btn{background:none;border:none;color:var(--color-primary);font-size:.75rem;font-weight:600;cursor:pointer;padding:0;text-decoration:underline;min-height:unset}.message-attachments{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.attachment-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-bg);text-decoration:none;color:var(--color-text);font-size:.8125rem;max-width:200px;overflow:hidden}.attachment-chip:hover{background:var(--color-bg-surface)}.attachment-chip--image{flex-direction:column;padding:4px;align-items:flex-start}.attachment-thumbnail{width:80px;height:80px;object-fit:cover;border-radius:6px;display:block}.attachment-chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.75rem}.attachment-icon{flex-shrink:0}.composer{flex-shrink:0;border-top:1px solid var(--color-border);background:var(--color-bg);padding:12px 16px;display:flex;flex-direction:column;gap:8px}.composer-uploads{display:flex;flex-direction:column;gap:4px}.upload-row{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--radius);background:var(--color-bg-surface);border:1px solid var(--color-border);font-size:.8125rem}.upload-row--error{border-color:var(--color-error);background:var(--color-error-bg)}.upload-filename{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text)}.upload-done{color:#16a34a;font-weight:700;flex-shrink:0}.upload-error{color:var(--color-error);font-size:.75rem}.upload-progress{flex:1;height:6px;border-radius:3px;accent-color:var(--color-primary)}.upload-remove{background:none;border:none;cursor:pointer;color:var(--color-text-secondary);font-size:.875rem;padding:0 2px;min-height:unset;line-height:1;flex-shrink:0}.upload-remove:hover{color:var(--color-error)}.composer-row{display:flex;align-items:flex-end;gap:8px}.attach-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius);min-height:44px;min-width:44px;padding:0;font-size:1.125rem;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);transition:background-color .12s}.attach-btn:hover:not(:disabled){background:var(--color-bg-surface)}.attach-btn:disabled{opacity:.4;cursor:not-allowed}.composer-input{flex:1;resize:none;border:1px solid var(--color-border);border-radius:var(--radius);padding:10px 14px;font-size:.9375rem;font-family:inherit;line-height:1.5;color:var(--color-text);background:var(--color-bg);min-height:44px;max-height:140px;overflow-y:auto;transition:border-color .12s;field-sizing:content}.composer-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #4338ca26}.composer-input:disabled{background:var(--color-bg-surface);opacity:.6;cursor:not-allowed}.send-btn{min-height:44px;padding:0 20px;background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius);font-size:.9375rem;font-weight:600;cursor:pointer;flex-shrink:0;transition:background-color .12s}.send-btn:hover:not(:disabled){background-color:var(--color-primary-hover)}.send-btn:disabled{opacity:.4;cursor:not-allowed}.offline-banner{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#fefce8;border-bottom:1px solid #fde047;color:#713f12;font-size:.875rem;flex-shrink:0}.offline-icon{font-size:1rem;flex-shrink:0}.confirm-prompt{margin-top:10px;padding:12px 14px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:var(--radius);font-size:.9rem}.confirm-summary{color:var(--color-text);line-height:1.5;margin-bottom:10px;white-space:pre-wrap;word-break:break-word}.confirm-buttons{display:flex;gap:8px;flex-wrap:wrap}.confirm-yes,.confirm-no{min-height:36px;padding:0 16px;font-size:.875rem}.confirm-resolved{margin-top:8px;font-size:.8125rem;font-style:italic;color:var(--color-text-secondary)}.confirm-resolved--confirmed{color:#15803d}.confirm-resolved--declined{color:var(--color-error)}.tool-activities{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.tool-activity-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:.75rem;font-weight:500;border:1px solid transparent}.tool-activity-chip--success{background:#dcfce7;color:#15803d;border-color:#86efac}.tool-activity-chip--error{background:var(--color-error-bg);color:var(--color-error);border-color:#fca5a5}.tool-activity-chip--refused{background:#fefce8;color:#92400e;border-color:#fde68a}.alert-bell-btn{position:relative;padding:0 12px}.alert-bell-icon{font-size:1.2rem;line-height:1}.alert-badge{position:absolute;top:4px;right:4px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background-color:var(--color-error);color:#fff;font-size:.6875rem;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}.alert-compose-btn{padding:0 14px;font-size:.875rem}.settings-btn{padding:0 12px;font-size:1.1rem}.panel-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0006;z-index:100;display:flex;align-items:flex-start;justify-content:flex-end;padding:16px}@media (max-width: 600px){.panel-overlay{align-items:flex-end;padding:0}}.panel{background:var(--color-bg);color:var(--color-text);border-radius:var(--radius);box-shadow:0 8px 32px #0000002e;width:100%;max-width:960px;max-height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden}@media (max-width: 600px){.panel{max-height:90vh;border-radius:var(--radius) var(--radius) 0 0}}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:16px 20px;border-bottom:1px solid var(--color-border);background:var(--color-bg);flex-shrink:0}.panel-title{font-size:1.125rem;font-weight:700}.panel-close{min-height:36px;min-width:36px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg-surface);color:var(--color-text);font-size:1rem;cursor:pointer}.panel-body{padding:12px 20px 20px;overflow:auto;flex:1}.activity-table{width:100%;border-collapse:collapse;font-size:.8125rem}.activity-table th,.activity-table td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--color-border);white-space:nowrap;vertical-align:top}.activity-table th{position:sticky;top:-12px;background:var(--color-bg);color:var(--color-text-secondary);font-weight:600}.activity-row--error td{color:var(--color-error)}.activity-row--error .activity-status{font-weight:600}.activity-tokens,.activity-latency{text-align:right;font-variant-numeric:tabular-nums}.activity-empty,.activity-loading{padding:12px 0;color:var(--color-text-secondary)}.activity-error{padding:10px 12px;margin-bottom:12px;border-radius:var(--radius);background:var(--color-error-bg);color:var(--color-error)}.activity-load-more{margin-top:12px}.alert-composer{background:var(--color-bg);border-radius:var(--radius);box-shadow:0 8px 32px #0000002e;width:100%;max-width:480px;max-height:calc(100vh - 32px);overflow-y:auto;display:flex;flex-direction:column}.alert-composer--urgent{border:2px solid #dc2626}.alert-composer-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 0}.alert-composer-title{font-size:1.125rem;font-weight:700}.alert-composer-close{min-height:36px;min-width:36px;padding:0 12px;font-size:.875rem}.alert-composer-form{padding:16px 20px 20px;display:flex;flex-direction:column;gap:16px}.alert-composer-fieldset{border:none;padding:0}.alert-composer-legend{font-size:.875rem;font-weight:600;color:var(--color-text-secondary);margin-bottom:8px}.alert-type-picker,.alert-audience-kind{display:flex;flex-wrap:wrap;gap:8px}.alert-type-option{display:inline-flex;align-items:center;justify-content:center;padding:6px 14px;border-radius:20px;font-size:.875rem;font-weight:500;cursor:pointer;border:1px solid var(--color-border);background:var(--color-bg-surface);min-height:36px;transition:background-color .1s,border-color .1s}.alert-type-option--active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.alert-type-option--urgent{border-color:#dc2626;color:#dc2626}.alert-type-option--urgent.alert-type-option--active{background:#dc2626;color:#fff}.alert-member-list{margin-top:10px;display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius);padding:8px}.alert-member-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;font-size:.9375rem}.alert-member-item--selected{background:var(--color-bg-surface)}.alert-member-email{font-size:.75rem;color:var(--color-text-secondary)}.alert-composer-field{display:flex;flex-direction:column;gap:4px}.alert-composer-label{font-size:.875rem;font-weight:600;color:var(--color-text-secondary)}.alert-composer-input{border:1px solid var(--color-border);border-radius:var(--radius);padding:8px 12px;font-size:1rem;background:var(--color-bg);color:var(--color-text);min-height:44px}.alert-composer-textarea{border:1px solid var(--color-border);border-radius:var(--radius);padding:8px 12px;font-size:1rem;background:var(--color-bg);color:var(--color-text);resize:vertical;font-family:inherit;line-height:1.5}.alert-composer-error{color:var(--color-error);font-size:.875rem}.alert-composer-success{padding:16px 20px 20px;color:#166534}.alert-composer-actions{display:flex;justify-content:flex-end}.btn-urgent{background-color:#dc2626}.btn-urgent:hover{background-color:#b91c1c}.alert-inbox{background:var(--color-bg);border-radius:var(--radius);box-shadow:0 8px 32px #0000002e;width:100%;max-width:480px;max-height:calc(100vh - 32px);overflow-y:auto;display:flex;flex-direction:column}.alert-inbox-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border);position:sticky;top:0;background:var(--color-bg);z-index:1}.alert-inbox-title{font-size:1.125rem;font-weight:700}.alert-inbox-close{min-height:36px;min-width:36px;padding:0 12px;font-size:.875rem}.alert-inbox-empty{padding:24px 20px;color:var(--color-text-secondary);text-align:center}.alert-inbox-list{list-style:none;padding:8px 0}.alert-inbox-item{padding:12px 20px;cursor:pointer;border-left:4px solid transparent;transition:background-color .1s}.alert-inbox-item:hover{background-color:var(--color-bg-surface)}.alert-inbox-item--unread{background-color:#eff6ff;border-left-color:var(--color-primary)}.alert-inbox-item--urgent{border-left-color:#dc2626}.alert-inbox-item--urgent.alert-inbox-item--unread{background-color:#fff1f2}.alert-inbox-item-meta{display:flex;align-items:center;gap:8px;margin-bottom:4px;flex-wrap:wrap}.alert-type-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.75rem;font-weight:600;text-transform:capitalize;background:var(--color-bg-surface);border:1px solid var(--color-border)}.alert-type-badge--urgent{background:#fee2e2;color:#dc2626;border-color:#fca5a5}.alert-type-badge--instruction{background:#eff6ff;color:#1d4ed8;border-color:#93c5fd}.alert-type-badge--reminder{background:#f0fdf4;color:#166534;border-color:#86efac}.alert-inbox-audience{font-size:.75rem;color:var(--color-text-secondary)}.alert-inbox-time{font-size:.75rem;color:var(--color-text-secondary);margin-left:auto}.alert-unread-dot{width:8px;height:8px;border-radius:50%;background-color:var(--color-primary);flex-shrink:0}.alert-inbox-item-title{font-weight:600;font-size:.9375rem;margin-bottom:2px}.alert-inbox-item-body{font-size:.9375rem;color:var(--color-text);white-space:pre-wrap;word-break:break-word}.alert-inbox-sender{font-size:.75rem;color:var(--color-text-secondary);margin-top:4px}.settings-panel{background:var(--color-bg);border-radius:var(--radius);box-shadow:0 8px 32px #0000002e;width:100%;max-width:400px;max-height:calc(100vh - 32px);overflow-y:auto;display:flex;flex-direction:column}.settings-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border)}.settings-panel-title{font-size:1.125rem;font-weight:700}.settings-panel-close{min-height:36px;min-width:36px;padding:0 12px;font-size:.875rem}.settings-panel-form{padding:16px 20px;display:flex;flex-direction:column;gap:16px}.settings-field{display:flex;flex-direction:column;gap:4px}.settings-label{font-size:.875rem;font-weight:600;color:var(--color-text-secondary)}.settings-select,.settings-input{border:1px solid var(--color-border);border-radius:var(--radius);padding:8px 12px;font-size:1rem;background:var(--color-bg);color:var(--color-text);min-height:44px}.settings-quiet-toggle-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.9375rem;font-weight:500;color:var(--color-text)}.settings-checkbox{width:18px;height:18px;cursor:pointer}.settings-quiet-hours{display:flex;gap:16px}.settings-quiet-hours .settings-field{flex:1}.settings-help{font-size:.8125rem;color:var(--color-text-secondary);margin-top:2px}.settings-default-badge{font-weight:400;font-size:.75rem;color:var(--color-text-secondary)}.settings-error{color:var(--color-error);font-size:.875rem}.settings-push-section{padding:16px 20px 20px;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:10px}.settings-section-title{font-size:1rem;font-weight:600}.settings-push-denied{color:var(--color-error)}.settings-push-toggle-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.9375rem}@media (max-width: 600px){.alert-composer,.alert-inbox,.settings-panel{max-width:100%;border-bottom-left-radius:0;border-bottom-right-radius:0;max-height:85vh}}.tasks-btn{padding:0 12px;font-size:1.1rem}.task-manager{background:var(--color-bg);border-radius:var(--radius);box-shadow:0 8px 32px #0000002e;width:100%;max-width:560px;max-height:calc(100vh - 32px);overflow-y:auto;display:flex;flex-direction:column}.task-manager-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border);position:sticky;top:0;background:var(--color-bg);z-index:1}.task-manager-title{font-size:1.125rem;font-weight:700}.task-manager-header-actions{display:flex;gap:8px;align-items:center}.task-manager-close{min-height:36px;min-width:36px;padding:0 12px;font-size:.875rem}.task-manager-loading,.task-manager-empty{padding:24px 20px;color:var(--color-text-secondary);text-align:center}.task-manager-error{padding:12px 20px;color:var(--color-error);font-size:.875rem}.task-list{list-style:none;padding:8px 0}.task-item{padding:14px 20px;border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:8px}.task-item--paused{opacity:.65}.task-item-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.task-item-title{font-weight:600;font-size:.9375rem;flex:1}.task-item-type{padding:2px 8px;border-radius:10px;font-size:.75rem;font-weight:600;border:1px solid var(--color-border);background:var(--color-bg-surface)}.task-item-type--agent{background:#eff6ff;color:#1d4ed8;border-color:#93c5fd}.task-item-type--alert{background:#f0fdf4;color:#166534;border-color:#86efac}.task-item-paused-badge{padding:2px 8px;border-radius:10px;font-size:.75rem;font-weight:600;background:#fef3c7;color:#92400e;border:1px solid #fde68a}.task-item-schedule{font-size:.875rem;color:var(--color-text-secondary)}.task-item-meta{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;font-size:.8125rem}.task-item-meta dt{color:var(--color-text-secondary);font-weight:500}.task-item-meta dd{color:var(--color-text);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.task-run-status{padding:1px 6px;border-radius:8px;font-size:.7rem;font-weight:600;border:1px solid transparent}.task-run-status--ran{background:#dcfce7;color:#15803d;border-color:#86efac}.task-run-status--ran_catchup{background:#eff6ff;color:#1d4ed8;border-color:#93c5fd}.task-run-status--skipped_missed{background:#fef3c7;color:#92400e;border-color:#fde68a}.task-run-status--failed{background:var(--color-error-bg);color:var(--color-error);border-color:#fca5a5}.task-run-status--completed{background:#f0fdf4;color:#166534;border-color:#86efac}.task-item-actions{display:flex;gap:8px;flex-wrap:wrap}.task-item-btn{min-height:32px;padding:0 12px;font-size:.8125rem}.task-item-btn--danger{color:var(--color-error);border-color:var(--color-error)}.task-item-btn--danger:hover{background:var(--color-error-bg)}.task-composer{background:var(--color-bg);border-radius:var(--radius);box-shadow:0 8px 32px #0000002e;width:100%;max-width:560px;max-height:calc(100vh - 32px);overflow-y:auto;display:flex;flex-direction:column}.task-composer-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 0}.task-composer-title{font-size:1.125rem;font-weight:700}.task-composer-close{min-height:36px;min-width:36px;padding:0 12px;font-size:.875rem}.task-composer-form{padding:16px 20px 20px;display:flex;flex-direction:column;gap:16px}.task-composer-fieldset{border:none;padding:0}.task-composer-legend{font-size:.875rem;font-weight:600;color:var(--color-text-secondary);margin-bottom:8px}.task-composer-field{display:flex;flex-direction:column;gap:4px}.task-composer-label{font-size:.875rem;font-weight:600;color:var(--color-text-secondary)}.task-composer-input,.task-composer-select{border:1px solid var(--color-border);border-radius:var(--radius);padding:8px 12px;font-size:1rem;background:var(--color-bg);color:var(--color-text);min-height:44px}.task-composer-textarea{border:1px solid var(--color-border);border-radius:var(--radius);padding:8px 12px;font-size:1rem;background:var(--color-bg);color:var(--color-text);resize:vertical;font-family:inherit;line-height:1.5}.task-composer-checkbox{width:18px;height:18px;cursor:pointer;margin-right:4px}.task-composer-help{font-size:.8125rem;color:var(--color-text-secondary);margin-top:2px}.task-action-list{display:flex;flex-direction:column;gap:4px}.task-action-item{display:flex;align-items:center;gap:8px;font-size:.875rem}.btn-link{font:inherit;font-size:.8125rem;background:none;border:none;padding:0;color:var(--color-primary);text-decoration:underline;cursor:pointer}.design-panel summary{cursor:pointer}.design-panel[open] summary{margin-bottom:8px}.design-chat{display:flex;flex-direction:column;gap:8px}.design-chat-log{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:50vh;overflow-y:auto}.design-chat-msg{padding:8px 12px;border-radius:10px;font-size:.875rem;max-width:92%;overflow-wrap:anywhere}.design-chat-msg p{margin:0;white-space:pre-wrap}.design-chat-msg--user{align-self:flex-end;background:var(--color-primary);color:var(--color-bg)}.design-chat-msg--designer{align-self:flex-start;background:var(--color-bg-surface);border:1px solid var(--color-border)}.design-chat-questions{margin:6px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.design-chat-default{display:block;font-size:.8125rem;color:var(--color-text-secondary)}.routine-field-header{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.routine-view{padding:10px 12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-surface);font-size:.875rem;max-height:60vh;overflow-y:auto;overflow-wrap:anywhere}.routine-view p,.routine-view ul,.routine-view ol{margin:0 0 8px}.routine-view ul,.routine-view ol{padding-left:20px}.routine-view-heading{margin:12px 0 4px;font-size:.9375rem}.routine-view-heading:first-child{margin-top:0}.test-run-result{margin-top:10px}.test-run-tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:8px}.test-run-tab{font:inherit;font-size:.8125rem;padding:4px 10px;border:1px solid var(--color-border);border-radius:999px;background:transparent;color:var(--color-text-secondary);cursor:pointer}.test-run-tab--active{color:inherit;border-color:currentColor;font-weight:600}.test-run-message-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0 0;padding:8px 10px;border-left:3px solid var(--color-border);font-size:.875rem}.test-run-list{margin:0;padding-left:20px;font-size:.8125rem;display:flex;flex-direction:column;gap:4px;overflow-wrap:anywhere}.test-run-trace-detail{color:var(--color-text-secondary);font-family:ui-monospace,monospace;font-size:.75rem}.task-item-routine{margin-top:8px;font-size:.8125rem}.task-item-routine summary{cursor:pointer;color:var(--color-text-secondary)}.task-item-routine .routine-view{margin-top:6px;max-height:40vh}.task-composer-error{color:var(--color-error);font-size:.875rem}.task-composer-success{padding:16px 20px 20px;color:#166534}.task-composer-actions{display:flex;justify-content:flex-end}.task-type-picker{display:flex;flex-wrap:wrap;gap:8px}.task-type-option{display:inline-flex;align-items:center;justify-content:center;padding:6px 14px;border-radius:20px;font-size:.875rem;font-weight:500;cursor:pointer;border:1px solid var(--color-border);background:var(--color-bg-surface);min-height:36px;transition:background-color .1s,border-color .1s}.task-type-option--active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.task-outward-label{display:flex;align-items:flex-start;gap:8px;cursor:pointer;font-size:.9375rem;font-weight:500;color:var(--color-text);line-height:1.4}.schedule-input{display:flex;flex-direction:column;gap:12px}.schedule-input-tabs{display:flex;gap:4px}.schedule-tab{padding:6px 14px;border:1px solid var(--color-border);border-radius:20px;background:var(--color-bg-surface);font-size:.875rem;font-weight:500;cursor:pointer;min-height:36px;transition:background-color .1s}.schedule-tab--active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.schedule-presets{display:flex;flex-direction:column;gap:4px}.schedule-preset-option{display:flex;align-items:center;padding:8px 12px;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-bg-surface);cursor:pointer;font-size:.9375rem;min-height:44px;transition:background-color .1s,border-color .1s}.schedule-preset-option--active{background:#eff6ff;border-color:var(--color-primary);color:var(--color-primary);font-weight:600}.schedule-nl{display:flex;flex-direction:column;gap:8px}.schedule-nl-row{display:flex;gap:8px}.schedule-nl-input{flex:1;border:1px solid var(--color-border);border-radius:var(--radius);padding:8px 12px;font-size:.9375rem;background:var(--color-bg);color:var(--color-text);min-height:44px}.schedule-nl-btn{min-height:44px;padding:0 14px;font-size:.875rem;white-space:nowrap;flex-shrink:0}.schedule-error{color:var(--color-error);font-size:.875rem}.schedule-preview{padding:10px 12px;background:#f0fdf4;border:1px solid #86efac;border-radius:var(--radius);display:flex;flex-direction:column;gap:2px}.schedule-preview-label{font-size:.75rem;font-weight:600;color:#166534;text-transform:uppercase;letter-spacing:.03em}.schedule-preview-desc{font-size:.9375rem;font-weight:600;color:var(--color-text)}.schedule-preview-next,.schedule-preview-tz{font-size:.8125rem;color:var(--color-text-secondary)}.alert-schedule-toggle-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.9375rem;font-weight:500;color:var(--color-text)}.alert-composer-checkbox{width:18px;height:18px;cursor:pointer}.task-manager-info{padding:10px 20px;color:#166534;font-size:.875rem}.task-item--draft{border-left:3px solid var(--color-primary)}.task-item-draft-badge{padding:2px 8px;border-radius:10px;font-size:.75rem;font-weight:600;background:#eef2ff;color:var(--color-primary);border:1px solid #c7d2fe}.task-item-pending-badge{padding:2px 8px;border-radius:10px;font-size:.75rem;font-weight:600;background:#fef3c7;color:#92400e;border:1px solid #fde68a}.task-run-status--outcome-success{background:#dcfce7;color:#15803d;border-color:#86efac}.task-run-status--outcome-no_match{background:var(--color-bg-surface);color:var(--color-text-secondary);border-color:var(--color-border)}.task-run-status--outcome-soft_failure{background:#fef3c7;color:#92400e;border-color:#fde68a}.task-run-status--outcome-hard_failure{background:var(--color-error-bg);color:var(--color-error);border-color:#fca5a5}.task-interpret-preview{display:flex;flex-direction:column;gap:16px;padding-top:4px;border-top:1px dashed var(--color-border)}.task-interpret-preview-label{font-size:.8125rem;font-weight:600;color:var(--color-text-secondary)}.task-datasource-row{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:6px;margin-bottom:8px;align-items:center}.task-datasource-remove{min-height:32px;padding:0 10px;font-size:.75rem}.task-clarify{padding:10px 12px;background:#fef3c7;border:1px solid #fde68a;border-radius:var(--radius)}.task-clarify-title{font-size:.875rem;font-weight:600;color:#92400e}.task-clarify-list{margin:4px 0 0 18px;font-size:.875rem;color:#92400e}.run-history{background:var(--color-bg);border-radius:var(--radius);box-shadow:0 8px 32px #0000002e;width:100%;max-width:560px;max-height:calc(100vh - 32px);overflow-y:auto;display:flex;flex-direction:column}.run-history-header{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border);position:sticky;top:0;background:var(--color-bg);z-index:1;gap:8px}.run-history-title{font-size:1.125rem;font-weight:700}.run-history-subtitle{font-size:.875rem;color:var(--color-text-secondary)}.run-history-close{min-height:36px;min-width:36px;padding:0 12px;font-size:.875rem;flex-shrink:0}.run-history-loading,.run-history-empty{padding:24px 20px;color:var(--color-text-secondary);text-align:center}.run-history-error{padding:12px 20px;color:var(--color-error);font-size:.875rem}.run-history-list{list-style:none;padding:8px 0}.run-history-item{padding:12px 20px;border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:6px}.run-history-item-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.run-history-item-time{font-size:.8125rem;color:var(--color-text-secondary);margin-left:auto}.run-outcome-badge{padding:2px 8px;border-radius:10px;font-size:.75rem;font-weight:600;border:1px solid var(--color-border);background:var(--color-bg-surface)}.run-outcome-badge--success{background:#dcfce7;color:#15803d;border-color:#86efac}.run-outcome-badge--no_match{background:var(--color-bg-surface);color:var(--color-text-secondary);border-color:var(--color-border)}.run-outcome-badge--soft_failure{background:#fef3c7;color:#92400e;border-color:#fde68a}.run-outcome-badge--hard_failure{background:var(--color-error-bg);color:var(--color-error);border-color:#fca5a5}.run-trigger-badge{padding:2px 8px;border-radius:10px;font-size:.75rem;font-weight:500;border:1px solid var(--color-border);background:var(--color-bg-surface);color:var(--color-text-secondary)}.run-history-item-summary{font-size:.875rem;color:var(--color-text)}.run-history-item-error{font-size:.8125rem;color:var(--color-error)}.run-history-item-meta{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;font-size:.75rem}.run-history-item-meta dt{color:var(--color-text-secondary);font-weight:500}.run-history-item-meta dd{color:var(--color-text)}@media (max-width: 600px){.task-manager,.task-composer,.run-history{max-width:100%;border-bottom-left-radius:0;border-bottom-right-radius:0;max-height:90vh}.task-datasource-row{grid-template-columns:1fr}}.wa-panel{max-width:440px}.wa-section{padding:16px 20px;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:10px}.wa-badge{display:inline-block;align-self:flex-start;padding:4px 12px;border-radius:999px;font-size:.875rem;font-weight:600;background:var(--color-border)}.wa-badge--connected{background:#d9f2e1;color:#14532d}.wa-badge--relink_required,.wa-badge--offline{background:#fde2e2;color:#7f1d1d}.wa-qr{width:100%;max-width:280px;align-self:center;background:#fff;padding:8px;border-radius:var(--radius)}.wa-qr svg{width:100%;height:auto;display:block}.wa-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.75rem;letter-spacing:.2em;text-align:center;padding:12px;border:1px dashed var(--color-border);border-radius:var(--radius)}.wa-actions{display:flex;flex-wrap:wrap;gap:8px}.wa-row{display:flex;flex-direction:column;gap:6px;padding-bottom:8px}
