/* agenda.css — the four printed day sheets on the type scale of lanes-2r.md (units: 1 unit = 1 CSS px at zoom 1; a phone shows a day at
   about 0.66, so 23 units read at about 15 px there). Rows: the time as two lines with the glyph under it, the title and the people, the
   hand-drawn box (a real checkbox) whose hit area is at least 67 units tall (44 CSS px on the phone). The header's tools block has a fixed
   height so nothing that appears in it later moves a row under the visitor's ink. "only my picks" hides the other rows (visibility), it
   never moves the picked ones. The review card is screen-fixed paper, outside the poster. Nothing here is absolutely positioned outside
   the flow of a sheet.
   The finish round (lanes-finish.md core 3, review-2r 2): the secondary type no smaller than 19 units (12.6 px on the phone proxy at zoom
   0.661) and no fainter than 0.75; the times and the people at 21; every action in the bar at least 67 units each way (44 CSS px on the
   phone); the review card's links 44 px tall; in print mode the bar and the guide step out of sight without moving a row. */
.place.day { padding: 44px 28px 72px; font-size: 23px; line-height: 1.3; }
.place.day .sheet-head { margin: 0 0 6px; }
.place.day h2 { margin: 0 0 4px; font: 400 24px/1.25 var(--type); letter-spacing: 0.01em; white-space: nowrap; text-transform: none; }
.place.day .kicker.sample { margin: 0 0 6px; font-size: 19px; line-height: 1.35; opacity: 0.78; }
.place.day .tools { height: 150px; box-sizing: border-box; margin: 4px 0 6px; display: flex; flex-direction: column; justify-content: flex-start; overflow: visible; }
.place.day .ag-guide { margin: 0; min-height: 44px; font-size: 19px; line-height: 1.32; }
.place.day .ag-guide > :not(.ag-pen), .place.day .ag-guide { color: rgba(21, 20, 26, 0.8); }
.place.day .ag-guide.touch { display: flex; align-items: center; gap: 0 14px; min-height: 67px; white-space: nowrap; }
.place.day .ag-guide .ag-pen { color: var(--ink); font-size: 19px; }
.place.day .ag-btn.clash { text-decoration-color: #c8362b; text-decoration-style: dotted; text-decoration-thickness: 2px; }
.place.day .ag-bar { display: flex; flex-wrap: nowrap; align-items: center; gap: 0 12px; min-height: 67px; white-space: nowrap; }
.place.day .ag-picks { display: inline-flex; align-items: center; gap: 0 12px; visibility: hidden; }
.place.day .ag-picks.on { visibility: visible; }
.place.day .ag-count { font-size: 19px; opacity: 0.88; }
.place.day .ag-btn { font: 19px/1.2 var(--type); color: var(--ink); background: none; border: 0; padding: 0 4px; margin: 0; min-height: 67px; min-width: 67px; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; cursor: pointer; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; text-decoration-color: rgba(21, 20, 26, 0.38); -webkit-tap-highlight-color: transparent; }
.place.day .ag-btn:hover, .place.day .ag-btn:focus-visible { text-decoration-color: currentColor; outline: none; }
.place.day .ag-btn:focus-visible { outline: 1.5px dashed var(--chrome, #6b6258); outline-offset: 2px; }
.place.day .ag-pen[aria-pressed="true"] { text-decoration-style: solid; text-decoration-thickness: 2px; text-decoration-color: currentColor; }
.place.day .ag-pen[hidden] { display: none; }
/* the rows */
.place.day .sessions { list-style: none; margin: 0; padding: 0; }
.place.day .session { position: relative; display: grid; grid-template-columns: 70px 1fr 68px; column-gap: 10px; align-items: start; padding: 12px 0; border-bottom: 1px solid rgba(21, 20, 26, 0.12); outline: none; }
.place.day .session:last-child { border-bottom: 0; }
.place.day .session .time { display: flex; flex-direction: column; align-items: flex-start; font-size: 21px; line-height: 1.22; padding-top: 2px; white-space: nowrap; }
.place.day .session .time .t1 { opacity: 0.78; }
.place.day .session .glyph { display: block; width: 22px; height: 22px; margin-top: 8px; }
.place.day .session .glyph img, .place.day .session .glyph canvas { display: block; width: 22px; height: 22px; }
.place.day .session .body { display: flex; flex-direction: column; min-width: 0; }
.place.day .session .title { font-size: 23px; line-height: 1.3; overflow-wrap: anywhere; }
.place.day .session .who { font-size: 21px; line-height: 1.55; opacity: 0.8; margin-top: 4px; position: relative; z-index: 1; }   /* above the next row, so a name's grown target is not cut by it */
.place.day .session .who a { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(21, 20, 26, 0.3); position: relative; white-space: nowrap; -webkit-tap-highlight-color: transparent; }   /* a name never breaks across lines, so its target is one box */
/* a speaker's name in a row is a 22-unit box: its target grows to 68 units (45 CSS px on the phone proxy) with an ::after that moves no line */
.place.day .session .who a::after { content: ''; position: absolute; left: -3px; right: -3px; top: -16px; bottom: -30px; }
.place.day .session .who a:hover, .place.day .session .who a:focus-visible { border-color: currentColor; outline: none; }
/* the box: a real checkbox over a hand-drawn square; the whole cell is the hit area */
.place.day .session .pick { position: relative; display: flex; align-items: flex-start; justify-content: center; min-height: 67px; width: 68px; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.place.day .session .pick .box { display: block; width: 30px; height: 30px; margin-top: 2px; pointer-events: none; }
.place.day .session .pick input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.place.day .session .pick:focus-within { outline: 1.5px dashed var(--chrome, #6b6258); outline-offset: -4px; border-radius: 8px; }
.place.day .session.picked .time .t0 { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.place.day .session.deep { outline: 2px dashed rgba(21, 20, 26, 0.55); outline-offset: 6px; border-radius: 10px; }
/* only my picks: the others step back without moving */
html[data-ag-filter="on"] .place.day .session:not(.picked) { visibility: hidden; }
html[data-ag-filter="on"] .place.day .session:not(.picked) * { visibility: hidden; }
/* with JavaScript off the boxes do nothing, so they are not offered */
html:not(.js) .place.day .session .pick, html:not(.js) .place.day .ag-bar { display: none; }
/* the review card: screen-fixed paper with a hand-drawn edge, the typed list in time order, the clashes named */
.ag-card { position: fixed; right: 24px; top: 72px; z-index: 41; width: min(430px, calc(100vw - 32px)); max-height: calc(100vh - 200px); overflow: auto; overscroll-behavior: contain; box-sizing: border-box; padding: 18px 20px 14px; background: var(--paper, #f1ece2); color: var(--ink, #15141a); border: 1.6px solid rgba(21, 20, 26, 0.78); border-radius: 255px 14px 225px 14px / 14px 225px 14px 255px; opacity: 0; transition: opacity 0.2s; }
.ag-card.on { opacity: 1; }
.ag-card .ag-card-body { font: 15px/1.45 var(--type); }
.ag-card p { margin: 0 0 10px; }
.ag-card .ag-card-head { font-size: 16px; }
.ag-card .ag-card-list { list-style: none; margin: 0 0 10px; padding: 0; }
.ag-card .ag-card-day { margin: 10px 0 2px; opacity: 0.62; font-size: 14px; }
.ag-card .ag-card-item { padding: 0; }
.ag-card .ag-card-item a { color: inherit; text-decoration: underline; text-decoration-color: rgba(21, 20, 26, 0.32); text-underline-offset: 4px; display: block; padding: 11px 0; min-height: 44px; box-sizing: border-box; }
.ag-card .ag-card-item .ag-from { display: block; margin: -8px 0 6px; font-size: 13.5px; opacity: 0.78; }
.ag-card .ag-card-following { font-size: 14.5px; opacity: 0.85; }
.ag-card .ag-card-item a:hover, .ag-card .ag-card-item a:focus-visible { text-decoration-color: currentColor; outline: none; }
.ag-card .ag-card-item.clash a { text-decoration: underline dotted #c8362b; text-decoration-thickness: 2px; }
.ag-card .ag-clash { margin: 8px 0 10px; padding: 8px 0 0; border-top: 1px dashed rgba(21, 20, 26, 0.35); }
.ag-card .ag-card-actions { display: flex; flex-wrap: wrap; gap: 0 14px; }
.ag-card .ag-btn { font: 15px/1.2 var(--type); color: inherit; background: none; border: 0; padding: 0 4px; min-height: 44px; min-width: 44px; cursor: pointer; text-decoration: underline; text-decoration-color: rgba(21, 20, 26, 0.38); text-underline-offset: 4px; }
.ag-card .ag-btn:hover, .ag-card .ag-btn:focus-visible { text-decoration-color: currentColor; outline: none; }
.ag-card .ag-btn:focus-visible { outline: 1.5px dashed var(--chrome, #6b6258); outline-offset: 2px; }
.ag-card .ag-card-note { font-size: 13.5px; opacity: 0.78; }
@media (max-width: 600px) { .ag-card { left: 10px; right: 10px; top: auto; bottom: 136px; width: auto; max-height: 56vh; } }   /* above the mark, as the speakers' card */
@media (prefers-reduced-motion: reduce) { .ag-card { transition: none; } }
/* print mode (lanes-finish core 7): the paper keeps its rows, rings and ticks; the bar, the guide and the review step out of sight in place */
html[data-print="on"] .place.day .ag-bar, html[data-print="on"] .place.day .ag-guide { visibility: hidden; }
html[data-print="on"] .place.day .session.deep { outline: none; }
html[data-print="on"][data-ag-filter="on"] .place.day .session:not(.picked), html[data-print="on"][data-ag-filter="on"] .place.day .session:not(.picked) * { visibility: visible; }
html[data-print="on"] .ag-card { display: none; }
@media print { .ag-card { display: none; } }
