/* County Genealogy Query & Surname Registry
   Public application styles are intentionally scoped so the surrounding
   Wicomico, Somerset, and Worcester site styles remain in control. */

body.query-registry,
body.admin-body,
body.admin-login {
    --registry-surface: #fff;
    --registry-text: #243338;
    --registry-muted: #66777d;
    --registry-accent: #176f84;
    --registry-accent-dark: #0d5365;
    --registry-accent-soft: #dceef1;
    --registry-border: #ccdadd;
    --registry-danger: #9b2c2c;
    --registry-danger-soft: #fbeaea;
    --registry-success: #27643c;
    --registry-success-soft: #e6f3ea;
    --registry-warning: #745a16;
    --registry-warning-soft: #fff6d8;
    --registry-shadow: 0 8px 24px rgba(26, 47, 54, .09);
}

body.query-registry.theme-wicomico {
    --registry-text: #172a36;
    --registry-muted: #60717b;
    --registry-accent: #173d55;
    --registry-accent-dark: #102f43;
    --registry-accent-soft: #eaf1f4;
    --registry-border: #d9e0e3;
}
body.query-registry.theme-somerset {
    --registry-text: #33443d;
    --registry-muted: #69756e;
    --registry-accent: #3f7280;
    --registry-accent-dark: #315a64;
    --registry-accent-soft: #edf3f2;
    --registry-border: #c9d8d3;
}
body.query-registry.theme-worcester {
    --registry-surface: #fbf7ec;
    --registry-text: #332d27;
    --registry-muted: #5b5147;
    --registry-accent: #3f7180;
    --registry-accent-dark: #274f5a;
    --registry-accent-soft: #e2ece9;
    --registry-border: rgba(108,80,56,.28);
    --registry-shadow: 0 8px 22px rgba(64,48,35,.12);
}

