.theme-timefunn {
  --tf-ink: var(--text);
  --tf-body: var(--text-3);
  --tf-slate: var(--text-mid);
  --tf-mist: var(--text-faint);
  --tf-line: var(--border-2);
  --tf-line-row: var(--hairline);
  --tf-line-input: var(--border-3);
  --tf-line-divider: var(--border-4);
  --tf-panel-line: var(--border-2);
  --tf-ground: var(--surface-3);
  --tf-panel: var(--surface-2);
  --tf-surface: var(--surface);
  --tf-green: var(--brand);
  --tf-green-hover: var(--brand-hover);
  --tf-green-rule: var(--brand-border);
  --tf-green-quiet: var(--brand-tint-2);
  --tf-ok: var(--ok);
  --tf-warn: var(--warn);
  --tf-warn-body: var(--warn);
  --tf-warn-ground: var(--warn-tint);
  --tf-warn-line: var(--border-2);
  --tf-danger: var(--danger);
  --tf-sans: var(--font-ui);
  --tf-mono: var(--font-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-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-ok);
}
.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-redday {
  display: block;
  font-size: 0.71875rem;
  color: var(--tf-warn);
}

.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-activities {
  list-style: none;
  margin: 0;
  padding: 0;
}
.tf-activities li {
  font-size: 0.8125rem;
  padding: 0.1875rem 0;
  color: var(--tf-ink);
}

.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-ok);
}

.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-ok);
}
.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-chat .tf-chat__thread {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
}
.tf-chat .tf-chat__empty {
  margin: 0;
  font-size: 0.84375rem;
  color: var(--tf-slate);
}
.tf-chat .tf-chat__msg {
  max-width: 72ch;
  padding: 0.75rem 1rem;
  border: 1px solid var(--tf-line);
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  align-items: flex-start;
}
.tf-chat .tf-chat__msg.is-user {
  align-self: flex-end;
}
.tf-chat .tf-chat__msg p {
  margin: 0;
  line-height: 1.5;
}
.tf-chat .tf-chat__who {
  font-family: var(--tf-mono);
  font-size: 0.75rem;
  color: var(--tf-slate);
}
.tf-chat .tf-chat__plan {
  font-family: var(--tf-mono);
  font-size: 0.8125rem;
}
.tf-chat .tf-chat__stamp {
  font-family: var(--tf-mono);
  font-size: 0.78125rem;
  color: var(--tf-slate);
}
.tf-chat .tf-chat__refused {
  font-size: 0.8125rem;
  color: var(--tf-warn);
}
.tf-chat .tf-chat__form {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  padding: 0 1.25rem 1.25rem;
}
.tf-chat .tf-chat__form textarea {
  flex: 1;
  min-height: 3.5rem;
  border: 1px solid var(--tf-line);
  border-radius: 8px;
  padding: 0.625rem 0.75rem;
  font: inherit;
}

.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-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;
}

.tfl-wrap {
  max-inline-size: 87.5rem;
  margin-inline: auto;
}

.tfl-section {
  padding: clamp(3rem, 5vw, 4.25rem) clamp(1.25rem, 4vw, 2.5rem);
}

.tfl-label {
  font-family: var(--tf-mono);
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tf-mist);
  margin-block-end: 1.75rem;
}

.tfl-caption {
  margin: 0.75rem 0 0;
  font-size: 0.8125rem;
  color: var(--tf-mist);
}

.tfl-btn {
  display: inline-block;
  text-decoration: none;
  border-radius: 8px;
  padding: 0.875rem 1.5rem;
  font-size: 0.9375rem;
  font-weight: 600;
  font-family: var(--tf-sans);
  line-height: 1.2;
}
.tfl-btn--ink {
  background: var(--tf-ink);
  color: #fff;
}
.tfl-btn--ink:hover {
  background: var(--brand-deep);
  color: #fff;
}
.tfl-btn--outline {
  border: 1px solid var(--tf-line-input);
  color: var(--tf-ink);
  font-weight: 500;
}
.tfl-btn--outline:hover {
  background: var(--tf-ground);
  color: var(--tf-ink);
}
.tfl-btn--paper {
  background: var(--tf-surface);
  color: var(--tf-ink);
}
.tfl-btn--paper:hover {
  background: var(--tf-ground);
  color: var(--tf-ink);
}
.tfl-btn--sm {
  padding: 0.5625rem 1.125rem;
  font-size: 0.875rem;
  font-weight: 500;
}

