:root { font-family: system-ui, sans-serif; color: #233c33; background: #f4f5f1; }
* { box-sizing: border-box; } body { margin: 0; } [hidden] { display: none !important; }
header { padding: 22px 4%; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #dce2da; background: white; }
.brand { font-weight: 750; font-size: 21px; text-decoration: none; color: inherit; } .brand span { display: block; font-size: 12px; font-weight: 400; color: #68776e; margin-top: 4px; }
.badge { font-size: 12px; background: #edf1e6; padding: 7px 12px; border-radius: 20px; }
main { max-width: 1500px; padding: 36px 4%; margin: auto; } h1 { margin: 6px 0 10px; font-size: clamp(25px, 3vw, 35px); letter-spacing: -.04em; } h2 { font-size: 22px; } p { line-height: 1.6; }
.eyebrow { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .13em; color: #708064; margin: 0; }
.card { background: white; border: 1px solid #dce2da; border-radius: 14px; overflow: hidden; }.login { max-width: 460px; margin: 6vh auto; padding: 36px; }
button { background: #315d46; color: white; border: 1px solid #315d46; border-radius: 7px; padding: 11px 16px; font: inherit; font-size: 14px; cursor: pointer; } button:hover { filter: brightness(.94); } button:disabled { opacity: .5; cursor: wait; } .secondary { background: white; color: #315d46; border-color: #cbd5ca; }
input, textarea, select { width: 100%; font: inherit; padding: 10px; border: 1px solid #bccabd; border-radius: 6px; margin: 6px 0 17px; } textarea { min-height: 110px; resize: vertical; } label { display: block; font-size: 13px; font-weight: 600; }
:focus-visible { outline: 3px solid #a27a24; outline-offset: 3px; } .muted { font-size: 12px; color: #68776e; }
.toolbar { display: flex; justify-content: space-between; align-items: center; gap: 20px; } .toolbar p:not(.eyebrow) { margin: 0; color: #68776e; }.actions { display: flex; gap: 8px; flex-wrap: wrap; }
.notice { padding: 12px 16px; margin: 24px 0; background: #eaf0e3; border-radius: 7px; font-size: 13px; }
.editor-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; align-items: start; }.canvas-bar { padding: 13px 20px; display: flex; justify-content: space-between; border-bottom: 1px solid #dce2da; font-size: 12px; color: #68776e; } iframe { border: 0; width: 100%; height: 720px; background: #faf7ed; }.panel { padding: 25px; }.panel p { color: #68776e; font-size: 14px; } .event { padding: 12px; border: 1px solid #dce2da; border-radius: 8px; margin-bottom: 12px; }.event button { font-size: 12px; padding: 6px 10px; } #field-form > button { margin-top: 15px; } #status { min-height: 26px; font-size: 14px; } #status.error { color: #9a3425; }
@media (max-width: 900px) { .editor-layout { grid-template-columns: 1fr; } .toolbar { align-items: start; flex-direction: column; } iframe { height: 580px; } main { padding-top: 24px; } }

.panel { width: min(460px, calc(100% - 32px)); max-height: 85vh; overflow-y: auto; border: 1px solid #dce2da; box-shadow: 0 20px 80px #18362a33; }
.panel::backdrop { background: #172d2459; }
.close-panel { float: right; margin: 0 0 12px 12px; }
iframe { height: min(78vh, 1000px); min-height: 580px; }

#dialog-status.error { color: #9a3425; }

.version { padding: 18px 0; border-top: 1px solid #dce2da; }
.version h3 { margin: 0 0 8px; font-size: 16px; }
.version summary { cursor: pointer; font-weight: 600; overflow-wrap: anywhere; }
.version details { margin-bottom: 14px; }
.version p { overflow-wrap: anywhere; }
#history-status.error { color: #9a3425; }

#admin-nav { display: flex; gap: 8px; justify-content: flex-end; margin-bottom: 24px; }
.admin-sites { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; margin-bottom: 28px; }
.admin-card { padding: 24px; }
.admin-card h2, .admin-card h3 { margin-top: 0; }
.admin-columns { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(300px, 1.5fr); gap: 22px; align-items: start; }
fieldset { border: 1px solid #dce2da; border-radius: 7px; margin: 12px 0 20px; padding: 12px; }
.site-check { display: flex; gap: 8px; align-items: center; margin: 8px 0; }
.site-check input { width: auto; margin: 0; }
.account-row { border-top: 1px solid #dce2da; padding: 18px 0; }
.account-row summary { cursor: pointer; font-weight: 650; }
.admin-card a { color: #315d46; overflow-wrap: anywhere; }
@media (max-width: 850px) { .admin-columns { grid-template-columns: 1fr; } }

#account-tools { display: flex; justify-content: flex-end; margin-bottom: 12px; }
.password-reset { border-top: 1px solid #dce2da; padding-top: 20px; margin-top: 20px; }
#password-status.error { color: #9a3425; }