body.admin-body,
body.admin-login {
    --accent: #176f84;
    --accent-dark: #0d5365;
    --accent-soft: #dceef1;
    --border: #ccdadd;
    --surface: #fff;
    --muted: #66777d;
    margin: 0;
    font-family: Tenorite, Aptos, "Segoe UI", Arial, sans-serif;
    font-size: 16px;
    line-height: 1.55;
}
body.admin-body *, body.admin-login * { box-sizing: border-box; }
body.admin-body button, body.admin-body input, body.admin-body textarea, body.admin-body select,
body.admin-login button, body.admin-login input { font: inherit; }
body.admin-body a, body.admin-login a { color: #0d5365; text-underline-offset: 2px; }

.query-registry .registry-main { min-height: 55vh; }
.query-registry .registry-content { margin-top: 1.35rem; }
.query-registry .registry-content *,
.query-registry .researcher-modal * { box-sizing: border-box; }
.query-registry .registry-content button,
.query-registry .registry-content input,
.query-registry .registry-content textarea,
.query-registry .registry-content select,
.query-registry .researcher-modal button { font: inherit; }

.query-registry .registry-nav {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin: 1.1rem 0 1.35rem;
    padding: .55rem;
    border: 1px solid var(--registry-border);
    border-radius: 8px;
    background: color-mix(in srgb, var(--registry-accent-soft) 80%, white 20%);
}
.query-registry .registry-nav a {
    display: inline-block;
    padding: .48rem .72rem;
    border-radius: 6px;
    color: var(--registry-accent-dark);
    font-size: .9rem;
    font-weight: 750;
    text-decoration: none;
}
.query-registry .registry-nav a:hover,
.query-registry .registry-nav a:focus-visible {
    color: #fff;
    background: var(--registry-accent);
}
.query-registry.theme-wicomico .registry-nav { border-top: 4px solid #c59a52; }
.query-registry.theme-worcester .registry-nav { background: #f7efdf; border-color: rgba(108,80,56,.28); }

.query-registry .intro-card,
.query-registry .content-card,
.query-registry .registry-form,
.query-registry .query-card,
.query-registry .notice {
    color: var(--registry-text);
    background: var(--registry-surface);
    border: 1px solid var(--registry-border);
    border-radius: 10px;
    box-shadow: var(--registry-shadow);
}
.query-registry.theme-somerset .intro-card,
.query-registry.theme-somerset .content-card,
.query-registry.theme-somerset .registry-form,
.query-registry.theme-somerset .query-card { background: #fff; }
.query-registry.theme-worcester .intro-card,
.query-registry.theme-worcester .content-card,
.query-registry.theme-worcester .registry-form,
.query-registry.theme-worcester .query-card { background: rgba(251,247,236,.96); }

.query-registry .intro-card,
.query-registry .content-card { padding: 1.2rem 1.35rem; margin: 0 0 1.15rem; }
.query-registry .intro-card h2,
.query-registry .content-card h2,
.query-registry .content-card h3 { margin-top: 0; }
.query-registry .back-link { margin-bottom: .55rem; font-size: .92rem; }

.query-registry .notice { padding: 1rem 1.15rem; margin: 0 0 1.1rem; }
.query-registry .notice h2 { margin: 0 0 .4rem; font-size: 1.2rem; }
.query-registry .notice p:last-child,
.query-registry .notice ul:last-child { margin-bottom: 0; }
.query-registry .notice.error { background: var(--registry-danger-soft); border-color: #e1aaaa; color: #712323; }
.query-registry .notice.success { background: var(--registry-success-soft); border-color: #a9cfb5; color: #1f5432; }
.query-registry .notice.warning { background: var(--registry-warning-soft); border-color: #e2cc84; color: #655016; }

.query-registry .registry-form { padding: 1.35rem; }
.query-registry .registry-form fieldset { border: 0; padding: 0; margin: 0 0 1.55rem; }
.query-registry .registry-form legend { font-weight: 800; font-size: 1.18rem; padding: 0; margin-bottom: .8rem; }
.query-registry .registry-form label { display: block; font-weight: 700; margin-bottom: .9rem; }
.query-registry .registry-form input[type=text],
.query-registry .registry-form input[type=email],
.query-registry .registry-form input[type=url],
.query-registry .registry-form textarea,
.query-registry .search-form input[type=search] {
    width: 100%;
    margin-top: .35rem;
    padding: .68rem .72rem;
    border: 1px solid #98adb3;
    border-radius: 6px;
    background: #fff;
    color: #202b2f;
}
.query-registry .registry-form textarea { resize: vertical; min-height: 95px; }
.query-registry .form-grid.two { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.query-registry .required { color: #8f2b2b; font-size: .72rem; margin-left: .25rem; text-transform: uppercase; }
.query-registry .optional { color: var(--registry-muted); font-size: .72rem; margin-left: .25rem; text-transform: uppercase; }
.query-registry .field-note { margin: -.45rem 0 .9rem; color: var(--registry-muted); font-size: .88rem; }
.query-registry .surname-help { margin-top: 0; }
.query-registry .consent-row { display: flex !important; align-items: flex-start; gap: .55rem; font-weight: 600 !important; }
.query-registry .consent-row input { margin-top: .35em; flex: 0 0 auto; }
.query-registry .hp-field { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(1px,1px,1px,1px) !important; }
.query-registry .turnstile-wrap { margin: 1rem 0; min-height: 65px; }

.query-registry .surname-entry-list { display: grid; gap: .65rem; margin-bottom: .75rem; }
.query-registry .surname-entry-row {
    display: grid;
    grid-template-columns: minmax(160px,.72fr) minmax(230px,1.28fr) auto;
    gap: .7rem;
    align-items: end;
    padding: .8rem;
    background: color-mix(in srgb, var(--registry-accent-soft) 45%, white 55%);
    border: 1px solid var(--registry-border);
    border-radius: 8px;
}
.query-registry .surname-entry-row label { margin-bottom: 0; }
.query-registry .remove-surname-row {
    margin-bottom: .08rem;
    padding: .65rem .7rem;
    border: 1px solid #c69b9b;
    border-radius: 6px;
    background: #fffafa;
    color: #7f2d2d;
    cursor: pointer;
    font-weight: 700;
}

.query-registry .primary-button,
.query-registry .secondary-button,
.query-registry .text-button {
    display: inline-block;
    border-radius: 7px;
    padding: .65rem .95rem;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
}
.query-registry .primary-button,
.query-registry .text-button { border: 1px solid var(--registry-accent); background: var(--registry-accent); color: #fff; }
.query-registry .primary-button:hover,
.query-registry .primary-button:focus-visible,
.query-registry .text-button:hover { background: var(--registry-accent-dark); color: #fff; }
.query-registry .primary-button:disabled { opacity: .55; cursor: not-allowed; }
.query-registry .secondary-button { border: 1px solid var(--registry-border); background: #fff; color: var(--registry-accent-dark); }
.query-registry .secondary-button:hover,
.query-registry .secondary-button:focus-visible { background: var(--registry-accent-soft); }

.query-registry .az-list { column-width: 285px; column-gap: 1.2rem; }
.query-registry .az-group { break-inside: avoid; background: var(--registry-surface); border: 1px solid var(--registry-border); border-radius: 8px; margin: 0 0 1rem; overflow: hidden; }
.query-registry .az-group h3 { margin: 0; padding: .45rem .75rem; background: var(--registry-accent-soft); color: var(--registry-accent-dark); font-size: 1.05rem; }
.query-registry .az-group ul { list-style: none; margin: 0; padding: .55rem .8rem .7rem; }
.query-registry .az-group li { padding: .35rem 0; }
.query-registry .surname-index li { break-inside: avoid; }
.query-registry .surname-index-main { display: flex; align-items: baseline; flex-wrap: wrap; gap: .2rem; }
.query-registry .variant-note { display: block; margin-top: .1rem; color: var(--registry-muted); font-size: .78rem; line-height: 1.4; }
.query-registry .variant-note a { font-weight: 650; }
.query-registry .count { display: inline-block; min-width: 1.6em; margin-left: .25rem; padding: 0 .35rem; border-radius: 99px; background: var(--registry-accent-soft); color: var(--registry-accent-dark); font-size: .78rem; text-align: center; }
.query-registry .researcher-link { padding: 0; border: 0; background: transparent; color: var(--registry-accent-dark); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; font-weight: 700; text-align: left; }
.query-registry .researcher-link:hover { text-decoration-thickness: 2px; }
.query-registry .researcher-results { columns: 2 250px; }

.query-registry .variant-family {
    margin: 0 0 1.15rem;
    padding: .85rem 1rem;
    border-left: 5px solid var(--registry-accent);
    background: var(--registry-accent-soft);
    color: var(--registry-text);
}
.query-registry .variant-family p { margin: .25rem 0; }
.query-registry .variant-links { font-weight: 750; }
.query-registry .variant-summary { display: grid; grid-template-columns: repeat(auto-fit,minmax(190px,1fr)); gap: .65rem; margin-top: .75rem; }
.query-registry .variant-summary a { display: block; padding: .7rem .8rem; border: 1px solid var(--registry-border); border-radius: 7px; background: #fff; text-decoration: none; }
.query-registry .variant-summary small { display: block; margin-top: .15rem; color: var(--registry-muted); }

.query-registry .query-card { padding: 1.05rem 1.2rem; margin: 0 0 1rem; scroll-margin-top: 15px; }
.query-registry .query-card:target { outline: 3px solid var(--registry-accent); outline-offset: 3px; }
.query-registry .query-meta { color: var(--registry-muted); font-size: .9rem; margin-bottom: .55rem; }
.query-registry .query-card p { white-space: normal; }
.query-registry .small-link { font-size: .88rem; }
.query-registry .archive-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(215px,1fr)); gap: .75rem; }
.query-registry .archive-month { display: flex; justify-content: space-between; gap: .6rem; padding: .85rem 1rem; border: 1px solid var(--registry-border); border-radius: 8px; background: var(--registry-surface); text-decoration: none; box-shadow: 0 4px 12px rgba(0,0,0,.04); }
.query-registry .archive-month span { color: var(--registry-muted); font-size: .88rem; white-space: nowrap; }
.query-registry .search-form label { font-weight: 800; }
.query-registry .search-row { display: grid; grid-template-columns: 1fr auto; gap: .5rem; align-items: end; margin-top: .35rem; }
.query-registry .search-form input[type=search] { margin-top: 0; }
.query-registry .search-query { padding-block: .75rem; border-bottom: 1px solid var(--registry-border); }
.query-registry .search-query:last-child { border-bottom: 0; }

body.modal-open { overflow: hidden; }
.query-registry .modal-backdrop { position: fixed; inset: 0; z-index: 5000; background: rgba(10,24,29,.64); padding: 24px; overflow-y: auto; }
.query-registry .researcher-modal { position: relative; width: min(620px,100%); margin: 6vh auto; padding: 1.45rem 1.6rem; border: 1px solid var(--registry-border); border-radius: 10px; background: var(--registry-surface); color: var(--registry-text); box-shadow: 0 24px 70px rgba(0,0,0,.35); }
.query-registry .researcher-modal h2 { margin: 0 40px .8rem 0; color: var(--registry-text); }
.query-registry .researcher-modal h3 { margin: 1.15rem 0 .35rem; color: var(--registry-text); font-size: 1.03rem; }
.query-registry .modal-close { position: absolute; top: .65rem; right: .7rem; width: 38px; height: 38px; border: 0; border-radius: 50%; background: var(--registry-accent-soft); color: var(--registry-accent-dark); font-size: 1.65rem; line-height: 1; cursor: pointer; }
.query-registry .visible-email { font-family: ui-monospace,"Cascadia Mono",Consolas,monospace; overflow-wrap: anywhere; }
.query-registry .copy-button { margin-left: .4rem; border: 1px solid var(--registry-border); border-radius: 6px; padding: .25rem .5rem; background: #fff; color: var(--registry-accent-dark); cursor: pointer; font-size: .82rem; font-weight: 700; }
.query-registry .email-cloak-note { margin: .1rem 0 .8rem; color: var(--registry-muted); font-size: .76rem; }
.query-registry .surname-chips { font-weight: 700; }
.query-registry .modal-query-list { padding-left: 1.2rem; }
.query-registry .modal-query-list li { margin-bottom: .45rem; }

/* Keep Somerset's interior logo visible on registry pages. */
.query-registry.theme-somerset .home-brand { display: none; }
.query-registry.theme-somerset .interior-brand { display: flex; }

@media (max-width: 720px) {
    .query-registry .form-grid.two { grid-template-columns: 1fr; gap: 0; }
    .query-registry .surname-entry-row { grid-template-columns: 1fr; align-items: stretch; }
    .query-registry .remove-surname-row { justify-self: start; }
    .query-registry .registry-form, .query-registry .intro-card, .query-registry .content-card, .query-registry .query-card { padding: 1rem; }
    .query-registry .search-row { grid-template-columns: 1fr; }
    .query-registry .researcher-modal { margin: 2vh auto; padding: 1.25rem 1rem; }
}

/* Shared controls used only by the private administration interface. */
.admin-body .notice, .admin-login .notice {
    padding: 16px 18px; margin: 0 0 18px; border: 1px solid #ccdadd; border-radius: 8px; background: #fff;
}
.admin-body .notice.error, .admin-login .notice.error { background:#fbeaea; border-color:#e1aaaa; color:#712323; }
.admin-body .notice.success, .admin-login .notice.success { background:#e6f3ea; border-color:#a9cfb5; color:#1f5432; }
.admin-body .notice.warning, .admin-login .notice.warning { background:#fff6d8; border-color:#e2cc84; color:#655016; }
.admin-body .primary-button, .admin-login .primary-button,
.admin-body .text-button, .admin-login .text-button {
    display:inline-block; border:1px solid var(--accent); border-radius:7px; background:var(--accent); color:#fff;
    padding:9px 14px; font-weight:800; text-decoration:none; cursor:pointer;
}
.admin-body .primary-button:hover, .admin-body .primary-button:focus-visible,
.admin-login .primary-button:hover, .admin-login .primary-button:focus-visible { background:var(--accent-dark); color:#fff; }
.admin-body .admin-form input, .admin-body .admin-form textarea, .admin-body .admin-form select,
.admin-login input[type=text], .admin-login input[type=password] {
    width:100%; margin-top:6px; padding:9px 10px; border:1px solid #98adb3; border-radius:6px; background:#fff; color:#202b2f;
}
