:root {
    --swatch-width: 280px;
    --swatch-height: 62px;
}

html {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Apple Color Emoji',
        Helvetica, Arial, sans-serif, 'Segoe UI Emoji', 'Segoe UI Symbol';
    margin: 0;
    color: var(--product-library-display-primary-idle-tint);
}

body {
    margin: 0;
    padding: 0;
}

/* Navigation */

header {
    position: sticky;
    top: 0;
    padding: 20px;
    margin: 0;
    background: var(--product-library-background-base-primary);
    border-bottom: 1px solid var(--product-library-divider-primary);
}

h1 {
    font-size: 20px;
    margin: 0;
    padding-bottom: 6px;
}

h2.theme-name {
    font-size: 18px;
    margin: 0;
    padding: 0 0 20px;
}

h2.theme-name:before {
    content: '';
    display: block;
    /* Anchor offset to account for the sticky header */
    margin-top: -200px;
    height: 200px;
}

p.subtitle {
    font-size: 14px;
    font-weight: normal;
    color: var(--product-library-display-secondary-idle-tint);
    margin: 0;
    padding-bottom: 20px;
}

.subtitle a {
    color: var(--product-library-display-secondary-idle-tint);
    text-decoration: none;
}

.subtitle a:hover {
    color: var(--product-library-display-accent-primary-tint);
    text-decoration: underline;
}

nav {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
}

a.theme-nav {
    color: var(--product-library-display-primary-idle-tint);
    font-size: 16px;
    text-decoration: none;
}

a.theme-nav:hover {
    color: var(--product-library-display-accent-primary-tint);
    text-decoration: underline;
}

/* Theme documentation */

.theme {
    margin: 0;
    padding: 20px;
    color: var(--product-library-display-primary-idle-tint);
    background-color: var(--product-library-background-base-primary);
    border-bottom: 3px solid var(--product-library-divider-secondary);
}

h3.category-name {
    font-size: 14px;
    font-weight: normal;
    margin: 0;
    padding: 20px 0;
    text-transform: uppercase;
    color: var(--product-library-display-secondary-idle-tint);
}

.theme-categories {
    display: flex;
    flex-direction: column;
}

ul.category {
    display: grid;
    grid-template-columns: repeat(auto-fill, var(--swatch-width));
    gap: 20px;
    margin: 0;
    padding: 0 0 20px;
    list-style: none;
}

li.token {
    display: flex;
    flex-direction: column;
    width: var(--swatch-width);
    border: 1px solid var(--product-library-divider-primary);
    border-radius: 5px 5px 0 0;
    padding-bottom: 4px;
    overflow: hidden;
}

.token p {
    margin: 0;
    padding: 4px 8px 0;
    font-size: 12px;
    word-break: break-all;
}

.swatch {
    width: var(--swatch-width);
    height: var(--swatch-height);
    border-bottom: 1px solid var(--product-library-divider-primary);
}

code {
    border-radius: 5px;
    padding: 2px;
    background-color: var(--product-library-background-raised-secondary);
    line-height: 18px;
}
