:root{--ink:#152238;--muted:#667085;--line:#e5eaf0;--soft:#f6f8fb;--brand:#1769aa;--brand2:#0b4f85;--code:#f3f6f9;--sidebar:290px;--toc:220px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font:15.5px/1.62 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#fff}.topbar{height:64px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);z-index:20}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-size:18px;font-weight:650}.brand b{font-size:13px;color:var(--muted);font-weight:600;border-left:1px solid var(--line);padding-left:12px}.mark{display:grid;place-items:center;width:31px;height:31px;border-radius:8px;background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;font-size:12px;letter-spacing:.4px}.top-actions{display:flex;align-items:center;gap:18px}.top-actions>a{color:var(--brand2);text-decoration:none;font-weight:600}.search-button{width:260px;display:flex;gap:9px;align-items:center;border:1px solid var(--line);border-radius:9px;background:var(--soft);color:var(--muted);padding:8px 10px;text-align:left}.search-button span{flex:1}.search-button kbd{background:#fff;border:1px solid #d9dee7;border-radius:5px;padding:0 6px}.layout{display:grid;grid-template-columns:var(--sidebar) minmax(0,820px) var(--toc);max-width:1400px;margin:auto;min-height:calc(100vh - 64px)}.sidebar{border-right:1px solid var(--line);padding:24px 18px 80px;height:calc(100vh - 64px);position:sticky;top:64px;overflow:auto}.nav-section{margin-bottom:24px}.nav-heading{font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.08em;color:#8993a4;margin:0 10px 7px}.nav-link{display:block;padding:6px 10px;border-radius:7px;text-decoration:none;color:#48566a;font-size:13.5px;line-height:1.35}.nav-link:hover{background:var(--soft);color:var(--ink)}.nav-link.active{background:#eaf3fb;color:var(--brand2);font-weight:650}.main{padding:38px 52px 100px}.breadcrumbs{font-size:12px;color:#8993a4;margin-bottom:28px}.breadcrumbs a{color:inherit;text-decoration:none}.breadcrumbs span{margin:0 8px}.eyebrow{text-transform:uppercase;letter-spacing:.09em;font-size:11px;font-weight:750;color:var(--brand);margin-bottom:7px}article h1{font-size:38px;line-height:1.13;letter-spacing:-.025em;margin:0 0 20px}article h2{font-size:24px;margin:42px 0 14px;padding-top:8px;letter-spacing:-.015em}article h3{font-size:18px;margin:27px 0 8px}article p{margin:10px 0 16px}article .lead,article>p:first-of-type{font-size:18px;line-height:1.65;color:#445269}article a{color:var(--brand2)}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}p code,li code,.meta-row code{background:#eef3f7;border-radius:5px;padding:2px 5px;color:#174c73}pre{background:#101923;color:#e8eef5;border-radius:10px;padding:18px 20px;overflow:auto;line-height:1.55;border:1px solid #1c2a39}pre code{font-size:13px}blockquote,.callout{margin:22px 0;padding:14px 17px;border-left:3px solid var(--brand);background:#f3f8fc;border-radius:0 8px 8px 0;color:#415269}table{border-collapse:collapse;width:100%;margin:20px 0;display:block;overflow:auto}th,td{padding:10px 12px;border:1px solid var(--line);text-align:left;vertical-align:top}th{background:var(--soft)}.property{border-top:1px solid var(--line);padding:18px 0 8px}.property h3{margin:0 0 7px;font-size:17px}.badges{display:flex;gap:6px;flex-wrap:wrap}.badge{font-size:11px;background:#e8f2fa;color:#145884;border-radius:20px;padding:3px 8px;font-weight:650}.badge.muted{background:#f0f2f5;color:#687386}.runtime,.values{font-size:13.5px;color:#566477;background:var(--soft);padding:10px 12px;border-radius:7px;margin:10px 0}.example-title{font-size:12px;font-weight:700;color:var(--muted);margin-top:15px}.meta-row{display:flex;gap:12px;align-items:center;font-size:13px;color:var(--muted);margin:12px 0}.source-note{margin-top:70px;border-top:1px solid var(--line);padding-top:15px;color:#98a1af;font-size:11px}.toc{padding:42px 18px;position:sticky;top:64px;height:calc(100vh - 64px);overflow:auto}.toc-title{font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.08em;color:#8993a4;margin-bottom:9px}.toc a{display:block;color:#748094;text-decoration:none;font-size:12px;padding:4px 0}.toc a:hover{color:var(--brand)}.modal{position:fixed;inset:0;background:rgba(16,25,35,.35);z-index:50;padding-top:10vh}.hidden{display:none}.search-panel{max-width:650px;margin:auto;background:#fff;border-radius:13px;box-shadow:0 20px 70px rgba(0,0,0,.22);overflow:hidden}.search-panel input{width:100%;border:0;border-bottom:1px solid var(--line);font-size:17px;padding:18px 20px;outline:none}.result{display:block;padding:11px 20px;text-decoration:none;color:var(--ink);border-bottom:1px solid #f0f2f5}.result:hover{background:var(--soft)}.result small{display:block;color:var(--muted)}.search-help{padding:8px 20px;font-size:11px;color:#98a1af}.mobile-title{display:none}@media(max-width:1100px){.layout{grid-template-columns:250px minmax(0,1fr)}.toc{display:none}.main{padding:35px 38px}}@media(max-width:760px){.topbar{padding:0 16px}.brand b,.top-actions>a,.search-button span,.search-button kbd{display:none}.search-button{width:auto}.layout{display:block}.sidebar{display:none}.main{padding:28px 20px 70px}article h1{font-size:31px}}

/* v0.2 */
.layout{grid-template-columns:260px minmax(0,900px) 210px!important}.sidebar{width:auto!important;padding:24px 14px 60px!important;overflow:auto!important}.nav-link{display:block;padding:5px 9px!important;border-radius:7px;overflow-wrap:anywhere}.nav-group,.nav-subgroup{margin:2px 0}.nav-group>summary,.nav-subgroup>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:6px 8px;border-radius:7px;font-size:13px;font-weight:650;color:#243a55}.nav-group>summary::-webkit-details-marker,.nav-subgroup>summary::-webkit-details-marker{display:none}.nav-children{padding-left:8px}.nav-children.nested{padding-left:10px}.nav-subgroup>summary{font-size:12px;color:#53657c}.chev{color:#8b97a9;transition:.15s}.nav-group[open]>summary .chev,.nav-subgroup[open]>summary .chev{transform:rotate(90deg)}.main article{max-width:780px!important}.source-note{display:none!important}.property .runtime{display:inline-block!important;background:#edf6ef!important;color:#39704b!important;padding:3px 8px!important;border-radius:999px!important;font-size:11px!important}
/* v0.3 sidebar legibility */
.sidebar .nav-link{font-size:14px!important;line-height:1.45!important;padding:6px 9px!important}
.sidebar .nav-group>summary,.sidebar .nav-subgroup>summary{font-size:14px!important;line-height:1.45!important;padding:7px 8px!important}
.sidebar .nav-heading{font-size:11px!important;margin-bottom:10px!important}
.sidebar .nav-section{margin-bottom:26px!important}


/* v0.4: responsive, viewport-fluid docs shell */
:root { --st-sidebar-width: clamp(252px, 19vw, 288px); --st-toc-width: 205px; }
html { scroll-padding-top: 84px; }
.layout {
  display:grid!important;
  grid-template-columns: var(--st-sidebar-width) minmax(0,1fr) var(--st-toc-width)!important;
  max-width:none!important; width:100%!important; margin:0!important;
  justify-content:stretch!important;
}
.sidebar { min-width:0; width:auto!important; padding:24px 16px 64px!important; }
.sidebar .nav-link { font-size:15px!important; line-height:1.45!important; padding:6px 9px!important; }
.sidebar .nav-group>summary,.sidebar .nav-subgroup>summary {font-size:15px!important;line-height:1.4!important;padding:7px 8px!important;}
.sidebar .nav-heading {font-size:11px!important;line-height:1.4!important;}
.main {min-width:0!important;width:100%!important;padding:42px clamp(24px,4vw,72px) 90px!important;}
.main article {max-width:800px!important;margin:0 auto!important;min-width:0;}
.main article pre {max-width:100%;overflow-x:auto;}
.main article table {display:block;max-width:100%;overflow-x:auto;}
.main article img,.main article svg {max-width:100%;height:auto;}
.main article code {overflow-wrap:anywhere;}
.main article pre code {overflow-wrap:normal;}
.toc {width:auto!important;min-width:0;padding:42px 18px 35px 10px!important;}
.toc a {font-size:12.5px!important;overflow-wrap:anywhere;}
.mobile-menu,.mobile-overlay,.mobile-toc {display:none;}
:focus-visible {outline:3px solid #2389c5!important;outline-offset:3px;}
@media(max-width:1199px) {
 .layout {grid-template-columns:260px minmax(0,1fr)!important;}
 .toc {display:none!important;}
 .main {padding:38px clamp(22px,5vw,60px) 85px!important;}
 .mobile-toc:not([hidden]) {display:block!important;background:#f6f9fc;border:1px solid #e4ebf3;border-radius:9px;margin:0 0 25px;padding:12px 16px;}
 .mobile-toc summary {font-weight:650;cursor:pointer;}
 .mobile-toc a {display:block;font-size:13px;padding:5px 0;}
}
@media(max-width:767px) {
 .layout {display:block!important;}
 .topbar {padding:0 12px!important;}
 .topbar .brand {font-size:15px!important;gap:7px!important;}
 .topbar .brand b {font-size:11px!important;}
 .top-actions {gap:9px!important;}
 .top-actions>a {display:none!important;}
 .mobile-menu {display:inline-flex!important;align-items:center;justify-content:center;min-width:40px;height:40px;border:1px solid #d9e2ec;border-radius:8px;background:#fff;color:#173956;font-size:20px;cursor:pointer;}
 .sidebar {display:block!important;position:fixed!important;left:0;top:58px;height:calc(100dvh - 58px);width:min(320px,88vw)!important;z-index:42;background:#fff;box-shadow:10px 0 25px #10213c1c;transform:translateX(-110%);transition:transform .2s ease;overscroll-behavior:contain;}
 body.nav-open .sidebar {transform:translateX(0);}
 body.nav-open .mobile-overlay {display:block;position:fixed;inset:58px 0 0;background:#14263c70;z-index:41;}
 body.nav-open {overflow:hidden;}
 .main {padding:27px 20px 65px!important;}
 .main article {max-width:100%!important;}
 h1 {font-size:clamp(27px,7vw,36px)!important;overflow-wrap:anywhere;}
 .path-grid {grid-template-columns:1fr!important;}
 .reference-meta {flex-wrap:wrap;}
}
@media(prefers-reduced-motion:reduce) {
 html {scroll-behavior:auto!important;}
 .sidebar {transition:none!important;}
}

/* v0.5 typography and developer entry points */
.sidebar .nav-heading{color:#65748b!important;letter-spacing:.105em!important;font-size:11px!important;font-weight:750!important;}
.sidebar .nav-link{font-size:14.5px!important;line-height:1.5!important;}
.sidebar .nav-group>summary,.sidebar .nav-subgroup>summary{font-size:14.5px!important;}
.main article>h1{margin-bottom:16px!important;}
.developer-paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:30px 0 46px;}
.developer-path{display:flex;flex-direction:column;min-width:0;padding:20px;border:1px solid #dce6ee;border-radius:11px;color:#10213c;text-decoration:none!important;transition:border-color .15s,box-shadow .15s;}
.developer-path:hover{border-color:#8eb9d3;box-shadow:0 5px 18px #153d5910;}
.developer-path h2{font-size:20px;margin:9px 0 10px;letter-spacing:-.02em;}
.developer-path p{font-size:14px;color:#52647b;flex:1;}
.developer-path strong{font-size:13px;color:#075d9c;}
.path-kicker{font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:#477590;font-weight:750;}
.sdk-choices{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:15px 0 34px;}
.sdk-choices h3{margin:5px 0 8px;}.sdk-choices p{color:#52647b;}
.reference-links{display:flex;gap:12px;flex-wrap:wrap;}.reference-links a{padding:9px 12px;border:1px solid #dce6ee;border-radius:8px;font-size:14px;font-weight:650;}
@media(max-width:1199px){.developer-paths{grid-template-columns:1fr;}.developer-path{padding:18px;}.developer-path p{margin-bottom:12px;}}
@media(max-width:767px){.sdk-choices{grid-template-columns:1fr;gap:6px;}.reference-links{flex-direction:column;}}
@media(prefers-reduced-motion:reduce){.developer-path{transition:none;}}

/* v0.6: consistent interactive affordances */
a[href],button:not(:disabled),summary,[role="button"],.path-card,.start-card a,.link-row a {cursor:pointer!important;}
a[href] *,button:not(:disabled) *,.path-card * {cursor:inherit!important;}
a[href]:hover {text-decoration:underline;}
.nav-group>summary:hover,.nav-subgroup>summary:hover {background:#f0f5f9;}

/* v0.7 editorial landing-page treatment */
.main article p.lead {font-size:1.15rem;line-height:1.55;color:var(--text,inherit);font-weight:500;margin-top:.55rem;margin-bottom:1.4rem;}
.main article a code {text-decoration:underline;text-underline-offset:2px;cursor:pointer;}
.main article li a {text-decoration:none;}
.main article li a:hover,.main article li a:focus-visible {text-decoration:underline;text-underline-offset:3px;}

/* v0.9 grouped configuration reference */
.reference-directory{padding-left:1.35rem;} .reference-directory li{margin:.42rem 0;line-height:1.55;} .reference-directory a{text-decoration:none;} .reference-directory a:hover,.reference-directory a:focus-visible{text-decoration:underline;} .inline-code-link{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:#eef4f8;border-radius:4px;padding:.06em .25em;}

/* v0.10: linked JSON object/array property names */
article .property h3 a.property-reference-link { color: var(--link, #2563a6); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
article .property h3 a.property-reference-link:hover { text-decoration-thickness: 2px; }
article .property h3 a.property-reference-link:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; border-radius: 2px; }

/* v0.12: property directory */
.property-quicklinks {margin:1rem 0 1.5rem;padding:1rem 1.15rem;border:1px solid var(--border, #dbe2ea);border-radius:10px;line-height:2;} .property-quicklinks p {margin:0 0 .3rem;font-weight:600;} .property-quicklinks a {white-space:nowrap;}

.schema-relationships{border:1px solid #dbe3ed;border-radius:12px;padding:16px 20px;margin:18px 0 26px;background:#fafcff}.schema-relationships p{margin:4px 0 9px}.schema-relationships strong{margin-right:9px}.schema-relationships ul{margin:6px 0 0;padding-left:23px}.schema-relationships li{margin:5px 0}


/* Controlled API Release 08 — isolated SDK contexts; do not style generic code globally. */
.main article .method-list-entry {margin:0 0 18px;list-style: none}
.main article .method-list-entry > a {font-weight:650}
.main article .method-list-entry .method-signature {background:#f1f5f9!important;color:#263449!important;border:1px solid #d7e0eb!important;border-radius:8px!important;padding:10px 14px!important;margin:6px 0 14px!important;max-width:100%;box-sizing:border-box;overflow-wrap:anywhere;white-space:normal}
.main article .method-list-entry .method-signature code {background:transparent!important;color:inherit!important;white-space:pre-wrap!important;overflow-wrap:anywhere!important;font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important}
.main article .sdk-method-declaration,.main article .sdk-type-declaration {position:relative;max-width:100%;min-width:0;box-sizing:border-box;border:1px solid #34455a;border-radius:10px;background:#192638;color:#edf4ff;padding:40px 16px 15px;margin:10px 0 24px;overflow-x:auto}
.main article .sdk-method-declaration:before,.main article .sdk-type-declaration:before {content:'Swift';position:absolute;left:16px;top:12px;font:12px/1.3 system-ui,sans-serif;color:#b4c8de}
.main article .sdk-method-declaration pre,.main article .sdk-type-declaration pre {border:0!important;box-shadow:none!important;padding:0!important;margin:0!important;background:transparent!important;color:#edf4ff!important;max-width:none!important;overflow:visible!important;white-space:pre!important}
.main article .sdk-method-declaration code,.main article .sdk-type-declaration code,.main article .sdk-method-declaration code span,.main article .sdk-type-declaration code span {background:transparent!important;color:#edf4ff!important;font:13px/1.65 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;white-space:pre!important}
.main article .sdk-method-declaration a.sdk-type-link,.main article .sdk-type-declaration a.sdk-type-link {color:#70d6ff!important;text-decoration:none!important;border-bottom:1px dotted #70d6ff;font:inherit!important}
.main article .sdk-method-declaration a.sdk-type-link:hover,.main article .sdk-type-declaration a.sdk-type-link:hover {color:#b8edff!important;border-bottom-style:solid}
.main article .sdk-method-declaration .sdk-copy {position:absolute;right:12px;top:8px;color:#d5e5f5;background:#31475e;border:1px solid #58708a;border-radius:5px;padding:3px 9px;font-size:12px;cursor:pointer}
.main article .sdk-usage-code {max-width:100%;overflow-x:auto;background:#f1f5f9;color:#263449;border:1px solid #d7e0eb;border-radius:8px;padding:14px 16px;box-sizing:border-box;white-space:pre}
.main article .sdk-usage-code code {background:transparent;color:inherit;white-space:pre}
.main article h1 {max-width:100%;overflow-wrap:anywhere}
@media(prefers-color-scheme:dark){.main article .method-list-entry .method-signature,.main article .sdk-usage-code{background:#263648!important;color:#f1f6fc!important;border-color:#40546b!important}}

/* Release 09: Overview-only inline API reference styles */
.main article .sdk-overview-ref code {font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;padding:.1em .28em;border-radius:4px;background:#eaf0f7;color:#263d57;white-space:normal}
.main article a.sdk-overview-ref {text-decoration:none!important;border-bottom:1px dotted #3973a8;color:#23639a}
.main article a.sdk-overview-ref:hover {border-bottom-style:solid;color:#174e82}
.main article a.sdk-overview-ref code {color:inherit}
@media(prefers-color-scheme:dark){.main article .sdk-overview-ref code {background:#2c4054;color:#8cd7ff}}

/* Release 12: uniform See Also links throughout the documentation */
.main article h2#see-also ~ ul a,.main article h2#see-also + ul a {text-decoration:none!important;border-bottom:0!important;}
.main article h2#see-also + ul a:hover,.main article h2#see-also + ul a:focus-visible {text-decoration:underline!important;}
.main article a:focus-visible {outline:2px solid currentColor;outline-offset:2px;}

.main article h2#see-also + ul a, .main article h2#see-also + ul a code {text-decoration:none!important;border-bottom:0!important;}

/* Release 13: unadorned cross-reference links, accessible hover/focus */
article h2#see-also + ul a,article h2#where-this-type-is-used + ul a {text-decoration:none!important;border-bottom:0!important;}
article h2#see-also + ul a:hover,article h2#where-this-type-is-used + ul a:hover,article h2#see-also + ul a:focus-visible,article h2#where-this-type-is-used + ul a:focus-visible{text-decoration:underline!important;}

/* Release 19: optional desktop sidebar resizing; existing mobile layout remains unchanged. */
@media (min-width: 1101px) {
 .layout {grid-template-columns:var(--st-user-sidebar-width,var(--st-sidebar-width)) minmax(0,1fr) var(--st-toc-width)!important;}
 .sidebar {position:sticky;}
 .st-sidebar-resizer {position:fixed;top:64px;bottom:0;width:12px;z-index:18;cursor:col-resize;touch-action:none;transform:translateX(-6px);background:transparent;}
 .st-sidebar-resizer:after {content:"";position:absolute;top:0;bottom:0;left:5px;width:2px;background:transparent;transition:background .12s;}
 .st-sidebar-resizer:hover:after,.st-sidebar-resizer:focus-visible:after,.st-sidebar-resizer.is-dragging:after {background:#2389c5;}
 .st-sidebar-resizer:focus-visible {outline:2px solid #2389c5;outline-offset:-2px;}
 body.st-sidebar-dragging {cursor:col-resize!important;user-select:none!important;}
 .sidebar .nav-link {overflow-wrap:normal!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
}
@media (min-width: 761px) and (max-width: 1100px) {
 .layout {grid-template-columns:var(--st-user-sidebar-width,var(--st-sidebar-width)) minmax(0,1fr)!important;}
 .st-sidebar-resizer {position:fixed;top:64px;bottom:0;width:12px;z-index:18;cursor:col-resize;touch-action:none;transform:translateX(-6px);}
 .st-sidebar-resizer:after {content:"";position:absolute;top:0;bottom:0;left:5px;width:2px;background:transparent;}
 .st-sidebar-resizer:hover:after,.st-sidebar-resizer:focus-visible:after,.st-sidebar-resizer.is-dragging:after {background:#2389c5;}
 body.st-sidebar-dragging {cursor:col-resize!important;user-select:none!important;}
 .sidebar .nav-link {overflow-wrap:normal!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
}
@media(max-width:760px){.st-sidebar-resizer{display:none!important}.layout{display:block!important}}

/* Release 20: keep sidebar resizing handle out of grid flow; prevent content wrapping beneath navigation. */
@media (min-width:761px) {
 .layout {display:grid!important;grid-auto-flow:row!important;align-items:start;}
 .layout > .sidebar {grid-column:1;grid-row:1;min-width:0;box-sizing:border-box;}
 .layout > .main {grid-column:2;grid-row:1;min-width:0;box-sizing:border-box;}
 .layout > .toc {grid-column:3;grid-row:1;min-width:0;}
 .sidebar .nav-link {white-space:normal!important;overflow-wrap:anywhere!important;text-overflow:clip!important;}
 .sidebar {overflow-y:auto!important;overflow-x:hidden!important;}
}
@media (min-width:761px) and (max-width:1100px) {.layout > .toc{display:none!important}}
@media(max-width:760px){.layout > .main{grid-column:auto;grid-row:auto}}

/* Release 21: constrain content to its grid cell and independent sidebar scrolling. */
@media(min-width:761px){.layout>.main{min-width:0;overflow-wrap:break-word}.layout>.sidebar{min-height:0;max-height:calc(100vh - 64px);overflow-y:auto!important;overscroll-behavior:contain}}

/* R25: restore Release 24 high-contrast API hyperlinks in dark Swift declarations. */
.main article .sdk-method-declaration pre a,
.main article .sdk-type-declaration pre a,
.main article .sdk-method-declaration pre a.sdk-type-link,
.main article .sdk-type-declaration pre a.sdk-type-link {
  color:#edf4ff!important;
  text-decoration:underline!important;
  text-underline-offset:2px;
  text-decoration-thickness:1px;
  border-bottom:0!important;
}
.main article .sdk-method-declaration pre a:hover,
.main article .sdk-type-declaration pre a:hover {color:#fff!important;}

/* R25 correction: API links in rendered Swift code blocks (not just SDK declaration wrappers). */
.main article pre code a.sdk-type-link,
.main article pre code a[href]:not([aria-hidden="true"]),
.main article .sourceCode pre a.sdk-type-link {
  color:#edf4ff!important;
  -webkit-text-fill-color:#edf4ff!important;
  text-decoration:underline!important;
  text-decoration-color:#edf4ff!important;
  text-underline-offset:2px;
  border-bottom:0!important;
}
.main article pre code a.sdk-type-link:hover,
.main article pre code a[href]:not([aria-hidden="true"]):hover {color:#fff!important;-webkit-text-fill-color:#fff!important;}

/* R25 visual parity: Overview and Usage Example blocks are light, unlike declarations. */
.main article pre.sdk-usage-code {background:#f1f5f9!important;color:#263449!important;border:1px solid #d7e0eb!important;border-radius:8px!important;padding:14px 16px!important;}
.main article pre.sdk-usage-code code,.main article pre.sdk-usage-code code span {background:transparent!important;color:#263449!important;-webkit-text-fill-color:#263449!important;}
.main article pre.sdk-usage-code a[href],.main article pre.sdk-usage-code code a[href],.main article pre.sdk-usage-code a.sdk-code-reference {color:#0b4f85!important;-webkit-text-fill-color:#0b4f85!important;text-decoration:underline!important;text-decoration-color:#0b4f85!important;text-underline-offset:2px!important;border-bottom:0!important;}
.main article pre.sdk-usage-code a[href]:hover {color:#1769aa!important;-webkit-text-fill-color:#1769aa!important;}

/* R25 parity: hyperlinks inside light Overview/Usage code examples override
   the general white-on-navy Swift declaration rule, including nested spans. */
.main article pre.sdk-usage-code :is(a[href], code a[href], code span a[href], a.sdk-code-reference, a.sdk-type-link),
.main article pre.sdk-usage-code :is(a[href], code a[href], code span a[href], a.sdk-code-reference, a.sdk-type-link) :is(span, code) {
  color:#0b4f85!important;
  -webkit-text-fill-color:#0b4f85!important;
  text-decoration:underline!important;
  text-decoration-color:#0b4f85!important;
  text-underline-offset:2px!important;
}
.main article pre.sdk-usage-code :is(a[href], a.sdk-code-reference, a.sdk-type-link):hover,
.main article pre.sdk-usage-code :is(a[href], a.sdk-code-reference, a.sdk-type-link):hover :is(span, code) {
  color:#1769aa!important;
  -webkit-text-fill-color:#1769aa!important;
}

/* R25: API protocol/type Overview signatures are declarations, not usage samples. */
.main article pre.sdk-api-signature,
.main article pre.sdk-api-signature code,
.main article pre.sdk-api-signature code span {
  background:#101b27!important;color:#edf4ff!important;
  -webkit-text-fill-color:#edf4ff!important;
}
.main article pre.sdk-api-signature {border:1px solid #34465b!important;border-radius:8px!important;padding:14px 16px!important;}
.main article pre.sdk-api-signature a[href],
.main article pre.sdk-api-signature a[href] span {
  color:#edf4ff!important;-webkit-text-fill-color:#edf4ff!important;
  text-decoration:underline!important;text-decoration-color:#edf4ff!important;
}

/* R25: consistent cyan SDK references in dark declaration/signature blocks.
   Light usage examples retain their separate blue-link treatment. */
.main article pre:not(.sdk-usage-code) a[href],
.main article pre:not(.sdk-usage-code) a[href] span,
.main article .sdk-method-declaration pre a[href],
.main article .sdk-type-declaration pre a[href] {
  color:#65d5f5!important;
  -webkit-text-fill-color:#65d5f5!important;
  text-decoration:underline!important;
  text-decoration-color:#65d5f5!important;
  text-underline-offset:2px!important;
  border-bottom:0!important;
}
.main article pre:not(.sdk-usage-code) a[href]:hover,
.main article pre:not(.sdk-usage-code) a[href]:hover span {
  color:#a9edff!important;
  -webkit-text-fill-color:#a9edff!important;
  text-decoration-color:#a9edff!important;
}

/* R25 unified link colors — final cascade, scoped by semantic block. */
.main article .sdk-method-declaration pre code a[href]:not([aria-hidden="true"]),
.main article .sdk-type-declaration pre code a[href]:not([aria-hidden="true"]),
.main article pre.sdk-api-signature code a[href]:not([aria-hidden="true"]),
.main article pre:not(.sdk-usage-code) code a.sdk-type-link,
.main article pre:not(.sdk-usage-code) code a.sdk-code-reference {
 color:#65d5f5!important;-webkit-text-fill-color:#65d5f5!important;
 text-decoration:underline!important;text-decoration-color:#65d5f5!important;
 text-underline-offset:2px!important;
}
.main article pre.sdk-usage-code code a[href]:not([aria-hidden="true"]) {
 color:#0b4f85!important;-webkit-text-fill-color:#0b4f85!important;
 text-decoration:underline!important;text-decoration-color:#0b4f85!important;
}
