/* Site pages: directory, agent gate, admin. Builds on dashboard.css tokens. */
.loading{color:var(--soft);padding:60px 0}
.backlink{margin:16px 0 0;font-size:12.5px}
.backlink a{text-decoration:none;color:var(--earth)}
.backlink a:hover{color:var(--cab)}
.hdr.site h1{font-size:clamp(26px,3.6vw,36px)}
.panel-msg{padding:40px 0;font-size:15px;color:var(--muted)}
.intro{max-width:70ch;color:var(--muted);font-size:15px;margin:22px 0 6px}

/* directory */
.dir-sec{padding-block:26px;border-top:1px solid var(--line)}
.dir-sec:first-of-type{border-top:0}
.dir-sec h2{margin:0 0 16px;font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--cab)}
.cities{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.city{display:block;border:1px solid var(--line);padding:18px 20px;text-decoration:none;color:var(--ink);transition:border-color .15s,background .15s}
.city:hover,.city:focus-visible{border-color:var(--cab);background:var(--pearl);outline:none}
.city .n{font-family:var(--display);font-size:24px;line-height:1.15;color:var(--cab)}
.city .m{font-size:12px;color:var(--muted);margin-top:6px}
.comms{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:0 28px}
.comm{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.comm:hover .n,.comm:focus-visible .n{color:var(--cab)}
.comm .n{font-size:14.5px;font-weight:600}
.comm .m{font-size:12px;color:var(--soft);white-space:nowrap}
.dir-foot{margin-top:24px;font-size:12px;color:var(--soft)}
.dir-foot a{color:var(--earth)}

/* forms */
.gate,.admin{max-width:640px;padding:30px 0}
.gate p{color:var(--muted);font-size:14.5px;max-width:60ch}
label{display:block;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--earth);margin:18px 0 6px}
input[type=password],input[type=text]{font:inherit;font-size:15px;padding:11px 12px;border:1px solid var(--line);border-radius:2px;width:100%;min-width:0;background:#fff;color:var(--ink)}
input:focus-visible{outline:2px solid var(--cab);outline-offset:1px}
.gate-row{display:flex;gap:10px;flex-wrap:wrap}
.gate-row input{flex:1 1 220px}
.btn-primary{font:inherit;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:12px 20px;border:0;border-radius:2px;background:var(--cab);color:#fff;cursor:pointer}
.btn-primary:disabled{opacity:.5;cursor:not-allowed}
.btn-primary:focus-visible{outline:2px solid var(--esp);outline-offset:2px}
.err{color:#9B1C1C;font-size:13.5px;min-height:1.4em;margin:10px 0 0}
.ok{color:#2F6B45;font-size:14px;font-weight:600}
.small{font-size:12.5px!important}

/* admin */
.drop{border:2px dashed var(--line);padding:30px 18px;text-align:center;cursor:pointer;margin-top:6px}
.drop:hover,.drop.over,.drop:focus-visible{border-color:var(--cab);background:var(--pearl);outline:none}
.drop b{display:block;font-size:16px;margin-bottom:4px}
.drop span{font-size:13px;color:var(--muted)}
.status-line{font-size:13.5px;color:var(--muted);margin:12px 0}
.warn{background:#FDF3E1;color:#6B4600;padding:10px 14px;font-size:13px;margin:10px 0}
.admin-wide{max-width:none}
table.t.compact{min-width:0}
table.t.compact td,table.t.compact th{padding:9px 12px}

/* Written summary served with the page (shown briefly before the dashboard draws) */
.seo-summary { padding-top: 32px; padding-bottom: 32px; }
.seo-summary h1 { font-family: "Marcellus", serif; font-weight: 400; color: #2A2223; font-size: 30px; margin: 0 0 14px; }
.seo-summary p { max-width: 760px; line-height: 1.6; color: #2A2223; }
.seo-summary a { color: #670038; }

/* Admin: website summaries */
.sum-list { display: grid; gap: 12px; }
.sum-item { border: 1px solid #E8DFE2; border-radius: 6px; padding: 14px 16px; background: #fff; }
.sum-item .sum-h { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.sum-item .sum-h b { font-family: "Marcellus", serif; font-weight: 400; font-size: 17px; color: #2A2223; }
.sum-item .sum-btns { display: flex; gap: 6px; flex-wrap: wrap; }
.sum-item details { margin-top: 8px; }
.sum-item summary { cursor: pointer; color: #72595E; font-size: 13px; }
.sum-item .sum-text { font-size: 14px; line-height: 1.55; color: #2A2223; }
.sum-item .sum-text h2 { font-size: 16px; margin: 10px 0 6px; font-family: "Manrope", sans-serif; }
.btn-small { border: 1px solid #670038; color: #670038; background: #fff; border-radius: 4px; padding: 6px 10px; font: 600 12px "Manrope", sans-serif; cursor: pointer; }
.btn-small:hover { background: #F5F1F2; }
.btn-small.done { background: #670038; color: #fff; }

.dir-note{margin:-6px 0 14px;font-size:13px;color:#72595E}
