@font-face {
  font-family: "Archivo";
  src: url("/fonts/archivo-latin-wght-normal.woff2") format("woff2-variations");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "JetBrains Mono";
  src: url("/fonts/jetbrains-mono-latin-wght-normal.woff2") format("woff2-variations");
  font-weight: 100 800;
  font-style: normal;
  font-display: swap;
}
.theme-timefunn {
  --tf-ink: #0f172a;
  --tf-body: #2b3648;
  --tf-slate: #525c6b;
  --tf-mist: #8a93a2;
  --tf-line: #e4e8ee;
  --tf-line-row: #f1f3f7;
  --tf-line-input: #d5dae2;
  --tf-line-divider: #c3cbd6;
  --tf-ground: #f6f8fa;
  --tf-panel: #f1f3f7;
  --tf-surface: #ffffff;
  --tf-green: #16624a;
  --tf-green-hover: #124f3c;
  --tf-green-rule: #a9cfc0;
  --tf-green-quiet: #6fb79c;
  --tf-warn: #8a6a16;
  --tf-warn-body: #5e4a10;
  --tf-warn-ground: #fbf6e9;
  --tf-warn-line: #e8d6a8;
  --tf-sans: "Archivo", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --tf-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --bg-app: var(--tf-surface);
  --surface: var(--tf-surface);
  --surface-2: var(--tf-ground);
  --surface-3: var(--tf-panel);
  --text: var(--tf-ink);
  --text-2: var(--tf-body);
  --text-3: var(--tf-body);
  --text-mid: var(--tf-slate);
  --text-muted: var(--tf-slate);
  --text-faint: var(--tf-slate);
  --text-faint2: var(--tf-mist);
  --icon-faint: var(--tf-slate);
  --brand: var(--tf-green);
  --brand-hover: var(--tf-green-hover);
  --brand-ink: var(--tf-green-hover);
  --brand-tint: #e7efeb;
  --brand-tint-2: #dbe8e2;
  --brand-tint-3: var(--tf-panel);
  --brand-border: var(--tf-line-divider);
  --brand-ring: rgba(22, 98, 74, .35);
  --brand-avatar-bg: var(--tf-panel);
  --on-brand: #ffffff;
  --hairline: var(--tf-line);
  --border-1: var(--tf-line);
  --border-2: var(--tf-line);
  --border-3: var(--tf-line-input);
  --border-4: var(--tf-slate);
  --rule-heavy: var(--tf-ink);
  --ok: var(--tf-green);
  --ok-tint: #e7efeb;
  --info: var(--tf-slate);
  --info-tint: var(--tf-ground);
  --warn: var(--tf-warn);
  --warn-tint: var(--tf-warn-ground);
  --danger: #b3261e;
  --danger-tint: #f9e8e6;
  --destruct: #b3261e;
  --font-ui: var(--tf-sans);
  --font-prose: var(--tf-sans);
  --font-body: var(--tf-sans);
  --font-mono: var(--tf-mono);
}

.tf-label {
  font-family: var(--tf-mono);
  font-size: 0.656rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tf-slate);
}

.tf-mono {
  font-family: var(--tf-mono);
}

.tf-page {
  padding: 1.5rem 1.5rem 2.5rem;
  min-width: 0;
}

.tf-page + .tf-page {
  padding-block-start: 0;
}

.tf-crumbs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.625rem;
  font-size: 0.8125rem;
  color: var(--tf-slate);
  margin-bottom: 0.875rem;
}
.tf-crumbs a {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: var(--tf-line-divider);
  text-underline-offset: 3px;
}
.tf-crumbs a:hover {
  color: var(--tf-ink);
  text-decoration-color: var(--tf-ink);
}
.tf-crumbs [aria-current] {
  color: var(--tf-ink);
}

.tf-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.25rem;
  flex-wrap: wrap;
  margin-bottom: 1.375rem;
}
.tf-head h1 {
  margin: 0;
  font-size: 1.625rem;
  font-weight: 700;
  letter-spacing: -0.025em;
}
.tf-head .tf-label {
  display: block;
  margin-bottom: 0.5rem;
}

.tf-head__actions {
  display: flex;
  gap: 0.625rem;
  flex-wrap: wrap;
}

.tf-facts {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 0.5rem;
  font-family: var(--tf-mono);
  font-size: 0.78125rem;
  color: var(--tf-slate);
}
.tf-facts .tf-facts__sep {
  color: var(--tf-line-divider);
}

.tf-note {
  margin: 0.75rem 0 0;
  font-size: 0.8125rem;
  color: var(--tf-slate);
}

