/* Driftr v45: Today (Good Morning), Sunset Line, Take Me Home ride sheet, Pocket Card, Make it a vote.
   Owner: FE-TODAY. Every class here starts with td- (plan 3.6); never restyle another prefix or a d- class.
   Tokens only (theme.css); hex only where plan 3.6 allows it (the big phrase: #FFFFFF / #000000).
   prefers-reduced-motion: opacity only, 120 ms. Linked in index.html after theme.css. */

/* ---------- Today: heading (Main / Main-Dark boards) ---------- */
.td-today{padding-bottom:8px;}
.td-head{padding-top:28px;}
.td-overline{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:20px;}
.td-overline>p{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.td-greet{margin-top:4px;overflow-wrap:anywhere;}
.td-warm{margin-top:6px;color:var(--ink);}
.td-wx{display:flex;align-items:center;gap:8px;margin-top:10px;}
.td-wx[hidden]{display:none;}

/* ---------- Today: the road ---------- */
.td-road{margin-top:28px;}
.td-card{position:relative;}
.td-card-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;}
.td-card-top>p{margin:0;}
.td-readout{color:var(--brass-ink);font-weight:500;}
.td-readout .td-n{font-weight:600;}
.td-card-title{margin-top:6px;overflow-wrap:anywhere;}
.td-card-place{margin-top:2px;}
.td-card-tap{margin-top:12px;}
.td-go{margin-top:16px;}
.td-card+.d-on-road,.td-card+*{margin-top:12px;}
.td-list{list-style:none;margin:0;padding:0;}
.td-row,.td-more{width:100%;border:0;background:transparent;color:var(--ink);font:inherit;text-align:left;}
.td-row .d-pebble{pointer-events:none;}
.td-more-t{font-weight:600;color:var(--ink);}

/* the sun line: non-interactive, muted, a hairline on each side */
.td-sun{display:flex;align-items:center;gap:12px;min-height:32px;}
.td-sun-rule{flex:1;height:1px;background:var(--line);}
.td-sun-t{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;}

/* empty road (SYSTEM 5.13) */
.td-empty{min-height:160px;}
.td-empty .d-on-road{padding-top:2px;}
.td-empty-pebble{top:12px;margin-top:0;}
.td-empty-sub{margin-top:4px;}
.td-empty-go{margin-top:16px;}

