/* Driftr v45: Plan tab, Day view, item rows and panel, maps picker, Reserve, Did you book it?, drag, item dialogs.
   Owner: FE-DAY. Every class here starts with dy- (plan 3.6); never restyle another prefix or a d- class.
   Tokens only (theme.css). prefers-reduced-motion: opacity only, 120 ms.
   Boards: Day, Day-Dark (drag), Item-Rows (row, walk pill, expanded well), Reserve (sheets). */

/* ---------- the road as a list ---------- */
.dy-road{list-style:none;margin:14px 0 0;padding-block:0 8px;}
.dy-road>li{list-style:none;z-index:1;}
.dy-item{position:relative;z-index:1;border-radius:var(--r-md);transition:background 200ms var(--ease),box-shadow 200ms var(--ease),margin 200ms var(--ease),padding 200ms var(--ease);}
.dy-item>.d-pebble{pointer-events:none;}
.dy-item>.d-pebble-now{top:50%;margin-top:-10px;}
.dy-leaving{opacity:.45;}

/* ---------- the row: one grid area, the body under everything, the walk pill layered on its trailing column ---------- */
.dy-head{display:grid;grid-template-columns:minmax(0,1fr) 10px auto;align-items:center;min-height:60px;}
.dy-head.dy-nowalk{grid-template-columns:minmax(0,1fr) 0 0;}
.dy-body{position:relative;grid-column:1/-1;grid-row:1;display:grid;grid-template-columns:subgrid;align-items:center;align-self:stretch;
  min-height:60px;margin:0;margin-inline-start:-40px;padding:8px 0;padding-inline-start:40px;border:0;border-radius:var(--r-md);
  background:none;color:inherit;font:inherit;text-align:start;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;
  -webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background 120ms var(--ease);}
