:root{--blue-400: #60a5fa;--blue-500: #3b82f6;--blue-600: #2563eb;--blue-700: #1d4ed8;--blue-50: #eff6ff;--blue-100: #dbeafe;--slate-50: #f8fafc;--slate-100: #f1f5f9;--slate-200: #e2e8f0;--slate-300: #cbd5e1;--slate-400: #94a3b8;--slate-500: #64748b;--slate-700: #334155;--slate-900: #0f172a;--navy-950: #0c1324;--navy-900: #131c30;--navy-800: #1b2540;--navy-700: #27324d;--emerald-400: #34d399;--emerald-500: #10b981;--emerald-50: #ecfdf5;--amber-400: #fbbf24;--amber-500: #f59e0b;--amber-700: #b45309;--amber-50: #fffbeb;--red-400: #f87171;--red-500: #ef4444;--red-600: #dc2626;--red-50: #fef2f2;--violet-700: #6d28d9;--violet-50: #f5f3ff}:root{color-scheme:light;--color-bg: var(--slate-50);--color-surface: #ffffff;--color-surface-muted: var(--slate-100);--color-border: var(--slate-200);--color-border-strong: var(--slate-300);--color-text: var(--slate-900);--color-text-body: var(--slate-700);--color-text-muted: var(--slate-500);--color-text-on-accent: #ffffff;--color-primary: var(--blue-600);--color-primary-hover: var(--blue-700);--color-primary-soft: var(--blue-50);--color-primary-soft-text: var(--blue-700);--color-success: var(--emerald-500);--color-success-soft: var(--emerald-50);--color-success-soft-text: #047857;--color-warning: var(--amber-500);--color-warning-soft: var(--amber-50);--color-warning-soft-text: var(--amber-700);--color-danger: var(--red-600);--color-danger-soft: var(--red-50);--color-danger-soft-text: #991b1b;--color-domain-event-soft: var(--color-primary-soft);--color-domain-event-soft-text: var(--color-primary-soft-text);--color-domain-task-soft: var(--color-warning-soft);--color-domain-task-soft-text: var(--color-warning-soft-text);--color-domain-money-soft: var(--color-success-soft);--color-domain-money-soft-text: var(--color-success-soft-text);--color-domain-habit-soft: var(--violet-50);--color-domain-habit-soft-text: var(--violet-700);--color-scrim: rgb(15 23 42 / .45);--focus-ring: 0 0 0 3px rgb(37 99 235 / .35);--shadow-sm: 0 1px 2px rgb(15 23 42 / .06);--shadow-md: 0 1px 3px rgb(15 23 42 / .08), 0 1px 2px rgb(15 23 42 / .04);--shadow-lg: 0 10px 25px -5px rgb(15 23 42 / .1), 0 8px 10px -6px rgb(15 23 42 / .05)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--color-bg: var(--navy-950);--color-surface: var(--navy-900);--color-surface-muted: var(--navy-800);--color-border: var(--navy-800);--color-border-strong: var(--navy-700);--color-text: var(--slate-100);--color-text-body: var(--slate-200);--color-text-muted: var(--slate-400);--color-text-on-accent: #ffffff;--color-primary: var(--blue-500);--color-primary-hover: var(--blue-400);--color-primary-soft: #1c2c4d;--color-primary-soft-text: #bfdbfe;--color-success: var(--emerald-400);--color-success-soft: #123a30;--color-success-soft-text: #6ee7b7;--color-warning: var(--amber-400);--color-warning-soft: #3a2a10;--color-warning-soft-text: #fcd34d;--color-danger: var(--red-400);--color-danger-soft: #3b1a1c;--color-danger-soft-text: #fca5a5;--color-domain-habit-soft: #2a1f4d;--color-domain-habit-soft-text: #ddd6fe;--color-scrim: rgb(2 6 23 / .65);--focus-ring: 0 0 0 3px rgb(59 130 246 / .45);--shadow-sm: 0 1px 2px rgb(0 0 0 / .4);--shadow-md: 0 1px 3px rgb(0 0 0 / .5), 0 1px 2px rgb(0 0 0 / .35);--shadow-lg: 0 10px 25px -5px rgb(0 0 0 / .6), 0 8px 10px -6px rgb(0 0 0 / .45)}}:root[data-theme=dark]{color-scheme:dark;--color-bg: var(--navy-950);--color-surface: var(--navy-900);--color-surface-muted: var(--navy-800);--color-border: var(--navy-800);--color-border-strong: var(--navy-700);--color-text: var(--slate-100);--color-text-body: var(--slate-200);--color-text-muted: var(--slate-400);--color-text-on-accent: #ffffff;--color-primary: var(--blue-500);--color-primary-hover: var(--blue-400);--color-primary-soft: #1c2c4d;--color-primary-soft-text: #bfdbfe;--color-success: var(--emerald-400);--color-success-soft: #123a30;--color-success-soft-text: #6ee7b7;--color-warning: var(--amber-400);--color-warning-soft: #3a2a10;--color-warning-soft-text: #fcd34d;--color-danger: var(--red-400);--color-danger-soft: #3b1a1c;--color-danger-soft-text: #fca5a5;--color-domain-habit-soft: #2a1f4d;--color-domain-habit-soft-text: #ddd6fe;--color-scrim: rgb(2 6 23 / .65);--focus-ring: 0 0 0 3px rgb(59 130 246 / .45);--shadow-sm: 0 1px 2px rgb(0 0 0 / .4);--shadow-md: 0 1px 3px rgb(0 0 0 / .5), 0 1px 2px rgb(0 0 0 / .35);--shadow-lg: 0 10px 25px -5px rgb(0 0 0 / .6), 0 8px 10px -6px rgb(0 0 0 / .45)}:root{--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-h2: 1.25rem;--text-h1: 1.5rem;--leading-tight: 1.25;--leading-normal: 1.5;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 999px;--container-max: 1280px;--container-md: 720px;--container-sm: 420px;--transition-fast: .15s ease}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;background:var(--color-bg);color:var(--color-text-body);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,p,figure,blockquote{margin:0}h1,h2,h3,h4{color:var(--color-text);line-height:var(--leading-tight)}h1{font-size:var(--text-h1);font-weight:var(--weight-bold)}h2{font-size:var(--text-h2);font-weight:var(--weight-semibold)}h3{font-size:var(--text-lg);font-weight:var(--weight-semibold)}small{font-size:var(--text-sm);color:var(--color-text-muted)}ul,ol{margin:0}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}img,svg,video{display:block;max-width:100%}input,textarea,select,button{font:inherit;color:inherit}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}::selection{background:var(--color-primary-soft);color:var(--color-primary-soft-text)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}body:has(dialog[open]){overflow:hidden}.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--space-6)}.page{width:100%;max-width:var(--container-md);margin-inline:auto;padding:var(--space-8) var(--space-6)}.page--wide{max-width:var(--container-max)}.page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)}.auth-shell{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-6)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-6)}.form-card{width:100%;max-width:var(--container-sm);margin-inline:auto;padding:var(--space-8)}.form-card--wide{max-width:480px}.card h1{margin-bottom:var(--space-6)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);min-height:40px;border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:1;cursor:pointer;text-decoration:none;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.btn:hover{text-decoration:none}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-text-on-accent)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface-muted);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:var(--color-border)}.btn-outlined{background:transparent;border-color:var(--color-border-strong);color:var(--color-text)}.btn-outlined:hover:not(:disabled){background:var(--color-surface-muted)}.btn-ghost{background:transparent;color:var(--color-text-muted)}.btn-ghost:hover:not(:disabled){background:var(--color-surface-muted);color:var(--color-text)}.btn-danger{background:var(--color-danger);color:#fff}.btn-sm{min-height:32px;padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.btn-block{width:100%}.btn-icon{padding:0;width:40px;height:40px;border-radius:var(--radius-full)}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4)}.field label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted)}.field input,.field textarea,.field select,.date-time-group input{padding:var(--space-2) var(--space-3);min-height:40px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.field input::placeholder,.field textarea::placeholder{color:var(--color-text-muted)}.field input:focus,.field textarea:focus,.field select:focus,.date-time-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.field textarea{resize:vertical;min-height:4.5rem}.field--error input,.field--error textarea,.field--error select{border-color:var(--color-danger)}.field__error{font-size:var(--text-sm);color:var(--color-danger)}.date-time-group{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);margin-bottom:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted)}.date-time-group__label{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.date-time-group__controls{display:flex;flex-wrap:wrap;gap:var(--space-2)}.form-error{background:var(--color-danger-soft);color:var(--color-danger-soft-text);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-6)}.form-footer{margin-top:var(--space-5);font-size:var(--text-sm);text-align:center;color:var(--color-text-muted)}.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-medium);line-height:1.4;background:var(--color-surface-muted);color:var(--color-text-muted)}.badge--primary{background:var(--color-primary-soft);color:var(--color-primary-soft-text)}.badge--success{background:var(--color-success-soft);color:var(--color-success-soft-text)}.badge--warning{background:var(--color-warning-soft);color:var(--color-warning-soft-text)}.badge--danger{background:var(--color-danger-soft);color:var(--color-danger-soft-text)}.card-metric{margin:0;font-size:var(--text-h1);font-weight:var(--weight-semibold);line-height:var(--leading-tight);font-variant-numeric:tabular-nums}.card-note{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--color-text-muted)}.card-list{list-style:none;margin:var(--space-4) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.card-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-muted);font-size:var(--text-sm)}.card-row__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-row__meta{flex-shrink:0;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.chart-data{font-size:var(--text-sm)}.chart-data summary{cursor:pointer;color:var(--color-text-muted)}.chart-data__scroll{overflow:auto;max-block-size:360px;margin-block-start:var(--space-3)}.chart-data__table{inline-size:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;white-space:nowrap}.chart-data__table th,.chart-data__table td{padding:var(--space-2) var(--space-3);text-align:end;border-block-end:1px solid var(--color-border)}.chart-data__table thead th:first-child,.chart-data__table tbody th{text-align:start}.chart-data__table thead th{position:sticky;inset-block-start:0;background:var(--color-surface);color:var(--color-text-muted)}.chart-data__table tbody th{font-weight:var(--weight-regular)}.empty-state{color:var(--color-text-muted);padding:var(--space-8) 0;text-align:center}.skeleton{background:var(--color-surface-muted);border-radius:var(--radius-sm);animation:skeleton-pulse 1.4s ease-in-out infinite}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.text-muted{color:var(--color-text-muted)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.menu-item{width:100%;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:0;border-radius:var(--radius-md);background:transparent;color:var(--color-text-body);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);text-align:left;cursor:pointer}.menu-item:hover{background:var(--color-surface-muted);color:var(--color-text)}.menu-item__icon{flex-shrink:0;font-size:var(--text-lg)}.menu-item--chevron{justify-content:space-between}.menu-item__group{display:flex;align-items:center;gap:var(--space-3);min-width:0}.btn-icon app-icon{font-size:var(--text-lg)}.menu-divider{height:1px;margin:var(--space-2) 0;border:0;background:var(--color-border)}.section-title{display:flex;align-items:center;gap:var(--space-2);margin:0 0 var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-muted)}.profile-stack{display:flex;flex-direction:column;text-align:left}.switch{appearance:none;flex-shrink:0;width:44px;height:24px;border-radius:var(--radius-full);background:var(--color-border-strong);position:relative;cursor:pointer;transition:background var(--transition-fast)}.switch:before{content:"";position:absolute;inset:2px auto 2px 2px;width:20px;height:20px;border-radius:var(--radius-full);background:var(--color-surface);box-shadow:var(--shadow-sm);transition:translate var(--transition-fast)}.switch:checked{background:var(--color-primary)}.switch:checked:before{translate:20px 0}.switch:disabled{opacity:.55;cursor:not-allowed}.dialog{margin:auto;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-lg);width:min(var(--dialog-width, 480px),100vw - var(--space-8));max-height:calc(100dvh - var(--space-8));opacity:0;scale:.96;transition:opacity .16s ease,scale .16s ease,display .16s allow-discrete,overlay .16s allow-discrete}.dialog[open]{opacity:1;scale:1}@starting-style{.dialog[open]{opacity:0;scale:.96}}.dialog::backdrop{background:transparent;transition:background .16s ease,display .16s allow-discrete,overlay .16s allow-discrete}.dialog[open]::backdrop{background:var(--color-scrim)}@starting-style{.dialog[open]::backdrop{background:transparent}}@media(prefers-reduced-motion:reduce){.dialog,.dialog::backdrop{transition:none}}.dialog__panel{display:flex;flex-direction:column;gap:var(--space-4);min-height:0;max-height:calc(100dvh - var(--space-8));padding:var(--space-5);overflow-y:auto}.dialog__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.dialog__title{margin:0;font-size:var(--text-h2);font-weight:var(--weight-semibold);color:var(--color-text);min-width:0;overflow-wrap:anywhere}.dialog__actions{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.kicker{display:flex;align-items:center;gap:var(--space-2);margin:0;min-width:0;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted)}@media(max-width:639px){.date-time-group{padding:var(--space-2)}.date-time-group input{padding-inline:var(--space-2)}}gridster-preview{background:var(--color-primary-soft);border-radius:var(--radius-lg)}gridster-item:hover .gridster-item-resizable-handler.handle-se{border-color:transparent transparent var(--color-border-strong)}.driver-popover{all:unset;font-family:var(--driver-popover-font-family, "Helvetica Neue", Inter, ui-sans-serif, "Apple Color Emoji", Helvetica, Arial, sans-serif);box-sizing:border-box;color:#2d2d2d;z-index:1000000000;background-color:#fff;border-radius:5px;min-width:250px;max-width:300px;margin:0;padding:15px;position:fixed;top:0;right:0;box-shadow:0 1px 10px #0006}.driver-popover-title{zoom:1;margin:0;font-size:19px;font-weight:700;line-height:1.5;display:block;position:relative}.driver-popover-close-btn{all:unset;cursor:pointer;color:#d2d2d2;z-index:1;text-align:center;width:32px;height:28px;font-size:18px;font-weight:500;transition:color .2s;position:absolute;top:0;right:0}.driver-popover-close-btn:hover,.driver-popover-close-btn:focus{color:#2d2d2d}.driver-popover-title[style*=block]+.driver-popover-description{margin-top:5px}.driver-popover-description{zoom:1;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.5}.driver-popover-footer{text-align:right;zoom:1;justify-content:space-between;align-items:center;margin-top:15px;display:flex}.driver-popover-progress-text{color:#727272;zoom:1;font-size:13px;font-weight:400}.driver-popover-footer-btn{all:unset;box-sizing:border-box;color:#2d2d2d;cursor:pointer;zoom:1;background-color:#fff;border:1px solid #ccc;border-radius:3px;outline:0;padding:3px 7px;font-size:12px;line-height:1.3;text-decoration:none;display:inline-block}.driver-popover-footer .driver-popover-btn-disabled{opacity:.5;pointer-events:none}.driver-popover-footer-btn:hover,.driver-popover-footer-btn:focus{background-color:#f7f7f7}.driver-popover-navigation-btns{flex-grow:1;justify-content:flex-end;display:flex}.driver-popover-navigation-btns button+button{margin-left:4px}.driver-popover-arrow{content:"";border:5px solid #fff;position:absolute}.driver-popover-arrow-side-over{display:none}.driver-popover-arrow-side-left{border-top-color:#0000;border-bottom-color:#0000;border-right-color:#0000;left:100%}.driver-popover-arrow-side-right{border-top-color:#0000;border-bottom-color:#0000;border-left-color:#0000;right:100%}.driver-popover-arrow-side-top{border-bottom-color:#0000;border-left-color:#0000;border-right-color:#0000;top:100%}.driver-popover-arrow-side-bottom{border-top-color:#0000;border-left-color:#0000;border-right-color:#0000;bottom:100%}.driver-popover-arrow-side-center,.driver-popover-arrow-none{display:none}.driver-active .driver-overlay{pointer-events:none}.driver-active.driver-no-scroll{overflow:hidden}.driver-active *{pointer-events:none}.driver-active .driver-active-element,.driver-active .driver-active-element *,.driver-popover,.driver-popover *{pointer-events:auto}@keyframes animate-fade-in{0%{opacity:0}to{opacity:1}}.driver-fade .driver-overlay{animation:animate-fade-in var(--driver-animation-duration, .4s) ease-in-out}.driver-fade .driver-popover{animation:animate-fade-in var(--driver-animation-duration, .4s)}.driver-active-element-parent-no-scroll{overflow:hidden!important}.driver-no-interaction,.driver-no-interaction *{pointer-events:none!important}.driver-popover{background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--color-border);padding:var(--space-5)}.driver-popover-title{color:var(--color-text);font-size:var(--text-lg);font-weight:var(--weight-semibold)}.driver-popover-description{color:var(--color-text-muted);font-size:var(--text-sm)}.driver-popover-progress-text{color:var(--color-text-muted);font-size:var(--text-xs)}.driver-popover-footer-btn{background:var(--color-surface-muted);color:var(--color-text-body);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm)}.driver-popover-footer-btn:hover,.driver-popover-footer-btn:focus{background:var(--color-primary-soft);color:var(--color-primary-soft-text)}.driver-popover-close-btn{color:var(--color-text-muted)}.driver-popover-close-btn:hover,.driver-popover-close-btn:focus{color:var(--color-text)}.driver-popover-arrow-side-left{border-left-color:var(--color-surface)}.driver-popover-arrow-side-right{border-right-color:var(--color-surface)}.driver-popover-arrow-side-top{border-top-color:var(--color-surface)}.driver-popover-arrow-side-bottom{border-bottom-color:var(--color-surface)}@media(prefers-reduced-motion:reduce){.driver-popover,.driver-overlay{transition:none!important;animation:none!important}}
