.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--control-height);padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--weight-medium);line-height:1;white-space:nowrap;cursor:pointer;transition:background var(--duration-fast) var(--easing),border-color var(--duration-fast) var(--easing),color var(--duration-fast) var(--easing);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.button:disabled{opacity:.55;cursor:not-allowed}.button[aria-busy=true]{cursor:progress}.button--primary{background:var(--color-accent);color:var(--color-text-inverse)}.button--primary:hover:not(:disabled):not([aria-busy=true]){background:var(--color-accent-hover)}.button--secondary{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text)}.button--secondary:hover:not(:disabled):not([aria-busy=true]){background:var(--color-surface-hover)}.button--ghost{background:transparent;color:var(--color-text-secondary)}.button--ghost:hover:not(:disabled):not([aria-busy=true]){background:var(--color-surface-hover);color:var(--color-text)}.button--danger{background:var(--color-danger);color:var(--color-text-inverse)}.button--danger:hover:not(:disabled):not([aria-busy=true]){background:var(--color-danger-hover)}.button--sm{min-height:var(--control-height-sm);padding:0 var(--space-3);font-size:var(--text-sm)}.button--lg{min-height:var(--control-height-lg);padding:0 var(--space-5);font-size:var(--text-md)}.button--block{display:flex;width:100%}.icon-button{padding:0;min-width:var(--tap-target);min-height:var(--tap-target)}.button-row{display:flex;gap:var(--space-2);justify-content:flex-end}@media(max-width:640px){.button-row{flex-direction:column-reverse}.button-row>.button{width:100%}}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:0 var(--space-2);min-height:20px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-medium);white-space:nowrap}.badge--neutral{background:var(--color-surface-sunken);color:var(--color-text-secondary)}.badge--accent{background:var(--color-accent-subtle);color:var(--color-accent)}.badge--success{background:var(--color-success-subtle);color:var(--color-success)}.badge--warning{background:var(--color-warning-subtle);color:var(--color-warning)}.badge--danger{background:var(--color-danger-subtle);color:var(--color-danger)}.card{padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-width:0}.card--flush{padding:0}.card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.card__title{font-size:var(--text-md)}.card__description{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:var(--text-sm)}.card__actions{display:flex;gap:var(--space-2);flex-shrink:0}@media(max-width:640px){.card{padding:var(--space-4);border-radius:var(--radius-md)}.card__header{flex-direction:column;gap:var(--space-3)}.card__actions{width:100%}}.choice{display:flex}.choice__input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.choice__label{display:flex;align-items:flex-start;gap:var(--space-2);min-height:var(--tap-target);padding:var(--space-1) 0;cursor:pointer}.choice__box{display:grid;place-items:center;flex-shrink:0;width:18px;height:18px;margin-top:1px;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:transparent;transition:background var(--duration-fast) var(--easing),border-color var(--duration-fast) var(--easing)}.choice--radio .choice__box{border-radius:var(--radius-full)}.choice__input:checked+.choice__label .choice__box{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-inverse)}.choice--radio .choice__input:checked+.choice__label .choice__box{background:var(--color-surface);box-shadow:inset 0 0 0 4px var(--color-accent)}.choice__input:disabled+.choice__label{cursor:not-allowed;color:var(--color-text-muted)}.choice__input:disabled+.choice__label .choice__box{background:var(--color-surface-sunken)}.choice__input:focus-visible+.choice__label .choice__box{box-shadow:var(--focus-ring)}.choice--radio .choice__input:checked:focus-visible+.choice__label .choice__box{box-shadow:inset 0 0 0 4px var(--color-accent),var(--focus-ring)}.choice__text{display:flex;flex-direction:column;gap:2px}.choice__description{color:var(--color-text-secondary);font-size:var(--text-sm)}.choice-group{display:flex;flex-direction:column;gap:var(--space-1);margin:0;padding:0;border:none}.choice-group__legend{padding:0;margin-bottom:var(--space-1);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary)}.palette-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay);display:grid;place-items:start center;padding:10vh var(--space-4) var(--space-4)}.palette{position:relative;display:flex;flex-direction:column;width:100%;max-width:560px;max-height:70vh;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.palette__search{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.palette__icon{color:var(--color-text-muted);flex-shrink:0}.palette__input{flex:1;border:none;background:transparent;font-size:var(--text-md);outline:none}.palette__results{flex:1;padding:var(--space-2);overflow-y:auto;overscroll-behavior:contain}.palette__group+.palette__group{margin-top:var(--space-3)}.palette__group-label{padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.palette__item{display:flex;align-items:center;gap:var(--space-3);min-height:var(--tap-target);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);cursor:pointer}.palette__item--active{background:var(--color-accent-subtle)}.palette__label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette__hint{color:var(--color-text-muted);font-size:var(--text-xs);flex-shrink:0}@media(max-width:640px){.palette-overlay{padding:0;place-items:stretch}.palette{max-width:none;max-height:none;height:100dvh;border-radius:0;padding-top:env(safe-area-inset-top)}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay);display:grid;place-items:center;padding:var(--space-4)}.overlay__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;background:#10182873;border:none;cursor:pointer;animation:overlay-fade var(--duration-normal) var(--easing)}@keyframes overlay-fade{0%{opacity:0}}.dialog{position:relative;display:flex;flex-direction:column;width:100%;max-width:480px;max-height:calc(min(80vh,640px) - var(--keyboard-inset, 0px));background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:dialog-rise var(--duration-normal) var(--easing)}.dialog--sm{max-width:380px}.dialog--lg{max-width:720px}@keyframes dialog-rise{0%{opacity:0;transform:translateY(8px)}}@media(prefers-reduced-motion:reduce){.dialog,.overlay__backdrop{animation:none}}.dialog__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-5) var(--space-3)}.dialog__title{font-size:var(--text-lg)}.dialog__description{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:var(--text-sm)}.dialog__body{padding:0 var(--space-5) var(--space-5);overflow-y:auto;overscroll-behavior:contain}.dialog__footer{padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border)}@media(max-width:640px){.overlay{padding:0;place-items:end stretch}.dialog,.dialog--sm,.dialog--lg{max-width:none;max-height:calc(92vh - var(--keyboard-inset, 0px));border-radius:var(--radius-lg) var(--radius-lg) 0 0;animation:sheet-rise var(--duration-normal) var(--easing)}.dialog__footer{padding-bottom:calc(var(--space-4) + max(env(safe-area-inset-bottom),var(--keyboard-inset, 0px)))}}@keyframes sheet-rise{0%{transform:translateY(100%)}}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field__label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary)}.field__required{color:var(--color-danger)}.field__hint{font-size:var(--text-xs);color:var(--color-text-muted)}.field__error{font-size:var(--text-xs);color:var(--color-danger)}.control{width:100%;min-height:var(--control-height);padding:0 var(--space-3);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text);transition:border-color var(--duration-fast) var(--easing)}.control::placeholder{color:var(--color-text-muted)}.control:hover:not(:disabled){border-color:var(--color-text-muted)}.control:disabled{background:var(--color-surface-sunken);color:var(--color-text-muted);cursor:not-allowed}.control[aria-invalid=true]{border-color:var(--color-danger)}textarea.control{padding:var(--space-2) var(--space-3);min-height:calc(var(--control-height) * 3);line-height:var(--leading-relaxed);resize:vertical}@media(pointer:coarse){.control{font-size:16px}}.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-10) var(--space-6);text-align:center}.empty-state__title{font-size:var(--text-md);font-weight:var(--weight-medium)}.empty-state__description{max-width:46ch;color:var(--color-text-secondary)}.empty-state__action{margin-top:var(--space-3)}.empty-state--no-results{padding:var(--space-8) var(--space-4)}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay);display:flex}.sheet-overlay--left{justify-content:flex-start}.sheet-overlay--right{justify-content:flex-end}.sheet-overlay--bottom{align-items:flex-end}.sheet{position:relative;display:flex;flex-direction:column;background:var(--color-surface);box-shadow:var(--shadow-lg)}.sheet--left,.sheet--right{width:min(320px,86vw);height:100%}.sheet--left{animation:sheet-slide-left var(--duration-normal) var(--easing);padding-left:env(safe-area-inset-left)}.sheet--right{animation:sheet-slide-right var(--duration-normal) var(--easing);padding-right:env(safe-area-inset-right)}.sheet--bottom{width:100%;max-height:calc(88vh - var(--keyboard-inset, 0px));border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding-bottom:max(env(safe-area-inset-bottom),var(--keyboard-inset, 0px));overflow-y:auto;overscroll-behavior:contain;animation:sheet-rise var(--duration-normal) var(--easing)}@keyframes sheet-slide-left{0%{transform:translate(-100%)}}@keyframes sheet-slide-right{0%{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.sheet{animation:none}}.sheet__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-4) var(--space-3);border-bottom:1px solid var(--color-border)}.sheet__title{font-size:var(--text-md)}.sheet__body{flex:1;padding:var(--space-4);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.sheet__footer{padding:var(--space-4);border-top:1px solid var(--color-border)}.menu{position:relative;display:inline-flex}.menu__list{position:absolute;top:calc(100% + var(--space-1));z-index:var(--z-dropdown);min-width:180px;padding:var(--space-1);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.menu__list--start{left:0}.menu__list--end{right:0}.menu__list--sheet{position:static;min-width:0;padding:0;border:none;box-shadow:none}.menu__item{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:var(--tap-target);padding:var(--space-2) var(--space-3);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text);text-align:left;cursor:pointer}.menu__item:hover:not(:disabled){background:var(--color-surface-hover)}.menu__item:disabled{color:var(--color-text-muted);cursor:not-allowed}.menu__item--destructive{color:var(--color-danger)}.menu__item--destructive:hover:not(:disabled){background:var(--color-danger-subtle)}.menu__list--sheet .menu__item{min-height:48px;border-radius:var(--radius-md);font-size:var(--text-md)}.progress{width:100%;height:6px;border-radius:999px;background:var(--color-surface-sunken);overflow:hidden}.progress__fill{height:100%;border-radius:inherit;transition:width var(--duration-normal) var(--easing)}.progress--accent .progress__fill{background:var(--color-accent)}.progress--success .progress__fill{background:var(--color-success)}@media(prefers-reduced-motion:reduce){.progress__fill{transition:none}}.search-input{position:relative;display:flex;align-items:center;--search-icon-size: 16px;--search-icon-gutter: calc(var(--space-3) + var(--search-icon-size) + var(--space-2))}.search-input__icon{position:absolute;left:var(--space-3);color:var(--color-text-muted);pointer-events:none}.search-input__control{padding-left:var(--search-icon-gutter);padding-right:var(--search-icon-gutter)}.search-input__control::-webkit-search-cancel-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.search-input__clear{position:absolute;right:var(--space-1)}.select{position:relative;display:flex;--select-chevron-size: 16px;--select-chevron-gutter: calc(var(--space-3) + var(--select-chevron-size) + var(--space-2))}.select__control{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:var(--select-chevron-gutter);cursor:pointer}.select__chevron{position:absolute;right:var(--space-3);top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none}.skeleton{display:block;background:linear-gradient(90deg,var(--color-surface-sunken) 25%,var(--color-surface-hover) 37%,var(--color-surface-sunken) 63%);background-size:400% 100%;border-radius:var(--radius-sm);animation:skeleton-sweep 1.4s ease infinite}@keyframes skeleton-sweep{0%{background-position:100% 50%}to{background-position:0 50%}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none;background:var(--color-surface-sunken)}}.skeleton-list{display:flex;flex-direction:column;gap:var(--space-4)}.skeleton-list__row{display:flex;flex-direction:column;gap:var(--space-2)}.tabs__strip{display:flex;gap:var(--space-1);border-bottom:1px solid var(--color-border);overflow-x:auto;scrollbar-width:none}.tabs__strip::-webkit-scrollbar{display:none}.tabs__tab{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--tap-target);padding:var(--space-2) var(--space-3);background:transparent;border:none;border-bottom:2px solid transparent;color:var(--color-text-secondary);font-weight:var(--weight-medium);white-space:nowrap;cursor:pointer}.tabs__tab:hover{color:var(--color-text)}.tabs__tab--active{border-bottom-color:var(--color-accent);color:var(--color-accent)}.tabs__badge{padding:0 var(--space-1);min-width:18px;background:var(--color-surface-sunken);border-radius:var(--radius-full);color:var(--color-text-secondary);font-size:var(--text-xs);text-align:center}.tabs__panel{padding-top:var(--space-5)}.tabs__panel:focus{outline:none}@media(max-width:640px){.tabs__strip{margin:0 calc(var(--space-3) * -1);padding:0 var(--space-3)}}.toasts{position:fixed;bottom:calc(var(--space-4) + env(safe-area-inset-bottom));right:var(--space-4);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);width:min(380px,calc(100vw - var(--space-8)));pointer-events:none}.toast{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);background:var(--color-text);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);color:var(--color-text-inverse);pointer-events:auto;animation:toast-in var(--duration-normal) var(--easing)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.toast--success{background:var(--color-success)}.toast--error{background:var(--color-danger)}.toast__message{flex:1;font-size:var(--text-sm)}.toast__action{padding:var(--space-1) var(--space-2);background:#ffffff29;border:none;border-radius:var(--radius-sm);color:inherit;font-weight:var(--weight-medium);cursor:pointer}.toast__action:hover{background:#ffffff42}.toast__close{color:inherit;opacity:.75}.toast__close:hover{background:#ffffff29;opacity:1}@media(max-width:640px){.toasts{left:var(--space-3);right:var(--space-3);bottom:calc(var(--space-3) + env(safe-area-inset-bottom));width:auto}}.tooltip{position:relative;display:inline-flex}.tooltip__bubble{position:absolute;left:50%;z-index:var(--z-dropdown);transform:translate(-50%);padding:var(--space-1) var(--space-2);background:var(--color-text);border-radius:var(--radius-sm);color:var(--color-text-inverse);font-size:var(--text-xs);white-space:nowrap;pointer-events:none}.tooltip__bubble--top{bottom:calc(100% + var(--space-1))}.tooltip__bubble--bottom{top:calc(100% + var(--space-1))}.account-menu__trigger .button__label{display:flex;align-items:center;gap:var(--space-2)}.account-menu__avatar{display:grid;place-items:center;width:22px;height:22px;background:var(--color-accent-subtle);border-radius:var(--radius-full);color:var(--color-accent);font-size:var(--text-xs);font-weight:var(--weight-semibold)}@media(max-width:640px){.account-menu__name{display:none}}.connection-banner{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-warning-subtle);border-bottom:1px solid var(--color-border);color:var(--color-warning);font-size:var(--text-sm)}@media(max-width:640px){.connection-banner{padding:var(--space-2) var(--space-3);font-size:var(--text-xs)}}.tab-bar{position:fixed;bottom:0;left:0;right:0;z-index:var(--z-sticky);display:flex;align-items:center;justify-content:space-around;background:var(--color-surface);border-top:1px solid var(--color-border);padding-bottom:env(safe-area-inset-bottom)}.tab-bar__item{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;padding:var(--space-1) 0;background:transparent;border:none;color:var(--color-text-muted);text-decoration:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.tab-bar__item:hover{text-decoration:none}.tab-bar__item--active{color:var(--color-accent)}.tab-bar__label{font-size:10px;font-weight:var(--weight-medium);letter-spacing:.01em}.tab-bar__capture{display:grid;place-items:center;width:48px;height:48px;margin:0 var(--space-1) var(--space-2);background:var(--color-accent);border:none;border-radius:var(--radius-full);box-shadow:var(--shadow-md);color:var(--color-text-inverse);cursor:pointer;flex-shrink:0;touch-action:manipulation}.tab-bar__capture:active{background:var(--color-accent-hover)}.shell{display:grid;min-height:100vh;min-height:100dvh;grid-template-columns:var(--layout-sidebar-width) 1fr;grid-template-rows:var(--layout-topbar-height) auto 1fr;grid-template-areas:"topbar topbar" "banner banner" "sidebar main"}.shell--collapsed{grid-template-columns:60px 1fr}.shell--narrow{grid-template-columns:1fr;grid-template-areas:"topbar" "banner" "main"}.shell__topbar{grid-area:topbar;position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:0 var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border);padding-left:max(var(--space-4),env(safe-area-inset-left));padding-right:max(var(--space-4),env(safe-area-inset-right))}.shell__topbar-start,.shell__topbar-end{display:flex;align-items:center;gap:var(--space-2)}.shell__brand{font-size:var(--text-md);font-weight:var(--weight-semibold);letter-spacing:-.01em}.shell__kbd{padding:1px var(--space-1);background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);font-family:var(--font-sans);font-size:11px}.shell__search-button .button__label{display:flex;align-items:center;gap:var(--space-2)}.shell__sidebar{grid-area:sidebar;position:sticky;top:var(--layout-topbar-height);height:calc(100dvh - var(--layout-topbar-height));padding:var(--space-4) var(--space-2);background:var(--color-surface);border-right:1px solid var(--color-border);overflow-y:auto}.shell__main{grid-area:main;min-width:0;padding:var(--space-8) var(--space-6);overflow-x:clip}.shell__main:focus,.shell__main:focus-visible{outline:none;box-shadow:none}.shell__content{max-width:var(--layout-content-max);margin:0 auto}.nav__group+.nav__group{margin-top:var(--space-5)}.nav__group-label{padding:0 var(--space-3);margin-bottom:var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.nav__link{display:flex;align-items:center;gap:var(--space-3);min-height:var(--tap-target);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text-secondary);text-decoration:none;transition:background var(--duration-fast) var(--easing)}.nav__link:hover{background:var(--color-surface-hover);color:var(--color-text);text-decoration:none}.nav__link--active{background:var(--color-accent-subtle);color:var(--color-accent);font-weight:var(--weight-medium)}.shell--collapsed .nav__link{justify-content:center;padding:var(--space-2)}@media(max-width:1023px){.shell__main{padding:var(--space-6) var(--space-4)}}@media(max-width:640px){.shell__main{padding:var(--space-4) var(--space-3);padding-bottom:calc(72px + env(safe-area-inset-bottom))}.shell__search-label{display:none}}.shell--keyboard .shell__main{padding-bottom:var(--space-4)}.capture__choices{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}@media(min-width:640px){.capture__choices{grid-template-columns:repeat(3,1fr)}}.capture__choice{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);min-height:84px;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:inherit;text-align:left;cursor:pointer;transition:border-color var(--duration-fast) var(--easing)}.capture__choice:hover{border-color:var(--color-accent)}.capture__choice:focus-visible{outline:none;box-shadow:var(--focus-ring)}.capture__choice-label{font-size:var(--text-base);font-weight:var(--weight-medium)}.capture__choice-hint{color:var(--color-text-muted);font-size:var(--text-xs)}.capture__form{padding-top:var(--space-1)}.sign-in{display:grid;place-items:center;min-height:100dvh;padding:var(--space-6) var(--space-4)}.sign-in__card{display:flex;flex-direction:column;gap:var(--space-4);width:100%;max-width:360px;padding:var(--space-8);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.sign-in__intro{display:flex;flex-direction:column;gap:var(--space-1)}.sign-in__title{font-size:var(--text-xl);letter-spacing:-.01em}.sign-in__subtitle{color:var(--color-text-secondary)}.sign-in__notice{padding:var(--space-2) var(--space-3);background:var(--color-accent-subtle);border-radius:var(--radius-md);color:var(--color-accent);font-size:var(--text-sm)}.sign-in__error{padding:var(--space-2) var(--space-3);background:var(--color-danger-subtle);border-radius:var(--radius-md);color:var(--color-danger);font-size:var(--text-sm)}@media(max-width:640px){.sign-in{place-items:start stretch;padding:0}.sign-in__card{max-width:none;min-height:100dvh;justify-content:center;padding:var(--space-6) var(--space-5) calc(var(--space-6) + env(safe-area-inset-bottom));border:none;border-radius:0;box-shadow:none}}.quick-create{display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-3);min-height:var(--control-height-lg);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);transition:border-color var(--duration-fast) var(--easing)}.quick-create:focus-within{border-color:var(--color-accent)}.quick-create__icon{color:var(--color-text-muted);flex-shrink:0}.quick-create__input{flex:1;min-width:0;border:none;background:transparent;outline:none}.quick-create__input::placeholder{color:var(--color-text-muted)}@media(pointer:coarse){.quick-create__input{font-size:16px}}.subtasks{display:flex;flex-direction:column;gap:var(--space-1)}.subtasks__heading{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary)}.subtasks__count{color:var(--color-text-muted);font-weight:var(--weight-regular)}.subtasks__item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.subtasks__item .choice{flex:1;min-width:0}.subtasks__add{display:flex}.subtasks__input{width:100%;min-height:var(--control-height);padding:0 var(--space-2);background:transparent;border:none;border-bottom:1px dashed var(--color-border-strong);outline:none}.subtasks__input:focus{border-bottom-color:var(--color-accent)}@media(pointer:coarse){.subtasks__input{font-size:16px}}.task-detail{display:flex;flex-direction:column;gap:var(--space-4)}.task-detail__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-3)}.task-detail__disclosure{align-self:flex-start;min-height:var(--tap-target);padding:0;background:transparent;border:none;color:var(--color-accent);font-weight:var(--weight-medium);cursor:pointer}.task-detail__more{display:flex;flex-direction:column;gap:var(--space-4)}.task-detail__loading{color:var(--color-text-secondary)}@media(max-width:640px){.task-detail__grid{grid-template-columns:1fr}}.task-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2) var(--space-1) var(--space-1);border-radius:var(--radius-md)}.task-row:hover{background:var(--color-surface-hover)}.task-row__check{position:relative;display:grid;place-items:center;flex-shrink:0;width:var(--tap-target);height:var(--tap-target);background:transparent;border:none;color:transparent;cursor:pointer}.task-row__check:before{content:"";position:absolute;width:18px;height:18px;border:1.5px solid var(--color-border-strong);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--easing),border-color var(--duration-fast) var(--easing)}.task-row__check:hover:before{border-color:var(--color-accent)}.task-row__check svg{position:relative}.task-row__check[aria-checked=true]{color:var(--color-text-inverse)}.task-row__check[aria-checked=true]:before{background:var(--color-accent);border-color:var(--color-accent)}.task-row__body{display:flex;flex:1;align-items:center;gap:var(--space-3);min-width:0;min-height:var(--tap-target);padding:0;background:transparent;border:none;text-align:left;cursor:pointer}.task-row__title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-row--done .task-row__title{color:var(--color-text-muted);text-decoration:line-through}.task-row__meta{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.task-row__subtasks,.task-row__repeat{color:var(--color-text-muted);font-size:var(--text-xs)}@media(max-width:640px){.task-row__body{flex-direction:column;align-items:flex-start;gap:2px;padding:var(--space-1) 0}.task-row__title{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.task-row__meta{flex-wrap:wrap}}.task-row__trailing{flex:0 0 auto;display:flex;align-items:center}.task-row__title>.badge{margin-right:var(--space-2);vertical-align:middle}.task-row__context{display:block;margin-top:2px;color:var(--color-text-muted);font-size:var(--text-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tasks-page{display:flex;flex-direction:column;gap:var(--space-4)}.tasks-page__title{font-size:var(--text-2xl);letter-spacing:-.02em}.tasks-page__list{display:flex;flex-direction:column}.tasks-page__group+.tasks-page__group{margin-top:var(--space-5)}.tasks-page__group-heading{padding:0 var(--space-2) var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.tasks-page__more{padding:var(--space-4) var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm)}@media(max-width:640px){.tasks-page__title{font-size:var(--text-xl)}}.tasks-page__group-heading{display:flex;align-items:center;gap:var(--space-2)}.tasks-page__group--today{padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border-subtle);margin-bottom:var(--space-4)}.tasks-page__group--today .tasks-page__group-heading{color:var(--color-text)}.today-page{display:flex;flex-direction:column;gap:var(--space-5)}.today-page__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.today-page__dates{display:flex;align-items:center;gap:var(--space-2)}.today-page__title{font-size:var(--text-xl)}.today-page__back-icon{transform:rotate(180deg)}.today-section{display:flex;flex-direction:column;gap:var(--space-2)}.today-section__head{display:flex;align-items:baseline;gap:var(--space-2)}.today-section__title{font-size:var(--text-md)}.today-section__hint{color:var(--color-text-muted);font-size:var(--text-xs)}.today-section__empty{color:var(--color-text-muted);font-size:var(--text-sm)}.today-section__list{display:flex;flex-direction:column}.today-page__truncated{color:var(--color-text-muted);font-size:var(--text-sm)}.workspace-page{display:grid;gap:var(--space-6)}.workspace-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:var(--space-3)}.workspace-toolbar>*{min-width:0}.workspace-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:var(--space-5)}.workspace-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);min-width:0}.workspace-panel h2{font-size:var(--text-lg);margin:0 0 var(--space-3)}.workspace-panel summary{cursor:pointer;font-weight:var(--weight-semibold);padding-block:var(--space-2)}.workspace-panel p{color:var(--color-text-secondary)}.workspace-list{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-3)}.workspace-list>li{min-width:0;border-bottom:1px solid var(--color-border);padding-block:var(--space-3);overflow-wrap:anywhere}.workspace-link{color:var(--color-accent);text-decoration:none;font-weight:var(--weight-medium)}.workspace-muted{color:var(--color-text-secondary);font-size:var(--text-sm)}.workspace-notice{padding:var(--space-3);background:var(--color-accent-subtle);border-radius:var(--radius-md)}.workspace-error{color:var(--color-danger)}.workspace-week{display:grid;grid-template-columns:repeat(7,minmax(160px,1fr));gap:var(--space-3);overflow-x:auto;padding-bottom:var(--space-3)}.workspace-week h2{font-size:var(--text-md)}@media(min-width:1024px){:root[data-density=compact]{--space-5: 1rem;--space-6: 1.25rem;--control-height: 30px}}.workspace-fields{border:0;margin:0;padding:0;min-width:0}:root{--keyboard-inset: 0px;color-scheme:light;--color-canvas: #f7f8fa;--color-surface: #ffffff;--color-surface-sunken: #f2f4f7;--color-surface-hover: #f0f2f5;--color-border: #e3e6eb;--color-border-strong: #cbd1da;--color-text: #16191f;--color-text-secondary: #5b6472;--color-text-muted: #858e9c;--color-text-inverse: #ffffff;--color-accent: #2f5bea;--color-accent-hover: #2749c4;--color-accent-subtle: #eef2fe;--color-accent-border: #c3d0fb;--color-success: #1f8a54;--color-success-subtle: #e8f5ee;--color-warning: #a86a12;--color-warning-subtle: #fdf3e3;--color-danger: #c0392f;--color-danger-subtle: #fdeceb;--color-danger-hover: #a12f26;--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.65;--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: 4px;--radius-md: 6px;--radius-lg: 10px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgb(16 24 40 / 6%);--shadow-md: 0 4px 12px rgb(16 24 40 / 8%);--shadow-lg: 0 12px 32px rgb(16 24 40 / 12%);--layout-sidebar-width: 232px;--layout-topbar-height: 56px;--layout-content-max: 1120px;--control-height: 32px;--control-height-sm: 26px;--control-height-lg: 40px;--tap-target: 32px;--breakpoint-compact: 640px;--breakpoint-medium: 1024px;--focus-ring: 0 0 0 2px var(--color-surface), 0 0 0 4px var(--color-accent);--duration-fast: 90ms;--duration-normal: .16s;--easing: cubic-bezier(.2, 0, .2, 1);--z-sticky: 100;--z-dropdown: 200;--z-overlay: 300;--z-toast: 400}@media(prefers-reduced-motion:reduce){:root{--duration-fast: 0ms;--duration-normal: 0ms}}@media(pointer:coarse){:root{--control-height: 44px;--control-height-sm: 36px;--control-height-lg: 48px;--tap-target: 44px}}@media(max-width:640px){:root{--text-base: .9375rem;--space-8: 1.25rem;--space-10: 1.5rem;--space-12: 2rem}}:root[data-theme=dark]{color-scheme:dark;--color-text-inverse: #10151e;--color-canvas: #10151e;--color-surface: #18212e;--color-surface-sunken: #121a26;--color-surface-hover: #233044;--color-border: #304054;--color-border-strong: #52647d;--color-text: #edf2f8;--color-text-secondary: #bdc9d9;--color-text-muted: #a3b2c6;--color-accent: #90b2ff;--color-accent-hover: #b0c8ff;--color-accent-subtle: #253653;--color-accent-border: #476492;--color-success: #75dca7;--color-success-subtle: #193b30;--color-warning: #f3cb79;--color-warning-subtle: #413421;--color-danger: #ffa49c;--color-danger-hover: #ffc7c2;--color-danger-subtle: #442827;--shadow-md: 0 4px 16px rgb(0 0 0 / 24%);--shadow-lg: 0 12px 32px rgb(0 0 0 / 35%)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;background:var(--color-canvas);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p,figure,blockquote{margin:0}h1,h2,h3,h4{font-weight:var(--weight-semibold);line-height:var(--leading-tight)}ul[role=list],ol[role=list]{list-style:none;margin:0;padding:0}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}img,svg{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:absolute;top:var(--space-2);left:var(--space-2);z-index:var(--z-toast);padding:var(--space-2) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-md);transform:translateY(-200%);transition:transform var(--duration-normal) var(--easing)}.skip-link:focus-visible{transform:translateY(0)}.spinner{display:inline-flex;align-items:center;justify-content:center}.spinner__dot{width:16px;height:16px;border:2px solid var(--color-border-strong);border-top-color:var(--color-accent);border-radius:var(--radius-full);animation:spinner-turn .7s linear infinite}@keyframes spinner-turn{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner__dot{animation-duration:2s}}.full-page-message{display:grid;place-items:center;min-height:60vh;padding:var(--space-8);text-align:center}.full-page-message__inner{display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.full-page-message__title{font-size:var(--text-xl)}.full-page-message__body{color:var(--color-text-secondary);max-width:48ch}.error-boundary{max-width:48ch;margin:var(--space-16) auto;padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:center}.error-boundary h1{font-size:var(--text-lg)}.error-boundary p{margin:var(--space-3) 0 var(--space-5);color:var(--color-text-secondary)}.error-boundary button{padding:var(--space-2) var(--space-4);background:var(--color-accent);border:none;border-radius:var(--radius-md);color:var(--color-text-inverse);cursor:pointer}.full-page-spinner{display:grid;place-items:center;min-height:100vh}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}@media(max-width:640px){.field-row{grid-template-columns:1fr}}
