:root{--ink:#0d3433;--green:#2c6b59;--green2:#3c846f;--mint:#e8f2ed;--cream:#f7f4ed;--gold:#c99b51;--red:#b94437;--line:#d9e2de;--white:#fff;--shadow:0 16px 48px rgba(13,52,51,.12)}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:#f6f8f7}h1,h2,h3,p{margin-top:0}h1,h2,.brand strong{font-family:Georgia,"Times New Roman",serif}.brand{display:flex;align-items:center;gap:14px;color:var(--ink);text-decoration:none}.brand>span{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--green);color:white;font:28px Georgia}.brand strong{display:block;font-size:28px}.brand small{display:block;letter-spacing:.14em;text-transform:uppercase}.brand.inverse{color:white}.brand.inverse>span{background:white;color:var(--green)}button,.button{border:0;border-radius:10px;padding:12px 18px;background:var(--green);color:white;font:inherit;font-weight:700;cursor:pointer;text-decoration:none}button:hover,.button:hover{background:var(--green2)}input,select,textarea{width:100%;padding:13px 14px;border:1px solid #c8d5d0;border-radius:10px;background:white;color:var(--ink);font:inherit}textarea{min-height:90px;resize:vertical}.form{display:grid;gap:16px}.form label{display:grid;gap:7px;font-weight:700}.form-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.auth{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top right,#d9e9e1,transparent 35%),var(--cream)}.auth-card{width:min(520px,100%);padding:46px;background:white;border-radius:18px;box-shadow:var(--shadow)}.auth-card h1{margin-top:48px;font-size:42px}.notice{padding:16px 18px;border-radius:12px;margin:18px 0}.notice.success{background:var(--mint);color:#195343}.notice.error{background:#fae5e1;color:var(--red)}.form-error{color:var(--red);min-height:1.3em}.admin-body #app{min-height:100vh;display:grid;grid-template-columns:270px 1fr}.admin-body aside{background:var(--ink);color:white;padding:28px 20px;display:flex;flex-direction:column}.admin-body nav{display:grid;gap:8px;margin-top:52px}.admin-body nav button,.logout{background:transparent;text-align:left}.admin-body nav button.active{background:#ffffff18;border-left:3px solid var(--gold)}.logout{margin-top:auto}.workspace{padding:34px 4vw}.workspace header{display:flex;justify-content:space-between;align-items:center;margin-bottom:34px}.workspace header h1{font-size:42px;margin:5px 0}.workspace header small,.eyebrow{color:var(--green);font-weight:800;letter-spacing:.11em;text-transform:uppercase}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.stat-grid article,.panel{padding:24px;background:white;border:1px solid var(--line);border-radius:14px;box-shadow:0 6px 22px #173b3410}.stat-grid small{display:block;color:#627772}.stat-grid strong{display:block;margin-top:14px;font:40px Georgia}.stat-grid .warning{border-top:4px solid var(--gold)}.stat-grid .danger{border-top:4px solid var(--red)}.panel{margin-top:22px}.panel h2{font-size:28px}.toolbar{display:flex;align-items:center;gap:14px;justify-content:space-between;margin-bottom:20px}.toolbar select,.toolbar input{max-width:320px}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.card-grid .panel{margin:0}.status{float:right;color:#777}.status.on{color:var(--green)}.table{display:grid;background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden}.tr{display:grid;grid-template-columns:1fr 2fr 1.4fr 1fr;gap:16px;align-items:center;padding:16px;border-bottom:1px solid var(--line)}.tr:last-child{border:0}.tr.head{background:var(--ink);color:white;font-weight:700}dialog{width:min(580px,92vw);border:0;border-radius:16px;padding:28px;box-shadow:var(--shadow)}dialog::backdrop{background:#062c2b99}.dialog-actions{display:flex;justify-content:flex-end;gap:10px}.dialog-actions [data-close]{background:#e4eae7;color:var(--ink)}.public{background:var(--cream)}.public-header{max-width:1180px;margin:auto;padding:25px;display:flex;justify-content:space-between;align-items:center}.quiet-link{color:var(--green)}.public main{max-width:1180px;margin:auto;padding:20px 25px 70px}.hero{padding:80px 7%;border-radius:24px;background:linear-gradient(120deg,#e1eee7,#fff);border:1px solid white}.hero h1{max-width:820px;font-size:clamp(44px,6vw,76px);line-height:1.02}.hero>p:not(.eyebrow){max-width:700px;font-size:19px;color:#536d67}.search{display:flex;max-width:720px;margin-top:34px;gap:10px}.search input{font-size:17px;padding:17px}.search button{min-width:130px}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:22px 0 50px}.info-grid article,.info-grid .feature{padding:20px;background:white;border-radius:12px;color:var(--ink);text-decoration:none}.info-grid small,.info-grid strong{display:block}.info-grid small{color:#72837f;margin-bottom:8px}.results{display:grid;gap:12px}.result{display:flex;justify-content:space-between;align-items:center;background:white;border-radius:14px;padding:22px 26px;border:1px solid var(--line)}.result h2{margin:5px 0}.empty{padding:36px;text-align:center;background:white;border:1px dashed #b9c9c3;border-radius:14px;color:#647873}.grave-detail{padding:36px;background:white;border-radius:18px}.back{background:transparent;color:var(--green);padding-left:0}.deceased-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:25px}.deceased-list>div{padding:20px;background:var(--mint);border-radius:12px}footer{text-align:center;padding:35px;color:#6b7b77}@media(max-width:850px){.admin-body #app{grid-template-columns:1fr}.admin-body aside{position:static}.admin-body nav{grid-template-columns:repeat(4,1fr);margin:25px 0 0}.logout{margin-top:15px}.stat-grid{grid-template-columns:repeat(2,1fr)}.info-grid{grid-template-columns:1fr}.tr{grid-template-columns:1fr 1fr}.tr>*:nth-child(n+3){display:none}}@media(max-width:560px){.auth-card{padding:28px}.hero{padding:50px 24px}.search{display:grid}.stat-grid{grid-template-columns:1fr}.admin-body nav{grid-template-columns:1fr 1fr}.workspace{padding:24px}.form-row{grid-template-columns:1fr}}