.tfl-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  padding: 1rem clamp(1.25rem, 4vw, 2.5rem);
  border-block-end: 1px solid var(--tf-panel-line);
  position: sticky;
  inset-block-start: 0;
  z-index: 5;
  background: rgba(255, 255, 255, 0.93);
  backdrop-filter: blur(8px);
}

.tfl-brand {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  text-decoration: none;
  color: var(--tf-ink);
}
.tfl-brand .tfl-brand__mark {
  inline-size: 26px;
  block-size: 26px;
  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.8125rem;
  font-weight: 500;
}
.tfl-brand .tfl-brand__mark::before {
  content: "T";
}
.tfl-brand .tfl-brand__name {
  font-size: 1.0625rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}

.tfl-nav {
  display: flex;
  align-items: center;
  gap: clamp(0.875rem, 2vw, 1.625rem);
  font-size: 0.875rem;
  flex-wrap: wrap;
}
.tfl-nav > a:not(.tfl-btn) {
  color: var(--tf-ink);
  text-decoration: none;
}
.tfl-nav > a:not(.tfl-btn):hover {
  color: var(--tf-green);
}

.tfl-hero {
  padding: clamp(3rem, 6vw, 5.25rem) clamp(1.25rem, 4vw, 2.5rem) clamp(3rem, 5vw, 4.75rem);
  max-inline-size: 87.5rem;
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr minmax(0, 27rem);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}
@media (max-width: 60rem) {
  .tfl-hero {
    grid-template-columns: 1fr;
  }
}

.tfl-hero__lede {
  max-inline-size: 46rem;
}

.tfl-hero__sketch {
  display: grid;
  gap: 0.75rem;
  justify-items: center;
}

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

.tfl-review {
  width: 100%;
  background: var(--tf-surface);
  border: 1px solid var(--tf-line);
  border-radius: 14px;
  box-shadow: 0 14px 44px rgba(16, 18, 30, 0.1);
  padding: 1rem 1.125rem;
  display: grid;
  gap: 0.75rem;
  font-size: 0.875rem;
}

.tfl-review__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.75rem;
}
.tfl-review__head strong {
  font-size: 1.0625rem;
}

.tfl-review__lead {
  display: block;
  font-size: 0.78125rem;
  color: var(--tf-slate);
}

.tfl-review__day {
  border-top: 1px solid var(--tf-line-row);
  padding-top: 0.625rem;
  display: grid;
  gap: 0.2rem;
}

.tfl-review__line {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
}

.tfl-review__hours {
  font-family: var(--tf-mono);
  font-weight: 600;
}

.tfl-review__what {
  font-size: 0.8125rem;
}

.tfl-review__button {
  display: block;
  text-align: center;
  background: var(--tf-green);
  color: var(--tf-surface);
  border-radius: 8px;
  padding: 0.625rem;
  font-weight: 600;
  font-size: 0.875rem;
}

.tfl-two {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: clamp(2rem, 5vw, 4rem);
}

.tfl-h3 {
  margin: 0 0 0.5rem;
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}

.tfl-blurb {
  margin: 0 0 1.25rem;
  color: var(--tf-slate);
  font-size: 0.9375rem;
  line-height: 1.6;
  max-inline-size: 48ch;
  text-wrap: pretty;
}

.tfl-endpoint {
  display: inline-block;
  font-family: var(--tf-mono);
  font-size: 0.875rem;
  background: var(--tf-ground);
  border: 1px solid var(--tf-line);
  border-radius: 8px;
  padding: 0.625rem 0.875rem;
}