.tf-panel {
  border: 1px solid var(--tf-line);
  border-radius: 12px;
  overflow: hidden;
  background: var(--tf-surface);
}

.tf-panel__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  padding: 0.75rem 1.125rem;
  border-bottom: 1px solid var(--tf-line);
}
.tf-panel__bar h2 {
  margin: 0;
  font-size: 0.90625rem;
  font-weight: 600;
}

.tf-panel__bar-lead {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.tf-panel__count {
  font-family: var(--tf-mono);
  font-size: 0.75rem;
  color: var(--tf-slate);
}

.tf-scroll {
  overflow-x: auto;
}

.tf-table {
  inline-size: 100%;
  border-collapse: collapse;
  text-align: start;
}
.tf-table caption {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.tf-table thead th {
  position: sticky;
  inset-block-start: 0;
  z-index: 1;
  background: var(--tf-ground);
  border-block-end: 1px solid var(--tf-line);
  padding: 0.625rem 1.125rem;
  text-align: start;
  font-weight: 400;
  font-family: var(--tf-mono);
  font-size: 0.656rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tf-slate);
  white-space: nowrap;
}
.tf-table tbody td, .tf-table tbody th {
  padding: 0.8125rem 1.125rem;
  border-block-end: 1px solid var(--tf-line-row);
  font-weight: 400;
  text-align: start;
  vertical-align: baseline;
  font-size: 0.9375rem;
  color: var(--tf-ink);
}
.tf-table tbody tr:last-child td, .tf-table tbody tr:last-child th {
  border-block-end: 0;
}
.tf-table td.tf-td-mono, .tf-table th.tf-td-mono {
  font-family: var(--tf-mono);
  font-size: 0.84375rem;
  color: var(--tf-slate);
}
.tf-table td.tf-td-figure {
  font-family: var(--tf-mono);
  font-size: 0.84375rem;
  color: var(--tf-ink);
}
.tf-table td.tf-td-what {
  font-size: 0.875rem;
  color: var(--tf-body);
  line-height: 1.5;
}
.tf-table td.tf-td-name, .tf-table th.tf-td-name {
  font-weight: 500;
}
.tf-table.tf-table--doors tbody tr:hover {
  background: var(--tf-ground);
}
.tf-table.tf-table--doors tbody th a, .tf-table.tf-table--doors tbody td a {
  color: inherit;
  text-decoration: none;
}
.tf-table.tf-table--doors tbody th a:hover {
  text-decoration: underline;
}
.tf-table tfoot td, .tf-table tfoot th {
  position: sticky;
  inset-block-end: 0;
  z-index: 1;
  background: var(--tf-ground);
  border-block-start: 1px solid var(--tf-line);
  padding: 0.875rem 1.125rem;
  text-align: start;
  font-weight: 600;
  font-family: var(--tf-mono);
  font-size: 0.875rem;
  color: var(--tf-ink);
}
.tf-table tfoot .tf-foot-note {
  font-family: var(--tf-sans);
  font-weight: 400;
  font-size: 0.8125rem;
  color: var(--tf-slate);
}

.tf-td-months {
  font-family: var(--tf-mono);
  font-size: 0.78125rem;
  color: var(--tf-slate);
}

.tf-td-pending {
  font-size: 0.78125rem;
  color: var(--tf-warn);
  margin-inline-start: 0.625rem;
}

.tf-state {
  font-size: 0.8125rem;
}
.tf-state.is-ok {
  color: var(--tf-green);
}
.tf-state.is-waiting {
  color: var(--tf-warn);
}

.tf-daylink {
  color: inherit;
  text-decoration: none;
}
.tf-daylink:hover {
  text-decoration: underline;
  text-decoration-color: var(--tf-line-divider);
}
.tf-daylink span {
  color: var(--tf-slate);
}

.tf-members {
  list-style: none;
  margin: 0;
  padding: 0;
}
.tf-members li {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  flex-wrap: wrap;
  padding: 0.5rem 0;
  border-block-end: 1px solid var(--tf-line-row);
}
.tf-members li:last-child {
  border-block-end: 0;
}
.tf-members .tf-members__name {
  font-size: 0.9375rem;
  font-weight: 500;
}
.tf-members .tf-members__role {
  font-family: var(--tf-mono);
  font-size: 0.71875rem;
  color: var(--tf-slate);
}

.tf-rowlink {
  color: var(--tf-green);
  text-decoration: underline;
  text-decoration-color: var(--tf-green-rule);
  text-underline-offset: 3px;
}
.tf-rowlink:hover {
  color: var(--tf-ink);
  text-decoration-color: var(--tf-ink);
}

.tf-statband {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  border: 1px solid var(--tf-line);
  border-radius: 12px;
  overflow: hidden;
  margin-block-end: 1.625rem;
}

.tf-stat {
  padding: 1.125rem 1.25rem;
  border-inline-end: 1px solid var(--tf-line);
}
.tf-stat:last-child {
  border-inline-end: 0;
}

.tf-stat__value {
  font-family: var(--tf-mono);
  font-size: 1.625rem;
  font-weight: 500;
  color: var(--tf-ink);
  margin-block-start: 0.5rem;
}
.tf-stat__value.is-confirmed {
  color: var(--tf-green);
}

.tf-stat__note {
  font-size: 0.78125rem;
  color: var(--tf-slate);
  margin-block-start: 0.25rem;
}
.tf-stat__note.is-pending {
  color: var(--tf-warn);
}

.tf-rate {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  flex-wrap: wrap;
  padding: 0.75rem 1rem;
  background: var(--tf-ground);
  border: 1px solid var(--tf-line);
  border-radius: 10px;
  margin: 1rem 0 1.25rem;
}
.tf-rate .tf-rate__sentence {
  font-size: 0.875rem;
  color: var(--tf-ink);
}
.tf-rate .tf-rate__sentence strong {
  font-family: var(--tf-mono);
  font-weight: 500;
}
.tf-rate .tf-rate__rule {
  font-size: 0.8125rem;
  color: var(--tf-slate);
}

.tf-refusal {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  padding: 0.875rem 1rem;
  border: 1px solid var(--tf-warn-line);
  background: var(--tf-warn-ground);
  border-radius: 10px;
  margin-block-end: 1.125rem;
}
.tf-refusal .tf-label {
  color: var(--tf-warn);
  padding-block-start: 2px;
}
.tf-refusal p {
  margin: 0;
  font-size: 0.875rem;
  color: var(--tf-warn-body);
  line-height: 1.55;
}

.tf-daygrid {
  overflow: auto;
  max-block-size: min(52vh, 470px);
}

.tf-daygrid .tf-table {
  min-inline-size: 55rem;
}

tr.tf-weekend > * {
  background: var(--tf-ground);
}

tr.tf-refused > * {
  background: var(--tf-warn-ground);
}

tr.tf-refused td {
  color: var(--tf-warn);
}

tr.tf-editing > * {
  background: var(--tf-panel);
}

tr.tf-editing {
  scroll-margin-block-start: 3rem;
}

.tf-source {
  font-family: var(--tf-mono);
  font-size: 0.71875rem;
  color: var(--tf-slate);
}
.tf-source.is-agent {
  color: var(--tf-green);
}
.tf-source.is-refused {
  color: var(--tf-warn);
}

.tf-dayform {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  flex-wrap: wrap;
}
.tf-dayform input[type=number] {
  inline-size: 4.5rem;
}
.tf-dayform input[type=text] {
  min-inline-size: 14rem;
}
.tf-dayform input {
  border: 1px solid var(--tf-line-input);
  border-radius: 8px;
  padding: 0.5rem 0.625rem;
  font-family: var(--tf-sans);
  font-size: 0.875rem;
  color: var(--tf-ink);
  background: var(--tf-surface);
}
.tf-dayform input:focus-visible {
  outline: 2px solid var(--tf-green);
  outline-offset: 1px;
}

.tf-confirmations {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1rem;
  margin-block-start: 1.375rem;
}

.tf-confirm {
  border: 1px solid var(--tf-line);
  border-radius: 12px;
  padding: 1.125rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  align-items: flex-start;
}
.tf-confirm .tf-label {
  margin-block-end: 0.25rem;
}
.tf-confirm .tf-confirm__state {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--tf-green);
}
.tf-confirm .tf-confirm__state.is-waiting {
  font-weight: 500;
  color: var(--tf-warn);
}
.tf-confirm .tf-confirm__stamp {
  font-family: var(--tf-mono);
  font-size: 0.78125rem;
  color: var(--tf-slate);
}
.tf-confirm p {
  margin: 0;
  font-size: 0.84375rem;
  color: var(--tf-slate);
  line-height: 1.55;
}

