:root {
    --ink:#17312b;
    --green:#28765d;
    --mint:#e9f5ef;
    --cream:#fffaf0;
    --orange:#f2a65a;
    --line:#dbe7e1;
    --white:#fff;
    --shadow:0 14px 40px rgba(23,49,43,.09)
}

* {
    box-sizing:border-box
}

body {
    margin:0;
    color:var(--ink);
    font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;
    line-height:1.65;
    background:#fff
}

a {
    color:var(--green);
    text-decoration:none
}

.wrap {
    width:min(1160px,calc(100% - 40px));
    margin:auto
}

.top {
    position:sticky;
    top:0;
    background:rgba(255,255,255,.96);
    border-bottom:1px solid var(--line);
    z-index:10
}

.top .wrap {
    min-height:76px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px
}

.brand {
    font-weight:900;
    font-size:1.2rem;
    color:var(--ink)
}

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

.hero {
    padding:100px 0;
    background:radial-gradient(circle at 80% 30%,#f8d59c 0 8%,transparent 9%),linear-gradient(135deg,var(--mint),var(--cream))
}

.hero h1 {
    max-width:800px;
    font-size:clamp(2.4rem,6vw,5rem);
    line-height:1.05;
    margin:.2em 0
}

.hero p {
    max-width:650px
}

.eyebrow {
    text-transform:uppercase;
    letter-spacing:.14em;
    color:var(--green);
    font-weight:800;
    font-size:.8rem
}

.button {
    display:inline-block;
    border:0;
    border-radius:10px;
    background:var(--green);
    color:#fff;
    padding:12px 18px;
    font:inherit;
    font-weight:800;
    cursor:pointer
}

.section {
    padding:70px 0
}

.soft {
    background:var(--mint)
}

.grid {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:22px
}

.card {
    padding:24px;
    border:1px solid var(--line);
    border-radius:18px;
    background:#fff;
    box-shadow:var(--shadow)
}

.card h2,.card h3 {
    line-height:1.25
}

.meta {
    font-size:.85rem;
    color:#64756f
}

.page-head {
    padding:60px 0;
    background:var(--mint)
}

.prose {
    max-width:850px
}

.prose img {
    max-width:100%;
    height:auto
}

footer {
    padding:44px 0;
    background:var(--ink);
    color:#dcebe5
}

.admin-body {
    background:#f4f7f5
}

.sidebar {
    position:fixed;
    inset:0 auto 0 0;
    width:240px;
    background:var(--ink);
    padding:28px;
    color:white;
    display:flex;
    flex-direction:column;
    gap:25px
}

.sidebar .brand,.sidebar a {
    color:white
}

.sidebar nav {
    display:flex;
    flex-direction:column;
    gap:8px
}

.sidebar nav a {
    padding:8px;
    border-radius:7px
}

.sidebar nav a:hover {
    background:#284b43
}

.sidebar form {
    margin-top:auto
}

.sidebar button {
    background:none;
    border:0;
    color:white;
    cursor:pointer
}

.admin-main {
    margin-left:240px;
    padding:38px;
    max-width:1400px
}

.admin-head {
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:28px
}

.admin-head h1 {
    margin:0
}

.stats {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
    gap:18px
}

.stat {
    background:#fff;
    border-radius:16px;
    padding:24px;
    box-shadow:var(--shadow);
    display:flex;
    flex-direction:column
}

.stat strong {
    font-size:2.5rem
}

.table-wrap,.editor,.login-box {
    background:white;
    border-radius:16px;
    padding:28px;
    box-shadow:var(--shadow)
}

table {
    width:100%;
    border-collapse:collapse
}

th,td {
    text-align:left;
    padding:14px;
    border-bottom:1px solid var(--line)
}

.actions {
    display:flex;
    gap:14px
}

.actions form {
    display:inline
}

.actions button {
    border:0;
    background:none;
    color:#a23030;
    cursor:pointer
}

.editor {
    max-width:900px
}

.editor label,.login-box label {
    display:flex;
    flex-direction:column;
    font-weight:700;
    margin-bottom:18px
}

.editor input,.editor textarea,.editor select,.login-box input {
    margin-top:7px;
    padding:12px;
    border:1px solid #bdcec6;
    border-radius:8px;
    font:inherit
}

.form-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px
}

.login-box {
    width:min(460px,calc(100% - 40px));
    margin:10vh auto
}

.alert {
    padding:12px;
    background:#ffe9e7;
    color:#8e2820;
    border-radius:8px;
    margin:16px 0
}

@media(max-width:800px) {
    .top .wrap {
        align-items:flex-start;
        padding:18px 0;
        flex-direction:column
    }

    .sidebar {
        position:static;
        width:auto
    }

    .admin-main {
        margin:0;
        padding:22px
    }

    .form-grid {
        grid-template-columns:1fr
    }
}
