html {
    box-sizing: border-box;
    overflow: -moz-scrollbars-vertical;
    overflow-y: scroll;
}

*,
*:before,
*:after {
    box-sizing: inherit;
}

:root{
    --sw-bg: #f6f8fa;
    --sw-primary: #0b6e63; /* teal primary */
    --sw-accent: #0a7a5a;
    --sw-surface: #ffffff;
    --sw-muted: #6b7280;
    --sw-shadow: 0 6px 18px rgba(15,23,42,0.06);
}

body {
    margin: 0;
    background: linear-gradient(180deg, #fbfcfd 0%, var(--sw-bg) 100%);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
    color: #111827;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Topbar */
.topbar {
    background: var(--sw-primary) !important;
    color: white !important;
    box-shadow: var(--sw-shadow);
    border-bottom: 1px solid rgba(0,0,0,0.05);
}
.topbar .wrapper {
    max-width: 1100px;
    margin: 0 auto;
}
.topbar a, .topbar .download-url-button { color: rgba(255,255,255,0.95) !important; }
.topbar .topbar-wrapper .link img { filter: brightness(0) invert(1); }

/* Brand area / Info */
.swagger-ui .info, .swagger-ui .info .title, .swagger-ui .info .description {
    max-width: 1100px;
    margin: 18px auto;
}
.swagger-ui .info{
    background: var(--sw-surface);
    padding: 18px 22px;
    border-radius: 10px;
    box-shadow: var(--sw-shadow);
    border: 1px solid rgba(15,23,42,0.04);
}
.swagger-ui .info h1, .swagger-ui .info .title {
    font-weight: 600;
    color: #0f172a;
    margin: 0 0 6px 0;
}
.swagger-ui .info .description { color: var(--sw-muted); margin: 0; }

/* Operation blocks styling */
.opblock {
    background: var(--sw-surface);
    border-radius: 10px;
    margin: 16px auto;
    padding: 0;
    box-shadow: var(--sw-shadow);
    border: 1px solid rgba(15,23,42,0.04);
    max-width: 1100px;
}
.opblock .opblock-summary {
    padding: 14px 18px;
    align-items: center;
    display: flex;
    gap: 12px;
}
.opblock .opblock-summary .http-method {
    font-weight: 600;
    color: white;
    background: var(--sw-accent);
    padding: 6px 10px;
    border-radius: 6px;
    text-transform: uppercase;
    font-size: 12px;
}
.opblock .opblock-summary .opblock-summary-path {
    font-weight: 600;
    color: #0f172a;
}
.opblock .opblock-body {
    padding: 14px 18px 18px 18px;
}

/* Parameter table improvements */
.parameters-tag {
    font-weight: 600;
}
.parameter__name { font-weight: 600; }
.parameter__in { color: var(--sw-muted); text-transform: lowercase; }

/* Buttons and interactive controls */
.btn, button, .try-out, .execute, .cancel { 
    border-radius: 8px !important; 
    font-weight: 600;
}
.btn.try-out { background: transparent; border: 1px solid rgba(15,23,42,0.06); color: #0f172a; }
.btn.execute { background: var(--sw-primary); color: #fff; border: none; }

/* Code sample boxes */
.microlight, .highlight, pre, code {
    background: #0b1220;
    color: #e6eef6;
    border-radius: 8px;
    padding: 10px;
    overflow: auto;
}

/* Models and responses */
.model-box, .responses-wrap, .response-col_description { 
    background: #fff; 
    border-radius: 8px; 
    padding: 12px; 
    box-shadow: 0 6px 12px rgba(2,6,23,0.03);
}

/* Make layout centered and max width consistent */
.swagger-ui > section, .swagger-ui .wrapper { max-width: 1100px; margin: 0 auto; }

/* Small utility */
.muted { color: var(--sw-muted); }

/* Responsive tweaks */
@media (max-width: 900px){
    .opblock { margin-left: 12px; margin-right: 12px; }
    .topbar .wrapper { padding-left: 12px; padding-right: 12px; }
}
