.maps-library { position:absolute;inset:var(--header-height) 0 0 var(--rail-width);z-index:30;overflow-y:auto;background:#f7f9fa;padding:36px 42px; }
.maps-library-open #sidebar,.maps-library-open #mapToolbar,.maps-library-open #sidebarToggle { display:none; }
.maps-library h1 { margin:5px 0 0;font-size:28px;font-weight:600; }
.maps-library-header,.maps-list-toolbar,.maps-item-actions,.maps-form-row,.maps-map-heading,.maps-map-meta,.maps-view-actions,.maps-legend-heading { display:flex;align-items:center;justify-content:space-between;gap:12px; }
.maps-eyebrow { font-size:11px;color:#677580; }
.maps-primary { background:#1677e8;color:white;border:1px solid #1677e8; }
.maps-library button,.maps-dialog button,.maps-workbench button,.maps-workbench a,.maps-item-actions a { display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:6px;padding:9px 12px;font:inherit;font-size:13px;cursor:pointer;text-decoration:none; }
.maps-library button:not(.maps-primary),.maps-dialog button:not(.maps-primary),.maps-workbench button { border:1px solid #dfe5e8;background:white;color:#34434e; }
.maps-list-toolbar { margin:28px 0 18px;color:#71808b;font-size:13px; }
.maps-list-toolbar [aria-pressed=true] { background:#e9f3ff;color:#1677e8; }
.maps-list-toolbar>div { display:flex;gap:6px; }
.maps-items { display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:20px; }
.maps-item { border:1px solid #e0e6e9;border-radius:8px;overflow:hidden;background:white;min-width:0; }
.maps-cover { display:block;height:170px;position:relative;background:#edf2f4; }
.maps-cover img { height:100%;width:100%;object-fit:cover; }
.maps-cover-empty { display:flex;height:100%;align-items:center;justify-content:center;color:#83a5ad;background:repeating-linear-gradient(25deg,#eff5f5,#eff5f5 35px,#e3eeee 36px,#e3eeee 37px); }
.maps-visibility { position:absolute;top:12px;left:12px;display:flex;align-items:center;gap:5px;background:white;color:#50616c;border:1px solid #e2e8eb;padding:5px 8px;border-radius:4px;font-size:11px; }
.maps-item-body { padding:18px; }
.maps-item-title { font-size:17px;font-weight:600;color:#20313d;text-decoration:none;overflow-wrap:anywhere; }
.maps-item-body p { font-size:13px;color:#697883;line-height:1.5;min-height:20px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden; }
.maps-item-body small { color:#84909a;font-size:11px; }
.maps-item-actions { margin-top:16px;justify-content:flex-start;border-top:1px solid #edf0f2;padding-top:12px; }
.maps-item-actions button,.maps-item-actions a { width:34px;height:34px;padding:0;color:#60717d;border:0;background:none; }
.maps-items.is-list { grid-template-columns:1fr; }
.is-list .maps-item { display:grid;grid-template-columns:200px 1fr; }
.is-list .maps-cover { height:100%;min-height:170px; }
.maps-empty { padding:80px 20px;text-align:center;color:#69828b; }
.maps-empty h2 { font-size:20px;font-weight:500;color:#344854; }
.maps-dialog { border:1px solid #dfe6e9;border-radius:8px;padding:24px;width:min(480px,calc(100vw - 32px));max-height:85dvh;overflow:auto;color:#273944; }
.maps-dialog::backdrop { background:rgba(17,33,42,.35); }
.maps-dialog header { display:flex;align-items:center;justify-content:space-between;gap:15px; }
.maps-dialog h2 { margin:0;font-size:20px;font-weight:600; }
.maps-dialog-fields { display:grid;gap:16px;margin:24px 0; }
.maps-dialog footer { display:flex;gap:8px;justify-content:flex-end; }
.maps-dialog label,.maps-feature-form label { display:grid;gap:7px;font-size:12px;font-weight:500;color:#62727d; }
.maps-dialog input,.maps-dialog textarea,.maps-dialog select,.maps-feature-form input:not([type=color]):not([type=range]),.maps-feature-form textarea,.maps-feature-form select { width:100%;box-sizing:border-box;border:1px solid #dce4e8;border-radius:5px;padding:10px;font:inherit;font-size:13px;color:#273944;background:#fff; }
.maps-form-error { color:#b94040;font-size:12px; }
.maps-workbench { min-height:100%;background:#fff; }
.maps-workbench>header { padding:20px 22px 18px;border-bottom:1px solid #e5ebee; }
.maps-workbench h1 { font-size:22px;line-height:1.3;font-weight:600;margin:12px 0;overflow-wrap:anywhere; }
.maps-workbench .maps-back { padding:0;color:#697b87;font-size:12px; }
.maps-map-heading button { flex:0 0 34px; }
.maps-workbench>header p { font-size:13px;color:#687c89;line-height:1.6;white-space:pre-line;overflow-wrap:anywhere; }
.maps-map-meta { align-items:flex-start;font-size:10px;color:#7d8c95; }
.maps-map-meta>span:first-child { display:flex;gap:5px;align-items:center;white-space:nowrap; }
[data-map-save-status] { color:#258866;text-align:right;line-height:1.5; }
[data-map-save-status].is-error { color:#b43a41; }
.maps-draw-toolbar { padding:14px 20px;display:flex;gap:6px;border-bottom:1px solid #e8edef; }
.maps-draw-toolbar button { padding:0;width:38px;height:38px; }
.maps-draw-toolbar button[aria-pressed=true] { color:#1677e8;background:#edf5ff;border-color:#9cc6f4; }
.maps-view-actions { justify-content:flex-start;padding:14px 20px; }
.maps-view-actions button,.maps-view-actions a { font-size:12px;color:#506b7a; }
.maps-legend-heading { padding:12px 22px;border-top:1px solid #e8edef; }
.maps-legend-heading h2,.maps-feature-form h2,.maps-public-detail h2 { font-size:15px;font-weight:600;margin:0; }
.maps-legend-heading>span { font-size:12px;color:#8c9aa3; }
.maps-feature-list { padding:0 12px 24px; }
.maps-feature-list button { display:flex;width:100%;justify-content:flex-start;text-align:left;border:0;border-bottom:1px solid #eff2f3;border-radius:0;padding:13px 10px; }
.maps-feature-list button>span:nth-child(2) { flex:1;overflow-wrap:anywhere; }
.maps-feature-list button small { display:block;font-size:10px;font-weight:400;color:#86939c;margin-top:4px; }
.maps-feature-list button.is-selected { background:#edf6ff; }
.maps-legend-icon { width:26px;flex:0 0 26px; }
.maps-feature-form { display:grid;gap:15px;padding:18px 22px 24px;border-top:1px solid #e8edef; }
.maps-form-row>label { flex:1;min-width:0; }
.maps-form-row input[type=color] { width:100%;height:38px;border:1px solid #dce4e8;background:none;padding:3px;border-radius:5px; }
.maps-workbench button.maps-danger { color:#b7454c;justify-content:flex-start;border-color:#f0d7da; }
.maps-muted { color:#8a99a2;font-size:12px;padding:10px; }
.maps-marker { display:flex;gap:6px;align-items:center;border:0;background:none;padding:0;cursor:pointer;color:#344852; }
.maps-marker>span { height:34px;width:34px;border:3px solid white;border-radius:50% 50% 50% 0;background:var(--marker-color);color:white;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 7px #34485240; }
.maps-marker b { background:#fffffff0;padding:4px 7px;border-radius:4px;font-size:11px;font-weight:500;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.maps-photo-preview,.maps-public-detail img { width:100%;max-height:220px;object-fit:cover;border-radius:5px; }
.maps-public-detail { padding:20px 22px;border-top:1px solid #e8edef; }
.maps-public-detail p { font-size:13px;line-height:1.7;overflow-wrap:anywhere; }
.personal-map-open .sidebar .brand-bar { display:none; }
.personal-map-open .panel { padding:0; }
.personal-map-open .mapboxgl-ctrl { display:none; }
.personal-map-open #globalSearch input { cursor:default; }
@media(max-width:767px) {
  .maps-library { inset:var(--header-height) 0 var(--bottom-nav) 0;padding:24px 18px; }
  .maps-library h1 { font-size:24px; }
  .maps-library-header { gap:8px; }
  .maps-items { grid-template-columns:1fr;gap:16px; }
  .maps-cover { height:160px; }
  .is-list .maps-item { grid-template-columns:110px 1fr; }
  .is-list .maps-cover { min-height:160px; }
  .maps-item-body { padding:14px; }
  .maps-workbench>header { padding:12px 18px; }
  .maps-workbench h1 { font-size:18px;margin:8px 0; }
  .maps-workbench>header p { margin:5px 0; }
  .personal-map-open #sidebar[data-sheet-state=collapsed] .maps-workbench>header p,.personal-map-open #sidebar[data-sheet-state=collapsed] .maps-map-meta,.personal-map-open #sidebar[data-sheet-state=collapsed] .maps-view-actions { display:none; }
  .maps-draw-toolbar { padding:7px 18px; }
  .maps-draw-toolbar button { height:32px;width:36px; }
  .maps-workbench .maps-back { font-size:10px; }
}
