/* Task Helper — plan overlays (job-intake.md §3.1 2d; slices 2d-1 + 2d-2). Namespace: .tho-
 * Uses the app's tokens (--card, --ink, --muted, --line, --accent, --err, --hover). Selectors are
 * class + element so they win over index.html's bare button/input rules (loaded after this file).
 * Accessibility as §14.7: visible :focus-visible ring, ≥ 44 px targets on touch screens. */
@import url('/overlay/maptools.css');   /* the ONE style for every map tool (BRIEF-872) — must stay the first rule */


/* The plan image: warped by a matrix3d from its top-left corner. */
.leaflet-container img.tho-plan { position:absolute; left:0; top:0; transform-origin:0 0; max-width:none; max-height:none;
                                  user-select:none; -webkit-user-select:none; pointer-events:none; }

/* Plans control: its button's look (size, border, badge, where the panel opens) is maptools.css — nothing per control here. */

/* Panel */
.tho-panel { background:var(--card); color:var(--ink); border:1px solid var(--line); border-radius:12px;
             box-shadow:0 6px 24px rgba(20,28,40,.25); padding:10px 12px 12px; font-size:14px; line-height:1.4; cursor:auto; }
.tho-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; }
.tho-head h2 { margin:0; font-size:16px; }
.tho-panel button.tho-close { width:36px; height:36px; padding:0; font-size:16px; background:transparent; color:var(--muted);
                              border:0; border-radius:8px; }
.tho-panel button.tho-close:hover { background:var(--hover); color:var(--ink); }
.tho-list { list-style:none; margin:0; padding:0; }
.tho-row { padding:8px 0; border-top:1px solid var(--line); }
.tho-row:first-child { border-top:0; }
.tho-line { display:flex; align-items:center; gap:6px; }
.tho-panel input.tho-name { flex:1 1 auto; min-width:0; width:auto; padding:6px 8px; font-size:14px; border-radius:7px; }
.tho-panel button.tho-eye { flex:none; width:36px; height:36px; padding:0; display:inline-flex; align-items:center; justify-content:center;
                            background:transparent; color:var(--accent); border:1px solid var(--line); border-radius:8px; }
.tho-panel button.tho-eye[aria-pressed="false"] { color:var(--muted); }
.tho-panel button.tho-eye svg { width:20px; height:20px; fill:currentColor; }
.tho-panel button.tho-mini { flex:none; width:auto; padding:7px 9px; font-size:13px; font-weight:600;
                             background:var(--bg); color:var(--ink); border:1px solid var(--line); border-radius:8px; }
.tho-panel button.tho-mini:hover { background:var(--hover); }
.tho-panel button.tho-del { color:var(--err); }
.tho-op { display:flex; align-items:center; gap:8px; margin:6px 0 0; font-size:12px; color:var(--muted); }
.tho-op input[type="range"] { flex:1 1 auto; width:auto; padding:0; border:0; background:none; accent-color:var(--accent); }
.tho-pct { flex:none; width:36px; text-align:right; font-variant-numeric:tabular-nums; }
.tho-empty { color:var(--muted); padding:6px 0; }
.tho-sum { margin:0 0 6px; font-size:12px; color:var(--muted); }
.tho-sum:empty { display:none; }
.tho-meta { margin-top:4px; font-size:12px; color:var(--muted); }
.tho-acts { display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
.tho-name-ro { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:600; }
.tho-add { margin-top:10px; }
.tho-panel button.tho-addbtn { width:100%; padding:10px; font-size:14px; }
.tho-hint { margin:8px 0 0; font-size:12px; color:var(--muted); }
.tho-status { margin:6px 0 0; font-size:13px; min-height:1em; }
.tho-status:empty { display:none; }
.tho-status.tho-err { color:var(--err); font-weight:600; }

.tho-panel button:focus-visible, .tho-panel input:focus-visible, .tho-panel select:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }

@media (pointer: coarse) {
  .tho-panel button.tho-close, .tho-panel button.tho-eye { width:44px; height:44px; }
  .tho-panel button.tho-mini { min-height:44px; min-width:44px; }
  .tho-panel input.tho-name { min-height:44px; }
  .tho-line { gap:8px; }
  .tho-op input[type="range"] { min-height:44px; }
}

/* ── Line up screen (2d-2) — full screen, above every app layer ─────────────── */
html.tho-fit-open, html.tho-fit-open body { overflow:hidden; }
.tho-fit { position:fixed; inset:0; z-index:3000; display:flex; flex-direction:column; background:var(--bg); color:var(--ink);
           padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); }
