/* Twokulu identity: type, colour, spacing and the small shared controls.
   Loaded first on every page, including both packaged trips. Trip content keeps its own layout
   and reads these tokens through the shared presentation. Fonts are served from this origin only. */
@font-face{font-family:Outfit;font-style:normal;font-weight:500;font-display:swap;src:url('/auth/outfit-500.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Outfit;font-style:normal;font-weight:700;font-display:swap;src:url('/auth/outfit-700.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url('/auth/inter-400.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url('/auth/inter-500.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
 /* White throughout. Two neutral greys only: a hairline for dividers and a well for tracks and inputs. */
 --tk-surface:#ffffff;--tk-surface-raised:#ffffff;--tk-surface-sunken:#f3f3f3;--tk-line:#e9e9e9;--tk-line-strong:#cfcfcf;
 --tk-ink:#141414;--tk-ink-muted:#6f6f6f;--tk-ink-faint:#a3a3a3;--tk-primary:var(--tk-ink);--tk-on-primary:#ffffff;
 --tk-shadow:0 1px 2px rgb(0 0 0 / .05),0 10px 30px rgb(0 0 0 / .08);
 --tk-forest:#2f6b4f;--tk-forest-soft:#e3efe8;--tk-ochre:#d9a441;--tk-ochre-soft:#f6ebd2;--tk-on-ochre:#1c2331;
 --tk-indigo:#2e4a8b;--tk-indigo-soft:#e2e7f3;--tk-brick:#b8463f;--tk-brick-soft:#f5e1df;--tk-link:var(--tk-indigo);--tk-focus:var(--tk-indigo);
 --tk-space-1:4px;--tk-space-2:8px;--tk-space-3:12px;--tk-space-4:16px;--tk-space-5:24px;--tk-space-6:32px;--tk-space-7:48px;--tk-space-8:64px;
 --tk-radius-sm:6px;--tk-radius-md:10px;--tk-radius-lg:16px;--tk-radius-pill:999px;
 --tk-control-sm:32px;--tk-control-md:40px;--tk-control-lg:48px;--tk-touch-min:44px;
 --tk-font-display:Outfit,"Helvetica Neue",Arial,sans-serif;
 --tk-font-sans:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
 /* Outfit Medium and Bold and Inter Regular/Medium ship. Bold is for the large words: page titles, money, the turn total. */
 font-synthesis:none;
}
/* Logo: the ring, four stops and the open end are always drawn, at every size. */
.tk-logo{display:inline-flex;align-items:center;gap:.28em;color:var(--tk-ink);line-height:1;text-decoration:none;vertical-align:middle}
.tk-logo-mark{display:block;flex:none;width:1.15em;height:1.15em}
.tk-logo-word{font-family:var(--tk-font-display);font-weight:500;font-size:1em;letter-spacing:-.025em;padding-bottom:.06em}
/* Button */
.tk-btn{font-family:var(--tk-font-sans);font-size:15px;line-height:20px;font-weight:500;height:var(--tk-control-md);padding:0 var(--tk-space-5);border-radius:var(--tk-radius-pill);border:1px solid var(--tk-line-strong);background:var(--tk-surface-raised);color:var(--tk-ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--tk-space-2);white-space:nowrap;text-decoration:none;box-sizing:border-box}
.tk-btn:hover{border-color:var(--tk-ink-muted)}
.tk-btn:focus-visible{outline:2px solid var(--tk-focus);outline-offset:2px}
.tk-btn:disabled{color:var(--tk-ink-faint);border-color:var(--tk-line);cursor:default}
.tk-btn-primary{background:var(--tk-primary);border-color:var(--tk-primary);color:var(--tk-on-primary)}
.tk-btn-primary:hover{border-color:var(--tk-primary);opacity:.92}
.tk-btn-primary:disabled{background:var(--tk-line);border-color:var(--tk-line);color:var(--tk-ink-faint);opacity:1}
.tk-btn-quiet{background:transparent;border-color:transparent}
.tk-btn-quiet:hover{background:var(--tk-surface-sunken);border-color:transparent}
.tk-btn-danger{background:var(--tk-surface-raised);border-color:var(--tk-brick);color:var(--tk-brick)}
.tk-btn-danger:hover{background:var(--tk-brick-soft);border-color:var(--tk-brick)}
.tk-btn-sm{height:var(--tk-control-sm);font-size:13px;line-height:18px;padding:0 var(--tk-space-4)}
.tk-btn-lg{height:var(--tk-control-lg);font-size:16px;padding:0 var(--tk-space-5)}
.tk-btn-full{width:100%}
/* Chip: a coloured dot and a word, one of four states. No filled pill. */
.tk-chip{display:inline-flex;align-items:center;gap:var(--tk-space-2);height:22px;padding:0;font-family:var(--tk-font-sans);font-size:13px;line-height:18px;font-weight:500;color:var(--tk-ink-muted);white-space:nowrap}
.tk-chip-dot{width:8px;height:8px;border-radius:50%;background:var(--tk-ink-faint);flex:none}
.tk-chip-planning .tk-chip-dot{background:var(--tk-indigo)}
.tk-chip-booked .tk-chip-dot{background:var(--tk-ochre)}
.tk-chip-been .tk-chip-dot{background:var(--tk-forest)}
.tk-chip-problem .tk-chip-dot{background:var(--tk-brick)}
/* Input */
.tk-field{display:flex;flex-direction:column;gap:var(--tk-space-2);min-width:0}
.tk-label{font-family:var(--tk-font-sans);font-size:13px;line-height:18px;font-weight:500;letter-spacing:.01em;color:var(--tk-ink)}
.tk-input{font-family:var(--tk-font-sans);font-size:16px;line-height:24px;height:var(--tk-control-md);padding:0 var(--tk-space-3);border-radius:var(--tk-radius-sm);border:1px solid var(--tk-line-strong);background:var(--tk-surface-raised);color:var(--tk-ink);width:100%;box-sizing:border-box}
.tk-input::placeholder{color:var(--tk-ink-muted)}
.tk-input:hover{border-color:var(--tk-ink-muted)}
.tk-input:focus-visible{outline:2px solid var(--tk-focus);outline-offset:2px;border-color:var(--tk-line-strong)}
.tk-input[aria-invalid="true"]{border-color:var(--tk-brick)}
.tk-hint{font-family:var(--tk-font-sans);font-size:12px;line-height:16px;color:var(--tk-ink-muted)}
.tk-hint-error{color:var(--tk-brick)}
/* Segmented navigation: a pill track; the active item is raised, nothing is coloured. */
.tk-seg{display:inline-flex;padding:var(--tk-space-1);gap:var(--tk-space-1);border-radius:var(--tk-radius-pill);background:var(--tk-surface-sunken);border:0;box-sizing:border-box}
.tk-seg-item{font-family:var(--tk-font-sans);font-size:14px;line-height:20px;font-weight:500;height:32px;padding:0 var(--tk-space-4);border-radius:var(--tk-radius-pill);border:0;background:transparent;color:var(--tk-ink-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--tk-space-2);text-decoration:none;box-sizing:border-box}
.tk-seg-item:hover{color:var(--tk-ink)}
.tk-seg-item:focus-visible{outline:2px solid var(--tk-focus);outline-offset:2px}
.tk-seg-item.is-active,.tk-seg-item[aria-current]{background:var(--tk-surface-raised);color:var(--tk-ink);box-shadow:0 1px 2px rgb(0 0 0 / .08)}
