:root { --bg:#fff6eb; --ink:#1b1b1b; --olive:#4b6043; --card:#fff; }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font:16px/1.5 system-ui,Segoe UI,Arial; }
header { display:flex; gap:16px; align-items:center; padding:16px 20px; border-bottom:1px solid #eee; }
h1 { color:var(--olive); font-size:22px; margin:0; }
nav button { margin-right:8px; }
main { max-width:980px; margin:24px auto; padding:0 16px; }
.panel { background:var(--card); border:1px solid #eee; border-radius:14px; padding:16px; margin-bottom:18px; }
.hidden { display:none !important; }
.row { display:flex; gap:8px; flex-wrap:wrap; }
input, select, textarea, button { padding:10px 12px; border:1px solid #ddd; border-radius:10px; }
button { background:#f5f5f5; cursor:pointer; }
button:hover { background:#eee; }
.grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(240px,1fr)); gap:12px; }
.card { border:1px solid #eee; border-radius:12px; padding:12px; background:#fff; }
.badge { background:var(--olive); color:#fff; border-radius:999px; padding:2px 8px; font-size:12px; }
dialog { border:none; border-radius:14px; padding:0; width:min(680px,90vw); }
dialog article { padding:0; }
dialog header { display:flex; justify-content:space-between; align-items:center; padding:12px 16px; border-bottom:1px solid #eee; }
dialog #dlg-body { padding:16px; }
#save-status { margin-left:8px; opacity:.8; }
