/* atlas.css — Tribal Atlas (S654, D-S654-06). Tokens only; no hex, no inline styles. */
.at-wrap{max-width:1180px;margin:0 auto;padding:20px 16px 48px;}
.at-loading{font-size:14px;color:var(--color-text-dim);padding:24px 4px;}
.at-hdr{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;justify-content:space-between;margin-bottom:16px;}
.at-title{font-family:'Arial Black',Arial,sans-serif;font-weight:900;font-size:28px;color:var(--color-text);margin:0;}
.at-sub{font-size:15px;color:var(--color-text-dim);margin:4px 0 0;}
.at-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start;}
@media(max-width:900px){.at-grid{grid-template-columns:1fr;}}
.at-mapbox{position:relative;}
.at-map{border:1px solid var(--color-border);border-radius:12px;overflow:hidden;background:var(--color-surface);}
.at-svg{display:block;width:100%;height:auto;}
.at-svg.at-picking{cursor:crosshair;}
.at-tools{position:absolute;top:10px;right:10px;display:flex;gap:6px;z-index:2;}
.at-btn{min-height:36px;border-radius:8px;border:1px solid var(--color-border-strong);background:var(--color-surface-raised);color:var(--color-text);font-size:14px;padding:0 12px;cursor:pointer;}
.at-btn:focus-visible{outline:2px solid var(--color-accent-c);outline-offset:2px;}
.at-btn-main{background:var(--color-accent-c);border-color:var(--color-accent-c);color:var(--color-bg);font-weight:700;}
.at-btn-sm{min-height:28px;font-size:12px;padding:0 8px;}
.at-note{font-size:12px;color:var(--color-text-dim);margin-top:6px;}
.at-bg{fill:color-mix(in srgb,var(--color-amber) 7%,var(--color-surface));}
.at-gridline{stroke:color-mix(in srgb,var(--color-text-dim) 30%,transparent);stroke-width:1;}
.at-tick{font-size:13px;fill:var(--color-text-dim);}
.at-path{fill:color-mix(in srgb,var(--color-accent-c) 14%,transparent);stroke:var(--color-accent-c);stroke-width:3;stroke-linejoin:round;}
.at-path-route{fill:none;stroke-dasharray:10 6;}
.at-pt{cursor:pointer;}
.at-pt circle{stroke:var(--color-surface);stroke-width:2.5;fill:var(--color-accent-c);}
.at-pt.at-prot circle{fill:var(--color-amber);}
.at-pt.at-on circle{stroke:var(--color-text);stroke-width:4;}
.at-pt text{font-size:15px;font-weight:700;fill:var(--color-text);paint-order:stroke;stroke:var(--color-surface);stroke-width:4;}
.at-gen{cursor:pointer;}
.at-gen circle{fill:color-mix(in srgb,var(--color-amber) 16%,transparent);stroke:var(--color-amber);stroke-width:2;stroke-dasharray:6 5;}
.at-gen text{font-size:14px;font-style:italic;fill:var(--color-text);paint-order:stroke;stroke:var(--color-surface);stroke-width:4;}
.at-pick{fill:var(--color-accent-a);stroke:var(--color-text);stroke-width:2;}
.at-side{display:flex;flex-direction:column;gap:14px;}
.at-card{border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);padding:14px;}
.at-h2{font-size:17px;font-weight:700;color:var(--color-text);margin:0 0 4px;}
.at-lang{font-size:16px;color:var(--color-accent-c);margin:0 0 6px;}
.at-meta{font-size:13px;color:var(--color-text-dim);margin:2px 0;}
.at-p{font-size:14px;color:var(--color-text);margin:8px 0;white-space:pre-line;}
.at-hint{font-size:14px;color:var(--color-text-dim);margin:0;}
.at-chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0;}
.at-chip{font-size:12px;border:1px solid var(--color-border);border-radius:999px;padding:2px 9px;color:var(--color-text);}
.at-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 8px;}
.at-tab{font-size:13px;border:1px solid var(--color-border);border-radius:8px;background:transparent;color:var(--color-text-dim);padding:5px 9px;cursor:pointer;}
.at-tab.at-on{border-color:var(--color-accent-c);color:var(--color-text);font-weight:700;}
.at-items{list-style:none;margin:0;padding:0;}
.at-item{display:flex;gap:8px;justify-content:space-between;align-items:flex-start;font-size:14px;color:var(--color-text);padding:6px 0;border-top:1px solid var(--color-border);}
.at-item small{display:block;color:var(--color-text-dim);font-size:12px;}
.at-row{display:flex;gap:6px;margin-top:8px;}
.at-in{width:100%;box-sizing:border-box;min-height:36px;border:1px solid var(--color-border-strong);border-radius:8px;background:var(--color-surface-raised);color:var(--color-text);font-size:14px;padding:6px 9px;}
.at-l{display:block;font-size:13px;color:var(--color-text-dim);margin:8px 0 0;}
.at-list{list-style:none;margin:0;padding:0;max-height:300px;overflow:auto;}
.at-li{display:block;width:100%;text-align:left;border:0;border-top:1px solid var(--color-border);background:transparent;color:var(--color-text);font-size:14px;padding:8px 2px;cursor:pointer;}
.at-li small{color:var(--color-text-dim);}
.at-msg{font-size:13px;color:var(--color-amber);margin:8px 0 0;min-height:16px;}
.at-h3{font-size:15px;font-weight:700;color:var(--color-text);margin:14px 0 6px;}
.at-tv{display:block;width:100%;height:auto;border-radius:8px;background:var(--color-surface-raised);}
.at-tdiv{stroke:var(--color-text);stroke-width:2;}
.at-range{width:100%;margin:8px 0 0;accent-color:var(--color-accent-c);}
.at-years{display:flex;justify-content:space-between;font-size:12px;color:var(--color-text-dim);}
.at-story{display:block;margin-top:6px;color:var(--color-text-dim);white-space:pre-line;}
.at-check{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--color-text);margin:8px 0 0;}
.at-visit{display:block;font-size:14px;color:var(--color-text);padding:8px 0;border-top:1px solid var(--color-border);}
.at-visit small{display:block;color:var(--color-text-dim);font-size:12px;margin-top:2px;}
.at-flag{color:var(--color-amber);font-weight:700;}
.at-thumbs{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0;}
.at-thumb{width:72px;height:72px;object-fit:cover;border-radius:6px;border:1px solid var(--color-border);}
.at-vid{width:100%;max-height:220px;border-radius:6px;background:var(--color-surface-raised);}

