:root{--royal:#17489a;--royal-deep:#103774;--royal-soft:#eaf0fb;--milk:#fbf8f0;--paper:#fffefa;--ink:#202c3d;--muted:#6b7480;--line:#e6e2d8;--red:#b83b42;--red-soft:#f8e9e8;--shadow:0 18px 48px rgba(26,53,91,.08)}
body{background:var(--milk);color:var(--ink)}
.topbar{height:auto;min-height:82px;background:rgba(255,254,250,.96);border-bottom:1px solid var(--line);padding:12px max(22px,calc((100vw - 1120px)/2));gap:18px;box-shadow:0 4px 18px rgba(33,51,78,.035)}
.brand-lockup{display:flex;align-items:center;gap:12px;min-width:0;color:var(--royal-deep);text-decoration:none}.brand-lockup img{width:52px;height:52px;object-fit:contain;border-radius:50%;background:#fff;border:1px solid #e1e6ed;padding:2px}.brand-lockup span{display:grid;gap:4px}.brand-lockup strong{font-size:13px;letter-spacing:.07em;line-height:1.25}.brand-lockup small{font-size:10px;letter-spacing:.16em;color:var(--muted)}
.topbar nav{gap:22px}.topbar nav a,.link-button{color:var(--royal);font-size:13px;font-weight:650}.topbar nav a:hover,.link-button:hover{color:var(--red)}
.container{max-width:1120px;margin:38px auto 60px;padding:0 24px}.eyebrow{font-size:10px;letter-spacing:.19em;color:var(--royal);font-weight:800}.container h1{font-size:clamp(28px,4vw,42px);letter-spacing:-.035em;color:#172b47;margin:7px 0 10px}.container h2{color:#1d3558;letter-spacing:-.02em}.muted{color:var(--muted);line-height:1.65}
.welcome-panel{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;min-height:235px;padding:36px 46px;margin-bottom:35px;border-radius:20px;background:linear-gradient(115deg,#173d7d 0%,#2256a2 68%,#2b63ad 100%);color:white;box-shadow:0 20px 46px rgba(23,72,154,.18)}.welcome-panel:after{content:"";position:absolute;width:310px;height:310px;right:10%;top:-175px;border:1px solid rgba(255,255,255,.16);border-radius:50%;box-shadow:0 0 0 34px rgba(255,255,255,.035),0 0 0 68px rgba(255,255,255,.025)}.welcome-panel .eyebrow{color:#d9e5fa}.welcome-panel h1{color:white;margin:10px 0;font-size:clamp(30px,4vw,44px)}.welcome-panel .muted{color:#e2eafa;margin:0}.welcome-panel img{position:relative;z-index:1;width:116px;height:128px;object-fit:contain;padding:4px;background:#fff;border:1px solid rgba(255,255,255,.7);border-radius:16px;box-shadow:0 9px 25px rgba(0,0,0,.12)}
.section-heading{display:flex;align-items:end;justify-content:space-between;margin:0 0 16px}.section-heading h2{margin:4px 0 0;font-size:23px}.section-note{font-size:12px;color:var(--muted);padding-bottom:4px}.cards{gap:15px;margin:0 0 24px}.stat-card{position:relative;overflow:hidden;min-height:132px;padding:21px 22px;border-radius:14px;background:var(--paper);border-color:var(--line);box-shadow:var(--shadow)}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--royal)}.stat-card:nth-child(2):before{background:#5979b5}.stat-card:nth-child(3):before{background:#889bc2}.stat-card:nth-child(4):before{background:var(--red)}.stat-card span{font-size:12px;font-weight:650;color:#657185}.stat-card strong{font-size:34px;color:var(--royal-deep);margin-top:14px}
.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.action-card{min-height:126px;display:flex;align-items:center;gap:16px;padding:22px;background:var(--paper);border:1px solid var(--line);border-radius:14px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.action-card:hover{transform:translateY(-2px);border-color:#b8c9e1;box-shadow:0 20px 45px rgba(26,53,91,.12)}.action-card>span:nth-child(2){display:grid;gap:5px;flex:1}.action-card small{font-size:9px;letter-spacing:.15em;color:var(--royal);font-weight:800}.action-card strong{font-size:18px;color:#203b62}.action-card em{font-size:12px;color:var(--muted);font-style:normal}.action-card>b{font-size:20px;color:var(--royal)}.action-icon{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:13px;background:var(--royal-soft);color:var(--royal);font-size:25px}.action-primary .action-icon{background:var(--red-soft);color:var(--red)}.action-primary small,.action-primary>b{color:var(--red)}
.page-footer{margin-top:40px;border-top:1px solid var(--line);padding-top:17px;color:#77808b;font-size:10px;letter-spacing:.13em}.page-footer span{color:var(--red);padding:0 5px}
.page-intro{margin:10px 0 25px}.page-intro h1{margin-bottom:5px}.page-intro p{margin-top:0}
.search-form{grid-template-columns:1.1fr 2fr .8fr auto;gap:12px;padding:20px;background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);margin-top:0}.search-form label,.record-form label{color:#40516a;font-size:12px;letter-spacing:.015em}.search-form input,.search-form select,.record-form input,.record-form select,.record-form textarea{border-color:#d8d7d0;border-radius:9px;background:#fffefa;color:var(--ink);transition:border-color .15s,box-shadow .15s}.search-form input:focus,.search-form select:focus,.record-form input:focus,.record-form select:focus,.record-form textarea:focus{outline:0;border-color:#6f91c7;box-shadow:0 0 0 3px rgba(42,93,164,.12)}.button.primary{background:var(--royal);border-radius:9px;box-shadow:0 5px 12px rgba(23,72,154,.16)}.button.primary:hover{background:var(--royal-deep)}.button.secondary{background:#f1eee6;color:#44536b;border-radius:9px}.table-wrap{border-color:var(--line);border-radius:14px;box-shadow:var(--shadow)}th{background:#f3f5f8;color:#53647b;letter-spacing:.06em;text-transform:uppercase;font-size:10px}td{color:#344259}tr:last-child td{border-bottom:0}.panel{border-color:var(--line);border-radius:14px;box-shadow:var(--shadow)}
.record-form{gap:17px;margin-top:17px}.record-form fieldset{border-color:var(--line);background:rgba(255,254,250,.72);border-radius:13px}.record-form legend{color:var(--royal);font-size:13px;padding:0 8px}.record-form .form-grid{gap:14px}.record-form label.wide{grid-column:1/-1}.form-actions{padding-top:4px}
.auth-page{background:radial-gradient(ellipse at 50% 12%,#e8eef8 0%,transparent 45%),var(--milk)}.auth-card{width:min(100%,470px);padding:38px 42px;border-radius:20px;border-color:#e8e3d8;background:var(--paper);box-shadow:0 24px 70px rgba(25,48,83,.12);text-align:center}.auth-logo{width:95px;height:105px;object-fit:contain;border-radius:15px;background:white;border:1px solid #e6e7e8;padding:4px;margin-bottom:15px}.auth-card h1{font-size:25px;line-height:1.26;letter-spacing:.02em;color:var(--royal-deep);margin:7px auto 11px}.auth-card .eyebrow{margin-bottom:8px}.auth-card .muted{font-size:13px}.auth-card form{text-align:left;gap:14px}.auth-card label{color:#44536a;font-size:12px}.auth-card input{border-radius:9px;border-color:#d9d8d2}.auth-card .button{margin-top:4px}
.alert{background:var(--red-soft);color:#8c292e;border-left:3px solid var(--red);text-align:left;border-radius:8px}.container>.muted{padding:15px 2px}
@media(max-width:760px){.topbar{padding:12px 18px}.brand-lockup strong{font-size:11px}.topbar nav{gap:12px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.search-form{grid-template-columns:1fr 1fr}.search-form label:nth-child(2){grid-column:1/-1}.search-form .button{grid-column:1/-1}.welcome-panel{padding:28px;min-height:200px}.welcome-panel img{width:86px;height:96px}}
@media(max-width:520px){.container{padding:0 16px;margin:26px auto 44px}.topbar{align-items:flex-start}.brand-lockup img{width:42px;height:44px}.brand-lockup small{font-size:8px}.topbar nav{gap:9px;flex-wrap:wrap;justify-content:flex-end}.topbar nav a,.link-button{font-size:11px}.welcome-panel{padding:24px 20px;min-height:0}.welcome-panel img{width:65px;height:72px;margin-left:10px}.welcome-panel h1{font-size:27px}.welcome-panel .muted{font-size:13px}.section-note{display:none}.stat-card{min-height:112px;padding:17px}.stat-card strong{font-size:29px}.action-grid{grid-template-columns:1fr}.auth-card{padding:30px 24px}.search-form{grid-template-columns:1fr}.search-form label:nth-child(2),.search-form .button{grid-column:auto}.form-grid{grid-template-columns:1fr}.record-form label.wide{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.action-card{transition:none}}

/* Readability and typography refinement */
body{font-family:"Aptos","Segoe UI",Arial,sans-serif;font-size:17px;line-height:1.65}
h1,h2,.action-card strong{font-family:Georgia,"Times New Roman",serif;font-weight:600;letter-spacing:-.015em}
.topbar nav a,.link-button{font-size:15px}
.brand-lockup strong{font-family:"Aptos","Segoe UI",Arial,sans-serif;font-size:15px;letter-spacing:.055em}
.brand-lockup small{font-size:12px;letter-spacing:.12em}
.eyebrow{font-size:12px;letter-spacing:.14em}
.container h1{font-size:clamp(34px,4.3vw,48px);line-height:1.2}
.muted{font-size:17px;line-height:1.7}
.welcome-panel h1{font-size:clamp(36px,4.4vw,48px)}
.section-heading h2{font-size:27px}
.section-note{font-size:14px}
.stat-card span{font-size:15px}
.stat-card strong{font-size:39px}
.action-card small{font-size:12px;letter-spacing:.11em}
.action-card strong{font-size:21px}
.action-card em{font-size:15px}
.action-icon{font-size:27px}
.page-footer{font-size:12px;letter-spacing:.1em}
.search-form label,.record-form label,.auth-card label{font-size:14px;letter-spacing:0}
.search-form input,.search-form select,.record-form input,.record-form select,.record-form textarea,.auth-card input{font-size:16px}
.search-form input,.search-form select,.record-form input,.record-form select{height:50px}
.record-form legend{font-size:15px}
.record-form fieldset{padding:21px}
.button{font-size:16px;padding:13px 20px}
.search-form .button{height:50px}
th{font-size:13px;letter-spacing:.05em}
td{font-size:16px}
.auth-card h1{font-size:29px;line-height:1.35}
.auth-card .muted{font-size:15px}
.auth-card input{height:50px}
.auth-card .eyebrow{font-size:12px}
.alert{font-size:15px;line-height:1.55}
@media(max-width:760px){.topbar nav a,.link-button{font-size:14px}.brand-lockup strong{font-size:13px}.brand-lockup small{font-size:10px}.container h1{font-size:36px}.muted{font-size:16px}.stat-card span{font-size:14px}.action-card em{font-size:14px}}
@media(max-width:520px){body{font-size:16px}.brand-lockup strong{font-size:12px}.brand-lockup small{font-size:10px}.topbar nav a,.link-button{font-size:13px}.container h1{font-size:33px}.welcome-panel h1{font-size:30px}.welcome-panel .muted{font-size:14px}.stat-card span{font-size:14px}.stat-card strong{font-size:34px}.action-card strong{font-size:19px}.action-card em{font-size:14px}.eyebrow{font-size:12px}.auth-card h1{font-size:25px}.search-form label,.record-form label{font-size:14px}}



/* Parish register: clear summary, generous detail area, and accessible actions */
.records-wrap{overflow-x:auto;border-radius:16px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);margin-top:24px}
.records-table{width:100%;min-width:900px;table-layout:fixed;border-collapse:separate;border-spacing:0}
.records-table th{padding:15px 12px;text-align:left;background:#eaf0fb;color:#17489a;font-size:13px;font-weight:850;letter-spacing:.065em;border-bottom:1px solid #d5e0f1}
.records-table td{padding:17px 12px;vertical-align:middle;border-bottom:1px solid #e3e8f0;color:#203451;font-size:16px;line-height:1.5;overflow-wrap:anywhere}
.records-table tbody tr:nth-child(even){background:#fbfcff}.records-table tbody tr:hover{background:#f4f7fd}.records-table tbody tr:last-child td{border-bottom:0}
.records-table--baptisms{min-width:900px}.records-table--baptisms th:nth-child(1){width:6%}.records-table--baptisms th:nth-child(2){width:8%}.records-table--baptisms th:nth-child(3){width:22%}.records-table--baptisms th:nth-child(4){width:12%}.records-table--baptisms th:nth-child(5){width:10%}.records-table--baptisms th:nth-child(6){width:34%}.records-table--baptisms th:nth-child(7){width:8%}
.records-table--first_communions th:nth-child(1),.records-table--confirmations th:nth-child(1),.records-table--marriages th:nth-child(1){width:12%}
.record-year,.record-serial,.record-date{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:750;color:#173d7d!important}.record-serial{font-size:17px}.record-name{font-weight:800;color:#173d7d!important;font-size:16px}.record-type{white-space:nowrap}
.type-pill{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;background:#edf1f8;color:#344b70;font-size:13px;font-weight:800;white-space:nowrap}.type-pill--solemn{background:#e8efff;color:#204c96}.type-pill--private{background:#fff1e7;color:#9a4d20}.type-pill--adult{background:#e9f4ee;color:#286345}.type-pill--reception{background:#fde8ed;color:#a32d49}
.record-disclosure{min-width:120px}.record-disclosure summary{display:inline-flex;align-items:center;gap:9px;min-height:42px;padding:8px 13px;border:1px solid #b9cbed;border-radius:9px;background:#eaf2ff;color:#17489a;font-size:15px;font-weight:800;cursor:pointer;list-style:none;transition:background .15s,border-color .15s}.record-disclosure summary::-webkit-details-marker{display:none}.record-disclosure summary::after{content:'+';font-size:19px;line-height:1;color:#b8324a}.record-disclosure[open] summary{background:#17489a;border-color:#17489a;color:#fff}.record-disclosure[open] summary::after{content:'−';color:#ffd5dc}.record-disclosure summary:hover{border-color:#17489a;box-shadow:0 3px 10px rgba(23,72,154,.12)}
.baptism-details{display:grid;grid-template-columns:1fr;gap:12px;padding:16px 4px 4px}.baptism-details>span{display:grid;gap:3px;min-width:0}.baptism-details strong{font-size:13px;letter-spacing:.025em;color:#17489a;font-weight:850}.baptism-details>span>span{font-size:16px;font-weight:700;line-height:1.45;color:#263a58;overflow-wrap:anywhere}.baptism-details .detail-remarks{padding-top:10px;border-top:1px solid #e3e8f0}.couple-separator{display:inline-block;margin:0 5px;color:#b8324a;font-weight:800}
.record-edit{display:grid;place-items:center;width:46px;height:46px;margin:auto;border:1px solid #c3d4ef;border-radius:11px;background:#eaf2ff;color:#17489a;transition:background .15s,color .15s,transform .15s}.record-edit svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.record-edit:hover,.record-edit:focus-visible{background:#17489a;color:#fff;border-color:#17489a;transform:translateY(-1px);outline:3px solid #dbe7fb}
@media(max-width:760px){.records-wrap{overflow:visible;border:0;box-shadow:none;background:transparent;margin-top:18px}.records-table{display:block;min-width:0;width:100%}.records-table thead{display:none}.records-table tbody{display:grid;gap:14px}.records-table tbody tr{display:block;padding:4px 15px;background:var(--paper)!important;border:1px solid #dce4f0;border-radius:15px;box-shadow:0 8px 22px rgba(26,53,91,.08)}.records-table td{display:grid;grid-template-columns:minmax(110px,34%) minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid #e9edf4;white-space:normal;vertical-align:top}.records-table td::before{content:attr(data-label);font-size:13px;font-weight:850;letter-spacing:.025em;color:#17489a}.records-table .record-name{font-size:17px}.records-table .record-type{align-items:center}.records-table .details-cell{display:block}.records-table .details-cell::before{display:block;margin-bottom:10px}.record-disclosure summary{min-height:46px;padding:10px 15px;font-size:16px}.baptism-details{gap:13px;padding-top:14px}.baptism-details strong{font-size:14px}.baptism-details>span>span{font-size:17px}.records-table .record-action{display:flex;justify-content:flex-end;border-bottom:0;padding:12px 0 8px}.records-table .record-action::before{display:none}.record-edit{width:48px;height:48px;margin:0}.record-edit svg{width:24px;height:24px}}
@media(max-width:380px){.records-table td{grid-template-columns:96px minmax(0,1fr);gap:8px}}