.tfl-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--tf-mono);
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  color: var(--tf-green);
  background: var(--brand-tint);
  border-radius: 999px;
  padding: 0.375rem 0.75rem;
  margin-block-end: 1.75rem;
}
.tfl-pill .tfl-pill__dot {
  inline-size: 6px;
  block-size: 6px;
  border-radius: 999px;
  background: var(--tf-green);
}

.tfl-h1 {
  font-weight: 700;
  font-size: clamp(2.375rem, 5vw, 3.625rem);
  line-height: 1.04;
  letter-spacing: -0.03em;
  margin: 0 0 1.375rem;
  max-inline-size: 17ch;
  text-wrap: pretty;
}

.tfl-lede {
  font-size: clamp(1.0625rem, 1.4vw, 1.15625rem);
  line-height: 1.65;
  color: var(--tf-slate);
  margin: 0 0 2.125rem;
  max-inline-size: 48ch;
  text-wrap: pretty;
}

.tfl-ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
  align-items: center;
  margin-block-end: 1.625rem;
}

.tfl-band {
  background: var(--tf-ground);
  border-block: 1px solid var(--tf-line);
  padding: clamp(2.75rem, 5vw, 4rem) clamp(1.25rem, 4vw, 2.5rem);
}

.tfl-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16.25rem, 1fr));
  gap: 1.25rem;
}

.tfl-card {
  background: var(--tf-surface);
  border: 1px solid var(--tf-line);
  border-radius: 12px;
  padding: 1.5rem;
}
.tfl-card .tfl-card__key {
  font-family: var(--tf-mono);
  font-size: 0.78125rem;
  color: var(--tf-green);
  margin-block-end: 0.75rem;
}
.tfl-card .tfl-card__title {
  margin: 0 0 0.5rem;
  font-size: 1.125rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.tfl-card .tfl-card__blurb {
  margin: 0;
  color: var(--tf-slate);
  font-size: 0.90625rem;
  line-height: 1.6;
  text-wrap: pretty;
}

.tfl-steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16.25rem, 1fr));
  gap: 1.25rem;
  margin-block-end: clamp(2rem, 4vw, 3rem);
}

.tfl-step {
  border-block-start: 2px solid var(--tf-line);
  padding-block-start: 1rem;
}
.tfl-step.is-first {
  border-block-start-color: var(--tf-ink);
}
.tfl-step .tfl-step__no {
  font-family: var(--tf-mono);
  font-size: 0.78125rem;
  color: var(--tf-mist);
  margin-block-end: 0.5rem;
}
.tfl-step .tfl-step__title {
  margin: 0 0 0.5rem;
  font-size: 1.0625rem;
  font-weight: 600;
}
.tfl-step .tfl-step__blurb {
  margin: 0;
  color: var(--tf-slate);
  font-size: 0.90625rem;
  line-height: 1.6;
  text-wrap: pretty;
}

.tfl-price__amount {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin-block-end: 0.625rem;
}

.tfl-price__figure {
  font-size: clamp(3rem, 5vw, 4rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1;
}

.tfl-price__unit {
  font-size: 0.9375rem;
  color: var(--tf-slate);
}

.tfl-tiers {
  border-top: 1px solid var(--tf-line);
  margin-block: 1.5rem 1.25rem;
}

.tfl-tier {
  display: grid;
  grid-template-columns: 9rem 12rem 1fr auto;
  gap: 0.5rem 1.5rem;
  align-items: baseline;
  padding: 1rem 0;
  border-bottom: 1px solid var(--tf-line-row);
}
.tfl-tier .tfl-btn {
  justify-self: end;
  min-inline-size: 10rem;
  text-align: center;
}
@media (max-width: 47.99rem) {
  .tfl-tier {
    grid-template-columns: 1fr auto;
  }
  .tfl-tier .tfl-tier__figure {
    text-align: end;
  }
  .tfl-tier .tfl-tier__holds, .tfl-tier .tfl-btn {
    grid-column: 1/-1;
  }
  .tfl-tier .tfl-btn {
    justify-self: start;
  }
}

.tfl-tier__name {
  font-weight: 600;
}

.tfl-tier__figure {
  font-family: var(--tf-mono);
  font-weight: 600;
}

.tfl-tier__vat {
  display: block;
  font-family: var(--tf-mono);
  font-size: 0.75rem;
  font-weight: 400;
  color: var(--tf-mist);
}

.tfl-tier__holds {
  color: var(--tf-slate);
  font-size: 0.9375rem;
}

.tfl-truths {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16.25rem, 1fr));
  gap: 1.25rem 2.5rem;
}

