:root{--font-family-base: -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;--font-size-xs: 11px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 20px;--font-size-xl: 28px;--font-size-2xl: 36px;--font-size-3xl: 48px;--font-weight-thin: 200;--font-weight-regular: 400;--font-weight-semibold: 600;--letter-spacing-ja: -.02em;--letter-spacing-label: 1.5px;--line-height-ja-body: 1.7;--line-height-ja-heading: 1.35;--line-height-label: 1;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 40px;--space-3xl: 64px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-pill: 999px;--spring-default: cubic-bezier(.175, .885, .32, 1.1);--spring-bouncy: cubic-bezier(.34, 1.56, .64, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--duration-fast: .2s;--duration-normal: .35s;--duration-slow: .5s;--duration-celebration: .8s;--z-base: 0;--z-sticky: 100;--z-drawer: 200;--z-overlay: 300;--z-modal: 400;--z-snackbar: 500;--z-toast: 600;--z-popover: 700;--z-tooltip: 800;--focus-ring-width: 2px;--focus-ring-offset: 2px;--focus-ring-style: solid;--checkbox-size: 20px;--tap-target-min: 44px}[data-theme=night-sky]{--bg-primary: #0D1117;--bg-surface: #161B22;--bg-elevated: #1C2128;--border: #484F58;--border-strong: #6E7681;--text-primary: #E6EDF3;--text-secondary: #9BA7B4;--text-muted: #7A8593;--text-placeholder: #9BA7B4;--accent: #79C0FF;--accent-subtle: rgba(121, 192, 255, .14);--accent-hover: #A5D6FF;--button-primary-bg: #1A5FC8;--button-primary-text: #FFFFFF;--button-disabled-bg: #1F2937;--button-disabled-text: #6E7681;--button-disabled-border: #2A3441;--success: #3FB950;--success-subtle: rgba(63, 185, 80, .12);--warning: #D29922;--danger: #F85149;--danger-subtle: rgba(248, 81, 73, .08);--danger-solid: #DA3633;--info: #58A6FF;--cat-work: #58A6FF;--cat-health: #E8A855;--cat-learn: #A5D6FF;--cat-hobby: #BF7AF0;--cat-social: #F4A6C4;--cat-other: #8B949E;--shadow-none: none;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--shadow-md: 0 4px 12px rgba(0, 0, 0, .45);--shadow-lg: 0 -4px 16px rgba(0, 0, 0, .55);--shadow-drawer: 4px 0 16px rgba(0, 0, 0, .55);--focus-ring-color: var(--accent)}[data-theme=dawn]{--bg-primary: #FBF8F4;--bg-surface: #F4EFE8;--bg-elevated: #ECE5DB;--border: #D4C9B8;--border-strong: #B8A88F;--text-primary: #2B2319;--text-secondary: #5A4E3E;--text-muted: #7A6F5E;--text-placeholder: #5A4E3E;--accent: #8F4D1F;--accent-subtle: rgba(143, 77, 31, .12);--accent-hover: #B56B3A;--button-primary-bg: #8F4D1F;--button-primary-text: #FBF8F4;--button-disabled-bg: #D4C9B8;--button-disabled-text: #7A6F5E;--button-disabled-border: #C2B59E;--success: #2E7D32;--success-subtle: rgba(46, 125, 50, .14);--warning: #C17900;--danger: #B32121;--danger-subtle: rgba(179, 33, 33, .1);--danger-solid: #A01818;--info: #0B5FA0;--cat-work: #0B5FA0;--cat-health: #C17900;--cat-learn: #1F7A8C;--cat-hobby: #8F4D9C;--cat-social: #B23A5F;--cat-other: #7A6F5E;--shadow-none: none;--shadow-sm: 0 1px 2px rgba(80, 60, 30, .1);--shadow-md: 0 4px 12px rgba(80, 60, 30, .14);--shadow-lg: 0 -4px 16px rgba(80, 60, 30, .16);--shadow-drawer: 4px 0 16px rgba(80, 60, 30, .16);--focus-ring-color: var(--accent)}[data-theme=harajuku-light]{--bg-primary: #FFF5F7;--bg-surface: #FFEDF0;--bg-elevated: #FFE2E8;--border: #F4C4D0;--border-strong: #E893A8;--text-primary: #3B1F2A;--text-secondary: #6B4556;--text-muted: #8B6677;--text-placeholder: #6B4556;--accent: #D14C7A;--accent-subtle: rgba(209, 76, 122, .12);--accent-hover: #E66A94;--button-primary-bg: #D14C7A;--button-primary-text: #FFFFFF;--button-disabled-bg: #F4C4D0;--button-disabled-text: #8B6677;--button-disabled-border: #EBAABB;--success: #2E8B57;--success-subtle: rgba(46, 139, 87, .14);--warning: #C88F00;--danger: #C01C4A;--danger-subtle: rgba(192, 28, 74, .1);--danger-solid: #A01238;--info: #4A7FB5;--cat-work: #4A7FB5;--cat-health: #C88F00;--cat-learn: #6B5BA5;--cat-hobby: #B5428F;--cat-social: #D14C7A;--cat-other: #8B6677;--shadow-none: none;--shadow-sm: 0 1px 2px rgba(120, 40, 70, .1);--shadow-md: 0 4px 12px rgba(120, 40, 70, .14);--shadow-lg: 0 -4px 16px rgba(120, 40, 70, .16);--shadow-drawer: 4px 0 16px rgba(120, 40, 70, .16);--focus-ring-color: var(--accent)}[data-theme=harajuku-dark]{--bg-primary: #1A0D14;--bg-surface: #241219;--bg-elevated: #2E1721;--border: #4A2330;--border-strong: #6B3347;--text-primary: #F5E8EE;--text-secondary: #C9A8B5;--text-muted: #9B7B88;--text-placeholder: #C9A8B5;--accent: #E8709D;--accent-subtle: rgba(232, 112, 157, .16);--accent-hover: #F590B7;--button-primary-bg: #B53572;--button-primary-text: #FFFFFF;--button-disabled-bg: #2E1721;--button-disabled-text: #6B3347;--button-disabled-border: #3E1E2B;--success: #50C878;--success-subtle: rgba(80, 200, 120, .14);--warning: #E8A855;--danger: #FF5577;--danger-subtle: rgba(255, 85, 119, .12);--danger-solid: #E04060;--info: #7AAFE8;--cat-work: #7AAFE8;--cat-health: #E8A855;--cat-learn: #C8A8F0;--cat-hobby: #F0A8D0;--cat-social: #FF90B0;--cat-other: #9B7B88;--shadow-none: none;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .45);--shadow-md: 0 4px 12px rgba(0, 0, 0, .55);--shadow-lg: 0 -4px 16px rgba(0, 0, 0, .6);--shadow-drawer: 4px 0 16px rgba(0, 0, 0, .6);--focus-ring-color: var(--accent)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-family-base);font-size:var(--font-size-base);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}#app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.app-root{flex:1;display:flex;flex-direction:column}button,input,textarea,select{font:inherit;color:inherit}button{background:none;border:none;cursor:pointer}a{color:var(--accent);text-decoration:none}:focus-visible{outline:var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);outline-offset:var(--focus-ring-offset);border-radius:inherit}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:0ms!important;animation-iteration-count:1!important;transition-duration:0ms!important}}.route-fallback{flex:1;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);min-height:100vh;min-height:100dvh}.s00{flex:1;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--space-lg);padding-bottom:max(var(--space-lg),env(safe-area-inset-bottom));min-height:100svh;background:var(--bg-primary);overflow-y:auto}.s00-center{position:absolute;top:50%;left:0;right:0;transform:translateY(calc(-50% - 60px));display:flex;flex-direction:column;align-items:center}.s00-logo{font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold);letter-spacing:3px;color:var(--accent);line-height:1;margin:0}.s00-tagline{margin-top:var(--space-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-regular);color:var(--text-muted);letter-spacing:var(--letter-spacing-ja);line-height:var(--line-height-ja-body)}.s00-cta{position:absolute;left:var(--space-lg);right:var(--space-lg);bottom:calc(76px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:12px}.s00-cta-primary,.s00-cta-secondary{min-height:52px;padding:0 var(--space-md);border-radius:var(--radius-lg);font-size:var(--font-size-base);letter-spacing:var(--letter-spacing-ja);line-height:1.25;min-width:44px;white-space:normal;transition:transform var(--duration-fast) var(--spring-default)}.s00-cta-primary{background:var(--button-primary-bg);color:var(--button-primary-text);font-weight:var(--font-weight-semibold);border:none}.s00-cta-primary:disabled,.s00-cta-primary[aria-disabled=true]{background:var(--button-disabled-bg);color:var(--button-disabled-text);pointer-events:none;cursor:not-allowed}.s00-cta-secondary{background:transparent;color:var(--text-primary);font-weight:var(--font-weight-regular);border:1px solid var(--border-strong)}.s00-cta-primary:active,.s00-cta-secondary:active{transform:scale(.98)}@media (max-height: 560px){.s00{justify-content:space-between;padding-top:calc(var(--space-xl) + env(safe-area-inset-top,0px));padding-bottom:calc(var(--space-xl) + env(safe-area-inset-bottom,0px))}.s00-center{position:static;transform:none}.s00-cta{position:static;left:auto;right:auto;bottom:auto;width:100%}}.error-boundary{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;padding:var(--space-lg);text-align:center;gap:var(--space-sm)}.error-boundary__icon{font-size:2.5rem;line-height:1;margin:0 0 var(--space-xs)}.error-boundary__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0 0 var(--space-sm)}.error-boundary__message{font-size:var(--font-size-sm);color:var(--text-muted);margin:0 0 var(--space-lg);word-break:break-word;max-width:32em}.error-boundary__actions{display:flex;flex-direction:column;gap:var(--space-sm);align-items:stretch;width:100%;max-width:18rem}.error-boundary__retry,.error-boundary__home{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);border-radius:var(--radius-pill);padding:var(--space-sm) var(--space-lg);min-height:44px;min-width:44px;cursor:pointer}.error-boundary__retry{color:var(--bg-primary);background:var(--accent);border:1px solid var(--accent)}.error-boundary__home{color:var(--accent);background:transparent;border:1px solid var(--accent)}.error-boundary__retry:focus-visible,.error-boundary__home:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