.dy-body-static{cursor:default;}
.dy-body>.dy-main{grid-column:1;grid-row:1;}
.dy-body>.dy-caret{grid-column:1;grid-row:1;justify-self:end;}
.dy-body.is-pressing,.dy-armed .dy-body{background:var(--well);}
/* a held stop that can move lifts like the card it becomes (drag.js); a phone without a buzz (iPhone) sees it too */
.dy-lift .dy-body{background:var(--card);box-shadow:var(--e2);transform:scale(1.02);transition:transform 120ms var(--ease),box-shadow 120ms var(--ease);}
@media (prefers-reduced-motion:reduce){.dy-lift .dy-body{transform:none;}}
@supports not (grid-template-columns:subgrid){
  .dy-body{display:flex;align-items:center;padding-inline-end:104px;}
  .dy-nowalk .dy-body{padding-inline-end:0;}
  .dy-body>.dy-main{flex:1;}
}
.dy-main{display:flex;flex-direction:column;min-width:0;padding-inline-end:26px;}
.dy-body-static>.dy-main{padding-inline-end:0;}
.dy-l1{display:flex;align-items:center;flex-wrap:wrap;gap:2px 10px;color:var(--ink-2);}
.dy-l1 .d-status{gap:4px;}
.dy-now{color:var(--brass-ink);font-weight:600;}
.dy-title{font:500 var(--fs-body)/1.35 var(--font);color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;}
.dy-l3{color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dy-caret{color:var(--ink-2);transform:rotate(90deg);transition:transform 200ms var(--ease);}
.dy-body[aria-expanded="true"] .dy-caret{transform:rotate(-90deg);}
.dy-caret.dy-push{transform:none;}
[dir="rtl"] .dy-caret.dy-push{transform:scaleX(-1);}

/* the walk pill (Item-Rows board): icon + "7 min"; its hit box runs to the screen edge and 8 px above and below */
.dy-walk{grid-column:3;grid-row:1;position:relative;z-index:1;justify-self:end;display:inline-flex;align-items:center;justify-content:center;gap:6px;
  min-height:var(--tap);min-width:80px;padding:0 13px 0 11px;border:0;border-radius:var(--r-pill);background:var(--ground);box-shadow:var(--e1);
  color:var(--ink);font:400 .9375rem/1 var(--font);text-decoration:none;white-space:nowrap;cursor:pointer;
  -webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:box-shadow 120ms var(--ease);}
.dy-walk::before{content:"";position:absolute;inset-block:-8px;inset-inline-start:-4px;inset-inline-end:calc(-1 * var(--gutter));}
.dy-walk:active{box-shadow:var(--in);}
.dy-walk b{font-weight:600;}
[dir="rtl"] .dy-walk .d-ic{transform:scaleX(-1);}

/* ---------- expanded: the item sinks into a well; the panel opens below the head ---------- */
.dy-item.is-open{background:var(--well);box-shadow:var(--in);margin-block:4px 8px;margin-inline:-12px -10px;padding:0 10px 14px 12px;}
.dy-item.is-open>.d-pebble{top:30px;left:-24px;}
.dy-item.is-open>.d-pebble-now{top:20px;left:-28px;}
.dy-panel{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows 200ms var(--ease),visibility 0s 200ms;}
.dy-item.is-open .dy-panel{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows 200ms var(--ease);}
.dy-panel-in{overflow:hidden;min-height:0;}
.dy-detail{display:flex;flex-direction:column;gap:10px;padding:2px 2px 2px;opacity:0;transform:translateY(-4px);transition:opacity 200ms var(--ease),transform 200ms var(--ease);}
.dy-item.is-open .dy-detail{opacity:1;transform:none;}
.dy-instant,.dy-instant *{transition:none!important;}
.dy-place{margin-top:-4px;}
.dy-noaddr{display:flex;align-items:center;flex-wrap:wrap;gap:0 12px;}
.dy-prow{display:flex;align-items:center;gap:12px;width:100%;min-height:var(--tap);margin:0;padding:0;border:0;background:none;color:var(--ink);font:inherit;text-align:start;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.dy-prow-text{flex:1;min-width:0;display:flex;flex-direction:column;}
.dy-detail .dy-prow-text{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;}
.dy-detail .dy-prow:active{opacity:.7;}
/* the Maps row of a meal or a stop its place names: the address over "Hours and photos" (placename.js) */
.dy-detail .dy-maps .dy-prow-text{flex-direction:column;align-items:flex-start;justify-content:center;gap:0;padding-block:4px;}
.dy-quiet{min-height:var(--tap);min-width:var(--tap);padding:10px 6px;font-size:.9375rem;}
.dy-quiet[aria-pressed="true"]{background:var(--ground);box-shadow:var(--e1);padding:10px 14px;}
.dy-quiets{display:flex;flex-wrap:wrap;align-items:center;gap:0 14px;}
.dy-notes{white-space:pre-line;overflow-wrap:break-word;color:var(--ink);}
.dy-reserve-block{display:flex;flex-direction:column;gap:4px;}
.dy-reserve-row{display:flex;align-items:center;gap:10px;}
.dy-reserve{flex:1;min-width:0;min-height:48px;padding:10px 16px;}
.dy-slab-l{display:flex;align-items:center;gap:10px;}
.dy-booked{display:flex;flex-direction:column;gap:2px;}
.dy-booked-line{display:flex;align-items:center;gap:6px;min-height:32px;color:var(--sage-ink);font-weight:500;}
.dy-code{color:var(--ink);}
.dy-going{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;}
.dy-whorow .d-av-stack{margin-inline-start:auto;flex:none;}
.dy-whorow .dy-prow-text{overflow:hidden;}
.dy-whorow .dy-prow-text .d-t-body-sm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dy-votes{display:flex;flex-direction:column;gap:4px;}
.dy-optlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;}
.dy-optlist .dy-lead{font-weight:600;}
.dy-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;padding-top:6px;border-top:1px solid var(--line);}
.dy-foot-l{display:flex;flex-wrap:wrap;align-items:center;gap:0 10px;}
.dy-by{margin-inline-start:auto;}

/* sealed stub fallback and folded done stops */
.dy-stub-faces{grid-column:3;grid-row:1;display:flex;align-items:center;}
.dy-fold .dy-title{font:600 var(--fs-body-sm)/1.4 var(--font);}
.dy-wrap{list-style:none;}

/* the Sunset / Sunrise line on the road */
.dy-sun{display:flex;align-items:center;gap:10px;min-height:32px;color:var(--ink-2);}
.dy-sun::before,.dy-sun::after{content:"";flex:1;height:1px;background:var(--line);}

/* ---------- the Day header (pinned under the top bar) ---------- */
.dy-dayhead{position:sticky;top:0;z-index:5;margin:0 calc(-1 * var(--gutter));padding:16px var(--gutter) 8px;background:var(--ground);}
.dy-dayhead-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.dy-dayhead-text{min-width:0;}
.dy-dayhead .d-t-title{margin-top:2px;}
.dy-dayline{margin-top:2px;}
.dy-dayline:empty{display:none;}

