:root{
    --bg:#FEFAF3;
    --paper:#f8f1e4;
    --line:#d8c29a;
    --text:#3F3A34;
    --main:#8A6A58;
    --main-dark:#5F473B;
    --accent:#9C6B3F;
}

*{box-sizing:border-box}
body{
    margin:0;
    background:var(--bg);
    color:var(--text);
    font:16px/1.5 Georgia, "Times New Roman", serif;
}
a{color:var(--main-dark); text-decoration:none}
a:hover{text-decoration:underline}

.wrap{
    width:min(1180px, calc(100% - 24px));
    margin:0 auto;
}

.topbar{
    border-bottom:1px solid var(--line);
    background:var(--paper);
}
.topbar-inner{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:20px;
    padding:18px 0;
}
.logo a{
    font-size:32px;
    font-weight:bold;
}
.tagline{
    font-size:13px;
    color:#6e6258;
    margin-top:4px;
}
.topmenu{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    padding-top:8px;
}

.main-grid{
    display:grid;
    grid-template-columns:minmax(0, 1fr) 320px;
    gap:24px;
    padding:24px 0;
}
.content{
    min-width:0;
}
.sidebar{
    min-width:0;
}

.box, .person-card, .hero, .stat-card, .admin-table-wrap{
    background:#fffdf8;
    border:1px solid var(--line);
    padding:16px;
    margin-bottom:18px;
}
.box h3, .hero h2{
    margin-top:0;
}

.hero{
    background:linear-gradient(to bottom, #fffdf8, #f7efe3);
}
.hero p{
    margin-bottom:0;
}

.person-card h3{
    margin:0 0 8px;
    font-size:22px;
}
.person-dates{
    color:#6e6258;
    margin-bottom:8px;
    font-size:14px;
}

.side-list{
    margin:0;
    padding-left:18px;
}
.ad-placeholder, .bottom-ad{
    border:1px dashed var(--accent);
    background:#fbf4e8;
    color:#7a5c4c;
    text-align:center;
    padding:22px;
}
.bottom-ad{
    margin-bottom:24px;
}

.footer{
    border-top:1px solid var(--line);
    padding:18px 0 28px;
    color:#6e6258;
    font-size:14px;
}

.stats-grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0,1fr));
    gap:14px;
    margin-bottom:18px;
}
.stat-card{
    text-align:center;
}
.stat-num{
    font-size:30px;
    font-weight:bold;
    color:var(--main-dark);
}
.stat-label{
    font-size:13px;
    color:#6e6258;
}

.form-row{
    margin-bottom:14px;
}
input[type="text"], input[type="date"], textarea, select{
    width:100%;
    padding:10px 12px;
    border:1px solid var(--line);
    background:#fff;
    color:var(--text);
}
textarea{
    min-height:120px;
    resize:vertical;
}
button{
    background:var(--main);
    color:#fff;
    border:none;
    padding:10px 16px;
    cursor:pointer;
}
button:hover{
    background:var(--main-dark);
}

.admin-links{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-bottom:18px;
}
.admin-links a{
    display:inline-block;
    padding:8px 12px;
    border:1px solid var(--line);
    background:#fffdf8;
}

.admin-table{
    width:100%;
    border-collapse:collapse;
}
.admin-table th, .admin-table td{
    border-bottom:1px solid var(--line);
    padding:10px 8px;
    text-align:left;
    vertical-align:top;
}
.admin-table th{
    background:#f7efe3;
}

.notice{
    padding:12px 14px;
    border:1px solid #b9d5b0;
    background:#eef8ea;
    margin-bottom:18px;
}

@media (max-width: 900px){
    .main-grid{
        grid-template-columns:1fr;
    }
    .stats-grid{
        grid-template-columns:repeat(2, minmax(0,1fr));
    }
    .topbar-inner{
        flex-direction:column;
    }
}

@media (max-width: 560px){
    .stats-grid{
        grid-template-columns:1fr;
    }
    .logo a{
        font-size:28px;
    }
}
