* { box-sizing: border-box; }
html, body { margin:0; padding:0; font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; color:#1f2937; background:#f8fafc; }
a { color:#2563eb; }
.site-header { background:#fff; border-bottom:1px solid #e5e7eb; padding:.75rem 1rem; display:flex; align-items:center; justify-content:space-between; position:sticky; top:0; z-index:10; }
.brand { display:flex; align-items:center; gap:.6rem; }
.logo { width:34px; height:34px; display:grid; place-items:center; background:#0ea5e9; color:#fff; border-radius:8px; font-weight:700; }
.brand-name { font-weight:700; }
.topnav a { text-decoration:none; color:#374151; margin-left:1rem; }
.topnav a:hover { text-decoration:underline; }
.container { max-width:1100px; margin:0 auto; padding:1rem; }
.page-title { font-size:1.7rem; margin:.4rem 0 .2rem; }
.page-sub { color:#64748b; margin:0 0 1rem; }
.box { background:#fff; border:1px solid #e5e7eb; border-radius:12px; padding:1rem; margin-bottom:1rem; }
.row { display:flex; flex-wrap:wrap; gap:1rem; }
.col { flex:1 1 0; min-width:260px; }
.small { font-size:.9rem; color:#64748b; }
input[type=text], input[type=date], select, textarea { width:100%; padding:.55rem .65rem; border:1px solid #cbd5e1; border-radius:10px; outline:none; background:#fff; }
input:focus, select:focus, textarea:focus { border-color:#2563eb; box-shadow: 0 0 0 3px rgba(37,99,235,.15); }
textarea { min-height:100px; }
.btn { display:inline-block; padding:.5rem .85rem; border:1px solid #cbd5e1; border-radius:10px; background:#f1f5f9; color:#111827; cursor:pointer; }
.btn:hover { filter:brightness(.98); }
.btn.primary { background:#2563eb; border-color:#2563eb; color:#fff; }
.dropdown { position:relative; }
.dropdown-list { position:absolute; top:calc(100% + 4px); left:0; right:0; background:#fff; border:1px solid #e5e7eb; border-radius:10px; max-height:220px; overflow:auto; box-shadow:0 8px 22px rgba(0,0,0,.08); z-index:20; }
.dropdown-item { padding:.5rem .6rem; cursor:pointer; }
.dropdown-item.active, .dropdown-item:hover { background:#f8fafc; }
.parish-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap:.6rem; }
.list-item { display:flex; justify-content:space-between; align-items:center; padding:.55rem .6rem; border:1px solid #e5e7eb; border-radius:10px; background:#fafafa; }
.list-item:hover { background:#f1f5f9; }
.star { cursor:pointer; margin-left:.4rem; }
.smalllist { max-height:140px; overflow:auto; border:1px dashed #e5e7eb; border-radius:10px; padding:.4rem; background:#fcfcfd; }
.pills { display:flex; gap:.5rem; flex-wrap:wrap; }
.pill { padding:.4rem .7rem; border:1px solid #cbd5e1; border-radius:999px; cursor:pointer; background:#fff; }
.pill.active { background:#2563eb; color:#fff; border-color:#2563eb; }
.info-row { display:flex; gap:1rem; flex-wrap:wrap; margin:.3rem 0; }
.info-row > div { flex:1 1 240px; }
.readonly { display:inline-block; padding:.55rem .65rem; background:#f8fafc; border:1px solid #e5e7eb; border-radius:10px; min-height:40px; }
.breadcrumb { color:#64748b; font-size:.95rem; margin-bottom:.4rem; }
.breadcrumb a { color:#374151; text-decoration:none; }
.breadcrumb a:hover { text-decoration:underline; }
footer { text-align:center; padding:1rem; color:#64748b; border-top:1px solid #e5e7eb; background:#f8fafc; margin-top:2rem; }
.fixed-footer { position:sticky; bottom:0; }
.hidden { display:none !important; }