.tf-empty {
  padding: 5rem 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.tf-empty h1 {
  margin: 1rem 0 0.75rem;
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: -0.025em;
}
.tf-empty p {
  margin: 0 0 1.625rem;
  color: var(--tf-slate);
  font-size: 0.96875rem;
  line-height: 1.6;
  max-inline-size: 46ch;
  text-wrap: pretty;
}

.tf-lang {
  font-family: var(--tf-mono);
  font-size: 0.78125rem;
  color: var(--tf-slate);
}
.tf-lang a {
  color: var(--tf-slate);
  text-decoration: none;
}
.tf-lang a:hover {
  color: var(--tf-ink);
}
.tf-lang a[aria-current] {
  color: var(--tf-ink);
  font-weight: 500;
}

.tf-attest {
  background: var(--tf-ground);
  min-block-size: 100vh;
  padding: 2.5rem 1.5rem;
  font-family: var(--tf-sans);
  color: var(--tf-ink);
}

.tf-attest__inner {
  max-inline-size: 39rem;
  margin-inline: auto;
}

.tf-attest__brand {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  margin-block-end: 1.375rem;
  font-size: 0.96875rem;
  font-weight: 600;
}
.tf-attest__brand .tf-attest__mark {
  inline-size: 24px;
  block-size: 24px;
  border-radius: 6px;
  background: var(--tf-green);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--tf-mono);
  font-size: 0.75rem;
}
.tf-attest__brand .tf-attest__aside {
  margin-inline-start: auto;
  font-size: 0.8125rem;
  font-weight: 400;
  color: var(--tf-slate);
}

