/* ---------- Design tokens: CSS variables ---------- */
:root {
    --primary-color: #2c3e50;          /* hex 6-digit */
    --accent-color: #e67e22;           /* hex 6-digit */
    --bg-color: #fdfdfd;
    --text-color: rgb(40, 40, 40);     /* rgb() */
    --muted-color: hsl(210, 10%, 45%); /* hsl() */
    --short-hex: #fff;                 /* hex 3-digit */
    --border-thickness: 2px;
    --base-font: 'Roboto Slab', Georgia, serif; /* 3rd party font */
}
 
/* ---------- Universal selector: baseline reset ---------- */
* {
    box-sizing: border-box;
}
 
/* ---------- Element selector: body shell ---------- */
body {
    /* Variable used with a FALLBACK value */
    background-color: var(--bg-color, whitesmoke);
    /* Fallback hex, then wider-gamut color() using a predefined color space */
    color: #262633;
    color: color(srgb 0.15 0.15 0.2);
    font-family: var(--base-font);
    margin: 0;
    padding: 16px;
    line-height: 1.5;
}
 
/* ---------- Selector list: heading family ---------- */
h1, h2, h3 {
    color: var(--primary-color, navy); /* named color as fallback */
    text-align: center;
    font-family: 'Roboto Slab', serif;
}
 
/* ---------- Class selector: page title background ---------- */
.todays-meeting {
    background-color: rgba(230, 126, 34, 0.08); /* rgba() */
}
 
.meeting-agenda {
    color: #333;             /* short hex */
    text-decoration: underline;
}
 
/* ---------- ID selector (first use) ---------- */
#unfinished {
    background-color: var(--short-hex);
}
 
/* ---------- Nested selectors (adopted 2023) on header ---------- */
header {
    background-color: #fefaf4;
    padding: 1rem;
    border: 1px solid #e0d6c2;
    border-radius: 10px;
 
    & nav {
        margin-top: 0.5rem;
 
        & ol {
            padding-left: 1.5rem;
        }
    }
 
    & .Attendance {
        margin-top: 0.75rem;
    }
}
 
/* ---------- hr uses hsla() ---------- */
hr {
    border: 0;
    border-top: 1px solid hsla(210, 15%, 70%, 0.6); /* hsla() */
}
 
/* ---------- Flexbox: agenda list (6 children, 5 flex props) ---------- */
nav ol {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    align-items: center;
    gap: 8px;
    list-style-position: inside;
}
 
/* ---------- color-mix() paragraph base ---------- */
p {
    background-color: #fbe8d6; /* fallback */
    background-color: color-mix(in srgb, var(--accent-color) 10%, white 90%);
}

/* ---------- Page title: box-model LONGHAND ---------- */
.todays-meeting {
    /* Longhand margin (includes auto margins for centering) */
    margin-top: 0.5em;
    margin-right: auto;
    margin-bottom: 0.5em;
    margin-left: auto;
    /* Longhand padding */
    padding-top: 12px;
    padding-right: 8px;
    padding-bottom: 12px;
    padding-left: 8px;
    /* Border longhand properties */
    border-style: solid;
    border-color: var(--accent-color);
    border-width: var(--border-thickness);
    border-radius: 8px;
    /* Sizing */
    width: 60%;          /* % — relative unit */
    max-width: 700px;
    min-width: 280px;
}
 
/* ---------- element.class combined selector ---------- */
h1.todays-meeting {
    font-size: 2.25rem;  /* rem — relative unit */
}
 
/* ---------- ID selector with border shorthand ---------- */
#unfinished {
    border: 1px dashed orange; /* named color + border SHORTHAND */
}
 
/* ---------- Section cards: box-model SHORTHAND ---------- */
main section {
    margin: 1rem 0.5rem 1rem 0.5rem;  /* margin SHORTHAND: T R B L */
    padding: 1rem;                     /* padding SHORTHAND */
    border: 1px solid #ddd;            /* border SHORTHAND */
    border-radius: 8px;
    background-color: #ffffff;
    height: auto;                      /* height declared */
}
 
main {
    max-width: 8.5in;    /* in — absolute unit */
    margin: 0 auto;      /* auto margins */
}
 
