/* COOPMAN D3 public society profile */
.d3-society{background:var(--d3-bg);padding-bottom:56px}
.d3-soc-hero{background:#fff;border-bottom:1px solid var(--d3-line)}
.d3-soc-hero-row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;padding:18px 0 18px}
.d3-soc-id h1{margin:0 0 10px;font:700 clamp(26px,3vw,36px)/1.15 var(--d3-font);letter-spacing:-.02em;color:var(--d3-navy)}
.d3-soc-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;margin:0;color:var(--d3-muted);font-size:14.5px}
.d3-soc-meta>span:not(.d3-chip){display:inline-flex;align-items:center;gap:5px}
.d3-soc-meta .d3-icon{color:var(--d3-green)}
.d3-soc-actions{display:flex;gap:8px;flex-wrap:wrap}
.d3-soc-tabs{position:sticky;top:60px;z-index:20;background:rgba(255,255,255,.97);border-top:1px solid var(--d3-line);backdrop-filter:blur(6px)}
.d3-soc-tabs .d3-wrap{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
.d3-soc-tabs a{position:relative;display:inline-flex;align-items:center;gap:6px;padding:13px 12px;white-space:nowrap;color:var(--d3-muted);font:600 14.5px/1 var(--d3-font);text-decoration:none}
.d3-soc-tabs a:hover,.d3-soc-tabs a.is-active{color:var(--d3-navy)}
.d3-soc-tabs a.is-active::after{content:"";position:absolute;left:10px;right:10px;bottom:0;height:2px;background:var(--d3-green)}
.d3-count-sm{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--d3-bg);color:var(--d3-text);font-size:12px}
.d3-soc-body{padding-top:22px}
.d3-soc-body section{scroll-margin-top:130px}

