/* Page layout uses shared TradesViz tokens. Controls inherit Account Settings utility classes. */
.papi {
    --papi-bg:var(--tv-bg-card,#fff);
    --papi-soft:var(--tv-bg-header,#f9fafb);
    --papi-hover:var(--tv-bg-hover,#f3f4f6);
    --papi-border:var(--tv-border,#e5e7eb);
    --papi-text:var(--tv-text-primary,#111827);
    --papi-muted:var(--tv-text-muted,#6b7280);
    --papi-accent:var(--tv-accent,#2563eb);
    --papi-accent-soft:var(--tv-bg-selected,#eff6ff);
    max-width:1240px;
    margin:14px auto 48px;
    color:var(--papi-text);
    font-size:14px;
    line-height:1.5;
}

.papi [hidden] {
    display:none!important;
}

.papi * {
    box-sizing:border-box;
}

.papi h1,.papi h2,.papi h3,.papi p {
    margin:0;
}

.papi h1 {
    font-size:30px;
    line-height:1.25;
    font-weight:700;
    letter-spacing:-.025em;
    margin:7px 0 10px;
}

.papi h2 {
    font-size:18px;
    font-weight:650;
    line-height:1.4;
}

.papi h3 {
    font-size:15px;
    font-weight:650;
}

.papi-tabs {
    display:flex;
    flex-wrap:wrap;
    gap:4px 20px;
    border-bottom:1px solid var(--papi-border);
    margin-bottom:24px;
}

.papi-tabs a {
    padding:12px 4px;
    border-bottom:3px solid transparent;
    color:var(--papi-muted);
    text-decoration:none;
    font-weight:600;
}

.papi-tabs a:hover {
    color:var(--papi-text);
}

.papi-tabs a[aria-current="page"] {
    color:var(--papi-accent);
    border-bottom-color:var(--papi-accent);
}

.papi-tabs a:focus-visible {
    outline:2px solid var(--papi-accent);
    outline-offset:3px;
    border-radius:3px;
}

.papi h3.papi-permissions-title {
    margin-top:24px;
}

.papi-fieldset.papi-permission-group {
    margin-top:16px;
    padding-top:8px;
    border-top:1px solid var(--papi-border);
}

.papi-permission-group > .papi-label {
    margin:0;
    padding-right:8px;
}

.papi-permission-group > .papi-account-choice {
    align-items:flex-start;
    padding:8px 12px;
}

.papi-permission-group > .papi-account-choice > input {
    margin-top:3px;
    flex-shrink:0;
}

.papi-permission-group code {
    font-size:12px;
    overflow-wrap:anywhere;
}

#papi-create-form {
    container-type:inline-size;
}

.papi-permission-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:16px;
    margin-bottom:20px;
}

.papi-permission-grid > .papi-permission-group {
    min-width:0;
}

.papi-permission-wide {
    grid-column:1 / -1;
}

.papi-permission-grid > .papi-permission-group:last-child {
    border-left:1px solid var(--papi-border);
    padding-left:16px;
}

@container (max-width:440px) {
    .papi-permission-grid {
        grid-template-columns:minmax(0,1fr);
    }

    .papi-permission-grid > .papi-permission-group:last-child {
        border-left:0;
        padding-left:0;
    }
}

.papi p+p {
    margin-top:8px;
}

.papi-header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-bottom:23px;
}

.papi-eyebrow {
    font-size:12px;
    font-weight:600;
    letter-spacing:.05em;
    text-transform:uppercase;
    color:var(--papi-muted);
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:12px;
}

.papi-lead {
    max-width:720px;
    color:var(--papi-muted);
}

.papi-connection-methods {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px 24px;
    margin-top:12px;
}

.papi-connection-methods p {
    margin-top:6px;
    color:var(--papi-muted);
}

.papi .papi-access-policy {
    margin-top:16px;
    padding-top:12px;
    border-top:1px solid var(--papi-border);
}

.papi-badge {
    display:inline-flex;
    align-items:center;
    border:1px solid var(--papi-border);
    border-radius:4px;
    padding:2px 8px;
    font-size:12px;
    font-weight:500;
    white-space:nowrap;
    background:var(--papi-soft);
}

.papi-badge-read {
    color:#087c63;
    background:#ecfdf5;
    border-color:#b9e8d8;
}

.dark .papi-badge-read {
    color:#83e5bd;
    background:#173a35;
    border-color:#306055;
}

.papi-endpoint {
    display:flex;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
    padding:11px 0 17px;
    border-bottom:1px solid var(--papi-border);
}

.papi-endpoint code {
    overflow-wrap:anywhere;
    min-width:0;
}

.papi-endpoint > .papi-button {
    margin-left:auto;
}

.papi-muted,.papi-help {
    color:var(--papi-muted);
}

.papi-help {
    font-size:14px;
    line-height:1.5;
    margin-top:8px!important;
}

.papi-status {
    font-size:14px;
    min-height:44px;
    padding:12px 0;
}

.papi-status[data-tone=error] {
    color:#c13542;
}

.dark .papi-status[data-tone=error] {
    color:#ff9aa4;
}

.papi-status[data-tone=success] {
    color:#087c63;
}

.dark .papi-status[data-tone=success] {
    color:#83e5bd;
}

.papi-grid {
    display:grid;
    grid-template-columns:minmax(0,5fr) minmax(0,6fr);
    gap:20px;
}

.papi-card {
    min-width:0;
    background:var(--papi-bg);
    border:1px solid var(--papi-border);
    border-radius:8px;
    padding:20px;
}

.papi-card-heading {
    display:flex;
    align-items:flex-start;
    gap:11px;
    margin-bottom:20px;
}

.papi-card-heading>div {
    flex:1;
    min-width:0;
}

.papi-card-heading p {
    color:var(--papi-muted);
    font-size:14px;
    margin-top:4px;
}

.papi-step {
    height:28px;
    width:28px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:none;
    color:var(--papi-accent);
    font-size:11px;
    font-weight:700;
    background:var(--papi-accent-soft);
    border-radius:7px;
    margin-top:1px;
}

.papi-label {
    display:block;
    font-size:14px;
    font-weight:500;
    margin:16px 0 8px;
}

.papi-input {
    width:100%;
}

.papi-fieldset {
    border:0;
    padding:0;
    margin:0;
}

.papi-account-choices {
    border:1px solid var(--papi-border);
    border-radius:8px;
    max-height:200px;
    overflow:auto;
    padding:4px 0;
    min-height:56px;
    background:var(--papi-soft);
}

.papi-account-choices>p {
    padding:10px 12px;
}

.papi-account-choice {
    display:flex;
    align-items:center;
    gap:10px;
    padding:10px 12px;
    cursor:pointer;
    font-size:14px;
}

.papi-account-choice:hover {
    background:var(--papi-hover);
}

.papi-account-choice span {
    overflow-wrap:anywhere;
}

.papi-scopes {
    display:flex;
    gap:6px;
    flex-wrap:wrap;
    margin:16px 0;
}

.papi-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:none;
    min-width:0;
    gap:8px;
}

.papi-actions {
    display:flex;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
    margin-top:16px;
}

.papi-actions .papi-label {
    margin:0;
    flex:1;
}

.papi-create-actions {
    justify-content:flex-end;
    margin-top:24px;
    padding-top:20px;
    border-top:1px solid var(--papi-border);
}

.papi-responsibility {
    flex-basis:100%;
    min-width:0;
    color:var(--papi-muted);
    font-size:14px;
    line-height:1.5;
}

.papi-responsibility strong {
    color:var(--papi-text);
}

.papi-responsibility a {
    color:var(--papi-accent);
    text-decoration:underline;
    text-underline-offset:2px;
}

.papi-write-access {
    margin-bottom:20px;
}

.papi-write-access .papi-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    margin-top:20px;
    gap:24px;
}

.papi-write-access .papi-grid > div {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
}

.papi-write-access .papi-actions {
    align-self:stretch;
    justify-content:flex-end;
    margin-top:auto;
    padding-top:16px;
}

.papi-write-access code {
    overflow-wrap:anywhere;
}

.papi-reveal {
    background:var(--papi-soft);
    border:1px solid var(--papi-border);
    border-radius:8px;
    padding:16px;
    margin-bottom:16px;
}

.papi-reveal>p {
    font-size:14px;
    margin:8px 0 12px;
}

.papi-mono,.papi code,.papi-code {
    font-family:var(--tv-font-mono,ui-monospace,SFMono-Regular,Consolas,monospace);
}

.papi-key-list {
    max-height:none;
    overflow:visible;
}

.papi-key-row {
    display:flex;
    align-items:flex-start;
    gap:12px;
    padding:14px 0;
    border-bottom:1px solid var(--papi-border);
}

.papi-key-row:first-child {
    padding-top:0;
}

.papi-key-row:last-child {
    border-bottom:0;
}

.papi-key-detail {
    flex:1;
    min-width:0;
}

.papi-key-name {
    font-weight:650;
    overflow-wrap:anywhere;
}

.papi-key-meta {
    font-size:12px;
    color:var(--papi-muted);
    margin-top:4px!important;
}

.papi-key-prefix {
    font-size:12px;
    overflow-wrap:anywhere;
}

.papi-key-status {
    font-size:12px;
    display:inline-flex;
    padding:2px 6px;
    border:1px solid var(--papi-border);
    border-radius:4px;
    margin-left:8px;
    font-weight:500;
    color:var(--papi-muted);
}

.papi-key-status-active {
    color:#166534;
    background:#f0fdf4;
    border-color:#bbf7d0;
}

.papi-key-status-revoked {
    color:#991b1b;
    background:#fef2f2;
    border-color:#fecaca;
}

.papi-key-status-expired {
    color:#92400e;
    background:#fffbeb;
    border-color:#fde68a;
}

.dark .papi-key-status-active {
    color:#86efac;
    background:#143528;
    border-color:#286348;
}

.dark .papi-key-status-revoked {
    color:#fca5a5;
    background:#401f28;
    border-color:#7f3545;
}

.dark .papi-key-status-expired {
    color:#fcd34d;
    background:#3c301c;
    border-color:#785d29;
}

.papi-empty {
    padding:35px 15px;
    text-align:center;
    color:var(--papi-muted);
    background:var(--papi-soft);
    border:1px dashed var(--papi-border);
    border-radius:6px;
}

.papi-connections { margin-bottom:20px; }
.papi-connections-heading,.papi-connection-row { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.papi-connections-heading { align-items:center; flex-wrap:wrap; }
.papi-connections-list { max-height:540px; overflow:auto; scrollbar-width:thin; scrollbar-gutter:stable; margin-top:16px; }
.papi-connection-row { padding:18px 0; border-bottom:1px solid var(--papi-border); }
.papi-connection-row:first-child { padding-top:0; }
.papi-connection-row:last-child { border-bottom:0; }
.papi-connection-details { margin-top:12px; }
.papi-connection-details summary { cursor:pointer; color:var(--papi-text); font-weight:600; }
.papi-connection-details h4 { margin:12px 0 6px; font-size:13px; }
.papi-connection-accounts,.papi-connection-scopes { display:flex; flex-wrap:wrap; gap:6px; list-style:none; margin:0; padding:0; }
.papi-connection-accounts li,.papi-connection-scopes li { font-size:12px; padding:4px 8px; border:1px solid var(--papi-border); border-radius:4px; background:var(--papi-soft); overflow-wrap:anywhere; max-width:100%; }
.papi-disconnect-button { color:#b91c1c; background:transparent; border:1px solid #fca5a5; border-radius:8px; padding:10px 16px; font-weight:600; flex-shrink:0; }
.papi-disconnect-button:hover { background:#fef2f2; }
.dark .papi-disconnect-button { color:#fca5a5; border-color:#7f3545; }
.dark .papi-disconnect-button:hover { background:#401f28; }
.papi-disconnect-dialog { color:var(--papi-text); background:var(--papi-bg); border:1px solid var(--papi-border); border-radius:12px; padding:24px; width:min(520px, calc(100vw - 32px)); max-height:calc(100dvh - 32px); overflow:auto; margin:auto; }
.papi-disconnect-dialog::backdrop { background:rgb(15 23 42 / 50%); }
.papi-disconnect-actions { justify-content:space-between; margin-top:24px; gap:12px; }
.papi-connections [data-tone="error"] { color:#b91c1c; }
.papi-connections [data-tone="success"] { color:#087c63; }
.papi-connections button:focus-visible,.papi-connections summary:focus-visible,.papi-connections-list:focus-visible { outline:2px solid #2563eb; outline-offset:3px; }
@media (max-width:600px) { .papi-connection-row { flex-direction:column; gap:12px; } .papi-connection-row > button { align-self:flex-end; } }

.papi-playground {
    margin-top:20px;
}

.papi-token-row {
    display:flex;
    gap:8px;
}

.papi-token-row .papi-input {
    min-width:0;
}

.papi-request-fields {
    display:grid;
    grid-template-columns:minmax(0,1fr) 130px;
    gap:14px;
    max-width:580px;
}

.papi-response-heading {
    display:flex;
    justify-content:space-between;
    gap:12px;
    align-items:center;
    margin-top:22px;
    background:var(--papi-soft);
    border:1px solid var(--papi-border);
    border-radius:6px 6px 0 0;
    padding:10px 13px;
}

.papi-response-heading>span {
    font-size:10px;
    color:var(--papi-muted);
    font-weight:650;
    letter-spacing:.08em;
    flex:none;
}

.papi-response-heading>code {
    font-size:11px;
    overflow-wrap:anywhere;
}

.papi-code {
    font-size:12px;
    line-height:1.75;
    white-space:pre;
    overflow:auto;
    background:var(--papi-soft);
    color:var(--papi-text);
    border:1px solid var(--papi-border);
    padding:16px;
    border-radius:6px;
    margin:12px 0;
}

.papi-response {
    min-height:140px;
    max-height:480px;
    border-top:0;
    border-radius:0 0 6px 6px;
    margin:0;
}

.papi-sr-only {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
}

.papi-doc-layout {
    display:grid;
    grid-template-columns:175px minmax(0,1fr);
    gap:32px;
    margin-top:28px;
}

.papi-doc-layout > div {
    min-width:0;
}

.papi-doc-section pre {
    max-width:100%;
    overflow:auto;
}

.papi-doc-nav {
    align-self:start;
    position:sticky;
    top:20px;
    display:flex;
    flex-direction:column;
    border-left:1px solid var(--papi-border);
}

.papi-doc-nav a {
    font-size:14px;
    padding:8px 14px;
    text-decoration:none;
    color:var(--papi-muted);
}

.papi-doc-nav a:hover {
    color:var(--papi-text);
    background:var(--papi-hover);
}

.papi-doc-section {
    scroll-margin-top:25px;
    margin-bottom:35px;
    overflow-wrap:anywhere;
}

.papi-doc-section h2 {
    font-size:20px;
    border-bottom:1px solid var(--papi-border);
    padding-bottom:10px;
    margin-bottom:13px;
}

.papi-doc-section h3 {
    margin:20px 0 8px;
}

.papi-doc-section p {
    color:var(--papi-muted);
    margin-bottom:10px;
}

.papi-doc-section ul,.papi-doc-section ol {
    padding-left:21px;
    list-style:disc;
    color:var(--papi-muted);
    margin:10px 0;
}

.papi-doc-section ol {
    list-style:decimal;
}

.papi-doc-section li {
    padding:3px 0;
}

.papi-doc-section code:not(.papi-code code) {
    font-size:.9em;
}

.papi-table-wrap {
    overflow:auto;
    border:1px solid var(--papi-border);
    border-radius:7px;
    margin:12px 0;
}

.papi-table {
    width:100%;
    border-collapse:collapse;
    text-align:left;
    font-size:14px;
}

.papi-table th {
    background:var(--papi-soft);
    font-weight:650;
}

.papi-table th,.papi-table td {
    padding:10px 12px;
    vertical-align:top;
    border-bottom:1px solid var(--papi-border);
}

.papi-table-wrap:focus-visible {
    outline:2px solid var(--papi-accent);
    outline-offset:3px;
}

.papi-operation-table {
    table-layout:fixed;
}

.papi-operation-table th:first-child {
    width:34%;
}

.papi-operation-table th:nth-child(2) {
    width:22%;
}

.papi-operation-table th,.papi-operation-table td {
    overflow-wrap:anywhere;
}

.papi-operation-table th {
    vertical-align:middle;
}

.papi-table tr:last-child td {
    border-bottom:0;
}

.papi-table td:last-child {
    color:var(--papi-muted);
}

.papi-doc-method {
    font-size:11px;
    font-weight:700;
    color:#087c63;
    margin-right:9px;
}

.dark .papi-doc-method {
    color:#83e5bd;
}

.papi-footer-note {
    font-size:14px;
    color:var(--papi-muted);
    border-top:1px solid var(--papi-border);
    padding-top:16px;
}

.papi-trade-selection-heading {
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:12px;
    margin-top:20px;
    margin-bottom:12px;
}

.papi-trade-selection-heading .papi-label {
    margin:0;
}

@media(max-width:800px) {
    .papi-connection-methods {
        grid-template-columns:1fr;
    }

    .papi-operation-table {
        min-width:640px;
    }

    .papi-grid,.papi-write-access .papi-grid {
        grid-template-columns:1fr;
    }

    .papi-header {
        align-items:flex-start;
        flex-direction:column;
    }

    .papi-doc-layout {
        grid-template-columns:minmax(0,1fr);
        gap:20px;
    }

    .papi-doc-nav {
        position:static;
        flex-direction:row;
        flex-wrap:wrap;
        border-left:0;
        border-bottom:1px solid var(--papi-border);
        padding-bottom:12px;
    }

    .papi-doc-nav a {
        padding:5px 10px;
    }

    .papi-card {
        padding:17px;
    }

    .papi h1 {
        font-size:26px;
    }

    .papi-response-heading {
        align-items:flex-start;
        flex-direction:column;
    }

    .papi-request-fields {
        grid-template-columns:minmax(0,1fr) 95px;
    }

    .papi {
        margin-top:10px;
    }

    .papi-key-row {
        gap:8px;
    }

}

@media(max-width:420px) {
    .papi-request-fields {
        grid-template-columns:1fr;
        gap:0;
    }

    .papi-token-row {
        align-items:flex-start;
        flex-direction:column;
    }

    .papi-card-heading {
        flex-wrap:wrap;
    }

    .papi-key-row {
        flex-wrap:wrap;
    }

}