/* Take me home slab (Main-Dark board) and the quiet Pocket card row */
.td-home{padding-top:28px;}
.td-home-btn{min-height:72px;padding:14px 16px 14px 20px;align-items:center;text-align:left;}
.td-home-l{display:flex;align-items:center;gap:14px;min-width:0;}
.td-home-text{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;}
.td-home-t{font:600 var(--fs-body)/1.3 var(--font);}
.td-home-sub{font-weight:400;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.td-pocket{padding-top:12px;}
.td-quietrow{display:grid;grid-template-columns:22px minmax(0,1fr) 18px;align-items:center;gap:12px;width:100%;min-height:52px;padding:4px 2px;border:0;background:transparent;color:var(--ink);font:500 var(--fs-body-sm)/1.4 var(--font);text-align:left;cursor:pointer;}
.td-quietrow:active{opacity:.7;}
.td-quietrow .d-ic{color:var(--ink-2);}
.td-quietrow-main{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* ---------- Ride sheet (Ride board) ---------- */
.td-route{position:relative;border-radius:var(--r-md);background:var(--well);box-shadow:var(--in);padding:0 6px 0 16px;}
.td-route-row{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:60px;padding:6px 0;}
.td-route-to{border-top:1px solid var(--line);}
.td-route-dot{position:relative;z-index:1;width:12px;height:12px;margin-left:3px;border-radius:50%;background:var(--well);box-shadow:inset 0 0 0 2px var(--ink-2);}
.td-route-line{position:absolute;left:24px;top:37px;height:42px;border-left:2px dashed var(--road);}
.td-route-ic{position:relative;z-index:1;background:var(--well);color:var(--ink);}
.td-route-main{display:flex;flex-direction:column;min-width:0;}
.td-route-place{font:500 var(--fs-body)/1.35 var(--font);overflow-wrap:break-word;}
.td-route-row:not(.td-route-to){grid-template-columns:18px minmax(0,1fr);}
.td-ride-note{margin-top:8px;}
.td-ride-first{padding-top:16px;}
.td-ride-go{align-items:center;}
.td-ride-go-l{display:flex;align-items:center;gap:12px;flex:none;white-space:nowrap;}
.td-cap{font-weight:500;color:var(--on-brass);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right;}
.td-ride-row{display:grid;grid-template-columns:minmax(0,1fr) 20px;align-items:center;gap:12px;min-height:60px;padding:8px 0;color:var(--ink);text-decoration:none;}
.td-ride-row:active{opacity:.7;}
.td-ride-row-main{display:flex;flex-direction:column;min-width:0;}
.td-ride-name{font:500 var(--fs-body)/1.35 var(--font);}
.td-ride-first+.td-ride-row{margin-top:4px;}
.td-walk{grid-template-columns:22px minmax(0,1fr) 20px;border-top:1px solid var(--line);margin-top:4px;}
.td-ride-div{padding-top:12px;}
.td-osm{display:flex;align-items:center;flex-wrap:wrap;gap:0 4px;margin-top:8px;}
.td-osm a{display:inline-flex;align-items:center;min-height:var(--tap);color:var(--ink-2);text-decoration:underline;}

/* ---------- Pocket card (Pocket board) ---------- */
.td-driver{margin-top:8px;}
.td-addr{margin-top:6px;overflow-wrap:anywhere;}
.td-driver-t{margin-top:12px;font-weight:500;}
.td-driver-go{margin-top:16px;}
.td-phrases{display:flex;flex-direction:column;gap:10px;margin:20px 0 0;padding:0;list-style:none;}
.td-phrase{display:grid;grid-template-columns:minmax(0,1fr) 18px;align-items:center;gap:12px;width:100%;min-height:64px;padding:10px 16px 10px 18px;border:0;border-radius:var(--r-md);background:var(--ground);color:var(--ink);box-shadow:var(--e1);text-align:left;font:inherit;cursor:pointer;transition:box-shadow 120ms var(--ease);}
.td-phrase:active{box-shadow:var(--in);}
.td-phrase-text{display:flex;flex-direction:column;min-width:0;}
.td-pt{font:600 var(--fs-head)/1.3 var(--font);letter-spacing:-.01em;overflow-wrap:anywhere;}
.td-pe{display:block;margin-top:2px;font:400 var(--fs-body-sm)/1.4 var(--font);color:var(--ink-2);}
.td-note{margin-top:12px;}
.td-sos{margin-top:20px;min-height:64px;align-items:center;}
.td-sos+.td-sos{margin-top:12px;}
.td-sos-l{display:flex;align-items:center;gap:12px;}
.td-sos-text{display:flex;flex-direction:column;align-items:flex-start;}
.td-facts{display:flex;flex-direction:column;gap:16px;margin-top:20px;padding:0 18px;}
.td-fact{display:grid;grid-template-columns:22px minmax(0,1fr);gap:12px;}
.td-fact .d-ic{margin-top:1px;}
.td-fact-main{min-width:0;}
.td-fact-label{font-weight:500;}
.td-check{display:inline-flex;align-items:center;gap:6px;margin:16px 0 8px 18px;}

/* the big phrase: white on purpose, whatever the theme (it is shown to a stranger) */
.td-big{position:fixed;inset:0;z-index:300;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px max(24px, env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));background:#FFFFFF;color:#000000;text-align:center;cursor:pointer;animation:td-fade 160ms var(--ease);}
.td-big p{margin:0;max-width:100%;overflow-wrap:anywhere;}
.td-big-t{font:700 clamp(2.4rem,11vw,4.5rem)/1.1 var(--font);letter-spacing:-.02em;}
.td-big-say{font:500 1.25rem/1.4 var(--font);}
.td-big-en{font:400 1rem/1.4 var(--font);color:rgba(0,0,0,.72);}
.td-big-hint{position:absolute;left:0;right:0;bottom:calc(20px + env(safe-area-inset-bottom));font:500 var(--fs-label)/1.4 var(--font);color:rgba(0,0,0,.66);}
.td-big:focus{outline:none;}
@keyframes td-fade{from{opacity:0}to{opacity:1}}

/* ---------- Make it a vote ---------- */
.td-picks{display:flex;flex-direction:column;gap:4px;}
.td-pick{display:flex;align-items:center;gap:14px;width:100%;min-height:52px;padding:6px 2px;border:0;background:transparent;color:var(--ink);font:500 var(--fs-body)/1.35 var(--font);text-align:left;cursor:pointer;}
.td-pick-box{display:inline-flex;align-items:center;justify-content:center;flex:none;width:28px;height:28px;border-radius:8px;background:var(--ground);box-shadow:var(--e1);color:transparent;}
.td-pick[aria-checked="true"] .td-pick-box{background:var(--well);box-shadow:var(--in);color:var(--ink);}
.td-pick-name{min-width:0;overflow-wrap:anywhere;}
.td-vote-label{margin-top:16px;margin-bottom:6px;}
/* the time picker: the segmented look (pressed track, raised pick) with full 44 px segments */
.td-seg{display:flex;gap:4px;padding:4px;border-radius:var(--r-pill);background:var(--well);box-shadow:var(--in);}
.td-seg-b{flex:1;min-height:var(--tap);border:0;border-radius:var(--r-pill);background:transparent;color:var(--ink-2);font:500 .9375rem/1.2 var(--font);cursor:pointer;}
.td-seg-b[aria-pressed="true"]{background:var(--ground);color:var(--ink);font-weight:600;box-shadow:var(--e1);}
.td-vote-note{margin-top:12px;}

@media (prefers-reduced-motion:reduce){
  .td-big{animation:td-fade 120ms linear;}
  .td-phrase{transition:none;}
}
