.toast-viewport{right:var(--space-lg);bottom:var(--space-lg);z-index:var(--z-toast);gap:var(--space-xs);width:min(22rem, calc(100vw - var(--space-lg) * 2));flex-direction:column;display:flex;position:fixed}.toast{align-items:flex-start;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface-raised);box-shadow:var(--shadow-md);font-size:var(--text-sm);color:var(--color-ink);animation:toast-in var(--duration-normal) var(--ease-out-expo);display:flex}.toast--success{border-left:3px solid var(--color-success)}.toast--danger{border-left:3px solid var(--color-danger)}.toast--info{border-left:3px solid var(--color-info)}.toast--neutral{border-left:3px solid var(--color-border-strong)}.toast__message{flex:1}.toast__close{color:var(--color-ink-muted);font-size:var(--text-base);cursor:pointer;background:0 0;border:none;flex-shrink:0;line-height:1}.toast__close:hover{color:var(--color-ink)}.toast__close:focus-visible{box-shadow:var(--shadow-focus-indigo);border-radius:var(--radius-sm);outline:none}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-indigo);border-radius:50%;animation:.7s linear infinite spinner-rotate;display:inline-block}.spinner--sm{border-width:2px;width:1rem;height:1rem}.spinner--md{border-width:2px;width:1.5rem;height:1.5rem}.spinner--lg{border-width:3px;width:2.5rem;height:2.5rem}@keyframes spinner-rotate{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:1.6s}}.app-shell{grid-template-columns:var(--sidebar-width) 1fr;min-height:100%;display:grid}.app-sidebar{background:var(--color-indigo);color:var(--color-ink-on-indigo);padding:var(--space-lg) var(--space-md);flex-direction:column;display:flex}.app-sidebar__brand{padding:0 var(--space-sm) var(--space-lg);font-size:var(--text-lg);font-weight:var(--font-weight-semibold);letter-spacing:.02em}.app-sidebar__nav{gap:var(--space-3xs);flex-direction:column;display:flex}.app-sidebar__link{padding:var(--space-sm);border-radius:var(--radius-sm);color:oklch(90% .02 260);font-size:var(--text-sm);font-weight:var(--font-weight-medium);transition:background-color var(--duration-fast) var(--ease-out-expo), color var(--duration-fast) var(--ease-out-expo), border-color var(--duration-fast) var(--ease-out-expo);border-left:3px solid #0000;align-items:center;text-decoration:none;display:flex}.app-sidebar__link:hover{color:var(--color-ink-on-indigo);background:oklch(100% 0 0/.08)}.app-sidebar__link:focus-visible{outline:2px solid var(--color-gold);outline-offset:-2px}.app-sidebar__link--active{color:var(--color-ink-on-indigo);border-left-color:var(--color-gold);background:oklch(100% 0 0/.1)}.app-sidebar__footer{padding-top:var(--space-md);border-top:1px solid oklch(100% 0 0/.12);margin-top:auto}.app-sidebar__account{gap:var(--space-3xs);padding:0 var(--space-sm);flex-direction:column;display:flex}.app-sidebar__org{font-size:var(--text-xs);color:oklch(80% .02 260)}.app-sidebar__user{font-size:var(--text-sm);font-weight:var(--font-weight-medium)}.app-sidebar__logout{margin-top:var(--space-xs);color:var(--color-gold);font-size:var(--text-xs);cursor:pointer;text-underline-offset:.2em;background:0 0;border:none;align-self:flex-start;padding:0;text-decoration:underline}.app-sidebar__logout:hover{color:var(--color-gold-strong)}.app-sidebar__logout:focus-visible{outline:2px solid var(--color-gold);outline-offset:2px;border-radius:var(--radius-sm)}.app-main{min-width:0;padding:var(--space-xl) var(--space-2xl);overflow-y:auto}@media (width<=768px){.app-shell{grid-template-rows:auto 1fr;grid-template-columns:1fr}.app-sidebar{padding:var(--space-sm) var(--space-md);flex-direction:row;align-items:center}.app-sidebar__nav{flex-direction:row}.app-sidebar__footer{border-top:none;margin-top:0;margin-left:auto;padding-top:0}.app-main{padding:var(--space-lg) var(--space-md)}}.btn{justify-content:center;align-items:center;gap:var(--space-xs);border-radius:var(--radius-sm);font-weight:var(--font-weight-medium);white-space:nowrap;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out-expo), border-color var(--duration-fast) var(--ease-out-expo), box-shadow var(--duration-fast) var(--ease-out-expo), transform var(--duration-fast) var(--ease-out-expo), opacity var(--duration-fast) var(--ease-out-expo);border:1px solid #0000;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{cursor:not-allowed;opacity:.5}.btn:focus-visible{outline:none}.btn--md{padding:var(--space-xs) var(--space-lg);font-size:var(--text-sm)}.btn--sm{padding:var(--space-3xs) var(--space-md);font-size:var(--text-xs)}.btn--primary{background:var(--color-indigo);color:var(--color-ink-on-indigo)}.btn--primary:hover:not(:disabled){background:var(--color-indigo-strong)}.btn--primary:focus-visible{box-shadow:var(--shadow-focus-indigo)}.btn--gold{background:var(--color-gold);color:var(--color-ink-on-gold)}.btn--gold:hover:not(:disabled){background:var(--color-gold-strong)}.btn--gold:focus-visible{box-shadow:var(--shadow-focus-gold)}.btn--secondary{background:var(--color-surface-raised);border-color:var(--color-border-strong);color:var(--color-ink)}.btn--secondary:hover:not(:disabled){border-color:var(--color-indigo);color:var(--color-indigo)}.btn--secondary:focus-visible{box-shadow:var(--shadow-focus-indigo)}.btn--ghost{color:var(--color-ink-muted);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--color-surface-sunken);color:var(--color-ink)}.btn--ghost:focus-visible{box-shadow:var(--shadow-focus-indigo)}.btn--danger{background:var(--color-surface-raised);border-color:var(--color-danger);color:var(--color-danger)}.btn--danger:hover:not(:disabled){background:var(--color-danger);color:var(--color-ink-on-indigo)}.btn--danger:focus-visible{box-shadow:0 0 0 3px var(--color-danger-soft), 0 0 0 1px var(--color-danger)}.btn__icon,.btn__label{display:inline-flex}.field{gap:var(--space-2xs);flex-direction:column;display:flex}.field__label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-ink)}.field__control{width:100%;padding:var(--space-xs) var(--space-sm);background:var(--color-surface-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-ink);font-size:var(--text-sm);transition:border-color var(--duration-fast) var(--ease-out-expo), box-shadow var(--duration-fast) var(--ease-out-expo)}.field__control::placeholder{color:var(--color-ink-faint)}.field__control:hover:not(:disabled){border-color:var(--color-ink-faint)}.field__control:focus-visible{border-color:var(--color-indigo);box-shadow:var(--shadow-focus-indigo);outline:none}.field__control:disabled{background:var(--color-surface-sunken);color:var(--color-ink-faint);cursor:not-allowed}.field__control--error{border-color:var(--color-danger)}.field__control--error:focus-visible{border-color:var(--color-danger);box-shadow:0 0 0 3px var(--color-danger-soft), 0 0 0 1px var(--color-danger)}.field__hint{font-size:var(--text-xs);color:var(--color-ink-muted);margin:0}.field__error{font-size:var(--text-xs);color:var(--color-danger);margin:0}.auth-page{min-height:100%;padding:var(--space-lg);background:radial-gradient(circle at 15% 10%, var(--color-indigo-soft) 0%, transparent 45%), radial-gradient(circle at 85% 90%, var(--color-gold-soft) 0%, transparent 40%), var(--color-surface);justify-content:center;align-items:center;display:flex}.auth-card{width:100%;max-width:24rem;padding:var(--space-2xl) var(--space-xl);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border-top:3px solid var(--color-indigo)}.auth-card__brand{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);letter-spacing:.08em;color:var(--color-indigo);margin-bottom:var(--space-lg)}.auth-card__title{font-size:var(--text-xl);margin-bottom:var(--space-2xs)}.auth-card__subtitle{color:var(--color-ink-muted);font-size:var(--text-sm);margin-bottom:var(--space-lg)}.auth-form{gap:var(--space-md);margin-top:var(--space-lg);flex-direction:column;display:flex}.auth-form__error{padding:var(--space-sm);border-radius:var(--radius-sm);background:var(--color-danger-soft);color:var(--color-danger);font-size:var(--text-sm);margin:0}.auth-form__submit{margin-top:var(--space-xs)}.auth-card__footer{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--color-border);text-align:center;font-size:var(--text-sm);color:var(--color-ink-muted)}:root{--color-surface:oklch(98% .006 95);--color-surface-raised:oklch(99.5% .004 95);--color-surface-sunken:oklch(96% .008 95);--color-surface-overlay:oklch(22% .01 95/.45);--color-ink:oklch(22% .01 95);--color-ink-muted:oklch(48% .012 95);--color-ink-faint:oklch(65% .008 95);--color-ink-on-indigo:oklch(98% .005 260);--color-ink-on-gold:oklch(20% .02 75);--color-border:oklch(88% .01 95);--color-border-strong:oklch(78% .012 95);--color-indigo:oklch(38% .08 260);--color-indigo-strong:oklch(28% .07 260);--color-indigo-soft:oklch(93% .02 260);--color-gold:oklch(64% .12 75);--color-gold-strong:oklch(56% .13 75);--color-gold-soft:oklch(93% .035 75);--color-neutral:var(--color-ink-muted);--color-neutral-soft:var(--color-surface-sunken);--color-info:oklch(55% .06 230);--color-info-soft:oklch(94% .018 230);--color-accent:var(--color-indigo);--color-accent-soft:var(--color-indigo-soft);--color-success:oklch(56% .12 150);--color-success-soft:oklch(94% .03 150);--color-warning:oklch(66% .13 80);--color-warning-soft:oklch(95% .035 80);--color-danger:oklch(52% .18 25);--color-danger-soft:oklch(95% .03 25);--font-sans:"Noto Sans JP", system-ui, -apple-system, "Hiragino Sans", sans-serif;--text-xs:clamp(.75rem, .72rem + .15vw, .8rem);--text-sm:clamp(.875rem, .84rem + .15vw, .95rem);--text-base:clamp(1rem, .94rem + .3vw, 1.0625rem);--text-lg:clamp(1.125rem, 1.05rem + .4vw, 1.25rem);--text-xl:clamp(1.5rem, 1.3rem + 1vw, 2rem);--text-hero:clamp(2rem, 1.5rem + 2.5vw, 3.5rem);--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--leading-tight:1.25;--leading-normal:1.6;--space-3xs:.125rem;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2.5rem;--space-2xl:3.5rem;--space-section:clamp(3rem, 2.5rem + 3vw, 6rem);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:999px;--shadow-sm:0 1px 2px oklch(22% .01 95/.06), 0 1px 1px oklch(22% .01 95/.04);--shadow-md:0 8px 24px oklch(22% .01 95/.1), 0 2px 6px oklch(22% .01 95/.06);--shadow-focus-gold:0 0 0 3px var(--color-gold-soft), 0 0 0 1px var(--color-gold);--shadow-focus-indigo:0 0 0 3px var(--color-indigo-soft), 0 0 0 1px var(--color-indigo);--duration-fast:.15s;--duration-normal:.3s;--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--sidebar-width:15rem;--z-dialog:100;--z-toast:200}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}html{accent-color:var(--color-indigo)}body{background:var(--color-surface);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--font-weight-regular);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}h1,h2,h3,h4{font-weight:var(--font-weight-semibold);line-height:var(--leading-tight);color:var(--color-ink);margin:0}h1{font-size:var(--text-xl)}h2{font-size:var(--text-lg)}p{margin:0}a{color:var(--color-indigo);-webkit-text-decoration-color:var(--color-border-strong);text-decoration-color:var(--color-border-strong);text-underline-offset:.15em}a:hover{text-decoration-color:currentColor}button,input,select,textarea{font:inherit;color:inherit}ul,ol{margin:0;padding:0;list-style:none}img,svg{max-width:100%;display:block}::selection{background:var(--color-gold-soft);color:var(--color-ink)}:focus-visible{outline:2px solid var(--color-gold);outline-offset:2px}.route-loading{padding:var(--space-2xl) 0;justify-content:center;display:flex}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
