@font-face { font-family:"Cormorant Garamond"; src:url("/assets/fonts/cormorant-garamond-variable.ttf") format("truetype"); font-weight:300 700; font-display:swap; }
@font-face { font-family:"Fresh Mango"; src:url("/assets/fonts/fresh-mango-regular.ttf") format("truetype"); font-display:swap; }
:root { --cream:#f8dba3; --paper:#ffe9bd; --white:#fffaf0; --olive:#54611b; --green:#316c4c; --rust:#a9461f; --gold:#dfaa4c; --border:rgba(84,97,27,.28); --shadow:0 14px 32px rgba(80,55,13,.12); font-family:"Cormorant Garamond",Georgia,serif; color:var(--olive); background:var(--cream); }
* { box-sizing:border-box; }
body { margin:0; min-width:320px; font-size:18px; line-height:1.45; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
:focus-visible { outline:3px solid var(--rust); outline-offset:3px; }
.skip-link { position:fixed; top:-5rem; left:1rem; z-index:100; padding:.6rem 1rem; color:var(--white); background:var(--green); }
.skip-link:focus { top:1rem; }
.visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.admin-header { position:sticky; top:0; z-index:20; min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:.65rem clamp(1rem,4vw,3.5rem); border-bottom:2px solid var(--border); background:rgba(248,219,163,.97); }
.admin-brand img { display:block; width:230px; height:auto; }
.admin-header nav { display:flex; flex-wrap:wrap; gap:1.5rem; font-weight:700; }
.admin-header a { color:inherit; text-underline-offset:.2rem; }
.admin-shell { width:min(1180px,calc(100% - 2rem)); margin:0 auto; padding:clamp(2.5rem,6vw,5.5rem) 0; }
.page-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-bottom:2rem; }
.page-heading h1,.login-panel h1 { margin:.15rem 0 .6rem; color:var(--rust); font:400 clamp(3.2rem,7vw,6rem)/.9 "Fresh Mango",Georgia,serif; }
.page-heading p { margin-bottom:0; }
.heading-actions { display:flex; align-items:center; gap:1rem; }
.eyebrow { margin:0 0 .55rem; font-size:.82rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.panel { margin:1.5rem 0; padding:clamp(1.2rem,3vw,2.2rem); border:2px solid var(--border); background:var(--paper); box-shadow:var(--shadow); }
.panel-heading { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; margin-bottom:1.4rem; }
.panel h2,dialog h2 { margin:0; color:var(--green); font:400 clamp(2rem,4vw,3.3rem)/1 "Fresh Mango",Georgia,serif; }
.button { min-height:44px; display:inline-flex; align-items:center; justify-content:center; padding:.65rem 1rem; border:2px solid var(--green); border-radius:2px; color:var(--white); background:var(--green); font-weight:700; line-height:1.1; text-decoration:none; }
.button:hover { background:var(--olive); border-color:var(--olive); }
.button-secondary { color:var(--green); background:transparent; }
.button-secondary:hover { color:var(--white); }
.text-button { min-height:42px; padding:.35rem .15rem; border:0; color:var(--green); background:transparent; font-weight:700; text-decoration:underline; text-underline-offset:.2rem; }
.text-button:disabled,.button:disabled { cursor:not-allowed; opacity:.42; text-decoration:none; }
.notice { margin-bottom:1.4rem; padding:1rem 1.2rem; border-left:5px solid var(--gold); background:var(--white); }
.notice.error { border-color:var(--rust); }
.metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.metrics article { min-height:135px; display:flex; flex-direction:column; justify-content:center; padding:1.3rem; border-top:6px solid var(--green); background:var(--white); box-shadow:var(--shadow); }
.metrics strong { color:var(--rust); font:400 3.3rem/1 "Fresh Mango",Georgia,serif; }
.metrics span { font-weight:700; }
.filters { display:grid; grid-template-columns:2fr 1fr 1fr; gap:1rem; margin-bottom:1.25rem; }
label { display:grid; gap:.35rem; font-weight:700; }
.filter-group { position:relative; display:grid; align-content:start; gap:.35rem; font-weight:700; }
input,select,textarea { width:100%; min-height:46px; padding:.62rem .7rem; border:2px solid rgba(84,97,27,.55); border-radius:2px; color:#334111; background:var(--white); }
.multi-select { position:relative; width:100%; font-weight:400; }
.multi-select summary { min-height:46px; display:flex; align-items:center; justify-content:space-between; gap:.7rem; padding:.62rem .7rem; border:2px solid rgba(84,97,27,.55); border-radius:2px; color:#334111; background:var(--white); list-style:none; }
.multi-select summary::-webkit-details-marker { display:none; }
.multi-select summary::after { content:"▾"; color:var(--green); font-size:.85rem; }
.multi-select[open] summary::after { content:"▴"; }
.multi-select-options { position:absolute; z-index:15; top:calc(100% + .25rem); left:0; width:max(100%,230px); max-height:280px; overflow:auto; padding:.55rem; border:2px solid rgba(84,97,27,.55); background:var(--white); box-shadow:var(--shadow); }
.multi-select-options label { display:flex; grid-template-columns:auto 1fr; align-items:center; gap:.55rem; padding:.35rem .25rem; font-weight:400; }
.multi-select-options input { width:1.1rem; min-height:1.1rem; margin:0; padding:0; accent-color:var(--green); }
textarea { resize:vertical; }
.table-wrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; background:rgba(255,250,240,.55); }
th,td { padding:.8rem .65rem; border-bottom:1px solid var(--border); text-align:left; vertical-align:middle; }
th { font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; }
td:nth-child(2) { font-family:system-ui,sans-serif; font-size:.82rem; }
.status { display:inline-flex; padding:.18rem .55rem; border:1px solid currentColor; border-radius:99px; font-size:.82rem; font-weight:700; }
.status-active { color:var(--green); }
.status-expired { color:var(--olive); }
.status-unsubscribed { color:var(--rust); }
.row-action { min-height:38px; padding:.3rem .5rem; border:0; color:var(--rust); background:transparent; font-weight:700; text-decoration:underline; }
.empty-state { padding:1rem; text-align:center; }
.panel-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:.75rem; }
.import-button { cursor:pointer; }
.import-button input { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); border:0; }
.local-data-note { max-width:850px; margin:-.35rem 0 1.4rem; padding:.85rem 1rem; border-left:5px solid var(--green); background:var(--white); }
.compose-grid { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr); gap:clamp(1.3rem,4vw,3rem); align-items:start; }
.compose-fields { display:grid; gap:1rem; }
.batch-field { max-width:220px; }
.batch-card { position:sticky; top:95px; display:grid; gap:.8rem; padding:1.25rem; border:2px solid var(--green); background:var(--white); box-shadow:8px 8px 0 var(--gold); }
.batch-card p,.batch-card strong { margin:0; }
.batch-card strong { color:var(--rust); font-size:1.55rem; }
.batch-navigation { display:flex; justify-content:space-between; }
.manual-badge { padding:.28rem .6rem; border:1px solid var(--green); border-radius:99px; font-size:.82rem; font-weight:700; }
.privacy-note { font-size:.9rem; }
.email-preview-card { margin-top:2rem; }
.email-preview-card h3 { margin:.1rem 0 1rem; color:var(--green); font-size:1.45rem; }
.email-preview-frame { width:min(100%,640px); overflow:hidden; border:1px solid var(--border); background:var(--white); box-shadow:var(--shadow); }
.email-preview-frame>img { display:block; width:100%; height:auto; }
.email-preview-copy { padding:1.5rem 2rem 1.8rem; color:#334111; background:var(--white); }
.email-preview-copy p { margin:0 0 1.4rem; }
.email-preview-message { min-height:2rem; white-space:pre-wrap; }
.email-preview-footer { padding-top:1rem; border-top:1px solid var(--border); font:13px/1.5 Arial,sans-serif; color:var(--olive); }
details { margin-top:1.5rem; }
summary { cursor:pointer; font-weight:700; }
pre { overflow:auto; padding:1rem; white-space:pre-wrap; background:var(--white); font:14px/1.5 system-ui,sans-serif; }
.login-panel { max-width:630px; margin:8vh auto; padding:clamp(1.5rem,5vw,3rem); border:2px solid var(--border); background:var(--paper); box-shadow:14px 14px 0 var(--gold); }
dialog { max-width:520px; padding:1.5rem; border:2px solid var(--olive); color:var(--olive); background:var(--paper); box-shadow:var(--shadow); }
dialog::backdrop { background:rgba(31,37,10,.62); }
.dialog-actions { display:flex; justify-content:flex-end; gap:.8rem; margin-top:1.5rem; }
@media (max-width:900px) { .metrics{grid-template-columns:repeat(2,1fr)} }
@media (max-width:760px) { .admin-header{align-items:flex-start;flex-direction:column;gap:.5rem}.admin-brand img{width:190px}.page-heading,.panel-heading{align-items:flex-start;flex-direction:column}.metrics{grid-template-columns:1fr}.metrics article{min-height:100px}.filters,.compose-grid{grid-template-columns:1fr}.batch-card{position:static}.heading-actions,.panel-actions{width:100%}.heading-actions .button,.panel-actions .button{flex:1}.panel-actions .text-button{width:100%;text-align:left} }
@media (max-width:480px) { .admin-header nav{gap:.8rem}.admin-shell{width:min(100% - 1rem,1180px)}.panel{padding:1rem}.manual-badge{display:none}th:nth-child(3),td:nth-child(3),th:nth-child(4),td:nth-child(4),th:nth-child(5),td:nth-child(5),th:nth-child(6),td:nth-child(6){display:none}.dialog-actions{flex-direction:column} }
