:root{--color-primary:#2563eb;--color-secondary:#64748b;--color-success:#16a34a;--color-warning:#eab308;--color-error:#dc2626;--color-error-bg:#fef2f2;--color-background:#fff;--color-surface:#f8fafc;--color-text:#1e293b;--color-text-secondary:#64748b;--color-border:#e2e8f0;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--border-radius-sm:4px;--border-radius-md:8px;--border-radius-lg:12px;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-md:1rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--owner-1-primary:#2563eb;--owner-1-light:#dbeafe;--owner-2-primary:#7c3aed;--owner-2-light:#ede9fe}*,:after,:before{box-sizing:border-box;margin:0;padding:0}*,:after,:before,body,html{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}body,html{background:var(--color-background);color:var(--color-text);font-size:16px;line-height:1.5;overflow:hidden}#root,body,html{height:100%}.app-layout{height:100vh}.app-layout,.sidebar{display:flex;overflow:hidden}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;height:100%;min-width:240px;padding:var(--spacing-md) 0;width:240px}.sidebar__section{display:block}.sidebar__section--bottom{margin-top:auto}.sidebar__links{list-style:none;padding:0}.sidebar__link{color:var(--color-text);display:block;padding:var(--spacing-sm) var(--spacing-md);text-decoration:none;transition:background-color .15s ease}.sidebar__link:hover{background:var(--color-border)}.sidebar__link--active,.sidebar__link--active:hover{background:var(--color-primary);color:#fff}.sidebar__link--active:hover{filter:brightness(1.1)}.sidebar__link:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.sidebar__divider{border-top:1px solid var(--color-border);margin:var(--spacing-sm) var(--spacing-md)}.sidebar__section-title{color:var(--color-text-secondary);display:block;font-size:var(--font-size-sm);letter-spacing:.05em;padding:var(--spacing-xs) var(--spacing-md);text-transform:uppercase}.content-area-wrapper{display:flex;flex:1 1;flex-direction:column;min-width:0;overflow:hidden}.top-bar{align-items:center;background:var(--color-background);border-bottom:1px solid var(--color-border);display:flex;flex-shrink:0;gap:var(--spacing-md);min-height:52px;padding:var(--spacing-sm) var(--spacing-lg)}.top-bar-spacer{flex:1 1}.content-area{display:flex;flex:1 1;flex-direction:column;overflow-y:auto;padding:var(--spacing-lg) var(--spacing-xl)}.content-area__header{margin-bottom:var(--spacing-md)}.content-area__main{flex:1 1}.user-menu{position:relative}.user-menu-trigger{align-items:center;background:none;border:1px solid var(--color-border);border-radius:var(--border-radius-md);color:var(--color-text);cursor:pointer;display:flex;font-size:var(--font-size-sm);gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);transition:background-color .15s ease}.user-menu-trigger:hover{background:var(--color-surface)}.user-avatar{align-items:center;background:var(--color-primary);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.75rem;font-weight:600;height:28px;justify-content:center;width:28px}.user-name{font-size:var(--font-size-sm);font-weight:500}.user-menu-dropdown{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:0 4px 16px #0000001a;min-width:200px;overflow:hidden;position:absolute;right:0;top:calc(100% + 4px);z-index:200}.user-info{border-bottom:1px solid var(--color-border);padding:var(--spacing-sm) var(--spacing-md)}.user-role-badge{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text-secondary);display:inline-block;font-size:.7rem;font-weight:600;letter-spacing:.04em;margin-top:var(--spacing-xs);padding:1px 6px;text-transform:uppercase}.user-role-badge--admin{background:#dbeafe;border-color:#bfdbfe;color:var(--color-primary)}.user-email{color:var(--color-text-secondary);word-break:break-all}.logout-button,.user-email{display:block;font-size:var(--font-size-sm)}.logout-button{background:none;border:none;color:var(--color-error);cursor:pointer;padding:var(--spacing-sm) var(--spacing-md);text-align:left;transition:background-color .15s ease;width:100%}.logout-button:hover{background:var(--color-surface)}.bg-jobs{position:relative}.bg-jobs__trigger{align-items:center;background:none;border:1px solid var(--color-border);border-radius:var(--border-radius-md);color:var(--color-text);cursor:pointer;display:flex;height:36px;justify-content:center;padding:0;position:relative;transition:background-color .15s ease;width:36px}.bg-jobs__trigger--active,.bg-jobs__trigger:hover{background:var(--color-surface)}.bg-jobs__icon{font-size:16px;line-height:1}.bg-jobs__badge{align-items:center;background:var(--color-primary);border-radius:8px;color:#fff;display:flex;font-size:.7rem;font-weight:600;height:16px;justify-content:center;min-width:16px;padding:0 4px;position:absolute;right:-4px;top:-4px}.bg-jobs__dropdown{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:0 8px 24px #0000001f;display:flex;flex-direction:column;max-height:70vh;overflow:hidden;position:absolute;right:0;top:calc(100% + 4px);width:360px;z-index:200}.bg-jobs__header{border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm);font-weight:600;padding:var(--spacing-sm) var(--spacing-md)}.bg-jobs__title{color:var(--color-text)}.bg-jobs__list{flex:1 1;overflow-y:auto}.bg-jobs__empty,.bg-jobs__loading{color:var(--color-text-secondary);font-size:var(--font-size-sm);padding:var(--spacing-md);text-align:center}.bg-jobs__load-more{background:none;border:none;border-top:1px solid var(--color-border);color:var(--color-primary);cursor:pointer;font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md);text-align:center}.bg-jobs__load-more:hover:not(:disabled){background:var(--color-surface)}.bg-jobs__load-more:disabled{color:var(--color-text-secondary);cursor:default}.bg-job-row{border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:4px;padding:var(--spacing-sm) var(--spacing-md)}.bg-job-row:last-child{border-bottom:none}.bg-job-row--clickable{cursor:pointer}.bg-job-row--clickable:hover{background:var(--color-surface)}.bg-job-row--running{opacity:.9}.bg-job-row__main{display:flex;font-size:var(--font-size-sm);gap:var(--spacing-sm);justify-content:space-between}.bg-job-row__type{color:var(--color-text);font-weight:500}.bg-job-row__subject{color:var(--color-text-secondary)}.bg-job-row__meta{display:flex;font-size:.75rem;gap:var(--spacing-sm);justify-content:space-between}.bg-job-row__status{border-radius:var(--border-radius-sm);font-size:.7rem;font-weight:600;letter-spacing:.04em;padding:1px 6px;text-transform:uppercase}.bg-job-row__status--running{background:#dbeafe;color:#1d4ed8}.bg-job-row__status--completed{background:#dcfce7;color:#166534}.bg-job-row__status--failed{background:#fee2e2;color:#991b1b}.bg-job-row__status--canceled,.bg-job-row__status--no_suggestions{background:#f3f4f6;color:#4b5563}.bg-job-row__time{color:var(--color-text-secondary)}.contact-card__action--running{opacity:.8}.todo-list{display:block}.todo-item{align-items:center;border-bottom:1px solid var(--color-border);display:flex;gap:12px;opacity:1;padding:12px;transition:background-color .15s ease}.todo-item:hover{background:var(--color-surface)}.todo-item--completed{opacity:.6}.todo-item--completed .todo-item__title{text-decoration:line-through}.todo-item--completing{opacity:.5;transition:opacity .3s ease}.todo-item--completing .todo-item__title{color:var(--color-text-secondary);text-decoration:line-through}.todo-item--vanished{opacity:.5}.todo-item--in-progress{border-left:3px solid var(--color-primary)}.todo-item--pending-vanishing{border-left:3px solid var(--color-warning);opacity:.85}.todo-item--overdue{border-left:3px solid var(--color-error)}.todo-item__content{align-items:center;display:flex;flex:1 1;gap:var(--spacing-sm)}.todo-item__title{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.todo-item__priority{background:var(--color-surface);border-radius:var(--border-radius-sm);display:inline-block;font-size:var(--font-size-sm);padding:2px 8px}.todo-item__priority--high{background:var(--color-error);color:#fff}.todo-item__priority--medium{background:var(--color-warning);color:var(--color-text)}.todo-item__priority--low{background:var(--color-success);color:#fff}.todo-item__detail{padding:12px 0 12px 36px;width:100%}.todo-list__loading{color:var(--color-text-secondary);padding:var(--spacing-md);text-align:center}.todo-list__error{background:var(--color-error-bg);border-radius:var(--border-radius-sm);color:var(--color-error);padding:var(--spacing-md)}.todo-list__empty{color:var(--color-text-secondary);padding:var(--spacing-lg);text-align:center}.todo-list__filters{align-items:center;display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);padding:var(--spacing-sm) 0}.todo-list__filters button{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text-secondary);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);min-height:32px;padding:var(--spacing-xs) var(--spacing-sm);transition:background-color .15s,color .15s}.todo-list__filters button:hover{background:var(--color-border);color:var(--color-text)}.todo-list__filters button.todo-list__filter--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600}.quick-add{border-bottom:1px solid var(--color-border);display:flex;gap:var(--spacing-sm);padding:12px 0}.quick-add__input-wrapper{flex:1 1;min-width:0}.quick-add__input{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);box-sizing:border-box;color:var(--color-text);font-family:inherit;font-size:var(--font-size-md);padding:var(--spacing-sm) 12px;transition:border-color .15s ease,box-shadow .15s ease;width:100%}.quick-add__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb33;outline:none}.quick-add__input:disabled{background:var(--color-surface);cursor:not-allowed;opacity:.5}.quick-add__button{background:var(--color-primary);border:none;border-radius:var(--border-radius-sm);color:#fff;cursor:pointer;font-family:inherit;font-size:var(--font-size-md);min-height:44px;padding:var(--spacing-sm) var(--spacing-md);transition:background-color .15s ease}.quick-add__button:hover{background:#1d4ed8}.quick-add__button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.quick-add__button:disabled{cursor:not-allowed;opacity:.5}.quick-add-wrapper{display:flex;flex-direction:column;gap:var(--spacing-xs)}.quick-add__loading{align-items:center;color:var(--color-text-secondary);display:flex;font-size:var(--font-size-sm);gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm)}.quick-add__spinner{animation:quick-add-spin .6s linear infinite;border:2px solid var(--color-border);border-radius:50%;border-top-color:var(--color-primary);display:inline-block;height:14px;width:14px}@keyframes quick-add-spin{to{transform:rotate(1turn)}}.quick-add__error{background:var(--color-error-bg);border-radius:var(--border-radius-sm);color:var(--color-error);font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm)}.quick-add__confirmation{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);padding:var(--spacing-sm)}.quick-add__confirmation-header{align-items:center;display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.quick-add__confirmation-icon{color:var(--color-success);font-weight:700}.quick-add__confirmation-dismiss{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-md);margin-left:auto;padding:0 var(--spacing-xs)}.quick-add__confirmation-dismiss:hover{color:var(--color-text)}.quick-add__confirmation-details{display:flex;flex-direction:column;gap:2px;padding-left:var(--spacing-md)}.quick-add__confirmation-title{color:var(--color-text);font-size:var(--font-size-sm);font-weight:600}.quick-add__confirmation-field{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.form-input{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);font-family:inherit;font-size:var(--font-size-md);padding:var(--spacing-sm) 12px}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb33;outline:none}.form-button{background:var(--color-primary);border:none;border-radius:var(--border-radius-sm);color:#fff;cursor:pointer;font-family:inherit;font-size:var(--font-size-md);padding:var(--spacing-sm) var(--spacing-md)}.form-button:hover{background:#1d4ed8}.form-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.form-toggle{cursor:pointer}.notification-toast{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:0 4px 12px #0000001a;padding:var(--spacing-sm) var(--spacing-md)}.notification-banner{background:var(--color-primary)}.notification-banner,.notification-error{color:#fff;padding:var(--spacing-sm) var(--spacing-md)}.notification-error{background:var(--color-error);border-radius:var(--border-radius-sm)}.notification-success{background:var(--color-success);color:#fff}.notification-success,.notification-warning{border-radius:var(--border-radius-sm);padding:var(--spacing-sm) var(--spacing-md)}.notification-warning{background:var(--color-warning);color:var(--color-text)}.calendar-week-grid{grid-gap:1px;background:var(--color-border);display:grid;gap:1px;grid-template-columns:repeat(7,1fr)}.calendar-day{background:var(--color-background);min-height:80px;padding:var(--spacing-sm)}.calendar-event-card{background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-primary);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);margin-bottom:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm)}.dashboard-stats{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:var(--spacing-lg)}.dashboard-stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--spacing-md)}.dashboard-stat-card__label{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-xs)}.dashboard-stat-card__value{color:var(--color-text);font-size:var(--font-size-xl);font-weight:600}.dashboard-overdue-section,.dashboard-upcoming-section{margin-bottom:var(--spacing-lg)}.login-page,.setup-page{align-items:center;background:var(--color-surface);display:flex;justify-content:center;min-height:100vh}.login-container,.setup-container{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);box-shadow:0 4px 12px #0000000d;display:flex;flex-direction:column;gap:var(--spacing-md);max-width:420px;padding:var(--spacing-xl);width:100%}.login-container h1,.setup-container h1{color:var(--color-text);font-size:var(--font-size-xl);font-weight:700}.login-container h2,.setup-container h2{font-size:var(--font-size-lg);font-weight:400}.login-container h2,.setup-container h2,.setup-container p{color:var(--color-text-secondary);margin-top:calc(var(--spacing-sm)*-1)}.setup-container p{font-size:var(--font-size-sm)}.login-container__form{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-field label{color:var(--color-text);font-size:var(--font-size-sm);font-weight:500}.form-field input{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);font-family:inherit;font-size:var(--font-size-md);padding:var(--spacing-sm) 12px;transition:border-color .15s ease,box-shadow .15s ease}.form-field input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb33;outline:none}.form-field input:disabled{background:var(--color-surface);cursor:not-allowed;opacity:.5}.error-message,.field-error{color:var(--color-error);font-size:var(--font-size-sm)}.error-message{background:var(--color-error-bg);border-radius:var(--border-radius-sm);padding:var(--spacing-sm) 12px}.login-container button[type=submit],.setup-container button[type=submit]{background:var(--color-primary);border:none;border-radius:var(--border-radius-sm);color:#fff;cursor:pointer;font-family:inherit;font-size:var(--font-size-md);font-weight:500;margin-top:var(--spacing-xs);min-height:44px;padding:var(--spacing-sm) var(--spacing-md);transition:background-color .15s ease}.login-container button[type=submit]:hover:not(:disabled),.setup-container button[type=submit]:hover:not(:disabled){background:#1d4ed8}.login-container button[type=submit]:focus-visible,.setup-container button[type=submit]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.login-container button[type=submit]:disabled,.setup-container button[type=submit]:disabled{cursor:not-allowed;opacity:.5}.avatar{align-items:center;border-radius:50%;color:#fff;display:inline-flex;font-size:var(--font-size-sm);height:32px;justify-content:center;width:32px}.avatar--owner-1{background-color:var(--owner-1-primary)}.avatar--owner-2{background-color:var(--owner-2-primary)}.avatar-light.avatar--owner-1{background-color:var(--owner-1-light);color:var(--owner-1-primary)}.avatar-light.avatar--owner-2{background-color:var(--owner-2-light);color:var(--owner-2-primary)}.sidebar-toggle{background:#0000;border:none;cursor:pointer;display:none;font-size:var(--font-size-lg);padding:var(--spacing-sm)}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn{align-items:center;border:none;border-radius:var(--border-radius-md);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);transition:opacity .15s ease,background-color .15s ease}.btn:disabled{cursor:not-allowed;opacity:.5}.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:hover:not(:disabled){opacity:.9}.btn--danger{background:var(--color-error);color:#fff}.btn--danger:hover:not(:disabled){opacity:.9}.btn--sm{font-size:.8rem;padding:var(--spacing-xs) var(--spacing-sm)}.plugin-settings{display:flex;flex-direction:column}.plugin-settings__list{border:1px solid var(--color-border);border-radius:var(--border-radius-md);list-style:none;overflow:hidden;padding:0}.plugin-settings__item{align-items:center;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);transition:background-color .15s ease}.plugin-settings__item:last-child{border-bottom:none}.plugin-settings__item:hover{background:var(--color-surface)}.plugin-settings__info{align-items:center;display:flex;flex:1 1;gap:var(--spacing-sm);min-width:0}.plugin-settings__icon{flex-shrink:0;font-size:var(--font-size-lg)}.plugin-settings__details{display:flex;flex-direction:column;gap:2px;min-width:0}.plugin-settings__name{color:var(--color-text);font-size:var(--font-size-md);font-weight:500}.plugin-settings__description{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.plugin-settings__toggle{align-items:center;cursor:pointer;display:inline-flex;flex-shrink:0;position:relative}.plugin-settings__toggle input[type=checkbox]{height:0;opacity:0;position:absolute;width:0}.plugin-settings__toggle-slider{background:var(--color-border);border-radius:12px;display:inline-block;height:24px;position:relative;transition:background-color .2s ease;width:44px}.plugin-settings__toggle-slider:after{background:#fff;border-radius:50%;content:"";height:20px;left:2px;position:absolute;top:2px;transition:transform .2s ease;width:20px}.plugin-settings__toggle input[type=checkbox]:checked+.plugin-settings__toggle-slider{background:var(--color-primary)}.plugin-settings__toggle input[type=checkbox]:checked+.plugin-settings__toggle-slider:after{transform:translateX(20px)}.plugin-settings__toggle input[type=checkbox]:focus-visible+.plugin-settings__toggle-slider{outline:2px solid var(--color-primary);outline-offset:2px}.claude-auth-settings{display:flex;flex-direction:column;gap:var(--spacing-md)}.claude-auth-settings__title{font-size:var(--font-size-lg);margin-bottom:var(--spacing-sm)}.claude-auth-status{color:var(--color-text);font-size:var(--font-size-md)}.claude-auth-error{background:var(--color-error-bg);border-radius:var(--border-radius-sm);color:var(--color-error);font-size:var(--font-size-sm);padding:var(--spacing-sm) 12px}.claude-auth-email-form,.claude-auth-link-form{display:flex;flex-direction:column;gap:var(--spacing-sm)}.claude-auth-email-form label,.claude-auth-link-form label{color:var(--color-text);font-size:var(--font-size-sm);font-weight:500}.claude-auth-email-form input,.claude-auth-link-form input{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);font-family:inherit;font-size:var(--font-size-md);padding:var(--spacing-sm) 12px;transition:border-color .15s ease,box-shadow .15s ease}.claude-auth-email-form input:focus,.claude-auth-link-form input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb33;outline:none}.claude-auth-link-section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.claude-auth-link-section p{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.claude-auth-spinner{animation:claude-auth-spin .8s linear infinite;border:2px solid var(--color-border);border-radius:50%;border-top-color:var(--color-primary);display:inline-block;height:16px;width:16px}.claude-auth-timestamp{color:var(--color-text-secondary);font-size:var(--font-size-sm)}@keyframes claude-auth-spin{to{transform:rotate(1turn)}}.settings-page{max-width:720px}.settings-page h1,.settings-page__header{margin-bottom:var(--spacing-lg)}.settings-page__header{align-items:center;display:flex;gap:var(--spacing-sm)}.settings-page__header h1{margin-bottom:0}.settings-page__icon-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-md);line-height:1;padding:var(--spacing-xs) var(--spacing-sm)}.settings-page__icon-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.settings-section{margin-top:var(--spacing-xl)}.settings-section__title{font-size:var(--font-size-lg);margin-bottom:var(--spacing-md)}.settings-member-notice{color:var(--color-text-secondary)}.user-management{margin-bottom:var(--spacing-xl)}.user-management__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-md)}.user-management__title{font-size:var(--font-size-lg);font-weight:600}.user-management__form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-md);display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);padding:var(--spacing-md)}.user-management__form h3{font-size:var(--font-size-md);margin-bottom:var(--spacing-xs)}.user-management__list{border:1px solid var(--color-border);border-radius:var(--border-radius-md);list-style:none;overflow:hidden}.user-management__item{align-items:center;border-bottom:1px solid var(--color-border);display:flex;gap:var(--spacing-md);justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md)}.user-management__item:last-child{border-bottom:none}.user-management__info{align-items:center;display:flex;gap:var(--spacing-sm);min-width:0}.user-management__avatar{align-items:center;background:var(--color-primary);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.8rem;font-weight:600;height:32px;justify-content:center;width:32px}.user-management__name{display:block;font-size:var(--font-size-sm);font-weight:500}.user-management__self-badge{color:var(--color-text-secondary);font-weight:400}.user-management__email{color:var(--color-text-secondary);display:block;font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-management__actions{align-items:center;display:flex;flex-shrink:0;gap:var(--spacing-sm)}.user-management__role-select{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);cursor:pointer;font-size:var(--font-size-sm);padding:4px var(--spacing-sm)}.user-management__role-select:disabled{cursor:not-allowed;opacity:.5}.dashboard h1,.dashboard__grid{margin-bottom:var(--spacing-lg)}.dashboard__grid{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.dashboard__card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-md);display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md)}.dashboard__card h2{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:600;letter-spacing:.05em;margin:0;text-transform:uppercase}.dashboard__card--overdue{border-left:3px solid var(--color-error)}.dashboard__card--today{border-left:3px solid var(--color-primary)}.dashboard__card--week{border-left:3px solid var(--color-success)}.dashboard__card--household{border-left:3px solid var(--color-warning)}.dashboard__count{color:var(--color-text);font-size:2.5rem;font-weight:700;line-height:1}.dashboard__list{display:flex;flex-direction:column;gap:var(--spacing-xs);list-style:none;margin:0;padding:0}.dashboard__list-item{border-bottom:1px solid var(--color-border);color:var(--color-text);font-size:var(--font-size-sm);padding:var(--spacing-xs) 0}.dashboard__list-item:last-child{border-bottom:none}.dashboard__list-more{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-style:italic}.dashboard__empty,.dashboard__summary{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.dashboard__household-stats{color:var(--color-text-secondary);display:flex;flex-direction:column;font-size:var(--font-size-sm);gap:var(--spacing-xs)}.dashboard__notifications-badge{align-items:center;background:var(--color-primary);border-radius:999px;color:#fff;display:inline-flex;font-size:var(--font-size-xs);font-weight:600;padding:2px 8px}.calendar{flex:1 1;flex-direction:column;min-height:0}.calendar,.calendar__header{display:flex;gap:var(--spacing-md)}.calendar__header{align-items:center}.calendar__nav-btn{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);cursor:pointer;font-size:var(--font-size-md);padding:var(--spacing-xs) var(--spacing-sm);transition:background-color .15s}.calendar__nav-btn:hover{background:var(--color-border)}.calendar__title{flex:1 1;font-size:var(--font-size-lg);font-weight:600;margin:0;text-align:center}.calendar__week{grid-gap:1px;background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--border-radius-md);display:grid;flex:1 1;gap:1px;grid-template-columns:56px repeat(7,1fr);max-height:calc(100vh - 220px);overflow-x:hidden;overflow-y:auto}.calendar__week-ruler{background:var(--color-background);display:flex;flex-direction:column}.calendar__week-ruler-spacer{flex:0 0 auto;height:54px}.calendar__day{background:var(--color-background);cursor:pointer;display:flex;flex-direction:column;gap:var(--spacing-xs);min-height:80px;padding:var(--spacing-sm);transition:background-color .15s}.calendar__day-allday{display:flex;flex-direction:column;gap:2px;min-height:18px}.calendar__day-timeline{flex:1 1;min-height:960px;min-height:calc(var(--calendar-hour-height, 40px)*24);position:relative}.calendar__day:hover{background:var(--color-surface)}.calendar__day--today{background:color-mix(in srgb,var(--color-primary) 8%,var(--color-background))}.calendar__day--today .calendar__day-number{align-items:center;background:var(--color-primary);border-radius:50%;color:#fff;display:flex;height:24px;justify-content:center;width:24px}.calendar__day-header{align-items:center;display:flex;gap:var(--spacing-xs)}.calendar__day-name{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase}.calendar__day-number{color:var(--color-text);font-size:var(--font-size-sm);font-weight:500}.calendar__day-events{display:flex;flex:1 1;flex-direction:column;gap:2px}.calendar__event{background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-primary);border-radius:var(--border-radius-sm);display:flex;flex-direction:column;font-size:var(--font-size-xs);gap:1px;overflow:hidden;padding:2px var(--spacing-xs)}.calendar__event--all-day{border-left-color:var(--color-success)}.calendar__event-time{color:var(--color-text-secondary)}.calendar__event-title{color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-page{display:flex;flex:1 1;flex-direction:column;min-height:0}.calendar-page__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-md)}.calendar-page__header h1{margin:0}.calendar-page__sync-btn{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);cursor:pointer;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-md);transition:background-color .15s}.calendar-page__sync-btn:hover:not(:disabled){background:var(--color-border)}.calendar-page__sync-btn:disabled{cursor:not-allowed;opacity:.5}.calendar-page__error{background:color-mix(in srgb,var(--color-error) 10%,var(--color-background));border:1px solid var(--color-error);border-radius:var(--border-radius-sm);color:var(--color-error);margin-bottom:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md)}.calendar-page__header{flex-wrap:wrap;gap:var(--spacing-md)}.view-switcher{border:1px solid var(--color-border);border-radius:var(--border-radius-sm);display:flex;gap:0;overflow:hidden}.view-switcher__btn{background:var(--color-surface);border:none;border-right:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm);transition:background-color .15s,color .15s}.view-switcher__btn:last-child{border-right:none}.view-switcher__btn:hover{background:var(--color-border);color:var(--color-text)}.view-switcher__btn--active,.view-switcher__btn--active:hover{background:var(--color-primary);color:#fff}.day-view{padding:var(--spacing-md) 0}.day-view__title{font-size:var(--font-size-lg);font-weight:600;margin:0 0 var(--spacing-md) 0}.day-view__nav-header{align-items:center;display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.day-view__nav-title{flex:1 1;font-size:var(--font-size-lg);font-weight:600;margin:0;text-align:center}.day-view__section{margin-bottom:var(--spacing-md)}.day-view__section-title{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:600;margin:0 0 var(--spacing-sm) 0;text-transform:uppercase}.day-view__events{display:flex;flex-direction:column;gap:var(--spacing-xs);list-style:none;margin:0;padding:0}.day-view__event{background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-primary);border-radius:var(--border-radius-sm);cursor:pointer;padding:var(--spacing-sm)}.day-view__event--all-day{border-left-color:var(--color-success)}.day-view__event-time{color:var(--color-text-secondary);font-size:var(--font-size-xs);margin-right:var(--spacing-sm)}.day-view__event-title{color:var(--color-text);font-size:var(--font-size-sm);font-weight:500}.day-view__event-location{color:var(--color-text-secondary);display:block;font-size:var(--font-size-xs);margin-top:2px}.day-view__empty{color:var(--color-text-secondary);font-size:var(--font-size-sm);padding:var(--spacing-md) 0}.month-view{display:flex;flex-direction:column;gap:1px}.month-view__header{grid-gap:1px;display:grid;gap:1px;grid-template-columns:repeat(7,1fr)}.month-view__day-name{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:600;padding:var(--spacing-xs) 0;text-align:center;text-transform:uppercase}.month-view__grid{grid-gap:1px;background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--border-radius-md);display:grid;gap:1px;grid-template-columns:repeat(7,1fr);overflow:hidden}.month-view__day{background:var(--color-background);cursor:pointer;display:flex;flex-direction:column;min-height:90px;padding:var(--spacing-xs);transition:background-color .15s}.month-view__day:hover{background:var(--color-surface)}.month-view__day--outside{opacity:.35}.month-view__day--today{background:color-mix(in srgb,var(--color-primary) 8%,var(--color-background))}.month-view__day-number{color:var(--color-text);font-size:var(--font-size-xs);font-weight:500;margin-bottom:2px}.month-view__day-number--today{align-items:center;background:var(--color-primary);border-radius:50%;color:#fff;display:inline-flex;height:22px;justify-content:center;width:22px}.month-view__events{display:flex;flex:1 1;flex-direction:column;gap:1px;overflow:hidden}.month-view__event-pill{background:color-mix(in srgb,var(--color-primary) 15%,var(--color-background));border-radius:2px;color:var(--color-text);cursor:pointer;font-size:10px;line-height:1.3;overflow:hidden;padding:1px 4px;text-overflow:ellipsis;white-space:nowrap}.month-view__event-pill--partner{background:color-mix(in srgb,#e6a23c 18%,var(--color-background));background:color-mix(in srgb,var(--color-warning,#e6a23c) 18%,var(--color-background));border-left:2px solid #e6a23c;border-left:2px solid var(--color-warning,#e6a23c);padding-left:3px}.month-view__overflow{color:var(--color-text-secondary);font-size:10px;padding:1px 4px}.calendar__event{cursor:pointer}.calendar__event--partner{background:color-mix(in srgb,#e6a23c 10%,var(--color-surface));background:color-mix(in srgb,var(--color-warning,#e6a23c) 10%,var(--color-surface))}.calendar__event--partner,.day-view__event--partner{border-left-color:#e6a23c;border-left-color:var(--color-warning,#e6a23c)}.day-view__event--partner{background:color-mix(in srgb,#e6a23c 8%,var(--color-surface));background:color-mix(in srgb,var(--color-warning,#e6a23c) 8%,var(--color-surface))}.calendar__event-owner-avatar{align-items:center;border-radius:50%;color:#fff;display:inline-flex;flex-shrink:0;font-weight:600;justify-content:center;margin-right:4px;-webkit-user-select:none;user-select:none;vertical-align:middle}.calendar__event-owner-avatar--sm{font-size:9px;height:14px;width:14px}.calendar__event-owner-avatar--md{font-size:11px;height:18px;width:18px}.calendar__event--timeline .calendar__event-owner-avatar{margin:0;position:absolute;right:2px;top:2px}.month-view__event-owner-dot{border-radius:50%;display:inline-block;flex-shrink:0;height:6px;margin-right:3px;vertical-align:middle;width:6px}:root{--calendar-hour-height:40px}.calendar__timeline{grid-gap:0;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);display:grid;gap:0;grid-template-columns:56px 1fr;max-height:calc(100vh - 260px);overflow-x:hidden;overflow-y:auto}.calendar__hour-ruler{background:var(--color-background);border-right:1px solid var(--color-border);display:flex;flex-direction:column}.calendar__hour-row{align-items:flex-start;box-sizing:border-box;display:flex;height:40px;height:var(--calendar-hour-height);justify-content:flex-end;padding:2px var(--spacing-xs) 0 0}.calendar__hour-label{color:var(--color-text-secondary);font-size:10px;line-height:1}.calendar__timeline-track{min-height:960px;min-height:calc(var(--calendar-hour-height)*24);position:relative}.calendar__hour-line{border-bottom:1px dashed color-mix(in srgb,var(--color-border) 80%,#0000);box-sizing:border-box;height:40px;height:var(--calendar-hour-height)}.calendar__hour-line:last-child{border-bottom:none}.calendar__now{align-items:center;display:flex;height:0;left:0;pointer-events:none;position:absolute;right:0;z-index:5}.calendar__now-dot{background:var(--color-error);border-radius:50%;flex:0 0 8px;height:8px;margin-left:-4px;width:8px}.calendar__now-line{background:var(--color-error);flex:1 1;height:1px}.calendar__event--timeline{align-items:baseline;background:color-mix(in srgb,var(--color-primary) 12%,var(--color-background));border-left:3px solid var(--color-primary);border-radius:var(--border-radius-sm);box-sizing:border-box;cursor:pointer;display:flex;flex-direction:row;font-size:11px;gap:4px;line-height:1.2;overflow:hidden;padding:2px 4px;position:absolute}.calendar__event--timeline.calendar__event--partner{background:color-mix(in srgb,#e6a23c 14%,var(--color-background));background:color-mix(in srgb,var(--color-warning,#e6a23c) 14%,var(--color-background));border-left-color:#e6a23c;border-left-color:var(--color-warning,#e6a23c)}.calendar__event--timeline .calendar__event-time{color:var(--color-text-secondary);flex-shrink:0;font-size:10px}.calendar__event--timeline .calendar__event-title{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-event-modal{display:flex;flex-direction:column;gap:var(--spacing-md)}.calendar-event-modal__title{font-size:var(--font-size-lg);margin:0}.calendar-event-modal__time{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.calendar-event-modal__field{display:flex;flex-direction:column;gap:2px}.calendar-event-modal__label{color:var(--color-text-secondary);font-size:var(--font-size-xs);letter-spacing:.04em;text-transform:uppercase}.calendar-event-modal__description{white-space:pre-wrap}.year-view{padding:var(--spacing-md) 0}.year-view__grid{grid-gap:var(--spacing-lg);display:grid;gap:var(--spacing-lg);grid-template-columns:repeat(3,1fr)}@media (min-width:1200px){.year-view__grid{grid-template-columns:repeat(4,1fr)}}.year-view__mini-month{display:flex;flex-direction:column;gap:var(--spacing-xs)}.year-view__mini-month-title{background:none;border:none;color:var(--color-text);cursor:pointer;font-size:var(--font-size-sm);font-weight:600;padding:var(--spacing-xs) 0;text-align:left}.year-view__mini-month-title:hover{color:var(--color-primary)}.year-view__mini-header{grid-gap:0;display:grid;gap:0;grid-template-columns:repeat(7,1fr)}.year-view__mini-header-cell{color:var(--color-text-secondary);font-size:9px;font-weight:600;text-align:center}.year-view__mini-grid{grid-gap:0;display:grid;gap:0;grid-template-columns:repeat(7,1fr)}.year-view__mini-day{color:var(--color-text);font-size:11px;line-height:1.6;padding:2px 0;position:relative;text-align:center}.year-view__mini-day--outside{visibility:hidden}.year-view__mini-day--today{color:var(--color-primary);font-weight:700}.year-view__mini-day--has-event:after{background:var(--color-primary);border-radius:50%;bottom:0;content:"";height:4px;left:50%;position:absolute;transform:translateX(-50%);width:4px}.maintenance-page h1{margin-bottom:var(--spacing-lg)}.maintenance-page__section{margin-bottom:var(--spacing-xl)}.maintenance-page__section h2{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.maintenance-page__error{background:color-mix(in srgb,var(--color-error) 10%,var(--color-background));border:1px solid var(--color-error);border-radius:var(--border-radius-sm);color:var(--color-error);margin-bottom:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md)}.maintenance-page__loading{color:var(--color-text-secondary);padding:var(--spacing-md) 0}.appliance-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.appliance-list__item{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-md);display:flex;gap:var(--spacing-sm);padding:var(--spacing-md)}.appliance-list__item h3{flex:1 1;font-size:var(--font-size-md);font-weight:600;margin:0}.appliance-list__category{background:var(--color-border);border-radius:999px;color:var(--color-text-secondary);font-size:var(--font-size-xs);padding:2px var(--spacing-sm);text-transform:capitalize}.appliance-list__empty,.service-schedule__empty{color:var(--color-text-secondary);padding:var(--spacing-md) 0}.service-schedule__title{font-size:var(--font-size-md);font-weight:600;margin-bottom:var(--spacing-sm)}.service-schedule__list{display:flex;flex-direction:column;gap:var(--spacing-sm);list-style:none;margin:0;padding:0}.service-schedule__item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-md);display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-md)}.service-schedule__date{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:600}.service-schedule__details{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.service-schedule__type{color:var(--color-text);font-weight:500}.service-schedule__contractor{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.service-schedule__cost{color:var(--color-success);font-size:var(--font-size-sm);font-weight:600}.service-schedule__notes{border-top:1px solid var(--color-border);color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-top:var(--spacing-xs);padding-top:var(--spacing-xs)}.notification-center{bottom:var(--spacing-lg);max-width:360px;position:fixed;right:var(--spacing-lg);z-index:200}.notification-center,.notification-center__list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.notification-center__list{list-style:none;margin:0;padding:0}.notification-center__item{align-items:flex-start;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:0 4px 12px #0000001a;display:flex;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md)}.notification-center__item--unread{border-left:3px solid var(--color-primary)}.notification-center__content{cursor:default;display:flex;flex:1 1;flex-direction:column;gap:2px}.notification-center__content[role=button]{cursor:pointer}.notification-center__content[role=button]:hover .notification-center__title{color:var(--color-primary)}.notification-center__title{color:var(--color-text);font-size:var(--font-size-sm);font-weight:600}.notification-center__message{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.notification-center__dismiss{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;font-size:var(--font-size-lg);line-height:1;padding:0}.notification-center__dismiss:hover{color:var(--color-text)}.household-view{display:flex;flex-direction:column;gap:var(--spacing-md)}.household-view__header{align-items:center;display:flex;justify-content:space-between}.household-view__title{font-size:var(--font-size-lg);font-weight:600;margin:0}.household-view__toggle{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);cursor:pointer;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm);transition:background-color .15s}.household-view__toggle:hover{background:var(--color-border)}.household-view__members{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.household-view__member{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-md);display:flex;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md)}.household-view__member--current{border-color:var(--color-primary)}.household-view__avatar{align-items:center;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:var(--font-size-sm);font-weight:600;height:36px;justify-content:center;width:36px}.household-view__member-info{display:flex;flex-direction:column;gap:2px}.household-view__member-name{color:var(--color-text);font-size:var(--font-size-sm);font-weight:500}.household-view__member-stats{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.household-view__summary{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.household-view__today-count{font-weight:500}.todos-page h1{margin-bottom:var(--spacing-md)}.todos-page__filters{align-items:center;display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);padding:var(--spacing-sm) 0}.family-view-toggle{align-items:center;color:var(--color-text-secondary);cursor:pointer;display:flex;font-size:var(--font-size-sm);gap:var(--spacing-xs);-webkit-user-select:none;user-select:none}.family-view-toggle input[type=checkbox]{appearance:none;-webkit-appearance:none;background:var(--color-border);border-radius:10px;cursor:pointer;flex-shrink:0;height:20px;position:relative;transition:background-color .2s;width:36px}.family-view-toggle input[type=checkbox]:after{background:#fff;border-radius:50%;content:"";height:16px;left:2px;position:absolute;top:2px;transition:transform .2s;width:16px}.family-view-toggle input[type=checkbox]:checked{background:var(--color-primary)}.family-view-toggle input[type=checkbox]:checked:after{transform:translateX(16px)}.family-view-toggle__label{font-weight:500}.todo-item input[type=checkbox]{accent-color:var(--color-primary);cursor:pointer;flex-shrink:0;height:18px;width:18px}.todo-item__due-date{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.todo-item__due-date--overdue{color:var(--color-error);font-weight:600}.todo-item__project-link{color:var(--color-primary);font-size:var(--font-size-xs);text-decoration:none}.todo-item__project-link:hover{text-decoration:underline}.todo-item__owner{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.todo-item__expand{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;font-size:var(--font-size-sm);padding:0 var(--spacing-xs)}.todo-item__expand:hover{color:var(--color-text)}.todo-item__detail-fallback{color:var(--color-text-secondary);font-size:var(--font-size-sm);padding:var(--spacing-sm) 0}.todo-detail{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-md);margin-top:var(--spacing-sm);padding:var(--spacing-md)}.todo-detail__header{align-items:center;display:flex;gap:var(--spacing-sm);justify-content:space-between}.todo-detail__title{color:var(--color-text);font-size:var(--font-size-lg);font-weight:600;margin:0}.todo-detail__toggle{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;font-size:var(--font-size-md);padding:var(--spacing-xs)}.todo-detail__toggle:hover{color:var(--color-text)}.todo-detail__content{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.todo-detail__field{align-items:baseline;border-bottom:1px solid var(--color-border);display:flex;gap:var(--spacing-sm);padding:var(--spacing-xs) 0}.todo-detail__label{color:var(--color-text-secondary);flex-shrink:0;font-size:var(--font-size-sm);font-weight:600;min-width:120px}.todo-detail__value{color:var(--color-text);flex:1 1;font-size:var(--font-size-sm)}.todo-detail__value--editable{border-bottom:1px dashed var(--color-border);cursor:pointer}.todo-detail__value--editable:hover{color:var(--color-primary)}.todo-detail__value--inline-edit{align-items:center;display:inline-flex;flex-wrap:wrap;gap:var(--spacing-xs)}.todo-detail__value--inline-edit .todo-detail__input,.todo-detail__value--inline-edit .todo-detail__select{margin:0}.todo-detail__input{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);flex:1 1;font-family:inherit;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm);transition:border-color .15s}.todo-detail__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb33;outline:none}.todo-detail__input--notify-amount{flex:0 0 auto;text-align:center;width:48px}.todo-detail__textarea{min-height:80px;overflow:hidden;resize:vertical}.todo-detail__description-rendered{border-bottom:1px dashed var(--color-border);color:var(--color-text);cursor:pointer;flex:1 1;font-size:var(--font-size-sm);line-height:1.5}.todo-detail__description-rendered:hover{color:var(--color-primary)}.todo-detail__description-rendered p{margin:0 0 .4em}.todo-detail__description-rendered p:last-child{margin-bottom:0}.todo-detail__description-rendered a{color:var(--color-primary);text-decoration:underline}.todo-detail__description-rendered a:hover{opacity:.8}.todo-detail__description-rendered code{background:#f3f4f6;background:var(--color-surface,#f3f4f6);border-radius:3px;font-size:.9em;padding:.1em .3em}.todo-detail__description-rendered pre{background:#f3f4f6;background:var(--color-surface,#f3f4f6);border-radius:var(--border-radius-sm);margin:.4em 0;overflow-x:auto;padding:var(--spacing-sm)}.todo-detail__description-rendered pre code{background:none;padding:0}.todo-detail__description-rendered ol,.todo-detail__description-rendered ul{margin:.3em 0;padding-left:1.5em}.todo-detail__description-rendered strong{font-weight:600}.todo-detail__description-rendered em{font-style:italic}.todo-detail__select{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm)}.recurrence-picker{align-items:center;display:flex;flex:1 1;flex-wrap:wrap;gap:var(--spacing-sm)}.recurrence-picker--custom{align-items:center}.recurrence-picker__custom-raw{font-style:italic}.recurrence-picker__custom-raw,.recurrence-picker__interval{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.recurrence-picker__interval{align-items:center;display:inline-flex;gap:4px}.recurrence-picker__interval-input{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);font-family:inherit;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-xs);text-align:center;width:48px}.recurrence-picker__weekday-row{display:flex;flex-basis:100%;gap:4px}.recurrence-picker__weekday-chip{background:var(--color-background);border:1px solid var(--color-border);border-radius:50%;color:var(--color-text-secondary);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);font-weight:600;height:28px;padding:0;transition:all .15s;width:28px}.recurrence-picker__weekday-chip:hover:not(:disabled){border-color:var(--color-primary)}.recurrence-picker__weekday-chip--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.recurrence-picker__weekday-chip:disabled{cursor:not-allowed;opacity:.6}.recurrence-picker__monthly{display:flex;flex-basis:100%;flex-direction:column;gap:var(--spacing-xs);padding-left:var(--spacing-xs)}.recurrence-picker__radio{align-items:center;color:var(--color-text);cursor:pointer;display:flex;font-size:var(--font-size-sm);gap:var(--spacing-xs)}.recurrence-picker__radio input[type=radio]{cursor:pointer;margin:0}.recurrence-picker__inline-select{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);padding:2px var(--spacing-xs)}.recurrence-picker__inline-select:disabled{cursor:not-allowed;opacity:.5}.todo-detail__field[data-field=recurrence]{align-items:flex-start;flex-wrap:wrap}.todo-detail__actions{align-items:center;display:flex;gap:var(--spacing-xs);margin-left:auto}.todo-detail__toggle-btn{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text-secondary);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm);transition:background-color .15s,color .15s}.todo-detail__toggle-btn:hover{background:var(--color-border);color:var(--color-text)}.todo-detail__edit-actions{border-top:1px solid var(--color-border);display:flex;gap:var(--spacing-sm);justify-content:flex-end;margin-top:var(--spacing-sm);padding-top:var(--spacing-sm)}.todo-detail__save{background:var(--color-primary);border:none;border-radius:var(--border-radius-sm);color:#fff;cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-md);transition:background-color .15s}.todo-detail__save:hover{opacity:.9}.todo-detail__cancel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text-secondary);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-md);transition:background-color .15s,color .15s}.todo-detail__cancel:hover{background:var(--color-border);color:var(--color-text)}.todo-detail__title--completed{color:var(--color-text-secondary);text-decoration:line-through}.todo-detail__complete-btn{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text-secondary);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-md);transition:background-color .15s,color .15s}.todo-detail__complete-btn:hover{background:#22c55e;background:var(--color-success,#22c55e);color:#fff}.todo-detail__actions-bar{align-items:center;border-bottom:1px solid var(--color-border);display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);padding:var(--spacing-sm) 0}.todo-detail__delete-btn{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text-secondary);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);margin-left:auto;padding:var(--spacing-xs) var(--spacing-md);transition:background-color .15s,color .15s,border-color .15s}.todo-detail__footer{border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;margin-top:var(--spacing-md);padding-top:var(--spacing-md)}.todo-detail__delete-btn:hover{background:#dc2626;background:var(--color-danger,#dc2626);border-color:#dc2626;border-color:var(--color-danger,#dc2626);color:#fff}.todo-detail__delete-btn:disabled{cursor:not-allowed;opacity:.5}.todo-detail__confirm{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-sm);width:100%}.todo-detail__confirm-label{color:var(--color-text);font-size:var(--font-size-sm);font-weight:500}.todo-detail__confirm-btn{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-md);transition:background-color .15s,color .15s,border-color .15s}.todo-detail__confirm-btn:hover{background:var(--color-border)}.todo-detail__confirm-btn--danger{border-color:#dc2626;border-color:var(--color-danger,#dc2626);color:#dc2626;color:var(--color-danger,#dc2626)}.todo-detail__confirm-btn--danger:hover{background:#dc2626;background:var(--color-danger,#dc2626);color:#fff}.todo-detail__confirm-btn:disabled{cursor:not-allowed;opacity:.5}.system-versions__list{display:flex;flex-direction:column;gap:var(--spacing-xs);list-style:none;margin:0;padding:0}.system-versions__item{align-items:center;border-bottom:1px solid var(--color-border);display:flex;font-size:var(--font-size-sm);gap:var(--spacing-sm);padding:var(--spacing-xs) 0}.system-versions__item:last-child{border-bottom:none}.system-versions__label{color:var(--color-text-secondary);min-width:80px}.system-versions__value{color:var(--color-text);flex:1 1}.system-versions__status{font-size:10px}.system-versions__error{color:var(--color-error);font-size:var(--font-size-sm)}.loading{color:var(--color-text-secondary);font-size:var(--font-size-md);min-height:200px}.loading,.not-found{align-items:center;display:flex;height:100%;justify-content:center}.not-found{flex-direction:column;gap:var(--spacing-md);min-height:400px;text-align:center}.not-found h1{font-size:4rem;font-weight:700}.not-found h1,.not-found p{color:var(--color-text-secondary);margin:0}.not-found a{color:var(--color-primary)}.no-print{display:block}@media print{.no-print,.sidebar{display:none!important}}.qpl-dashboard{display:flex;flex-direction:column;gap:var(--spacing-lg)}.qpl-dashboard__header{border-bottom:1px solid var(--color-border);margin-bottom:var(--spacing-md);padding:var(--spacing-md) 0}.qpl-dashboard__header h1{color:var(--color-text);font-size:var(--font-size-xl);font-weight:700}.flow-list-browser{display:flex;flex-direction:column;gap:var(--spacing-md)}.flow-list-browser__filters{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-sm);padding:var(--spacing-sm) 0}.flow-list-browser__filters input,.flow-list-browser__filters select{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);font-family:inherit;font-size:var(--font-size-md);padding:var(--spacing-sm) 12px;transition:border-color .15s ease,box-shadow .15s ease}.flow-list-browser__filters input:focus,.flow-list-browser__filters select:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb33;outline:none}.flow-list-browser__filters button{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md);transition:background-color .15s ease}.flow-list-browser__filters button:hover{background:var(--color-border)}.flow-list-browser__table-wrapper{overflow-x:auto;width:100%}.flow-list-browser__table{border:1px solid var(--color-border);border-collapse:initial;border-radius:var(--border-radius-md);border-spacing:0;width:100%}.flow-list-browser__table td,.flow-list-browser__table th{border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md);text-align:left}.flow-list-browser__table th{background:var(--color-surface);color:var(--color-text-secondary);font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.flow-list-browser__table tbody tr{cursor:pointer;transition:background-color .15s ease}.flow-list-browser__table tbody tr:hover{background:var(--color-surface)}.flow-list-browser__pagination{align-items:center;display:flex;gap:var(--spacing-md);justify-content:center;padding:var(--spacing-sm) 0}.flow-list-browser__pagination button{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md);transition:background-color .15s ease}.flow-list-browser__pagination button:hover:not(:disabled){background:var(--color-border)}.flow-list-browser__pagination button:disabled{cursor:not-allowed;opacity:.5}.flow-list-browser__pagination span{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.flow-list-browser__empty{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-md);color:var(--color-text-secondary);padding:var(--spacing-xl) var(--spacing-md);text-align:center}.flow-row--success{background-color:color-mix(in srgb,var(--color-success) 8%,var(--color-background));border-left:3px solid var(--color-success)}.flow-row--failure{background-color:color-mix(in srgb,var(--color-error) 8%,var(--color-background));border-left:3px solid var(--color-error)}.flow-row--cancelled{background-color:color-mix(in srgb,var(--color-warning) 8%,var(--color-background));border-left:3px solid var(--color-warning)}.outcome--success{color:var(--color-success);font-weight:600}.outcome--error,.outcome--failure{color:var(--color-error);font-weight:600}.outcome--cancelled{color:var(--color-warning);font-weight:600}.aggregate-metrics{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}.aggregate-metrics__card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:0 1px 3px #0000000f;display:flex;flex:1 1 280px;flex-direction:column;gap:var(--spacing-sm);min-width:280px;padding:var(--spacing-md)}.aggregate-metrics__card h3{color:var(--color-text);font-size:var(--font-size-md);font-weight:600;margin:0;text-transform:capitalize}.aggregate-metrics__latencies{overflow-x:auto}.aggregate-metrics__latencies table{border-collapse:collapse;font-size:var(--font-size-sm);width:100%}.aggregate-metrics__latencies td,.aggregate-metrics__latencies th{border-bottom:1px solid var(--color-border);padding:var(--spacing-xs) var(--spacing-sm);text-align:right}.aggregate-metrics__latencies th{color:var(--color-text-secondary);font-size:.75rem;font-weight:600;text-transform:uppercase}.aggregate-metrics__rates{display:flex;flex-wrap:wrap;font-size:var(--font-size-sm);gap:var(--spacing-sm)}.aggregate-metrics__total{border-top:1px solid var(--color-border);color:var(--color-text-secondary);font-size:var(--font-size-sm);padding-top:var(--spacing-sm)}.rate--success{color:var(--color-success);font-weight:500}.rate--warning{color:var(--color-warning);font-weight:500}.rate--error{color:var(--color-error);font-weight:500}.flow-detail-view{display:flex;flex-direction:column;gap:var(--spacing-lg)}.flow-detail-view__header{align-items:center;border-bottom:1px solid var(--color-border);display:flex;gap:var(--spacing-md);justify-content:space-between;padding-bottom:var(--spacing-md)}.flow-detail-view__header h2{color:var(--color-text);font-size:var(--font-size-lg);font-weight:600;margin:0}.flow-detail-view__header button{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md);transition:background-color .15s ease}.flow-detail-view__header button:hover{background:var(--color-border)}.flow-detail-view__metadata{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--spacing-md)}.flow-detail-view__metadata dl{grid-gap:var(--spacing-xs) var(--spacing-md);display:grid;gap:var(--spacing-xs) var(--spacing-md);grid-template-columns:auto 1fr;margin:0}.flow-detail-view__metadata dt{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:600}.flow-detail-view__metadata dd{color:var(--color-text);font-size:var(--font-size-sm);margin:0}.flow-detail-view__annotations{display:flex;flex-direction:column;gap:var(--spacing-sm)}.flow-detail-view__annotations h3{font-size:var(--font-size-md);font-weight:600;margin:0}.flow-detail-view__tags{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.flow-detail-view__metrics{display:flex;flex-direction:column;gap:var(--spacing-sm)}.flow-detail-view__metrics h3{font-size:var(--font-size-md);font-weight:600;margin:0}.flow-detail-view__steps{display:flex;flex-direction:column;gap:var(--spacing-sm)}.flow-detail-view__steps h3{font-size:var(--font-size-md);font-weight:600;margin:0}.timeline{border-left:2px solid var(--color-border);padding-left:var(--spacing-md)}.step,.timeline{display:flex;flex-direction:column;gap:var(--spacing-xs)}.step{align-items:stretch;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md);position:relative}.step__header{align-items:center;display:flex;gap:var(--spacing-sm)}.step__children{display:flex;flex-direction:column;gap:var(--spacing-xs)}.step__children,.step__payload,.step__payload--end{margin-top:var(--spacing-xs)}.step:before{background:var(--color-border);border:2px solid var(--color-background);border-radius:50%;content:"";height:12px;left:calc(var(--spacing-md)*-1 - 7px);position:absolute;width:12px}.step--critical{background-color:color-mix(in srgb,var(--color-warning) 10%,var(--color-surface));border-color:var(--color-warning);font-weight:600}.step--critical:before{background:var(--color-warning)}.step--failed{background-color:color-mix(in srgb,var(--color-error) 10%,var(--color-surface));border-color:var(--color-error)}.step--failed:before{background:var(--color-error)}.step__name{color:var(--color-text);flex:1 1}.step__duration{color:var(--color-text-secondary);white-space:nowrap}.step__status{font-weight:500}.step__status--failed{color:var(--color-error)}.qpl-flex{display:flex}.qpl-flex-wrap{flex-wrap:wrap}.qpl-badge{border:1px solid var(--color-border);border-radius:999px;color:var(--color-text);display:inline-block;font-size:var(--font-size-sm);padding:2px var(--spacing-sm);white-space:nowrap}.qpl-badge,.qpl-card{background:var(--color-surface)}.qpl-card{border:1px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:0 1px 3px #0000000f;padding:var(--spacing-md)}.qpl-responsive{max-width:1200px;padding:0 var(--spacing-md);width:100%}.todo-item__description{color:var(--color-text-secondary);display:block;font-size:var(--font-size-xs);line-height:1.3;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.todo-item__vanishing-icon{color:var(--color-warning);flex-shrink:0;font-size:var(--font-size-sm)}.todo-item{cursor:pointer}.todo-modal__backdrop{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:var(--spacing-md);position:fixed;right:0;top:0;z-index:1000}.todo-modal{background:var(--color-background);border-radius:8px;border-radius:var(--border-radius-md,8px);box-shadow:0 8px 30px #0003;max-height:85vh;max-width:600px;overflow-y:auto;padding:var(--spacing-lg);position:relative;width:100%}.todo-modal__close{align-items:center;background:none;border:none;border-radius:var(--border-radius-sm);color:var(--color-text-secondary);cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;position:absolute;right:var(--spacing-sm);top:var(--spacing-sm);width:32px}.todo-modal__close:hover{background:var(--color-surface);color:var(--color-text)}.todo-list__section{border-radius:var(--border-radius-sm);min-height:60px;padding:var(--spacing-sm);transition:background-color .2s}.todo-list:not(.todo-list--family) .todo-list__section+.todo-list__section{margin-top:var(--spacing-lg)}.todo-list__section--inbox{border-top:1px solid var(--color-border);padding-top:var(--spacing-md)}.todo-list__section--drag-over{background:color-mix(in srgb,var(--color-primary) 10%,#0000);outline:2px dashed var(--color-primary);outline-offset:-2px}.todo-list__section-header{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:600;letter-spacing:.05em;margin-bottom:var(--spacing-sm);text-transform:uppercase}.todo-list__draggable{cursor:grab;-webkit-user-select:none;user-select:none}.todo-list__draggable:active{cursor:grabbing}.todo-list__draggable--drop-above{box-shadow:inset 0 2px 0 0 var(--color-primary)}.todo-list__draggable--drop-below{box-shadow:inset 0 -2px 0 0 var(--color-primary)}.todo-list--family .todo-list__family-grid{grid-column-gap:var(--spacing-lg);grid-row-gap:var(--spacing-lg);align-items:start;column-gap:var(--spacing-lg);display:grid;grid-template-columns:1fr 1fr;row-gap:var(--spacing-lg)}.todo-list__column{min-width:0}.todo-list__column-heading{border-bottom:2px solid var(--color-border);color:var(--color-text);font-size:var(--font-size-md);font-weight:600;margin:0 0 var(--spacing-sm) 0;padding-bottom:var(--spacing-xs)}.todo-list__owner-tabs{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.todo-list__owner-tabs button{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text-secondary);cursor:pointer;flex:1 1;font-family:inherit;font-size:var(--font-size-sm);min-height:36px;padding:var(--spacing-xs) var(--spacing-sm)}.todo-list__owner-tabs button.todo-list__owner-tab--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600}.todo-item__owner-avatar{align-items:center;background:var(--color-primary);border-radius:50%;color:#fff;display:inline-flex;flex-shrink:0;font-size:var(--font-size-xs);font-weight:600;height:20px;justify-content:center;-webkit-user-select:none;user-select:none;width:20px}.completion-log__day{margin-bottom:var(--spacing-md)}.completion-log__day:last-child{margin-bottom:0}.completion-log__day-header{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.04em;margin:0 0 var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);text-transform:uppercase}.completion-log__rows{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-md);list-style:none;margin:0;overflow:hidden;padding:0}.completion-log__row{align-items:center;border-bottom:1px solid var(--color-border);display:flex;font-size:var(--font-size-sm);gap:var(--spacing-sm);min-height:40px;padding:var(--spacing-sm) var(--spacing-md)}.completion-log__row:last-child{border-bottom:none}.completion-log__icon{align-items:center;border-radius:50%;color:#fff;display:inline-flex;flex-shrink:0;font-size:13px;font-weight:700;height:22px;justify-content:center;line-height:1;-webkit-user-select:none;user-select:none;width:22px}.completion-log__icon--completed{background:var(--color-success)}.completion-log__icon--vanished{background:var(--color-warning)}.completion-log__title{color:var(--color-text-secondary);flex:1 1;min-width:0;overflow:hidden;text-decoration:line-through;text-overflow:ellipsis;white-space:nowrap}.completion-log__time{font-feature-settings:"tnum";color:var(--color-text-secondary);flex-shrink:0;font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.completion-log__mark-completed{background:none;border:1px solid var(--color-success);border-radius:var(--border-radius-sm);color:var(--color-success);cursor:pointer;flex-shrink:0;font-size:var(--font-size-xs);padding:2px var(--spacing-sm);white-space:nowrap}.completion-log__mark-completed:hover{background:var(--color-success);color:#fff}.completion-log__error{color:var(--color-error);padding:var(--spacing-sm)}.completion-log__loading{color:var(--color-text-secondary);padding:var(--spacing-md);text-align:center}.completion-log__search{margin-bottom:var(--spacing-sm)}.completion-log__search-input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);box-sizing:border-box;color:var(--color-text);font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm);width:100%}.completion-log__sentinel{height:1px}.inbox-filters{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.inbox-filters__toggle{align-items:center;color:var(--color-text-secondary);cursor:pointer;display:flex;font-size:var(--font-size-xs);gap:var(--spacing-xs);-webkit-user-select:none;user-select:none}.inbox-filters__toggle input[type=checkbox]{accent-color:var(--color-primary);cursor:pointer}.todo-list__section--project-inbox{border-top:1px dashed var(--color-border);margin-top:var(--spacing-sm);padding-top:var(--spacing-sm)}.todo-list__section-subheader{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.05em;margin-bottom:var(--spacing-xs);text-transform:uppercase}.projects-page{max-width:800px}.projects-page h1{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.projects-page__back{color:var(--color-primary);display:inline-block;font-size:var(--font-size-sm);margin-bottom:var(--spacing-md);text-decoration:none}.projects-page__back:hover{text-decoration:underline}.projects-page__loading{color:var(--color-text-secondary);padding:var(--spacing-md) 0}.create-project-form{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.create-project-form__input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);flex:1 1;font-size:var(--font-size-sm);min-width:150px;padding:var(--spacing-sm) 12px}.create-project-form__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb33;outline:none}.create-project-form__input--desc{flex:1.5 1}.create-project-form__submit{background:var(--color-primary);border:none;border-radius:var(--border-radius-sm);color:#fff;cursor:pointer;font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md);white-space:nowrap}.create-project-form__submit:disabled{cursor:not-allowed;opacity:.5}.create-project-form__submit:hover:not(:disabled){opacity:.9}.project-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.project-list__empty{color:var(--color-text-secondary);padding:var(--spacing-lg) 0}.project-list__item{align-items:center;border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);display:flex;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);text-decoration:none;transition:background .15s ease}.project-list__item:hover{background:var(--color-surface)}.project-list__item-content{display:flex;flex-direction:column;gap:2px}.project-list__item-title{font-weight:500}.project-list__item-desc{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.project-status{border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);font-weight:500;padding:2px var(--spacing-sm)}.project-status--active{background:#22c55e26;color:var(--color-success)}.project-status--completed{background:#2563eb26;color:var(--color-primary)}.project-status--archived{background:#94a3b826;color:var(--color-text-secondary)}.outline{display:flex;flex-direction:column;gap:2px}.outline__empty{color:var(--color-text-secondary);padding:var(--spacing-md) 0}.outline__rows{display:flex;flex-direction:column;gap:2px}.outline__add{align-items:stretch;display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.outline__add-input{background:#0000;border:1px dashed var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);flex:1 1;font-size:var(--font-size-sm);padding:var(--spacing-sm)}.outline__add-input:focus{border-color:var(--color-primary);border-style:solid;outline:none}.outline__add-submit{background:var(--color-primary);border:none;border-radius:var(--border-radius-sm);color:#fff;cursor:pointer;font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md)}.outline__add-submit:disabled{cursor:not-allowed;opacity:.5}.outline__add-child{align-items:center;display:flex;gap:var(--spacing-xs);padding:2px 0}.outline__add-child-input{background:var(--color-bg);border:1px solid var(--color-primary);border-radius:var(--border-radius-sm);color:var(--color-text);flex:1 1;font-size:var(--font-size-sm);padding:4px var(--spacing-sm)}.outline__add-child-input:focus{outline:none}.outline__add-cancel{background:#0000;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-md);padding:0 6px}.outline__add-cancel:hover{color:var(--color-text)}.outline__filters{display:flex;gap:4px;margin-bottom:var(--spacing-sm)}.outline__filter{background:#0000;border:1px solid var(--color-border);border-radius:999px;color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-xs);padding:4px 10px}.outline__filter:hover{background:var(--color-surface);color:var(--color-text)}.outline__filter--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.outline__filter--active:hover{background:var(--color-primary);color:#fff;filter:brightness(1.1)}.outline__filter-count{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-left:4px;opacity:.7}.todo-row{align-items:stretch;background:var(--color-bg);border:1px solid #0000;border-radius:var(--border-radius-sm);display:flex;gap:var(--spacing-sm);min-height:28px;padding:var(--spacing-xs) var(--spacing-sm);position:relative}.todo-row>:not(.todo-row__indent){align-self:center}.todo-row:hover{background:var(--color-surface)}.todo-row:hover .todo-row__grip{opacity:1}.todo-row__indent{align-self:stretch;flex-shrink:0;position:relative;width:24px}.todo-row__indent--line:before{border-left:1px dotted var(--color-border);bottom:0;content:"";left:50%;position:absolute;top:0}.todo-row__chevron{align-items:center;background:#0000;border:none;border-radius:3px;color:var(--color-text-secondary);cursor:pointer;display:inline-flex;flex-shrink:0;font-size:10px;height:16px;justify-content:center;line-height:1;padding:0;width:16px}.todo-row__chevron:hover:not(.todo-row__chevron--leaf){background:var(--color-border);color:var(--color-text)}.todo-row__chevron--leaf{cursor:default;opacity:.35}.todo-row--drop-target{background:color-mix(in srgb,var(--color-primary) 8%,#0000)}.todo-row--drop-illegal{background:color-mix(in srgb,var(--color-error) 10%,#0000);cursor:not-allowed}.todo-row__drop-caret{background:var(--color-primary);border-radius:1px;bottom:2px;pointer-events:none;position:absolute;top:2px;transition:left 80ms ease-out;width:2px}.todo-row__drop-caret--illegal{background:var(--color-error)}.todo-row__grip{color:var(--color-text-secondary);cursor:grab;font-size:var(--font-size-xs);opacity:.25;padding:0 2px;transition:opacity .15s;-webkit-user-select:none;user-select:none}.todo-row__grip:active{cursor:grabbing}.todo-row__status{background:#0000;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-sm);line-height:1;padding:0;text-align:center;width:1.5em}.todo-row__status:hover{color:var(--color-text)}.todo-row__status--done{color:var(--color-success)}.todo-row--done .todo-row__title{text-decoration:line-through}.todo-row--blocked .todo-row__title,.todo-row--done .todo-row__title{color:var(--color-text-secondary)}.todo-row__title{flex:1 1;font-size:var(--font-size-sm)}.todo-row__add-child{background:#0000;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-md);line-height:1;opacity:0;padding:0 4px;transition:opacity .15s}.todo-row:hover .todo-row__add-child{opacity:.6}.todo-row__add-child:hover{color:var(--color-primary);opacity:1}.todo-row__link-handle{color:var(--color-text-secondary);cursor:grab;font-size:var(--font-size-sm);opacity:.25;padding:0 4px;transition:opacity .15s;-webkit-user-select:none;user-select:none}.todo-row:hover .todo-row__link-handle{opacity:.9}.todo-row__link-handle:active{cursor:grabbing}.todo-row__deps{flex-wrap:wrap;gap:4px}.todo-row__dep-chip,.todo-row__deps{align-items:center;display:inline-flex}.todo-row__dep-chip{background:#ef44441f;border:1px solid #ef44444d;border-radius:999px;color:var(--color-error);cursor:grab;font-size:11px;gap:2px;line-height:1.4;padding:1px 6px;touch-action:none;-webkit-user-select:none;user-select:none}.todo-row__dep-chip:active{cursor:grabbing}.todo-row__dep-chip-x{background:#0000;border:none;color:inherit;cursor:pointer;font-size:13px;line-height:1;opacity:.7;padding:0 2px}.todo-row__dep-chip-x:hover{opacity:1}.projects-page__detail-header{margin-bottom:var(--spacing-md)}.projects-page__desc{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-top:2px}.project-detail__header{align-items:center;display:flex;gap:var(--spacing-sm);justify-content:space-between;margin-bottom:var(--spacing-md)}.project-detail__title{font-size:var(--font-size-lg);font-weight:600}.project-detail__actions{align-items:center;display:flex;gap:var(--spacing-sm)}.project-detail__status-select{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text)}.project-detail__delete,.project-detail__status-select{font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm)}.project-detail__delete{background:#0000;border:1px solid var(--color-error);border-radius:var(--border-radius-sm);color:var(--color-error);cursor:pointer}.project-detail__delete:hover{background:#ef44441a}.project-detail__description{color:var(--color-text-secondary);margin-bottom:var(--spacing-md)}.project-detail__section{margin-bottom:var(--spacing-lg)}.project-detail__section-header{font-weight:600;letter-spacing:.05em;margin-bottom:var(--spacing-sm);text-transform:uppercase}.project-detail__empty,.project-detail__section-header{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.project-detail__empty{padding:var(--spacing-sm) 0}.project-detail__loading{color:var(--color-text-secondary);padding:var(--spacing-md) 0}.project-detail__todos{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.project-detail__todo-row{align-items:center;border:1px solid var(--color-border);border-radius:var(--border-radius-sm);display:flex;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm)}.project-detail__todo-status{font-size:var(--font-size-sm);text-align:center;width:1.2em}.project-detail__todo-status--done{color:var(--color-success)}.project-detail__todo-status--pending{color:var(--color-text-secondary)}.project-detail__todo-title{flex:1 1;font-size:var(--font-size-sm)}.project-detail__todo-remove{background:#0000;border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-xs);padding:2px var(--spacing-sm)}.project-detail__todo-remove:hover{border-color:var(--color-error);color:var(--color-error)}.create-task-form{align-items:center;display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.create-task-form__input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);flex:1 1}.create-task-form__button,.create-task-form__input{font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm)}.create-task-form__button{background:var(--color-primary);border:none;border-radius:var(--border-radius-sm);color:#fff;cursor:pointer;white-space:nowrap}.create-task-form__button:disabled{cursor:not-allowed;opacity:.5}.dep-editor__list{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.dep-editor__row{align-items:center;border:1px solid var(--color-border);border-radius:var(--border-radius-sm);display:flex;font-size:var(--font-size-sm);justify-content:space-between;padding:var(--spacing-xs) var(--spacing-sm)}.dep-editor__label{flex:1 1}.dep-editor__remove{background:#0000;border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-xs);padding:2px var(--spacing-sm)}.dep-editor__remove:hover{border-color:var(--color-error);color:var(--color-error)}.dep-editor__add{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.dep-editor__add select{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);flex:1 1;font-size:var(--font-size-sm);min-width:120px;padding:var(--spacing-xs) var(--spacing-sm)}.dep-editor__arrow{color:var(--color-text-secondary);font-size:var(--font-size-xs);white-space:nowrap}.dep-editor__add-btn{background:var(--color-primary);border:none;border-radius:var(--border-radius-sm);color:#fff;cursor:pointer;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm);white-space:nowrap}.dep-editor__add-btn:disabled{cursor:not-allowed;opacity:.5}.ae-subsection{border-top:1px solid var(--color-border);margin-top:var(--spacing-md);padding-top:var(--spacing-md)}.ae-subsection:first-of-type{border-top:none;padding-top:0}.ae-subsection__header{align-items:center;display:flex;gap:var(--spacing-sm);justify-content:space-between;margin-bottom:var(--spacing-xs)}.ae-subsection__title{font-size:var(--font-size-md);font-weight:600;margin:0}.ae-subsection__desc{margin:0 0 var(--spacing-sm)}.ae-empty,.ae-subsection__desc{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.ae-empty{padding:var(--spacing-sm) 0}.ae-error{color:var(--color-error);font-size:var(--font-size-sm);margin:var(--spacing-xs) 0}.ae-hint,.ae-muted{color:var(--color-text-secondary)}.ae-hint{font-size:var(--font-size-xs);margin-top:4px}.ae-table{border-collapse:collapse;font-size:var(--font-size-sm);width:100%}.ae-table td,.ae-table th{border-bottom:1px solid var(--color-border);padding:var(--spacing-xs) var(--spacing-sm);text-align:left}.ae-table th{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase}.ae-table__actions{display:flex;gap:var(--spacing-xs);justify-content:flex-end}.ae-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md)}.ae-label{color:var(--color-text-secondary);font-weight:500;margin-bottom:var(--spacing-sm)}.ae-input,.ae-label,.ae-select{display:block;font-size:var(--font-size-sm)}.ae-input,.ae-select{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);margin-top:4px;padding:var(--spacing-xs) var(--spacing-sm);width:100%}.ae-form__actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.ae-btn{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);cursor:pointer;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm);white-space:nowrap}.ae-btn:disabled{cursor:not-allowed;opacity:.6}.ae-btn--primary{background:#2563eb;background:var(--color-primary,#2563eb);border-color:#2563eb;border-color:var(--color-primary,#2563eb);color:#fff}.ae-btn--secondary{background:var(--color-surface);color:var(--color-text)}.ae-btn--danger{background:#0000;border-color:var(--color-error);color:var(--color-error)}.contacts-page{max-width:800px}.contacts-page h1{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.contacts-page__section-title{font-size:var(--font-size-md);font-weight:500;margin:var(--spacing-lg) 0 var(--spacing-sm)}.contacts-page__loading{color:var(--color-text-secondary);padding:var(--spacing-md) 0}.contacts-page__empty{color:var(--color-text-secondary);padding:var(--spacing-lg) 0}.contacts-page__error{color:var(--color-error);font-size:var(--font-size-sm);padding:var(--spacing-sm) 0}.contacts-page__list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.contacts-page__count{background:var(--color-primary);border-radius:999px;color:#fff;display:inline-block;font-size:var(--font-size-xs);font-weight:500;margin-left:var(--spacing-xs);padding:0 var(--spacing-xs);vertical-align:middle}.contacts-page__filter{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);font-size:var(--font-size-sm);margin-bottom:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);width:100%}.contacts-page__filter:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb33;outline:none}.contacts-page__review-list{border:1px solid var(--color-border);border-radius:var(--border-radius-sm);display:flex;flex-direction:column;overflow:hidden}.contacts-page__review-row{align-items:stretch;border-bottom:1px solid var(--color-border);display:flex}.contacts-page__review-row:last-child{border-bottom:none}.contacts-page__review-row:hover{background:var(--color-surface)}.contacts-page__review-open{align-items:center;background:#0000;border:none;color:var(--color-text);cursor:pointer;display:flex;flex:1 1;font-size:var(--font-size-sm);gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);text-align:left}.contacts-page__review-name{flex:1 1;font-weight:500}.contacts-page__review-role{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.contacts-page__review-cta{color:var(--color-primary);font-size:var(--font-size-xs);font-weight:500}.contacts-page__review-dismiss{background:#0000;border:none;border-left:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-xs);padding:0 var(--spacing-md)}.contacts-page__review-dismiss:hover:not(:disabled){background:var(--color-surface);color:var(--color-error)}.contacts-page__review-dismiss:disabled{cursor:default;opacity:.6}.contact-row{align-items:center;background:#0000;border:1px solid var(--color-border);border-radius:var(--border-radius-sm);cursor:pointer;display:flex;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md)}.contact-row:hover{background:var(--color-surface)}.contact-row:focus-visible{border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb33;outline:none}.contact-row__main{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.contact-row__name{align-items:center;display:flex;font-weight:500;gap:var(--spacing-xs)}.contact-row__name,.contact-row__role{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-row__role{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.contact-row__chip{border:1px solid var(--color-primary);border-radius:999px;color:var(--color-primary);font-size:var(--font-size-xs);font-weight:400;padding:0 var(--spacing-xs)}.contact-row__handles{align-items:flex-end;display:flex;flex-direction:column;flex-shrink:0;gap:2px}.contact-row__handle{color:var(--color-text-secondary);font-size:var(--font-size-xs);max-width:240px;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.contact-row__handle:hover{color:var(--color-primary);text-decoration:underline}.contact-modal__backdrop{align-items:center;background:#0006;display:flex;inset:0;justify-content:center;padding:var(--spacing-md);position:fixed;z-index:1000}.contact-modal{background:var(--color-background);border-radius:var(--border-radius-md);box-shadow:0 12px 48px #00000040;display:flex;flex-direction:column;gap:var(--spacing-md);max-height:90vh;max-width:560px;overflow-y:auto;padding:var(--spacing-lg);position:relative;width:100%}.contact-modal__view-grid{grid-gap:var(--spacing-xs) var(--spacing-md);align-items:baseline;display:grid;gap:var(--spacing-xs) var(--spacing-md);grid-template-columns:max-content 1fr}.contact-modal__view-key{color:var(--color-text-secondary);font-size:var(--font-size-xs);letter-spacing:.04em;text-transform:uppercase}.contact-modal__view-val{color:var(--color-text);font-size:var(--font-size-sm);white-space:pre-wrap;word-break:break-word}.contact-modal__view-val--empty{color:var(--color-text-secondary);font-style:italic}.contact-modal__view-link{color:var(--color-primary);text-decoration:none}.contact-modal__view-link:hover{text-decoration:underline}.contact-modal__header{align-items:center;display:flex;gap:var(--spacing-md)}.contact-modal__title{flex:1 1;font-size:var(--font-size-lg);font-weight:600;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-modal__close{background:#0000;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:24px;line-height:1;padding:0 var(--spacing-xs)}.contact-modal__close:hover{color:var(--color-text)}.contact-modal__grid{grid-gap:var(--spacing-sm);display:grid;gap:var(--spacing-sm);grid-template-columns:1fr 1fr}.contact-modal__label{color:var(--color-text-secondary);display:flex;flex-direction:column;font-size:var(--font-size-xs);gap:2px}.contact-modal__label--wide{grid-column:1/-1}.contact-modal__input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm)}.contact-modal__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb33;outline:none}.contact-modal__textarea{font-family:inherit;min-height:60px;resize:vertical}.contact-modal__actions{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.contact-modal__btn{background:#0000;border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-xs);padding:var(--spacing-xs) var(--spacing-sm)}.contact-modal__btn:hover:not(:disabled){background:var(--color-surface)}.contact-modal__btn:disabled{cursor:default;opacity:.6}.contact-modal__btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.contact-modal__btn--primary:hover:not(:disabled){background:var(--color-primary);opacity:.9}.contact-modal__btn--danger{color:var(--color-error)}.contact-modal__btn--danger:hover:not(:disabled){border-color:var(--color-error)}.contact-modal__btn--running{color:var(--color-primary)}.contact-search{margin-bottom:var(--spacing-md)}.contact-search__form{display:flex;gap:var(--spacing-sm)}.contact-search__input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);flex:1 1;font-size:var(--font-size-sm);padding:var(--spacing-sm) 12px}.contact-search__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb33;outline:none}.contact-search__submit{background:var(--color-primary);border:none;border-radius:var(--border-radius-sm);color:#fff;cursor:pointer;font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md)}.contact-search__submit:disabled{cursor:not-allowed;opacity:.5}.contact-search__clear{background:#0000;border:1px solid var(--color-border);border-radius:var(--border-radius-sm);cursor:pointer;padding:var(--spacing-sm) var(--spacing-md)}.contact-search__clear,.contact-search__loading{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.contact-search__loading{padding:var(--spacing-sm) 0}.contact-search__results{border:1px solid var(--color-border);border-radius:var(--border-radius-sm);margin-top:var(--spacing-sm);overflow:hidden}.contact-search__result{align-items:center;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md)}.contact-search__result:last-child{border-bottom:none}.contact-search__result-info{display:flex;flex-direction:column;gap:2px}.contact-search__result-name{font-weight:500}.contact-search__result-handle,.contact-search__result-org{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.contact-search__toggle{background:#0000;border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-primary);cursor:pointer;font-size:var(--font-size-xs);padding:var(--spacing-xs) var(--spacing-sm)}.contact-search__toggle:hover{background:var(--color-surface)}.contact-search__toggle--enabled{color:var(--color-error)}.create-contact-form{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.create-contact-form__input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);flex:1 1;font-size:var(--font-size-sm);min-width:120px;padding:var(--spacing-sm) 12px}.create-contact-form__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb33;outline:none}.create-contact-form__submit{background:var(--color-primary);border:none;border-radius:var(--border-radius-sm);color:#fff;cursor:pointer;font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md);white-space:nowrap}.create-contact-form__submit:disabled{cursor:not-allowed;opacity:.5}.contact-card{align-items:center;border:1px solid var(--color-border);border-radius:var(--border-radius-sm);display:flex;flex-wrap:wrap;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md)}.contact-card__header{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:150px}.contact-card__name{font-weight:500}.contact-card__org{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.contact-card__details{display:flex;gap:var(--spacing-sm)}.contact-card__handle{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.contact-card__role{font-size:var(--font-size-sm)}.contact-card__role-display{border-bottom:1px dashed var(--color-border);color:var(--color-text-secondary);cursor:pointer}.contact-card__role-edit{display:flex;gap:var(--spacing-xs)}.contact-card__role-input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);width:140px}.contact-card__role-input,.contact-card__role-save{font-size:var(--font-size-xs);padding:2px var(--spacing-xs)}.contact-card__role-save{background:var(--color-primary);border:none;border-radius:var(--border-radius-sm);color:#fff;cursor:pointer}.contact-card__actions{display:flex;gap:var(--spacing-xs)}.contact-card__action{background:#0000;border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-xs);padding:var(--spacing-xs) var(--spacing-sm)}.contact-card__action:hover{background:var(--color-surface)}.contact-card__action--primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.contact-card__action--primary:hover{background:var(--color-primary);color:#fff;filter:brightness(1.1)}.contact-card__action--success{border-color:#16a34a;border-color:var(--color-success,#16a34a);color:#16a34a;color:var(--color-success,#16a34a)}.contact-card__action--danger{color:var(--color-error)}.contact-card__action--danger:hover{border-color:var(--color-error)}.contact-card--editing{align-items:stretch;flex-direction:column}.contact-card__edit-grid{grid-gap:var(--spacing-sm);display:grid;gap:var(--spacing-sm);grid-template-columns:1fr 1fr}.contact-card__edit-label{color:var(--color-text-secondary);display:flex;flex-direction:column;font-size:var(--font-size-xs);gap:2px}.contact-card__edit-label--wide{grid-column:1/-1}.contact-card__edit-input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm)}.contact-card__edit-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb33;outline:none}.contact-card__edit-textarea{font-family:inherit;min-height:60px;resize:vertical}.contact-review{display:flex;flex-direction:column;gap:var(--spacing-lg);max-width:900px;padding:var(--spacing-lg)}.contact-review__header{align-items:center;display:flex;gap:var(--spacing-md)}.contact-review__header h1{font-size:var(--font-size-lg);font-weight:600;margin:0}.contact-review__back{background:#0000;border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm)}.contact-review__back:hover{background:var(--color-surface)}.contact-review__error{background:#dc262614;border:1px solid var(--color-error);border-radius:var(--border-radius-sm);color:var(--color-error);font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md)}.contact-review__empty{padding:var(--spacing-lg) 0}.contact-review__empty,.contact-review__muted{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.contact-review__muted{padding:var(--spacing-sm) 0}.contact-review__section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.contact-review__section h2{font-size:var(--font-size-md);font-weight:500;margin:0}.contact-review__table{background:var(--color-surface);border:1px solid var(--color-border);border-collapse:collapse;border-radius:var(--border-radius-sm);overflow:hidden;width:100%}.contact-review__table td,.contact-review__table th{border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md);text-align:left;vertical-align:top}.contact-review__table thead th{background:var(--color-background);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:500;letter-spacing:.04em;text-transform:uppercase}.contact-review__table tbody tr:last-child td{border-bottom:none}.contact-review__table code{background:var(--color-background);border-radius:var(--border-radius-sm);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--font-size-xs);padding:2px 6px}.contact-review__current{color:var(--color-text-secondary)}.contact-review__current em{font-style:italic;opacity:.7}.contact-review__proposed{color:var(--color-text);font-weight:500}.contact-review__evidence{display:flex;flex-direction:column;font-size:var(--font-size-sm);gap:var(--spacing-xs);list-style:none}.contact-review__evidence a{color:var(--color-primary)}.contact-review__actions{border-top:1px solid var(--color-border);display:flex;gap:var(--spacing-sm);padding-top:var(--spacing-md)}.contact-review__action{background:#0000;border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);cursor:pointer;font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md)}.contact-review__action:hover:not(:disabled){background:var(--color-surface)}.contact-review__action:disabled{cursor:not-allowed;opacity:.5}.contact-review__action--primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.contact-review__action--primary:hover:not(:disabled){background:var(--color-primary);filter:brightness(.95)}.contact-review__action--danger{border-color:var(--color-error);color:var(--color-error)}.contact-review__action--danger:hover:not(:disabled){background:#dc262614}.mention-input{display:block;position:relative;width:100%}.mention-chip{align-items:center;background:#2563eb1a;border:1px solid #2563eb40;border-radius:var(--border-radius-sm);color:var(--color-primary);cursor:pointer;display:inline-flex;font:inherit;line-height:1.4;margin:0 1px;padding:1px 6px;text-decoration:none;white-space:nowrap}.mention-chip:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.mention-chip:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.mention-dropdown{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:0 8px 24px #0000001f;display:flex;flex-direction:column;left:0;margin-top:4px;max-height:240px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:120}.mention-dropdown__item{align-items:flex-start;background:#0000;border:none;color:var(--color-text);cursor:pointer;display:flex;flex-direction:column;font:inherit;padding:var(--spacing-sm) var(--spacing-md);text-align:left}.mention-dropdown__item--active,.mention-dropdown__item:hover{background:var(--color-surface)}.mention-dropdown__label{color:var(--color-text);font-size:var(--font-size-sm);font-weight:500}.mention-dropdown__hint{color:var(--color-text-secondary);font-size:var(--font-size-xs);margin-top:2px}.mention-dropdown__empty{color:var(--color-text-secondary)}.mention-dropdown__empty,.todo-detail__project-section{font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md)}.todo-detail__project-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-md);display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.todo-detail__project-row{display:flex;flex-direction:column;gap:2px}.todo-detail__project-row--children{gap:var(--spacing-xs)}.todo-detail__project-label{color:var(--color-text-secondary);font-size:var(--font-size-xs);letter-spacing:.05em;text-transform:uppercase}.todo-detail__project-link{color:var(--color-primary);text-decoration:none}.todo-detail__project-link:hover{text-decoration:underline}.todo-detail__project-link--done{color:var(--color-text-secondary);text-decoration:line-through}.todo-detail__project-children{display:flex;flex-direction:column;gap:2px;list-style:none;margin:0;padding:0}.todo-detail__project-child{align-items:center;display:flex;gap:var(--spacing-xs)}.todo-detail__project-child-status{color:var(--color-text-secondary);text-align:center;width:1em}.todo-detail__project-child-status--done{color:#16a34a;color:var(--color-success,#16a34a)}.outline__error{align-items:center;background:#fef2f2;border:1px solid #dc26264d;border-radius:var(--border-radius-md);box-shadow:0 8px 24px #0000001f;color:#b91c1c;display:flex;font-size:var(--font-size-sm);gap:var(--spacing-sm);left:50%;max-width:520px;padding:var(--spacing-sm) var(--spacing-md);position:fixed;top:var(--spacing-md);transform:translateX(-50%);z-index:1100}.outline__error span{flex:1 1}.outline__error-close{background:#0000;border:none;color:inherit;cursor:pointer;font-size:1.2em;line-height:1}.todo-detail__project-blocked{background:#fbbf241f;border:1px solid #fbbf2466;border-radius:var(--border-radius-sm);color:#92400e;font-size:var(--font-size-sm);margin-top:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm)}.todo-row__status--ready{color:#16a34a;color:var(--color-success,#16a34a)}.todo-row__status--blocked,.todo-row__status--done{color:var(--color-text-secondary)}.todo-row__status:disabled{cursor:not-allowed;opacity:.5}.todo-row[role=button]{cursor:pointer}.todo-row[role=button]:hover{background:var(--color-surface)}.settings-section__hint{color:var(--color-text-secondary)}.settings-section__error,.settings-section__hint{font-size:var(--font-size-sm);margin-bottom:var(--spacing-md)}.settings-section__error{background:var(--color-error-bg);border:1px solid #dc26264d;border-radius:var(--border-radius-sm);color:var(--color-error);padding:var(--spacing-sm) var(--spacing-md)}.settings-section__btn{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);margin-right:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md)}.settings-section__btn:hover:not(:disabled){background:var(--color-surface);background:var(--color-bg-hover,var(--color-surface))}.settings-section__btn:disabled{cursor:not-allowed;opacity:.5}.settings-section__btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.settings-section__btn--primary:hover:not(:disabled){background:var(--color-primary);color:#fff;filter:brightness(1.1)}.settings-section__btn--danger{border-color:#dc262666;color:var(--color-error)}.settings-section__btn--danger:hover:not(:disabled){background:var(--color-error-bg)}.calendar-connections__empty{background:var(--color-surface);border-radius:var(--border-radius-sm);color:var(--color-text-secondary);margin-bottom:var(--spacing-md);padding:var(--spacing-md);text-align:center}.calendar-connections__list{display:flex;flex-direction:column;gap:var(--spacing-sm);list-style:none;margin:0 0 var(--spacing-md) 0;padding:0}.calendar-connections__row{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md)}.calendar-connections__row,.calendar-connections__row-main{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.calendar-connections__row-main{flex:1 1;min-width:200px}.calendar-connections__row-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.calendar-connections__badge{border-radius:var(--border-radius-sm);display:inline-block;font-size:var(--font-size-xs);font-weight:600;letter-spacing:.04em;padding:2px var(--spacing-sm);text-transform:uppercase}.calendar-connections__badge--apple{background:#000;color:#fff}.calendar-connections__badge--google{background:#4285f4;color:#fff}.calendar-connections__email{color:var(--color-text);font-weight:500}.calendar-connections__meta{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.modal{align-items:center;background:#0006;display:flex;inset:0;justify-content:center;padding:var(--spacing-md);position:fixed;z-index:1000}.modal__panel{background:var(--color-background);border-radius:var(--border-radius-md);box-shadow:0 12px 48px #00000040;display:flex;flex-direction:column;max-height:90vh;max-width:540px;overflow-y:auto;width:100%}.modal__header{align-items:center;border-bottom:1px solid var(--color-border);display:flex;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg)}.modal__title{flex:1 1;font-size:var(--font-size-lg);font-weight:600;margin:0}.modal__close{background:#0000;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:24px;line-height:1;padding:0 var(--spacing-xs)}.modal__close:hover:not(:disabled){color:var(--color-text)}.modal__body{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-lg)}.modal__error{background:var(--color-error-bg);border:1px solid #dc26264d;border-radius:var(--border-radius-sm);color:var(--color-error);margin:var(--spacing-md) var(--spacing-lg) 0 var(--spacing-lg);padding:var(--spacing-sm) var(--spacing-md)}.modal__error,.modal__hint{font-size:var(--font-size-sm)}.modal__hint{color:var(--color-text-secondary);margin:0}.modal__provider-grid{grid-gap:var(--spacing-sm);display:grid;gap:var(--spacing-sm);grid-template-columns:1fr 1fr}.modal__provider-btn{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);cursor:pointer;font-size:var(--font-size-md);padding:var(--spacing-md)}.modal__provider-btn:hover:not(:disabled){border-color:var(--color-primary)}.modal__provider-btn:disabled{cursor:not-allowed;opacity:.5}.modal__field{display:flex;flex-direction:column;font-size:var(--font-size-sm);gap:var(--spacing-xs)}.modal__field span{color:var(--color-text-secondary);font-weight:500}.modal__field input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm)}.modal__field input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb33;outline:none}.modal__actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end;margin-top:var(--spacing-md)}.modal__picker-list{border:1px solid var(--color-border);border-radius:var(--border-radius-sm);list-style:none;margin:0;max-height:320px;overflow-y:auto;padding:0}.modal__picker-list li{border-bottom:1px solid var(--color-border);padding:var(--spacing-xs) var(--spacing-md)}.modal__picker-list li:last-child{border-bottom:none}.modal__picker-list label{align-items:center;cursor:pointer;display:flex;gap:var(--spacing-sm)}.modal__picker-empty{color:var(--color-text-secondary);padding:var(--spacing-md);text-align:center}.modal__picker-hint{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.oauth-callback-page{color:var(--color-text-secondary);padding:var(--spacing-xl);text-align:center}.manage-subcalendars__list{display:flex;flex-direction:column;gap:var(--spacing-sm);list-style:none;margin:0;padding:0}.manage-subcalendars__row{grid-gap:var(--spacing-sm);align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);display:grid;gap:var(--spacing-sm);grid-template-columns:1fr auto auto;padding:var(--spacing-xs) var(--spacing-sm)}.manage-subcalendars__toggle{align-items:center;cursor:pointer;display:flex;gap:var(--spacing-sm);min-width:0}.manage-subcalendars__name{font-size:var(--font-size-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manage-subcalendars__colors{display:flex;gap:4px}.manage-subcalendars__swatch{border:2px solid #0000;border-radius:50%;cursor:pointer;height:18px;padding:0;width:18px}.manage-subcalendars__swatch--default{background:#0000;border:1px dashed var(--color-border)}.manage-subcalendars__swatch--selected{border-color:var(--color-text)}.manage-subcalendars__owner{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);font-size:var(--font-size-xs);padding:2px var(--spacing-xs)}@media (max-width:540px){.manage-subcalendars__row{grid-template-columns:1fr}}.dark-mode{--color-background:#0f172a;--color-surface:#1e293b;--color-text:#f1f5f9;--color-text-secondary:#94a3b8;--color-border:#334155}@media (max-width:767px){.sidebar{display:none}.sidebar[aria-hidden=false]{bottom:0;display:flex;left:0;position:fixed;top:0;z-index:100}.sidebar-toggle{display:block}.content-area{padding:var(--spacing-md)}}@media (min-width:768px){.sidebar{display:flex}.sidebar-toggle{display:none}}
/*# sourceMappingURL=main.6bfcae50.css.map*/