@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,750&family=Source+Sans+3:wght@400;600;700&display=swap";:root{--display:"Fraunces", Georgia, serif;--body:"Source Sans 3", Verdana, sans-serif;--ink:#1f2620;--muted:#657069;--cream:#fff8ec;--paper:#fffdf8;--line:#dfd2bf;--tomato:#c54a32;--leaf:#3e7b4f;--leaf-dark:#245135;--mint:#e3f0df;--apricot:#f6c776;font-family:var(--body);color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 15% 20%,#f6c77642,#0000 32rem),radial-gradient(circle at 85% 10%,#3e7b4f2e,#0000 30rem),linear-gradient(135deg,#fff8ec 0%,#f4f0e3 58%,#e8f1e3 100%);font-size:17px;line-height:1.45}body{margin:0}#root{min-height:100vh}a{color:inherit}main{min-height:100vh;color:var(--ink)}button,input,textarea,select{font:inherit}button{border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;border-radius:8px;padding:.65rem .9rem}button:hover{border-color:var(--tomato)}.primary{background:var(--tomato);border-color:var(--tomato);color:#fff}.topbar{z-index:10;background:color-mix(in srgb, var(--cream) 90%, white 10%);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:1rem clamp(1rem,4vw,3rem);display:flex;position:sticky;top:0}.brand{font-family:var(--display);background:0 0;border:0;padding:0;font-size:1.3rem}nav{gap:.5rem;display:flex}nav button.active{background:var(--leaf);border-color:var(--leaf);color:#fff}.status-line{border:1px solid var(--line);background:var(--paper);border-radius:8px;max-width:1180px;margin:1rem auto 0;padding:.75rem 1rem}.reader-grid{grid-template-columns:minmax(240px,320px) minmax(240px,360px) minmax(0,1fr);gap:1.5rem;max-width:1500px;margin:0 auto;padding:2rem clamp(1rem,4vw,3rem) 4rem;display:grid}.reader-heading{grid-column:1/-1}.filter-panel,.admin-layout,.editor-shell{padding:2rem clamp(1rem,4vw,3rem) 4rem}.reader-grid .filter-panel{padding:0}h1{font-family:var(--display);letter-spacing:0;margin:0 0 1rem;font-size:clamp(2.3rem,5vw,5rem);line-height:.95}h2{font-family:var(--display);letter-spacing:0;margin:0;font-size:1.45rem}.filters,.metadata-form,.field-grid,.form-section{gap:.75rem;display:grid}.form-section{border:0;border-top:1px solid var(--line);margin:.25rem 0;padding:1rem 0 0}.form-section legend{color:var(--muted);padding:0 .5rem 0 0;font-weight:800}.filters{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:1rem 0 1.5rem}input,textarea,select{box-sizing:border-box;border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:8px;padding:.75rem .8rem}textarea{resize:vertical;min-height:100px}label{gap:.35rem;font-weight:700;display:grid}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.image-upload-field{gap:.55rem;display:grid}.image-dropzone{border:1px dashed var(--line);background:var(--cream);color:var(--muted);text-align:center;cursor:pointer;border-radius:8px;justify-items:center;gap:.2rem;padding:1rem;display:grid}.image-dropzone span{color:var(--ink)}.image-dropzone small,.form-error{font-size:.9rem}.image-dropzone.is-dragging,.image-dropzone:hover{border-color:var(--tomato);background:color-mix(in srgb, var(--cream) 65%, white 35%)}.image-dropzone.is-uploading{cursor:wait;opacity:.75}.image-upload-preview{aspect-ratio:16/9;object-fit:cover;border-radius:8px;width:100%}.form-error{color:var(--tomato);margin:0;font-weight:700}.checkbox-field{align-items:center;gap:.6rem;display:flex}.checkbox-field input{width:auto}.post-list{align-content:start;gap:.75rem;display:grid}.post-row{text-align:left;background:#fff;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:.35rem .75rem;padding:.65rem;display:grid}.post-row-media{background:var(--cream);border-radius:6px;grid-row:1/span 3;width:92px;min-height:92px;position:relative;overflow:hidden}.post-row-media img{aspect-ratio:1;object-fit:cover;width:92px;display:block}.post-row-rating{background:var(--apricot);color:var(--ink);border-radius:6px;padding:.2rem .45rem;font-weight:800;line-height:1;position:absolute;bottom:.35rem;left:.35rem;box-shadow:0 2px 8px #1f262029}.post-row span,.post-row small,.article-kicker,.article-meta,.admin-row small{color:var(--muted);font-size:.9rem}.article-view{border:1px solid var(--line);background:#fff;border-radius:8px;align-self:start;padding:clamp(1rem,3vw,2rem)}.hero-image,.article-body img{aspect-ratio:16/9;object-fit:cover;border-radius:8px;width:100%;margin-bottom:1.5rem}.lede{color:var(--muted);font-size:1.2rem;line-height:1.55}.rating-score{background:var(--apricot);border-radius:8px;grid-template-columns:auto auto;align-items:center;gap:.75rem;margin:0 0 1rem;padding:.6rem .8rem;display:inline-grid}.rating-score strong{font-family:var(--display);font-size:1.5rem}.article-meta,.chip-line{flex-wrap:wrap;gap:.55rem;margin:1rem 0;display:flex}.chip-line span,.pill{background:var(--mint);color:var(--leaf-dark);border-radius:999px;padding:.3rem .65rem;font-size:.85rem;font-weight:700}.pill.published{background:var(--leaf);color:#fff}.pill.draft{background:var(--apricot);color:var(--ink)}.ingredients-band{border-left:5px solid var(--tomato);background:var(--cream);margin:1.5rem 0;padding:1rem}.article-body{gap:1rem;line-height:1.7;display:grid}.article-body blockquote{border-left:5px solid var(--leaf);background:var(--mint);font-family:var(--display);margin:0;padding:1rem 1.25rem;font-size:1.25rem}.article-body blockquote p{margin:0}.article-body blockquote cite{color:var(--muted);font-family:var(--body);margin-top:.75rem;font-size:.95rem;font-style:normal;font-weight:800;display:block}.admin-layout{max-width:1180px;margin:0 auto}.admin-toolbar,.editor-actions{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.template-strip{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.75rem;margin:1rem 0;display:grid}.template-strip.compact{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.template-strip button{text-align:left;background:var(--paper);gap:.35rem;display:grid}.template-strip span{color:var(--muted)}.admin-table{gap:.75rem;display:grid}.admin-row{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:1fr auto;gap:1rem;padding:1rem;display:grid}.row-actions,.block-toolbar{flex-wrap:wrap;gap:.5rem;display:flex}.editor-shell{max-width:1500px;margin:0 auto}.editor-grid{grid-template-columns:minmax(280px,430px) minmax(0,1fr);gap:1.5rem;display:grid}.editor-compose{grid-template-columns:minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}.editor-compose.has-preview{grid-template-columns:minmax(320px,1fr) minmax(320px,1fr)}.metadata-form,.content-editor{border:1px solid var(--line);background:#fff;border-radius:8px;align-self:start;padding:1rem}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-editor,.content-block-list{gap:1rem;display:grid}.content-block{background:var(--cream);border-radius:8px;align-items:start;gap:.75rem;padding:.9rem;display:grid}.content-block-controls{grid-template-columns:minmax(140px,180px) 1fr;gap:.75rem;display:grid}.content-block-actions,.content-block-fields.two-columns{grid-template-columns:repeat(3,auto);gap:.5rem;display:grid}.content-block-actions{justify-content:end}.content-block-actions button:disabled{cursor:not-allowed;opacity:.5}.content-block-fields.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.empty-state{border:1px solid var(--line);background:#fff;border-radius:8px;padding:1rem}.modal-backdrop{z-index:50;background:#1f262075;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.login-modal{background:var(--paper);border:1px solid var(--line);border-radius:8px;gap:1rem;width:min(100%,420px);padding:clamp(1rem,4vw,1.5rem);display:grid;box-shadow:0 22px 70px #1f262047}.login-modal h2{font-size:1.8rem}.login-modal p{color:var(--muted);margin:.35rem 0 0}.login-form{gap:.85rem;display:grid}.modal-actions{justify-content:flex-end;gap:.6rem;display:flex}.modal-actions button:disabled{cursor:not-allowed;opacity:.65}@media (width<=1100px){.reader-grid,.editor-grid,.editor-compose.has-preview{grid-template-columns:1fr}}@media (width<=720px){.topbar,.admin-toolbar,.editor-actions,.admin-row{flex-direction:column;grid-template-columns:1fr;align-items:stretch}nav,.editor-actions{width:100%}nav button,.editor-actions button{flex:1}.field-grid,.content-block-controls,.content-block-actions,.content-block-fields.two-columns{grid-template-columns:1fr}.content-block-actions{justify-content:stretch}}
