.fp-nav{position:fixed;inset:0 auto 0 0;z-index:50;height:100dvh;width:min(var(--nav-width) + 32px,86vw);display:flex;flex-direction:column;padding:var(--space-3) var(--space-2);gap:2px;background:var(--nav-bg);color:var(--nav-ink);font-family:var(--font-sans);transform:translateX(-100%);transition:transform .16s ease}.fp-nav[data-open=true]{transform:translateX(0);box-shadow:var(--shadow-modal)}@media (min-width:1024px){.fp-nav{width:var(--nav-width);transform:none;transition:width .16s ease;box-shadow:none}.fp-nav[data-collapsed=true]{width:var(--nav-width-collapsed)}}.fp-nav-scrim{position:fixed;inset:0;z-index:40;background:var(--scrim)}@media (min-width:1024px){.fp-nav-scrim{display:none}}.fp-nav__brand{padding:4px var(--space-2) var(--space-3);min-height:46px}.fp-nav__brand,.fp-nav__brand a{display:flex;align-items:center;gap:10px}.fp-nav__brand a{min-width:0;color:inherit;text-decoration:none;border-radius:var(--space-1)}.fp-nav__brand img{width:32px;height:32px;flex:none;border-radius:6px;box-shadow:0 0 0 1px var(--nav-accent)}.fp-nav__name{color:var(--nav-ink-active);font:600 15px/20px var(--font-sans);letter-spacing:-.005em;white-space:nowrap}.fp-nav__close{margin-left:auto}@media (min-width:1024px){.fp-nav__close{display:none}.fp-nav[data-collapsed=true] .fp-nav__brand{padding-left:0;padding-right:0;justify-content:center}}.fp-nav__list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:2px;scrollbar-width:none}.fp-nav__list::-webkit-scrollbar{display:none}.fp-nav__sep{height:1px;flex:none;background:var(--nav-border);margin:6px var(--space-2)}.fp-nav__item{position:relative;display:flex;align-items:center;gap:12px;flex:none;width:100%;height:40px;padding:0 10px;border:0;border-radius:6px;background:transparent;color:var(--nav-ink);text-decoration:none;text-align:left;font:400 15px/20px var(--font-sans);cursor:pointer;transition:background-color .12s,color .12s}.fp-nav__item svg{flex:none;color:var(--nav-ink-muted)}.fp-nav__item:hover{background:var(--nav-hover)}.fp-nav__item[aria-current=page],.fp-nav__item[data-active=true]{background:var(--nav-active);color:var(--nav-ink-active);font-weight:600}.fp-nav__item[aria-current=page] svg,.fp-nav__item[data-active=true] svg{color:var(--nav-accent)}.fp-nav__item[aria-current=page]:before,.fp-nav__item[data-active=true]:before{content:"";position:absolute;left:-8px;top:8px;bottom:8px;width:3px;border-radius:0 2px 2px 0;background:var(--nav-accent)}.fp-nav__item:focus-visible{outline:2px solid var(--nav-accent);outline-offset:-2px}.fp-nav__badge{margin-left:auto;min-width:20px;height:18px;padding:0 6px;border-radius:999px;background:var(--nav-badge);color:var(--nav-accent);font:600 11px/18px var(--font-sans);text-align:center;font-variant-numeric:tabular-nums}@media (min-width:1024px){.fp-nav[data-collapsed=true] .fp-nav__badge,.fp-nav[data-collapsed=true] .fp-nav__label,.fp-nav[data-collapsed=true] .fp-nav__name,.fp-nav[data-collapsed=true] .fp-nav__user-text{display:none}.fp-nav[data-collapsed=true] .fp-nav__item{justify-content:center;padding:0}.fp-nav[data-collapsed=true] .fp-nav__user{justify-content:center;padding-left:0;padding-right:0}}.fp-nav__user-wrap{flex:none;margin-top:var(--space-2);border-top:1px solid var(--nav-border);padding-top:var(--space-2);display:flex;flex-direction:column;gap:2px}.fp-nav__user{display:flex;align-items:center;gap:10px;width:100%;padding:var(--space-2);border:0;border-radius:6px;background:transparent;color:inherit;text-align:left;cursor:pointer;transition:background-color .12s}.fp-nav__user:hover{background:var(--nav-hover)}.fp-nav__user:focus-visible{outline:2px solid var(--nav-accent);outline-offset:-2px}.fp-nav__user-text{min-width:0}.fp-nav__user-name{color:var(--nav-ink-active);font-size:14px;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fp-nav__user-role{color:var(--nav-ink-muted);font-size:12px;line-height:16px}.fp-avatar{width:28px;height:28px;flex:none;border-radius:999px;background:var(--brand-soft);color:var(--brand);display:inline-flex;align-items:center;justify-content:center;font:600 12px/1 var(--font-sans)}.fp-nav__user .fp-avatar{background:var(--nav-active);color:var(--nav-accent)}.fp-topbar{position:sticky;top:0;z-index:30;height:var(--topbar-height);gap:var(--space-3);padding:0 var(--space-4);background:hsl(var(--card));border-bottom:1px solid hsl(var(--border));font-family:var(--font-sans)}.fp-search,.fp-topbar{display:flex;align-items:center}.fp-search{flex:0 1 420px;gap:var(--space-2);height:var(--control-md);padding:0 10px;border:1px solid hsl(var(--border));border-radius:6px;background:hsl(var(--muted));color:hsl(var(--muted-foreground));font:400 14px/20px var(--font-sans);min-width:0;text-align:left;cursor:pointer}.fp-search:hover{border-color:var(--border-strong)}.fp-search>span:not(.fp-kbd){flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.fp-kbd{font:600 11px/16px var(--font-sans);color:hsl(var(--muted-foreground));border:1px solid hsl(var(--border));border-radius:4px;padding:0 5px;background:hsl(var(--card))}.fp-topbar__end{margin-left:auto;display:flex;align-items:center;gap:var(--space-1)}.fp-iconbtn{position:relative;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:6px;background:none;color:hsl(var(--foreground)/.72);cursor:pointer;transition:background-color .12s,color .12s}.fp-iconbtn:hover,.fp-iconbtn[data-state=open]{background:hsl(var(--muted));color:hsl(var(--foreground))}.fp-iconbtn .fp-dot{position:absolute;top:3px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--danger);color:var(--on-danger);font:600 10px/16px var(--font-sans);text-align:center;border:2px solid hsl(var(--card));box-sizing:content-box;font-variant-numeric:tabular-nums}.fp-iconbtn svg{flex:none}.fp-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--control-md);padding:0 var(--space-3);border:1px solid transparent;border-radius:6px;font:600 14px/20px var(--font-sans);white-space:nowrap;cursor:pointer;transition:background-color .12s,border-color .12s,color .12s}.fp-btn--primary{background:var(--brand);color:var(--on-brand)}.fp-btn--primary:hover,.fp-btn--primary[data-state=open]{background:var(--brand-hover)}.fp-btn--sm{height:var(--control-sm);padding:0 10px;font-size:13px}.fp-menu{z-index:80;min-width:200px;max-width:280px;padding:4px;background:hsl(var(--popover));color:hsl(var(--popover-foreground));border:1px solid hsl(var(--border));border-radius:8px;box-shadow:var(--shadow-pop);font-family:var(--font-sans)}.fp-menu__item{display:flex;align-items:center;gap:10px;width:100%;height:var(--control-md);padding:0 10px;border:0;border-radius:6px;background:transparent;color:inherit;text-decoration:none;text-align:left;font:400 14px/20px var(--font-sans);cursor:pointer;outline:none}.fp-menu__item svg{flex:none;color:hsl(var(--muted-foreground))}.fp-menu__item[data-highlighted]{background:hsl(var(--muted))}.fp-menu__item[data-active=true]{font-weight:600}.fp-menu__item[data-active=true] svg{color:var(--brand)}.fp-menu__item--danger,.fp-menu__item--danger svg{color:var(--danger)}.fp-menu__sep{height:1px;margin:4px 0;background:hsl(var(--border))}.fp-menu__label{padding:6px 10px 2px;font:600 12px/16px var(--font-sans);letter-spacing:.01em;color:hsl(var(--muted-foreground))}.fp-tabs{display:flex;gap:var(--space-6);overflow-x:auto;border-bottom:1px solid hsl(var(--border));font-family:var(--font-sans);scrollbar-width:none}.fp-tabs::-webkit-scrollbar{display:none}.fp-tab{position:relative;padding:10px 0;color:hsl(var(--foreground)/.72);font:600 14px/20px var(--font-sans);text-decoration:none;white-space:nowrap;transition:color .12s}.fp-tab:hover,.fp-tab[aria-current=page]{color:hsl(var(--foreground))}.fp-tab[aria-current=page]:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--brand)}@media (prefers-reduced-motion:reduce){.fp-btn,.fp-iconbtn,.fp-nav,.fp-nav__item,.fp-nav__user,.fp-tab{transition:none}}.fp-nav__close{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:6px;background:transparent;color:var(--nav-ink);cursor:pointer}.fp-nav__close:hover{background:var(--nav-hover)}.fp-nav__close:focus-visible{outline:2px solid var(--nav-accent);outline-offset:-2px}.fp-nav .fp-nav__collapse{display:none}@media (min-width:1024px){.fp-nav .fp-nav__collapse{display:flex}}.fp-shell{min-height:100vh;background:hsl(var(--background))}.fp-shell__main{transition:margin-left .16s ease}@media (min-width:1024px){.fp-shell__main{margin-left:var(--nav-width)}.fp-shell[data-collapsed=true] .fp-shell__main{margin-left:var(--nav-width-collapsed)}}@media (prefers-reduced-motion:reduce){.fp-shell__main{transition:none}}@media (min-width:1024px){.fp-topbar__menu{display:none}}@media (max-width:639px){.fp-kbd{display:none}.fp-topbar{gap:var(--space-2);padding:0 var(--space-3)}}@media (min-width:1024px){.fp-nav .fp-nav__close{display:none}}@media (max-width:639px){.fp-search{flex:none;width:var(--control-md);padding:0;justify-content:center}.fp-search>span{display:none}}@media (max-width:479px){.fp-topbar__timer{display:none}}.fp-field{display:flex;flex-direction:column;gap:6px;min-width:0}.fp-field__label{font:600 12px/16px var(--font-sans);letter-spacing:.01em;color:hsl(var(--foreground)/.72)}.fp-input{height:var(--control-md);width:100%;padding:0 10px;border:1px solid var(--border-strong);border-radius:6px;background:hsl(var(--card));color:hsl(var(--foreground));font:400 14px/20px var(--font-sans)}.fp-input::placeholder{color:hsl(var(--muted-foreground))}.fp-input:focus{outline:2px solid var(--focus);outline-offset:-1px;border-color:var(--focus)}.fp-input[aria-invalid=true]{border-color:var(--danger)}.fp-input-wrap{position:relative;display:flex;align-items:center}.fp-input--with-action{padding-right:38px}.fp-input-action{position:absolute;right:2px;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:4px;background:none;color:hsl(var(--muted-foreground));cursor:pointer}.fp-input-action:hover{color:hsl(var(--foreground));background:hsl(var(--muted))}.fp-btn--lg{height:var(--control-lg);padding:0 var(--space-4)}.fp-btn[disabled]{opacity:.5;cursor:not-allowed}.fp-link{color:var(--brand);font:600 13px/18px var(--font-sans);text-decoration:none}.fp-link:hover{text-decoration:underline}.fp-login{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-5);padding:var(--space-6) var(--space-4);background:hsl(var(--background));font-family:var(--font-sans)}.fp-login__panel{width:100%;max-width:400px;padding:var(--space-6);background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:8px}.fp-login__brand{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6)}.fp-login__crest{width:56px;height:56px;border-radius:8px}.fp-login__title{margin:0;font:600 20px/28px var(--font-sans);color:hsl(var(--foreground))}.fp-login__form{display:flex;flex-direction:column;gap:var(--space-4)}.fp-login__error{display:flex;gap:var(--space-2);align-items:flex-start;padding:var(--space-3);border-radius:6px;background:var(--danger-soft);color:var(--danger);font:400 13px/18px var(--font-sans)}.fp-login__error svg{flex:none;margin-top:1px}.fp-login__notice{display:flex;gap:var(--space-2);align-items:flex-start;padding:var(--space-3);border-radius:6px;background:var(--success-soft);color:var(--success);font:400 13px/18px var(--font-sans)}.fp-login__notice svg{flex:none;margin-top:1px}.fp-login__submit{width:100%;margin-top:var(--space-1)}.fp-login__portal{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid hsl(var(--border));text-align:center}.fp-login__footer{margin:0;font:400 12px/16px var(--font-sans);color:var(--ink-3)}.fp-stat{display:flex;flex-direction:column;gap:6px;min-width:0;padding:var(--space-4);background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:8px;font-family:var(--font-sans)}.fp-stat__label{font:400 13px/18px var(--font-sans);color:hsl(var(--foreground)/.72)}.fp-stat__value{font:600 24px/30px var(--font-sans);font-variant-numeric:tabular-nums;color:hsl(var(--foreground))}.fp-stat__delta{display:flex;align-items:center;gap:var(--space-1);font:400 13px/18px var(--font-sans);color:hsl(var(--muted-foreground))}.fp-stat__delta.is-up{color:var(--ds-success)}.fp-stat__delta.is-down{color:var(--danger)}.fp-panel-title{font:600 15px/22px var(--font-sans);letter-spacing:normal;margin:0}.fp-login__crest{box-shadow:0 0 0 1px hsl(var(--border))}@media (max-width:767px){.fp-shell__main,.fp-shell__main>main{min-width:0}.fp-shell__main>main>[class*=p-4]:not([class*=border]):not([class*=bg-]),.fp-shell__main>main>[class*=p-6]:not([class*=border]):not([class*=bg-]),.fp-shell__main>main>[class*=p-8]:not([class*=border]):not([class*=bg-]){padding:0}.fp-iconbtn,.fp-search{width:40px;height:40px}.fp-btn,.fp-btn--sm{height:40px}.fp-topbar__end{gap:2px}.fp-nav__item{height:44px}.fp-nav__close{width:40px;height:40px}.fp-nav__user{min-height:48px}.fp-nav__list{overscroll-behavior:contain}.fp-menu{max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);overflow-y:auto}.fp-menu__item{height:44px}.fp-tab{padding:12px 0}.fp-input{height:44px}.fp-input-action{width:40px;height:40px}.fp-link{display:inline-flex;align-items:center;min-height:40px}main .flex:not(.flex-col):not(.flex-col-reverse):not(.flex-nowrap):not([class*=overflow-x]):has(>button,>a[class*=inline-flex],>[role=tab],>div>h1,>h1,>h2,>h3,>h4){flex-wrap:wrap}main .flex:not(.flex-col):has(>div>h1)>div{min-width:0;max-width:100%}:is(main,[role=dialog]) .grid:not([class^=grid-cols],[class*=" grid-cols"],[class^=grid-rows],[class*=" grid-rows"],[class*=grid-flow]){grid-template-columns:minmax(0,1fr)}:is(main,[role=dialog]) .grid>*{min-width:0}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]),select,textarea{font-size:16px}[role=alertdialog] button,[role=dialog] [role=tab],[role=dialog] button:not([role=checkbox]):not([role=switch]):not([role=radio]),input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]),main [role=button],main [role=tab],main button:not([role=checkbox]):not([role=switch]):not([role=radio]),main summary,select{min-height:40px}[role=dialog] button:not([role=checkbox]):not([role=switch]):not([role=radio]),main button:not([role=checkbox]):not([role=switch]):not([role=radio]){min-width:40px}[role=dialog] a.inline-flex,main a.inline-flex{min-height:40px;min-width:40px}[role=dialog] a:has(>svg:only-child),main a:has(>svg:only-child){position:relative}[role=dialog] a:has(>svg:only-child):not(:where(table,[role=toolbar],[role=tablist],[role=group]) *):after,main a:has(>svg:only-child):not(:where(table,[role=toolbar],[role=tablist],[role=group]) *):after{content:"";position:absolute;top:50%;left:50%;width:max(100%,40px);height:max(100%,40px);transform:translate(-50%,-50%)}[role=checkbox],[role=radio],[role=switch]{position:relative}[role=checkbox]:not(:where(table,[role=toolbar],[role=tablist],[role=group]) *):after,[role=radio]:not(:where(table,[role=toolbar],[role=tablist],[role=group]) *):after,[role=switch]:not(:where(table,[role=toolbar],[role=tablist],[role=group]) *):after{content:"";position:absolute;top:50%;left:50%;width:max(100%,40px);height:max(100%,40px);transform:translate(-50%,-50%)}input[type=checkbox],input[type=radio]{width:20px;height:20px}[class*="group-hover:opacity-100"]:not([class*=inset-0]){opacity:1}[class*="text-[0.6"],[class*="text-[0.65"],[class*="text-[0.7"],[class*="text-[10px]"],[class*="text-[11px]"],[class*="text-[8px]"],[class*="text-[9px]"]{font-size:12px;line-height:1.25}:where(.overflow-auto,.overflow-x-auto)>table:not([class*=min-w-]){min-width:40rem}:where(.overflow-auto,.overflow-x-auto){-webkit-overflow-scrolling:touch;max-width:100%}:where(.overflow-auto,.overflow-x-auto)>table :is(td,th):first-child:not(:has(input[type=checkbox],[role=checkbox])),:where(.overflow-auto,.overflow-x-auto)>table tr:has(>:first-child :is(input[type=checkbox],[role=checkbox]))>:is(td,th):nth-child(2){min-width:13rem}:where(.overflow-auto,.overflow-x-auto)>table td:last-child:has(button,a[class*=inline-flex]),:where(.overflow-auto,.overflow-x-auto)>table:has(td:last-child button,td:last-child a[class*=inline-flex]) th:last-child{position:sticky;right:0;z-index:1;background-color:hsl(var(--card));box-shadow:-8px 0 8px -8px rgb(0 0 0/.2)}:where(.overflow-auto,.overflow-x-auto):has(>table){background-image:linear-gradient(to right,hsl(var(--card)) 30%,transparent),linear-gradient(to left,hsl(var(--card)) 30%,transparent),radial-gradient(farthest-side at 0 50%,rgb(0 0 0/.16),transparent),radial-gradient(farthest-side at 100% 50%,rgb(0 0 0/.16),transparent);background-position:0,100%,0,100%;background-size:24px 100%,24px 100%,10px 100%,10px 100%;background-repeat:no-repeat;background-attachment:local,local,scroll,scroll}.fp-kanban-scroll{scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding-inline:0}.fp-kanban-scroll>*{min-width:0!important;width:max-content}.fp-kanban-col{flex:0 0 85vw;min-width:85vw;max-width:85vw;scroll-snap-align:center}[role=tablist]{max-width:100%;overflow-x:auto;scrollbar-width:none}[role=tablist]::-webkit-scrollbar{display:none}[role=tablist]>*{flex-shrink:0}}