.tfl-closing {
  background: var(--tf-ink);
  color: #fff;
  text-align: center;
  padding: clamp(3.25rem, 6vw, 4.75rem) clamp(1.25rem, 4vw, 2.5rem);
}
.tfl-closing .tfl-closing__heading {
  margin: 0 0 0.75rem;
  font-size: clamp(1.75rem, 3.6vw, 2.375rem);
  font-weight: 700;
  letter-spacing: -0.025em;
}
.tfl-closing .tfl-closing__text {
  margin: 0 auto 1.75rem;
  color: var(--brand-deep-muted);
  font-size: 1.03125rem;
  line-height: 1.6;
  max-inline-size: 54ch;
  text-wrap: pretty;
}

.tfl-footer {
  padding: 1.875rem clamp(1.25rem, 4vw, 2.5rem);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
  border-block-start: 1px solid var(--tf-line);
}
.tfl-footer .tfl-footer__id {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  flex-wrap: wrap;
}
.tfl-footer .tfl-footer__name {
  font-size: 1rem;
  font-weight: 600;
}
.tfl-footer .tfl-footer__tagline {
  font-size: 0.875rem;
  color: var(--tf-mist);
}
.tfl-footer .tfl-footer__legal {
  display: flex;
  gap: 1.5rem;
  font-size: 0.875rem;
  color: var(--tf-mist);
  flex-wrap: wrap;
}
.tfl-footer .tfl-footer__legal a {
  color: inherit;
}

.tf-kilder {
  border-top: 1px solid var(--tf-line);
}

.tf-kilde {
  padding: 0.875rem 0;
  border-bottom: 1px solid var(--tf-line-row);
  display: grid;
  gap: 0.375rem;
}

.tf-kilde__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
}

.tf-kilde__name {
  font-weight: 600;
}

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

.tf-kilde__stop {
  font-size: 0.8125rem;
  color: var(--tf-warn-body);
  background: var(--tf-warn-ground);
  border-radius: var(--radius-sm, 4px);
  padding: 0.5rem 0.625rem;
}

.tf-kilde__actions {
  display: flex;
  gap: 1rem;
}

.tf-kilde__csv {
  display: grid;
  gap: 0.625rem;
}

.tf-inline {
  display: inline;
}

.tf-rowlink--danger {
  color: var(--tf-danger);
  text-decoration-color: var(--tf-danger);
}

button.tf-rowlink {
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  cursor: pointer;
}

.tf-consent__block {
  margin-block: 1.125rem;
  display: grid;
  gap: 0.25rem;
}

.tf-consent__block p {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.5;
}

.tf-consent__actions {
  display: grid;
  gap: 0.75rem;
  justify-items: center;
  margin-block-start: 1.5rem;
}

.tf-consent__actions .skiwo-btn {
  width: 100%;
}

.tf-csvmap {
  display: grid;
  gap: 0.5rem;
  margin-block: 0.625rem 1rem;
}

.tf-csvmap__row {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 0.625rem;
}

.tf-csvmap__arrow {
  color: var(--tf-slate);
}

.tf-emp {
  background: var(--tf-ground);
  min-height: 100vh;
  --tf-emp-gutter: 36px;
}

@media (max-width: 640px) {
  .tf-emp {
    --tf-emp-gutter: 16px;
  }
}
.tf-emp__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.875rem var(--tf-emp-gutter);
  background: var(--tf-surface);
  border-bottom: 1px solid var(--tf-line);
}

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

