@font-face {
    font-family: 'IBMPlexMono';
    src: url('/third_party_web/IBMPlexMono-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'IBMPlexSans';
    src: url('/third_party_web/IBMPlexSans-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'IBMPlexSans';
    src: url('/third_party_web/IBMPlexSans-Bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
}

@font-face {
    font-family: 'Cormorant';
    src: url('/third_party_web/Cormorant-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'Cormorant';
    src: url('/third_party_web/Cormorant-Bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
}

/* Base Typography and Colors */
html {
    font-family: 'IBMPlexSans', 'Helvetica Neue', Arial, sans-serif;
    background-color: rgb(248, 236, 212);
    color: #141414;
    font-size: 16px;
    line-height: 1.5;
}

/* Typography Hierarchy */
h1 {
    font-family: 'Cormorant', Georgia, serif;
    font-size: 28px;
    font-weight: 700;
    color: #141414;
}

h2 {
    font-family: 'Cormorant', Georgia, serif;
    font-size: 24px;
    font-weight: 700;
    color: #141414;
}

h3 {
    font-family: 'Cormorant', Georgia, serif;
    font-size: 20px;
    font-weight: 700;
    color: #141414;
}

/* Links */
a:link, a:visited {
    color: #0B977E;
    text-decoration: underline;
}

a:hover, a:active {
    color: #0A8570;
    text-decoration: underline;
}

a.button:link, a.button:visited, a.button:hover, a.button:active {
    text-decoration: none;
}

/* Footer */
footer {
    text-align: center;
    margin-top: 40px;
    padding-top: 20px;
    border-top: 1px solid #E0E0E0;
    color: #666666;
    font-size: 14px;
}

/* Navigation */
nav .subtitle {
    margin-bottom: 30px;
    color: #666666;
}

/* Tab Styling */
[role="tab"][aria-selected="true"] {
    font-family: 'IBMPlexMono', 'Courier New', monospace;
    background-color: rgb(243, 219, 212);
    border: none;
    color: #141414;
}

[role="tablist"] {
    margin-bottom: 20px;
    border-bottom: 1px solid #E0E0E0;
    font-size: 16px;
}

[role="tab"]:hover:not([aria-selected="true"]) {
    background-color: rgb(240, 225, 195);
    color: #141414;
}

[role="tab"] {
    font-family: 'IBMPlexMono', 'Courier New', monospace;
    background-color: #F0F0F0;
    color: #141414;
    border: 1px solid #E0E0E0;
    padding: 10px 15px;
    border-radius: 4px 4px 0 0;
}

[role="tablist"] a {
    color: inherit;
    text-decoration: none;
}

/* Buttons */
.button {
    font-family: 'IBMPlexMono', 'Courier New', monospace;
    background-color: #141414;
    color: #FFFFFF !important;
    border: 2px solid #141414;
    border-radius: 4px;
    padding: 10px 20px;
    margin-top: 5px;
    margin-bottom: 5px;
    display: inline-block;
    font-weight: 400;
    text-align: center;
    cursor: pointer;
    transition: all 0.2s ease;
}

.button:hover {
    background-color: #333333;
    border-color: #333333;
    color: #FFFFFF !important;
}

.button.secondary {
    background-color: rgb(248, 236, 212);
    color: #141414 !important;
    border-color: #141414;
}

.button.secondary:hover {
    background-color: rgb(240, 225, 195);
    color: #141414 !important;
    border-color: #141414;
}

/* Layout and Spacing */
.center {
    text-align: center;
}

.cta {
    margin-top: 16px;
    margin-bottom: 16px;
}

/* Tables */
.express-results {
    margin-top: 20px;
    margin-bottom: 20px;
    border: 1px solid #E0E0E0;
    border-collapse: collapse;
    background-color: #FFFFFF;
    width: 100%;
}

.express-results th {
    background-color: #F5F5F5;
    color: #141414;
    font-weight: 600;
    padding: 10px;
    border: 1px solid #E0E0E0;
    text-align: left;
}

.express-results td {
    padding: 8px;
    border: 1px solid #E0E0E0;
    color: #141414;
}

.express-results .data-bar {
    background-color: #0B977E;
    display: inline-block;
    height: 8px;
    border-radius: 2px;
}

/* Forms */
.form-group {
    margin-top: 16px;
    margin-bottom: 16px;
}

.form-group label {
    color: #141414;
    font-weight: 600;
    margin-bottom: 5px;
    display: block;
}

select, input[type="text"] {
    font-family: 'IBMPlexMono', 'Courier New', monospace;
    background-color: #FFFFFF;
    border: 1px solid #E0E0E0;
    color: #141414;
    padding: 8px 12px;
    border-radius: 4px;
    font-size: 16px;
    width: 100%;
    max-width: 300px;
}

select:focus, input[type="text"]:focus {
    outline: none;
    border-color: #0B977E;
    box-shadow: 0 0 0 2px rgba(11, 151, 126, 0.2);
}

button {
    font-family: 'IBMPlexMono', 'Courier New', monospace;
    background-color: #141414;
    color: #FFFFFF !important;
    border: 2px solid #141414;
    border-radius: 4px;
    padding: 10px 20px;
    font-size: 16px;
    font-weight: 400;
    cursor: pointer;
    transition: all 0.2s ease;
}

button:hover {
    background-color: #333333;
    border-color: #333333;
    color: #FFFFFF !important;
}

::placeholder {
    color: #999999;
}

/* Utility Classes */
.highlight {
    display: inline-block;
    background-color: rgb(243, 219, 212);
    color: #141414;
    padding: 8px 12px;
    border-radius: 4px;
    font-weight: 600;
}

.padded-start {
    margin-bottom: 20px;
}

.skip-link {
    background: rgba(11, 151, 126, 0.9);
    color: #FFFFFF;
    height: 20px;
    padding: 8px 12px;
    left: 0;
    top: 0;
    position: absolute;
    transform: translateY(-100%);
    border-radius: 4px;
    text-decoration: none;
    font-weight: 600;
}

.skip-link:focus {
    transform: translateY(0%);
}

.subsection {
    margin-top: 32px;
    padding-top: 20px;
    margin-bottom: 32px;
    border-top: 1px solid #E0E0E0;
}

/* App Specific */
#app #sketch {
    display: none;
}

#app #sketch #sketch-canvas {
    border: 1px solid #333333;
    border-radius: 4px;
    background-color: rgb(248, 236, 212);
}

#sketch-load-message {
    color: #666666;
    font-size: 16px;
    margin: 20px 0;
}

#sketch-load-progress {
    width: 100%;
    max-width: 400px;
    height: 8px;
    border-radius: 4px;
    margin-top: 10px;
}

#sketch-load-progress::-webkit-progress-bar {
    background-color: #F5F5F5;
    border-radius: 4px;
}

#sketch-load-progress::-webkit-progress-value {
    background-color: #0B977E;
    border-radius: 4px;
}

/* Responsive Layout */
@media (max-width: 768px) {
    html {
        font-size: 14px;
    }
    
    .button {
        padding: 8px 16px;
        font-size: 14px;
    }
    
    select, input[type="text"] {
        font-size: 14px;
    }
}

/* Content Sections */
section {
    margin-bottom: 40px;
}

/* Video Container */
iframe {
    max-width: 100%;
    width: 100%;
    aspect-ratio: 16 / 9;
    height: auto;
    border: 1px solid #E0E0E0;
    border-radius: 4px;
}

/* Loading States */
#express-loading {
    display: none; /* Remove loading gif */
}

#express-status {
    color: #666666;
    font-style: italic;
}
