/*! concrete.css v3.1.0 | MIT License | github.com/louismerlin/concrete.css */:root{--fg:#111;--bg:#fff;--font:Helvetica,Arial,sans-serif;--font-h:Helvetica,Arial,sans-serif;--main-width:640px;--radius:0px}@media (prefers-color-scheme:dark){:root{--fg:#fff;--bg:#111}}html{box-sizing:border-box;font-size:1.25rem}*,:after,:before{box-sizing:inherit;text-decoration-thickness:.1rem}body{background:var(--bg);font-family:var(--font);margin:0}a,body{color:var(--fg)}figure{margin:0}figcaption{border-bottom:.2rem solid var(--fg);font-size:.8em;padding-bottom:.2rem;text-align:right}img{height:auto;max-width:100%}main section+section{padding:2rem 0}body>footer,body>header,body>main{margin:auto;max-width:calc(var(--main-width) + 20px);padding-left:10px;padding-right:10px;width:100%}body>header{font-size:1.2em;padding-bottom:8rem;padding-top:8rem}h1,h2,h3,h4,h5,h6{font-family:var(--font-h)}h1{font-size:2em}h2{font-size:1.5em}h3{font-size:1.17em}h4{font-size:1em}h5{font-size:.83em}h6{font-size:.67em}footer{text-align:center}button,input[type=button],input[type=reset],input[type=submit]{background:var(--bg);border:.1rem solid var(--fg);border-radius:var(--radius);color:var(--fg);cursor:pointer;display:inline-block;font-size:1rem;font-weight:400;margin-bottom:.5rem;padding:.2rem .5rem;vertical-align:middle}button:disabled,input[type=button]:disabled,input[type=reset]:disabled,input[type=submit]:disabled{border-style:dashed;cursor:not-allowed}ul{list-style:square}nav{margin:2rem 0}nav ul{list-style:none;padding:0}nav ul li{display:inline-block;margin:0 .2rem}fieldset{border:.1rem solid var(--fg);border-radius:var(--radius)}label,legend{display:block;font-weight:700;margin-bottom:.4rem}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bg);border:.1rem solid var(--fg);border-radius:var(--radius);box-shadow:none;box-sizing:inherit;color:var(--fg);font-family:var(--font);font-size:1rem;padding:.2rem .5rem;width:100%}fieldset,input,select,textarea{margin:0 0 .8rem}input::placeholder,textarea::placeholder{color:var(--fg);font-style:italic;opacity:1}table{border-spacing:0;width:100%}td,th{padding:.4rem}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}th{border-bottom:.1rem solid var(--fg);text-align:left}td{border-bottom:.05rem solid var(--fg)}blockquote,pre{border-left:.1rem solid var(--fg);margin-left:0;margin-right:0;overflow-y:hidden;padding:.5rem .8rem}pre{border:.05rem dotted var(--fg);border-left:.1rem solid var(--fg)}pre>code{display:block;font-size:.8rem;white-space:pre}progress{-moz-appearance:none;-webkit-appearance:none;background:var(--bg);border:.1rem solid var(--fg);border-radius:var(--radius);color:var(--fg);display:block;height:.5rem;overflow:hidden;padding:0;width:100%}progress::-webkit-progress-bar{background-color:var(--bg)}progress::-webkit-progress-value{background-color:var(--fg)}progress::-moz-progress-bar{background-color:var(--fg)}hr{border:.05rem solid var(--fg)}
/*! concrete.extras.css v0.1.0 | MIT License | github.com/sesh/concrete.extras.css */:root{--min:12ch;--gap:1rem}.row{display:grid;grid-gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--min)),1fr));margin-bottom:var(--gap)}.centered{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:100vh;width:100%}.align-right{text-align:right}.align-centered{text-align:center}html{line-height:1.15}table.condensed{font-size:.9rem}table.condensed td,table.condensed th{padding:.2rem}.boxed,.boxed-dashed{border:2px solid var(--fg);border-radius:var(--radius);padding:1rem}.boxed-dashed{border-style:dashed}input[type=date],input[type=file],input[type=time]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bg);border:.1rem solid var(--fg);border-radius:var(--radius);box-shadow:none;box-sizing:inherit;color:var(--fg);font-family:var(--font);font-size:1rem;padding:.2rem .5rem;width:100%}select:not([multiple]){background-image:linear-gradient(90deg,transparent 50%,var(--fg) 50%),linear-gradient(90deg,var(--fg) 50%,transparent 50%);background-position:calc(100% - .8rem),calc(100% - .8rem);background-repeat:no-repeat;background-size:.8rem .8rem,.8rem .8rem}input[type=checkbox]+label,input[type=radio]+label{display:inline-block;margin-bottom:.4rem}label+label{padding-top:.4rem}input[type=checkbox],input[type=radio]{appearance:none;border:.1rem solid var(--fg);border-radius:var(--radius);display:inline-block;height:.8rem;margin:-.1rem .2rem 0;width:.8rem}input[type=radio]{border-radius:100%}input[type=checkbox]:checked,input[type=radio]:checked{background-color:var(--fg)}input[type=range]{-webkit-appearance:none;appearance:none;background:var(--fg);border:none;border-radius:0;height:.1rem;margin:.8rem 0 .4rem;padding:0;width:100%}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--bg);border:.1rem solid var(--fg);border-radius:50%;cursor:pointer;height:1rem;width:1rem}input[type=range]::-moz-range-thumb{background:var(--bg);border:.1rem solid var(--fg);border-radius:50%;cursor:pointer;height:1rem;width:1rem}.grid{display:flex}.grid .cell-1{width:16%}