.tho-fit-head { display:flex; align-items:center; gap:8px; padding:8px 10px; background:var(--ink); color:#fff; }
.tho-fit-head h2 { flex:1 1 auto; min-width:0; margin:0; font-size:16px; letter-spacing:0; text-transform:none; color:#fff;
                   overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tho-fit-name { color:#fff; font-weight:700; }
.tho-fit-k { font-weight:400; color:#c8d0da; }
.tho-fit button.tho-fit-save { width:auto; padding:0 16px; height:40px; font-size:15px; }
.tho-fit button.tho-fit-x { width:40px; height:40px; padding:0; font-size:16px; background:rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.25); }
.tho-fit button.tho-fit-x:focus-visible, .tho-fit button.tho-fit-save:focus-visible { outline-color:#fff; }
.tho-fit-panes { flex:1 1 auto; min-height:0; display:flex; flex-direction:column; gap:6px; padding:6px; }
.tho-pane { position:relative; flex:1 1 0; min-height:0; border:3px solid var(--line); border-radius:10px; overflow:hidden; background:#dfe4ea; }
.tho-pane.tho-active { border-color:var(--accent); }
.tho-leaf { position:absolute; inset:0; isolation:isolate; z-index:0; background:#eef1f4; }
.tho-cross { position:absolute; left:50%; top:50%; width:44px; height:44px; margin:-22px 0 0 -22px; z-index:600; pointer-events:none;
             background:
               linear-gradient(#fff,#fff) center/2px 44px no-repeat,
               linear-gradient(#fff,#fff) center/44px 2px no-repeat;
             filter:drop-shadow(0 0 1.5px #000) drop-shadow(0 0 1px #000); }
.tho-cross::after { content:''; position:absolute; left:50%; top:50%; width:14px; height:14px; margin:-7px 0 0 -7px;
                    border:2px solid #e0245e; border-radius:50%; }
.tho-pane-tag { position:absolute; left:8px; bottom:8px; z-index:600; padding:2px 8px; border-radius:6px; font-size:12px; font-weight:700;
                background:rgba(20,28,40,.72); color:#fff; pointer-events:none; }
.tho-pane.tho-active .tho-pane-tag { background:var(--accent); }
.tho-fit-foot { flex:0 0 auto; max-height:44vh; overflow:auto; padding:8px 12px 12px; background:var(--card); border-top:1px solid var(--line); font-size:14px; }
.tho-fit-step { margin:0 0 8px; font-weight:600; }
.tho-fit-actions { display:flex; gap:8px; }
.tho-fit button.tho-fit-go { flex:1 1 auto; width:auto; padding:11px 12px; font-size:15px; }
.tho-fit button.tho-fit-cancel, .tho-fit button.tho-fit-undo { flex:0 0 auto; width:auto; padding:11px 14px; font-size:15px;
             background:var(--bg); color:var(--ink); border:1px solid var(--line); }
.tho-fit-acc { margin:8px 0 4px; font-weight:600; }
.tho-fit-acc:empty { display:none; }
.tho-fit-pairs { list-style:none; margin:0; padding:0; }
.tho-fit-pairs li { display:flex; align-items:center; gap:6px; padding:5px 0; border-top:1px solid var(--line); }
.tho-fit-err { flex:1 1 auto; min-width:7.5em; font-variant-numeric:tabular-nums; white-space:nowrap; }
.tho-fit button.tho-mini { flex:none; width:auto; padding:7px 10px; font-size:13px; font-weight:600;
                          background:var(--bg); color:var(--ink); border:1px solid var(--line); border-radius:8px; }
.tho-fit button.tho-mini:hover { background:var(--hover); }
.tho-fit button.tho-del { color:var(--err); }
.tho-fit-stretch { display:flex; align-items:center; gap:8px; margin:8px 0 0; font-size:14px; color:var(--ink); }
.tho-fit-stretch input { width:20px; height:20px; margin:0; }
.tho-fit-stretch.tho-dim { color:var(--muted); }
.tho-fit-why { color:var(--muted); font-size:12px; }
.tho-fit-status { margin:6px 0 0; font-size:13px; }
.tho-fit-status:empty { display:none; }
.tho-fit-status.tho-err, .tho-fit-acc.tho-err { color:var(--err); }
/* Accuracy bands — colour AND a word (good / fair / poor), never colour alone */
/* "check this pair?" (BRIEF-987 G2): the point the others disagree with */
.tho-fit-sus { box-shadow:inset 3px 0 0 #c0392b; }
.tho-fit-check { color:#c0392b; font-weight:700; }
.tho-fit-sus .tho-fit-err { white-space:normal; }
.tho-band-good { color:#1b7a44; }
.tho-band-fair { color:#8a5300; }
.tho-band-poor { color:#c0392b; }
/* Numbered point markers */
.tho-num-wrap { background:none; border:0; }
.tho-num { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%;
           font:700 13px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; box-shadow:0 1px 3px rgba(0,0,0,.45); flex:none; }
.tho-num-set { background:var(--accent); color:#fff; border:2px solid #fff; }
.tho-num-active { background:#e0245e; color:#fff; border:2px solid #fff; }
.tho-num-pending { background:#fff; color:var(--accent); border:2px dashed var(--accent); }
.tho-num-ghost { background:rgba(255,255,255,.7); color:#1b2430; border:2px dashed #1b2430; }
.tho-fit button:focus-visible, .tho-fit input:focus-visible, .tho-fit .leaflet-container:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
/* Wide screens: plan and map side by side */
@media (min-width: 768px) {
  .tho-fit-panes { flex-direction:row; }
  .tho-fit-foot { max-height:36vh; }
}
@media (pointer: coarse) {
  .tho-fit button.tho-fit-save, .tho-fit button.tho-fit-x { height:44px; min-width:44px; }
  .tho-fit button.tho-fit-go, .tho-fit button.tho-fit-cancel, .tho-fit button.tho-fit-undo { min-height:44px; }
  .tho-fit-pairs .tho-mini { min-height:44px; min-width:44px; }
  .tho-fit-stretch { min-height:44px; }
}

/* ── PDF page chooser (2d-3) ───────────────────────────────────────────────── */
.tho-pdf { position:fixed; inset:0; z-index:3000; display:flex; align-items:flex-start; justify-content:center; background:rgba(20,28,40,.55);
           padding:max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom)); }
.tho-pdf-box { width:min(760px, 100%); max-height:100%; display:flex; flex-direction:column; background:var(--card); color:var(--ink);
               border-radius:14px; box-shadow:0 10px 40px rgba(20,28,40,.35); padding:12px 14px 14px; }
.tho-pdf-head { display:flex; align-items:center; gap:8px; }
.tho-pdf-head h2 { flex:1 1 auto; min-width:0; margin:0; font-size:17px; letter-spacing:0; text-transform:none; color:var(--ink); }
.tho-pdf button.tho-pdf-x { flex:none; width:40px; height:40px; padding:0; font-size:16px; background:transparent; color:var(--muted); border:0; }
.tho-pdf button.tho-pdf-x:hover { background:var(--hover); color:var(--ink); }
.tho-pdf-sub { margin:4px 0 10px; font-size:13px; color:var(--muted); overflow-wrap:anywhere; }
.tho-pdf-pages { list-style:none; margin:0; padding:2px; display:grid; grid-template-columns:repeat(auto-fill, minmax(132px, 1fr)); gap:10px;
                 overflow:auto; flex:1 1 auto; min-height:0; }
.tho-pdf button.tho-pdf-page { width:100%; padding:8px; display:flex; flex-direction:column; align-items:center; gap:6px;
                               background:var(--bg); color:var(--ink); border:1px solid var(--line); border-radius:10px; font-size:13px; font-weight:600; }
.tho-pdf button.tho-pdf-page:hover { background:var(--hover); border-color:var(--accent); }
.tho-pdf-thumb { display:flex; align-items:center; justify-content:center; width:100%; min-height:110px; background:#fff; border:1px solid var(--line); border-radius:6px; }
.tho-pdf-canvas { max-width:100%; max-height:170px; height:auto; width:auto; display:block; }
.tho-pdf-status { margin:10px 0 0; font-size:13px; color:var(--muted); }
.tho-pdf button:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }

/* ── Adjust corners (2d-4) ─────────────────────────────────────────────────── */
.tho-adj-handle { background:none; border:0; display:flex; align-items:center; justify-content:center; cursor:grab; touch-action:none; }   /* 44 px hit area */
.tho-adj-handle span { width:20px; height:20px; border-radius:50%; background:#fff; border:3px solid #e0245e; box-shadow:0 1px 4px rgba(0,0,0,.5); }
.tho-adj-handle:active { cursor:grabbing; }
.tho-adj-handle:focus-visible { outline:2px solid var(--accent); outline-offset:-6px; border-radius:50%; }
.tho-adj-bar { position:absolute; left:50%; bottom:28px; transform:translateX(-50%); z-index:1000; width:min(420px, calc(100% - 20px));
               background:var(--card); color:var(--ink); border:1px solid var(--line); border-radius:12px; box-shadow:0 6px 24px rgba(20,28,40,.3);
               padding:10px 12px; font-size:14px; line-height:1.4; cursor:auto; }
/* Phones: the app's floating "+" button sits bottom-right — keep Save/Cancel clear of it. */
@media (max-width: 767px) { .tho-adj-bar { bottom:96px; } }
.tho-adj-text { margin:0 0 6px; }
.tho-adj-status { margin:0 0 6px; font-size:13px; }
.tho-adj-status:empty { display:none; }
.tho-adj-status.tho-err { color:var(--err); font-weight:600; }
.tho-adj-actions { display:flex; gap:8px; }
.tho-adj-bar button.tho-adj-save { flex:1 1 0; width:auto; padding:10px; font-size:15px; }
.tho-adj-bar button.tho-adj-cancel { flex:1 1 0; width:auto; padding:10px; font-size:15px; background:var(--bg); color:var(--ink); border:1px solid var(--line); }
.tho-adj-bar button:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
@media (pointer: coarse) {
  .tho-pdf button.tho-pdf-x { width:44px; height:44px; }
  .tho-adj-bar button.tho-adj-save, .tho-adj-bar button.tho-adj-cancel { min-height:44px; }
}

/* ── Set scale (2d-5) ─────────────────────────────────────────────────────── */
.tho-scale .tho-fit-panes { flex-direction:column; }                 /* one pane: the plan */
.tho-scale-len { display:block; margin:10px 0 0; font-size:13px; color:var(--muted); }
.tho-scale input.tho-scale-m { display:block; width:100%; max-width:220px; margin-top:4px; padding:10px 12px; font-size:16px; }
.tho-scale-effect { margin:8px 0 0; font-size:13px; color:var(--muted); }
.tho-scale-prec { margin:4px 0 0; font-size:13px; color:var(--muted); }
.tho-scale-prec.tho-warn { color:#8a5300; font-weight:600; }
.tho-scale button.tho-scale-clear { width:auto; margin-top:10px; padding:9px 14px; font-size:14px; background:var(--bg); color:var(--err); border:1px solid var(--line); }
.tho-fit-scale { margin:8px 0 0; font-size:13px; color:var(--muted); }
.tho-fit-scale.tho-warn { color:#8a5300; font-weight:600; }
.tho-meta-scale { color:var(--ink); }
@media (pointer: coarse) {
  .tho-scale input.tho-scale-m, .tho-scale button.tho-scale-clear { min-height:44px; }
}

/* ── Page bearing (2d-6) ──────────────────────────────────────────────────── */
.tho-bear { margin-top:12px; padding-top:10px; border-top:1px solid var(--line); }
.tho-bear .tho-scale-len { margin-top:0; }
.tho-scale input.tho-bear-deg { display:block; width:100%; max-width:220px; margin-top:4px; padding:10px 12px; font-size:16px; }
.tho-bear-refl { display:flex; align-items:center; gap:8px; margin:8px 0 0; font-size:13px; color:var(--muted); }
.tho-bear-ref { flex:0 1 auto; padding:8px 10px; font-size:15px; border:1px solid var(--line); border-radius:8px; background:#fbfcfd; color:var(--ink); }
.tho-bear-note { margin:6px 0 0; font-size:13px; font-weight:600; }
/* 2d-8: the plan's own map grid + zone, and a local meridian's offset — label above, control full width (phones) */
.tho-grid { margin-top:10px; }
.tho-grid .tho-bear-refl { display:block; }
.tho-grid select { display:block; width:100%; max-width:100%; margin-top:4px; box-sizing:border-box; padding:8px 10px; font-size:15px; border:1px solid var(--line); border-radius:8px; background:#fbfcfd; color:var(--ink); }
.tho-scale input.tho-bear-off { display:block; width:100%; max-width:220px; margin-top:4px; padding:10px 12px; font-size:16px; }
@media (pointer: coarse) { .tho-grid select, .tho-scale input.tho-bear-off { min-height:44px; } }
.tho-bear-note:empty { display:none; }
.tho-bear-note.tho-err { color:var(--err); }
.tho-scale button.tho-bear-clear { width:auto; margin-top:10px; padding:9px 14px; font-size:14px; background:var(--bg); color:var(--err); border:1px solid var(--line); }
.tho-scale select:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
@media (pointer: coarse) {
  .tho-scale input.tho-bear-deg, .tho-bear-ref, .tho-scale button.tho-bear-clear { min-height:44px; }
}

/* ── 2d-7: the job chooser; ONE LINE per plan that opens to the rest; order numbers ───────── */
.tho-job { display:flex; align-items:center; gap:8px; margin:0 0 8px; font-size:13px; font-weight:600; color:var(--ink); }
.tho-panel select.tho-jobsel, .tho-panel select.tho-pjob { flex:1 1 auto; min-width:0; width:auto; padding:7px 8px; font-size:14px;
  border:1px solid var(--line); border-radius:8px; background:#fbfcfd; color:var(--ink); }
.tho-row .tho-line { gap:6px; }
.tho-panel button.tho-rowbtn { flex:1 1 auto; min-width:0; width:auto; display:flex; align-items:center; gap:6px; padding:6px 8px;
  font-size:14px; font-weight:600; text-align:left; background:transparent; color:var(--ink); border:1px solid transparent; border-radius:8px; }
.tho-panel button.tho-rowbtn:hover { background:var(--hover); }
.tho-rowname { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
/* §26: a live share link on this plan (BRIEF-929) */
.tho-linkon { flex:none; padding:1px 6px; font-size:11px; font-weight:600; color:var(--muted); border:1px solid var(--line); border-radius:999px; white-space:nowrap; }
.tho-chev { flex:none; width:14px; height:14px; color:var(--muted); transition:transform .15s; }
.tho-row-open .tho-chev { transform:rotate(180deg); }
.tho-panel input.tho-ord { flex:none; width:58px; padding:6px 6px; font-size:14px; text-align:center; border-radius:7px; font-variant-numeric:tabular-nums; }
.tho-ord-ro { flex:none; min-width:36px; padding:4px 8px; font-size:13px; font-weight:600; text-align:center; color:var(--muted);
  border:1px solid var(--line); border-radius:7px; font-variant-numeric:tabular-nums; }
.tho-det { margin:6px 0 2px 42px; }
.tho-detrow { display:flex; align-items:center; gap:8px; margin:0 0 6px; font-size:12px; color:var(--muted); }
.tho-detrow input.tho-name { flex:1 1 auto; }
.tho-det .tho-acts { margin-top:4px; }
.tho-panel button.tho-addbtn:disabled { opacity:.55; cursor:not-allowed; }
.tho-panel button:focus-visible, .tho-panel select:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
@media (pointer: coarse) {
  .tho-panel button.tho-rowbtn, .tho-panel input.tho-ord, .tho-ord-ro, .tho-panel select.tho-jobsel, .tho-panel select.tho-pjob, .tho-panel button.tho-addbtn { min-height:44px; }
  .tho-ord-ro { display:inline-flex; align-items:center; justify-content:center; }
  .tho-det { margin-left:0; }
}

/* §19 D-1: the drawing-set import (the PDF page chooser's box, with a name field and a progress bar) */
.tho-set .tho-set-body { padding-top:6px; }
.tho-set-l { display:block; margin:8px 0 4px; font-size:13px; font-weight:600; color:var(--ink); }
.tho-set-l input { display:block; width:100%; box-sizing:border-box; margin-top:4px; padding:10px 12px; font-size:16px; border:1px solid var(--line); border-radius:8px; }
.tho-set-acts { display:flex; gap:8px; margin-top:12px; }
.tho-set-acts button { width:auto; padding:10px 14px; font-size:15px; }
.tho-set-what { margin:6px 0 8px; font-size:14px; }
.tho-set-bar { height:10px; border-radius:6px; background:var(--line); overflow:hidden; }
.tho-set-bar span { display:block; height:100%; width:0; background:var(--accent); transition:width .2s; }
@media (pointer: coarse) { .tho-set-acts button, .tho-set-l input { min-height:44px; } }
.tho-panel button.tho-setbtn { margin-top:6px; }

/* §19 D-2: a drawing set's row (‹ › beside the name), its own controls, and the pager bar on the map */
.tho-panel button.tho-pg { flex:none; width:30px; height:30px; padding:0; font-size:18px; line-height:1; background:var(--bg); color:var(--ink); border:1px solid var(--line); border-radius:7px; }
.tho-panel button.tho-pg:disabled { opacity:.4; cursor:default; }
.tho-own { align-items:flex-start; }
.tho-own input { width:18px; height:18px; margin:2px 0 0; flex:none; }
.tho-panel select.tho-spage { flex:1 1 auto; min-width:0; padding:7px 8px; font-size:14px; border:1px solid var(--line); border-radius:8px; background:#fbfcfd; color:var(--ink); }
.tho-pgbar { position:absolute; z-index:800; left:50%; bottom:28px; transform:translateX(-50%); display:flex; align-items:center; gap:4px;
  max-width:calc(100% - 160px); padding:4px; background:var(--card); border:1px solid rgba(0,0,0,.2); border-radius:12px; box-shadow:0 2px 8px rgba(20,28,40,.3); }
.tho-pgbar[hidden] { display:none; }
.tho-pgbar button.tho-pgbar-b { flex:none; width:40px; height:40px; padding:0; font-size:22px; line-height:1; background:var(--bg); color:var(--ink); border:1px solid var(--line); border-radius:9px; }
.tho-pgbar button.tho-pgbar-b:disabled { opacity:.4; }
.tho-pgbar-sel { display:flex; flex-direction:column; align-items:stretch; min-width:0; padding:0 4px; }
.tho-pgbar-name { font-size:11px; font-weight:600; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:150px; }
.tho-pgbar select { padding:4px 6px; font-size:15px; font-weight:700; border:0; background:transparent; color:var(--ink); }
.tho-pgbar :focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
@media (pointer: coarse) {
  .tho-panel button.tho-pg { width:44px; height:44px; }
  .tho-pgbar button.tho-pgbar-b { width:44px; height:44px; }
  .tho-pgbar select { min-height:40px; }
  .tho-pgbar { bottom:20px; max-width:calc(100% - 100px); left:calc(50% - 30px); }   /* clear of the + button */
}
@media (max-width: 480px) { .tho-panel button.tho-pg { display:none; } }   /* phones: flick with the pager bar / the page list — the name keeps its room */

/* §19 D-3: a task's drawing — the field in the task panel, and the pager's "Drawing for TSK-12 ✕" line */
.tho-td .tho-td-row { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.tho-td select { flex:1 1 140px; min-width:0; padding:7px 8px; font-size:14px; border:1px solid var(--line); border-radius:8px; background:#fbfcfd; color:var(--ink); }
.tho-td select.tho-td-page { flex:0 1 120px; }
.tho-td button.tho-td-show { flex:none; width:auto; padding:7px 10px; font-size:13px; font-weight:600; background:var(--bg); color:var(--ink); border:1px solid var(--line); border-radius:8px; }
.tho-td .tho-td-ro { font-size:14px; }
.tho-td .tho-td-msg { margin:4px 0 0; font-size:12px; color:var(--muted); }
.tho-td .tho-td-msg.tho-err { color:var(--err); }
@media (pointer: coarse) { .tho-td select, .tho-td button.tho-td-show { min-height:44px; } }
.tho-pgbar.tho-pgbar-task { flex-wrap:wrap; justify-content:center; }
.tho-pgbar-task-l { flex:1 0 100%; display:flex; align-items:center; justify-content:space-between; gap:6px; padding:0 2px 2px 6px; font-size:12px; font-weight:700; color:var(--accent); }
.tho-pgbar button.tho-pgbar-x { width:28px; height:28px; padding:0; font-size:14px; background:transparent; color:var(--muted); border:0; }
@media (pointer: coarse) { .tho-pgbar button.tho-pgbar-x { width:40px; height:40px; } }

/* Gary's phone polish (D-2): minimise the panel to the pager; the pager's ⌃ re-opens it; per-page actions wrap, 44 px */
.tho-head { gap:4px; }
.tho-head h2 { flex:1 1 auto; }
.tho-panel button.tho-min { width:36px; height:36px; padding:0; background:transparent; color:var(--muted); border:0; border-radius:8px; display:flex; align-items:center; justify-content:center; }
.tho-panel button.tho-min:hover { background:var(--hover); color:var(--ink); }
.tho-panel button.tho-min[hidden] { display:none; }
.tho-pgbar button.tho-pgbar-up { flex:none; width:40px; height:40px; padding:0; display:flex; align-items:center; justify-content:center; background:var(--accent); color:var(--accent-ink); border:0; border-radius:9px; }
.tho-setrow .tho-acts .tho-mini { white-space:normal; text-align:left; }
@media (pointer: coarse) {
  .tho-panel button.tho-min, .tho-panel button.tho-close { width:44px; height:44px; }
  .tho-pgbar button.tho-pgbar-up { width:44px; height:44px; }
}
@media (max-width: 480px) { .tho-pgbar { left:calc(50% - 30px); max-width:calc(100% - 92px); } .tho-pgbar-name { max-width:110px; } }

/* §19 D-4: zoomed in past the background tiles — a plain background, the drawing keeps scaling */
.leaflet-container.tho-plain { background:#f4f4f1; }

/* L-1 (Gary): Line up keeps the map in view — on a phone a pane's tag shows it full height (the other folds away), the set's
   other pages faint + labelled. On a computer the tags are plain labels (both panes are always side by side). */
.tho-fit button.tho-pane-tag { border:0; font:inherit; cursor:default; }
@media (max-width: 767px) {
  .tho-fit button.tho-pane-tag { min-width:44px; min-height:44px; padding:0 12px; font-size:13px; font-weight:700; cursor:pointer; display:inline-flex; align-items:center; gap:6px; pointer-events:auto; z-index:1000; width:auto; max-width:calc(100% - 16px); }
  .tho-fit.tho-v-plan .tho-pane[data-side="map"], .tho-fit.tho-v-map .tho-pane[data-side="plan"] { display:none; }
}
@media (min-width: 768px) { .tho-fit button.tho-pane-tag { pointer-events:none; } .tho-fit button.tho-pane-tag span { display:none; } }

/* M-1: MEASURE — the crosshair, the sheet at the bottom of the map, the points, the legs and the live (rubber-band) leg */
.thom-cross { position:absolute; left:50%; top:50%; width:34px; height:34px; margin:-17px 0 0 -17px; z-index:650; pointer-events:none;
  background:linear-gradient(var(--accent),var(--accent)) center/2px 100% no-repeat, linear-gradient(var(--accent),var(--accent)) center/100% 2px no-repeat;
  filter:drop-shadow(0 0 1.5px #fff) drop-shadow(0 0 1.5px #fff); }
.thom-sheet { position:absolute; left:8px; right:8px; bottom:24px; z-index:850; max-height:45%; overflow:auto; padding:8px 10px; box-sizing:border-box;
  background:var(--card); color:var(--ink); border:1px solid rgba(0,0,0,.2); border-radius:12px; box-shadow:0 2px 10px rgba(20,28,40,.3); font-size:13px; }
@media (min-width: 768px) { .thom-sheet { left:auto; width:380px; } }
.thom-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:4px; }
.thom-head strong { font-size:15px; }
.thom-sheet button { width:auto; padding:7px 12px; font-size:14px; font-weight:600; border-radius:9px; border:1px solid var(--line); background:var(--bg); color:var(--ink); }
.thom-sheet button.thom-add { background:var(--accent); color:var(--accent-ink); border-color:var(--accent); }
.thom-sheet button:disabled { opacity:.45; }
.thom-live { margin:2px 0 0; font-size:15px; font-weight:700; }
.thom-live2, .thom-legs small, .thom-prec, .thom-note { margin:2px 0; font-size:12px; color:var(--muted); }
.thom-legs { margin:6px 0 0; padding:0 0 0 2px; list-style:none; }
.thom-legs li { padding:3px 0; border-top:1px solid var(--line); }
.thom-legs small { display:block; }
.thom-lab { font-weight:700; color:var(--muted); }
.thom-total { margin:4px 0 0; font-weight:700; }
.thom-total:empty, .thom-live2:empty, .thom-msg:empty { display:none; }
.thom-acts { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0 4px; }
.thom-pt { background:none; border:0; }
.thom-pt span { display:flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:50%; background:var(--accent); color:var(--accent-ink);
  font:700 12px/1 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; border:2px solid #fff; box-shadow:0 1px 3px rgba(0,0,0,.4); box-sizing:border-box; }
path.thom-line { stroke:var(--accent); stroke-width:3; fill:none; }
path.thom-band { stroke:var(--accent); stroke-width:2.5; stroke-dasharray:6 5; fill:none; }
.leaflet-container.thom-on .tho-pgbar { display:none; }   /* the measure sheet takes the bottom while measuring */
@media (pointer: coarse) { .thom-sheet button { min-height:44px; min-width:44px; } }

/* M-2: "Measure on the map" in Scale & bearing — the map pane under the plan while measuring, the step box */
.tho-scale .tho-pane[hidden] { display:none; }
.tho-scale button.tho-mm-start { width:auto; margin-top:8px; padding:9px 14px; font-size:14px; font-weight:600; background:var(--bg); color:var(--ink); border:1px solid var(--line); border-radius:9px; }
.tho-mm { margin-top:8px; padding:8px; border:1px solid var(--accent); border-radius:10px; }
.tho-mm-step { margin:0 0 4px; font-size:13px; font-weight:600; }
.tho-mm-live { margin:0 0 6px; font-size:15px; font-weight:700; }
.tho-mm-live:empty { display:none; }
.tho-mm-acts { display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
.tho-mm-acts button { width:auto; padding:9px 12px; font-size:14px; font-weight:600; border-radius:9px; border:1px solid var(--line); background:var(--bg); color:var(--ink); white-space:normal; text-align:left; }
.tho-mm-acts button.tho-mm-go, .tho-mm-acts button.tho-mm-use { background:var(--accent); color:var(--accent-ink); border-color:var(--accent); }
.tho-mm-acts button[hidden] { display:none; }
.tho-scale input.tho-mm-angle { display:block; width:100%; max-width:160px; margin-top:4px; padding:10px 12px; font-size:16px; }
@media (pointer: coarse) { .tho-scale button.tho-mm-start, .tho-mm-acts button, .tho-scale input.tho-mm-angle { min-height:44px; } }
@media (max-width: 767px) {   /* M-2 on a phone: only the pane being aimed, full height */
  .tho-scale.tho-mm-map .tho-pane[data-side="plan"], .tho-scale.tho-mm-draw .tho-pane[data-side="map"] { display:none; }
}

/* M-3: Line up one point (in Scale & bearing) and the Plans panel's 30-second Undo */
.tho-scale button.tho-one { width:auto; margin-top:8px; padding:9px 14px; font-size:14px; font-weight:600; background:var(--accent); color:var(--accent-ink); border:0; border-radius:9px; }
.tho-scale button.tho-one[hidden] { display:none; }
.tho-status button.tho-undo { width:auto; margin-left:6px; padding:4px 10px; font-size:13px; font-weight:700; background:var(--bg); color:var(--ink); border:1px solid var(--line); border-radius:8px; }
@media (pointer: coarse) { .tho-scale button.tho-one, .tho-status button.tho-undo { min-height:44px; } }

/* ── T-2: a drawing set's Pages grid (overlay-pages.js) — as many ≥ 76 px columns as the panel fits (3 in the side panel / a phone) ── */
.tho-pages { margin-top:6px; }
.tho-panel button.tho-pages-btn { display:inline-flex; align-items:center; gap:4px; }
.tho-pages-btn[aria-expanded="true"] .tho-chev { transform:rotate(180deg); }
.tho-pts { list-style:none; margin:6px 0 0; padding:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(76px, 1fr)); gap:6px; }
.tho-pt { position:relative; min-width:0; }
.tho-panel button.tho-pt-go { display:block; width:100%; padding:0; margin:0; background:#fff; color:var(--ink); border:1px solid var(--line);
                              border-radius:6px; overflow:hidden; cursor:pointer; text-align:left; }
.tho-pt-go img, .tho-pt-none { display:block; width:100%; height:auto; aspect-ratio:24 / 17; object-fit:contain; background:#fff; }
.tho-pt-none { display:flex; align-items:center; justify-content:center; font-size:18px; font-weight:600; color:var(--muted); background:var(--bg); }
/* the caption strip: "p3 ◆" on the left, ⋯ (managers) sits over its right end — never over the preview */
.tho-pt-n { display:flex; align-items:center; height:26px; padding:0 30px 0 6px; font-size:12px; font-weight:600; border-top:1px solid var(--line); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tho-pt-own { font-weight:400; color:var(--accent); font-size:10px; margin-left:3px; }
.tho-pt-on .tho-pt-go { border:2px solid var(--accent); box-shadow:0 0 0 2px var(--accent); }
.tho-panel button.tho-pt-go:hover { border-color:var(--accent); }
.tho-panel button.tho-pt-more { position:absolute; bottom:1px; right:1px; width:26px; height:26px; padding:0; font-size:15px; line-height:1;
                                background:transparent; color:var(--ink); border:0; border-radius:6px; }
.tho-panel button.tho-pt-more:hover { background:var(--hover); }
.tho-panel button.tho-pt-more[aria-expanded="true"] { background:var(--accent); color:#fff; }
.tho-pt-acts { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:6px; padding:6px; border:1px solid var(--line); border-radius:8px; }
.tho-pt-what { font-weight:600; }
@media (pointer: coarse) {
  .tho-pt-n { height:44px; padding-right:48px; font-size:13px; }
  .tho-panel button.tho-pt-more { width:44px; height:44px; bottom:0; right:0; font-size:18px; }
  .tho-panel button.tho-pages-btn { min-height:44px; }
}

/* HF-1: on a phone the Plans panel reaches the map's right edge — the ruler (top right) would sit on its ✕, so it hides while the panel is open */
@media (max-width: 767px) { .tho-panel-on .thom-ctl { display:none; } }

/* ── 1177 P-1: an opened row starts with its LINE UP buttons, then the tools, then Remove / Delete ── */
.tho-panel .tho-acts-lu button.tho-mini { border-color:var(--accent); }
.tho-det .tho-acts-del { margin-top:2px; }
.tho-det .tho-pages { margin-top:4px; }

/* ── 1177 P-2: the labelled background switch "Satellite | Street" (top right of every map; data-mt-own = not a map-tools square) ── */
.leaflet-container .tho-basesw { display:flex; clear:both; margin:8px 8px 0 0; padding:0; border:1px solid rgba(0,0,0,.25); border-radius:8px; overflow:hidden;
                                 box-shadow:0 1px 5px rgba(0,0,0,.25); background:#fff; }
.leaflet-container .tho-basesw > button { flex:none; box-sizing:border-box; width:auto; min-width:0; height:32px; margin:0; padding:0 10px; white-space:nowrap;
                                          font:600 13px/1 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background:#fff; color:#222;
                                          border:0; border-radius:0; box-shadow:none; cursor:pointer; }
.leaflet-container .tho-basesw > button + button { border-left:1px solid rgba(0,0,0,.2); }
.leaflet-container .tho-basesw > button:hover:not([aria-pressed="true"]) { background:var(--hover, #eef1f4); }
.leaflet-container .tho-basesw > button[aria-pressed="true"] { background:var(--accent, #2563eb); color:#fff; }
.leaflet-container .tho-basesw > button:focus-visible { outline:2px solid var(--accent, #2563eb); outline-offset:-2px; }
@media (pointer: coarse) { .leaflet-container .tho-basesw > button { height:44px; padding:0 12px; font-size:14px; } }
/* on a phone the open Plans panel reaches the right edge — the switch hides under it, like the ruler (HF-1) */
@media (max-width: 767px) { .leaflet-container.tho-panel-on .tho-basesw { display:none; } }

/* ── 1177 P-3: Move — the map stops panning; dragging anywhere moves the plan (bar = .tho-adj-bar) ── */
.leaflet-container.tho-move-on, .leaflet-container.tho-move-on .leaflet-interactive { cursor:move; }
.leaflet-container.tho-move-on .tho-pgbar, .leaflet-container.tho-adj-on .tho-pgbar { display:none; }   /* no page flicking in the middle of a move or a corner adjustment */

/* ── D-6a: private sketch notes (overlay-sketch.js) ── */
.tho-pgbar button.tho-pgbar-notes { flex:none; width:40px; height:40px; padding:0; font-size:18px; line-height:1; background:var(--bg); color:var(--ink); border:1px solid var(--line); border-radius:9px; }
@media (pointer: coarse) { .tho-pgbar button.tho-pgbar-notes { width:44px; height:44px; } }
/* the Notes sheet: a bottom sheet on a phone, a side panel on a computer */
.tho-sk-sheet { position:fixed; z-index:2500; left:0; right:0; bottom:0; max-height:70vh; overflow:auto; box-sizing:border-box; padding:12px 14px 16px;
                background:var(--card); color:var(--ink); border-top:1px solid var(--line); border-radius:14px 14px 0 0; box-shadow:0 -6px 24px rgba(20,28,40,.25); font-size:14px; }
@media (min-width: 768px) { .tho-sk-sheet { left:auto; top:72px; bottom:auto; right:16px; width:360px; max-height:calc(100vh - 100px); border:1px solid var(--line); border-radius:12px; } }
.tho-sk-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.tho-sk-head h2 { margin:0; font-size:16px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tho-sk-sheet button { font:inherit; color:inherit; }
.tho-sk-sheet button.tho-sk-x { flex:none; width:40px; height:40px; padding:0; background:transparent; border:0; border-radius:8px; color:var(--muted); font-size:16px; }
.tho-sk-hint { margin:2px 0 8px; color:var(--muted); font-size:13px; }
.tho-sk-list { list-style:none; margin:0; padding:0; }
.tho-sk-row { display:flex; flex-wrap:wrap; align-items:center; gap:4px; padding:4px 0; border-top:1px solid var(--line); }
.tho-sk-row.tho-sk-on .tho-sk-name { font-weight:700; }
.tho-sk-sheet .tho-sk-row > button { flex:none; min-width:40px; height:40px; padding:0 6px; background:transparent; border:0; border-radius:8px; cursor:pointer; }
.tho-sk-sheet .tho-sk-row > button:hover { background:var(--hover); }
.tho-sk-sheet .tho-sk-row > button.tho-sk-name { flex:1 1 auto; min-width:0; text-align:left; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; overflow:hidden; }
.tho-sk-n { font-size:12px; font-weight:400; color:var(--muted); }
.tho-sk-sheet .tho-sk-act[aria-pressed="true"] { color:var(--accent); font-size:20px; }
.tho-sk-name-in { flex:1 1 auto; min-width:0; height:36px; padding:0 8px; font:inherit; border:1px solid var(--accent); border-radius:8px; background:var(--bg); color:var(--ink); }
.tho-sk-menu { flex-basis:100%; display:flex; gap:6px; padding:0 0 4px 84px; }
.tho-sk-menu button { padding:6px 10px; border:1px solid var(--line); border-radius:8px; background:var(--bg); }
.tho-sk-menu button.tho-del { color:var(--err); }
.tho-sk-empty { color:var(--muted); margin:8px 0; }
.tho-sk-acts { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.tho-sk-sheet button.tho-sk-draw { padding:9px 14px; font-weight:700; background:var(--accent); color:var(--accent-ink, #fff); border:0; border-radius:9px; }
.tho-sk-msg { margin:8px 0 0; font-size:13px; }
.tho-sk-msg.tho-err { color:var(--err); }
@media (pointer: coarse) { .tho-sk-sheet .tho-sk-row > button, .tho-sk-sheet .tho-sk-acts button, .tho-sk-menu button { min-height:44px; min-width:44px; } }
/* draw mode: the map is the paper; the page flicker hides; the bar holds the pen */
.leaflet-container.tho-draw-on { cursor:crosshair; }
.leaflet-container.tho-draw-on .tho-pgbar { display:none; }
.tho-sk-tools { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:4px 0; }
.tho-sk-swatches, .tho-sk-widths { display:flex; gap:6px; }
.tho-draw-bar button.tho-sk-sw { width:32px; height:32px; padding:0; border-radius:50%; background:var(--sw); border:3px solid #fff; box-shadow:0 0 0 1px var(--line); }
.tho-draw-bar button.tho-sk-sw[aria-pressed="true"] { box-shadow:0 0 0 3px var(--ink); }
.tho-draw-bar .tho-sk-widths button { height:32px; padding:0 10px; border:1px solid var(--line); border-radius:8px; background:var(--bg); color:var(--ink); font-weight:600; }
.tho-draw-bar .tho-sk-widths button[aria-pressed="true"] { background:var(--ink); color:#fff; }
@media (pointer: coarse) { .tho-draw-bar button.tho-sk-sw { width:44px; height:44px; } .tho-draw-bar .tho-sk-widths button { height:44px; } }
/* any other button on the map's action bar (Move's Undo, the pen's Undo / Clear / Retry) looks like Cancel — Save / Done is the one filled */
.tho-adj-bar .tho-adj-actions button:not(.tho-adj-save):not(.tho-adj-cancel) { flex:1 1 0; width:auto; padding:10px; font-size:15px; background:var(--bg); color:var(--ink); border:1px solid var(--line); }
@media (pointer: coarse) { .tho-adj-bar .tho-adj-actions button { min-height:44px; } }
/* the pen bar stays low and compact on a phone: title + tip on one line, colours + line on one row, then the actions */
.tho-draw-bar .tho-sk-title { margin:0 0 2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tho-draw-bar .tho-sk-tip { font-size:12px; color:var(--muted); }
.tho-draw-bar .tho-sk-tools { flex-wrap:nowrap; justify-content:space-between; gap:6px; margin:2px 0; }
.tho-draw-bar .tho-adj-status:empty { display:none; }
@media (max-width: 767px) { .tho-draw-bar { padding:8px 10px; } }   /* height stays .tho-adj-bar's (clear of the + button) */
/* the sheet's own controls: the app's general button / heading styles must not stretch or shout */
.tho-sk-sheet h2 { text-transform:none; letter-spacing:normal; color:var(--ink); font-weight:700; }
.tho-sk-sheet button { width:auto; display:inline-flex; align-items:center; justify-content:center; box-shadow:none; }
.tho-sk-sheet .tho-sk-row > button { background:transparent; color:var(--ink); border:0; }
.tho-sk-sheet .tho-sk-row > button.tho-sk-name { justify-content:center; }
.tho-sk-sheet .tho-sk-eye { font-size:18px; }
.tho-sk-sheet .tho-sk-acts button.tho-mini { padding:9px 12px; background:var(--bg); color:var(--ink); border:1px solid var(--line); border-radius:9px; font-weight:600; }

/* ── BRIEF-1186: Line up's map side shows ONE thing — PDF = one other page of the set on a plain background, ‹ p3 › to step ── */
.leaflet-container.tho-pdf-on { background:#eef0f3; }
.leaflet-container.tho-pdf-on .leaflet-tile-pane { display:none; }
.leaflet-container .tho-refpg { display:flex; align-items:center; clear:both; margin:0 8px 6px 0; border:1px solid rgba(0,0,0,.25); border-radius:8px; overflow:hidden;
                                box-shadow:0 1px 5px rgba(0,0,0,.25); background:#fff; color:#222; }
.leaflet-container .tho-refpg[hidden] { display:none; }
.leaflet-container .tho-refpg > button { flex:none; width:34px; height:32px; margin:0; padding:0; font:700 18px/1 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
                                         background:#fff; color:#222; border:0; border-radius:0; box-shadow:none; cursor:pointer; }
.leaflet-container .tho-refpg > button:disabled { opacity:.35; cursor:default; }
.leaflet-container .tho-refpg-n { padding:0 6px; font:600 13px/1 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; white-space:nowrap; }
.leaflet-container .tho-refpg-n small { font-weight:400; color:#666; }
@media (pointer: coarse) { .leaflet-container .tho-refpg > button { width:44px; height:44px; } }

/* ── 1191: the old layers icon shows only what isn't a background (the labelled switch does those); hidden when that's nothing ── */
.leaflet-control-layers.tho-nobase .leaflet-control-layers-base, .leaflet-control-layers.tho-nobase .leaflet-control-layers-separator { display:none; }
.leaflet-control-layers.tho-nobase[hidden] { display:none !important; }
/* ── 1192: a FINE crosshair cursor (1 px, white halo, exact centre) wherever a spot is being picked; the hand only while dragging ── */
.leaflet-container { --tho-fine: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='25' height='25'%3E%3Cpath d='M12.5 0v25M0 12.5h25' stroke='%23fff' stroke-width='3'/%3E%3Cpath d='M12.5 0v25M0 12.5h25' stroke='%23000' stroke-width='1'/%3E%3C/svg%3E") 12 12, crosshair; }
.leaflet-container.thom-on, .leaflet-container.thom-on.leaflet-grab,
.tho-fit .leaflet-container, .tho-fit .leaflet-container.leaflet-grab,
.leaflet-container.tho-pick-map, .leaflet-container.tho-pick-map.leaflet-grab,
.leaflet-container.tho-draw-on, .leaflet-container.tho-draw-on.leaflet-grab { cursor:var(--tho-fine); }
.leaflet-dragging .leaflet-container.thom-on.leaflet-grab, .leaflet-dragging .tho-fit .leaflet-container.leaflet-grab,
.leaflet-dragging .leaflet-container.tho-pick-map.leaflet-grab { cursor:grabbing; }
/* the app's round + button never sits on a tool's sheet / bar (Measure, Move, Adjust corners, Draw) */
body.tho-tool-open .fab, body.tho-tool-open .nb-plus { display:none !important; }   /* the + (classic .fab, and the bottom bar's .nb-plus) */

/* ── D-6b: notes shared with me (read-only) + the share view ── */
.tho-sk-h3 { margin:12px 0 2px; font-size:13px; font-weight:700; color:var(--muted); text-transform:none; letter-spacing:normal; }
.tho-sk-sheet .tho-sk-ro { flex:1 1 auto; min-width:0; display:flex; flex-direction:column; padding:0 6px; overflow:hidden; }
.tho-sk-share { display:flex; flex-direction:column; gap:2px; margin:6px 0; }
.tho-sk-pick { display:flex; align-items:center; gap:10px; min-height:40px; padding:0 4px; border-top:1px solid var(--line); cursor:pointer; }
.tho-sk-pick input { width:20px; height:20px; margin:0; accent-color:var(--accent); }
.tho-sk-share button[data-sk="share-all"] { align-self:flex-start; margin-top:6px; }
@media (pointer: coarse) { .tho-sk-pick { min-height:44px; } }
/* a long layer name shrinks (…) instead of pushing ⋯ onto its own line */
.tho-sk-sheet .tho-sk-row > button.tho-sk-name, .tho-sk-sheet .tho-sk-row > .tho-sk-ro { flex:1 1 0; min-width:0; }
.tho-sk-sheet .tho-sk-name, .tho-sk-sheet .tho-sk-ro { white-space:nowrap; }
.tho-sk-sheet .tho-sk-name > *, .tho-sk-sheet .tho-sk-ro > * { max-width:100%; overflow:hidden; text-overflow:ellipsis; }
