:root{font-family:Arial,sans-serif;color:#17231b;background:#f5f1e8;--green:#193b25;--border:#d8ded5;--soft:#eef2eb}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0}
a{color:inherit}
button,select,input,textarea{font:inherit}
button,.button{border:1px solid transparent;border-radius:8px;background:var(--green);color:white;padding:10px 14px;cursor:pointer;text-decoration:none;display:inline-block}
button:hover,.button:hover{filter:brightness(1.2)}
button:disabled{opacity:.5;cursor:default}
.secondary{background:white;color:var(--green);border-color:var(--border)}
:focus-visible{outline:3px solid #457e53;outline-offset:3px}
.brand{display:inline-block;font-weight:bold;letter-spacing:.14em;text-decoration:none}
.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(90deg,#102a18dd,#102a1844),url('/hero.png') center/cover;padding:24px}
.login form{background:white;border-radius:16px;padding:36px;width:min(100%,430px)}
h1,h2{font-family:Georgia,serif;font-weight:normal}
h1{font-size:clamp(30px,4vw,42px);margin:0}
.login h1{margin-top:28px}
.login p{margin:10px 0 22px}
label{display:grid;gap:6px;font-size:.88rem;font-weight:600}
input,select,textarea{width:100%;padding:10px;border:1px solid #aab7aa;border-radius:7px;background:white;color:inherit}
select[multiple]{min-height:100px}
textarea{resize:vertical}
.login label{margin:15px 0}
#login-error,.error{color:#a22620}
#app{min-height:100vh;display:grid;grid-template-columns:225px minmax(0,1fr)}
aside{background:var(--green);color:white;padding:27px 16px}
aside .brand{padding:8px;margin-bottom:24px}
nav{display:grid;gap:4px}
nav a{display:block;padding:11px;border-radius:7px;text-decoration:none}
nav a:hover,nav a[aria-current=page]{background:#ffffff24}
.workspace header{background:white;border-bottom:1px solid var(--border);display:flex;justify-content:flex-end;align-items:center;gap:16px;padding:13px clamp(16px,4vw,45px)}
#view{padding:clamp(16px,4vw,45px)}
.heading,.actions,.pager{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.heading{margin-bottom:22px}
.filters{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:0 0 16px}
.filters label{flex:1 1 110px}
.filters label:first-child{flex-basis:190px}
.panel,.table{background:white;border:1px solid var(--border);border-radius:12px;padding:16px}
.table{overflow:auto;padding:0}
table{width:100%;border-collapse:collapse;text-align:left;font-size:.92rem}
th,td{padding:12px;white-space:nowrap;border-bottom:1px solid var(--border)}
th{background:var(--soft)}
tr:last-child td{border-bottom:0}
.pager{margin:16px 0}
.badge{display:inline-block;background:var(--soft);color:var(--green);border-radius:100px;padding:5px 9px;font-size:.81rem}
.danger{background:#fbe7e5;color:#92261f}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:12px}
.stats strong{display:block;font:32px Georgia,serif;margin-top:8px}
.dashboard .panel{margin-top:12px}
dialog{border:1px solid var(--border);border-radius:14px;width:min(750px,calc(100% - 24px));max-height:90vh;padding:22px;color:inherit}
dialog::backdrop{background:#0b1f14aa}
dialog h2{margin:0}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:20px 0}
.wide{grid-column:1/-1}
.detail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}
.detail dt{font-weight:bold;font-size:.85rem}
.detail dd{margin:4px 0;overflow-wrap:anywhere;white-space:pre-wrap}
pre{overflow:auto;background:var(--soft);padding:12px}
.preview{white-space:pre-wrap;overflow-wrap:anywhere}
.media-preview{max-width:100%;max-height:240px}
@media(max-width:760px){#app{grid-template-columns:1fr}aside{padding:14px}aside .brand{margin:0 0 7px}nav{display:flex;overflow:auto}nav a{white-space:nowrap}.workspace header{justify-content:space-between}.fields,.detail{grid-template-columns:1fr}}
