:root {
    --ink: #173146;
    --muted: #677986;
    --line: #dce3e5;
    --canvas: #f4f6f3;
    --card: #fff;
    --navy: #153b57;
    --blue: #246b8e;
    --blue-soft: #e8f2f6;
    --gold: #b48b45;
    --green: #287255;
    --green-soft: #e7f3ed;
    --red: #a64242;
    --red-soft: #faeaea;
    --radius: 14px;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--ink);
    background: var(--canvas);
}

* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: var(--canvas); }
a { color: var(--blue); text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, .button { cursor: pointer; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 252px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; padding: 25px 18px; display: flex; flex-direction: column; color: #edf6fa; background: linear-gradient(175deg, #12364f 0%, #183f59 67%, #224c63 100%); }
.brand { display: flex; flex-direction: column; align-items: center; gap: 7px; padding: 0 0 25px; color: #fff; }
.brand-logo { display: block; flex: none; max-width: 100%; height: auto; object-fit: contain; }
.brand-logo-sidebar { width: 80%; }
.brand-caption { display: block; width: 100%; margin-top: 3px; color: #fff; font-size: 11px; font-weight: 700; line-height: 1.3; letter-spacing: .12em; text-align: center; }
.sidebar nav { min-height: 0; display: grid; flex: 1; align-content: start; gap: 5px; overflow-y: auto; }
.sidebar nav a { display: flex; align-items: center; gap: 12px; padding: 11px 13px; border-radius: 9px; color: #cfdee5; font-size: 14px; font-weight: 600; }
.sidebar nav a span { width: 18px; text-align: center; font-size: 18px; }
.sidebar nav a:hover, .sidebar nav a.active { color: white; background: rgba(255,255,255,.11); }
.sidebar nav a.nav-child { margin-left: 31px; padding: 7px 11px; gap: 6px; font-size: 12px; font-weight: 550; }
.sidebar nav a.nav-child span { width: 10px; font-size: 11px; }
.nav-label { margin: 22px 13px 5px; color: #789caf; font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.sidebar-user { margin-top: auto; padding: 16px 7px 0; display: flex; align-items: center; gap: 9px; border-top: 1px solid rgba(255,255,255,.12); }
.sidebar-user > div:nth-child(2) { min-width: 0; flex: 1; }
.sidebar-user strong, .sidebar-user small { overflow: hidden; display: block; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-user strong { color: #fff; font-size: 12px; }
.sidebar-user small { margin-top: 2px; color: #8fb0c0; font-size: 10px; }
.avatar { width: 36px; height: 36px; display: inline-grid; place-items: center; flex: none; border-radius: 50%; color: #fff; background: #588095; font-weight: 750; }
.avatar.soft { color: var(--blue); background: var(--blue-soft); }
.icon-button { padding: 5px; border: 0; color: #a9c1cd; background: transparent; font-size: 18px; }

.main-content { min-width: 0; }
.topbar { min-height: 110px; padding: 26px clamp(24px, 4vw, 55px); display: flex; align-items: center; gap: 20px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.65); }
.topbar h1 { margin: 2px 0 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(27px, 3vw, 36px); font-weight: 500; color: var(--navy); }
.eyebrow { margin: 0; color: var(--gold); font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.topbar-action { margin-left: auto; }
.menu-toggle { display: none; border: 0; background: transparent; color: var(--navy); font-size: 24px; }
.page-content { width: 100%; max-width: 1180px; padding: 34px clamp(24px, 4vw, 55px) 60px; }

.button { min-height: 40px; padding: 9px 16px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: #fff; font-size: 13px; font-weight: 700; }
.button:hover { border-color: #b7c5ca; }
.button-primary { border-color: var(--navy); color: #fff; background: var(--navy); box-shadow: 0 6px 15px rgba(21,59,87,.14); }
.button-danger { border-color: #eccccc; color: var(--red); background: #fff8f8; }
.button-small { min-height: 32px; padding: 6px 10px; font-size: 12px; }
.button-block { width: 100%; }
.link-button { padding: 0; border: 0; color: var(--blue); background: transparent; font-size: 13px; font-weight: 700; }

.alert { margin: 0 0 22px; padding: 13px 16px; border: 1px solid; border-radius: 9px; font-size: 13px; }
.alert ul { margin: 7px 0 0; padding-left: 20px; }
.alert-success { border-color: #b8dcc9; color: #205d45; background: var(--green-soft); }
.alert-error { border-color: #edc4c4; color: #8d3535; background: var(--red-soft); }

.stat-grid { display: grid; grid-template-columns: 1fr; gap: 18px; }
.stat-card { position: relative; overflow: hidden; min-height: 112px; padding: 23px 25px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--radius); color: var(--ink); background: var(--card); box-shadow: 0 7px 24px rgba(35,60,72,.045); }
.stat-card::before { position: absolute; inset: 0 auto 0 0; width: 4px; content: ""; background: var(--blue); }
.stat-card.accent-gold::before { background: var(--gold); }
.stat-card.accent-green::before { background: var(--green); }
.stat-card span { color: var(--muted); font-size: 12px; font-weight: 650; }
.stat-card strong { margin: 7px 0 4px; font-family: Georgia, serif; font-size: 35px; font-weight: 500; }
.stat-card small { margin-top: auto; color: #829099; font-size: 11px; }
.dashboard-grid { margin-top: 22px; display: grid; grid-template-columns: 1fr; gap: 22px; }
.panel { border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); box-shadow: 0 7px 24px rgba(35,60,72,.04); }
.panel-header { min-height: 75px; padding: 19px 22px; display: flex; align-items: center; justify-content: space-between; gap: 15px; border-bottom: 1px solid #e8edef; }
.panel-header h2 { margin: 3px 0 0; font-family: Georgia, serif; font-size: 20px; font-weight: 500; }
.panel-header > a { font-size: 12px; font-weight: 700; }
.person-list > a { padding: 14px 22px; display: flex; align-items: center; gap: 12px; border-bottom: 1px solid #edf0f1; color: var(--ink); }
.person-list > a:last-child { border: 0; }
.person-list strong, .person-list small { display: block; }
.person-list strong { font-size: 13px; }
.person-list small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.grow { min-width: 0; flex: 1; }
.quick-panel > a { padding: 16px 20px; display: flex; align-items: center; gap: 12px; border-bottom: 1px solid #edf0f1; color: var(--ink); }
.quick-panel > a > span { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 8px; color: var(--blue); background: var(--blue-soft); font-size: 18px; }
.quick-panel > a div { flex: 1; }
.quick-panel > a strong, .quick-panel > a small { display: block; }
.quick-panel > a strong { font-size: 13px; }
.quick-panel > a small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.quick-panel > a b { color: #9aa8ae; }
.link-summary { padding: 18px 22px; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.link-summary-item { padding: 14px 16px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border: 1px solid #e5ebed; border-radius: 8px; background: #fafcfb; }
.link-summary-item span { color: #425663; font-size: 12px; font-weight: 650; }
.link-summary-item strong { font-family: Georgia, serif; font-size: 24px; font-weight: 500; }

.toolbar { margin-bottom: 20px; padding: 14px; display: flex; flex-wrap: wrap; align-items: end; gap: 10px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.toolbar label { min-width: 130px; flex: 0 1 200px; color: var(--muted); font-size: 10px; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }
.toolbar label.search { flex: 1 1 280px; }
.toolbar input, .toolbar select { margin-top: 5px; }
input, select, textarea { width: 100%; min-height: 41px; padding: 9px 11px; border: 1px solid #cdd8dc; border-radius: 7px; color: var(--ink); background: #fff; outline: none; }
input:focus, select:focus, textarea:focus { border-color: #4c89a6; box-shadow: 0 0 0 3px rgba(76,137,166,.12); }
textarea { min-height: 110px; resize: vertical; }
.table-panel { overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table th { padding: 11px 16px; color: #73838b; background: #f8faf9; font-size: 10px; letter-spacing: .07em; text-align: left; text-transform: uppercase; }
.data-table td { padding: 14px 16px; border-top: 1px solid #e8edee; color: #425663; font-size: 12px; vertical-align: middle; }
.data-table td strong { display: block; color: var(--ink); font-size: 13px; }
.data-table td small { display: block; margin-top: 3px; color: #849198; }
.row-actions { display: flex; justify-content: flex-end; gap: 7px; }
.badge { display: inline-flex; padding: 4px 8px; border-radius: 99px; color: #5d6c73; background: #edf1f2; font-size: 10px; font-weight: 750; }
.badge-success { color: #276348; background: var(--green-soft); }
.badge-gold { color: #805f28; background: #f7eedc; }
.badge-danger { color: #8f3c3c; background: var(--red-soft); }
.pagination-wrap { padding: 13px 16px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; }
.pagination { display: flex; gap: 5px; }
.pagination a, .pagination span { min-width: 31px; height: 31px; display: inline-grid; place-items: center; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.pagination span.current { border-color: var(--navy); color: #fff; background: var(--navy); }
.pagination span.disabled { opacity: .45; }
.empty-state { padding: 45px 25px; text-align: center; color: var(--muted); }
.empty-state strong { color: var(--ink); }
.empty-state p { margin: 6px 0 0; font-size: 13px; }
.page-links { margin-bottom: 16px; }
.report-header { margin-bottom: 20px; padding: 23px 25px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.report-header h2 { margin: 4px 0; font-family: Georgia, serif; font-size: 27px; font-weight: 500; }
.report-header > div > p:last-child { margin: 0; color: var(--muted); font-size: 12px; }
.report-total { min-width: 175px; padding-left: 25px; border-left: 1px solid var(--line); text-align: right; }
.report-total span, .report-total small { display: block; color: var(--muted); font-size: 11px; }
.report-total strong { display: block; font-family: Georgia, serif; font-size: 36px; font-weight: 500; }
.report-section { margin-bottom: 20px; overflow: hidden; }
.data-table tfoot th { padding: 12px 16px; border-top: 2px solid var(--line); color: var(--ink); background: #f8faf9; font-size: 12px; text-align: left; }
.export-actions { padding: 0 20px 20px; justify-content: flex-start; align-items: flex-end; flex-wrap: wrap; gap: 12px; }
.export-actions form { display: flex; align-items: flex-end; gap: 8px; }
.export-actions .field { min-width: 210px; }

.form-shell { max-width: 1050px; }
.form-section { margin-bottom: 18px; overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.form-section-picker { position: relative; z-index: 2; overflow: visible; }
.form-section-header { padding: 17px 20px; border-bottom: 1px solid #e8edef; }
.form-section-header h2 { margin: 0; font-family: Georgia, serif; font-size: 19px; font-weight: 500; }
.form-section-header p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.form-grid { padding: 20px; display: grid; grid-template-columns: 1fr; gap: 17px; }
.field { grid-column: 1; color: #425663; font-size: 11px; font-weight: 700; }
.field span { display: block; margin-bottom: 6px; }
.field-value { min-height: 22px; color: var(--ink); font-size: 15px; font-weight: 600; line-height: 1.45; }
.field small { display: block; margin-top: 5px; color: #85939a; font-weight: 400; line-height: 1.45; }
.field-full, .field-third, .field-quarter { grid-column: 1; }
.member-selection-list { max-height: 360px; padding: 8px; overflow-y: auto; display: grid; grid-template-columns: 1fr; gap: 7px; border: 1px solid #cdd8dc; border-radius: 8px; background: #fafcfb; }
.scope-choice-list { max-height: none; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.scope-choice-list .member-choice { justify-content: center; }
.scope-choice-list .member-choice small { display: none; }
.member-choice { min-width: 0; padding: 10px 11px; display: flex; align-items: center; gap: 10px; border: 1px solid #e3e9eb; border-radius: 7px; background: #fff; cursor: pointer; }
.member-choice:hover { border-color: #b7c9d0; }
.member-choice > input { width: 17px; min-height: 17px; flex: none; accent-color: var(--blue); }
.member-choice > span { min-width: 0; margin: 0; }
.member-choice strong, .member-choice small { overflow: hidden; display: block; text-overflow: ellipsis; white-space: nowrap; }
.member-choice strong { font-size: 12px; }
.member-choice small { margin-top: 2px; }
.member-choice-disabled { opacity: .58; cursor: not-allowed; }
.event-participant-list { max-height: 620px; grid-template-columns: 1fr; }
.event-participant-choice { align-items: flex-start; display: grid; grid-template-columns: 1fr; cursor: default; }
.event-participant-choice select { min-width: 0; }
.participant-roles { display: flex; flex-wrap: wrap; gap: 7px 13px; }
.participant-roles .check-line { font-size: 10px; }
.event-association-list { padding: 18px 20px 20px; display: grid; gap: 10px; }
.event-association-row { overflow: hidden; border: 1px solid #dce5e7; border-radius: 9px; background: #fff; }
.event-association-main { padding: 12px 14px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(150px, 190px) auto; align-items: end; gap: 12px; }
.event-association-person { min-width: 0; align-self: center; }
.event-association-person strong, .event-association-person small { overflow: hidden; display: block; text-overflow: ellipsis; white-space: nowrap; }
.event-association-person strong { font-size: 12px; }
.event-association-person small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.event-association-state { color: #425663; font-size: 10px; font-weight: 700; }
.event-association-state span { display: block; margin-bottom: 5px; }
.event-association-roles { margin: 0; padding: 10px 14px 12px; border: 0; border-top: 1px solid #edf0f1; background: #fafcfb; }
.event-association-roles legend { padding: 0 5px; color: var(--muted); font-size: 9px; font-weight: 700; text-transform: uppercase; }
.event-association-row.is-removed { border-color: #e8cccc; opacity: .7; }
.event-association-row.is-removed .event-association-roles { background: var(--red-soft); }
.event-association-empty { padding: 30px 20px; }
.event-person-search { padding: 18px 20px 20px; }
.event-person-filters { display: grid; grid-template-columns: 1fr; gap: 13px; }
.event-person-result-count { margin: 16px 0 8px; color: var(--muted); font-size: 10px; font-weight: 700; }
.event-person-results { overflow: hidden; border: 1px solid #e1e7e9; border-radius: 9px; }
.event-person-result { padding: 11px 13px; display: flex; align-items: center; gap: 12px; border-bottom: 1px solid #edf0f1; background: #fff; }
.event-person-result:last-of-type { border-bottom: 0; }
.event-person-result > div { min-width: 0; flex: 1; }
.event-person-result strong, .event-person-result small { overflow: hidden; display: block; text-overflow: ellipsis; white-space: nowrap; }
.event-person-result strong { font-size: 12px; }
.event-person-result small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.sr-only { width: 1px; height: 1px; padding: 0; position: absolute; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.inline-management { padding: 17px 20px 20px; border-top: 1px solid #e8edef; background: #fafcfb; }
.inline-management h3 { margin: 0 0 11px; font-family: Georgia, serif; font-size: 17px; font-weight: 500; }
.inline-management > p { margin: 0; color: var(--muted); font-size: 12px; }
.inline-association-form { display: grid; grid-template-columns: 1fr; align-items: end; gap: 9px; }
.inline-association-form label { color: #425663; font-size: 10px; font-weight: 700; }
.inline-association-form label span { display: block; margin-bottom: 5px; }
.inline-choice-group { min-width: 0; margin: 0; padding: 12px; border: 1px solid #d7e0e3; border-radius: 8px; background: #fff; }
.inline-choice-group legend { padding: 0 5px; color: #425663; font-size: 10px; font-weight: 700; }
.quick-associations { display: grid; grid-template-columns: 1fr; gap: 12px; }
.quick-association-card { min-width: 0; padding: 14px; border: 1px solid #e1e8ea; border-radius: 9px; background: #fff; }
.quick-association-card > header { margin-bottom: 12px; display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.quick-association-card > header strong { font-family: Georgia, serif; font-size: 15px; font-weight: 500; }
.quick-association-card > header small, .quick-association-card > p { color: var(--muted); font-size: 10px; }
.quick-association-card > p { margin: 0; line-height: 1.6; }
.quick-association-card .inline-association-form { grid-template-columns: 1fr; }
.quick-association-card .button { justify-self: start; }
.check-line { display: flex; align-items: center; gap: 8px; color: #425663; font-size: 12px; font-weight: 600; }
.check-line input { width: 16px; min-height: 16px; accent-color: var(--blue); }
.form-actions { padding: 15px 20px; position: sticky; bottom: 0; display: flex; justify-content: flex-end; gap: 9px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.94); box-shadow: 0 -5px 20px rgba(35,60,72,.05); backdrop-filter: blur(8px); }
.link-grid { padding: 0; display: grid; grid-template-columns: 1fr; gap: 0; }
.link-card { padding: 18px 20px; border-bottom: 1px solid #e8edef; }
.link-card-title { display: flex; align-items: center; gap: 9px; }
.link-card-fields { margin-top: 13px; display: grid; grid-template-columns: 1fr; gap: 12px; }
.link-card-fields label { color: var(--muted); font-size: 10px; font-weight: 700; }
.link-card-fields input { margin-top: 5px; }

.detail-header { margin-bottom: 20px; padding: 23px 25px; display: flex; align-items: center; gap: 16px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.detail-header .avatar { width: 52px; height: 52px; font-size: 20px; }
.detail-header h2 { margin: 0; font-family: Georgia, serif; font-size: 25px; font-weight: 500; }
.detail-header p { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
.detail-header-actions { margin-left: auto; display: flex; gap: 8px; }
.detail-grid { display: grid; grid-template-columns: 1fr; gap: 18px; }
.detail-list { padding: 4px 20px 16px; }
.detail-row { padding: 13px 0; display: grid; grid-template-columns: 135px 1fr; gap: 15px; border-bottom: 1px solid #edf0f1; font-size: 12px; }
.detail-row:last-child { border: 0; }
.detail-row dt { color: var(--muted); }
.detail-row dd { margin: 0; color: var(--ink); font-weight: 600; }
.detail-badges { display: flex; flex-wrap: wrap; gap: 7px; }
.current-assignment { padding: 6px 9px; display: inline-flex; flex-direction: column; gap: 2px; border: 1px solid #dce7e2; border-radius: 7px; background: var(--green-soft); }
.current-assignment small { color: var(--muted); font-size: 9px; font-weight: 500; }
.timeline { padding: 17px 22px 20px; }
.timeline-item { position: relative; padding: 0 0 18px 20px; border-left: 1px solid #cbd8dc; }
.timeline-item:last-child { padding-bottom: 0; }
.timeline-item::before { position: absolute; top: 2px; left: -5px; width: 9px; height: 9px; border: 2px solid #fff; border-radius: 50%; content: ""; background: var(--blue); box-shadow: 0 0 0 1px var(--blue); }
.timeline-item strong, .timeline-item span { display: block; }
.timeline-item strong { font-size: 12px; }
.timeline-item span { margin-top: 3px; color: var(--muted); font-size: 10px; }
.span-full { grid-column: 1 / -1; }
.role-grid { padding: 0 20px 20px; display: grid; grid-template-columns: 1fr; gap: 12px; }
.role-card { padding: 14px; display: grid; gap: 10px; border: 1px solid #e5eaec; border-radius: 9px; background: #fafcfb; }
.role-card label { color: #425663; font-size: 11px; font-weight: 700; }
.role-card label span { display: block; margin-bottom: 6px; }
.additional-members { display: grid; gap: 8px; }
.additional-member-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: 8px; align-items: end; padding: 10px; border: 1px solid #e5eaec; border-radius: 7px; background: #fff; }
.member-grid { padding: 18px 20px; display: grid; grid-template-columns: 1fr; gap: 12px; }
.member-card { padding: 13px; display: flex; align-items: center; gap: 10px; border: 1px solid #e5eaec; border-radius: 9px; color: var(--ink); }
.member-card strong, .member-card small { display: block; }
.member-card strong { font-size: 12px; }
.member-card small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.annotation-panel { overflow: hidden; }
.annotation-layout { display: grid; grid-template-columns: 1fr; align-items: stretch; }
.annotation-form { padding: 22px; display: grid; align-content: start; gap: 14px; border-bottom: 1px solid #e8edef; background: #fafcfb; }
.annotation-form h3 { margin: 0; font-family: Georgia, serif; font-size: 17px; font-weight: 500; }
.annotation-form label { color: #425663; font-size: 11px; font-weight: 700; }
.annotation-form label span { display: block; margin-bottom: 6px; }
.annotation-form > small { color: var(--muted); font-size: 10px; line-height: 1.5; }
.annotation-form .button { justify-self: start; }
.annotation-author { margin: 0; padding: 9px 11px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid #dbe5e8; border-radius: 7px; color: var(--muted); background: #fff; font-size: 10px; }
.annotation-author span, .annotation-author strong { display: block; }
.annotation-author strong { color: var(--ink); font-size: 11px; }
.annotation-history { max-height: 480px; padding: 22px; overflow-y: auto; display: grid; align-content: start; gap: 11px; background: #fff; }
.annotation-item { padding: 15px 17px; border: 1px solid #dfe7e9; border-radius: 9px; background: #fafcfb; }
.annotation-item header { display: flex; justify-content: space-between; gap: 15px; }
.annotation-item header strong { font-size: 12px; }
.annotation-item header span { color: var(--muted); font-size: 10px; text-align: right; }
.annotation-item p { max-width: 90ch; margin: 10px 0 0; color: #425663; font-size: 12px; line-height: 1.6; }

.communication-summary { margin-bottom: 18px; padding: 16px 19px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.communication-summary .detail-badges { margin-top: 7px; }
.communication-summary > p { max-width: 620px; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.communication-tag-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.communication-member-list { max-height: 480px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.communication-channel-tabs { margin-bottom: 18px; display: flex; flex-wrap: wrap; gap: 9px; }
.communication-contact-grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.copy-contact-panel { padding: 20px; }
.copy-contact-panel > label { display: block; margin-bottom: 7px; color: #425663; font-size: 11px; font-weight: 700; }
.copy-contact-panel textarea { min-height: 220px; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 12px; line-height: 1.55; }
.copy-contact-panel > small { display: block; margin-top: 13px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.copy-contact-actions { margin-top: 10px; display: flex; align-items: center; gap: 12px; }
.communication-contact-list { max-height: 520px; overflow-y: auto; }
.communication-contact-row { padding: 13px 20px; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 14px; border-bottom: 1px solid #edf0f1; font-size: 12px; }
.communication-contact-row:last-child { border-bottom: 0; }
.communication-contact-row strong, .communication-contact-row small, .communication-contact-row a, .communication-contact-row span:not(.badge) { display: block; }
.communication-contact-row small { margin-top: 3px; color: var(--muted); font-size: 10px; }

.person-picker, .person-multi-picker { position: relative; min-width: 0; }
.person-picker > label, .person-multi-picker > label { display: block; }
.person-picker-selection { margin: 6px 0 0; color: var(--muted); font-size: 11px; }
.person-picker-results { position: absolute; z-index: 12; top: calc(100% - 2px); right: 0; left: 0; max-height: 290px; overflow-y: auto; border: 1px solid #cbd7dc; border-radius: 9px; background: #fff; box-shadow: 0 14px 32px rgba(31,55,67,.16); }
.person-picker-result { width: 100%; padding: 11px 13px; border: 0; border-bottom: 1px solid #edf0f1; background: #fff; color: var(--ink); text-align: left; cursor: pointer; }
.person-picker-result:last-child { border-bottom: 0; }
.person-picker-result:hover, .person-picker-result:focus { background: var(--blue-soft); outline: 0; }
.person-picker-result:disabled { color: #879398; background: #f5f6f6; cursor: not-allowed; }
.person-picker-result strong, .person-picker-result small { display: block; }
.person-picker-result small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.person-picker-status { margin: 0; padding: 12px 13px; color: var(--muted); font-size: 11px; }
.person-picker-selected { display: grid; gap: 7px; margin-top: 10px; }
.person-picker-selected-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 9px 11px; border: 1px solid #e1e7e9; border-radius: 8px; background: #f8faf9; }
.person-picker-selected-row strong, .person-picker-selected-row small { display: block; }
.person-picker-selected-row small { margin-top: 2px; color: var(--muted); font-size: 10px; }

.login-page { display: grid; place-items: center; padding: 25px; background: radial-gradient(circle at 15% 5%, rgba(41,112,143,.16), transparent 35rem), #eef2ef; }
.login-card { width: min(430px, 100%); padding: 38px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.96); box-shadow: 0 24px 70px rgba(31,55,67,.13); }
.login-brand { margin-bottom: 18px; }
.brand-logo-login { width: min(210px, 70vw); margin: 0 auto; opacity: 1; }
.login-card h1 { margin: 5px 0 10px; font-family: Georgia, serif; font-size: 32px; font-weight: 500; }
.muted { color: var(--muted); }
.login-card > .muted { margin: 0 0 24px; font-size: 13px; }
.stack-form { display: grid; gap: 16px; }
.stack-form > label:not(.check-line) { color: #425663; font-size: 11px; font-weight: 700; }
.stack-form input { margin-top: 6px; }
.login-help { margin: 22px 0 0; color: #8a979d; font-size: 10px; text-align: center; }

@media (max-width: 960px) {
    .app-shell { grid-template-columns: 1fr; }
    .sidebar { position: fixed; z-index: 20; width: 252px; transform: translateX(-105%); transition: transform .2s ease; }
    .menu-open .sidebar { transform: translateX(0); }
    .menu-toggle { display: block; }
    .stat-grid { grid-template-columns: 1fr; }
    .stat-card { min-height: 115px; }
    .dashboard-grid, .detail-grid { grid-template-columns: 1fr; }
    .member-grid { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
    .topbar { min-height: 90px; padding: 20px; }
    .page-content { padding: 24px 15px 45px; }
    .topbar-action .button { padding: 9px 11px; }
    .toolbar { align-items: stretch; flex-direction: column; }
    .toolbar label { flex: auto; }
    .table-panel { overflow-x: auto; }
    .data-table { min-width: 720px; }
    .field, .field-third, .field-quarter { grid-column: 1 / -1; }
    .link-grid { grid-template-columns: 1fr; }
    .link-card { border-right: 0; }
    .detail-header { align-items: flex-start; flex-wrap: wrap; }
    .detail-header-actions { width: 100%; margin: 0; }
    .detail-row { grid-template-columns: 1fr; gap: 4px; }
    .role-grid, .member-grid { grid-template-columns: 1fr; }
    .additional-member-row { grid-template-columns: 1fr; }
    .member-selection-list { grid-template-columns: 1fr; }
    .event-participant-choice { grid-template-columns: 1fr; }
    .event-association-main { grid-template-columns: 1fr; align-items: stretch; }
    .event-association-main .button { justify-self: start; }
    .inline-association-form { grid-template-columns: 1fr; }
    .quick-associations { grid-template-columns: 1fr; }
    .annotation-layout { grid-template-columns: 1fr; }
    .annotation-form { border-right: 0; border-bottom: 1px solid #e8edef; }
    .annotation-item header { align-items: flex-start; flex-direction: column; gap: 4px; }
    .annotation-item header span { text-align: left; }
    .communication-summary { align-items: stretch; flex-direction: column; gap: 12px; }
    .communication-tag-list, .communication-member-list { grid-template-columns: 1fr; }
    .communication-contact-grid { grid-template-columns: 1fr; }
    .communication-contact-row { grid-template-columns: 1fr; gap: 7px; }
    .report-header { align-items: stretch; flex-direction: column; }
    .report-total { padding: 15px 0 0; border-top: 1px solid var(--line); border-left: 0; text-align: left; }
}

@media print {
    body, .app-shell, .main-content, .page-content { background: #fff; }
    .app-shell { display: block; }
    .sidebar, .menu-toggle, .no-print, .alert { display: none !important; }
    .topbar { min-height: auto; padding: 0 0 18px; background: #fff; }
    .page-content { padding: 0; }
    .report-header, .panel { box-shadow: none; break-inside: avoid; }
    .report-detail-table { font-size: 9pt; }
    .data-table th, .data-table td { padding: 7px 9px; }
}
