*,*:before,*:after{box-sizing:border-box}html,body,#app{margin:0;padding:0;min-height:100%}body{background:var(--fs-canvas);color:var(--fs-text);font-family:var(--fs-font-ui)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}ul{margin:0;padding:0;list-style:none}h1,h2,h3,h4,p{margin:0}svg{display:block;flex:none}.fs-app{display:flex;flex-direction:column;min-height:100dvh;background:var(--fs-canvas);color:var(--fs-text);font-family:var(--fs-font-ui)}.fs-app--with-tabbar .fs-page{padding-bottom:calc(var(--fs-tabbar-h) + var(--fs-s-6) + env(safe-area-inset-bottom))}.fs-appbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:var(--fs-s-2);min-height:var(--fs-appbar-h);padding:env(safe-area-inset-top) calc(var(--fs-s-3) + env(safe-area-inset-right)) 0 calc(var(--fs-s-3) + env(safe-area-inset-left));background:var(--fs-surface);border-bottom:1px solid var(--fs-border)}.fs-appbar__title{font:600 16px/1.3 var(--fs-font-ui);color:var(--fs-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fs-appbar__spacer{flex:1}.fs-appbar__brand{display:flex;align-items:center;gap:var(--fs-s-2)}.fs-logo{display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:var(--fs-r-md);background:var(--fs-ink);color:var(--fs-text-on-ink);font:700 12px/1 var(--fs-font-display)}.fs-logo--brand{background:var(--fs-brand);color:var(--fs-text-on-brand)}.fs-avatar{display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:var(--fs-r-full);background:var(--fs-brand-subtle);color:var(--fs-brand);font:600 12px/1 var(--fs-font-ui)}.fs-avatar--lg{width:56px;height:56px;font-size:18px}.fs-avatar--brand{background:var(--fs-brand);color:var(--fs-text-on-brand)}.fs-rolebadge{display:inline-block;padding:3px 10px;border-radius:var(--fs-r-full);background:var(--fs-surface-sunken);border:1px solid var(--fs-border-strong);color:var(--fs-text-secondary);font:600 11px/1.4 var(--fs-font-ui)}.fs-versionbadge{padding:2px 8px;border-radius:var(--fs-r-sm);background:var(--fs-surface-sunken);border:1px solid var(--fs-border);color:var(--fs-text-muted);font:500 11px/1.4 var(--fs-font-mono)}.fs-demobadge{padding:3px 9px;border-radius:var(--fs-r-full);background:var(--fs-demo-bg);color:var(--fs-demo);font:700 10px/1.4 var(--fs-font-ui);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.fs-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:10;display:flex;justify-content:space-around;align-items:stretch;min-height:var(--fs-tabbar-h);padding-bottom:env(safe-area-inset-bottom);background:var(--fs-surface);border-top:1px solid var(--fs-border)}.fs-tabbar__item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:var(--fs-tap);padding:var(--fs-s-2) var(--fs-s-1);background:none;border:0;color:var(--fs-text-tertiary);font:600 10.5px/1 var(--fs-font-ui);text-decoration:none}.fs-tabbar__item.is-active{color:var(--fs-brand)}.fs-tabbar__item.is-disabled{opacity:.45;cursor:not-allowed}.fs-tabbar__item--primary .fs-tabbar__fab{display:grid;place-items:center;width:40px;height:40px;margin-top:-14px;border-radius:var(--fs-r-full);background:var(--fs-brand);color:var(--fs-text-on-brand);box-shadow:var(--fs-shadow-raised)}.fs-shell{display:flex;min-height:100dvh;background:var(--fs-canvas);color:var(--fs-text);font-family:var(--fs-font-ui);font-size:14px;line-height:1.45}.fs-sidebar{width:var(--fs-sidebar-w);flex:0 0 auto;background:var(--fs-ink);color:var(--fs-text-on-ink);display:flex;flex-direction:column;padding:var(--fs-s-4) var(--fs-s-3);gap:var(--fs-s-2);position:sticky;top:0;height:100dvh}.fs-sidebar__brand{display:flex;align-items:center;gap:var(--fs-s-3);padding:var(--fs-s-2) var(--fs-s-2) var(--fs-s-4)}.fs-sidebar__group{font:700 10px/1 var(--fs-font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--fs-text-muted);padding:var(--fs-s-3) var(--fs-s-2) var(--fs-s-1)}.fs-sidebar__item{display:flex;align-items:center;gap:var(--fs-s-3);padding:var(--fs-s-2) var(--fs-s-3);border-radius:var(--fs-r-md);color:var(--fs-text-on-ink);opacity:.78;font-weight:500;text-decoration:none;min-height:36px}.fs-sidebar__item.is-active{background:var(--fs-ink-hover);opacity:1;font-weight:600}.fs-sidebar__user{margin-top:auto;display:flex;align-items:center;gap:var(--fs-s-3);padding:var(--fs-s-3) var(--fs-s-2);border-top:1px solid var(--fs-ink-hover)}.fs-sidebar__muted{color:var(--fs-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fs-main{flex:1;min-width:0;display:flex;flex-direction:column}.fs-main .fs-appbar{gap:var(--fs-s-4);padding:0 var(--fs-s-6)}@media(max-width:899px){.fs-shell{flex-direction:column}.fs-sidebar{width:100%;height:auto;position:static;flex-direction:row;flex-wrap:wrap;align-items:center}.fs-sidebar__group,.fs-sidebar__user{display:none}.fs-main .fs-appbar{padding:0 var(--fs-s-4)}}.t-display{font:700 32px/1.1 var(--fs-font-display);letter-spacing:-.02em}.t-title{font:700 22px/1.2 var(--fs-font-display);letter-spacing:-.01em}.t-heading{font:600 16px/1.35 var(--fs-font-ui)}.t-body{font:400 14.5px/1.55 var(--fs-font-ui)}.t-caption{font:500 12px/1.45 var(--fs-font-ui);color:var(--fs-text-secondary)}.t-numeric{font:600 28px/1 var(--fs-font-mono);letter-spacing:-.02em}.t-mono{font-family:var(--fs-font-mono)}.t-label{font:700 10px/1.4 var(--fs-font-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--fs-text-tertiary)}.t-muted{color:var(--fs-text-secondary)}.t-strong{font-weight:600}.fs-page{display:flex;flex-direction:column;gap:var(--fs-s-4);padding:var(--fs-s-4) var(--fs-s-4) var(--fs-s-6);width:100%}.fs-main .fs-page{padding:var(--fs-s-5) var(--fs-s-6) var(--fs-s-8)}.fs-page--center{max-width:640px;margin-inline:auto}.fs-page--mid{max-width:1100px}.fs-page--wide{max-width:1400px}.fs-page__head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--fs-s-4);flex-wrap:wrap}.fs-grid{display:grid;gap:var(--fs-s-4)}.fs-grid--2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.fs-stack{display:flex;flex-direction:column;gap:var(--fs-s-3)}.fs-stack--tight{display:flex;flex-direction:column;gap:var(--fs-s-2)}.fs-row{display:flex;align-items:center;gap:var(--fs-s-2)}.fs-row--between{justify-content:space-between}.fs-row--wrap{flex-wrap:wrap}.fs-grow{flex:1;min-width:0}.fs-card{background:var(--fs-surface-raised);border:1px solid var(--fs-border);border-radius:var(--fs-r-lg);padding:var(--fs-s-4);box-shadow:var(--fs-shadow-raised)}.fs-card--flat{box-shadow:none}.fs-card__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--fs-s-3);margin-bottom:var(--fs-s-3)}.fs-list{display:flex;flex-direction:column}.fs-list>*+*{border-top:1px solid var(--fs-border)}.fs-list__item{display:flex;gap:var(--fs-s-3);align-items:center;padding:var(--fs-s-3) 0;min-height:var(--fs-tap)}.fs-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--fs-s-2);min-height:var(--fs-tap);padding:0 var(--fs-s-4);border-radius:var(--fs-r-md);border:1px solid var(--fs-border-strong);background:var(--fs-surface);color:var(--fs-text);font:600 14px/1 var(--fs-font-ui);white-space:nowrap;text-decoration:none}.fs-btn--primary{background:var(--fs-brand);border-color:var(--fs-brand);color:var(--fs-text-on-brand)}.fs-btn--ink{background:var(--fs-ink);border-color:var(--fs-ink);color:var(--fs-text-on-ink)}.fs-btn--ghost{background:transparent;border-color:transparent;color:var(--fs-brand)}.fs-btn--block{width:100%}.fs-btn--sm{min-height:36px;padding:0 var(--fs-s-3);font-size:13px}.fs-btn[disabled],.fs-btn.is-disabled{opacity:.45;cursor:not-allowed}.fs-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:var(--fs-r-full);font:600 11px/1.5 var(--fs-font-ui);white-space:nowrap;background:var(--fs-surface-sunken);color:var(--fs-text-secondary)}.fs-banner{display:flex;gap:var(--fs-s-2);align-items:flex-start;padding:var(--fs-s-3);border-radius:var(--fs-r-md);background:var(--fs-warning-bg);color:var(--fs-warning);font:500 12.5px/1.45 var(--fs-font-ui)}.fs-banner--info{background:var(--fs-brand-subtle);color:var(--fs-brand-hover)}.fs-banner--danger{background:var(--fs-overdue-bg);color:var(--fs-overdue)}.fs-banner--neutral{background:var(--fs-surface-sunken);color:var(--fs-text-secondary)}.fs-note{padding:var(--fs-s-3);border-radius:var(--fs-r-md);background:var(--fs-warning-bg);color:var(--fs-warning);font:500 12.5px/1.45 var(--fs-font-ui)}.fs-input{width:100%;min-height:var(--fs-tap);padding:0 var(--fs-s-3);border:1px solid var(--fs-border-strong);border-radius:var(--fs-r-md);background:var(--fs-surface);color:var(--fs-text);font:400 15px/1.3 var(--fs-font-ui)}.fs-input::placeholder{color:var(--fs-text-muted)}.fs-input:focus{outline:2px solid var(--fs-brand);outline-offset:1px;border-color:var(--fs-brand)}.fs-toggle{flex:none;width:44px;height:26px;padding:0;border:0;border-radius:var(--fs-r-full);background:var(--fs-border-strong);position:relative}.fs-toggle:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:var(--fs-r-full);background:var(--fs-surface);transition:left .15s ease}.fs-toggle.is-on{background:var(--fs-brand)}.fs-toggle.is-on:after{left:21px}.fs-toggle:focus-visible{outline:2px solid var(--fs-brand);outline-offset:2px}.fs-login{display:flex;flex-direction:column;min-height:100dvh;background:var(--fs-canvas);color:var(--fs-text);font-family:var(--fs-font-ui)}.fs-login__hero{padding:calc(var(--fs-s-8) + env(safe-area-inset-top)) var(--fs-s-5) var(--fs-s-8);background:var(--fs-ink);color:var(--fs-text-on-ink)}.fs-login__hero .t-label{color:var(--fs-brand)}.fs-login__hero p,.fs-login__hero .t-caption{color:var(--fs-text-on-ink);opacity:.78}.fs-login__body{flex:1;padding:var(--fs-s-5) var(--fs-s-4) var(--fs-s-6);display:flex;flex-direction:column;gap:var(--fs-s-4);margin-top:calc(-1 * var(--fs-r-xl));background:var(--fs-canvas);border-radius:var(--fs-r-xl) var(--fs-r-xl) 0 0}@media(min-width:900px){.fs-login:not(.fs-login--split){display:grid;grid-template-columns:1.1fr 1fr}.fs-login__hero{padding:var(--fs-s-12);display:flex;flex-direction:column;justify-content:space-between;gap:var(--fs-s-8)}.fs-login__body{margin-top:0;border-radius:0;padding:var(--fs-s-8);align-items:center;overflow-y:auto;max-height:100dvh}.fs-login__body>*{width:100%;max-width:440px}}.fs-login--split{display:grid;grid-template-columns:1.1fr 1fr;grid-template-rows:minmax(0,1fr);height:100dvh;min-height:0}.fs-login__brand{background:var(--fs-ink);color:var(--fs-text-on-ink);padding:var(--fs-s-12);display:flex;flex-direction:column;justify-content:space-between;gap:var(--fs-s-8)}.fs-login__brand .t-label{color:var(--fs-brand)}.fs-login__brand .t-caption,.fs-login__brand .t-body{color:var(--fs-text-muted)}.fs-login__brand .t-display{font-size:40px;max-width:520px}.fs-login__feature{display:flex;align-items:center;gap:var(--fs-s-2);color:var(--fs-text-on-ink);opacity:.85}.fs-login__feature svg{color:var(--fs-brand)}.fs-login__form{display:flex;align-items:safe center;justify-content:center;padding:var(--fs-s-8);background:var(--fs-canvas);overflow-y:auto}.fs-login__column{width:380px;max-width:100%}.fs-login--split .fs-card{background:var(--fs-surface)}.fs-note--warn{background:var(--fs-warning-bg);color:var(--fs-warning)}@media(max-width:899px){.fs-login--split{grid-template-columns:1fr;grid-template-rows:auto;height:auto}.fs-login__form{overflow-y:visible}.fs-login__brand{padding:calc(var(--fs-s-8) + env(safe-area-inset-top)) var(--fs-s-5) var(--fs-s-6)}.fs-login__brand .t-display{font-size:28px}.fs-login__form{padding:var(--fs-s-5) var(--fs-s-4) var(--fs-s-6)}}.fs-accounts{display:flex;flex-direction:column}.fs-accounts__row{display:flex;align-items:center;gap:var(--fs-s-3);width:100%;padding:var(--fs-s-2) 0;min-height:var(--fs-tap);background:none;border:0;border-bottom:1px solid var(--fs-border);font:400 12px/1.4 var(--fs-font-ui);color:var(--fs-text);text-align:left}.fs-accounts__row:hover,.fs-accounts__row:focus-visible{background:var(--fs-surface-sunken);outline:none}.fs-accounts__row[disabled]{cursor:progress}.fs-accounts__id{display:grid;place-items:center;flex:none;width:40px;height:28px;border-radius:var(--fs-r-sm);background:var(--fs-surface-sunken);font:700 11px/1 var(--fs-font-mono)}.fs-accounts__use{color:var(--fs-brand);font-weight:600}.fs-demoaccounts>*+*{border-top:1px solid var(--fs-border)}.fs-demoaccounts__ship{padding:var(--fs-s-3) 0 var(--fs-s-1)}.fs-demoaccount{display:flex;align-items:center;gap:var(--fs-s-3);width:100%;min-height:var(--fs-tap);padding:var(--fs-s-2) 0;background:none;border:0;text-align:left;color:var(--fs-text)}.fs-demoaccount:hover,.fs-demoaccount:focus-visible{background:var(--fs-surface-sunken);outline:none}.fs-demoaccount[disabled]{cursor:progress}.fs-demoaccount__id{display:grid;place-items:center;flex:none;width:44px;height:30px;border-radius:var(--fs-r-sm);background:var(--fs-surface-sunken);font:700 11px/1 var(--fs-font-mono);color:var(--fs-text-secondary)}.fs-spinner{width:18px;height:18px;border-radius:var(--fs-r-full);border:2px solid var(--fs-border);border-top-color:var(--fs-brand);animation:fs-spin .8s linear infinite}@keyframes fs-spin{to{transform:rotate(360deg)}}.fs-empty{display:flex;flex-direction:column;align-items:center;gap:var(--fs-s-3);padding:var(--fs-s-8) var(--fs-s-4);text-align:center;color:var(--fs-text-secondary);font:400 14px/1.5 var(--fs-font-ui)}.fs-badge:before{content:"";width:6px;height:6px;border-radius:var(--fs-r-full);background:currentColor}.fs-badge--plain:before{display:none}.fs-badge--new{background:var(--fs-status-new-bg);color:var(--fs-status-new)}.fs-badge--review{background:var(--fs-status-review-bg);color:var(--fs-status-review)}.fs-badge--assigned{background:var(--fs-status-assigned-bg);color:var(--fs-status-assigned)}.fs-badge--progress{background:var(--fs-status-progress-bg);color:var(--fs-status-progress)}.fs-badge--awaiting{background:var(--fs-status-awaiting-bg);color:var(--fs-status-awaiting)}.fs-badge--closed{background:var(--fs-status-closed-bg);color:var(--fs-status-closed)}.fs-badge--rejected{background:var(--fs-status-rejected-bg);color:var(--fs-status-rejected)}.fs-badge--reopened{background:var(--fs-status-reopened-bg);color:var(--fs-status-reopened)}.fs-badge--merged{background:var(--fs-status-merged-bg);color:var(--fs-status-merged)}.fs-badge--verified{background:var(--fs-status-closed-bg);color:var(--fs-status-closed)}.fs-badge--superseded{background:var(--fs-status-merged-bg);color:var(--fs-status-merged)}.fs-badge--sev-low{background:var(--fs-sev-low-bg);color:var(--fs-sev-low)}.fs-badge--sev-medium{background:var(--fs-sev-medium-bg);color:var(--fs-sev-medium)}.fs-badge--sev-high{background:var(--fs-sev-high-bg);color:var(--fs-sev-high)}.fs-badge--sev-critical{background:var(--fs-sev-critical-bg);color:var(--fs-sev-critical)}.fs-badge--overdue{background:var(--fs-overdue-bg);color:var(--fs-overdue)}.fs-badge--ok{background:var(--fs-ok-bg);color:var(--fs-ok)}.fs-badge--warning{background:var(--fs-warning-bg);color:var(--fs-warning)}.fs-badge--type-hazard{background:transparent;color:var(--fs-type-hazard);padding-inline:0}.fs-badge--type-near-miss{background:transparent;color:var(--fs-type-near-miss);padding-inline:0}.fs-badge--type-suggestion{background:transparent;color:var(--fs-type-suggestion);padding-inline:0}.fs-ref{font:600 12px/1.4 var(--fs-font-mono);color:var(--fs-text-tertiary)}.fs-card--overdue{border-left:4px solid var(--fs-overdue)}.fs-card__title{font:600 15px/1.3 var(--fs-font-ui);overflow-wrap:anywhere}.fs-card__meta{font:500 12px/1.45 var(--fs-font-ui);color:var(--fs-text-tertiary)}.fs-deadline{display:inline-flex;align-items:center;gap:6px;font:500 12.5px/1.4 var(--fs-font-ui);color:var(--fs-text-secondary)}.fs-deadline--overdue{color:var(--fs-overdue);font-weight:600}.fs-skeleton{display:block;position:relative;overflow:hidden;border-radius:var(--fs-r-sm);background:var(--fs-surface-sunken);min-height:14px}.fs-skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--fs-surface),transparent);animation:fs-shimmer 1.4s infinite}@keyframes fs-shimmer{to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.fs-skeleton:after{animation:none}}.fs-skeleton--line{height:12px}.fs-skeleton--title{height:18px;width:60%}.fs-skeleton--block{height:72px;border-radius:var(--fs-r-lg)}.fs-skeleton--ref{width:64px}.fs-skeleton--badge{width:72px}.fs-skeleton--wide{width:85%}.fs-skeleton--half{width:50%}.fs-skeleton--fill{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:0}.fs-empty__icon{display:grid;place-items:center;width:56px;height:56px;border-radius:var(--fs-r-full);background:var(--fs-surface-sunken);color:var(--fs-text-tertiary)}.fs-error-card{display:flex;flex-direction:column;gap:var(--fs-s-3);padding:var(--fs-s-4);border-radius:var(--fs-r-lg);border:1px solid var(--fs-overdue);background:var(--fs-overdue-bg);color:var(--fs-overdue)}.fs-error-card__title{font:600 14px/1.4 var(--fs-font-ui)}.fs-error-card__text{font:400 13px/1.5 var(--fs-font-ui);color:var(--fs-text-secondary)}.fs-error-card .fs-btn{align-self:flex-start}.fs-attachment{position:relative;display:block;aspect-ratio:1 / 1;border-radius:var(--fs-r-md);overflow:hidden;border:1px solid var(--fs-border);background:var(--fs-surface-sunken)}.fs-attachment__img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.fs-attachment__state{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;gap:var(--fs-s-1);padding:var(--fs-s-2);text-align:center;font:500 11.5px/1.3 var(--fs-font-ui);color:var(--fs-text-tertiary)}.fs-attachment__retry{border:0;background:transparent;color:var(--fs-brand);font-weight:600;min-height:var(--fs-tap);padding:0 var(--fs-s-2)}.fs-field{display:flex;flex-direction:column;gap:6px;min-width:0}.fs-field__label{font:600 12px/1.4 var(--fs-font-ui);color:var(--fs-text-secondary)}.fs-field__hint{font:400 11.5px/1.4 var(--fs-font-ui);color:var(--fs-text-tertiary)}.fs-field__error{display:flex;align-items:center;flex-wrap:wrap;gap:var(--fs-s-2);font:500 12px/1.4 var(--fs-font-ui);color:var(--fs-overdue)}.fs-select,.fs-textarea{width:100%;min-height:var(--fs-tap);padding:0 var(--fs-s-3);border:1px solid var(--fs-border-strong);border-radius:var(--fs-r-md);background:var(--fs-surface);color:var(--fs-text);font:400 15px/1.3 var(--fs-font-ui)}.fs-textarea{padding:var(--fs-s-3);min-height:112px;resize:vertical;line-height:1.5}.fs-textarea::placeholder{color:var(--fs-text-muted)}.fs-select:focus,.fs-textarea:focus{outline:2px solid var(--fs-brand);outline-offset:1px;border-color:var(--fs-brand)}.fs-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:36px;background-color:var(--fs-surface)}.fs-select:disabled{opacity:.55;cursor:not-allowed}.fs-select-wrap{position:relative}.fs-select-wrap svg{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--fs-text-tertiary)}.fs-check{display:flex;gap:var(--fs-s-3);align-items:flex-start;min-height:var(--fs-tap);cursor:pointer}.fs-check__input{flex:none;width:22px;height:22px;margin:2px 0 0;accent-color:var(--fs-brand);cursor:pointer}.fs-check__input:focus-visible{outline:2px solid var(--fs-brand);outline-offset:2px}.fs-check__text{font-size:13.5px}.fs-divider{height:1px;background:var(--fs-border)}.fs-btn:focus-visible{outline:2px solid var(--fs-brand);outline-offset:2px}.t-secondary{color:var(--fs-text-secondary)}.t-tertiary{color:var(--fs-text-tertiary)}.t-brand{color:var(--fs-brand)}.t-overdue{color:var(--fs-overdue);font-weight:600}.fs-page--full{max-width:none}.fs-card--tight{padding:var(--fs-s-4)}.fs-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}.fs-grid--detail{grid-template-columns:minmax(0,1fr) 340px;align-items:start}.fs-span-2{grid-column:span 2}.fs-span-3{grid-column:span 3}.fs-list__grow{flex:1;min-width:0}.fs-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}.fs-link{border:0;padding:0;background:none;color:var(--fs-brand);font:inherit;font-weight:600;text-decoration:none;cursor:pointer}.fs-link:hover{text-decoration:underline}.fs-btn--danger{background:var(--fs-overdue-bg);border-color:var(--fs-overdue-bg);color:var(--fs-overdue)}.fs-note--info{background:var(--fs-brand-subtle);color:var(--fs-brand-hover)}.fs-note--danger{background:var(--fs-overdue-bg);color:var(--fs-overdue)}.fs-note--ok{background:var(--fs-ok-bg);color:var(--fs-ok)}.fs-note--neutral{background:var(--fs-surface-sunken);color:var(--fs-text-secondary)}.fs-input--sm{min-height:38px;font-size:13px}.fs-select--sm{-moz-appearance:auto;appearance:auto;-webkit-appearance:auto;min-height:38px;padding-right:var(--fs-s-2);font-size:13px}.fs-textarea--sm{min-height:96px;padding:var(--fs-s-2) var(--fs-s-3);font-size:13px}.fs-input[aria-invalid=true],.fs-select[aria-invalid=true],.fs-textarea[aria-invalid=true]{border-color:var(--fs-overdue)}.fs-filtercheck{display:inline-flex;align-items:center;gap:var(--fs-s-2);font-size:13px;white-space:nowrap}.fs-filtercheck input{width:16px;height:16px;accent-color:var(--fs-brand)}.fs-tabs{display:flex;gap:var(--fs-s-1);border-bottom:1px solid var(--fs-border);flex-wrap:wrap}.fs-tabs__tab{display:inline-flex;align-items:center;gap:var(--fs-s-2);margin-bottom:-1px;padding:var(--fs-s-3);border:0;border-bottom:2px solid transparent;background:transparent;color:var(--fs-text-secondary);font:500 13px/1 var(--fs-font-ui)}.fs-tabs__tab.is-active{color:var(--fs-brand);font-weight:600;border-bottom-color:var(--fs-brand)}.fs-tabs__tab:focus-visible{outline:2px solid var(--fs-brand);outline-offset:-2px}.fs-tabs__count{font:600 10px/1 var(--fs-font-mono);font-style:normal;padding:3px 6px;border-radius:var(--fs-r-full);background:var(--fs-surface-sunken);color:var(--fs-text-secondary)}.fs-tabs__tab.is-active .fs-tabs__count{background:var(--fs-brand-subtle);color:var(--fs-brand)}.fs-table-wrap{width:100%;overflow-x:auto}.fs-table{width:100%;border-collapse:collapse;font-size:13px}.fs-table th{text-align:left;font:700 10px/1.3 var(--fs-font-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--fs-text-tertiary);padding:var(--fs-s-2) var(--fs-s-3);border-bottom:1px solid var(--fs-border);white-space:nowrap}.fs-table th.is-sorted{color:var(--fs-text)}.fs-table__sort{border:0;padding:0;background:none;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit}.fs-table td{padding:var(--fs-s-3);border-bottom:1px solid var(--fs-border);vertical-align:middle}.fs-table tr:last-child td{border-bottom:0}.fs-table tr.is-selected td{background:var(--fs-brand-subtle)}.fs-table tr.is-clickable{cursor:pointer}.fs-table tr.is-clickable:hover td{background:var(--fs-surface-sunken)}.fs-table tr.is-clickable:focus-visible{outline:2px solid var(--fs-brand);outline-offset:-2px}.fs-table__primary{font-weight:600;display:block}.fs-table__sub{display:block;font:500 11px/1.3 var(--fs-font-mono);color:var(--fs-text-tertiary);margin-top:2px}.fs-table--dense td{padding:var(--fs-s-2) var(--fs-s-3)}.fs-table__foot{display:flex;align-items:center;justify-content:space-between;gap:var(--fs-s-3);flex-wrap:wrap;padding-top:var(--fs-s-3);color:var(--fs-text-tertiary);font-size:12px}.fs-table__check{width:16px;height:16px;accent-color:var(--fs-brand)}.fs-filterbar{display:grid;grid-template-columns:1.4fr repeat(5,minmax(0,1fr)) auto;gap:var(--fs-s-2);align-items:center}.fs-filterbar__dates{display:flex;gap:var(--fs-s-2);align-items:center}.fs-factgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--fs-s-4) var(--fs-s-6)}.fs-factgrid__item{display:flex;flex-direction:column;gap:3px;font-size:13px;min-width:0;overflow-wrap:anywhere}.fs-factgrid__item strong{font-weight:600}.fs-tree{font-size:13px}.fs-tree__row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--fs-s-2);padding:6px var(--fs-s-2);border-radius:var(--fs-r-sm)}.fs-tree__row:hover{background:var(--fs-surface-sunken)}.fs-tree__row--l1{padding-left:28px}.fs-tree__row--l2{padding-left:52px}.fs-tree__row.is-locked,.fs-tree__row.is-dimmed{color:var(--fs-text-tertiary)}.fs-tree__kind{font:600 10px/1 var(--fs-font-mono);color:var(--fs-text-muted);text-transform:uppercase;width:56px}.fs-toggle:disabled{opacity:.5;cursor:not-allowed}.fs-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:var(--fs-s-2)}.fs-thread__item{display:grid;grid-template-columns:32px 1fr;gap:var(--fs-s-3);padding:var(--fs-s-3) 0;border-bottom:1px solid var(--fs-border);font-size:13px}.fs-thread__item:last-child{border-bottom:0}.fs-thread__text{white-space:pre-wrap;overflow-wrap:anywhere}.fs-timeline__item{display:grid;grid-template-columns:14px 1fr;gap:var(--fs-s-3);padding-bottom:var(--fs-s-3);font-size:12.5px}.fs-timeline__dot{width:10px;height:10px;margin-top:4px;border-radius:var(--fs-r-full);background:var(--fs-border-strong)}.fs-timeline__dot--brand{background:var(--fs-brand)}.fs-meter{height:8px;border-radius:var(--fs-r-full);background:var(--fs-status-closed-bg);overflow:hidden}.fs-meter>i{display:block;height:100%;background:var(--fs-brand)}.fs-dialog{width:min(720px,calc(100vw - 2 * var(--fs-s-4)));max-height:calc(100dvh - 2 * var(--fs-s-6));overflow:hidden;display:flex;flex-direction:column;background:var(--fs-surface);color:var(--fs-text);border-radius:var(--fs-r-xl);box-shadow:var(--fs-shadow-overlay);font-family:var(--fs-font-ui)}.fs-dialog--narrow{width:min(520px,calc(100vw - 2 * var(--fs-s-4)))}.fs-dialog--wide{width:min(860px,calc(100vw - 2 * var(--fs-s-4)))}.fs-dialog__head{padding:var(--fs-s-5) var(--fs-s-6) var(--fs-s-3);display:flex;justify-content:space-between;align-items:flex-start;gap:var(--fs-s-4)}.fs-dialog__body{padding:0 var(--fs-s-6) var(--fs-s-4);display:flex;flex-direction:column;gap:var(--fs-s-4);overflow:auto}.fs-dialog__foot{padding:var(--fs-s-4) var(--fs-s-6);border-top:1px solid var(--fs-border);display:flex;justify-content:flex-end;gap:var(--fs-s-2);background:var(--fs-surface-sunken)}.fs-dialog__action{margin:0;min-width:0;background:var(--fs-surface-sunken);border:1px solid var(--fs-border);border-radius:var(--fs-r-lg);padding:var(--fs-s-4);display:flex;flex-direction:column;gap:var(--fs-s-2)}.fs-steps{display:flex;gap:var(--fs-s-4);font-size:12px;color:var(--fs-text-tertiary);white-space:nowrap}.fs-steps .is-active{color:var(--fs-brand);font-weight:600}.fs-steps .is-done{color:var(--fs-ok)}.fs-segment__item{padding:6px 12px;border:0;background:transparent;color:var(--fs-text-secondary);font:600 12px/1 var(--fs-font-ui);cursor:pointer}.fs-segment__item:disabled{opacity:.45;cursor:not-allowed}.fs-card--selected{border-color:var(--fs-brand)}.fs-radio{flex:none;width:16px;height:16px;margin:0;accent-color:var(--fs-brand)}@media(max-width:1099px){.fs-grid--detail{grid-template-columns:1fr}.fs-filterbar,.fs-factgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:699px){.fs-grid--4{grid-template-columns:1fr}.fs-span-2,.fs-span-3{grid-column:auto}.fs-filterbar,.fs-factgrid{grid-template-columns:1fr}}.fs-btn--icon{position:relative;width:var(--fs-tap);padding:0;border-color:transparent;background:transparent;color:var(--fs-text-secondary)}.fs-btn--icon:focus-visible{outline:2px solid var(--fs-brand);outline-offset:1px}.fs-bell__count{position:absolute;top:4px;right:2px;display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border-radius:var(--fs-r-full);border:2px solid var(--fs-surface);background:var(--fs-overdue);color:var(--fs-text-on-brand);font:700 10px/1 var(--fs-font-ui)}.fs-card--list{padding:0;overflow:hidden}.fs-notif{display:flex;gap:var(--fs-s-3);align-items:flex-start;width:100%;min-height:var(--fs-tap);padding:var(--fs-s-3) var(--fs-s-4);background:transparent;border:0;color:var(--fs-text);text-align:left}.fs-notif:hover,.fs-notif:focus-visible{background:var(--fs-surface-sunken);outline:none}.fs-notif--unread,.fs-notif--unread:hover{background:var(--fs-brand-subtle)}.fs-notif--unread:focus-visible{outline:2px solid var(--fs-brand);outline-offset:-2px}.fs-notif__text{display:block;font:400 13.5px/1.5 var(--fs-font-ui);overflow-wrap:anywhere}.fs-notif__dot{flex:none;width:8px;height:8px;margin-top:12px;border-radius:var(--fs-r-full);background:var(--fs-brand)}.fs-notif__dot--read{background:transparent}.fs-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}.fs-center{text-align:center}:root{--fs-chart-hazard: var(--fs-type-hazard);--fs-chart-near-miss: var(--fs-type-near-miss);--fs-chart-suggestion: var(--fs-type-suggestion);--fs-chart-line: var(--fs-status-review);--fs-chart-grid: var(--fs-border);--fs-chart-track: var(--fs-surface-sunken);--fs-chart-fill: var(--fs-brand)}.fs-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.fs-grid--7{grid-template-columns:repeat(7,minmax(0,1fr))}.fs-grid--wide-left{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.fs-kpi{display:flex;flex-direction:column;gap:var(--fs-s-2);min-width:0;padding:var(--fs-s-4) var(--fs-s-5);background:var(--fs-surface);border:1px solid var(--fs-border);border-radius:var(--fs-r-lg);box-shadow:var(--fs-shadow-raised);color:var(--fs-text);font:inherit;text-align:left;text-decoration:none}button.fs-kpi,a.fs-kpi{cursor:pointer}button.fs-kpi:hover,a.fs-kpi:hover{border-color:var(--fs-border-strong)}.fs-kpi:focus-visible{outline:2px solid var(--fs-brand);outline-offset:2px}.fs-kpi__meta{font:500 12px/1.3 var(--fs-font-ui);color:var(--fs-brand)}.fs-kpi--warn{background:var(--fs-warning-bg);border-color:var(--fs-warning-bg)}.fs-kpi--warn .fs-kpi__meta{color:var(--fs-warning)}.fs-kpi--danger{background:var(--fs-overdue-bg);border-color:var(--fs-overdue-bg)}.fs-kpi--danger .fs-kpi__meta{color:var(--fs-overdue)}.fs-segment{display:inline-flex;border:1px solid var(--fs-border);border-radius:var(--fs-r-md);overflow:hidden}.fs-segment__item{border:0;padding:6px 12px;background:var(--fs-surface);color:var(--fs-text-secondary);font:600 12px/1 var(--fs-font-ui);cursor:pointer}.fs-segment__item.is-active{background:var(--fs-ink);color:var(--fs-text-on-ink)}.fs-segment__item:focus-visible{outline:2px solid var(--fs-brand);outline-offset:-2px}.fs-list__item--accent{border-left:3px solid var(--fs-overdue);padding-left:var(--fs-s-3)}.fs-list__item--link{width:100%;border-top-width:0;border-right:0;border-bottom:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.fs-list>.fs-list__item--link+.fs-list__item--link{border-top:1px solid var(--fs-border)}.fs-list__item--link:hover{background:var(--fs-surface-sunken)}.fs-list__item--link:focus-visible{outline:2px solid var(--fs-brand);outline-offset:-2px}.fs-cell-link{border:0;padding:0;background:none;color:inherit;font:inherit;text-decoration:underline dotted var(--fs-border-strong);text-underline-offset:3px;cursor:pointer}.fs-cell-link:hover{color:var(--fs-brand);text-decoration-color:var(--fs-brand)}.fs-cell-link:focus-visible{outline:2px solid var(--fs-brand);outline-offset:2px}.fs-legend{display:flex;flex-wrap:wrap;gap:var(--fs-s-3);font-size:11px;color:var(--fs-text-secondary)}.fs-legend__swatch{display:inline-block;width:10px;height:10px;margin-right:4px;border-radius:2px;vertical-align:-1px}.fs-legend__swatch--line{height:3px;vertical-align:2px}.fs-chart{display:block;width:100%;height:auto;overflow:visible}.fs-chart__seg{opacity:.85}.fs-chart__seg--hazard,.fs-legend__swatch--hazard{fill:var(--fs-chart-hazard);background:var(--fs-chart-hazard)}.fs-chart__seg--near_miss,.fs-legend__swatch--near_miss{fill:var(--fs-chart-near-miss);background:var(--fs-chart-near-miss)}.fs-chart__seg--suggestion,.fs-legend__swatch--suggestion{fill:var(--fs-chart-suggestion);background:var(--fs-chart-suggestion)}.fs-legend__swatch--line{background:var(--fs-chart-line)}.fs-chart__line{fill:none;stroke:var(--fs-chart-line);stroke-width:2.5;stroke-linejoin:round}.fs-chart__dot{fill:var(--fs-chart-line)}.fs-chart__grid{stroke:var(--fs-chart-grid);stroke-width:1}.fs-chart__label{fill:var(--fs-text-tertiary);font:500 10px/1 var(--fs-font-mono)}.fs-meterbar{display:block;width:100%;height:8px}.fs-meterbar--inline{width:90px;flex:none}.fs-meterbar__track{fill:var(--fs-chart-track)}.fs-meterbar__fill{fill:var(--fs-chart-fill)}@media(max-width:1099px){.fs-grid--7{grid-template-columns:repeat(4,minmax(0,1fr))}.fs-grid--3,.fs-grid--wide-left{grid-template-columns:1fr}.fs-grid--3>.fs-span-2{grid-column:auto}}@media(max-width:699px){.fs-grid--7{grid-template-columns:repeat(2,minmax(0,1fr))}}