/* S658 D-S658-01: the community's own protocols shown on a record */
.at-protocol{margin:10px 0;padding:10px 12px;border:1px solid var(--color-border-strong);border-radius:10px;background:var(--color-surface-raised);}
.at-protocol .at-p{margin:4px 0 0;}
.pr-symbol{display:block;width:56px;height:56px;object-fit:contain;margin:0 0 6px;}
/* S658: an anchor styled as a button (Deadlines 'Open') */
a.at-btn{display:inline-flex;align-items:center;text-decoration:none;}

/* S659 D-S659-08: acknowledge first. Everything after the protocol box stays covered until the member has read it. */
.pr-cover ~ * { display: none !important; }
.office-role-note { max-width: 1100px; margin: 12px auto 0; padding: 10px 14px; border: 1px solid var(--color-border-strong); border-radius: 8px; color: var(--color-text); }
/* S659 D-S659-20: a role that can only see. The server refuses every write; this hides the controls that would be refused. */
body.office-see-only [data-new], body.office-see-only [data-cnew], body.office-see-only [data-cedit], body.office-see-only [data-cmark], body.office-see-only [data-rnew], body.office-see-only [data-redit],
body.office-see-only [data-rrm], body.office-see-only [data-rsend], body.office-see-only [data-rrec], body.office-see-only [data-lnew], body.office-see-only [data-ledit], body.office-see-only [data-lrm],
body.office-see-only [data-hnew], body.office-see-only [data-hedit], body.office-see-only [data-hrm], body.office-see-only [data-bnew], body.office-see-only [data-bedit], body.office-see-only [data-brm],
body.office-see-only #of-addp, body.office-see-only #of-edit, body.office-see-only #of-rm, body.office-see-only #mt-edit, body.office-see-only #mt-rm, body.office-see-only #mo-edit, body.office-see-only #mo-rm,
body.office-see-only #kp-edit, body.office-see-only #kp-rm, body.office-see-only #bu-edit, body.office-see-only #bu-rm, body.office-see-only [data-pick] { display: none !important; }
body.office-see-only select[data-src] { pointer-events: none; opacity: .7; }
body.office-no-approve [data-rrec], body.office-no-approve [data-rrm] { display: none !important; } /* S659 D-S659-21 */
/* S659 D-S659-22: see-only roles on Consultations and Grants */
body.office-see-only #cn-add, body.office-see-only #cn-edit, body.office-see-only #cn-kadd, body.office-see-only #cn-link, body.office-see-only #cn-rm, body.office-see-only [data-unlink],
body.office-see-only #gr-add, body.office-see-only #gr-edit, body.office-see-only #gr-madd, body.office-see-only #gr-ret, body[data-office-page="grants_reporting"].office-see-only [data-rm] { display: none !important; }
/* S666 D-S666-02: findings on a site visit */
.at-find{border:1px solid var(--color-border);border-radius:8px;padding:8px 10px;margin-top:8px;}
.at-finds{margin:6px 0 0;padding-left:20px;}
.at-finding{font-size:14px;color:var(--color-text);padding:4px 0;}
/* S666 D-S666-05: release to outside users */
.at-share{border-top:1px dashed var(--color-border);margin-top:8px;padding-top:6px;}
/* S666: role name with its description, on the roles screen */
.at-rolelist{margin-top:6px;}
.at-rolerow{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;margin-top:6px;}
.at-rolerow small{flex:1 1 180px;font-size:13px;color:var(--color-text);}
/* S677 D-S677-GALLERY: Atlas places chosen for a gallery screen (office-gallery.html). */
.og-place { display: grid; gap: 6px; margin-bottom: 12px; }
.og-place .at-btn { justify-self: start; }
.og-msg { border-top: 1px solid var(--color-border); padding: 10px 0; }
.og-print { position: fixed; inset: 0; z-index: 10070; overflow: auto; background: #fff; color: #000; padding: 16px; }
.og-print-bar { display: flex; gap: 8px; margin-bottom: 16px; }
.og-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.og-card { border: 1px solid #999; border-radius: 8px; padding: 14px; text-align: center; break-inside: avoid; page-break-inside: avoid; }
.og-qr { display: flex; justify-content: center; margin-bottom: 8px; }
.og-card-t { font-weight: 700; margin: 4px 0; }
.og-card-l { margin: 2px 0; font-style: italic; }
.og-card-s { margin: 6px 0 0; font-size: 12px; }
@media print { body.og-printing > *:not(#og-print) { display: none !important; } .og-print { position: static; } .og-print-bar { display: none; } }
/* S679 D-S679-ATLASGIS: basemap, drawing, layers, field reports. Tokens only. */
.at-wrap-row{flex-wrap:wrap;}
.at-lmap{width:100%;height:560px;background:var(--color-surface-raised);}
.at-lmap.at-picking{cursor:crosshair;}
@media(max-width:600px){.at-lmap{height:420px;}}
.at-path-on{stroke-width:5;}
.at-draft{fill:color-mix(in srgb,var(--color-text) 8%,transparent);stroke:var(--color-text);stroke-width:3;stroke-dasharray:4 4;}
polyline.at-draft{fill:none;}
.at-vertex{fill:var(--color-surface);stroke:var(--color-text);stroke-width:2.5;}
.at-layers{list-style:none;margin:8px 0 0;padding:0;}
.at-layer{display:flex;gap:8px;align-items:center;justify-content:space-between;border-top:1px solid var(--color-border);padding:4px 0;}
.at-layer .at-check{margin:0;align-items:center;font-size:14px;}
.at-swatch{width:12px;height:12px;flex:0 0 12px;}
.at-lform{border-top:1px solid var(--color-border);margin-top:8px;padding-top:4px;}
.at-color{padding:2px;max-width:90px;height:36px;}
.at-report{font-weight:700;}
.at-chip-rep{border-color:var(--color-amber);color:var(--color-text);font-weight:700;}
