:root{--cr-surface-0: var(--lumo-base-color);--cr-surface-1: color-mix(in srgb,var(--lumo-contrast-color) 3%,var(--lumo-base-color));--cr-surface-2: color-mix(in srgb,var(--lumo-contrast-color) 5%,var(--lumo-base-color));--cr-border: var(--lumo-contrast-10pct);--cr-border-strong: var(--lumo-contrast-20pct);--cr-shadow-xs: 0 1px 2px rgba(0,0,0,0.04),0 0 0 1px rgba(0,0,0,0.03);--cr-shadow-sm: 0 1px 4px rgba(0,0,0,0.06),0 2px 8px rgba(0,0,0,0.04);--cr-shadow-md: 0 4px 16px rgba(0,0,0,0.08),0 1px 4px rgba(0,0,0,0.04);--cr-shadow-lg: 0 12px 40px rgba(0,0,0,0.12),0 4px 12px rgba(0,0,0,0.06);--cr-shadow-hover: 0 4px 20px rgba(0,0,0,0.1),0 1px 6px rgba(0,0,0,0.04);--cr-primary-subtle: color-mix(in srgb,var(--lumo-primary-color) 8%,var(--lumo-base-color));--cr-success-subtle: color-mix(in srgb,var(--lumo-success-color) 8%,var(--lumo-base-color));--cr-error-subtle: color-mix(in srgb,var(--lumo-error-color) 8%,var(--lumo-base-color));--cr-warning-subtle: color-mix(in srgb,#f59e0b 8%,var(--lumo-base-color));--cr-purple-subtle: color-mix(in srgb,#8b5cf6 8%,var(--lumo-base-color));--cr-warning-color: #f59e0b;--cr-warning-text: #92400e;--cr-purple-color: #8b5cf6;--cr-purple-text: #5b21b6;--cr-radius-sm: 6px;--cr-radius-md: 10px;--cr-radius-lg: 14px;--cr-radius-xl: 18px;--cr-font-label: 11px;--cr-label-tracking: 0.06em;--cr-label-weight: 600;--cr-transition: 0.15s ease}[theme~="dark"]{--cr-warning-text: #fbbf24;--cr-purple-text: #a78bfa}.rating-stars{display: flex;flex-direction: row-reverse;justify-content: flex-end;align-items: center;gap: 2px}.rating-stars .star-btn{color: var(--lumo-contrast-30pct);cursor: pointer;min-width: auto;padding: 0;transition: color 0.1s}.rating-stars .star-btn.star-filled{color: var(--lumo-warning-color)}.rating-stars:hover .star-btn{color: var(--lumo-contrast-20pct) !important}.rating-stars .star-btn:hover,.rating-stars .star-btn:hover~.star-btn{color: var(--lumo-warning-color) !important}body{-webkit-font-smoothing: antialiased;text-rendering: optimizeLegibility}vaadin-app-layout>:not([slot]){height: 100%}:focus-visible{outline: 2px solid var(--lumo-primary-color);outline-offset: 2px}vaadin-app-layout::part(drawer){background: var(--cr-surface-1);border-right: 1px solid var(--cr-border)}vaadin-side-nav{--vaadin-side-nav-item-padding-inline: var(--lumo-space-l)}vaadin-side-nav-item::part(item){border-radius: var(--cr-radius-md);margin: 1px 8px;font-size: var(--lumo-font-size-s);color: var(--lumo-secondary-text-color);transition: background var(--cr-transition),color var(--cr-transition)}vaadin-side-nav-item[active]::part(item){background: var(--lumo-primary-color-10pct);color: var(--lumo-primary-color);font-weight: 600}vaadin-side-nav-item:not([active])::part(item):hover{background: var(--cr-surface-2);color: var(--lumo-primary-text-color)}vaadin-app-layout::part(navbar){background: var(--cr-surface-0);border-bottom: 1px solid var(--cr-border)}.login-page{background: linear-gradient(160deg,color-mix(in srgb,var(--lumo-primary-color) 6%,var(--lumo-base-color)) 0%,var(--lumo-base-color) 50%,color-mix(in srgb,#8b5cf6 3%,var(--lumo-base-color)) 100% );position: relative;overflow: hidden}.login-page::before{content: '';position: absolute;inset: 0;background: radial-gradient(ellipse 55% 35% at 15% 25%,color-mix(in srgb,var(--lumo-primary-color) 5%,transparent) 0%,transparent 70%),radial-gradient(ellipse 45% 45% at 85% 75%,color-mix(in srgb,#8b5cf6 4%,transparent) 0%,transparent 70%);pointer-events: none}.login-card{background: var(--cr-surface-0);padding: var(--lumo-space-xl) var(--lumo-space-xl) var(--lumo-space-l);border-radius: var(--cr-radius-xl);box-shadow: 0 0 0 1px var(--cr-border),var(--cr-shadow-lg);max-width: 400px;width: 100%;position: relative;animation: login-card-in 0.4s cubic-bezier(0.16,1,0.3,1) both}@keyframes login-card-in{from{opacity: 0;transform: translateY(20px) scale(0.97)}to{opacity: 1;transform: translateY(0) scale(1)}}.login-logo-row{gap: var(--lumo-space-s) !important;margin-bottom: 0}.login-brand-icon{color: var(--lumo-primary-color);width: 32px;height: 32px}.login-title{color: var(--lumo-primary-text-color);font-size: var(--lumo-font-size-xxl);font-weight: 800;margin: 0;letter-spacing: -0.03em}.login-subtitle{color: var(--lumo-secondary-text-color);font-size: var(--lumo-font-size-s);margin: 4px 0 0;text-align: center}.login-divider{width: 100%;height: 1px;background: var(--cr-border);margin: var(--lumo-space-m) 0 var(--lumo-space-s)}.login-form{width: 100%}.login-footer{color: var(--lumo-tertiary-text-color);font-size: var(--lumo-font-size-xs);margin-top: var(--lumo-space-m);animation: login-card-in 0.5s cubic-bezier(0.16,1,0.3,1) 0.06s both}.sidebar-avatar{width: 30px;height: 30px;min-width: 30px;border-radius: 50%;background: linear-gradient(135deg,var(--lumo-primary-color) 0%,color-mix(in srgb,var(--lumo-primary-color) 70%,#8b5cf6) 100% );color: white;display: inline-flex;align-items: center;justify-content: center;font-weight: 700;font-size: 13px;box-shadow: 0 1px 3px rgba(0,0,0,0.15)}.empty-state{display: flex;flex-direction: column;align-items: center;justify-content: center;padding: var(--lumo-space-xxl) var(--lumo-space-l);text-align: center;gap: var(--lumo-space-s);width: 100%}.empty-state__icon{width: 44px;height: 44px;color: var(--lumo-contrast-20pct);flex-shrink: 0;padding: 10px;background: var(--cr-surface-2);border-radius: var(--cr-radius-lg)}.empty-state__title{font-size: var(--lumo-font-size-m);font-weight: 600;color: var(--lumo-primary-text-color);display: block;margin-top: var(--lumo-space-xs)}.empty-state__text,.empty-state__subtitle{font-size: var(--lumo-font-size-s);color: var(--lumo-secondary-text-color);max-width: 340px;margin: 0;line-height: 1.6}.tag-group-section{background: var(--cr-surface-0);border: 1px solid var(--cr-border);border-radius: var(--cr-radius-lg);padding: var(--lumo-space-m);margin-bottom: var(--lumo-space-m);box-shadow: var(--cr-shadow-xs);transition: box-shadow var(--cr-transition)}.tag-group-section:hover{box-shadow: var(--cr-shadow-sm)}.tag-group-header{margin-bottom: var(--lumo-space-s);padding-bottom: var(--lumo-space-s);border-bottom: 1px solid var(--cr-border)}.dashboard-card{background: var(--cr-surface-0);border: 1px solid var(--cr-border);border-radius: var(--cr-radius-lg);min-width: 0;overflow: hidden;padding: var(--lumo-space-l);margin-bottom: var(--lumo-space-m);box-shadow: var(--cr-shadow-xs);transition: box-shadow var(--cr-transition)}.weather-today{display: flex;align-items: center;gap: var(--lumo-space-l);padding: var(--lumo-space-m) 0}.weather-hourly-row{display: flex;gap: var(--lumo-space-xs);overflow-x: auto;padding: var(--lumo-space-s) 0;border-top: 1px solid var(--cr-border);margin-top: var(--lumo-space-s)}.weather-hourly-item{display: flex;flex-direction: column;align-items: center;gap: 2px;padding: var(--lumo-space-xs) var(--lumo-space-s);border-radius: var(--cr-radius-md);background: var(--cr-surface-1);min-width: 50px;transition: background var(--cr-transition)}.weather-hourly-item:first-child{background: var(--cr-primary-subtle)}.weather-forecast-row{display: flex;gap: var(--lumo-space-xs);overflow-x: auto;padding-top: var(--lumo-space-s);border-top: 1px solid var(--cr-border);margin-top: var(--lumo-space-s)}.weather-forecast-day{display: flex;flex-direction: column;align-items: center;gap: 4px;padding: var(--lumo-space-s) var(--lumo-space-m);border-radius: var(--cr-radius-md);background: var(--cr-surface-1);min-width: 80px;flex: 1;transition: background var(--cr-transition)}.weather-forecast-day:first-child{background: var(--cr-primary-subtle)}.dashboard-card:hover{box-shadow: var(--cr-shadow-sm)}.dashboard-wrapper{max-width: 1400px;width: 100%;margin: 0 auto;padding: var(--lumo-space-m) var(--lumo-space-l)}.dashboard-greeting-bar{display: flex;justify-content: space-between;align-items: center;flex-wrap: wrap;gap: var(--lumo-space-m);margin-bottom: var(--lumo-space-m)}.dashboard-quick-actions{display: flex;gap: var(--lumo-space-s);flex-wrap: wrap}.dashboard-grid{display: grid;grid-template-columns: 1fr 2fr;gap: var(--lumo-space-l);align-items: start}.dashboard-grid>*{min-width: 0}@media (max-width: 1024px){.dashboard-grid{grid-template-columns: 1fr}}.weekly-stats-grid{display: flex;flex-wrap: wrap;gap: var(--lumo-space-s)}.weekly-stats-grid .stat-card{min-width: 120px;padding: var(--lumo-space-m)}.sidebar-section{width: 100%}.sidebar-section::part(summary){font-size: 10px;font-weight: 700;letter-spacing: 0.08em;color: var(--lumo-tertiary-text-color);text-transform: uppercase;padding: var(--lumo-space-xs) var(--lumo-space-l);min-height: auto;cursor: pointer}.sidebar-section::part(content){padding: 0}.sidebar-section vaadin-side-nav-item::part(item){padding-block: 4px;min-height: 32px}.focus-card-active{border-left: 3px solid var(--lumo-primary-color);background: var(--cr-primary-subtle)}.focus-card-empty{border-left: 3px solid var(--cr-border-strong);background: var(--cr-surface-1)}.dashboard-card-label{font-size: var(--cr-font-label);font-weight: var(--cr-label-weight);color: var(--lumo-tertiary-text-color);text-transform: uppercase;letter-spacing: var(--cr-label-tracking)}.focus-current-title{font-size: var(--lumo-font-size-xl);font-weight: 700;margin: var(--lumo-space-s) 0 var(--lumo-space-xs) 0;letter-spacing: -0.01em}.focus-current-time{font-size: var(--lumo-font-size-m);color: var(--lumo-primary-color);font-weight: 600}.stat-card{background: var(--cr-surface-0);border: 1px solid var(--cr-border);border-radius: var(--cr-radius-lg);padding: var(--lumo-space-l);box-shadow: var(--cr-shadow-xs);flex: 1;min-width: 140px;transition: box-shadow var(--cr-transition),transform var(--cr-transition)}.stat-card:hover{box-shadow: var(--cr-shadow-hover);transform: translateY(-2px)}.task-row{display: flex;align-items: center;gap: var(--lumo-space-s);padding: 7px 0;border-bottom: 1px solid var(--lumo-contrast-5pct)}.task-status-dot{width: 6px;height: 6px;border-radius: 50%;flex-shrink: 0}.task-status-dot--todo{background: var(--lumo-contrast-30pct)}.task-status-dot--in_progress{background: var(--lumo-primary-color)}.task-status-dot--done{background: var(--lumo-success-color)}.task-card-grid{display: grid;grid-template-columns: repeat(auto-fill,minmax(300px,1fr));gap: var(--lumo-space-m);width: 100%;padding: var(--lumo-space-s) 0}@keyframes card-in{from{opacity: 0;transform: translateY(8px)}to{opacity: 1;transform: translateY(0)}}@media (prefers-reduced-motion: reduce){.planner-item-card,.focus-block-card,.schedule-card,.goal-card{animation: none}}.planner-item-card{background: var(--cr-surface-0);border: 1px solid var(--cr-border);border-radius: var(--cr-radius-lg);padding: var(--lumo-space-m);display: flex;flex-direction: column;gap: var(--lumo-space-xs);box-shadow: var(--cr-shadow-xs);transition: box-shadow var(--cr-transition),transform var(--cr-transition);animation: card-in 0.2s ease-out both}.planner-item-card:hover{box-shadow: var(--cr-shadow-hover);transform: translateY(-2px)}.task-card-header{display: flex;align-items: flex-start;justify-content: space-between;gap: var(--lumo-space-xs)}.task-card-title{font-size: var(--lumo-font-size-m);font-weight: 600;line-height: 1.35;letter-spacing: -0.01em;flex: 1}.task-card-meta{display: grid;grid-template-columns: 1fr 1fr;gap: var(--lumo-space-xs);margin-top: var(--lumo-space-xs)}.task-card-meta-item{display: flex;flex-direction: column;gap: 2px}.task-card-meta-label{font-size: var(--cr-font-label);font-weight: var(--cr-label-weight);text-transform: uppercase;letter-spacing: var(--cr-label-tracking);color: var(--lumo-tertiary-text-color)}.task-card-meta-value{font-size: var(--lumo-font-size-s);color: var(--lumo-body-text-color);white-space: nowrap;overflow: hidden;text-overflow: ellipsis}.task-card-desc{font-size: var(--lumo-font-size-s);color: var(--lumo-secondary-text-color);line-height: 1.55;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;overflow: hidden;margin-top: var(--lumo-space-xs)}.task-card-footer{display: flex;align-items: center;justify-content: space-between;margin-top: auto;padding-top: var(--lumo-space-s);border-top: 1px solid var(--lumo-contrast-5pct)}.task-card-footer-count{font-size: var(--lumo-font-size-xs);color: var(--lumo-secondary-text-color)}.task-card-footer-details{font-size: var(--lumo-font-size-xs);color: var(--lumo-primary-color);cursor: pointer;font-weight: 500}.task-card-footer-details:hover{text-decoration: underline}.task-card-tags{display: flex;flex-wrap: wrap;gap: 4px;margin-top: var(--lumo-space-xs)}.planner-item-row{border: 1px solid var(--cr-border);border-radius: var(--cr-radius-md);background: var(--cr-surface-0);padding: var(--lumo-space-xs) var(--lumo-space-s);display: flex;align-items: flex-start;gap: var(--lumo-space-s)}.planner-list-row{display: flex;align-items: center;gap: var(--lumo-space-s);padding: 6px var(--lumo-space-s);border-bottom: 1px solid var(--lumo-contrast-5pct);cursor: pointer;border-radius: var(--cr-radius-sm);transition: background var(--cr-transition)}.planner-list-row:hover{background: var(--cr-primary-subtle)}.planner-list-row__title{flex: 1;font-size: var(--lumo-font-size-s);white-space: nowrap;overflow: hidden;text-overflow: ellipsis}.planner-list-row__meta{font-size: var(--lumo-font-size-xs);color: var(--lumo-tertiary-text-color);white-space: nowrap;flex-shrink: 0}.planner-item-clickable{cursor: pointer;border-radius: var(--cr-radius-sm);padding: 2px;transition: background var(--cr-transition)}.planner-item-clickable:hover{background: var(--cr-primary-subtle)}.focus-block-card{background: var(--cr-surface-0);border: 1px solid var(--cr-border);border-left: 3px solid var(--lumo-primary-color);border-radius: var(--cr-radius-md);padding: var(--lumo-space-m);margin-bottom: var(--lumo-space-s);display: flex;justify-content: space-between;align-items: flex-start;box-shadow: var(--cr-shadow-xs);transition: box-shadow var(--cr-transition),transform var(--cr-transition);animation: card-in 0.2s ease-out both}.focus-block-card:hover{box-shadow: var(--cr-shadow-sm);transform: translateY(-1px)}.focus-block-card--schedule{border-left-color: var(--lumo-success-color);background: var(--cr-success-subtle)}.focus-block-time{display: inline-flex;align-items: center;font-size: var(--cr-font-label);color: var(--lumo-primary-color);font-weight: 600;background: var(--lumo-primary-color-10pct);padding: 2px 8px;border-radius: 999px;letter-spacing: 0.02em}.focus-block-card--schedule .focus-block-time{color: var(--lumo-success-text-color);background: var(--lumo-success-color-10pct)}.focus-block-title{font-size: var(--lumo-font-size-m);font-weight: 600;margin: 4px 0 0 0;color: var(--lumo-primary-text-color);letter-spacing: -0.01em}.focus-block-desc{font-size: var(--lumo-font-size-s);color: var(--lumo-secondary-text-color);margin: 3px 0 0 0;line-height: 1.5}.focus-block-actions{display: flex;gap: 2px;flex-shrink: 0;margin-left: var(--lumo-space-s)}.schedule-card{background: var(--cr-surface-0);border: 1px solid var(--cr-border);border-left: 3px solid var(--lumo-success-color);border-radius: var(--cr-radius-md);padding: var(--lumo-space-m);margin-bottom: var(--lumo-space-s);display: flex;justify-content: space-between;align-items: flex-start;box-shadow: var(--cr-shadow-xs);transition: box-shadow var(--cr-transition),transform var(--cr-transition);animation: card-in 0.2s ease-out both}.schedule-card:hover{box-shadow: var(--cr-shadow-sm);transform: translateY(-1px)}.schedule-card--inactive{opacity: 0.5;border-left-color: var(--cr-border-strong)}.schedule-days-badge{display: inline-flex;align-items: center;font-size: var(--cr-font-label);font-weight: 600;background: var(--lumo-success-color-10pct);color: var(--lumo-success-text-color);border: 1px solid var(--lumo-success-color-50pct);padding: 2px 9px;border-radius: 999px;letter-spacing: 0.02em}.cal-navbar{padding: var(--lumo-space-s) var(--lumo-space-m);border-bottom: 1px solid var(--cr-border);flex-shrink: 0}.cal-nav-btn{width: 28px;height: 28px;padding: 0;border-radius: var(--cr-radius-sm);color: var(--lumo-secondary-text-color) !important;transition: background var(--cr-transition),color var(--cr-transition) !important}.cal-nav-btn:hover{background: var(--cr-surface-2) !important;color: var(--lumo-primary-text-color) !important}.cal-today-btn{font-size: var(--lumo-font-size-s)}.cal-month-label{font-size: var(--lumo-font-size-l);font-weight: 700;color: var(--lumo-primary-text-color);min-width: 190px;text-align: center;letter-spacing: -0.02em}.cal-weekdays{display: grid;grid-template-columns: repeat(7,1fr);background: var(--cr-surface-1);border-bottom: 1px solid var(--cr-border);flex-shrink: 0}.cal-weekday{padding: 8px 4px;text-align: center;font-size: var(--cr-font-label);font-weight: var(--cr-label-weight);color: var(--lumo-tertiary-text-color);text-transform: uppercase;letter-spacing: 0.05em}.cal-grid{display: grid;grid-template-columns: repeat(7,1fr);border-left: 1px solid var(--cr-border);border-top: 1px solid var(--cr-border)}.cal-cell{border-right: 1px solid var(--cr-border);border-bottom: 1px solid var(--cr-border);padding: 6px 8px;min-height: 120px;cursor: pointer;background: var(--cr-surface-0);transition: background-color 0.1s;overflow: hidden}.cal-cell:hover{background: var(--cr-primary-subtle)}.cal-cell--muted{background: var(--cr-surface-1)}.cal-cell--muted:hover{background: var(--cr-surface-2)}.cal-cell--weekend{background: color-mix(in srgb,var(--cr-border) 35%,var(--cr-surface-0))}.cal-cell--today{background: var(--cr-primary-subtle)}.cal-cell--today:hover{background: color-mix(in srgb,var(--lumo-primary-color) 12%,var(--cr-surface-0))}.cal-day-num{display: inline-flex;align-items: center;justify-content: center;width: 26px;height: 26px;border-radius: 50%;font-size: var(--lumo-font-size-s);font-weight: 500;color: var(--lumo-secondary-text-color);margin-bottom: 3px;transition: background var(--cr-transition)}.cal-cell--today .cal-day-num{background: var(--lumo-primary-color);color: white;font-weight: 700}.cal-badge{display: block;font-size: 11px;line-height: 1.35;padding: 2px 6px;border-radius: var(--cr-radius-sm);margin-bottom: 2px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;font-weight: 500}.cal-badge--schedule{background: var(--lumo-success-color-10pct);color: var(--lumo-success-text-color);border-left: 2px solid var(--lumo-success-color)}.cal-badge--focus{background: var(--lumo-primary-color-10pct);color: var(--lumo-primary-color);border-left: 2px solid var(--lumo-primary-color)}.cal-badge--task{background: var(--cr-surface-2);color: var(--lumo-secondary-text-color);border-left: 2px solid var(--cr-border-strong)}.cal-badge--recurring{background: var(--cr-purple-subtle);color: var(--cr-purple-text);border-left: 2px solid var(--cr-purple-color)}.cal-badge--event{background: var(--cr-warning-subtle);color: var(--cr-warning-text);border-left: 2px solid var(--cr-warning-color)}.cal-badge--dragging{opacity: 0.35;cursor: grabbing}.cal-cell--drag-over{background: var(--cr-primary-subtle) !important;outline: 2px dashed var(--lumo-primary-color);outline-offset: -2px}.cal-more{display: block;font-size: 11px;color: var(--lumo-tertiary-text-color);padding: 1px 6px}.dict-columns{display: flex;gap: var(--lumo-space-l);flex-wrap: wrap;align-items: flex-start}.dict-section{flex: 1;min-width: 260px;background: var(--cr-surface-0);border: 1px solid var(--cr-border);border-radius: var(--cr-radius-lg);padding: var(--lumo-space-l);display: flex;flex-direction: column;gap: var(--lumo-space-m);box-shadow: var(--cr-shadow-xs)}.dict-section__header{display: flex;flex-direction: column;gap: 2px}.dict-section__title{font-size: var(--lumo-font-size-m);font-weight: 700;color: var(--lumo-primary-text-color);letter-spacing: -0.01em}.dict-section__subtitle{font-size: var(--lumo-font-size-xs);color: var(--lumo-tertiary-text-color)}.dict-chips-wrap{display: flex;flex-wrap: wrap;gap: var(--lumo-space-xs);min-height: 32px;align-items: flex-start;align-content: flex-start}.dict-chip{display: inline-flex;align-items: center;gap: 0;border-radius: 999px;padding: 3px 2px 3px 10px;font-size: var(--lumo-font-size-s);line-height: 1;user-select: none;transition: box-shadow 0.12s}.dict-chip:hover{box-shadow: 0 1px 5px rgba(0,0,0,0.1)}.dict-chip--category{background: var(--lumo-primary-color-10pct);border: 1px solid var(--lumo-primary-color-50pct);color: var(--lumo-primary-text-color)}.dict-chip--tag{background: var(--cr-surface-2);border: 1px solid var(--cr-border-strong);color: var(--lumo-secondary-text-color)}.dict-chip__delete{width: 20px !important;height: 20px !important;min-width: 0 !important;padding: 0 !important;color: inherit !important;opacity: 0.45;border-radius: 50% !important;flex-shrink: 0;transition: opacity var(--cr-transition),background var(--cr-transition) !important}.dict-chip__delete:hover{opacity: 1;background: rgba(0,0,0,0.08) !important}.dict-empty-hint{font-size: var(--lumo-font-size-xs);color: var(--lumo-tertiary-text-color);font-style: italic;padding: var(--lumo-space-xs) 0}.goal-card{border: 1px solid var(--cr-border);border-left: 3px solid var(--lumo-primary-color);border-radius: var(--cr-radius-lg);background: var(--cr-surface-0);padding: var(--lumo-space-m);display: flex;flex-direction: column;gap: var(--lumo-space-s);box-shadow: var(--cr-shadow-xs);transition: box-shadow var(--cr-transition);animation: card-in 0.2s ease-out both}.goal-card:hover{box-shadow: var(--cr-shadow-sm)}.goal-task-list{margin-top: var(--lumo-space-xs)}.goal-task-row{display: flex;align-items: center;gap: var(--lumo-space-s);border: 1px solid var(--cr-border);border-radius: var(--cr-radius-sm);padding: 5px 8px;cursor: pointer;transition: background var(--cr-transition);font-size: var(--lumo-font-size-s)}.goal-task-row:hover{background: var(--cr-primary-subtle)}.gantt{display: flex;flex-direction: column;width: 100%;min-width: 0;font-size: var(--lumo-font-size-s)}.gantt-header-row{display: flex;align-items: stretch;border-bottom: 1px solid var(--cr-border-strong);position: sticky;top: 0;z-index: 10;background: var(--cr-surface-1)}.gantt-corner{flex: 0 0 180px;min-width: 180px;padding: var(--lumo-space-xs) var(--lumo-space-s);font-weight: var(--cr-label-weight);color: var(--lumo-secondary-text-color);font-size: var(--cr-font-label);text-transform: uppercase;letter-spacing: var(--cr-label-tracking)}.gantt-days-header{flex: 1 1 0;display: grid;min-width: 0}.gantt-day-h{text-align: center;padding: var(--lumo-space-xs) 4px;font-size: var(--lumo-font-size-s);color: var(--lumo-secondary-text-color);font-weight: 500;border-left: 1px solid var(--lumo-contrast-5pct);min-width: 0;overflow: hidden;white-space: nowrap}.gantt-day-h--today{color: var(--lumo-primary-color);font-weight: 700;background: color-mix(in srgb,var(--lumo-primary-color) 6%,transparent)}.gantt-day-h--weekend{background: var(--cr-surface-1)}.gantt-section-row{display: flex;align-items: center;padding: var(--lumo-space-xs) var(--lumo-space-s);background: var(--cr-surface-2);border-top: 1px solid var(--cr-border);border-bottom: 1px solid var(--cr-border);font-size: var(--cr-font-label);font-weight: var(--cr-label-weight);text-transform: uppercase;letter-spacing: 0.06em;color: var(--lumo-secondary-text-color);margin-top: 2px}.gantt-event-row{display: flex;align-items: center;min-height: 32px;border-bottom: 1px solid var(--lumo-contrast-5pct);transition: background var(--cr-transition)}.gantt-event-row:hover{background: var(--cr-primary-subtle)}.gantt-row-label{flex: 0 0 180px;min-width: 180px;max-width: 180px;padding: 4px var(--lumo-space-s);font-size: var(--lumo-font-size-s);white-space: nowrap;overflow: hidden;text-overflow: ellipsis;color: var(--lumo-body-text-color)}.gantt-timeline{flex: 1 1 0;display: grid;min-width: 0;min-height: 32px;position: relative}.gantt-cell{border-left: 1px solid var(--lumo-contrast-5pct);min-height: 32px;grid-row: 1}.gantt-cell--today{background: color-mix(in srgb,var(--lumo-primary-color) 5%,transparent)}.gantt-cell--weekend{background: var(--cr-surface-1)}.gantt-bar{grid-row: 1;position: relative;z-index: 1;align-self: center;height: 20px;border-radius: var(--cr-radius-sm);padding: 0 6px;font-size: var(--lumo-font-size-xs);font-weight: 500;display: flex;align-items: center;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;margin: 1px 2px;box-shadow: 0 1px 3px rgba(0,0,0,0.12)}.gantt-bar--event{background: color-mix(in srgb,var(--cr-warning-color) 22%,var(--lumo-base-color));color: var(--cr-warning-text);border-left: 3px solid var(--cr-warning-color)}.gantt-bar--focus{background: color-mix(in srgb,var(--lumo-primary-color) 18%,var(--lumo-base-color));color: var(--lumo-primary-text-color);border-left: 3px solid var(--lumo-primary-color)}.gantt-bar--schedule{background: color-mix(in srgb,var(--lumo-primary-color) 10%,var(--lumo-base-color));color: var(--lumo-primary-text-color);border-left: 3px solid color-mix(in srgb,var(--lumo-primary-color) 50%,transparent)}.gantt-bar--task{background: color-mix(in srgb,var(--lumo-success-color) 15%,var(--lumo-base-color));color: var(--lumo-success-text-color);border-left: 3px solid var(--lumo-success-color)}.gantt-bar--recurring{background: var(--cr-purple-subtle);color: var(--cr-purple-text);border-left: 3px solid var(--cr-purple-color)}.cal-event-row:hover{background: var(--cr-primary-subtle)}.kanban-board::after{content: '';flex: 0 0 var(--lumo-space-m)}.kanban-col{flex: 0 0 340px;min-width: 300px;max-width: 400px;display: flex;flex-direction: column;background: var(--cr-surface-1);border: 1px solid var(--cr-border);border-radius: var(--cr-radius-xl);padding: var(--lumo-space-m);min-height: 0;box-sizing: border-box}.kanban-col-header{margin-bottom: var(--lumo-space-s);flex-shrink: 0;min-width: 0}.kanban-col--todo{border-top: 2px solid var(--cr-border-strong)}.kanban-col--progress{border-top: 2px solid var(--lumo-primary-color)}.kanban-col--done{border-top: 2px solid var(--lumo-success-color)}.kanban-col--drag-over{background: var(--cr-primary-subtle);outline: 2px dashed var(--lumo-primary-color);outline-offset: -2px}.kanban-cards{flex: 1 1 0;overflow-y: auto;overflow-x: hidden;display: flex;flex-direction: column;gap: var(--lumo-space-s);min-height: 0}.kanban-card{background: var(--cr-surface-0);border-radius: var(--cr-radius-md);padding: var(--lumo-space-m);cursor: pointer;border: 1px solid var(--cr-border);box-shadow: var(--cr-shadow-xs);transition: box-shadow var(--cr-transition),transform var(--cr-transition);user-select: none;min-width: 0;overflow: hidden;word-break: break-word;overflow-wrap: break-word}.kanban-card:hover{box-shadow: var(--cr-shadow-hover);transform: translateY(-1px)}.kanban-card--dragging{opacity: 0.35;transform: rotate(2deg) scale(0.97);box-shadow: var(--cr-shadow-lg)}.kanban-priority-dot{display: inline-block;width: 7px;height: 7px;border-radius: 50%;flex-shrink: 0}.kanban-priority-dot--high{background: var(--lumo-error-color)}.kanban-priority-dot--medium{background: var(--cr-warning-color)}.kanban-priority-dot--low{background: var(--lumo-contrast-30pct)}.activity-heatmap{background: var(--cr-surface-0);border: 1px solid var(--cr-border);border-radius: var(--cr-radius-lg);padding: var(--lumo-space-m);box-shadow: var(--cr-shadow-xs);overflow-x: auto}.activity-heatmap__title{font-size: var(--cr-font-label);font-weight: var(--cr-label-weight);color: var(--lumo-secondary-text-color);display: block;margin-bottom: var(--lumo-space-s);text-transform: uppercase;letter-spacing: var(--cr-label-tracking)}.heatmap-months{display: flex;margin-left: 24px;margin-bottom: 4px}.heatmap-month-label{flex: 0 0 14px;font-size: 10px;color: var(--lumo-secondary-text-color);white-space: nowrap;overflow: visible}.heatmap-body{display: flex;gap: 4px}.heatmap-day-labels{display: flex;flex-direction: column;gap: 2px;flex-shrink: 0}.heatmap-day-label{width: 16px;height: 12px;font-size: 9px;color: var(--lumo-tertiary-text-color);line-height: 12px;text-align: right;padding-right: 4px}.heatmap-cells{display: flex;gap: 2px}.heatmap-week{display: flex;flex-direction: column;gap: 2px}.heatmap-cell{width: 12px;height: 12px;border-radius: 3px;cursor: default;transition: transform 0.1s ease,outline 0.1s ease}.heatmap-cell:hover{transform: scale(1.5);outline: 1.5px solid var(--lumo-primary-color);outline-offset: 1px;z-index: 1;position: relative}.heatmap-cell--0{background: var(--cr-surface-2)}.heatmap-cell--1{background: color-mix(in srgb,var(--lumo-primary-color) 25%,var(--lumo-base-color))}.heatmap-cell--2{background: color-mix(in srgb,var(--lumo-primary-color) 48%,var(--lumo-base-color))}.heatmap-cell--3{background: color-mix(in srgb,var(--lumo-primary-color) 68%,var(--lumo-base-color))}.heatmap-cell--4{background: var(--lumo-primary-color)}.heatmap-cell--future{opacity: 0;pointer-events: none}.heatmap-legend{display: flex;align-items: center;gap: 4px;margin-top: var(--lumo-space-s);justify-content: flex-end}.heatmap-legend__label{font-size: 10px;color: var(--lumo-tertiary-text-color)}.timeline-section{margin-bottom: var(--lumo-space-m);padding-bottom: var(--lumo-space-m);border-bottom: 1px solid var(--lumo-contrast-5pct)}.timeline-section:last-child{border-bottom: none}.timeline-date-label{font-size: var(--lumo-font-size-m);font-weight: 600;color: var(--lumo-primary-text-color);letter-spacing: -0.01em}.timeline-date-label--today{color: var(--lumo-primary-color)}.timeline-date-label--past{color: var(--lumo-secondary-text-color)}.timeline-today-badge{font-size: var(--cr-font-label);font-weight: 700;text-transform: uppercase;letter-spacing: 0.05em;background: var(--lumo-primary-color);color: white;padding: 2px 8px;border-radius: 999px}.timeline-progress{font-size: var(--lumo-font-size-xs);color: var(--lumo-secondary-text-color);background: var(--cr-surface-2);padding: 2px 8px;border-radius: 999px;margin-left: auto;font-weight: 500}.timeline-progress--complete{color: var(--lumo-success-text-color);background: var(--lumo-success-color-10pct)}.timeline-task-list{margin-top: var(--lumo-space-xs);display: flex;flex-direction: column;gap: 4px;margin-left: 4px}.timeline-task-row{display: flex;align-items: center;gap: var(--lumo-space-s);padding: 6px 10px;border-radius: var(--cr-radius-md);background: var(--cr-surface-1);transition: background var(--cr-transition)}.timeline-task-row:hover{background: var(--cr-primary-subtle)}.timeline-task-row--done{opacity: 0.55}.timeline-task-title{font-size: var(--lumo-font-size-s);flex: 1;min-width: 0;overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.timeline-priority{font-size: var(--cr-font-label);font-weight: 600;text-transform: uppercase;letter-spacing: 0.04em;padding: 2px 6px;border-radius: 999px;flex-shrink: 0}.timeline-priority--high{background: var(--lumo-error-color-10pct);color: var(--lumo-error-text-color)}.timeline-priority--medium{background: var(--cr-warning-subtle);color: var(--cr-warning-text)}.timeline-priority--low{background: var(--cr-surface-2);color: var(--lumo-secondary-text-color)}.timeline-category-badge{font-size: var(--lumo-font-size-xs);padding: 2px 7px;border-radius: 999px;background: var(--lumo-primary-color-10pct);color: var(--lumo-primary-color);flex-shrink: 0;font-weight: 500}.timeline-time{font-size: var(--lumo-font-size-xs);color: var(--lumo-secondary-text-color);flex-shrink: 0}.pomodoro-card{transition: box-shadow var(--cr-transition)}.planner-item-card--dragging{opacity: 0.4;transform: rotate(1.5deg) scale(0.97);box-shadow: var(--cr-shadow-lg)}.planner-item-card--drop-before{border-top: 2px solid var(--lumo-primary-color);transform: translateY(2px)}.task-card-drop-zone{grid-column: 1 / -1;height: 36px;border-radius: var(--cr-radius-md);transition: background var(--cr-transition),outline var(--cr-transition);cursor: default}.task-card-drop-zone--active{background: var(--cr-primary-subtle);outline: 2px dashed var(--lumo-primary-color-50pct);outline-offset: -4px}.task-stats-bar{display: flex;align-items: center;gap: var(--lumo-space-m);padding: var(--lumo-space-s) var(--lumo-space-m);border-bottom: 1px solid var(--lumo-contrast-10pct)}.task-stats-counts{display: flex;align-items: center;font-size: var(--lumo-font-size-s);color: var(--lumo-secondary-text-color)}.task-stats-item{white-space: nowrap}.task-stats-item--overdue{color: var(--lumo-error-color);font-weight: 600}.task-filter-tabs{flex-shrink: 0}.task-filter-tab{border-radius: 0 !important;border-bottom: 2px solid transparent;padding: var(--lumo-space-xs) var(--lumo-space-m) !important;min-height: 36px;font-size: var(--lumo-font-size-s) !important}.task-filter-tab--active{border-bottom-color: var(--lumo-primary-color) !important;color: var(--lumo-primary-color) !important;font-weight: 600}.task-columns-layout{display: flex;gap: var(--lumo-space-m);align-items: flex-start;width: 100%;overflow-x: auto;padding-bottom: var(--lumo-space-m)}.task-column{min-width: 300px;max-width: 400px;flex: 1 1 300px;display: flex;flex-direction: column;gap: var(--lumo-space-s);background: var(--cr-surface-1);border-radius: var(--cr-radius-lg);padding: var(--lumo-space-m);border: 1px solid var(--cr-border)}.task-column-cards{display: flex;flex-direction: column;gap: var(--lumo-space-s)}.task-column-header{display: flex;flex-direction: column;gap: var(--lumo-space-xs);padding-bottom: var(--lumo-space-s);border-bottom: 1px solid var(--cr-border);margin-bottom: var(--lumo-space-xs)}.task-column-stats{font-size: var(--lumo-font-size-xs);color: var(--lumo-secondary-text-color)}.task-quick-add{width: 100%;text-align: left;color: var(--lumo-secondary-text-color) !important;font-size: var(--lumo-font-size-s) !important;margin-top: var(--lumo-space-xs);padding-top: var(--lumo-space-s) !important;border-top: 1px solid var(--cr-border)}.task-quick-add:hover{color: var(--lumo-primary-color) !important}.task-card-badges{display: flex;flex-wrap: wrap;gap: 4px;align-items: center;margin-top: var(--lumo-space-xs)}.task-date-badge{font-size: var(--lumo-font-size-xs);color: var(--lumo-secondary-text-color);background: var(--lumo-contrast-5pct);padding: 1px 6px;border-radius: var(--lumo-border-radius-s)}.task-date-badge--overdue{color: var(--lumo-error-color);background: var(--lumo-error-color-10pct);font-weight: 600}.task-priority-badge{font-size: var(--lumo-font-size-s);font-weight: 700;line-height: 1}.task-priority-badge--high{color: var(--lumo-error-color)}.task-priority-badge--medium{color: var(--lumo-warning-color,#e67e22);font-size: 8px}.task-priority-badge--low{color: var(--lumo-primary-color)}