body {
    margin-top: 2em;
     font-family: system-ui;
}

main section + section, section {
    padding: 1rem 0;
}

section p {
    line-height: 1.3em;
}

.messages {
    list-style: none;
    margin: 1em 0 2em;
    padding: 0;
}

.messages li {
    padding: 1em;
    width: 100%;
    line-height: 2.0em;
}

.messages li.info, .messages li.debug {
    background-color: #d0ebff;
}

.messages li.success {
    background-color: #b2f2bb;
}

.message li.warning {
    background-color: #ffec99;
}

.messages li.error {
    background-color: #ffe3e3;
}


.section-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid var(--fg);
    margin-bottom: 0.4em;
}

.section-heading h2, .section-heading h3  {
    font-size: 1.2em;
    margin: 0.4em 0;
}

#map {
    width: 100%;
    aspect-ratio: 1.2;
}

.form-note {
    font-size: 0.8rem;
    line-height: 1.4;
    opacity: 0.7;
    margin: 0 0 1em;
}

/* Stat groups, ported from splits. Each group is its own flex row, so which
   stats share a line is decided by the grouping in the template. */
.stat-group {
    display: flex;
    flex-wrap: wrap;
    gap: 1em;
    align-items: flex-start;
    justify-content: space-between;
    margin-top: 1em;
}

.stat-item {
    font-size: 0.8em;
    flex: 0 0 auto;
    width: 30%;
    max-width: 100%;
}

.pacing-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.pacing-summary .stat-item {
    width: auto;
}

.stat-label {
    padding: 0.4rem;
    border-bottom: 0.1rem solid var(--fg);
    font-weight: 700;
}

.stat-value {
    padding: 0.4rem;
    border-bottom: 0.05rem solid var(--fg);
}

.stat-sub {
    font-size: 0.9em;
    opacity: 0.7;
    padding: 0.4rem;
}

table.condensed {
    font-size: 0.8rem;
}

table.pace-plan {
    margin-top: 1em;
}

table.nutrition-plan {
    margin-top: 1em;
}

table.weather-plan {
    min-width: 680px;
}

.table-scroll {
    overflow-x: auto;
}

.weather-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.weather-summary .stat-item {
    width: auto;
}

.weather-secondary {
    opacity: 0.65;
    white-space: nowrap;
}

.nutrition-summary-note {
    margin-top: 1.5em;
    margin-bottom: -0.5em;
    font-weight: 700;
}

.copy-workout {
    margin-top: 1em;
}

.inline-form,
.inline-form button {
    margin: 0;
}

/* Elevation profile. Drawn in --fg/--bg, so it inverts with concrete.css's
   light and dark modes; the axis and grid are the same ink dialled back. */
:root {
    --chart-axis: rgba(17, 17, 17, 0.55);
    --chart-grid: rgba(17, 17, 17, 0.12);
    --chart-pace: #1d4ed8;
}

@media (prefers-color-scheme: dark) {
    :root {
        --chart-axis: rgba(255, 255, 255, 0.55);
        --chart-grid: rgba(255, 255, 255, 0.15);
        /* Stepped for the dark surface rather than flipped, same as the ink. */
        --chart-pace: #60a5fa;
    }
}

#elevation-chart {
    width: 100%;
    aspect-ratio: 3;
    position: relative;
}

@media (max-width: 600px) {
    #elevation-chart {
        aspect-ratio: 1.8;
    }

    .stat-group {
        gap: 1em 0.5em;
        font-size: 0.8em;
    }

    .stat-item {
        width: calc((100% - 1em) / 2);
    }

    .pacing-summary .stat-item {
        width: auto;
    }

    .pacing-summary,
    .weather-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

#elevation-chart .tick text {
    fill: var(--chart-axis);
    font-size: 0.6rem;
}

#elevation-chart .domain,
#elevation-chart .tick line {
    stroke: var(--chart-grid);
}

.chart-tooltip {
    position: absolute;
    pointer-events: none;
    background: var(--bg);
    border: 1px solid var(--chart-grid);
    color: var(--fg);
    font-size: 0.65rem;
    line-height: 1.4;
    padding: 0.3rem 0.45rem;
    white-space: nowrap;
    opacity: 0;
    transition: opacity 0.1s;
}
