/* Cartografia de São José dos Campos. Estilos limitados ao módulo .sjcm. */
.sjcm{--sjcm-ink:#163340;--sjcm-muted:#54636a;--sjcm-paper:#f3f0e7;--sjcm-rule:#c8cccb;--sjcm-green:#487f86;--sjcm-rust:#b75c3b;--sjcm-blue:#315f7a;--sjcm-olive:#6b7040;color:var(--sjcm-ink);font-family:inherit;line-height:1.55}
.sjcm *{box-sizing:border-box}
.sjcm [hidden]{display:none!important}
.sjcm button,.sjcm input,.sjcm select{font:inherit;color:inherit}
.sjcm button{cursor:pointer}
.sjcm button:disabled{cursor:default;opacity:.45}
.sjcm :is(button,input,select,a,summary):focus-visible,.sjcm-map:focus-visible{outline:3px solid #be7620;outline-offset:3px}
.sjcm-top{display:flex;gap:1rem;align-items:center;justify-content:space-between;margin-bottom:.8rem;flex-wrap:wrap}
.sjcm-groups{display:flex;gap:.4rem;flex-wrap:wrap}
.sjcm-groups button{min-height:42px;padding:.45rem .9rem;border:1px solid #bac7bb;border-radius:4px;background:var(--sjcm-paper);font-size:.83rem;font-weight:650}
.sjcm-groups button:hover{background:#e8ede3}
.sjcm-groups button[aria-pressed=true]{background:var(--sjcm-ink);border-color:var(--sjcm-ink);color:#f3f0e7}
.sjcm-count{font-size:.79rem;color:var(--sjcm-muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.sjcm-filter{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.8rem;align-items:end;margin-bottom:1rem;max-width:42rem}
.sjcm-filter label,.sjcm-select-label{display:grid;gap:.28rem;font-size:.76rem;letter-spacing:.01em;font-weight:650}
.sjcm-filter input,.sjcm-select-label select{width:100%;min-width:0;min-height:43px;padding:.55rem .7rem;border:1px solid #aebdac;background:var(--sjcm-paper);border-radius:4px;font-weight:400;font-size:.87rem;line-height:1.4}
.sjcm-reset{min-height:43px;padding:.5rem .9rem;border:1px solid #bac7bb;background:transparent;border-radius:4px;font-size:.82rem!important}
.sjcm-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,1fr);gap:1.3rem;align-items:start}
.sjcm-cart{min-width:0}
.sjcm-map{height:460px;width:100%;position:relative;overflow:hidden;isolation:isolate;touch-action:none;cursor:grab;background:#d6e2de;border:1px solid #aabbb1;border-radius:7px;box-shadow:0 1px 4px #16334010}
.sjcm-map.dragging{cursor:grabbing}
.sjcm .geo-base{display:block;position:absolute;inset:0;width:100%;height:100%;z-index:0}
.sjcm .geo-pins{position:absolute;inset:0;z-index:2;pointer-events:none}
.sjcm .geo-dot{position:absolute;display:grid;place-items:center;padding:0;margin:0;width:36px;height:36px;border:0;border-radius:50%;background:transparent;transform:translate(-50%,-50%);pointer-events:auto;cursor:pointer;color:var(--sjcm-green);box-shadow:none;line-height:1;font-size:13px;font-weight:750}
.sjcm .geo-dot::after{content:"";display:block;position:absolute;inset:8px;background:currentColor;border:2px solid #f3f0e7;border-radius:50%;box-shadow:0 2px 7px #16334059}
.sjcm .geo-dot.cluster{background:var(--sjcm-ink);color:white;border:2px solid #f3f0e7;box-shadow:0 2px 6px #16334059;font-size:13px}
.sjcm .geo-dot.cluster::after{display:none}
.sjcm .geo-dot.selected::after{inset:5px;box-shadow:0 0 0 4px #f3f0e799,0 2px 8px #16334060}
.sjcm .geo-dot.selected.cluster{outline:3px solid #f3f0e7;outline-offset:2px}
.sjcm .geo-dot:hover::after{inset:5px}
.sjcm .geo-dot:focus-visible{z-index:4;outline:3px solid #a85e18;outline-offset:1px;background:#f3f0e7aa}
.sjcm .geo-tools{position:absolute;left:12px;top:12px;z-index:4;display:flex;flex-direction:column;gap:5px}
.sjcm .geo-tools button{min-width:40px;height:40px;padding:0;border:1px solid #a7b8ac;border-radius:4px;background:#fffef9ed;color:#163340;font:550 23px/1 system-ui,sans-serif;box-shadow:0 1px 5px #16334026}
.sjcm .geo-tools button:hover{background:white}
.sjcm-north{position:absolute;right:13px;top:13px;font-size:.76rem;color:#294c48;z-index:1;background:#f3f0e7df;border-radius:3px;padding:3px 6px;font-weight:700}
.sjcm .geo-scale{position:absolute;bottom:27px;left:13px;border:solid #213d37;border-width:0 2px 2px;padding:0 0 2px;font:650 10px/1.4 system-ui,sans-serif;text-align:center;white-space:nowrap;color:#163340;text-shadow:0 0 2px white;background:#f3f0e7bb;z-index:3}
.sjcm .geo-credit{position:absolute;bottom:0;left:0;right:0;z-index:3;padding:3px 7px;background:#f3f0e7e6;text-align:right;color:#405a52;font:500 10px/1.3 system-ui,sans-serif;cursor:auto}
.sjcm .geo-credit a{color:inherit;text-decoration:underline}
.sjcm .map-warning{position:absolute;top:12px;left:63px;right:52px;z-index:3;max-width:22rem;padding:.45rem .6rem;border:1px solid #e1cf9c;border-radius:4px;background:#fff8e6ef;font:500 12px/1.45 system-ui,sans-serif;box-shadow:0 2px 8px #16334012}
.sjcm-mapfoot{display:flex;justify-content:space-between;gap:.7rem;flex-wrap:wrap;margin:.6rem 0;color:var(--sjcm-muted);font-size:.74rem}
.sjcm-mapfoot a{color:var(--sjcm-green);text-underline-offset:3px}
.sjcm-legend{display:flex;flex-wrap:wrap;gap:.35rem .9rem;font-size:.73rem;color:var(--sjcm-muted);margin:.55rem 0}
.sjcm-legend span{display:inline-flex;gap:.36rem;align-items:center}
.sjcm-key{display:block;width:9px;height:9px;border-radius:50%;flex:none;background:var(--sjcm-ink)}
.sjcm-hint{margin:.6rem 0!important;font-size:.74rem;color:var(--sjcm-muted);line-height:1.5}
.sjcm-status{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;font-size:.7rem;color:var(--sjcm-muted);line-height:1.5}
.sjcm-status button{padding:.15rem .3rem;border:0;border-bottom:1px solid #8da99b;background:none;font-size:inherit;flex:none}
.sjcm-aside{padding:1rem 1.15rem 1.15rem;background:var(--sjcm-paper);border:1px solid var(--sjcm-rule);border-radius:7px;min-width:0}
.sjcm-select-label{margin-bottom:1rem}
.sjcm-group{margin:0 0 1rem;padding:.6rem .7rem;background:#edf0e7;border-left:3px solid var(--sjcm-green);font-size:.8rem}
.sjcm-group strong{display:block;margin-bottom:.35rem}
.sjcm-group button{display:block;width:100%;border:0;background:transparent;text-align:left;padding:.4rem 0;color:var(--sjcm-green);text-decoration:underline;font-size:.82rem}
.sjcm-badge{display:inline-block;font-size:.64rem;letter-spacing:.06em;text-transform:uppercase;font-weight:750;border:1px solid #c1cbc1;border-radius:3px;padding:3px 6px;color:#245d50;background:#edf2e9}
.sjcm-sheet h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.035em;font-size:clamp(1.55rem,2.2vw,2rem);line-height:1.1;margin:.6rem 0 .35rem;color:var(--sjcm-ink);text-wrap:balance}
.sjcm-place{font-size:.76rem;color:var(--sjcm-muted);margin:0 0 1rem!important}
.sjcm-summary{font-size:.85rem;margin:.6rem 0 1rem!important;line-height:1.65}
.sjcm-lesson{margin:.9rem 0;padding-top:.8rem;border-top:1px solid #e0e4d9}
.sjcm-lesson h4{font:700 .72rem/1.4 system-ui,sans-serif;text-transform:uppercase;letter-spacing:.055em;margin:0 0 .4rem;color:var(--sjcm-green)}
.sjcm-lesson p{margin:0!important;font-size:.83rem;line-height:1.6}
.sjcm-question{margin:1rem 0!important;padding:.85rem .95rem!important;border:0!important;border-left:3px solid #bb6b48!important;background:#f5eee2;border-radius:0 4px 4px 0}
.sjcm-question span{display:block;font-size:.65rem;font-weight:750;text-transform:uppercase;letter-spacing:.06em;color:#8d4f34}
.sjcm-question p{font-family:Georgia,'Times New Roman',serif;font-size:1.04rem;font-weight:400;line-height:1.4;margin:.35rem 0 0!important;color:#4b4735}
.sjcm-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin:.9rem 0 .7rem}
.sjcm-actions button{min-height:40px;padding:.45rem .7rem;border:1px solid var(--sjcm-green);border-radius:4px;background:var(--sjcm-green);color:#f3f0e7;font-size:.75rem;font-weight:650;line-height:1.45}
.sjcm-actions button:hover{filter:brightness(.94)}
.sjcm-actions button.sjcm-secondary{background:transparent;color:var(--sjcm-green);border-color:#acbdae}
.sjcm-source{font-size:.7rem;margin:.6rem 0!important;line-height:1.5}
.sjcm-source a{color:#4d6859;text-underline-offset:3px}
.sjcm-precision{margin-top:.8rem;padding-top:.65rem;border-top:1px solid #e0e4d9;color:var(--sjcm-muted);font-size:.72rem;line-height:1.6}
.sjcm-precision summary{cursor:pointer;font-weight:650;color:#456352;line-height:1.5}
.sjcm-precision p{margin:.5rem 0!important}
.sjcm-precision a{color:var(--sjcm-green);overflow-wrap:anywhere;text-underline-offset:3px}
.sjcm-empty h3{font-size:1.4rem}
.sjcm-empty p{font-size:.85rem}
.sjcm-method{margin-top:1.1rem;border-top:1px solid var(--sjcm-rule);padding-top:.75rem;color:var(--sjcm-muted);font-size:.78rem}
.sjcm-method summary{cursor:pointer;color:var(--sjcm-ink);font-weight:650;padding:.3rem 0}
.sjcm-method p{max-width:80ch;line-height:1.65;margin:.65rem 0}
@media(max-width:900px){.sjcm-layout{grid-template-columns:minmax(0,1fr)}.sjcm-map{height:420px}.sjcm-aside{padding:1.05rem 1.2rem}.sjcm-sheet h3{font-size:1.85rem}.sjcm-summary,.sjcm-lesson p{font-size:.9rem}}
@media(max-width:520px){.sjcm-map{height:360px}.sjcm-filter{grid-template-columns:minmax(0,1fr);gap:.45rem}.sjcm-reset{justify-self:start;min-height:38px}.sjcm-groups{gap:.3rem}.sjcm-groups button{padding:.4rem .65rem;font-size:.78rem}.sjcm-count{font-size:.72rem}.sjcm-top{gap:.6rem}.sjcm-aside{padding:.9rem}.sjcm-mapfoot{font-size:.69rem}.sjcm .map-warning{left:61px;right:42px;font-size:11px}.sjcm .geo-credit{font-size:9px}.sjcm-status{flex-wrap:wrap}}
@media print{.sjcm-filter,.sjcm-groups,.sjcm .geo-tools,.sjcm-actions,.sjcm-select-label,.sjcm-status{display:none!important}.sjcm-layout{grid-template-columns:1fr 1fr}.sjcm-map{height:350px}.sjcm-aside{break-inside:avoid}}

.sjcm .geo-dot.v-formacao:not(.cluster){color:#967044}
.sjcm-key.formacao{background:#967044}
.sjcm-badge.formacao{color:var(--sjcm-ink);background:#f4f2eb;border-color:#96704480}

.sjcm .geo-dot.v-missao:not(.cluster){color:#163340}
.sjcm-key.missao{background:#163340}
.sjcm-badge.missao{color:var(--sjcm-ink);background:#f4f2eb;border-color:#16334080}

.sjcm .geo-dot.v-producao:not(.cluster){color:#b75c3b}
.sjcm-key.producao{background:#b75c3b}
.sjcm-badge.producao{color:var(--sjcm-ink);background:#f4f2eb;border-color:#b75c3b80}

.sjcm .geo-dot.v-ecossistema:not(.cluster){color:#487f86}
.sjcm-key.ecossistema{background:#487f86}
.sjcm-badge.ecossistema{color:var(--sjcm-ink);background:#f4f2eb;border-color:#487f8680}

.sjcm .geo-dot.v-urbanizacao:not(.cluster){color:#705b88}
.sjcm-key.urbanizacao{background:#705b88}
.sjcm-badge.urbanizacao{color:var(--sjcm-ink);background:#f4f2eb;border-color:#705b8880}

.sjcm .geo-dot.v-direitos:not(.cluster){color:#767947}
.sjcm-key.direitos{background:#767947}
.sjcm-badge.direitos{color:var(--sjcm-ink);background:#f4f2eb;border-color:#76794780}

.sjcm-views{display:flex;flex-wrap:wrap;gap:.45rem;margin:0 0 .8rem}
.sjcm-views button{min-height:40px;padding:.45rem .8rem;background:transparent;border:1px solid var(--sjcm-rule);border-radius:4px;font-size:.78rem;color:var(--sjcm-ink)}
.sjcm-views button:first-child{background:var(--sjcm-ink);border-color:var(--sjcm-ink);color:var(--sjcm-paper)}
.sjcm-views button:hover{filter:brightness(.94)}
.sjcm-source a,.sjcm-precision summary{color:#375f66}
@media print{.sjcm-views{display:none!important}}
