.lake-dialog { width:min(1180px,calc(100vw - 32px)); height:min(850px,calc(100dvh - 32px)); max-width:none; max-height:none; padding:0; border:1px solid var(--line); border-radius:12px; color:var(--ink); background:var(--panel); }
.lake-dialog::backdrop { background:#0009; }
.lake-shell { height:100%; min-height:0; display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
.lake-header { display:flex; gap:12px; align-items:flex-start; justify-content:space-between; padding:14px 16px; border-bottom:1px solid var(--line); }
.lake-header h2 { margin:0; font-size:1.3rem; overflow-wrap:anywhere; }
.lake-header p { margin:4px 0 0; color:var(--muted); font-size:.85rem; }
.lake-header > div { min-width:0; }
.lake-header > button { flex:none; }
.lake-content { min-height:0; overflow:auto; padding:12px 16px; display:flex; flex-direction:column; gap:10px; }
.lake-content [hidden] { display:none!important; }
.lake-dialog button, .lake-dialog input:not([type=checkbox]), .lake-dialog select, .lake-more summary { min-height:40px; }
.lake-dialog button { white-space:nowrap; padding:7px 12px; }
.lake-dialog label { display:flex; flex-direction:column; gap:5px; color:var(--muted); font-size:.85rem; }
.lake-dialog input:not([type=checkbox]), .lake-dialog select, .lake-dialog textarea { width:100%; min-width:0; border:1px solid var(--line); border-radius:6px; padding:8px; background:var(--field); color:var(--ink); }
.lake-dialog button:focus-visible, .lake-dialog summary:focus-visible { outline:3px solid var(--blue); outline-offset:2px; }
.lake-toolbar, .lake-view-controls { display:flex; flex-wrap:wrap; gap:8px; align-items:center; flex:none; }
.lake-view-controls [aria-pressed=true] { border-color:var(--accent); background:var(--accent); color:#fff; }
.lake-view-controls [data-lake-action=map], .lake-view-controls [data-lake-action=list] { display:none; }
.lake-search { max-width:520px; }
.lake-library { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:10px; }
.lake-library-card { display:flex; flex-direction:column; gap:6px; text-align:left; }
.lake-dialog .lake-library-card { white-space:normal; overflow-wrap:anywhere; }
.lake-library-card span, .lake-muted, .lake-hint { color:var(--muted); font-size:.85rem; }
.lake-hint { margin:0; }
.lake-panels { flex:1; min-height:280px; display:grid; grid-template-columns:310px minmax(0,1fr); gap:12px; }
.lake-list-panel { overflow:auto; min-width:0; padding:2px; display:grid; grid-template-columns:minmax(0,1fr) 130px; align-content:start; gap:6px; }
.lake-list-panel > label:only-of-type { grid-column:1/-1; }
.lake-list-panel > label { margin-bottom:8px; }
.lake-map-panel { min-height:0; display:grid; grid-template-rows:minmax(0,1fr) auto; }
#lakeMap { min-height:220px; border:1px solid var(--line); border-radius:8px; }
#lakeMapStatus { margin:6px 0 0; color:var(--muted); font-size:.75rem; }
#lakeRows { display:flex; flex-direction:column; gap:6px; grid-column:1/-1; }
.lake-dialog .lake-spot-row { display:flex; gap:10px; align-items:center; width:100%; text-align:left; white-space:normal; }
.lake-spot-row > span:last-child { min-width:0; overflow-wrap:anywhere; }
.lake-spot-row[aria-pressed=true] { border-color:var(--accent); box-shadow:inset 3px 0 var(--accent); background:var(--surface-active); }
.lake-number { display:grid; place-items:center; min-width:32px; min-height:32px; border-radius:50%; color:#fff; background:#087f8c; font-weight:800; flex:none; }
.lake-spot-row small, .lake-pick-row small { display:block; margin-top:3px; color:var(--muted); font-size:.75rem; }
.lake-dialog .lake-pick-row { flex-direction:row; gap:10px; align-items:center; min-height:52px; padding:8px; border:1px solid var(--line); border-radius:6px; color:var(--ink); }
.lake-pick-row input { width:22px; height:22px; flex:none; }
.lake-pick-row span { min-width:0; overflow-wrap:anywhere; }
.lake-pin { display:grid; place-items:center; width:36px; height:36px; border:3px solid white; border-radius:50%; background:#087f8c; color:white; font-weight:800; box-shadow:0 1px 5px #000a; font-size:13px; }
.lake-pin.is-selected { background:#c35508; outline:3px solid #fff; }
.lake-popup { color:#202124; min-width:130px; }
.lake-popup button { width:100%; }
.lake-form { max-width:650px; width:100%; display:flex; flex-direction:column; gap:14px; margin:0 auto; }
.lake-form h3 { margin:0; }
.lake-fields { display:grid; grid-template-columns:1fr 2fr; gap:12px; }
.lake-form p { margin:0; overflow-wrap:anywhere; }
.lake-coordinate-fields { grid-template-columns:1fr 1fr; }
.lake-file-source { border:1px solid var(--line); border-radius:8px; padding:8px; flex:none; }
.lake-file-source p { margin:6px 0 0; font-size:.85rem; color:var(--muted); overflow-wrap:anywhere; }
.lake-placement-map { display:grid; grid-template-rows:minmax(230px,1fr) auto; flex:1; min-height:280px; }
.lake-placement-map p { font-size:.8rem; color:var(--muted); margin:6px 0 0; }
.lake-dialog .lake-danger { color:var(--danger); }
.lake-status { padding:8px 16px; margin:0; min-height:34px; border-top:1px solid var(--line); font-size:.85rem; overflow-wrap:anywhere; }
.lake-error { color:var(--danger); }
.lake-more { position:relative; }
.lake-more summary { cursor:pointer; border:1px solid var(--line); border-radius:6px; padding:8px 12px; }
.lake-more > div { position:absolute; top:100%; right:0; z-index:1100; background:var(--panel); padding:8px; border:1px solid var(--line); box-shadow:var(--shadow-md); display:grid; gap:6px; min-width:150px; }
.lake-overlays > summary { cursor:pointer; min-height:44px; padding:10px 12px; border:1px solid var(--line); border-radius:6px; }
.lake-overlays[open] > summary { border-color:var(--accent); background:var(--surface-active); }
.lake-overlay-dropdown { position:fixed; z-index:1200; overflow:auto; overscroll-behavior:contain; padding:12px; box-sizing:border-box; border:1px solid var(--line); border-radius:8px; background:var(--panel); color:var(--ink); box-shadow:var(--shadow-md); }
.lake-overlay-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.lake-overlay-help, #lakeOverlayStatus { font-size:.8rem; color:var(--muted); margin:8px 0; overflow-wrap:anywhere; }
.lake-overlay-actions { display:flex; flex-wrap:wrap; gap:6px; }
.lake-overlay-dropdown button { min-height:44px; white-space:normal; overflow-wrap:anywhere; }
.lake-overlay-group { padding:8px 0; border-top:1px solid var(--line); }
.lake-dialog .lake-overlay-choice { flex-direction:row; align-items:center; min-height:44px; gap:10px; padding:4px 0; color:var(--ink); cursor:pointer; }
.lake-overlay-choice input { flex:none; width:22px; height:22px; accent-color:var(--accent); }
.lake-overlay-choice span { min-width:0; overflow-wrap:anywhere; }
.lake-overlay-choice small { display:block; color:var(--muted); font-size:.75rem; margin-top:4px; }
.lake-overlay-files summary { cursor:pointer; min-height:44px; padding:12px 0; font-size:.85rem; }
.lake-share-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; }
.lake-share-grid section { min-width:0; }
.lake-share-grid h3, .lake-share-manage h3 { margin:6px 0 10px; font-size:1rem; }
.lake-share-choices { display:flex; flex-direction:column; gap:6px; max-height:310px; overflow:auto; margin:10px 0; }
.lake-share-preview { border:1px solid var(--line); border-radius:8px; padding:10px; margin:10px 0; }
.lake-share-preview summary { cursor:pointer; min-height:32px; }
#lakeSharePreview { max-height:240px; overflow:auto; }
.lake-share-preview-row { padding:8px 0; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
.lake-share-preview-row small, .lake-share-grant small { display:block; color:var(--muted); margin-top:4px; }
.lake-share-preview-row p, .lake-shared-notes { white-space:pre-wrap; overflow-wrap:anywhere; }
#lakeShareConfirm { margin:12px 0; min-height:44px; white-space:normal; }
#lakeRecipientForm { display:flex; flex-wrap:wrap; align-items:end; gap:8px; }
#lakeRecipientForm label { flex:1; min-width:180px; }
#lakeRecipientPreview { overflow-wrap:anywhere; }
.lake-share-manage { border-top:1px solid var(--line); padding-top:12px; }
.lake-share-grant { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 0; border-bottom:1px solid var(--line); }
.lake-share-grant > div { min-width:0; overflow-wrap:anywhere; }
.lake-share-grant button { flex:none; min-height:44px; }
#lakePdfReady a { display:inline-flex; align-items:center; min-height:44px; padding:8px 12px; border:1px solid var(--line); border-radius:6px; }
@media (max-width:600px) { .lake-share-grid { grid-template-columns:minmax(0,1fr); gap:16px; } .lake-share-choices { max-height:220px; } .lake-share-grant { flex-wrap:wrap; } }
@media (max-width:1100px), (pointer:coarse) {
  .lake-dialog { width:100vw; height:100dvh; margin:0; border-radius:0; border:0; }
  .lake-header { padding:10px 12px; }
  .lake-content { padding:10px 12px; }
  .lake-dialog button, .lake-dialog input:not([type=checkbox]), .lake-dialog select, .lake-more summary { min-height:44px; }
  .lake-panels { display:flex; flex-direction:column; min-height:200px; }
  .lake-view-controls [data-lake-action=map], .lake-view-controls [data-lake-action=list] { display:inline-block; }
  .lake-panels[data-view=map] .lake-list-panel, .lake-panels[data-view=list] .lake-map-panel { display:none; }
  .lake-list-panel, .lake-map-panel { flex:1; min-height:0; }
  .lake-fields { grid-template-columns:1fr 1fr; }
  .lake-pin { width:44px; height:44px; transform:translate(-4px,-4px); }
  .lake-toolbar { gap:6px; }
  .lake-dialog button { padding:7px 10px; }
}
/* Deletion stays separate from visibility checkboxes, including on touch. */
.lake-overlay-image { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; align-items: center; }
.lake-overlay-image > button { min-height: 44px; }

/* Keep Lake Spots at an ordinary reading scale with dense, usable controls. */
#lakeSpotsDialog { width: min(1040px, calc(100vw - 24px)); height: min(740px, calc(100dvh - 24px)); font-size: 14px; }
#lakeSpotsDialog :is(button, input, select, textarea, summary) { font-size: 14px; line-height: 1.35; }
#lakeSpotsDialog :is(button, input:not([type=checkbox]), select, .lake-more summary) { min-height: 44px; padding: 6px 10px; }
#lakeSpotsDialog .lake-header { padding: 8px 12px; gap: 8px; align-items: center; }
#lakeSpotsDialog .lake-header h2 { font-size: 18px; line-height: 1.3; }
#lakeSpotsDialog .lake-header p { font-size: 12px; margin-top: 2px; }
#lakeSpotsDialog .lake-content { padding: 8px 12px; gap: 8px; }
#lakeSpotsDialog .lake-form { max-width: 620px; gap: 8px; margin-top: 0; }
#lakeSpotsDialog .lake-form h3 { font-size: 16px; }
#lakeSpotsDialog .lake-fields { gap: 8px; }
#lakeSpotsDialog textarea { min-height: 76px; padding: 6px 8px; }
#lakeSpotsDialog label { font-size: 13px; gap: 3px; }
#lakeSpotsDialog .lake-panels { grid-template-columns: 275px minmax(0, 1fr); gap: 8px; }
#lakeSpotsDialog .lake-toolbar, #lakeSpotsDialog .lake-view-controls { gap: 6px; }
#lakeSpotsDialog .lake-library { gap: 8px; }
#lakeSpotsDialog .lake-library-card { gap: 3px; }
#lakeSpotsDialog .lake-spot-row { gap: 8px; padding: 6px 8px; }
#lakeSpotsDialog .lake-spot-row strong { font-size: 14px; }
#lakeSpotsDialog .lake-number { min-width: 28px; min-height: 28px; font-size: 13px; }
@media (max-width: 1100px), (pointer: coarse) {
  #lakeSpotsDialog { width: 100vw; height: 100dvh; }
}
@media (max-width: 600px) {
  #lakeSpotsDialog :is(input, select, textarea) { font-size: 16px; }
}

#lakeSpotsDialog:has(.lake-form) { width: min(760px, calc(100vw - 24px)); height: fit-content; max-height: calc(100dvh - 24px); }
#lakeSpotsDialog:has(.lake-form) .lake-content { max-height: calc(100dvh - 110px); }
#lakeSpotsDialog:has(.lake-form) .lake-shell { height: auto; grid-template-rows: auto auto auto; }