.tf-attest__card {
  background: var(--tf-surface);
  border: 1px solid var(--tf-line);
  border-radius: 14px;
  overflow: hidden;
}

.tf-attest__head {
  padding: 1.5rem 1.5rem 1.125rem;
  border-block-end: 1px solid var(--tf-line);
}
.tf-attest__head h1 {
  margin: 0 0 0.625rem;
  font-size: 1.4375rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}
.tf-attest__head p {
  margin: 0;
  color: var(--tf-slate);
  font-size: 0.90625rem;
  line-height: 1.6;
  text-wrap: pretty;
}

.tf-attest__days {
  padding: 0.5rem 0;
}

.tf-attest__day {
  display: grid;
  grid-template-columns: 4.875rem 4rem 1fr;
  gap: 0.75rem;
  padding: 0.5625rem 1.5rem;
  align-items: baseline;
}
.tf-attest__day .tf-attest__date {
  font-family: var(--tf-mono);
  font-size: 0.78125rem;
  color: var(--tf-slate);
}
.tf-attest__day .tf-attest__hours {
  font-family: var(--tf-mono);
  font-size: 0.8125rem;
}
.tf-attest__day .tf-attest__what {
  font-size: 0.84375rem;
  color: var(--tf-body);
}

.tf-attest__sum {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.875rem 1.5rem;
  background: var(--tf-ground);
  border-block: 1px solid var(--tf-line);
}
.tf-attest__sum .tf-attest__sum-value {
  font-family: var(--tf-mono);
  font-size: 1.0625rem;
  font-weight: 500;
}

.tf-attest__body {
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
  align-items: flex-start;
}
.tf-attest__body p {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--tf-slate);
  line-height: 1.55;
  max-inline-size: 52ch;
}
.tf-attest__body .tf-attest__done {
  font-size: 1rem;
  font-weight: 600;
  color: var(--tf-green);
}
.tf-attest__body .tf-attest__stamp {
  font-family: var(--tf-mono);
  font-size: 0.78125rem;
  color: var(--tf-slate);
}

.tf-attest__foot {
  margin: 1.125rem 0 0;
  font-size: 0.78125rem;
  color: var(--tf-slate);
  text-align: center;
}

.tf-railbrand {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  color: var(--tf-ink);
  text-decoration: none;
  font-size: 0.96875rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.tf-railbrand .tf-railbrand__mark {
  inline-size: 24px;
  block-size: 24px;
  flex: 0 0 24px;
  border-radius: 6px;
  background: var(--tf-green);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--tf-mono);
  font-size: 0.75rem;
}

.skiwo-sidebar.is-collapsed .tf-railbrand__name {
  display: none;
}

.tf-railperson {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-inline-size: 0;
}
.tf-railperson .tf-railperson__name {
  font-size: 0.84375rem;
  font-weight: 500;
  color: var(--tf-ink);
}
.tf-railperson .tf-railperson__role {
  font-size: 0.78125rem;
  color: var(--tf-slate);
}

.skiwo-sidebar.is-collapsed .tf-railperson {
  display: none;
}

.tf-org {
  font-family: var(--tf-mono);
  font-size: 0.75rem;
  color: var(--tf-slate);
  white-space: nowrap;
}

.tf-railgroup {
  font-family: var(--tf-mono);
  font-size: 0.656rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--tf-slate);
  padding: 1.125rem 0.625rem 0.5rem;
}
.tf-railgroup:first-child {
  padding-block-start: 0.375rem;
}

.skiwo-sidebar.is-collapsed .tf-railgroup {
  display: none;
}
