.contacts-page { background:#f5f8fb; }
.contacts-page .container { --max:1320px; }
.admin-page .header-inner { gap:1rem; }
.admin-page .admin-nav { flex-wrap:wrap; justify-content:flex-end; gap:.6rem 1.15rem; font-size:.85rem; }
.registration-list-tools { display:flex; justify-content:flex-end; margin:1.25rem 0 .8rem; }
.registration-sort { display:flex; align-items:center; flex-wrap:wrap; gap:.65rem; }
.registration-sort label { color:var(--muted); font-size:.85rem; font-weight:600; }
.registration-sort select { min-height:44px; max-width:100%; padding:.65rem .8rem; border:1px solid #ccd9e4; border-radius:7px; color:var(--ink); background:white; font:inherit; font-size:.9rem; }
.registration-sort select:focus-visible { outline:3px solid #84bbe7; outline-offset:2px; }
.admin-page .dashboard-days--nights { grid-template-columns:repeat(2,minmax(0,1fr)); }
.admin-page .dashboard-days small { font-size:.76rem; }
.status-icon--bed { color:#166681; border-color:#b9dce6; background:#ecf7fa; }
.accommodation-overview { padding:1.25rem; margin:1.5rem 0; border:1px solid #dce6ee; border-radius:12px; background:#f7fafd; scroll-margin-top:120px; }
.accommodation-heading h3 { margin:0; color:var(--cvut-dark); font-size:1.15rem; }
.accommodation-heading p { margin:.35rem 0 1rem; color:var(--muted); font-size:.84rem; }
.accommodation-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.accommodation-night { min-width:0; padding:1rem; border:1px solid #dce6ee; border-radius:9px; background:white; }
.accommodation-night-heading { display:flex; align-items:center; gap:.65rem; }
.accommodation-night-heading h4 { margin:0; color:var(--cvut-dark); font-size:.97rem; }
.accommodation-night-count { margin-left:auto; padding:.2rem .65rem; border-radius:20px; color:var(--cvut-dark); background:#edf6fd; font-size:.85rem; font-weight:700; font-variant-numeric:tabular-nums; }
.accommodation-guest-list { margin:.8rem 0 0; padding:0; max-height:250px; overflow:auto; list-style:none; }
.accommodation-guest-list li+li { border-top:1px solid #edf1f5; }
.accommodation-guest-list li { display:flex; align-items:center; flex-wrap:wrap; gap:.4rem .7rem; padding:.3rem 0; }
.accommodation-guest-list li>a { flex:1 1 140px; min-width:0; }
.accommodation-room-group { margin-top:.8rem; border-top:1px solid #edf1f5; padding-top:.6rem; }
.accommodation-room-group>summary { display:flex; align-items:center; gap:.5rem; color:var(--cvut-dark); font-size:.83rem; font-weight:650; cursor:pointer; }
.accommodation-room-group>summary::before { content:'›'; font-size:1.1rem; transform:rotate(0); }
.accommodation-room-group[open]>summary::before { transform:rotate(90deg); }
.accommodation-room-group>summary:focus-visible { outline:3px solid #84bbe7; outline-offset:3px; border-radius:4px; }
.accommodation-group-count { color:var(--muted); font-size:.78rem; font-weight:400; }
.accommodation-group-form { display:flex; gap:.35rem; align-items:center; margin:0; }
.accommodation-group-form select,.accommodation-group-form button { min-height:36px; border:1px solid #ccd9e4; border-radius:6px; background:white; font:inherit; font-size:.76rem; }
.accommodation-group-form select { max-width:130px; padding:.35rem .4rem; color:var(--ink); }
.accommodation-group-form button { padding:.35rem .5rem; color:var(--blue); cursor:pointer; }
.accommodation-group-form button:hover { background:#edf6fd; }
.accommodation-group-form :is(select,button):focus-visible { outline:3px solid #84bbe7; outline-offset:2px; }
.accommodation-guest-list a { display:block; padding:.65rem .2rem; color:var(--cvut-dark); text-decoration:none; font-size:.87rem; overflow-wrap:anywhere; }
.accommodation-guest-list a:hover { color:var(--blue); background:#f7fafd; }
.accommodation-guest-list a:focus-visible { outline:3px solid #84bbe7; outline-offset:-3px; border-radius:5px; }
.accommodation-guest-list small { display:block; margin-top:.15rem; color:var(--muted); font-size:.75rem; }
.accommodation-empty,.accommodation-night-note { color:var(--muted); font-size:.8rem; }
.accommodation-empty { margin:.85rem 0 .15rem; }
.accommodation-night-note { margin:.65rem 0 0; }
.accommodation-night--incomplete { border-color:#ead39d; }
@media(max-width:700px) { .accommodation-grid { grid-template-columns:1fr; } .accommodation-overview { padding:1rem; } }
.contacts-main { padding-block:2.5rem 4rem; }
.contacts-heading,.contacts-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.contacts-heading { margin-bottom:1.8rem; }
.contacts-heading h1 { color:var(--cvut-dark); font-size:2.6rem; }
.contacts-heading p:last-child { margin:0; color:var(--muted); }
.contacts-actions { display:flex; align-items:center; flex-wrap:wrap; gap:.65rem; }
.contacts-page .button { gap:.55rem; border-radius:8px; font-size:.88rem; cursor:pointer; }
.contacts-page .button:disabled { opacity:.5; cursor:not-allowed; transform:none; }
.contacts-page svg { width:20px; height:20px; flex:none; vertical-align:middle; }
.contacts-page .contacts-secondary { color:var(--cvut-dark); background:white; border-color:#cadbe8; }
.contacts-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-bottom:1.5rem; }
.contacts-stats article { display:flex; align-items:center; gap:1rem; border:1px solid #dce6ee; border-radius:12px; padding:1.25rem 1.5rem; background:white; }
.contacts-stats article>svg { box-sizing:content-box; width:24px; height:24px; padding:13px; border-radius:12px; color:var(--blue); background:#edf6fd; }
.contacts-stats strong,.contacts-stats span { display:block; }
.contacts-stats strong { font-size:1.9rem; line-height:1.2; color:var(--cvut-dark); font-variant-numeric:tabular-nums; }
.contacts-stats span { margin-top:.3rem; color:var(--muted); font-size:.86rem; }
.contacts-panel { padding:1.5rem; border:1px solid #dce6ee; border-radius:12px; background:white; box-shadow:0 3px 14px #17364b04; margin-bottom:1.5rem; scroll-margin-top:130px; min-width:0; }
.contacts-panel h2 { font-size:1.3rem; color:var(--cvut-dark); }
.contacts-panel-heading p { margin:0; font-size:.87rem; }
.contacts-muted { color:var(--muted); }
.contacts-small { font-size:.8rem; }
.contacts-text-link { color:var(--blue); font-size:.86rem; font-weight:700; text-decoration:none; white-space:nowrap; }
.contacts-text-link:hover { text-decoration:underline; }
.contact-row-actions { display:flex; align-items:center; gap:1rem; }
.contact-row-actions form { margin:0; }
.contacts-delete-link { padding:0; border:0; background:none; color:#a2463d; font:inherit; font-size:.86rem; font-weight:700; cursor:pointer; }
.contacts-delete-link:hover { text-decoration:underline; }
.contact-delete-dialog { position:fixed; inset:0; margin:auto; width:min(440px,calc(100vw - 2rem)); height:fit-content; max-height:calc(100vh - 2rem); overflow:auto; padding:1.6rem; border:1px solid #dce6ee; border-radius:14px; color:var(--ink); background:white; box-shadow:0 18px 70px #17364b30; }
.contact-delete-dialog::backdrop { background:#17364b70; }
.contact-delete-dialog h2 { margin:0; color:var(--cvut-dark); font-size:1.35rem; }
.contact-delete-dialog p { margin:0; font-size:.88rem; line-height:1.65; }
.contact-delete-person { display:grid; gap:.3rem; overflow-wrap:anywhere; }
.contact-delete-person span { color:var(--muted); font-size:.85rem; }
.contact-delete-dialog .contacts-actions { justify-content:flex-end; margin-top:.3rem; }
.contacts-page .contacts-danger-button { color:white; background:#a2463d; border-color:#a2463d; }
.contacts-page .contacts-danger-button:hover { background:#89362f; border-color:#89362f; }
.contacts-page .contacts-campaign-delete { color:#a2463d; border-color:#e9cdc8; }
.contacts-page .contacts-campaign-delete:hover { color:#89362f; background:#fff5f3; }
.contacts-filters { display:flex; align-items:center; flex-wrap:wrap; gap:1rem; padding:1.25rem 0; }
.contacts-search { display:flex; align-items:center; position:relative; flex:1; min-width:230px; }
.contacts-search svg { position:absolute; left:.8rem; color:#718497; }
.contacts-search input { padding-left:2.6rem!important; }
.contacts-page input,.contacts-page select,.contacts-page textarea { min-height:44px; padding:.65rem .8rem; border:1px solid #ccd9e4; border-radius:7px; background:#fff; color:var(--ink); font-size:.9rem; width:100%; }
.contacts-page :is(input,select,textarea,a,button):focus-visible { outline:3px solid #84bbe7; outline-offset:2px; }
.contacts-table-wrap { max-height:660px; overflow:auto; border-top:1px solid #e2eaf0; }
.contacts-table { border-collapse:collapse; width:100%; font-size:.85rem; text-align:left; }
.contacts-table th { background:#f7fafd; padding:.8rem .75rem; color:#597084; font-size:.74rem; font-weight:700; position:sticky; top:0; z-index:1; }
.contacts-table td { padding:1rem .75rem; border-bottom:1px solid #edf1f5; vertical-align:middle; }
.contacts-table tr:hover td { background:#fafdff; }
.contacts-table td:first-child { width:34%; overflow-wrap:anywhere; }
.contacts-table td:first-child strong { display:block; font-weight:650; }
.contacts-table td:first-child>a { display:block; color:#5f7385; font-size:.8rem; text-decoration:none; }
.contacts-table .contact-name-note { display:block; margin-top:.3rem; color:#718394; font-size:.72rem; font-weight:400; }
.contacts-table a.contact-name-note { color:#58758c; font-size:.72rem; }
.contacts-table a.contact-name-note:hover { text-decoration:underline; }
.contacts-form input[readonly] { color:#627485; background:#f4f7fa; }
.contacts-table td:nth-child(2) { max-width:220px; }
.contact-badge,.contact-status-muted { display:inline-flex; gap:.4rem; align-items:center; font-size:.76rem; white-space:nowrap; }
.contact-badge { border-radius:20px; padding:.3rem .65rem; background:#eef2f6; color:#516473; text-decoration:none; }
.contact-badge--registered { background:#eaf6ee; color:#216740; }
.contact-badge--excluded { background:#fff3e9; color:#855221; }
.contact-badge svg,.contact-status-muted svg { width:15px; height:15px; }
.contact-status-muted { color:#748292; }
.contacts-empty { text-align:center; padding:2rem; color:var(--muted); }
.contacts-bottom-grid { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:1.5rem; align-items:start; }
.contacts-side-stack { min-width:0; }
.contacts-form { display:grid; gap:1rem; }
.contacts-form label { display:grid; gap:.35rem; font-size:.84rem; font-weight:650; }
.contacts-form textarea { line-height:1.7; resize:vertical; }
.contacts-form button { justify-self:start; }
.contacts-form .contacts-checkbox { display:flex; align-items:center; gap:.65rem; }
.contacts-checkbox input { width:18px; min-height:18px; height:18px; accent-color:var(--blue); }
.contacts-notice { padding:.9rem 1rem; border:1px solid #c9e0f3; border-radius:8px; background:#edf6fd; color:#265778; font-size:.87rem; margin-bottom:1.25rem; }
.contacts-notice--error { background:#fff2f0; color:#9b392e; border-color:#f0d5d0; }
.contact-email-preview { border:1px solid #dce6ee; padding:1.5rem; background:#f7fafd; border-radius:8px; margin:1.3rem 0; overflow-wrap:anywhere; }
.contacts-send-progress { margin-bottom:1rem; }
.contacts-send-progress progress { accent-color:var(--blue); width:100%; height:10px; }
.contacts-send-progress p { font-size:.85rem; margin:.5rem 0; }
.contacts-recipient-details { margin-top:1.5rem; font-size:.85rem; }
.contacts-recipient-details summary { cursor:pointer; color:var(--cvut-dark); }
.contacts-recipient-details ul { padding:0; list-style:none; max-height:270px; overflow:auto; }
.contacts-recipient-details li { display:flex; justify-content:space-between; gap:1rem; border-bottom:1px solid #edf1f5; padding:.45rem 0; overflow-wrap:anywhere; }
.contacts-history { margin:0; padding:0; list-style:none; max-height:440px; overflow:auto; }
.contacts-history li { display:flex; align-items:center; gap:1rem; }
.contacts-history li>a { flex:1; min-width:0; }
.contacts-history form { margin:0; flex:none; padding-right:.25rem; }
.contacts-history li+li { border-top:1px solid #edf1f5; }
.contacts-history a { display:block; padding:.8rem 0; text-decoration:none; font-size:.88rem; overflow-wrap:anywhere; }
.contacts-history span { display:block; font-size:.8rem; color:var(--muted); }
.contacts-page [hidden] { display:none!important; }
@media(max-width:1000px) { .admin-page .header-inner { flex-wrap:wrap; padding-block:1rem; } .admin-page .admin-nav { justify-content:flex-start; width:100%; } .contacts-table { min-width:850px; } }
@media(max-width:700px) { .contacts-heading,.contacts-panel-heading { align-items:flex-start; flex-direction:column; gap:.8rem; } .contacts-heading h1 { font-size:2.1rem; } .contacts-main { padding-top:1.5rem; } .contacts-stats { grid-template-columns:1fr; gap:.6rem; } .contacts-stats article { padding:.9rem 1.1rem; } .contacts-stats strong { font-size:1.5rem; } .contacts-stats article>svg { padding:10px; } .contacts-stats span { margin-top:0; } .contacts-bottom-grid { grid-template-columns:1fr; gap:0; } .contacts-panel { padding:1rem; } .contacts-filters { align-items:stretch; gap:.65rem; } .contacts-search { flex-basis:100%; min-width:0; } .contacts-filters>label:nth-child(2) { flex:1; } .contacts-table { min-width:0; } .contacts-table thead { display:none; } .contacts-table tr { display:block; padding:.8rem 0; border-bottom:1px solid #e2eaf0; } .contacts-table td { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.3rem 0; border:0; width:100%!important; max-width:none!important; } .contacts-table td:first-child { display:block; } .contacts-table td:not(:first-child)[data-label]::before { content:attr(data-label); font-size:.75rem; color:var(--muted); flex:none; } .contact-email-preview { padding:.5rem; } .contacts-recipient-details li { display:block; } .contacts-recipient-details li span { display:block; } }