/* ---------- Text styling ---------- */
p {
    color: var(--text-color);
    text-align: left;
    padding: 0.5rem;
    border-radius: 4px;
}
 
.meeting-agenda {
    text-align: center;
}
 
/* ---------- Attribute selector: in-page anchor links ---------- */
a[href^="#"] {
    color: var(--accent-color);
    text-decoration: none;
    padding: 2px 4px;
    border-radius: 3px;
}
 
img[alt] {
    border: 2px solid var(--primary-color);
    border-radius: 6px;
    display: block;        /* display: block */
    margin: 0 auto;
}
 
/* ---------- Display values ---------- */
.hidden {
    display: none;         /* display: none */
}
 
li em {
    display: inline;       /* display: inline */
    color: var(--accent-color);
}
 
/* ---------- :hover and :active ---------- */
a:hover {
    background-color: var(--accent-color);
    color: white;
    text-decoration: underline;
}
 
a:active {
    background-color: rgba(44, 62, 80, 0.85);
    color: white;
}
 
/* ---------- Descendant combinator (space) ---------- */
nav li {
    margin-bottom: 4pt;    /* pt — absolute unit */
}
 
/* ---------- Child combinator (>) ---------- */
.Attendance > summary {
    cursor: pointer;
    font-weight: 700;
    color: var(--primary-color);
    padding: 4px 8px;
    display: inline-block; /* display: inline-block */
}
 
details.Attendance ul {
    padding-left: 2cm;     /* cm — absolute unit */
}
 
/* ---------- Adjacent sibling combinator (+) ---------- */
hr + h2 {
    margin-top: 0.5rem;
}
 
/* ---------- General sibling combinator (~) ---------- */
h2 ~ p {
    font-style: italic;
}
 
/* ---------- :has() (adopted 2023) ---------- */
section:has(img) {
    background-color: hsla(45, 80%, 95%, 0.6);
    border-left: 4px solid var(--accent-color);
    padding-left: 1rem;
}
 
/* ---------- Position: static + relative + sticky ---------- */
main img {
    position: static;
}
 
header hr {
    position: relative;
    top: 0;
}
 
nav {
    position: sticky;
    top: 0;
    background-color: var(--bg-color);
    z-index: 5;
}

/* ---------- Grid: form row layout (5 grid-related properties) ---------- */
.form-example {
    display: grid;
    grid-template-columns: 1fr 2fr;
    grid-auto-rows: minmax(32px, auto);
    gap: 8px 16px;
    align-items: center;
    margin-bottom: 0.5rem;
}
 
/* ---------- Attribute selectors: form inputs ---------- */
input[type="text"],
input[type="date"] {
    border: 1px solid #bbb;
    border-radius: 4px;
    padding: 6px 8px;
    font: inherit;
}
 
/* ---------- Textarea sizing (hits remaining relative units) ---------- */
textarea {
    width: 100%;          /* % */
    min-width: 200px;     /* px — absolute */
    max-width: 40em;      /* em — relative */
    height: 6rem;         /* rem — relative */
    padding: 8px;
    border: 1px solid #999;
    border-radius: 4px;
    font-family: inherit;
}
 
/* ---------- Button: element.class.class combined selector ---------- */
button.favorite.styled {
    background-color: var(--primary-color);
    color: #fff;
    border-style: solid;
    border-width: 2px;
    border-color: var(--accent-color);
    border-radius: 6px;
    padding: 0.5rem 1rem;
    font-family: inherit;
}
 
button:hover {
    cursor: pointer;
    background-color: hsl(28, 80%, 55%);
    color: #fff;
}
 
button:active {
    transform: translateY(1px);
}
 
/* ---------- Footer ---------- */
footer {
    margin-top: 2rem;
    padding: 1rem;
    background-color: #f4f1ec;
    border-top: 3px solid var(--primary-color);
}
 
/* ---------- Media query: phone-sized screens ---------- */
@media (max-width: 600px) {
    .form-example {
        grid-template-columns: 1fr;
    }
 
    h1.todays-meeting {
        font-size: 1.5rem;
        width: 90%;
    }
 
    nav ol {
        flex-direction: column;
        align-items: flex-start;
    }
 
    body {
        padding: 8px;
    }
 
    main section {
        margin: 0.5rem 0;
    }
}