.state-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-7) var(--space-4);text-align:center;color:var(--on-surface-variant)}.state-empty--compact{padding:var(--space-4) var(--space-2)}.state-empty svg{opacity:.6}.state-empty__text{font-size:var(--text-body-size);color:var(--on-surface-variant);max-width:320px}.error-state{background:var(--warning-container);color:var(--on-warning-container);border-radius:var(--shape-sm);padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);font-size:var(--text-body-size);box-shadow:var(--el-1)}.error-state--fatal{background:var(--error-container);color:var(--on-error-container)}.st-skeleton{background:var(--surface-container-high);border-radius:var(--shape-xs);position:relative;overflow:hidden}.st-skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--surface-container-lowest),transparent);animation:st-shimmer 1.2s infinite}@keyframes st-shimmer{to{transform:translate(100%)}}.state-skeleton-list{display:flex;flex-direction:column;gap:var(--space-2)}.state-skeleton-card{display:flex;flex-direction:column;gap:var(--space-2);width:100%;box-sizing:border-box;padding:20px;border-radius:var(--shape-md);background-color:var(--surface-container-low);box-shadow:var(--el-1)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 20px;border-radius:var(--shape-full);border:1px solid transparent;font-family:var(--font-sans);font-size:14px;font-weight:500;line-height:1;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-2) var(--ease),color var(--dur-2) var(--ease),border-color var(--dur-2) var(--ease),transform var(--dur-2) var(--ease)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.38;pointer-events:none}.btn--small{height:32px;padding:0 16px}.btn--primary{background:var(--primary-40);color:var(--on-primary)}.btn--primary:hover{background:var(--primary-30)}.btn--secondary{background:transparent;color:var(--primary-40);border-color:var(--outline)}.btn--secondary:hover{background:var(--primary-95)}.btn--ghost{background:transparent;color:var(--primary-40)}.btn--ghost:hover{background:var(--primary-95)}.btn--destructive{background:var(--error-container);color:var(--on-error-container)}.btn--destructive:hover{filter:brightness(.96)}.btn__spinner{width:16px;height:16px;border-radius:var(--shape-full);border:2px solid currentColor;border-top-color:transparent;animation:btn-spin .7s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}.badge{display:inline-flex;align-items:center;height:24px;padding:0 12px;border-radius:var(--shape-full);font-family:var(--font-sans);font-size:12px;font-weight:500;line-height:1;white-space:nowrap}.badge--status-planning{background-color:var(--neutral-container);color:var(--on-neutral-container)}.badge--status-blocked{background-color:var(--error-container);color:var(--on-error-container)}.badge--status-in_progress{background-color:var(--primary-container);color:var(--on-primary-container)}.badge--status-review{background-color:var(--warning-container);color:var(--on-warning-container)}.badge--status-qa{background-color:var(--info-container);color:var(--on-info-container)}.badge--status-completed{background-color:var(--tertiary-container);color:var(--on-tertiary-container)}.badge--ownership-human{background-color:var(--primary-container);color:var(--on-primary-container)}.badge--ownership-agent{background-color:var(--secondary-container);color:var(--on-secondary-container)}.badge--ownership-leadership{background-color:var(--warning-container);color:var(--on-warning-container)}.command-palette-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1f293780;display:flex;align-items:flex-start;justify-content:center;padding-top:15vh;z-index:var(--z-dialog-overlay);animation:command-palette-fade-in var(--dur-3, .2s) var(--ease)}@keyframes command-palette-fade-in{0%{opacity:0}}.command-palette{width:560px;max-width:calc(100vw - 48px);max-height:min(420px,70vh);display:flex;flex-direction:column;background:var(--surface-container-high);border-radius:var(--shape-xl);box-shadow:var(--el-3);overflow:hidden;z-index:var(--z-dialog);animation:command-palette-in var(--dur-3, .2s) var(--ease)}@keyframes command-palette-in{0%{opacity:0;transform:translateY(-8px) scale(.98)}}.command-palette__search{display:flex;align-items:center;gap:var(--space-3);height:56px;padding:0 var(--space-5);border-bottom:1px solid var(--outline-variant);flex-shrink:0}.command-palette__input{flex:1;border:none;outline:none;background:none;font-family:var(--font-sans);font-size:var(--text-h3-size);color:var(--on-surface)}.command-palette__input::placeholder{color:var(--on-surface-variant)}.command-palette__list{padding:var(--space-2);overflow-y:auto}.command-palette__notice{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-5) 0}.command-palette__section+.command-palette__section{margin-top:var(--space-2)}.command-palette__title{margin:0;padding:var(--space-2) var(--space-3) var(--space-1);color:var(--on-surface-variant);font-size:var(--text-caption-size);font-weight:500;letter-spacing:.4px;text-transform:uppercase}.command-palette__rows{list-style:none;margin:0;padding:0}.command-palette__id{flex-shrink:0;color:var(--on-surface-variant);font-size:var(--text-caption-size);font-weight:500;font-variant-numeric:tabular-nums}.command-palette__item--active .command-palette__id{color:var(--on-primary-container)}.command-palette__item{display:flex;align-items:center;gap:var(--space-3);height:44px;padding:0 var(--space-3);border-radius:var(--shape-sm);color:var(--on-surface);cursor:pointer}.command-palette__item--active{background:var(--primary-container);color:var(--on-primary-container)}.command-palette__label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.command-palette__hint{color:var(--on-surface-variant);font-size:var(--text-caption-size)}.command-palette__empty{margin:0;padding:var(--space-2) var(--space-3) var(--space-3);color:var(--on-surface-variant);font-size:var(--text-body-size)}.field{display:flex;flex-direction:column;gap:6px;font-family:var(--font-sans)}.field__label-row{display:flex;align-items:baseline;justify-content:space-between}.field__label{font-size:13px;font-weight:500;color:var(--on-surface-variant)}.field__counter,.field__help{font-size:12px;color:var(--on-surface-variant)}.field__error{font-size:12px;color:var(--error-40)}.input{box-sizing:border-box;width:100%;height:40px;padding:0 12px;border:1px solid var(--outline-variant);border-radius:var(--shape-xs);background-color:var(--surface-container-lowest);color:var(--on-surface);font-family:var(--font-sans);font-size:15px;transition:border-color var(--dur-2) var(--ease),box-shadow var(--dur-2) var(--ease)}.input::placeholder{color:var(--on-surface-variant)}.input:focus{outline:none;border-color:var(--primary-40);box-shadow:inset 0 0 0 1px var(--primary-40)}.input--error{border-color:var(--error-40)}.text-field .field__label{font-size:15px;color:var(--on-surface);transition:color var(--dur-2) var(--ease)}.text-field:focus-within .field__label{color:var(--primary-40)}.text-field .field__help,.text-field .field__counter{font-size:15px;color:var(--on-surface-variant)}.text-field .field__error{font-size:15px;color:var(--error-40)}.text-field .input{height:48px;width:100%;background:var(--surface-container-lowest);border:1px solid var(--outline-variant);border-radius:var(--shape-xs);padding:0 12px;font-family:var(--font-sans);font-size:15px;color:var(--on-surface);transition:border-color var(--dur-2) var(--ease),border-width var(--dur-2) var(--ease)}.text-field .input::placeholder{color:var(--on-surface-variant)}.text-field .input:focus{border:2px solid var(--primary-40);outline:none;padding:0 11px}.text-field .input--error{border:2px solid var(--error-40);padding:0 11px}.text-field .input--error:focus{border:2px solid var(--error-40);padding:0 11px}.text-field .input-with-icon{position:relative}.text-field .input-with-icon .input{padding-right:44px}.text-field .input-with-icon .input:focus,.text-field .input-with-icon .input--error{padding-right:43px}.text-field .input-with-icon__toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;padding:4px;display:flex;cursor:pointer;color:var(--neutral-40);border-radius:var(--shape-xs)}.text-field .input-with-icon__toggle:hover{color:var(--on-surface)}.text-field .input-with-icon__toggle:focus-visible{outline:2px solid var(--primary-40);outline-offset:2px}.input-with-icon{position:relative}.input-with-icon__toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);display:flex;padding:4px;border:none;background:none;color:var(--on-surface-variant);cursor:pointer}.auth-shell{position:relative;min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-5);padding:var(--space-5)}.auth-shell__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;pointer-events:none}.auth-shell__blob{position:absolute;width:55vmin;height:55vmin;max-width:480px;max-height:480px}.auth-shell__blob--tl{top:-12vmin;left:-12vmin}.auth-shell__blob--tl2{top:-6vmin;left:14vmin;width:28vmin;height:28vmin;max-width:240px;max-height:240px}.auth-shell__blob--br{bottom:-12vmin;right:-12vmin}.auth-shell__blob--br2{bottom:-4vmin;right:16vmin;width:24vmin;height:24vmin;max-width:200px;max-height:200px}.auth-shell__brand{display:flex;align-items:center;gap:12px}.auth-shell__wordmark{font-weight:700;color:var(--primary-40)}.auth-shell__card{width:400px;max-width:100%;background:var(--surface-container-low);border-radius:var(--shape-xl);box-shadow:var(--el-2);padding:40px 36px;display:flex;flex-direction:column;gap:var(--space-4);box-sizing:border-box}.snackbar{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;width:max-content;max-width:480px;padding:14px 16px;background-color:var(--inverse-surface);color:var(--on-inverse-surface);border-radius:var(--shape-sm);box-shadow:var(--el-2);font-family:var(--font-sans);font-size:var(--text-body-size);line-height:var(--text-body-line);z-index:var(--z-toast);animation:snackbar-in .2s var(--ease)}.snackbar__message{flex:1 1 auto;min-width:0;overflow-wrap:break-word}.snackbar__close{flex:0 0 auto;-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;padding:0;width:24px;height:24px;border:none;border-radius:var(--shape-full);background:transparent;color:inherit;font:inherit;font-size:18px;line-height:1;cursor:pointer;transition:background-color .15s ease}.snackbar__close:hover{background-color:#ffffff1f}.snackbar__close:focus-visible{outline:2px solid var(--primary-60);outline-offset:2px}@keyframes snackbar-in{0%{opacity:0;transform:translate(-50%,12px)}}:root{--ocean-900: #073a6b;--ocean-700: #0a4c8c;--ocean-500: #2ea9dc;--ocean-100: #e8f1f8;--teal-700: #0e7c86;--teal-100: #e0f4f5;--kelp-700: #4f7a1e;--kelp-500: #76b82a;--kelp-100: #eff6e4;--cream-100: #fbf3d9;--ink-900: #1f2937;--slate-500: #6b7280;--border-300: #d1d5db;--bg-100: #f3f4f6;--surface-0: #ffffff;--success: #4f7a1e;--warning: #b45309;--error: #b91c1c;--info: #0b6e99;--color-primary: var(--ocean-700);--color-secondary: var(--teal-700);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-full: 999px;--shadow-1: 0 1px 3px rgba(7, 58, 107, .1);--shadow-2: 0 4px 12px rgba(7, 58, 107, .14);--shadow-3: 0 12px 32px rgba(7, 58, 107, .2);--font-sans: Roboto, "Segoe UI", Helvetica, Arial, sans-serif;--ease: cubic-bezier(.2, 0, 0, 1);--dur-1: .1s;--dur-2: .15s;--dur-3: .2s}:root{--text-display-size: 40px;--text-display-line: 48px;--text-h1-size: 28px;--text-h1-line: 36px;--text-h2-size: 22px;--text-h2-line: 30px;--text-h3-size: 18px;--text-h3-line: 26px;--text-body-size: 15px;--text-body-line: 22px;--text-label-size: 13px;--text-label-line: 18px;--text-caption-size: 12px;--text-caption-line: 16px}@font-face{font-family:Roboto;src:url(/fonts/Roboto-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Roboto;src:url(/fonts/Roboto-Medium.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Roboto;src:url(/fonts/Roboto-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}:root{--z-topbar: 100;--z-dropdown: 400;--z-fab: 500;--z-dialog-overlay: 900;--z-dialog: 1000;--z-toast: 1100}:root{--primary-95: #e8f1f8;--primary-90: #d3e6f5;--primary-80: #9dc7e8;--primary-60: #2ea9dc;--primary-40: #0a4c8c;--primary-30: #073a6b;--on-primary: #ffffff;--primary-container: #d3e6f5;--on-primary-container: #073a6b;--secondary-95: #e0f4f5;--secondary-40: #0e7c86;--secondary-30: #0a5f67;--on-secondary: #ffffff;--secondary-container: #e0f4f5;--on-secondary-container: #0b4247;--tertiary-95: #eff6e4;--tertiary-60: #76b82a;--tertiary-40: #4f7a1e;--tertiary-30: #3b5b16;--on-tertiary: #ffffff;--tertiary-container: #eff6e4;--on-tertiary-container: #2c4812;--warning-40: #b45309;--warning-container: #fbf3d9;--on-warning-container: #7a3a05;--info-40: #0b6e99;--info-container: #dff0f8;--on-info-container: #06405a;--error-40: #b91c1c;--on-error: #ffffff;--error-container: #fbe9e7;--on-error-container: #601410;--neutral-40: #6b7280;--neutral-container: #edf2f6;--on-neutral-container: #3a4250;--surface: #fbfdff;--surface-container-lowest: #ffffff;--surface-container-low: #f3f7fa;--surface-container: #edf2f6;--surface-container-high: #e7edf2;--surface-container-highest: #e1e8ed;--inverse-surface: #2c3540;--on-inverse-surface: #f1f4f7;--on-surface: #1f2937;--on-surface-variant: #6b7280;--outline: #79828c;--outline-variant: #d1d5db;--shape-xs: 4px;--shape-sm: 8px;--shape-md: 12px;--shape-lg: 16px;--shape-xl: 28px;--shape-full: 999px;--el-1: 0 1px 2px rgba(16, 24, 32, .3), 0 1px 3px 1px rgba(16, 24, 32, .15);--el-2: 0 1px 2px rgba(16, 24, 32, .3), 0 3px 8px 2px rgba(16, 24, 32, .15);--el-3: 0 1px 3px rgba(16, 24, 32, .3), 0 5px 12px 4px rgba(16, 24, 32, .15)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--text-body-size);line-height:var(--text-body-line);color:var(--on-surface);background:var(--surface);-webkit-font-smoothing:antialiased}h1,h2,h3,p,figure{margin:0}a{color:var(--primary-40);text-decoration:none}a:hover{color:var(--primary-30)}button{font-family:inherit}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--primary-60);outline-offset:2px}:focus:not(:focus-visible){outline:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--space-3);top:-48px;z-index:1200;background:var(--primary-40);color:var(--on-primary);padding:10px 16px;border-radius:var(--shape-sm);transition:top var(--dur-2) var(--ease)}.skip-link:focus{top:var(--space-3)}table{font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.page{min-height:100%;display:flex;flex-direction:column}.page__body{flex:1;box-sizing:border-box;width:100%;max-width:1200px;margin:0 auto;padding:var(--space-6) var(--space-5);display:flex;flex-direction:column;gap:var(--space-5)}.h1{font-size:var(--text-h1-size);line-height:var(--text-h1-line);font-weight:700;color:var(--on-surface)}.narrow-notice{display:none}@media(max-width:1023px){.product-shell{display:none}.narrow-notice{display:flex;align-items:center;justify-content:center;padding:var(--space-6) var(--space-4);text-align:center;color:var(--on-surface-variant)}}:root{--zoom-duration: .32s;--scroll-distance: 32px}::view-transition-old(root),::view-transition-new(root){animation-duration:var(--zoom-duration);animation-timing-function:var(--ease);animation-fill-mode:both}:root[data-zoom=in]::view-transition-old(root){animation-name:zoom-fade-out,zoom-leave-larger}:root[data-zoom=in]::view-transition-new(root){animation-name:zoom-fade-in,zoom-arrive-smaller}:root[data-zoom=out]::view-transition-old(root){animation-name:zoom-fade-out,zoom-leave-smaller}:root[data-zoom=out]::view-transition-new(root){animation-name:zoom-fade-in,zoom-arrive-larger}:root[data-zoom=up]::view-transition-old(root){animation-name:zoom-fade-out,scroll-leave-down}:root[data-zoom=up]::view-transition-new(root){animation-name:zoom-fade-in,scroll-arrive-from-above}:root[data-zoom=down]::view-transition-old(root){animation-name:zoom-fade-out,scroll-leave-up}:root[data-zoom=down]::view-transition-new(root){animation-name:zoom-fade-in,scroll-arrive-from-below}.zoom-view{transform-origin:50% 40%}:root[data-zoom-mode=css][data-zoom=in] .zoom-view{animation:zoom-fade-in var(--zoom-duration) var(--ease) both,zoom-arrive-smaller var(--zoom-duration) var(--ease) both}:root[data-zoom-mode=css][data-zoom=out] .zoom-view{animation:zoom-fade-in var(--zoom-duration) var(--ease) both,zoom-arrive-larger var(--zoom-duration) var(--ease) both}:root[data-zoom-mode=css][data-zoom=up] .zoom-view{animation:zoom-fade-in var(--zoom-duration) var(--ease) both,scroll-arrive-from-above var(--zoom-duration) var(--ease) both}:root[data-zoom-mode=css][data-zoom=down] .zoom-view{animation:zoom-fade-in var(--zoom-duration) var(--ease) both,scroll-arrive-from-below var(--zoom-duration) var(--ease) both}@keyframes zoom-fade-in{0%{opacity:0}}@keyframes zoom-fade-out{to{opacity:0}}@keyframes zoom-arrive-smaller{0%{transform:scale(.96)}}@keyframes zoom-arrive-larger{0%{transform:scale(1.04)}}@keyframes zoom-leave-larger{to{transform:scale(1.04)}}@keyframes zoom-leave-smaller{to{transform:scale(.96)}}@keyframes scroll-arrive-from-above{0%{transform:translateY(calc(-1 * var(--scroll-distance)))}}@keyframes scroll-arrive-from-below{0%{transform:translateY(var(--scroll-distance))}}@keyframes scroll-leave-down{to{transform:translateY(var(--scroll-distance))}}@keyframes scroll-leave-up{to{transform:translateY(calc(-1 * var(--scroll-distance)))}}
