/* Sub-pages: contact, privacy, administration. Loaded after styles.css. */
.page__main { padding-top: clamp(8rem, 14vw, 11rem); min-height: 80vh; }
.page .nav .btn { margin-left: auto; }
.footer--slim { padding-top: 0; border-top: 0; }
.footer--slim .footer__legal { margin-top: 0; }
.footer__legal a { color: var(--white); border-bottom: 1px solid var(--gold); }

/* ---------- Contact ---------- */
.contact { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 6fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: start; }
.contact .title { margin-bottom: 1.5rem; }
.contact__lead { color: var(--muted); max-width: 44ch; }
.notice { margin-top: 1.8rem; padding: 1.1rem 1.3rem; border-left: 2px solid var(--gold); background: var(--anth); font-size: .9rem; line-height: 1.65; color: rgba(245, 243, 238, .85); }
.notice strong { color: var(--gold); font-weight: 600; }
.contact__points { margin-top: 2rem; font-size: .9rem; color: var(--muted); }
.contact__points li { position: relative; padding: .8rem 0 .8rem 1.4rem; border-top: 1px solid var(--line); }
.contact__points li::before { content: ""; position: absolute; left: 0; top: 1.45rem; width: 6px; height: 1px; background: var(--gold); }
.contact__panel { padding: clamp(1.5rem, 4vw, 3rem); background: var(--anth); border: 1px solid var(--line); border-radius: var(--r); }
@media (max-width: 900px) { .contact { grid-template-columns: 1fr; } }

