*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--color-background);color:var(--color-on-surface);line-height:1.5;min-height:100dvh;-webkit-font-smoothing:antialiased;transition:background-color .2s ease,color .2s ease}.material-symbols-outlined{font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;vertical-align:middle;-webkit-user-select:none;user-select:none}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}button,input,select,textarea{font-family:inherit;font-size:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:root{--color-surface: #f9f9f9;--color-surface-dim: #dadada;--color-surface-bright: #f9f9f9;--color-surface-container-lowest: #ffffff;--color-surface-container-low: #f3f3f3;--color-surface-container: #eeeeee;--color-surface-container-high: #e8e8e8;--color-surface-container-highest: #e2e2e2;--color-on-surface: #1a1c1c;--color-on-surface-variant: #454652;--color-inverse-surface: #2f3131;--color-inverse-on-surface: #f1f1f1;--color-outline: #757684;--color-outline-variant: #c5c5d4;--color-surface-tint: #4355b9;--color-primary: #24389c;--color-on-primary: #ffffff;--color-primary-container: #3f51b5;--color-on-primary-container: #cacfff;--color-secondary: #4d5a9c;--color-on-secondary: #ffffff;--color-secondary-container: #abb7ff;--color-on-secondary-container: #394687;--color-tertiary: #3f434c;--color-on-tertiary: #ffffff;--color-tertiary-container: #575a64;--color-on-tertiary-container: #cfd2dd;--color-error: #ba1a1a;--color-on-error: #ffffff;--color-error-container: #ffdad6;--color-on-error-container: #93000a;--color-background: #f9f9f9;--color-on-background: #1a1c1c;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display-lg-size: 40px;--font-display-lg-line-height: 48px;--font-headline-lg-size: 28px;--font-headline-lg-mobile-size: 24px;--font-title-md-size: 18px;--font-body-lg-size: 16px;--font-body-md-size: 14px;--font-label-sm-size: 12px;--spacing-unit: 4px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-margin-mobile: 16px;--radius-sm: .25rem;--radius-default: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--radius-full: 9999px;--shadow-elevation-1: 0 1px 3px rgba(0, 0, 0, .05), 0 1px 2px rgba(0, 0, 0, .1);--shadow-elevation-2: 0 4px 6px -1px rgba(0, 0, 0, .08), 0 2px 4px -1px rgba(0, 0, 0, .04);--shadow-elevation-3: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05)}[data-theme=dark]{--color-background: #121212;--color-surface: #1e1e1e;--color-surface-dim: #181818;--color-surface-bright: #2c2c2c;--color-surface-container-lowest: #0e0e0e;--color-surface-container-low: #1c1c1c;--color-surface-container: #242424;--color-surface-container-high: #2d2d2d;--color-surface-container-highest: #383838;--color-on-surface: #f1f1f1;--color-on-surface-variant: #c5c5d4;--color-primary: #bac3ff;--color-on-primary: #00105c;--color-primary-container: #24389c;--color-on-primary-container: #dee0ff;--color-secondary-container: #394687;--color-on-secondary-container: #dee1ff;--color-outline: #8e90a0;--color-outline-variant: #454652}.glass-nav{background:#eeeeeed9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid rgba(197,197,212,.3)}[data-theme=dark] .glass-nav{background:#1e1e1ed9;border-top:1px solid rgba(69,70,82,.4)}.app-header{position:fixed;top:0;left:0;right:0;height:64px;z-index:50;background-color:var(--color-surface);display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-margin-mobile);box-shadow:0 1px 2px #0000000d}.app-header h1{font-size:var(--font-headline-lg-mobile-size);font-weight:700;color:var(--color-primary)}.app-nav{position:fixed;bottom:0;left:0;right:0;height:64px;z-index:50;display:flex;align-items:center;justify-content:space-around;padding:0 var(--spacing-xs)}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--color-on-surface-variant);text-decoration:none;font-size:11px;font-weight:500;background:none;border:none;cursor:pointer;padding:6px 12px;border-radius:var(--radius-full);transition:all .15s ease}.nav-item.active{color:var(--color-primary);background-color:var(--color-secondary-container)}.nav-item .material-symbols-outlined{font-size:22px;margin-bottom:2px}.timeline-container{position:relative;padding-left:20px}.timeline-line{position:absolute;left:11px;top:8px;bottom:8px;width:1px;background-color:var(--color-outline-variant);opacity:.4}.timeline-entry{position:relative;display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);align-items:flex-start}.timeline-bullet{position:relative;z-index:10;background-color:var(--color-background);padding:2px 0;display:flex;align-items:center;justify-content:center}.timeline-bullet-icon{font-size:22px;color:var(--color-primary);cursor:pointer;transition:transform .1s ease}.timeline-bullet-icon:hover{transform:scale(1.15)}.timeline-content{flex:1}.timeline-title{font-size:var(--font-body-lg-size);font-weight:500;color:var(--color-on-surface)}.timeline-title.completed{text-decoration:line-through;color:var(--color-on-surface-variant)}.timeline-meta{display:flex;gap:var(--spacing-xs);align-items:center;margin-top:4px}.chip-category{display:inline-block;padding:2px 8px;border-radius:var(--radius-full);background-color:var(--color-secondary-container);color:var(--color-on-secondary-container);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.chip-tag{font-size:11px;color:var(--color-primary)}.timeline-time{font-size:var(--font-label-sm-size);color:var(--color-on-surface-variant);white-space:nowrap}.fab-button{position:fixed;bottom:80px;right:20px;z-index:40;width:56px;height:56px;border-radius:var(--radius-full);background-color:var(--color-primary);color:var(--color-on-primary);border:none;box-shadow:var(--shadow-elevation-3);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s ease,background-color .15s ease}.fab-button:hover{transform:scale(1.08)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:90;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.drawer-content{position:fixed;bottom:0;left:0;right:0;max-width:600px;margin:0 auto;z-index:100;background-color:var(--color-surface);border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl);padding:var(--spacing-lg) var(--spacing-margin-mobile);box-shadow:var(--shadow-elevation-3)}.category-grid{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:var(--spacing-md)}.category-chip{padding:6px 12px;border-radius:var(--radius-full);border:1px solid var(--color-outline-variant);background-color:var(--color-surface-container-low);color:var(--color-on-surface);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease}.category-chip.selected{background-color:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.input-text{width:100%;padding:12px;border-radius:var(--radius-default);border:1px solid var(--color-outline);background-color:var(--color-surface-container-lowest);color:var(--color-on-surface);font-size:var(--font-body-lg-size);margin-bottom:var(--spacing-md)}.input-text:focus{border-color:var(--color-primary)}.btn-primary{width:100%;padding:12px;border-radius:var(--radius-full);background-color:var(--color-primary);color:var(--color-on-primary);border:none;font-weight:600;font-size:var(--font-body-lg-size);cursor:pointer}.snackbar{position:fixed;bottom:80px;left:50%;transform:translate(-50%);z-index:100;background-color:var(--color-inverse-surface);color:var(--color-inverse-on-surface);padding:12px 20px;border-radius:var(--radius-full);display:flex;align-items:center;gap:var(--spacing-md);box-shadow:var(--shadow-elevation-2)}.snackbar-action{background:none;border:none;color:var(--color-secondary-container);font-weight:700;text-transform:uppercase;font-size:12px;cursor:pointer}.empty-state{text-align:center;padding:40px var(--spacing-margin-mobile);color:var(--color-on-surface-variant)}.empty-state-icon{font-size:48px;color:var(--color-outline);margin-bottom:var(--spacing-sm)}
