/* Direction E (v12, round 2: past courses with SWOT, goals, buddies): one line of dates. Tokens only, no raw hex, no shadow, no gradient. */
.tl-switch{background:var(--color-card);border-radius:var(--radius-sm);padding:var(--s-3) var(--s-4);margin:0 0 var(--s-6)}
.tl-switch p{margin:0 0 var(--s-2);font-size:var(--t-base);line-height:1.4;color:var(--color-muted)}
.tl-switch-links{display:flex;flex-wrap:wrap;gap:var(--s-2)}
.tl-switch .btn{display:inline-flex;align-items:center;min-height:44px}
.tl-h1{margin:0 0 var(--s-2);font-family:var(--font-head);font-size:var(--t-2xl);font-weight:700;line-height:1.15;color:var(--color-ink)}
.tl-lead{margin:0 0 var(--s-4);max-width:60ch;font-size:var(--t-base);line-height:1.5;color:var(--color-body)}
.tl-primary{margin:0 0 var(--s-6)}
.tl-primary .btn{display:inline-flex;align-items:center;min-height:44px}
.tl-sheet{max-width:60rem;background:var(--color-card);border-radius:var(--radius);padding:var(--s-5) var(--s-5) var(--s-4)}
.tl-h2{margin:0 0 var(--s-4);font-family:var(--font-head);font-size:var(--t-lg);font-weight:700;color:var(--color-ink)}
.tl{list-style:none;margin:0 0 var(--s-5);padding:0}
.tl-item{position:relative;display:grid;grid-template-columns:14rem minmax(0,1fr);padding-bottom:var(--s-4)}
.tl-item::before{content:"";position:absolute;left:14rem;top:0;bottom:0;width:1px;background:var(--color-line)}
.tl-item::after{content:"";position:absolute;left:calc(14rem - 5px);top:calc(var(--s-3) + 6px);width:11px;height:11px;border-radius:999px;background:var(--color-ink)}
.tl-date{padding:var(--s-3) var(--s-5) 0 0;text-align:right;font-size:var(--t-base);font-weight:700;line-height:1.4;color:var(--color-ink)}
.tl-row{align-items:flex-start;flex-wrap:wrap;gap:var(--s-3) var(--s-4);margin-left:var(--s-5);border-radius:var(--radius-sm)}
.tl-row .what{flex:1 1 16rem;min-width:0;max-width:34rem}
.tl-row .what h3{margin:0;font-family:var(--font-head);font-size:var(--t-lg);font-weight:600;line-height:1.3;color:var(--color-ink)}
.tl-row .what .meta{margin:var(--s-1) 0 0;font-size:var(--t-base);line-height:1.5;color:var(--color-muted)}
.tl-row .what .meta a{color:var(--color-accent-text)}
.tl-row .btn{display:inline-flex;align-items:center;min-height:44px}
.tl-open{background:var(--color-bg)}
.tl-own{background:var(--color-card);border:1px solid var(--color-line)}
.tl-row.mine{background:var(--color-card);border:1px solid var(--color-line);border-left:4px solid var(--color-accent);padding-left:calc(var(--s-4) - 4px)}
.tl-past{padding-left:0;padding-right:0}
.tl-past .what h3{font-weight:600}
.tl-past .what .meta{color:var(--color-body)}
.tl-prog{margin-top:var(--s-3)}
.tl-prog .progress,.tl-row .what>.progress{margin-top:var(--s-2)}
.tl-bar-0>i{width:0}
.tl-bar-3>i{width:12.5%}
.tl-bar-9>i{width:37.5%}
.tl-bar-24>i{width:100%}
.tl-people{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);margin:var(--s-3) 0 0;font-size:var(--t-base);line-height:1.5;color:var(--color-body)}
.tl-avs{display:flex;flex-wrap:wrap;gap:var(--s-1)}
.tl-av{width:32px;height:32px;letter-spacing:0;font-size:var(--t-sm)}
.tl-people>span:last-child{flex:1 1 14rem;min-width:0}
.tl-log{margin-top:var(--s-3)}
.tl-log-head{margin:0;font-size:var(--t-base);font-weight:700;color:var(--color-ink)}
.tl-log h4{margin:var(--s-4) 0 var(--s-1);font-size:var(--t-base);font-weight:700;color:var(--color-ink)}
.tl-sub{margin-top:var(--s-3)}
.tl-kv{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:var(--s-1) var(--s-4);margin:var(--s-1) 0 0;font-size:var(--t-base);line-height:1.5}
.tl-kv dt{margin:0;font-weight:600;color:var(--color-ink)}
.tl-kv dd{margin:0;color:var(--color-body)}
.tl-flights{margin:0;padding:0 0 0 var(--s-5);font-size:var(--t-base);line-height:1.45;color:var(--color-body)}
.tl-flights li{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:var(--s-4);padding:var(--s-1) 0}
.tl-flights .mn{font-weight:600;color:var(--color-ink)}
.tl-flights .ok{font-size:var(--t-sm);font-weight:600;color:var(--color-success-ink)}
.tl-flights .again{font-size:var(--t-sm);font-weight:600;color:var(--color-warning-ink)}
.tl-flights .note{grid-column:1 / -1;font-size:var(--t-sm);color:var(--color-muted)}
.tl-today{margin:var(--s-2) 0 var(--s-5);background:var(--color-ink);border-radius:var(--radius-sm);padding:var(--s-3) var(--s-4)}
.tl-today p{margin:0;font-size:var(--t-lg);font-weight:700;line-height:1.3;color:var(--color-card)}
.tl-sheet a:focus-visible,.tl-switch a:focus-visible,.tl-primary a:focus-visible{outline:3px solid var(--color-accent-text);outline-offset:2px}
@media (max-width:719.98px){
  .tl-sheet{padding:var(--s-4) var(--s-4) var(--s-2)}
  .tl-item{display:block;padding-left:var(--s-5)}
  .tl-item::before{left:5px}
  .tl-item::after{left:0;top:calc(var(--s-1) + 6px)}
  .tl-date{padding:var(--s-1) 0 var(--s-2);text-align:left}
  .tl-row{margin-left:0}
  .tl-past{padding-left:0}
  .tl-row .btn{width:100%;justify-content:center}
  .tl-kv{grid-template-columns:minmax(0,1fr)}
  .tl-kv dd{margin-bottom:var(--s-2)}
}
@media (prefers-reduced-motion:reduce){.tl-sheet *{transition:none}}