.tf-emp__head .tf-railbrand {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  color: var(--tf-ink);
}
.tf-emp__head .tf-railbrand .tf-railbrand__mark {
  width: 1.625rem;
  height: 1.625rem;
  border-radius: 7px;
  background: var(--tf-green);
  color: var(--tf-surface);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 0.875rem;
}
.tf-emp__head .tf-railbrand .tf-railbrand__name {
  font-weight: 800;
  font-size: 1.0625rem;
}

.tf-emp__tabs {
  background: var(--tf-surface);
  border-bottom: 1px solid var(--tf-line);
  padding-inline: var(--tf-emp-gutter);
}

.tf-emp__main > .skiwo-room {
  --skiwo-room-measure: 40rem;
}

.tf-kilder {
  border-top: 1px solid var(--tf-line);
}

.tf-kilde {
  padding: 0.875rem 0;
  border-bottom: 1px solid var(--tf-line-row);
  display: grid;
  gap: 0.375rem;
}

.tf-kilde__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
}

.tf-kilde__name {
  font-weight: 600;
}

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

.tf-kilde__stop {
  font-size: 0.8125rem;
  color: var(--tf-warn-body);
  background: var(--tf-warn-ground);
  border-radius: var(--radius-sm, 4px);
  padding: 0.5rem 0.625rem;
}

.tf-kilde__actions {
  display: flex;
  gap: 1rem;
}

.tf-kilde__csv {
  display: grid;
  gap: 0.625rem;
}

.tf-inline {
  display: inline;
}

.tf-rowlink--danger {
  color: var(--tf-danger);
  text-decoration-color: var(--tf-danger);
}

button.tf-rowlink {
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  cursor: pointer;
}

.tf-consent__block {
  margin-block: 1.125rem;
  display: grid;
  gap: 0.25rem;
}

.tf-consent__block p {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.5;
}

.tf-consent__actions {
  display: grid;
  gap: 0.75rem;
  justify-items: center;
  margin-block-start: 1.5rem;
}

.tf-consent__actions .skiwo-btn {
  width: 100%;
}

.tf-csvmap {
  display: grid;
  gap: 0.5rem;
  margin-block: 0.625rem 1rem;
}

.tf-csvmap__row {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 0.625rem;
}

.tf-csvmap__arrow {
  color: var(--tf-slate);
}

.tf-draftrow td, .tf-draftrow th {
  color: var(--tf-slate);
}

.tf-draftword {
  margin-inline-start: 0.5rem;
  font-size: 0.71875rem;
}

.tf-review__head {
  margin-bottom: 1rem;
}

.tf-review__nav {
  display: flex;
  align-items: baseline;
  gap: 0.625rem;
  flex-wrap: wrap;
}
.tf-review__nav h1 {
  margin: 0;
  font-size: 1.375rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.tf-review__range {
  font-size: 0.78125rem;
  color: var(--tf-slate);
  margin-inline-start: auto;
}

.tf-review__lead {
  margin: 0.375rem 0 0;
  font-size: 0.875rem;
  color: var(--tf-slate);
}
.tf-review__lead.is-waiting {
  color: var(--tf-warn);
  font-weight: 600;
}

.tf-review__day {
  padding: 0.75rem 0;
  border-top: 1px solid var(--tf-line-row);
  display: grid;
  gap: 0.25rem;
}
.tf-review__day.is-needs {
  background: var(--tf-warn-ground);
  margin-inline: -1rem;
  padding-inline: 1rem;
}

.tf-review__dayhead {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}

.tf-review__date {
  font-size: 0.78125rem;
  color: var(--tf-slate);
}

.tf-review__hours {
  font-size: 1.0625rem;
  font-weight: 500;
}

.tf-review__project {
  font-size: 0.625rem;
}

.tf-review__what {
  font-size: 0.875rem;
}
.tf-review__what.is-waiting {
  color: var(--tf-warn);
  font-weight: 600;
}

.tf-review__meta {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.75rem;
  color: var(--tf-slate);
}

.tf-review__because, .tf-review__basis {
  font-size: 0.75rem;
  color: var(--tf-slate);
}

.tf-review__source {
  font-size: 0.75rem;
  color: var(--tf-slate);
  text-align: end;
}

.tf-review__splitrow {
  display: grid;
  grid-template-columns: 3rem 1fr auto;
  gap: 0.5rem;
  align-items: baseline;
  font-size: 0.875rem;
}

.tf-review__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  margin-block-start: 0.25rem;
}