/* overview: viewer + facts */
.d3-soc-overview{display:grid;grid-template-columns:minmax(0,58fr) minmax(0,42fr);gap:18px;align-items:start}
.d3-viewer{background:#fff;border:1px solid var(--d3-line);border-radius:var(--d3-r-lg);overflow:hidden}
.d3-viewer-tabs{display:flex;gap:4px;padding:8px;border-bottom:1px solid var(--d3-line);background:#fafbfc;overflow-x:auto}
.d3-viewer-tabs button{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;border:1px solid transparent;background:transparent;border-radius:8px;padding:8px 12px;font:600 13.5px/1 var(--d3-font);color:var(--d3-muted);cursor:pointer}
.d3-viewer-tabs button[aria-selected="true"]{background:#fff;color:var(--d3-navy);border-color:var(--d3-line);box-shadow:var(--d3-shadow-1)}
.d3-vpanel{position:relative}
.d3-vpanel>img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.d3-building-svg{display:block;width:100%;height:auto;aspect-ratio:16/10;background:#eef4f6}
.d3-vpanel>.d3-explain{padding:10px 14px;border-top:1px solid var(--d3-line);background:#fafbfc}
.d3-3d-stage{position:relative;aspect-ratio:16/10;background:linear-gradient(#e4f0f6,#f4f7f2);cursor:grab;outline:none;touch-action:none}
.d3-3d-stage:focus-visible{box-shadow:inset 0 0 0 3px rgba(20,147,122,.5)}
.d3-3d-stage canvas{display:block;width:100%!important;height:100%!important}
.d3-3d-wait{position:absolute;inset:0;display:grid;place-items:center;margin:0;color:var(--d3-muted);font-size:14px}
.d3-3d-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:8px 12px;border-top:1px solid var(--d3-line);background:#fafbfc}
.d3-3d-tools{display:flex;flex-wrap:wrap;gap:4px}
.d3-3d-tools button{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--d3-line-2);background:#fff;border-radius:8px;color:var(--d3-navy);font-size:17px;cursor:pointer}
.d3-3d-tools button:hover{border-color:var(--d3-navy)}
/* D9 (audit F19): a text control ("Front") sizes to its word instead of being clipped to the icon width */
.d3-3d-tools button[data-3d="front"]{width:auto;min-width:36px;padding:0 10px;font-size:13px;font-weight:700;white-space:nowrap}
.d3-3d:fullscreen{background:#fff;display:flex;flex-direction:column}.d3-3d:fullscreen .d3-3d-stage{flex:1;aspect-ratio:auto}
.d3-3d-label{position:absolute;left:10px;top:10px;margin:0;max-width:70%;background:rgba(255,255,255,.94);border:1px solid var(--d3-line);border-radius:8px;padding:6px 9px;font-size:12px;color:var(--d3-text)}

.d3-facts{background:#fff;border:1px solid var(--d3-line);border-radius:var(--d3-r-lg);padding:18px 20px}
.d3-facts h2{font-size:18px!important;margin:0 0 12px!important}
.d3-facts dl{margin:0;display:grid}
.d3-facts dl>div{display:grid;grid-template-columns:140px 1fr;gap:12px;padding:9px 0;border-bottom:1px solid #eef1f5;font-size:14.5px}
.d3-facts dt{color:var(--d3-muted)} .d3-facts dd{margin:0;color:var(--d3-ink);font-weight:500}
.d3-facts dd a{color:var(--d3-green)}
.d3-desc{margin:14px 0 0;color:#3a4654;line-height:1.6;font-size:14.5px}
.d3-loc-card{display:flex;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;border:1px solid var(--d3-line);border-radius:12px;background:var(--d3-bg);text-decoration:none;color:var(--d3-ink)}
.d3-loc-card>.d3-icon:first-child{color:var(--d3-green)} .d3-loc-card>.d3-icon:last-child{margin-left:auto;color:var(--d3-faint)}
.d3-loc-card b{display:block;color:var(--d3-navy)} .d3-loc-card small{color:var(--d3-muted);font-size:13px}
.d3-loc-card:hover{border-color:var(--d3-green)}
.d3-manage-hint{display:flex;align-items:center;gap:6px;margin:12px 0 0;font-size:13px;color:var(--d3-muted)} .d3-manage-hint a{color:var(--d3-green)}

/* notice board — digital stationery */
.d3-board{margin-top:36px}
.d3-board .d3-section-head .d3-icon{color:var(--d3-sand)}
.d3-board-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.d3-notice{position:relative;display:flex;flex-direction:column;gap:8px;background:#fffdf9;border:1px solid #ebe3d2;border-radius:6px 6px 14px 14px;padding:16px 18px 14px;box-shadow:0 1px 0 #efe7d6,0 8px 22px rgba(80,62,24,.06)}
.d3-notice::before{content:"";position:absolute;top:-1px;right:-1px;width:24px;height:24px;background:linear-gradient(225deg,var(--d3-corner,#C9A86A) 50%,transparent 50%);border-top-right-radius:6px}
.d3-notice-emergency{--d3-corner:#b3261e}.d3-notice-resolution{--d3-corner:#0F7A63}.d3-notice-application{--d3-corner:#1c5687}
.d3-notice.is-pinned{border-color:#d9c491;box-shadow:0 0 0 1px #e8d8ad,0 10px 24px rgba(80,62,24,.09)}
.d3-notice header{display:flex;align-items:center;gap:8px;font:600 12px/1.2 var(--d3-font)}
.d3-notice-type{text-transform:uppercase;letter-spacing:.07em;color:#7d6331}
.d3-pinned{display:inline-flex;align-items:center;gap:3px;padding:3px 7px;border-radius:999px;background:#f3e7c7;color:#6b4e12}
.d3-notice header time{margin-left:auto;margin-right:18px;color:var(--d3-muted);font-weight:500}
.d3-notice h3{margin:0;font:600 16.5px/1.35 var(--d3-font);color:var(--d3-navy)}
.d3-notice>p{margin:0;color:#3d4955;font-size:14px;line-height:1.55}
.d3-attach{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.d3-attach a{display:inline-flex;align-items:center;gap:6px;color:var(--d3-navy);font-size:13.5px}
.d3-notice footer{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:auto;padding-top:10px;border-top:1px dashed #e6dcc6}
.d3-notice footer a{display:inline-flex;align-items:center;gap:6px;color:var(--d3-green);font-weight:600;font-size:13.5px;text-decoration:none}
.d3-notice footer a:hover{text-decoration:underline}
.d3-pin-form{margin-left:auto}
.d3-pin-form button{display:inline-flex;align-items:center;gap:5px;border:1px solid #e1d3b0;background:#fff;border-radius:7px;padding:5px 8px;font:600 12.5px/1 var(--d3-font);color:#6b4e12;cursor:pointer}

/* location */
.d3-location{margin-top:36px}.d3-location h2{margin-bottom:14px!important}
.d3-map-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px}
.d3-map{position:relative;min-height:380px;border-radius:var(--d3-r-lg);overflow:hidden;border:1px solid var(--d3-line);background:#e9eef0}
.d3-map .leaflet-container{width:100%;height:100%;min-height:380px;font-family:var(--d3-font)}
.d3-map-wait{position:absolute;inset:0;display:grid;place-items:center;margin:0;color:var(--d3-muted);font-size:14px}
.d3-map-offline{position:absolute;z-index:500;left:12px;right:12px;bottom:12px;margin:0;background:#fff;border:1px solid var(--d3-line);border-left:4px solid var(--d3-warn);border-radius:8px;padding:9px 12px;font-size:13px;color:var(--d3-text)}
.d3-map-info{background:#fff;border:1px solid var(--d3-line);border-radius:var(--d3-r-lg);padding:18px 20px;display:flex;flex-direction:column;gap:14px}
.d3-map-info dl{margin:0;display:grid}
.d3-map-info dl>div{display:grid;grid-template-columns:120px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid #eef1f5;font-size:14px}
.d3-map-info dt{color:var(--d3-muted)} .d3-map-info dd{margin:0}
.d3-map-actions{display:flex;gap:8px;flex-wrap:wrap}
.d3-map-info p{margin:0}
.d3-noloc{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px dashed var(--d3-line-2);border-radius:var(--d3-r-lg);padding:18px}
.d3-noloc .d3-icon{color:var(--d3-green)} .d3-noloc p{margin:4px 0 0}

/* reviews */
.d3-reviews{margin-top:36px}
.d3-rating{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--d3-navy)} .d3-rating .d3-icon{color:#b07d12} .d3-rating small{font-weight:500;color:var(--d3-muted)}
.d3-review-list{display:grid;gap:10px}
.d3-review{background:#fff;border:1px solid var(--d3-line);border-radius:12px;padding:14px 16px}
.d3-review header{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.d3-stars{color:#b07d12;letter-spacing:1px} .d3-stars span{color:#d9dde3}
.d3-review time{margin-left:auto;color:var(--d3-muted);font-size:13px}
.d3-review p{margin:0;line-height:1.55}
.d3-reply{margin-top:10px;padding:8px 12px;border-left:3px solid var(--d3-green-tint);background:var(--d3-bg);border-radius:0 8px 8px 0}
.d3-inline-form{display:flex;gap:8px;margin-top:10px}.d3-inline-form input{flex:1;min-height:40px;border:1px solid var(--d3-line-2);border-radius:8px;padding:0 10px;font:inherit}
.d3-review-form-wrap{margin-top:14px} .d3-review-form-wrap>summary{list-style:none} .d3-review-form-wrap>summary::-webkit-details-marker{display:none}
.d3-review-form{display:grid;gap:8px;max-width:560px;margin-top:10px;background:#fff;border:1px solid var(--d3-line);border-radius:12px;padding:16px}
.d3-review-form label{font-weight:600;color:var(--d3-navy);font-size:14px}
.d3-review-form select,.d3-review-form textarea{border:1px solid var(--d3-line-2);border-radius:8px;padding:10px;font:inherit}
.d3-review-form textarea{min-height:90px} .d3-review-form .d3-btn{justify-self:start}

@media (max-width:1020px){.d3-board-grid{grid-template-columns:1fr 1fr}.d3-soc-tabs{top:64px}}
@media (max-width:860px){.d3-soc-overview,.d3-map-grid{grid-template-columns:1fr}.d3-board-grid{grid-template-columns:1fr}.d3-soc-actions{width:100%}.d3-soc-actions .d3-btn{flex:1}.d3-facts dl>div{grid-template-columns:120px 1fr}.d3-map,.d3-map .leaflet-container{min-height:300px}}
.d3-3d-label{top:auto!important;bottom:10px}   /* D5: keep block labels at the top of the scene readable */
