* { box-sizing: border-box; }
[hidden] { display: none !important; }
:root { color-scheme: light; }
body { margin: 0; background: var(--bg); color: var(--ink); font: var(--fs-md)/1.6 var(--font); }
a { color: var(--violet); text-decoration: none; }
a:hover { text-decoration: underline; }
button, input, select, textarea { font: inherit; }
button:focus-visible, a:focus-visible, [tabindex]:focus-visible { outline: 3px solid var(--violet); outline-offset: 4px; }
.icon { flex: 0 0 auto; vertical-align: middle; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: var(--sp-8); top: -80px; padding: var(--sp-5) var(--sp-6); background: var(--surface); z-index: 10; border: 1px solid var(--line); border-radius: var(--r-sm); }
.skip-link:focus { top: var(--sp-6); }
.portal-sidebar { position: fixed; inset: 0 auto 0 0; width: 230px; display: flex; flex-direction: column; padding: var(--sp-9) var(--sp-7); border-right: 1px solid var(--line); background: var(--surface-2); }
.brand { display: inline-flex; align-items: center; margin-bottom: var(--sp-5); width: fit-content; }
.brand img { display: block; max-width: 100%; }
.sidebar-caption { margin: 0 0 var(--sp-6); color: var(--ink-2); font-size: var(--fs-sm); }
.chip { display: inline-flex; align-items: center; width: fit-content; border-radius: 99px; padding: var(--sp-2) var(--sp-4); font-size: var(--fs-xs); font-weight: var(--fw-med); line-height: 1; }
.portal-nav { display: flex; flex-direction: column; gap: var(--sp-2); margin-top: var(--sp-9); }
.nav-item { display: flex; align-items: center; gap: var(--sp-5); padding: var(--sp-5); border-radius: var(--r-sm); color: var(--ink-2); font-weight: var(--fw-med); transition: background 0.16s; }
.nav-item:hover { background: var(--surface-3); color: var(--ink); text-decoration: none; }
.nav-item.active { background: var(--surface); color: var(--violet); box-shadow: var(--shadow); }
.sidebar-bottom { margin-top: auto; padding-top: var(--sp-9); display: flex; flex-direction: column; gap: var(--sp-7); }
.download-link, .site-link { display: inline-flex; align-items: center; gap: var(--sp-4); font-size: var(--fs-sm); color: var(--ink-2); }
.site-link { color: var(--ink-3); font-size: var(--fs-xs); }
.site-link .icon { width: 14px; height: 14px; }
.portal-main { margin-left: 230px; max-width: 1380px; min-height: calc(100vh - 88px); padding: 48px 56px var(--sp-9); }
.page-eyebrow { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-6); font-size: var(--fs-sm); color: var(--ink-3); margin-bottom: var(--sp-8); }
.hero { margin-bottom: var(--sp-9); max-width: 670px; }
h1, h2, h3, p { margin-top: 0; }
.hero h1 { font-size: clamp(40px, 4.7vw, 62px); font-weight: var(--fw-bold); letter-spacing: -0.045em; line-height: 1.08; margin-bottom: var(--sp-7); }
.hero h1 span { color: var(--violet); }
.hero-lead { font-size: 18px; color: var(--ink-2); line-height: 1.65; max-width: 620px; margin-bottom: var(--sp-8); }
.hero-actions { display: flex; flex-wrap: wrap; gap: var(--sp-5); }
.btn { min-height: 42px; text-decoration: none; }
.btn:hover { text-decoration: none; }
.btn-primary, .btn-primary:hover:not(:disabled) { box-shadow: none; background: var(--violet); }
.card { box-shadow: none; }
.endpoint-card { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-6); padding: var(--sp-7) var(--sp-8); margin-bottom: 44px; }
.copy-status { flex-basis: 100%; margin: 0; color: var(--ink-2); font-size: var(--fs-sm); line-height: 1.6; }
.endpoint-card h2 { font-size: var(--fs-xs); color: var(--ink-3); font-weight: var(--fw-med); margin: 0 0 var(--sp-2); }
.endpoint-card code { font-size: var(--fs-xl); color: var(--ink); overflow-wrap: anywhere; }
code, pre { font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace; }
.section-heading { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: var(--sp-3); margin-bottom: var(--sp-6); }
.section-heading h2, .resources-section h2 { margin-bottom: 0; font-size: var(--fs-2xl); font-weight: var(--fw-semi); letter-spacing: -0.02em; }
.section-heading > span { color: var(--ink-3); font-size: var(--fs-xs); }
.check-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-6); }
.check-card { position: relative; display: flex; flex-direction: column; padding: var(--sp-7); min-width: 0; }
.step-icon { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: var(--r-s); background: var(--surface-2); color: var(--violet); margin-bottom: var(--sp-6); }
.step-number { position: absolute; top: var(--sp-7); right: var(--sp-7); color: var(--ink-3); font-size: var(--fs-xs); margin: 0; }
.check-card h3 { font-size: var(--fs-xl); letter-spacing: -0.015em; margin: 0 0 var(--sp-3); font-weight: var(--fw-semi); }
.check-card p:not(.step-number) { color: var(--ink-2); font-size: var(--fs-sm); margin-bottom: var(--sp-7); line-height: 1.6; flex: 1; }
.method-line { display: flex; align-items: center; gap: var(--sp-3); font-size: 11px; color: var(--ink-2); border-top: 1px solid var(--line-soft); padding-top: var(--sp-5); overflow-wrap: anywhere; }
.method { font-family: var(--font); font-size: 10px; font-weight: var(--fw-bold); letter-spacing: 0.04em; }
.method.post { color: var(--violet); }
.method.get { color: var(--ink-green); }
.environment-note { display: flex; align-items: flex-start; gap: var(--sp-6); padding: var(--sp-7) var(--sp-8); margin: var(--sp-8) 0 40px; background: var(--surface-2); }
.note-icon { color: var(--violet); padding-top: var(--sp-1); }
.environment-note h2 { font-size: var(--fs-md); font-weight: var(--fw-semi); margin: 0 0 var(--sp-2); }
.environment-note p { font-size: var(--fs-sm); color: var(--ink-2); margin: 0; line-height: 1.65; }
.resources-section h2 { margin-bottom: var(--sp-6); }
.resource-row { display: flex; align-items: center; gap: var(--sp-6); padding: var(--sp-6) 0; color: var(--ink); border-top: 1px solid var(--line); }
.resource-row:hover { text-decoration: none; color: var(--violet); }
.resource-row > span:nth-child(2) { flex: 1; min-width: 0; }
.resource-row strong, .resource-row small { display: block; }
.resource-row strong { font-size: var(--fs-md); font-weight: var(--fw-med); }
.resource-row small { color: var(--ink-3); font-size: var(--fs-xs); margin-top: var(--sp-1); }
.resource-icon { color: var(--ink-2); }
.resource-row > .icon { color: var(--ink-3); }
.portal-footer { margin-left: 230px; padding: var(--sp-8) 56px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--sp-6); color: var(--ink-3); font-size: var(--fs-xs); border-top: 1px solid var(--line-soft); }
.portal-footer a { color: var(--ink-2); }
.page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-6); margin-bottom: var(--sp-8); }
.page-header h1 { font-size: 36px; letter-spacing: -0.035em; line-height: 1.2; margin: 0 0 var(--sp-4); }
.page-header p { color: var(--ink-2); max-width: 630px; margin: 0; }
.readonly-note { display: flex; align-items: center; gap: var(--sp-5); padding: var(--sp-5) var(--sp-6); border-radius: var(--r-sm); background: var(--surface-2); margin-bottom: var(--sp-8); color: var(--ink-2); font-size: var(--fs-sm); }
.readonly-note p { margin: 0; }
.load-status { color: var(--ink-2); padding: var(--sp-7) 0; }
.guide-content { max-width: 850px; color: var(--ink-2); font-size: var(--fs-md); line-height: 1.85; }
.guide-content h1 { display: none; }
.guide-content h2 { color: var(--ink); font-size: var(--fs-2xl); letter-spacing: -0.025em; margin: 40px 0 var(--sp-6); padding-top: var(--sp-4); }
.guide-content p, .guide-content ul, .guide-content ol { margin-bottom: var(--sp-6); }
.guide-content li { margin-bottom: var(--sp-3); }
.guide-content code { font-size: 0.9em; color: var(--ink); padding: 2px 5px; background: var(--surface-2); border-radius: 4px; overflow-wrap: anywhere; }
.guide-content pre { background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--r-sm); padding: var(--sp-7); overflow-x: auto; line-height: 1.7; margin: var(--sp-6) 0 var(--sp-7); color: var(--ink); }
.guide-content pre code { padding: 0; background: none; overflow-wrap: normal; font-size: var(--fs-xs); }
.guide-content table { display: block; width: 100%; overflow-x: auto; border-collapse: collapse; font-size: var(--fs-sm); }
.guide-content td, .guide-content th { padding: var(--sp-5); text-align: left; border-bottom: 1px solid var(--line); }
#swagger-ui { min-width: 0; }
.swagger-ui { font-family: var(--font); color: var(--ink); }
.swagger-ui .wrapper { max-width: none; padding: 0; }
.swagger-ui .information-container, .swagger-ui .scheme-container, .swagger-ui .auth-wrapper, .swagger-ui .authorization__btn, .swagger-ui .btn.authorize { display: none; }
.swagger-ui .opblock-tag { font-family: var(--font); font-size: var(--fs-2xl); color: var(--ink); border-bottom: 1px solid var(--line); }
.swagger-ui .opblock { border-radius: var(--r-sm); box-shadow: none; overflow: hidden; margin-bottom: var(--sp-5); }
.swagger-ui .opblock .opblock-summary { padding: var(--sp-4); align-items: center; }
.swagger-ui .opblock .opblock-summary-method { border-radius: var(--r-s); box-shadow: none; font-size: var(--fs-xs); padding: var(--sp-2) var(--sp-5); }
.swagger-ui .opblock.opblock-post, .swagger-ui .opblock.opblock-get { border-color: var(--line-strong); background: var(--surface); }
.swagger-ui .opblock.opblock-post .opblock-summary, .swagger-ui .opblock.opblock-get .opblock-summary { border-color: var(--line); }
.swagger-ui .opblock.opblock-post .opblock-summary-method { background: var(--violet); }
.swagger-ui .opblock.opblock-get .opblock-summary-method { background: var(--ink-green); }
.swagger-ui .opblock .opblock-summary-path { font-size: var(--fs-sm); overflow-wrap: anywhere; max-width: 100%; color: var(--ink); }
.swagger-ui .opblock-summary-description { font-family: var(--font); color: var(--ink-2); font-size: var(--fs-xs); }
.swagger-ui .opblock-description-wrapper p, .swagger-ui .opblock-description-wrapper li, .swagger-ui .response-col_description { font-family: var(--font); font-size: var(--fs-sm); line-height: 1.7; color: var(--ink-2); }
.swagger-ui .opblock .opblock-section-header { box-shadow: none; background: var(--surface-2); border-color: var(--line); }
.swagger-ui .opblock-body pre, .swagger-ui .highlight-code { border-radius: var(--r-s); }
.swagger-ui .opblock-body { padding: var(--sp-3) 0; }
.swagger-ui section.models { border: 1px solid var(--line); border-radius: var(--r-sm); }
.swagger-ui .model-container { background: var(--surface-2); border-radius: var(--r-s); }
.swagger-ui .model-title, .swagger-ui .model { color: var(--ink-2); }
.swagger-ui .model-box-control:focus-visible, .swagger-ui button:focus-visible { outline: 2px solid var(--violet); outline-offset: 2px; }
.swagger-ui .opblock-summary-control:focus:not(:focus-visible) { outline: none; }
.swagger-ui .opblock-summary-control:focus-visible { outline: 2px solid var(--violet); outline-offset: 2px; }
.swagger-ui table { table-layout: auto; }
.swagger-ui table.parameters .parameters-col_name { width: 180px; min-width: 150px; }
.swagger-ui table.parameters .parameters-col_description { width: auto; }
.swagger-ui td, .swagger-ui th { overflow-wrap: anywhere; }
.swagger-ui .responses-table .response-col_status { width: 66px; }
.swagger-ui .responses-table .response-col_description { width: auto; }
.swagger-ui .responses-table .response-col_links { width: 160px; min-width: 130px; }
.swagger-ui input, .swagger-ui textarea, .swagger-ui select { max-width: 100%; }
.swagger-ui select { min-height: 40px; padding: var(--sp-3) var(--sp-9) var(--sp-3) var(--sp-5); border: 1px solid var(--line-strong); border-radius: var(--r-s); background-color: var(--surface); color: var(--ink-2); font-family: var(--font); font-size: var(--fs-sm); font-weight: var(--fw-med); box-shadow: none; }
.swagger-ui .response-col_links pre { white-space: pre-wrap; overflow-wrap: anywhere; }
.swagger-ui .highlight-code, .swagger-ui .highlight-code pre { max-width: 100%; overflow-x: auto; }
.swagger-ui svg { flex-shrink: 0; }
@media (max-width: 1100px) {
.swagger-ui table.parameters, .swagger-ui .responses-table { display: block; width: 100%; }
.swagger-ui table.parameters thead, .swagger-ui .responses-table thead { display: none; }
.swagger-ui table.parameters tbody, .swagger-ui .responses-table tbody { display: block; width: 100%; }
.swagger-ui table.parameters tbody > tr, .swagger-ui .responses-table tbody > tr { display: block; padding: var(--sp-6) 0; border-bottom: 1px solid var(--line); }
.swagger-ui table.parameters tbody > tr > td, .swagger-ui .responses-table tbody > tr > td { display: block; width: 100%; min-width: 0; padding: 0; }
.swagger-ui table.parameters .parameters-col_name { width: 100%; min-width: 0; padding: 0; margin-bottom: var(--sp-5); }
.swagger-ui table.parameters .parameters-col_description { width: 100%; padding: 0; }
.swagger-ui .responses-table .response-col_status { margin-bottom: var(--sp-5); font-size: var(--fs-xl); font-weight: var(--fw-semi); }
.swagger-ui .responses-table .response-col_links { width: 100%; min-width: 0; margin-top: var(--sp-5); }
.swagger-ui .response-controls { flex-direction: column; gap: var(--sp-5); }
.swagger-ui .response-control-media-type, .swagger-ui .response-control-examples { width: 100%; min-width: 0; }
.swagger-ui .response-controls select { width: 100%; min-width: 0; }
}
@media (max-width: 1150px) {
.portal-main { padding: 40px var(--sp-9); }
.portal-footer { padding: var(--sp-8) var(--sp-9); }
.check-grid { grid-template-columns: 1fr; }
.check-card { padding-right: 100px; }
.method-line { max-width: 300px; }
.hero h1 { font-size: 48px; }
}
@media (max-width: 760px) {
.portal-sidebar { position: static; width: 100%; padding: var(--sp-7) var(--sp-6) var(--sp-6); border-right: 0; border-bottom: 1px solid var(--line); }
.brand { margin: 0; }
.sidebar-caption, .portal-sidebar > .chip { display: none; }
.portal-nav { flex-direction: row; flex-wrap: wrap; gap: var(--sp-2); margin-top: var(--sp-6); }
.nav-item { padding: var(--sp-4); font-size: var(--fs-sm); gap: var(--sp-3); }
.nav-item .icon { width: 17px; height: 17px; }
.sidebar-bottom { display: none; }
.portal-main { margin-left: 0; padding: var(--sp-8) var(--sp-6); }
.portal-footer { margin-left: 0; padding: var(--sp-7) var(--sp-6); }
.hero h1 { font-size: 42px; }
.hero-lead { font-size: var(--fs-xl); }
.endpoint-card { flex-wrap: wrap; padding: var(--sp-6); margin-bottom: var(--sp-9); }
.endpoint-card code { font-size: var(--fs-sm); }
.check-card { padding: var(--sp-7); }
.environment-note { padding: var(--sp-6); }
.page-header { flex-direction: column; }
.page-header h1 { font-size: 30px; }
.page-eyebrow { margin-bottom: var(--sp-7); }
.swagger-ui .opblock-tag { display: grid; grid-template-columns: minmax(0, 1fr) 44px; column-gap: var(--sp-3); row-gap: var(--sp-3); padding: var(--sp-5) 0 var(--sp-6); }
.swagger-ui .opblock-tag > a { grid-column: 1; grid-row: 1; align-self: center; }
.swagger-ui .opblock-tag > small { grid-column: 1 / -1; grid-row: 2; padding: 0; margin: 0; font-size: var(--fs-sm); line-height: 1.6; }
.swagger-ui .opblock-tag > small p { margin: 0; }
.swagger-ui .opblock-tag > button { grid-column: 2; grid-row: 1; width: 44px; height: 44px; }
.swagger-ui .opblock .opblock-summary { position: relative; display: block; padding: var(--sp-6); }
.swagger-ui .opblock-summary-control { flex-direction: column; align-items: flex-start; gap: var(--sp-5); min-width: 0; width: 100%; text-align: left; }
.swagger-ui .opblock-summary-path-description-wrapper { flex-direction: column; align-items: flex-start; gap: var(--sp-3); min-width: 0; width: 100%; }
.swagger-ui .opblock .opblock-summary-path { font-size: var(--fs-xs); line-height: 1.7; }
.swagger-ui .opblock-summary-description { margin: 0; line-height: 1.6; }
.swagger-ui .opblock-control-arrow { position: absolute; top: var(--sp-4); right: var(--sp-4); width: 44px; height: 44px; }
.swagger-ui .opblock-summary > .copy-to-clipboard { position: absolute; top: var(--sp-7); right: 65px; }
}