/* ---------- Plan tab root ---------- */
.dy-planhead{position:sticky;top:0;z-index:5;margin:0 calc(-1 * var(--gutter));padding:8px 0 4px;background:var(--ground);}
.dy-chiprow{display:flex;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;padding:8px var(--gutter) 10px;scroll-padding-inline:var(--gutter);
  -webkit-mask-image:linear-gradient(90deg,transparent,black 10px,black calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,transparent,black 10px,black calc(100% - 28px),transparent);}
.dy-chiprow>*{flex:none;}
.dy-chiprow .d-chip{min-height:var(--tap);}
.dy-savedhead .d-seg button{min-height:var(--tap);}
.d-sheet .dy-chiprow{margin:0 calc(-1 * var(--gutter));}
.dy-glaze{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none;}
.dy-strip{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;padding:6px var(--gutter) 12px;
  -webkit-mask-image:linear-gradient(90deg,transparent,black 10px,black calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,transparent,black 10px,black calc(100% - 28px),transparent);}
.dy-strip-day{flex:none;min-width:54px;min-height:68px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 8px;border:0;border-radius:var(--r-md);
  background:var(--ground);box-shadow:var(--e1);color:var(--ink-2);font:inherit;cursor:pointer;transition:box-shadow 120ms var(--ease);}
.dy-strip-day:active{box-shadow:var(--in);}
.dy-strip-n{font:600 1.0625rem/1.2 var(--font);color:var(--ink);}
.dy-strip-day.is-today .d-t-micro{color:var(--sage-ink);font-weight:600;}
.dy-wx{display:flex;align-items:center;gap:2px;min-height:16px;color:var(--ink-2);}
.dy-wx .d-ic-sm{width:16px;height:16px;}
.dy-wx.is-far{opacity:.75;}
.dy-days .dy-title{font-weight:600;}
.dy-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:16px;}
.dy-links{display:flex;flex-direction:column;margin-top:20px;}
.dy-link{min-height:56px;}

/* empty states (SYSTEM 5.13) */
.dy-empty{margin-top:24px;min-height:160px;}
.dy-empty .d-on-road,.dy-empty-li{padding-top:2px;}
.dy-empty .d-pebble,.dy-empty-li>.d-pebble{top:12px;margin-top:0;}
.dy-empty .d-btn,.dy-empty-li .d-btn{margin-top:16px;}
.dy-empty-li{min-height:150px;}
.dy-empty .d-t-body-sm,.dy-empty-li .d-t-body-sm{margin-top:4px;}

/* ---------- Saved and Bookings ---------- */
.dy-savedhead{margin:16px 0 4px;}
.dy-rowacts{grid-column:2/-1;grid-row:1;z-index:1;display:flex;align-items:center;justify-self:end;}
.dy-nowalk .dy-rowacts{grid-column:1;}
.dy-footnote{margin-top:12px;}
.dy-leghead{display:flex;align-items:center;min-height:52px;margin-top:12px;}
.dy-focal-li{margin:8px 0 14px;}
.dy-readout{color:var(--brass-ink);font-weight:600;}
.dy-focal .d-t-title{margin-top:6px;}
.dy-focal .d-btn-primary{margin-top:16px;}

/* ---------- drag (Day-Dark board) ---------- */
.dy-origin{min-height:0!important;height:0;overflow:hidden;opacity:0;margin:0!important;padding:0!important;}
.dy-ghost{position:fixed;z-index:90;display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:12px;min-height:56px;padding:8px 16px 8px 14px;
  border-radius:var(--r-md);background:var(--card);box-shadow:var(--e2);color:var(--ink);transform:rotate(-1.5deg);pointer-events:none;}
.dy-ghost .dy-main{padding:0;}
.dy-drop{position:relative;min-height:84px;margin:6px 0;padding:28px 16px 12px;border-radius:var(--r-md);background:var(--well);box-shadow:var(--in);}
.dy-drop>.d-pebble{top:auto;bottom:22px;margin-top:0;}
.dy-drop-ask{padding-top:16px;}
.dy-conseq{display:flex;align-items:center;gap:6px;margin-top:2px;color:var(--ink);}
.dy-conseq .d-ic{flex:none;}
.dy-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:0;}