/* ---------- Form ---------- */
.form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.form__legend, .form__alert, .field--wide { grid-column: 1 / -1; }
.form__legend { font-size: .74rem; color: var(--muted); }
.req { color: var(--gold); }
.opt { color: var(--muted); font-weight: 400; letter-spacing: 0; text-transform: none; }
.field label { display: block; margin-bottom: .5rem; font-size: .68rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.field input:not([type="checkbox"]), .field select, .field textarea, .toolbar input, .toolbar select {
  width: 100%; min-height: 3.1rem; padding: .8rem 1rem; background-color: var(--black); color: var(--white);
  border: 1px solid rgba(255, 255, 255, .16); border-radius: 2px; font: inherit; font-size: 1rem; transition: border-color .3s, box-shadow .3s;
}
.field textarea { resize: vertical; min-height: 9rem; line-height: 1.6; }
.field select, .toolbar select {
  appearance: none; padding-right: 2.4rem; background-repeat: no-repeat; background-size: .32rem .32rem;
  background-image: linear-gradient(45deg, transparent 50%, var(--gold) 50%), linear-gradient(135deg, var(--gold) 50%, transparent 50%);
  background-position: calc(100% - 1.15rem) 50%, calc(100% - .85rem) 50%;
}
.field select option, .toolbar select option { background: var(--ink); color: var(--white); }
.field input:focus, .field select:focus, .field textarea:focus, .toolbar input:focus, .toolbar select:focus { outline: 0; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(200, 164, 92, .18); }
.field [aria-invalid="true"] { border-color: #e0705f !important; }
.field__error { min-height: 1.1rem; margin-top: .35rem; font-size: .78rem; line-height: 1.4; color: #f0907f; }
.field__phone { display: grid; grid-template-columns: 5.2rem 1fr; gap: .6rem; }
.field--trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.field--check { display: grid; grid-template-columns: auto 1fr; gap: .2rem .8rem; align-items: start; }
.field--check input { width: 1.25rem; height: 1.25rem; margin: .1rem 0 0; accent-color: var(--gold); }
.field--check label { margin: 0; font-size: .9rem; font-weight: 400; letter-spacing: 0; text-transform: none; color: rgba(245, 243, 238, .85); }
.field--check label a { color: var(--white); border-bottom: 1px solid var(--gold); }
.field--check .field__error { grid-column: 1 / -1; }
.btn--block { width: 100%; }
.btn:disabled { opacity: .55; cursor: progress; }
.btn--danger { border-color: rgba(224, 112, 95, .6); color: #f0907f; }
.btn--danger:hover { background: #e0705f; border-color: #e0705f; color: #000; }
.form__alert { padding: .9rem 1.1rem; border: 1px solid rgba(224, 112, 95, .5); border-radius: 2px; background: rgba(224, 112, 95, .1); color: #f6b3a7; font-size: .9rem; }
.form__done { padding: clamp(1.5rem, 5vw, 3.5rem) 0; text-align: center; outline: 0; }
.form__done svg { width: 3.4rem; height: 3.4rem; fill: none; stroke: var(--gold); stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; }
.form__done h2 { margin: 1.2rem 0 .8rem; font: 400 clamp(2rem, 5vw, 3rem)/1 var(--display); text-transform: uppercase; }
.form__done p { max-width: 44ch; margin: 0 auto 2rem; color: var(--muted); }
[hidden] { display: none !important; }
@media (max-width: 560px) { .form { grid-template-columns: 1fr; } }

/* ---------- Privacy ---------- */
.legal { max-width: 760px; }
.legal h2 { margin: 2.4rem 0 .7rem; font: 400 1.6rem/1.1 var(--display); letter-spacing: .03em; text-transform: uppercase; color: var(--gold); }
.legal p { color: rgba(245, 243, 238, .8); }
.legal a { color: var(--white); border-bottom: 1px solid var(--gold); }
.legal p.legal__note { margin-top: 3rem; font-size: .8rem; color: var(--muted); }

/* ---------- Administration ---------- */
.login { max-width: 420px; margin-inline: auto; }
.login .btn { margin-top: .6rem; }
.count { display: block; margin-top: .8rem; font: 500 .8rem/1 var(--body); letter-spacing: .14em; color: var(--muted); }
.toolbar { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto auto; gap: .7rem; margin-bottom: 1.5rem; }
.toolbar .btn { min-height: 3.1rem; }
@media (max-width: 900px) { .toolbar { grid-template-columns: 1fr 1fr; } .toolbar input { grid-column: 1 / -1; } }
.requests { border-top: 1px solid var(--line); }
.request { border-bottom: 1px solid var(--line); }
.request summary { display: grid; grid-template-columns: auto minmax(8rem, 1.1fr) auto minmax(0, 2fr) auto; gap: 1rem; align-items: center; padding: 1.1rem .4rem; cursor: pointer; list-style: none; color: var(--muted); font-size: .9rem; }
.request summary::-webkit-details-marker { display: none; }
.request summary:hover { background: var(--anth); }
.request__dot { width: 8px; height: 8px; border-radius: 50%; border: 1px solid var(--muted); }
.request.is-unread .request__dot { background: var(--gold); border-color: var(--gold); }
.request.is-unread .request__who, .request.is-unread .request__subject { color: var(--white); font-weight: 600; }
.request__type { padding: .25rem .6rem; border: 1px solid var(--line); font-size: .62rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); white-space: nowrap; }
.request__subject { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.request time { font-size: .76rem; white-space: nowrap; }
.request details[open] { background: var(--anth); }
.request dl { display: grid; grid-template-columns: auto 1fr; gap: .4rem 1.4rem; padding: .4rem 1.6rem 0; font-size: .9rem; }
.request dt { align-self: center; font-size: .64rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--gold); }
.request dd a { border-bottom: 1px solid rgba(200, 164, 92, .5); }
.request__message { padding: 1.2rem 1.6rem; white-space: pre-wrap; overflow-wrap: anywhere; color: rgba(245, 243, 238, .88); }
.request__actions { display: flex; flex-wrap: wrap; gap: .7rem; padding: 0 1.6rem 1.5rem; }
.empty { padding: 3rem 0; text-align: center; color: var(--muted); }
@media (max-width: 760px) {
  .request summary { grid-template-columns: auto 1fr auto; }
  .request__subject, .request time { grid-column: 2 / -1; }
}

/* ---------- Administration: counters and statuses ---------- */
.stats-bar { display: grid; grid-template-columns: 2fr repeat(4, 1fr); gap: 1px; margin-bottom: 1.8rem; background: var(--line); border: 1px solid var(--line); }
.stat { padding: 1.2rem 1.3rem; background: var(--anth); }
.stat b { display: block; font: 400 2.4rem/1 var(--display); color: var(--white); }
.stat span { display: block; margin-top: .4rem; font-size: .66rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.stat--main b { font-size: 3.4rem; color: var(--gold); }
@media (max-width: 760px) { .stats-bar { grid-template-columns: repeat(2, 1fr); } .stat--main { grid-column: 1 / -1; } }
.request.is-new .request__dot { background: var(--gold); border-color: var(--gold); }
.request.is-new .request__who, .request.is-new .request__subject { color: var(--white); font-weight: 600; }
.request.is-handled .request__dot { background: #6fbf8f; border-color: #6fbf8f; }
.request.is-archived { opacity: .6; }
.status { display: inline-block; padding: .15rem .55rem; border: 1px solid var(--line); font-size: .72rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.status--new { color: var(--gold); border-color: rgba(200, 164, 92, .6); }
.status--handled { color: #6fbf8f; border-color: rgba(111, 191, 143, .5); }
.status--archived { color: var(--muted); }
.request__actions { align-items: center; }
.request__status { display: flex; align-items: center; gap: .6rem; font-size: .66rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.request__status select { min-height: 2.6rem; padding: 0 2.2rem 0 .8rem; background-color: var(--black); color: var(--white); border: 1px solid rgba(255, 255, 255, .2); font: inherit; font-size: .85rem; letter-spacing: 0; text-transform: none;
  appearance: none; background-repeat: no-repeat; background-size: .32rem .32rem; background-image: linear-gradient(45deg, transparent 50%, var(--gold) 50%), linear-gradient(135deg, var(--gold) 50%, transparent 50%); background-position: calc(100% - 1rem) 50%, calc(100% - .7rem) 50%; }

/* ---------- 404 ---------- */
.notfound { max-width: 640px; }
.notfound p:not(.eyebrow) { margin-bottom: 2rem; color: var(--muted); }
