/* Cartografia de Cidades vivas. Estilos limitados ao módulo .ccim. */
.ccim{--ccim-ink:#183d39;--ccim-muted:#526560;--ccim-paper:#fffdf7;--ccim-rule:#cad3c9;--ccim-green:#216759;--ccim-rust:#ab4f32;--ccim-blue:#315f7a;--ccim-olive:#6b7040;color:var(--ccim-ink);font-family:inherit;line-height:1.55}
.ccim *{box-sizing:border-box}
.ccim [hidden]{display:none!important}
.ccim button,.ccim input,.ccim select{font:inherit;color:inherit}
.ccim button{cursor:pointer}
.ccim button:disabled{cursor:default;opacity:.45}
.ccim :is(button,input,select,a,summary):focus-visible,.ccim-map:focus-visible{outline:3px solid #be7620;outline-offset:3px}
.ccim-top{display:flex;gap:1rem;align-items:center;justify-content:space-between;margin-bottom:.8rem;flex-wrap:wrap}
.ccim-countries{display:flex;gap:.4rem;flex-wrap:wrap}
.ccim-countries button{min-height:42px;padding:.45rem .9rem;border:1px solid #bac7bb;border-radius:4px;background:var(--ccim-paper);font-size:.83rem;font-weight:650}
.ccim-countries button:hover{background:#e8ede3}
.ccim-countries button[aria-pressed=true]{background:var(--ccim-ink);border-color:var(--ccim-ink);color:#fffdf7}
.ccim-count{font-size:.79rem;color:var(--ccim-muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.ccim-filter{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.8rem;align-items:end;margin-bottom:1rem;max-width:42rem}
.ccim-filter label,.ccim-select-label{display:grid;gap:.28rem;font-size:.76rem;letter-spacing:.01em;font-weight:650}
.ccim-filter input,.ccim-select-label select{width:100%;min-width:0;min-height:43px;padding:.55rem .7rem;border:1px solid #aebdac;background:var(--ccim-paper);border-radius:4px;font-weight:400;font-size:.87rem;line-height:1.4}
.ccim-reset{min-height:43px;padding:.5rem .9rem;border:1px solid #bac7bb;background:transparent;border-radius:4px;font-size:.82rem!important}
.ccim-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,1fr);gap:1.3rem;align-items:start}
.ccim-cart{min-width:0}
.ccim-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 #183d3910}
.ccim-map.dragging{cursor:grabbing}
.ccim .geo-base{display:block;position:absolute;inset:0;width:100%;height:100%;z-index:0}
.ccim .geo-pins{position:absolute;inset:0;z-index:2;pointer-events:none}
.ccim .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(--ccim-green);box-shadow:none;line-height:1;font-size:13px;font-weight:750}
.ccim .geo-dot::after{content:"";display:block;position:absolute;inset:8px;background:currentColor;border:2px solid #fffdf7;border-radius:50%;box-shadow:0 2px 7px #183d3959}
.ccim .geo-dot.v-cultura{color:var(--ccim-rust)}
.ccim .geo-dot.v-distrito{color:var(--ccim-blue)}
.ccim .geo-dot.v-parque{color:var(--ccim-olive)}
.ccim .geo-dot.cluster{background:var(--ccim-ink);color:white;border:2px solid #fffdf7;box-shadow:0 2px 6px #183d3959;font-size:13px}
.ccim .geo-dot.cluster::after{display:none}
.ccim .geo-dot.selected::after{inset:5px;box-shadow:0 0 0 4px #fffdf799,0 2px 8px #183d3960}
.ccim .geo-dot.selected.cluster{outline:3px solid #fffdf7;outline-offset:2px}
.ccim .geo-dot:hover::after{inset:5px}
.ccim .geo-dot:focus-visible{z-index:4;outline:3px solid #a85e18;outline-offset:1px;background:#fffdf7aa}
.ccim .geo-tools{position:absolute;left:12px;top:12px;z-index:4;display:flex;flex-direction:column;gap:5px}
.ccim .geo-tools button{min-width:40px;height:40px;padding:0;border:1px solid #a7b8ac;border-radius:4px;background:#fffef9ed;color:#183d39;font:550 23px/1 system-ui,sans-serif;box-shadow:0 1px 5px #183d3926}
.ccim .geo-tools button:hover{background:white}
.ccim-north{position:absolute;right:13px;top:13px;font-size:.76rem;color:#294c48;z-index:1;background:#fffdf7df;border-radius:3px;padding:3px 6px;font-weight:700}
.ccim .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:#183d39;text-shadow:0 0 2px white;background:#fffdf7bb;z-index:3}
.ccim .geo-credit{position:absolute;bottom:0;left:0;right:0;z-index:3;padding:3px 7px;background:#fffdf7e6;text-align:right;color:#405a52;font:500 10px/1.3 system-ui,sans-serif;cursor:auto}
.ccim .geo-credit a{color:inherit;text-decoration:underline}
.ccim .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 #183d3912}
.ccim-mapfoot{display:flex;justify-content:space-between;gap:.7rem;flex-wrap:wrap;margin:.6rem 0;color:var(--ccim-muted);font-size:.74rem}
.ccim-mapfoot a{color:var(--ccim-green);text-underline-offset:3px}
.ccim-legend{display:flex;flex-wrap:wrap;gap:.35rem .9rem;font-size:.73rem;color:var(--ccim-muted);margin:.55rem 0}
.ccim-legend span{display:inline-flex;gap:.36rem;align-items:center}
.ccim-key{display:block;width:9px;height:9px;border-radius:50%;flex:none;background:var(--ccim-ink)}
.ccim-key.cultura{background:var(--ccim-rust)}
.ccim-key.distrito{background:var(--ccim-blue)}
.ccim-key.parque{background:var(--ccim-olive)}
.ccim-hint{margin:.6rem 0!important;font-size:.74rem;color:var(--ccim-muted);line-height:1.5}
.ccim-status{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;font-size:.7rem;color:var(--ccim-muted);line-height:1.5}
.ccim-status button{padding:.15rem .3rem;border:0;border-bottom:1px solid #8da99b;background:none;font-size:inherit;flex:none}
.ccim-aside{padding:1rem 1.15rem 1.15rem;background:var(--ccim-paper);border:1px solid var(--ccim-rule);border-radius:7px;min-width:0}
.ccim-select-label{margin-bottom:1rem}
.ccim-group{margin:0 0 1rem;padding:.6rem .7rem;background:#edf0e7;border-left:3px solid var(--ccim-green);font-size:.8rem}
.ccim-group strong{display:block;margin-bottom:.35rem}
.ccim-group button{display:block;width:100%;border:0;background:transparent;text-align:left;padding:.4rem 0;color:var(--ccim-green);text-decoration:underline;font-size:.82rem}
.ccim-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}
.ccim-badge.cultura{color:#8d412c;background:#f8eee5;border-color:#e3c7b5}
.ccim-badge.distrito{color:#31586c;background:#edf3f4;border-color:#c6d8dd}
.ccim-badge.parque{color:#5d6035;background:#f0f0e5;border-color:#d5d6bd}
.ccim-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(--ccim-ink);text-wrap:balance}
.ccim-place{font-size:.76rem;color:var(--ccim-muted);margin:0 0 1rem!important}
.ccim-summary{font-size:.85rem;margin:.6rem 0 1rem!important;line-height:1.65}
.ccim-lesson{margin:.9rem 0;padding-top:.8rem;border-top:1px solid #e0e4d9}
.ccim-lesson h4{font:700 .72rem/1.4 system-ui,sans-serif;text-transform:uppercase;letter-spacing:.055em;margin:0 0 .4rem;color:var(--ccim-green)}
.ccim-lesson p{margin:0!important;font-size:.83rem;line-height:1.6}
.ccim-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}
.ccim-question span{display:block;font-size:.65rem;font-weight:750;text-transform:uppercase;letter-spacing:.06em;color:#8d4f34}
.ccim-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}
.ccim-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin:.9rem 0 .7rem}
.ccim-actions button{min-height:40px;padding:.45rem .7rem;border:1px solid var(--ccim-green);border-radius:4px;background:var(--ccim-green);color:#fffdf7;font-size:.75rem;font-weight:650;line-height:1.45}
.ccim-actions button:hover{filter:brightness(.94)}
.ccim-actions button.ccim-secondary{background:transparent;color:var(--ccim-green);border-color:#acbdae}
.ccim-source{font-size:.7rem;margin:.6rem 0!important;line-height:1.5}
.ccim-source a{color:#4d6859;text-underline-offset:3px}
.ccim-precision{margin-top:.8rem;padding-top:.65rem;border-top:1px solid #e0e4d9;color:var(--ccim-muted);font-size:.72rem;line-height:1.6}
.ccim-precision summary{cursor:pointer;font-weight:650;color:#456352;line-height:1.5}
.ccim-precision p{margin:.5rem 0!important}
.ccim-precision a{color:var(--ccim-green);overflow-wrap:anywhere;text-underline-offset:3px}
.ccim-empty h3{font-size:1.4rem}
.ccim-empty p{font-size:.85rem}
.ccim-method{margin-top:1.1rem;border-top:1px solid var(--ccim-rule);padding-top:.75rem;color:var(--ccim-muted);font-size:.78rem}
.ccim-method summary{cursor:pointer;color:var(--ccim-ink);font-weight:650;padding:.3rem 0}
.ccim-method p{max-width:80ch;line-height:1.65;margin:.65rem 0}
@media(max-width:900px){.ccim-layout{grid-template-columns:minmax(0,1fr)}.ccim-map{height:420px}.ccim-aside{padding:1.05rem 1.2rem}.ccim-sheet h3{font-size:1.85rem}.ccim-summary,.ccim-lesson p{font-size:.9rem}}
@media(max-width:520px){.ccim-map{height:360px}.ccim-filter{grid-template-columns:minmax(0,1fr);gap:.45rem}.ccim-reset{justify-self:start;min-height:38px}.ccim-countries{gap:.3rem}.ccim-countries button{padding:.4rem .65rem;font-size:.78rem}.ccim-count{font-size:.72rem}.ccim-top{gap:.6rem}.ccim-aside{padding:.9rem}.ccim-mapfoot{font-size:.69rem}.ccim .map-warning{left:61px;right:42px;font-size:11px}.ccim .geo-credit{font-size:9px}.ccim-status{flex-wrap:wrap}}
@media print{.ccim-filter,.ccim-countries,.ccim .geo-tools,.ccim-actions,.ccim-select-label,.ccim-status{display:none!important}.ccim-layout{grid-template-columns:1fr 1fr}.ccim-map{height:350px}.ccim-aside{break-inside:avoid}}
