#collab-bar{display:flex;align-items:center;gap:10px;font:var(--fs-xs) var(--font-ui);margin-right:8px;color:var(--text-secondary);letter-spacing:var(--ls-11);}
#collab-mode{display:inline-flex;align-items:center;flex-shrink:0;height:20px;padding:0 var(--sp-2);border-radius:var(--r-sm);background:var(--fill-subtle);color:var(--text-secondary);font:var(--fw-medium) var(--fs-2xs) var(--font-ui);white-space:nowrap;letter-spacing:var(--ls-10);}
#collab-status[hidden]{display:none}
#collab-status::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--warning);margin-right:5px}
#collab-status[data-state=offline]::before,#collab-status[data-state=permission-error]::before,#collab-status[data-state=signed-out]::before{background:var(--danger)}
#collab-avatars{display:flex;gap:0}.collab-avatar{display:grid;place-items:center;flex-shrink:0;width:27px;height:27px;border-radius:50%;background:color-mix(in srgb,var(--peer,#8058d8) 92%,oklch(0% 0 0));color:var(--text-on-accent);border:2px solid var(--surface-top);font:var(--fw-semibold) var(--fs-sm) var(--font-ui);letter-spacing:var(--ls-12);}
#collab-avatars .collab-avatar{position:relative}
#collab-avatars .collab-avatar+.collab-avatar{margin-inline-start:-5px}
#collab-avatars .collab-avatar[data-hand=true]{z-index:1}
#collab-avatars .collab-avatar:hover,#collab-avatars .collab-avatar:focus-visible{z-index:2}
button.collab-avatar{cursor:pointer}
.collaboration-dialog h3 { font-size:var(--fs-md); letter-spacing:var(--ls-13); font-weight:var(--fw-semibold); margin:var(--sp-5) 0 var(--sp-2); }
.collaboration-dialog p { margin:0 0 var(--sp-4); }
.collab-access-summary { display:flex; align-items:center; gap:var(--sp-3); margin:var(--sp-4) 0 var(--sp-2); min-width:0; }
.collaboration-dialog .collab-access-board { flex:1; min-width:0; margin:0; font:var(--fw-semibold) var(--fs-xl)/var(--lh-base) var(--font-ui); letter-spacing:var(--ls-16); overflow-wrap:anywhere; }
.collab-access-role { flex:none; padding:4px 7px; border-radius:var(--r-sm); background:var(--fill-subtle); color:var(--text-secondary); font:var(--fw-medium) var(--fs-sm)/var(--lh-base) var(--font-ui); letter-spacing:var(--ls-12); }
.collaboration-dialog .collab-access-description { line-height:var(--lh-relaxed); }
.collab-access-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:var(--sp-2); margin:var(--sp-5) 0 var(--sp-2); }
.collaboration-dialog .collab-access-heading h3 { margin:0; }
.collab-board-link { padding-bottom:var(--sp-2); border-bottom:1px solid var(--border-subtle); }
.collab-managed-access button + button { margin-inline-start:var(--sp-2); }
.collab-live-session .collab-row { flex-wrap:wrap; margin-bottom:var(--sp-2); }
.collaboration-dialog button:focus-visible,.collaboration-dialog select:focus-visible { outline:2px solid var(--accent-line); outline-offset:3px; }
.collab-muted { font-size:var(--fs-sm); letter-spacing:var(--ls-12); color:var(--text-secondary); }
.collaboration-dialog label { display:block; font-size:var(--fs-md); letter-spacing:var(--ls-13); font-weight:var(--fw-medium); margin:var(--sp-4) 0 var(--sp-2); }
.collaboration-dialog input { display:block; box-sizing:border-box; margin:var(--sp-2) 0; }
.collab-row,#collab-join { display:flex; align-items:center; gap:var(--sp-2); min-width:0; }
.collab-row select,#collab-join input { flex:1; min-width:0; }
.collab-rooms button { width:100%; display:flex; justify-content:space-between; align-items:center; gap:var(--sp-3); text-align:left; margin:var(--sp-1) 0; }
.collab-rooms button>span { min-width:0; overflow:hidden; text-overflow:ellipsis; }
.collab-rooms small { color:var(--text-secondary); white-space:nowrap; font-size:var(--fs-sm); letter-spacing:var(--ls-12); }
.collab-member { display:flex; gap:var(--sp-2); align-items:center; padding:var(--sp-2) 0; border-bottom:1px solid var(--border-subtle); min-width:0; }
.collab-member>span:nth-child(2) { flex:1; overflow:hidden; text-overflow:ellipsis; }
.collab-member small { color:var(--text-secondary); }
.collab-member select { max-width:140px; padding:0 var(--sp-2); }
.collab-member button { font-size:var(--fs-sm); letter-spacing:var(--ls-12); padding:0 var(--sp-2); }
.collab-invite-line { display:flex; gap:var(--sp-2); align-items:center; justify-content:space-between; margin:var(--sp-3) 0; font-size:var(--fs-sm); letter-spacing:var(--ls-12); }
.collaboration-dialog footer { display:flex; flex-wrap:wrap; justify-content:space-between; gap:var(--sp-2); margin-top:var(--sp-5); padding-top:var(--sp-4); border-top:1px solid var(--border-subtle); }
.collaboration-dialog .collab-error { margin-top:var(--sp-4); margin-bottom:0; color:var(--danger-text); background:var(--danger-soft); padding:var(--sp-3); border-radius:var(--r-md); overflow-wrap:anywhere; }
#collab-overlay { position:absolute; inset:0; pointer-events:none; z-index:var(--z-presence); overflow:hidden; }
.collab-presence-world { position:absolute; top:0; left:0; transform-origin:0 0; }
.collab-cursor { position:absolute; top:0; left:0; color:var(--peer); transition:transform var(--dur-fast) linear; }
.collab-cursor-ink { transform:scale(var(--peer-inverse)); transform-origin:0 0; }
.collab-cursor svg { width:18px; height:23px; display:block; filter:drop-shadow(0 1px 1px #0003); }
.collab-cursor span,.collab-selection span { position:absolute; background:color-mix(in srgb,var(--peer) 78%,#000); color:#fff; font:var(--fw-medium) var(--fs-sm)/1.4 var(--font-ui); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:156px;letter-spacing:var(--ls-12);}
.collab-cursor span { left:14px; top:20px; padding:3px 7px; border-radius:0 var(--r-md) var(--r-md); }
.collab-cursor[data-label-x=left] span { left:auto; right:2px; border-radius:var(--r-md) 0 var(--r-md) var(--r-md); }
.collab-cursor[data-label-y=above] span { top:auto; bottom:5px; border-radius:var(--r-md) var(--r-md) var(--r-md) 0; }
.collab-selection { position:absolute; box-sizing:border-box; border:calc(2 * var(--peer-px)) solid var(--peer); border-radius:calc(5 * var(--peer-px)); }
.collab-selection span { transform:scale(var(--peer-inverse)); transform-origin:0 0; padding:2px 6px; border-radius:var(--r-sm); }
#collab-following,#collab-request{position:absolute;z-index:var(--z-overlay);left:50%;top:14px;transform:translateX(-50%);max-width:calc(100% - 24px);box-sizing:border-box;background:var(--accent-soft);color:var(--accent-text);border:1px solid var(--accent-border);border-radius:var(--r-full);padding:9px 15px;font:var(--fs-sm) var(--font-ui);letter-spacing:var(--ls-12);}#collab-request{top:54px;display:flex;gap:12px;align-items:center}#collab-request[hidden],#collab-following[hidden]{display:none}
.collab-reaction{position:absolute;left:50%;bottom:100px;font-size:52px;pointer-events:none;z-index:var(--z-overlay);animation:collab-float 2.2s ease-out forwards}@keyframes collab-float{to{transform:translateY(-180px) rotate(15deg);opacity:0}}
.collab-readonly #btn-add,.collab-readonly #btn-stickers,.collab-readonly #btn-shape-kind,.collab-readonly #btn-move-kind{display:none!important}.collab-readonly .rz-handle{display:none!important}
@media(max-width:850px){#collab-bar{gap:5px;margin-right:2px}#collab-status{max-width:90px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#collab-avatars .collab-avatar:nth-child(n+4){display:none}}
@media(max-width:600px){#collab-bar{position:absolute;top:52px;right:12px;background:var(--surface-overlay);padding:var(--sp-2);border:1px solid var(--border-default);border-radius:var(--r-popover);z-index:70}.collab-member{flex-wrap:wrap}.collab-member>span:nth-child(2){min-width:120px}}
@media(prefers-reduced-motion:reduce){.collab-cursor{transition:none}.collab-reaction{animation:none}}

/* Shared tools use one compact tab row, with visible feedback on the canvas. */
/* The collaboration entry is the same control as Search and Side Peek. */
.collab-session-button{position:relative;flex:none}
.collab-session-clock{font:var(--fw-medium) var(--fs-2xs)/1 var(--font-ui);font-variant-numeric:tabular-nums;letter-spacing:-.4px;white-space:nowrap}
.collab-session-dot{display:none;position:absolute;top:3px;right:3px;width:4px;height:4px;border-radius:50%;background:var(--accent)}
.collab-session-button[data-attention=true] .collab-session-dot{display:block}
.collab-session-button[data-state=paused],.collab-session-button[data-hand=true]{color:var(--accent-text)}
.collab-session-button[data-state=finished]{color:var(--warning-text)}
.collab-session-button[data-state=finished] .collab-session-dot{background:var(--warning)}
.session-dialog button:focus-visible,.session-dialog input:is([type=checkbox],[type=radio]):focus-visible,#collab-vote-layer button:focus-visible,#collab-vote-banner button:focus-visible{outline:2px solid var(--accent-line);outline-offset:3px}
.collab-voting .collab-cursor,.collab-voting .collab-selection{display:none}
.collab-voting-active #card-toolbar{display:none}
.collab-avatar[data-hand=true]{position:relative}
.collab-hand-marker{position:absolute;display:grid;place-items:center;bottom:-5px;right:-5px;width:16px;height:16px;border:1px solid var(--surface-top);border-radius:50%;background:var(--accent-soft);color:var(--accent-text)}
.collab-hand-marker svg{width:11px;height:11px}
.session-dialog{width:min(440px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:0;box-sizing:border-box;color:var(--text-primary);background:var(--surface-top);border:1px solid var(--overlay-border);border-radius:var(--r-dialog);box-shadow:var(--shadow-modal)}
.session-dialog[open]{display:flex;flex-direction:column;animation:session-open var(--dur-base) var(--ease-out)}
.session-dialog::backdrop{background:var(--scrim)}
.session-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.session-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}
.session-tabs{display:flex;flex:1;gap:3px;min-width:0;padding:3px;background:var(--fill-subtle);border-radius:var(--r-field)}
.session-dialog .session-tabs button{display:inline-flex;flex:1;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:38px;padding:0 8px;border:0;border-radius:calc(var(--r-field) - 3px);background:transparent;color:var(--text-secondary);font:var(--fw-medium) var(--fs-sm) var(--font-ui);letter-spacing:var(--ls-12);}
.session-dialog .session-tabs button svg{width:17px;height:17px;flex-shrink:0}
.session-dialog .session-tabs [aria-selected=true]{background:var(--control-thumb);color:var(--text-primary);box-shadow:var(--control-thumb-shadow)}
.session-dialog .session-tabs button:hover:not([aria-selected=true]){background:var(--state-hover)}
.session-dialog .native-dialog-close{display:grid;place-items:center;flex:0 0 36px;width:36px;min-height:36px;padding:0;border:0;border-radius:var(--r-full);background:transparent;color:var(--text-secondary)}
.session-dialog .native-dialog-close svg{width:18px;height:18px}
.session-dialog .native-dialog-body{min-height:0;padding:24px;overflow-y:auto;overscroll-behavior:contain}
.session-dialog h3{font:var(--fw-semibold) var(--fs-xl)/1.4 var(--font-ui);margin:0;letter-spacing:var(--ls-16);}
.session-dialog p{font:inherit;font-size:var(--fs-sm); letter-spacing:var(--ls-12);line-height:var(--lh-relaxed);margin:0 0 16px}
.session-dialog button,.session-dialog input,.session-dialog select{font:inherit;font-size:var(--fs-sm); letter-spacing:var(--ls-12);line-height:var(--lh-base);box-sizing:border-box;color:var(--text-primary)}
.session-dialog button{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:42px;padding:0 var(--sp-3);background:var(--surface-top);border:1px solid var(--border-default);border-radius:var(--r-control);font-weight:var(--fw-medium);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
.session-dialog button svg{width:17px;height:17px;flex-shrink:0}
.session-dialog button:hover:not(:disabled,[aria-selected=true],[aria-pressed=true]){background:var(--state-hover)}
.session-dialog button:active:not(:disabled,[aria-selected=true],[aria-pressed=true]){background:var(--state-active)}
.session-dialog button:disabled{opacity:var(--state-disabled-opacity);cursor:default}
.session-dialog .collab-primary{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}
.session-dialog .collab-primary:hover:not(:disabled){background:var(--accent-hover)}
.session-dialog .collab-primary:active:not(:disabled){background:var(--accent-active)}
.session-dialog label{display:block;font:var(--fw-medium) var(--fs-sm) var(--font-ui);margin:0 0 18px;letter-spacing:var(--ls-12);}
.session-dialog input:not([type=checkbox]),.session-dialog select{display:block;width:100%;min-height:44px;margin-top:8px;padding:10px 12px;border:1px solid var(--border-default);border-radius:var(--r-field);background:var(--fill-subtle)}
.session-dialog input:not([type=checkbox],[type=radio]):focus-visible,.session-dialog select:focus-visible{outline:0;border-color:var(--field-focus-border);box-shadow:var(--ring-focus)}
.session-select-field{display:block;position:relative;margin-top:8px}
.session-dialog .session-select-field select{appearance:none;height:44px;margin:0;padding-right:38px}
.session-select-field>svg{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--text-secondary);pointer-events:none}
.session-lead{display:flex;align-items:center;gap:13px;margin-bottom:24px}
.session-lead-icon{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:var(--r-panel);background:var(--accent-soft);color:var(--accent-text)}
.session-lead-icon svg{width:23px;height:23px}
.session-lead p{margin:4px 0 0;color:var(--text-secondary)}
.session-presets{display:flex;gap:8px;padding:0;margin:0 0 14px;border:0;min-width:0}
.session-presets legend{padding:0;margin:0 0 8px;font:var(--fw-medium) var(--fs-sm) var(--font-ui);letter-spacing:var(--ls-12);}
.session-presets button{flex:1;min-width:0;padding:0 6px}
.session-presets [aria-pressed=true]{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent-border)}
.session-dialog label.session-custom{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px}
.session-number-field{display:flex;align-items:center;gap:9px;color:var(--text-secondary);font-weight:var(--fw-regular)}
.session-dialog .session-number-field input{width:76px;margin:0;text-align:center;padding:8px}
.session-number-field svg{width:18px;height:18px}
.session-timer{text-align:center;padding:0 0 22px}
.session-dialog .session-eyebrow{color:var(--text-secondary);overflow-wrap:anywhere;margin-bottom:10px}
.session-timer-dial{position:relative;width:216px;height:216px;margin:0 auto}
.session-timer-ring{width:100%;height:100%;transform:rotate(-90deg);fill:none;stroke-width:5}
.session-ring-track{stroke:var(--accent-soft)}
.session-ring-progress{stroke:var(--accent);stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:var(--timer-progress,0);transition:stroke-dashoffset var(--dur-lazy) linear}
.session-timer[data-state=paused] .session-ring-progress{opacity:.55}
.session-timer[data-state=finished] .session-ring-track{stroke:var(--warning-soft)}
.session-timer[data-state=finished] .session-ring-progress{stroke:var(--warning)}
.session-timer-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 12px}
.session-timer-digits{display:block;font:var(--fw-semibold) 52px/1.1 var(--font-ui);font-variant-numeric:tabular-nums;letter-spacing:-2px;margin-bottom:10px}
.session-timer [data-timer-state]{margin:0;color:var(--text-secondary);font-size:var(--fs-xs);letter-spacing:var(--ls-11);}
.session-actions{display:flex;gap:8px}
.session-actions button{flex:1;padding:0 8px}
.session-dialog .session-quiet{display:flex;margin:10px auto 14px;background:transparent;border-color:transparent;color:var(--text-secondary)}
.session-dialog .session-quiet:hover:not(:disabled){background:transparent;color:var(--text-primary)}
.session-wide{width:100%;margin-bottom:14px}
.session-dialog .native-dialog-body label.session-sound{display:flex;align-items:center;justify-content:flex-start;gap:10px;min-height:48px;padding-top:12px;margin:4px 0 0;border-top:1px solid var(--border-subtle);font-weight:var(--fw-regular);color:var(--text-secondary);text-align:left;cursor:pointer}
.session-dialog .native-dialog-body .session-sound input[type=checkbox]{display:inline-block;flex:0 0 16px;width:16px;height:16px;min-width:16px;min-height:16px;max-width:16px;max-height:16px;padding:0;margin:0;appearance:auto;accent-color:var(--accent)}
.session-sound svg{width:18px;height:18px;flex-shrink:0}
.session-sound small{display:block;margin-top:3px;font-size:var(--fs-xs);letter-spacing:var(--ls-11);}
.session-sound-actions{display:flex;gap:8px;margin-top:8px}
.session-sound-actions button{flex:1}
.session-sound-actions button[hidden]{display:none}
/* Shared time stays at a glance; setup and explanations live in the dialog. */
#collab-timer{position:absolute;top:16px;left:16px;z-index:var(--z-overlay);display:flex;align-items:center;height:36px;max-width:calc(100% - 32px);box-sizing:border-box;padding:0 3px;gap:2px;border:1px solid var(--border-default);border-radius:var(--r-control);background:var(--surface-overlay);color:var(--text-primary);box-shadow:var(--shadow-sm);cursor:default}
#collab-timer[hidden]{display:none}
.collab-timer-open{position:relative;display:flex;align-items:center;justify-content:center;flex:none;gap:7px;min-width:100px;height:32px;padding:0 8px;border:0;border-radius:var(--r-sm);background:transparent;text-align:left;color:inherit;cursor:pointer}
.collab-timer-glyph{display:grid;place-items:center;color:var(--text-secondary)}
.collab-timer-glyph svg{width:16px;height:16px}
.collab-timer-digits{font:var(--fw-semibold) 17px/1 var(--font-ui);letter-spacing:-.3px;font-variant-numeric:tabular-nums}
.collab-timer-controls{display:flex;align-items:center;gap:0;flex:none;padding-left:2px;border-left:1px solid var(--border-subtle)}
.collab-timer-controls button{position:relative;display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:var(--r-sm);background:transparent;color:var(--text-secondary);cursor:pointer}
.collab-timer-open:hover,.collab-timer-controls button:hover:not(:disabled){background:var(--state-hover);color:var(--text-primary)}
.collab-timer-controls button svg{width:16px;height:16px}
.collab-timer-controls button:disabled{opacity:var(--state-disabled-opacity);cursor:default}
.collab-timer-controls button[hidden]{display:none}
.collab-timer-sound-dot{position:absolute;top:5px;right:5px;width:4px;height:4px;background:var(--warning);border-radius:50%}
.collab-timer-sound[data-sound=off]::after{content:'';position:absolute;width:19px;height:2px;transform:rotate(-45deg);background:currentColor;border:1px solid var(--surface-overlay)}
#collab-timer[data-state=finished]{border-color:var(--warning-border);background:var(--warning-soft);color:var(--warning-text)}
#collab-timer[data-state=finished] .collab-timer-glyph{color:var(--warning-text)}
#collab-timer[data-state=paused] .collab-timer-glyph,#collab-timer[data-state=ready] .collab-timer-glyph{color:var(--accent-text)}
#collab-timer[data-offline=true] .collab-timer-glyph::after{content:'';position:absolute;left:5px;top:5px;width:4px;height:4px;border-radius:50%;background:var(--warning)}
.web-reading #collab-timer{position:fixed;top:68px;z-index:45}
@media(max-width:640px){#collab-timer{top:12px;left:12px;max-width:calc(100% - 24px)}.web-reading #collab-timer{top:68px}}
@media(max-width:1180px){.web-reading:has(#collab-timer:not([hidden])) .web-reader-head{padding-top:80px}}
/* Once Doc scrolls, its sticky navigation would sit under the fixed timer. A sticky
   band (inside the head's padding at the top) holds the pin; the navigation sticks below it. */
@media(max-width:1180px){
  .web-reading:has(#collab-timer:not([hidden])) #web-reader::before{content:'';display:block;position:sticky;top:0;z-index:3;height:64px;margin-bottom:-64px;background:var(--surface-base);pointer-events:none}
  .web-reading:has(#collab-timer:not([hidden])) .web-read-navigation{top:64px}
}
@media(pointer:coarse){#collab-timer{height:44px;padding:0;border:0;box-shadow:inset 0 0 0 1px var(--border-default),var(--shadow-sm)}.collab-timer-open{height:44px;min-width:108px}.collab-timer-controls button{width:44px;height:44px}#collab-timer[data-state=finished]{box-shadow:inset 0 0 0 1px var(--warning-border),var(--shadow-sm)}}
.session-dialog .session-question{font:var(--fw-semibold) var(--fs-xl)/1.4 var(--font-ui);margin:0 0 10px;overflow-wrap:anywhere;letter-spacing:var(--ls-16);}
.session-vote-status{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;margin-bottom:12px}
.session-dialog .session-vote-budget{margin:0;color:var(--accent-text);font-weight:var(--fw-medium)}
.session-vote-dots{display:flex;flex-wrap:wrap;gap:5px}
.session-vote-dots i{width:8px;height:8px;border-radius:50%;background:var(--accent);transition:background var(--dur-fast) var(--ease-out)}
.session-vote-dots .is-used{background:var(--fill-strong)}
.session-dialog .native-dialog-body:has(.session-vote-footer){padding-bottom:0}
.session-vote-footer{position:sticky;bottom:0;padding:12px 0 24px;background:var(--surface-top)}
.session-dialog .session-vote-footer .session-wide{margin-bottom:0}
.session-dialog .session-end-link{margin:4px auto 0;font-size:var(--fs-xs); letter-spacing:var(--ls-11);min-height:36px}
.session-dialog .session-participation{font-size:var(--fs-xs); letter-spacing:var(--ls-11);color:var(--text-secondary);margin:14px 0 6px}
.session-history{margin:0 0 20px}
.session-dialog .session-end-confirm h3{font-size:var(--fs-md); letter-spacing:var(--ls-13);margin-bottom:5px}
.session-dialog .session-end-confirm p{font-size:var(--fs-xs); letter-spacing:var(--ls-11);color:var(--text-secondary);margin-bottom:10px}
.session-confirm-actions{display:flex;gap:8px}
.session-confirm-actions button{flex:1;min-width:0}
.session-dialog .session-tip{margin:0;font-size:var(--fs-xs);letter-spacing:var(--ls-11);}
/* Compact setup and a focused, staged selection view share one modal. */
.session-dialog[data-vote-view=setup] .native-dialog-body{padding-top:20px}
.session-vote-setup .session-lead{margin-bottom:14px}
.session-vote-setup .session-lead-icon,.session-vote-setup .session-lead p{display:none}
.session-dialog .session-vote-setup form>label:first-child{margin-bottom:14px}
.session-dialog .session-vote-scope{display:flex;flex-direction:column;gap:0;min-width:0;padding:0;margin:0 0 8px;border:0}
.session-vote-scope legend{font:var(--fw-medium) var(--fs-sm) var(--font-ui);margin-bottom:4px}
.session-dialog .session-vote-scope label{display:flex;align-items:center;gap:9px;min-height:32px;margin:0;font-weight:var(--fw-regular);cursor:pointer}
.session-dialog .session-vote-scope input[type=radio]{display:inline-block;width:16px;height:16px;min-height:0;margin:0;padding:0;accent-color:var(--accent);flex-shrink:0}
.session-vote-scope label>span{flex:1;min-width:0}
.session-vote-scope label>small{color:var(--text-secondary);font:var(--fs-xs) var(--font-ui)}
.session-selection-summary{display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 12px;margin-bottom:14px;background:var(--fill-subtle);border-radius:var(--r-field)}
#session-vote-selection-summary{flex:1;min-width:0;font-size:var(--fs-xs);line-height:1.5}
#session-vote-selection-summary strong{display:block;font-weight:var(--fw-medium);font-size:var(--fs-sm)}
#session-vote-selection-summary>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary)}
.session-dialog #session-choose-vote-cards{flex-shrink:0;min-height:36px;padding-inline:10px;background:var(--surface-top)}
.session-dialog .session-scope-hint{color:var(--text-secondary);font-size:var(--fs-xs);margin:0 0 14px}
.session-dialog .session-budget-label{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;margin-bottom:10px}
.session-dialog .session-budget-label>label{margin:0}
.session-vote-stepper{display:flex;align-items:center;border:1px solid var(--border-default);border-radius:var(--r-field);overflow:hidden;flex-shrink:0}
.session-dialog .session-vote-stepper button{width:36px;min-height:38px;padding:0;border:0;border-radius:0;background:transparent}
.session-dialog .session-vote-stepper input{width:44px;min-height:38px;margin:0;padding:4px;border:0;border-radius:0;background:transparent;text-align:center;appearance:textfield;-moz-appearance:textfield}
.session-vote-stepper input::-webkit-inner-spin-button,.session-vote-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.session-dialog .session-vote-rule{display:flex;align-items:center;gap:9px;margin-bottom:6px;font-weight:var(--fw-regular);cursor:pointer}
.session-dialog .session-rule-hint{color:var(--text-secondary);font-size:var(--fs-xs);line-height:1.5;margin:0}
.session-dialog .session-setup-summary{font-size:var(--fs-xs);line-height:1.4;margin-bottom:8px;color:var(--text-secondary)}
.session-dialog .session-privacy-hint{font-size:var(--fs-xs);color:var(--text-secondary);line-height:1.4;margin:9px 0 0;text-align:center}
.session-dialog[data-vote-view=picker]{width:min(560px,calc(100vw - 24px));height:min(720px,calc(100dvh - 24px))}
.session-dialog[data-vote-view=picker] .native-dialog-body{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;padding-bottom:0}
.session-dialog[data-vote-view=picker] #session-panel{display:flex;flex-direction:column;flex:1;min-height:0}
.session-vote-picker{display:flex;flex-direction:column;flex:1;min-height:0}
.session-picker-heading{flex-shrink:0}
.session-dialog .session-picker-heading p{color:var(--text-secondary);margin:4px 0 16px}
.session-dialog #session-vote-search{min-height:44px;flex-shrink:0;margin:0 0 8px;background:var(--fill-subtle)}
.session-choice-actions{display:flex;align-items:center;flex-shrink:0;gap:6px;padding:0 0 8px;border-bottom:1px solid var(--border-subtle);min-height:36px}
.session-choice-actions>span{flex:1;font:var(--fs-xs) var(--font-ui);color:var(--text-secondary)}
.session-dialog .session-choice-actions button{min-height:36px;padding:0 6px;border:0;border-radius:var(--r-sm);background:transparent;font-size:var(--fs-xs);color:var(--accent-text)}
.session-vote-choices{flex:1;min-height:0;list-style:none;padding:4px 0;margin:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.session-dialog .session-vote-choices label{display:flex;align-items:center;gap:12px;min-height:76px;margin:0;padding:12px 8px;box-sizing:border-box;font-weight:var(--fw-regular);cursor:pointer;border-radius:var(--r-sm)}
.session-vote-choices label:hover{background:var(--state-hover)}
.session-vote-choices label:has(input:checked){background:var(--accent-soft)}
.session-vote-choices label:has(input:disabled){opacity:var(--state-disabled-opacity);cursor:default}
.session-dialog .session-vote-choices input[type=checkbox],.session-dialog .session-vote-rule input[type=checkbox]{display:inline-block;flex:0 0 16px;width:16px;height:16px;min-width:16px;min-height:16px;max-width:16px;max-height:16px;padding:0;margin:0;appearance:auto;accent-color:var(--accent);border:0;border-radius:0;box-shadow:none}
.session-dialog .session-vote-choices input[type=checkbox]:focus-visible,.session-dialog .session-vote-rule input[type=checkbox]:focus-visible{outline:2px solid var(--accent-line);outline-offset:3px}
.session-choice-art{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;background:var(--fill-subtle);border-radius:var(--r-sm);overflow:hidden;color:var(--text-secondary)}
.session-choice-art svg{width:20px;height:20px}
.session-choice-thumb{width:100%;height:100%;object-fit:cover}
.session-choice-copy{flex:1;min-width:0;line-height:1.4}
.session-choice-title,.session-choice-detail{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.session-choice-title{-webkit-line-clamp:2;font-weight:var(--fw-medium)}
.session-choice-detail{-webkit-line-clamp:1;color:var(--text-secondary);font-size:var(--fs-xs);margin-top:3px}
.session-choice-type{display:block;margin-top:4px;color:var(--text-tertiary);font-size:var(--fs-xs)}
.session-dialog .session-choice-no-match,.session-dialog .session-choice-empty{margin:0;padding:20px 8px;color:var(--text-secondary);font-size:var(--fs-sm)}
.session-picker-footer{position:static;flex-shrink:0;margin-top:auto;border-top:1px solid var(--border-subtle)}
.session-picker-actions{display:flex;gap:10px}
.session-picker-actions .collab-primary{flex:1}
@media(max-width:640px){
  .session-dialog .session-vote-scope label,.session-dialog .session-vote-rule,.session-dialog #session-choose-vote-cards{min-height:44px}
  .session-dialog .session-vote-stepper button{width:44px;min-height:44px}
  .session-dialog .session-vote-stepper input,.session-dialog #session-vote-search{min-height:44px}
  .session-dialog .session-choice-actions button{min-height:44px;padding-inline:6px}
  .session-dialog[data-vote-view=picker]{height:calc(100dvh - 24px)}
  .session-choice-art{flex-basis:32px;width:32px;height:32px}
  .session-dialog .session-vote-choices label{gap:9px;padding-inline:4px}
  .session-selection-summary{padding-inline:10px;gap:8px}
}
.session-candidates,.session-results,.session-hands{list-style:none;padding:0;margin:0 0 18px}
.session-candidates li,.session-results li,.session-hands li{display:flex;align-items:center;gap:12px;min-height:60px;border-bottom:1px solid var(--border-subtle);padding:7px 0}
.session-candidates li:last-child,.session-results li:last-child,.session-hands li:last-child{border-bottom:0}
.session-dialog .session-card-link{flex:1;min-width:0;justify-content:flex-start;text-align:left;padding:6px 0;border:0;background:transparent}
.session-card-copy{flex:1;min-width:0;line-height:1.4}
.session-card-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.session-card-type{display:block;color:var(--text-tertiary);font-size:var(--fs-xs);font-weight:var(--fw-regular);margin-top:3px}
.session-card-locate{flex-shrink:0;opacity:0;transition:opacity var(--dur-fast) var(--ease-out)}
.session-card-link:hover .session-card-locate,.session-card-link:focus-visible .session-card-locate{opacity:1}
.session-card-locate svg{width:14px;height:14px}
.session-dialog .session-voting-eyebrow{font-size:var(--fs-xs);margin-bottom:5px}
.session-dialog .session-vote-budget{font-size:var(--fs-xl);font-weight:var(--fw-semibold)}
.session-dialog .session-result-meta{margin-bottom:6px}
.session-dialog .session-result-summary{font-size:var(--fs-xs);color:var(--text-secondary);margin-bottom:12px}
.session-candidates .is-voted{background:var(--accent-soft);border-radius:var(--r-sm)}
.session-candidates li{padding-inline:8px}
@media(pointer:coarse){.session-card-locate{opacity:1}}
.session-card-link svg{color:var(--text-secondary)}
.session-candidates .is-voted .session-card-link svg{color:var(--accent-text)}
.session-vote-buttons{display:flex;align-items:center;gap:4px;flex-shrink:0}
.session-vote-buttons button{width:36px;min-height:36px;padding:0;border-radius:var(--r-full)}
.session-vote-buttons span{min-width:18px;text-align:center;font-variant-numeric:tabular-nums}
.session-candidates .is-voted .session-vote-buttons span{color:var(--accent-text);font-weight:var(--fw-semibold)}
.session-result-heading{display:flex;align-items:center;gap:13px;margin-bottom:12px}
.session-result-heading .session-eyebrow{font-size:var(--fs-xs); letter-spacing:var(--ls-11);margin-bottom:3px}
.session-result-heading .session-question{margin:0}
.session-result-rank{width:16px;flex-shrink:0;color:var(--text-secondary);font:var(--fs-xs) var(--font-ui);letter-spacing:var(--ls-11);}
.session-result-card{flex:1;min-width:0}
.session-result-card .session-card-link{width:100%}
.session-result-track{display:block;height:3px;border-radius:var(--r-full);background:var(--fill-subtle);margin:0 0 7px 24px;overflow:hidden}
.session-result-track i{display:block;height:100%;border-radius:var(--r-full);background:var(--accent);opacity:.5}
.session-results .is-top .session-result-track i{opacity:1}
.session-results strong{display:grid;place-items:center;min-width:30px;height:30px;flex-shrink:0;border-radius:var(--r-full);background:var(--fill-subtle);color:var(--text-secondary);font:var(--fw-semibold) var(--fs-sm) var(--font-ui);letter-spacing:var(--ls-12);}
.session-results .is-top strong{background:var(--accent-soft);color:var(--accent-text)}
.session-hand-hero{text-align:center;padding:4px 0 20px}
.session-hand-art{display:grid;place-items:center;width:76px;height:76px;margin:0 auto 14px;border-radius:28px;background:var(--accent-soft);color:var(--accent-text);transform:rotate(-8deg)}
.session-hand-art svg{width:38px;height:38px}
.session-hand-hero[data-raised=true] .session-hand-art svg{animation:session-hand-wave var(--dur-enter) var(--ease-out)}
.session-hand-hero p{color:var(--text-secondary);margin:7px auto 0;max-width:260px}
.session-queue-head{display:flex;align-items:center;justify-content:space-between;margin:7px 0 4px}
.session-dialog .session-queue-head h3{font:var(--fw-medium) var(--fs-sm) var(--font-ui);color:var(--text-secondary);letter-spacing:var(--ls-12);}
.session-queue-head>span{color:var(--text-secondary);font:var(--fs-xs) var(--font-ui);letter-spacing:var(--ls-11);}
.session-hands{margin:0}
.session-person-face{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;background:var(--accent-soft);overflow:hidden}
.session-person-face img{display:block;width:100%;height:100%;object-fit:contain;border-radius:inherit}
.session-person-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:var(--fw-medium) var(--fs-sm) var(--font-ui);letter-spacing:var(--ls-12);}
.session-person-name small{font-weight:var(--fw-regular);color:var(--text-secondary)}
.session-queue-place{flex-shrink:0;color:var(--text-secondary);font:var(--fs-xs) var(--font-ui);letter-spacing:var(--ls-11);}
.session-hands li:first-child .session-queue-place{color:var(--accent-text);padding:4px 8px;border-radius:var(--r-full);background:var(--accent-soft)}
.session-permission{color:var(--text-secondary);padding-top:12px;border-top:1px solid var(--border-subtle)}
.session-dialog .collab-error{padding:12px;border-radius:var(--r-field);color:var(--danger-text);background:var(--danger-soft);overflow-wrap:anywhere;margin:12px 0 0}
#collab-vote-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:calc(var(--z-presence) + 1)}
.collab-vote-badge{position:absolute;display:flex;align-items:center;gap:2px;pointer-events:auto;padding:3px;background:var(--surface-overlay);border:1px solid var(--border-default);border-radius:var(--r-full);box-shadow:var(--shadow-sm);color:var(--text-secondary);font:var(--fs-sm) var(--font-ui);letter-spacing:var(--ls-12);}
.collab-vote-badge[data-voted=true]{border-color:var(--accent-border);color:var(--accent-text)}
.collab-vote-badge button{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:var(--r-full);background:transparent;color:var(--accent-text);cursor:pointer}
.collab-vote-badge svg{width:16px;height:16px}
.collab-vote-badge button:hover:not(:disabled){background:var(--accent-soft)}
.collab-vote-badge button:disabled{opacity:.4;cursor:default}
.collab-vote-badge [data-vote-count]{min-width:22px;text-align:center;font-variant-numeric:tabular-nums}
.collab-vote-badge .collab-vote-result{display:flex;align-items:center;gap:7px;padding:7px 10px;color:var(--accent-text)}
#collab-vote-banner{position:absolute;z-index:var(--z-overlay);bottom:74px;left:50%;transform:translateX(-50%);display:flex;align-items:center;max-width:calc(100% - 24px);box-sizing:border-box;min-height:44px;padding:3px;border:1px solid var(--accent-border);border-radius:var(--r-full);background:var(--surface-overlay);color:var(--accent-text);font:var(--fw-medium) var(--fs-sm) var(--font-ui);box-shadow:var(--shadow-sm);letter-spacing:var(--ls-12);}
#collab-vote-banner button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:6px 10px;border:0;border-radius:var(--r-full);background:transparent;color:inherit;font:inherit;cursor:pointer}
#collab-vote-banner button:hover:not(:disabled){background:var(--accent-soft)}
#collab-vote-banner button:disabled{opacity:.45;cursor:default}
#collab-vote-banner .collab-vote-banner-open{min-width:0;flex:1}
#collab-vote-banner .collab-vote-banner-done{flex-shrink:0;border-left:1px solid var(--border-subtle);border-radius:0 var(--r-full) var(--r-full) 0;font-size:var(--fs-xs);letter-spacing:var(--ls-11);}
#collab-vote-banner button[hidden]{display:none}
#collab-vote-banner svg{width:17px;height:17px;flex-shrink:0}
.collab-vote-banner-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.collab-vote-banner-budget{flex-shrink:0;padding:4px 7px;border-radius:var(--r-full);background:var(--accent-soft);font-size:var(--fs-xs); letter-spacing:var(--ls-11);white-space:nowrap}
.collaboration-dialog .collab-row:has(#collab-open-session){flex-wrap:wrap}
.collaboration-dialog #collab-open-session{display:inline-flex;align-items:center;gap:7px}
.collaboration-dialog #collab-open-session svg{width:17px;height:17px}
@keyframes session-open{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes session-hand-wave{0%,100%{transform:rotate(0)}35%{transform:rotate(12deg)}70%{transform:rotate(-8deg)}}
@media(max-width:600px){
  #collab-bar{max-width:calc(100vw - 24px);box-sizing:border-box;gap:6px}
  #collab-status{font-size:0;width:8px;max-width:8px;overflow:visible}
  #collab-status::before{margin-right:0}
  #collab-avatars .collab-avatar:nth-child(n+3){display:none}
  .collab-session-button{min-height:44px;min-width:44px}
  .collab-session-clock{font-size:var(--fs-xs);letter-spacing:var(--ls-11);}
  .session-head{padding:10px;gap:6px}
  .session-dialog .session-tabs button{min-height:44px;padding:0 4px;gap:5px;font-size:var(--fs-xs);letter-spacing:var(--ls-11);}
  .session-dialog .session-tabs button svg{width:15px;height:15px}
  .session-dialog .native-dialog-close{flex-basis:44px;width:44px;min-height:44px}
  .session-dialog .native-dialog-body{padding:20px 16px}
  .session-dialog .native-dialog-body:has(.session-vote-footer){padding-bottom:0}
  .session-vote-footer{padding-bottom:20px}
  .session-dialog button{min-height:44px}
  .session-dialog .session-end-link{min-height:44px}
  .session-timer-dial{width:196px;height:196px}
  .session-timer-digits{font-size:48px}
  .session-vote-buttons button{width:44px;min-height:44px}
  .session-candidates li{gap:8px}
  .session-actions button{gap:5px;font-size:var(--fs-xs);letter-spacing:var(--ls-11);}
  .session-actions svg{width:15px;height:15px}
  .collab-vote-badge button{width:44px;height:44px}
  #collab-vote-banner{bottom:90px}
  #collab-vote-banner button{min-height:44px}
  #collab-vote-banner .collab-vote-banner-open{gap:5px;padding:6px 8px}
  #collab-vote-banner .collab-vote-banner-open>svg{display:none}
}
@media(max-width:400px){#collab-avatars .collab-avatar:nth-child(n+2){display:none}}
@media(max-height:520px){
  .session-timer-dial{width:156px;height:156px}
  .session-timer-digits{font-size:40px}
  .session-timer{padding-bottom:14px}
  .session-hand-art{width:56px;height:56px;border-radius:20px;margin-bottom:10px}
  .session-hand-art svg{width:30px;height:30px}
}
@media(prefers-reduced-motion:reduce){.session-dialog[open],.session-hand-hero[data-raised=true] .session-hand-art svg{animation:none}.session-ring-progress,.session-dialog button,.collab-session-button,.session-vote-dots i{transition:none}}

.collaboration-dialog .collab-legal { display:flex; align-items:flex-start; gap:10px; font-size:var(--fs-sm); letter-spacing:var(--ls-12); line-height:1.5; }
.collaboration-dialog .collab-legal input[type="checkbox"] { width:16px; height:16px; flex:0 0 16px; margin:3px 0 0; }

.collab-session-tools{display:flex;align-items:center;gap:2px;flex:none}
.collab-session-tools .collab-session-button{width:32px;min-width:32px}
.add-menu .add-web-narrow{display:none}
@media(max-width:640px){.tool-dock [data-dock="web"],.tool-dock #btn-stickers{display:none}.add-menu .add-web-narrow{display:flex}.collab-session-tools .collab-session-button{width:30px;min-width:30px;min-height:40px}}
@media(pointer:coarse){
  .collab-session-tools .collab-session-button{width:var(--ctl-xl);min-width:var(--ctl-xl);min-height:var(--ctl-xl)}
  .session-dialog button,.session-dialog .session-tabs button,.session-dialog .session-end-link,
  .collaboration-dialog button,#collab-vote-banner button{min-height:var(--ctl-xl)}
  .session-dialog .native-dialog-close{flex-basis:var(--ctl-xl);width:var(--ctl-xl)}
  .session-vote-buttons button,.collab-vote-badge button{width:var(--ctl-xl);min-height:var(--ctl-xl)}
  .collab-vote-badge button{height:var(--ctl-xl)}
  .session-dialog input:not([type=checkbox],[type=radio]),.session-dialog select,
  .collaboration-dialog input:not([type=checkbox],[type=radio]),.collaboration-dialog select{min-height:var(--ctl-xl);font-size:var(--fs-xl);letter-spacing:var(--ls-16)}
  .collaboration-dialog .collab-legal{min-height:var(--ctl-xl);align-items:center}
}
/* Six touch targets fit beside Outline on the narrowest phone without shrinking
   their hit areas. Remove decorative gaps before sacrificing an action. */
@media(pointer:coarse) and (max-width:359px){
  /* Shared state is repeated in the reader and Share dialog; the chip must not
     cover the mode switch when all header actions retain their touch targets. */
  .static-web .topbar-left #collab-mode{display:none}
  .bottombar:has(.collab-session-tools){padding-inline:var(--sp-1);grid-template-columns:auto minmax(0,1fr) auto}
  .bottombar:has(.collab-session-tools) .tool-dock,.collab-session-tools{gap:0}
  .bottombar:has(.collab-session-tools) .dock-sep{display:none}
}
