body:has(#source-viewer[open]){overflow:hidden}
dialog.source-viewer{box-sizing:border-box;width:min(880px,calc(100vw - 32px));max-width:880px;max-height:calc(100dvh - 32px);padding:0;border:1px solid #fff;border-radius:26px;background:#f7faf4;color:#264738;overflow:auto;overscroll-behavior:contain;box-shadow:0 24px 100px #173b3650}
.source-viewer::backdrop{background:#153a3570;backdrop-filter:blur(6px)}
.source-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;position:sticky;top:0;background:#f7faf4f5;backdrop-filter:blur(10px);padding:12px 22px;border-bottom:1px solid #dae5d4;z-index:1}
.source-toolbar>span{font-size:9px;letter-spacing:.15em;color:#79917b}
.source-toolbar>button:first-child{font:inherit;font-size:12px;font-weight:600;min-height:44px;border:0;background:none;color:#30674f;padding:0 8px;cursor:pointer}
.source-toolbar .icon-button{position:static;width:44px;height:44px;font-size:24px;flex-shrink:0}
.source-content{padding:36px 42px 30px}
.source-content>.eyebrow{font-size:10px;color:#739177;letter-spacing:.14em;margin:0 0 14px}
.source-content h2{font-size:clamp(27px,3.2vw,39px);line-height:1.15;letter-spacing:-1px;margin:0 0 18px}
.source-content .source-subtitle{font-size:13px;color:#74907c;margin:0 0 22px}
.source-content p{font-size:14px;line-height:1.8;color:#627c68;margin:0 0 20px}
.source-content .source-intro{font-size:17px;line-height:1.75;color:#3f624c}
.source-photo{width:100%;max-height:310px;object-fit:contain;background:#e3eddf;border-radius:20px;margin:5px 0 22px;display:block}
.source-topics{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 25px}
.source-topics span{background:#e5eedf;border:1px solid #d4e1ce;border-radius:8px;padding:7px 11px;font-size:12px;color:#4c7457}
.source-related{margin:30px 0;border-top:1px solid #dae5d4;padding-top:22px}
.source-related h3{font-size:20px;letter-spacing:-.5px;margin:0 0 16px}
.source-related a{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:52px;padding:13px 17px;border:1px solid #dde7d7;border-radius:12px;background:#fff;margin-bottom:8px;font-size:14px;color:#2d6249;text-decoration:none}
.source-related a:hover{background:#e9f1e4}.source-related small{display:block;font-size:10px;margin-top:6px;color:#7e947f}
.source-provenance{border-top:1px solid #d6e3cf;padding-top:22px;margin-top:28px}
.source-provenance>p{font-size:11px;color:#7f947f}
.source-provenance label,.source-contact-label{display:block;font-size:11px;color:#69856e;margin:12px 0 8px}
.source-provenance input,.source-contact-label input,.source-contact-label textarea{display:block;width:100%;box-sizing:border-box;padding:12px;border:1px solid #cfddc7;border-radius:9px;background:#fff;color:#54705a;font:inherit;font-size:12px;min-height:44px;margin:8px 0;resize:vertical}
.source-copy{font:inherit;font-size:12px;font-weight:600;color:#31664b;background:#e5eedf;border:1px solid #cfddc7;border-radius:9px;padding:11px 17px;min-height:44px;cursor:pointer}
#source-status{min-height:20px;margin:10px 0 0}
@media(max-width:600px){dialog.source-viewer{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:21px}.source-toolbar{padding:8px 12px;gap:5px}.source-toolbar>span{display:none}.source-content{padding:25px 22px}.source-content h2{font-size:29px}.source-content .source-intro{font-size:15px}.source-content p{font-size:13px}.source-photo{max-height:240px}}