.tf-review__choose {
  display: flex;
  gap: 0.5rem;
  align-items: end;
  margin-block-start: 0.25rem;
}

.tf-review__foot {
  margin-block-start: 1rem;
  padding: 0.875rem 0;
  border-top: 1px solid var(--tf-line);
  display: grid;
  gap: 0.5rem;
}

.tf-review__sum {
  font-size: 1.25rem;
  font-weight: 500;
}

.tf-review__accept .skiwo-btn {
  width: 100%;
}

.tf-review__month {
  margin-block-start: 0.75rem;
  display: grid;
  gap: 0.375rem;
}

.tf-review__monthrow {
  display: flex;
  justify-content: space-between;
  font-size: 0.8125rem;
}
.tf-review__monthrow a {
  color: inherit;
  text-decoration: none;
}

.tf-review__empty {
  display: grid;
  gap: 0.75rem;
  padding-block: 1rem;
}
.tf-review__empty h2 {
  margin: 0;
  font-size: 1.125rem;
}

.tf-review__say {
  display: flex;
  gap: 0.5rem;
}
.tf-review__say input {
  flex: 1;
  min-width: 0;
  font: inherit;
  padding: 0.5rem 0.625rem;
  border: 1px solid var(--tf-line-input);
  border-radius: var(--radius-md, 6px);
}

.tf-agent__rules {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: 2rem;
  margin-block: 1rem;
}

.tf-agent__list {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0;
}
.tf-agent__list li {
  padding: 0.5rem 0;
  border-top: 1px solid var(--tf-line-row);
  font-size: 0.875rem;
}

.tf-coverage {
  margin-block: 1rem 1.25rem;
  display: grid;
  gap: 0.375rem;
}

.tf-coverage__line {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1rem;
  align-items: baseline;
}

.tf-coverage__figure {
  font-size: 1.0625rem;
  font-weight: 500;
}

.tf-coverage__part {
  font-size: 0.78125rem;
  color: var(--tf-slate);
}
.tf-coverage__part.is-waiting {
  color: var(--tf-warn);
  font-weight: 600;
}

.tf-coverage__unseen {
  display: flex;
  gap: 0.75rem;
  align-items: baseline;
}

.tf-monthrow th {
  padding-block-start: 1rem;
}

.tf-monthrow td {
  text-align: end;
  padding-block-start: 1rem;
}

.tf-td-actions {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  justify-content: flex-end;
}

.tf-td-sub {
  font-family: var(--tf-mono);
  font-size: 0.71875rem;
  color: var(--tf-slate);
  display: block;
}

.tf-td-meter {
  min-width: 9rem;
}

.tf-grandtotal th, .tf-grandtotal td {
  font-size: 1.0625rem;
  font-weight: 600;
  padding-block-start: 0.875rem;
}

.tf-grunnlag {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: 1.25rem;
  margin-block-start: 0.75rem;
}

.tf-months {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  flex-wrap: wrap;
}

.tf-months__dot {
  width: 1.125rem;
  height: 1.125rem;
  border-radius: 4px;
  font-family: var(--tf-mono);
  font-size: 0.625rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--tf-slate);
  background: var(--tf-panel);
}
.tf-months__dot.is-signed {
  background: var(--ok-tint);
  color: var(--tf-ok);
}
.tf-months__dot.is-waiting {
  background: var(--tf-warn-ground);
  color: var(--tf-warn);
}

.tf-months .tf-state {
  margin-inline-start: 0.5rem;
}

.tf-note--two {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: 1rem;
}
.tf-note--two p {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--tf-slate);
}

.tf-log {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--tf-line);
}

.tf-page .skiwo-field {
  margin-block-end: 1.25rem;
}
.tf-page .skiwo-field:last-of-type {
  margin-block-end: 0;
}
