/* Sabeti Lab · Holiday Cards — editor (split from app.css; see ARCHITECTURE.md) */
/* ═══════════ EDITOR (only loaded for logged-in editors) ═══════════ */
.editor{position:fixed;top:0;right:0;bottom:0;z-index:80;width:min(460px,100%);background:var(--paper);color:var(--ink);box-shadow:-20px 0 60px rgba(0,0,0,.3);overflow:auto;font-size:13px;line-height:1.45}
.editor[hidden]{display:none}
.ed-head{position:sticky;top:0;background:var(--paper);border-bottom:1px solid var(--line);padding:18px 22px 14px;z-index:1}
.ed-head h2{font-family:var(--serif);font-weight:400;font-size:26px;line-height:1;margin-bottom:6px}
.ed-head p{color:var(--ink-2);font-size:12.5px;max-width:52ch}
.ed-x{position:absolute;right:14px;top:12px;width:34px;height:34px;border-radius:50%;font-size:22px;line-height:1;color:var(--ink-2)}
.ed-x:hover{background:var(--paper-2)}
.ed-body{padding:16px 22px 40px}
.ed-years{list-style:none;padding:0;margin:14px 0 0}
.ed-years li+li{border-top:1px solid var(--line)}
.ed-years button{width:100%;text-align:left;padding:9px 4px;display:flex;flex-wrap:wrap;gap:0 10px;align-items:baseline}
.ed-years button:hover{background:var(--paper-2)}
.ed-years b{font-family:var(--serif);font-size:20px;font-weight:400}
.ed-years small{flex-basis:100%;color:var(--mute);font-size:11px;letter-spacing:.04em}
.ed-f{display:block;margin:10px 0}
.ed-f>span{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-bottom:4px}
.ed-f>span code{text-transform:none;letter-spacing:0;font-size:11px}
.ed-f input,.ed-f select,.ed-f textarea{width:100%;font:inherit;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:6px;padding:7px 9px}
.ed-f textarea{resize:vertical;font-family:ui-monospace,Menlo,monospace;font-size:12px}
.ed-f input:focus,.ed-f select:focus,.ed-f textarea:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold)}
.ed-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:0 12px}
.ed-cw{display:flex;gap:6px;align-items:center}
.ed-cw input[type=color]{width:38px;flex:0 0 38px;padding:0;height:34px;border-radius:6px;border:1px solid var(--line);background:none}
.ed-theme{border:1px solid var(--line);border-radius:8px;padding:6px 12px 10px;margin:14px 0}
.ed-theme legend{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);padding:0 6px}
.ed-check-l{display:flex;gap:8px;align-items:center;font-size:12.5px}
.ed-btn{font:inherit;font-size:12px;letter-spacing:.12em;text-transform:uppercase;padding:9px 14px;border-radius:999px;border:1px solid var(--ink);color:var(--ink);background:none;margin:8px 8px 0 0}
.ed-btn:hover{background:var(--paper-2)}
.ed-btn.primary{background:var(--ink);color:var(--paper)}
.ed-btn.primary:hover{background:#000}
.ed-btn.danger{border-color:var(--wine);color:var(--wine)}
.ed-actions{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.ed-msg{margin-top:12px;min-height:18px}
.ed-check{margin:8px 0 4px}
.ed-ck{font-size:12px;padding:3px 0;color:var(--ink-2)}
.ed-ck code{font-size:11px}
.ed-ck .ok{color:var(--pine);font-weight:400}
.bad{color:var(--wine);font-weight:400}
.ed-more{margin-top:22px;border-top:1px solid var(--line);padding-top:8px}
.ed-more summary{cursor:pointer;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);padding:6px 0}
.ed-tools{margin-top:10px}
.ed-hint{color:var(--mute);font-size:12px;margin-top:10px}
.ed-hint code{font-size:11px}