/* ---------- sheets: picker, menu, Reserve, Did you book it?, Move to ---------- */
.dy-picklist,.dy-menu{display:flex;flex-direction:column;}
.dy-pick{min-height:56px;}
.dy-menu-row{min-height:52px;}
.dy-danger{color:var(--alert-ink);}
.dy-setrow{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;margin:0;padding:0;border:0;background:none;color:var(--ink);font:inherit;text-align:start;cursor:pointer;}
.dy-setrow>.d-t-body{flex:1;min-width:0;}
.dy-reserve-sheet{display:flex;flex-direction:column;}
.dy-reserve-edit{margin-top:8px;}
.dy-ways-head{margin-top:16px;}
.dy-way{display:flex;align-items:center;gap:12px;min-height:56px;color:var(--ink);text-decoration:none;}
.dy-ways-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px;}
.dy-stepper{display:flex;align-items:center;gap:16px;min-height:52px;}
.dy-step-n{min-width:2ch;text-align:center;}
.dy-answers{display:flex;gap:12px;margin-top:4px;}
.dy-answer{flex:1;}
.dy-answer[aria-pressed="true"]{background:var(--well);box-shadow:var(--in);}
.dy-table-fields{display:flex;flex-direction:column;gap:12px;margin-top:20px;}
.dy-table-fields[hidden],.d-sheet-foot>[hidden]{display:none;}
.dy-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;}
/* the stop sheet's Time and Day (v46.2.1): side by side while the day reads whole ("Austin, Thu 8 Oct"), else each on its own line */
.dy-two-fit{display:flex;flex-wrap:wrap;gap:12px;}
.dy-two-fit>.dy-fld{flex:1 1 auto;min-width:0;}
/* a booking's when: its date, then its time (a day alone is a whole value) */
.dy-when{display:flex;flex-direction:column;gap:8px;min-width:0;}
.dy-when>.d-input{min-width:0;}
.dy-move{display:flex;flex-direction:column;gap:16px;}
.dy-conseqs{min-height:22px;}
.dy-quiet-raised{min-height:var(--tap);}
.dy-who{display:flex;flex-direction:column;}
.dy-who-row{display:flex;align-items:center;gap:12px;min-height:var(--tap);}

/* ---------- item dialogs ---------- */
.dy-dlg{display:flex;flex-direction:column;gap:14px;padding-bottom:12px;}
.dy-fld[hidden],.dy-fldwrap[hidden],.dy-disclose[hidden]{display:none;}
.dy-select{-webkit-appearance:none;appearance:none;background-image:var(--select-caret);background-repeat:no-repeat;background-position:right 16px center;padding-inline-end:40px;}
[dir="rtl"] .dy-select{background-position:left 16px center;}
.dy-disclose{border-radius:var(--r-md);}
.dy-disclose-sum{display:flex;align-items:center;justify-content:space-between;min-height:var(--tap);cursor:pointer;list-style:none;color:var(--ink);}
.dy-disclose-sum::-webkit-details-marker{display:none;}
.dy-disclose[open] .dy-caret{transform:rotate(-90deg);}
.dy-disclose-in{display:flex;flex-direction:column;gap:14px;padding-top:8px;}
.dy-dlg-quiet{display:flex;flex-wrap:wrap;gap:0 16px;margin-top:4px;}

@media (prefers-reduced-motion:reduce){
  .dy-item,.dy-panel,.dy-item.is-open .dy-panel,.dy-caret,.dy-body,.dy-walk,.dy-strip-day{transition:opacity 120ms linear!important;}
  .dy-detail{transform:none;transition:opacity 120ms linear;}
  .dy-ghost{transform:none;}
}

/* place search under the stop sheet's Place field (places.js): the name over its short address, Google Maps under the list */
/* the Place field: one line of text that wraps to as many lines as the place needs (dlg/item.js grows it) */
textarea.d-input.pl-input{display:block;min-height:52px;padding-block:calc((52px - 1.4em) / 2);resize:none;overflow:hidden;}
.pl-list{margin-top:8px;border-radius:var(--r-md);background:var(--card);box-shadow:var(--e2);overflow:hidden;}
.pl-list[hidden]{display:none;}
.pl-row{display:flex;flex-direction:column;justify-content:center;gap:2px;width:100%;min-height:var(--tap);padding:10px 16px;border:0;background:none;color:var(--ink);font:400 var(--fs-body-sm)/1.35 var(--font);text-align:left;cursor:pointer;}
.pl-row+.pl-row{border-top:1px solid var(--line);}
.pl-row:active,.pl-row[aria-selected="true"]{background:var(--well);}
.pl-name,.pl-addr{display:block;max-width:100%;overflow-wrap:break-word;}
.pl-addr{color:var(--ink-2);font-size:var(--fs-label);}
.pl-by{padding:6px 16px 8px;color:var(--ink-2);font:400 var(--fs-micro)/1.3 var(--font);text-align:right;border-top:1px solid var(--line);}
