:root
{
    --pistachio: #9CC96B;
    --apricot: #F2A65A;
    --dusk: #22213F;
    --ink: #17162B;
    --kerb: #E0483E;
    --chalk: #F4F1EC;
    --display: "Barlow Condensed", "Bahnschrift", "Arial Narrow", system-ui, sans-serif;
    --body: "Barlow", "Inter", system-ui, -apple-system, sans-serif;
}
*
{
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}
body
{
    background: var(--ink);
    color: var(--chalk);
    font-family: var(--body);
    line-height: 1.5;
    min-height: 100vh;
}
a
{
    color: var(--apricot);
}
.wrap
{
    width: min(1120px, 100%);
    margin: 0 auto;
    padding: 36px 24px 80px;
}
.top
{
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 8px;
}
.logo
{
    font-family: var(--display);
    font-size: 46px;
    font-weight: 800;
    font-style: italic;
    letter-spacing: -0.03em;
    color: var(--chalk);
    text-decoration: none;
}
.kerb
{
    height: 10px;
    background: repeating-linear-gradient(90deg, var(--kerb) 0 26px, var(--chalk) 26px 52px);
    transform: skewX(-30deg);
    transform-origin: left;
    margin-bottom: 36px;
}
h1
{
    font-family: var(--display);
    font-size: clamp(38px, 5vw, 62px);
    font-weight: 800;
    font-style: italic;
    line-height: 1.02;
    max-width: 18ch;
    margin-bottom: 14px;
}
.lede
{
    font-size: 18px;
    max-width: 60ch;
    opacity: 0.85;
    margin-bottom: 36px;
}
.grid
{
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    gap: 40px;
    align-items: start;
}
.step
{
    margin-bottom: 30px;
}
.step h2
{
    font-family: var(--display);
    font-size: 23px;
    font-weight: 700;
    margin-bottom: 10px;
    display: flex;
    gap: 12px;
    align-items: baseline;
}
.step h2 b
{
    font-style: italic;
    color: var(--pistachio);
}
.opts
{
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.opt
{
    background: rgba(255, 255, 255, 0.06);
    border: 2px solid rgba(255, 255, 255, 0.18);
    color: var(--chalk);
    font: inherit;
    font-size: 15px;
    padding: 9px 14px;
    cursor: pointer;
    text-align: left;
}
.opt.on
{
    border-color: var(--pistachio);
    background: rgba(156, 201, 107, 0.2);
}
.opt:disabled
{
    opacity: 0.35;
    cursor: not-allowed;
    text-decoration: line-through;
}
.opt:focus-visible, .btn:focus-visible, input:focus-visible
{
    outline: 3px solid var(--apricot);
    outline-offset: 2px;
}
.slots
{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}
label.field
{
    display: block;
    font-size: 14px;
    margin-bottom: 12px;
    opacity: 0.9;
}
input[type="text"], input[type="email"], input[type="url"]
{
    display: block;
    width: 100%;
    margin-top: 4px;
    background: rgba(255, 255, 255, 0.08);
    border: 0;
    border-bottom: 2px solid rgba(255, 255, 255, 0.3);
    color: var(--chalk);
    font: inherit;
    font-size: 17px;
    padding: 10px 12px;
}
input[type="file"]
{
    font: inherit;
    color: var(--chalk);
}
.note
{
    font-size: 14px;
    opacity: 0.75;
    margin-top: 8px;
}
.error
{
    color: #FF8A7A;
    font-size: 15px;
    min-height: 1.4em;
    margin: 10px 0;
}
.btn
{
    font-family: var(--display);
    background: var(--pistachio);
    color: var(--ink);
    border: 0;
    padding: 14px 34px;
    font: inherit;
    font-size: 22px;
    font-weight: 800;
    font-style: italic;
    transform: skewX(-12deg);
    cursor: pointer;
}
.btn > span
{
    display: inline-block;
    transform: skewX(12deg);
}
.btn:disabled
{
    opacity: 0.5;
    cursor: wait;
}
.btn-line
{
    background: transparent;
    color: var(--chalk);
    border: 2px solid rgba(255, 255, 255, 0.35);
    padding: 8px 14px;
    font: inherit;
    font-size: 15px;
    cursor: pointer;
}
.preview
{
    position: sticky;
    top: 24px;
}
.preview canvas
{
    width: 100%;
    display: block;
    background: #2A2940;
}
.summary
{
    margin-top: 16px;
    font-size: 16px;
    padding: 14px 16px;
    background: rgba(255, 255, 255, 0.05);
    border-left: 4px solid var(--pistachio);
}
.banner
{
    padding: 16px 18px;
    margin-bottom: 28px;
    border-left: 4px solid var(--pistachio);
    background: rgba(156, 201, 107, 0.15);
    font-size: 17px;
}
.banner.warn
{
    border-left-color: var(--apricot);
    background: rgba(242, 166, 90, 0.15);
}
.hidden
{
    display: none !important;
}
table
{
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}
th, td
{
    text-align: left;
    padding: 10px 8px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    vertical-align: top;
}
td img
{
    width: 180px;
    display: block;
}
.pill
{
    display: inline-block;
    padding: 2px 8px;
    font-size: 13px;
    background: rgba(255, 255, 255, 0.1);
}
.pill.pending_review
{
    background: rgba(242, 166, 90, 0.3);
}
.pill.approved
{
    background: rgba(156, 201, 107, 0.35);
}
.pill.rejected
{
    background: rgba(224, 72, 62, 0.35);
}
.row-actions
{
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}
.stats
{
    display: flex;
    gap: 28px;
    margin-bottom: 28px;
    font-size: 16px;
}
.stats b
{
    font-size: 28px;
    font-style: italic;
    display: block;
}
@media (max-width: 860px)
{
    .grid
    {
        grid-template-columns: 1fr;
    }
    .preview
    {
        position: static;
    }
}
.doc
{
    max-width: 68ch;
}
.doc h2
{
    font-family: var(--display);
    font-size: 25px;
    font-weight: 700;
    margin: 32px 0 10px;
}
.doc p, .doc li
{
    font-size: 17px;
    margin-bottom: 12px;
    opacity: 0.9;
}
.doc ul
{
    padding-left: 22px;
    margin-bottom: 12px;
}
.doc .updated
{
    font-size: 15px;
    opacity: 0.65;
    margin-bottom: 28px;
}

.opts.days
{
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(128px, 1fr));
    gap: 8px;
}
.opt small
{
    display: block;
    font-size: 12px;
    opacity: 0.65;
}

.stats-table td, .stats-table th
{
    font-variant-numeric: tabular-nums;
    padding: 7px 8px;
}
.stats-table tr td:first-child
{
    white-space: nowrap;
}
.funnel
{
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-width: 640px;
}
.fstep
{
    position: relative;
    background: rgba(255, 255, 255, 0.06);
    padding: 10px 14px;
    overflow: hidden;
}
.fstep i
{
    position: absolute;
    inset: 0 auto 0 0;
    background: rgba(156, 201, 107, 0.32);
}
.fstep span
{
    position: relative;
    display: flex;
    justify-content: space-between;
    gap: 16px;
    font-size: 16px;
    font-variant-numeric: tabular-nums;
}
.fstep b
{
    font-family: var(--display);
    font-size: 19px;
}
