:root{--ink:#1f2933;--muted:#667085;--line:#d7dfd3;--panel:#fff;--field:#f3f6f0;--green:#395f43;--green2:#6f8d5e;--red:#a9493d;--blue:#426a83;--amber:#a36f1f;font-family:"Segoe UI",system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--ink);background:#eef3eb}button,input,select,textarea{font:inherit}.app{display:grid;grid-template-columns:390px minmax(0,1fr);min-height:100vh}.panel{display:grid;align-content:start;gap:18px;padding:22px;overflow:auto;background:var(--panel);border-right:1px solid var(--line)}.brand p,.eyebrow{margin:0 0 5px;color:var(--green);font-size:12px;font-weight:800;text-transform:uppercase}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:30px;line-height:1.05}h2{margin-bottom:0;font-size:17px}.owner-panel{display:grid;gap:7px;padding:13px;border:1px solid var(--line);border-radius:8px;background:#f8faf6}.owner-panel strong{color:var(--green)}.owner-panel span{color:var(--muted);font-size:13px;line-height:1.35}.controls{display:grid;gap:10px}.button-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}label{display:grid;gap:8px;color:var(--muted);font-size:13px;font-weight:800}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--field);color:var(--ink)}textarea{resize:vertical}.primary,.secondary,.sector-button,.grave-button,.plot-button,.icon-button{border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer}.primary{min-height:42px;background:var(--green);border-color:var(--green);color:#fff;font-weight:800}.secondary{min-height:42px;font-weight:800}.icon-button{width:36px;height:36px;font-size:20px}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.section-title span{display:grid;place-items:center;min-width:30px;height:30px;border-radius:999px;background:var(--field);color:var(--green);font-weight:800}.sector-list,.grave-list{display:grid;gap:8px}.sector-button,.grave-button{display:grid;gap:4px;width:100%;padding:12px;text-align:left}.sector-button.active,.grave-button.active{border-color:var(--green);outline:3px solid rgba(57,95,67,.18)}.button-title{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:800}.button-meta{color:var(--muted);font-size:13px}.badge{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;padding:0 9px;background:#e4efe2;color:var(--green);font-size:12px;font-weight:800}.badge.new{background:#e4edf2;color:var(--blue)}.map-shell{position:relative;min-height:100vh;overflow:hidden}#map{position:absolute;inset:0}.cemetery-plan{position:absolute;inset:18px 18px 210px;overflow:auto;padding:16px;border:1px solid rgba(31,41,51,.22);border-radius:8px;background:rgba(255,255,255,.9);box-shadow:0 18px 50px rgba(31,41,51,.16)}.gate-label{margin-bottom:12px;color:var(--green);font-weight:900;text-align:center}.layout-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;min-width:880px}.cemetery-side{display:grid;gap:10px}.side-title{display:flex;justify-content:space-between;align-items:center;font-weight:900}.alley-row{display:grid;grid-template-columns:1fr 32px 1fr;align-items:stretch;gap:8px}.alley-label{writing-mode:vertical-rl;display:grid;place-items:center;border-radius:8px;background:#d6d1c1;color:#514d43;font-size:12px;font-weight:900}.plot-strip{display:grid;grid-template-columns:repeat(13,minmax(28px,1fr));gap:4px}.plot-button{min-height:31px;padding:0;font-size:11px;font-weight:900;background:#f7f8f2;border-color:#c6d0c4}.plot-button.double{grid-column:span 2;background:#fff7df;border-color:var(--amber)}.plot-button.new{border-color:var(--blue);color:var(--blue)}.plot-button.existing{border-color:var(--green2);color:var(--green)}.plot-button.active{outline:3px solid rgba(163,111,31,.28);background:#fff3cb}.route-card,.entry-card{position:absolute;right:18px;width:min(430px,calc(100% - 36px));padding:16px;border:1px solid rgba(31,41,51,.18);border-radius:8px;background:rgba(255,255,255,.96);box-shadow:0 18px 50px rgba(31,41,51,.18)}.route-card{bottom:18px;max-height:180px;overflow:auto}.entry-card{top:18px;display:none;gap:12px}.entry-card.open{display:grid}.card-heading{display:flex;align-items:start;justify-content:space-between;gap:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.route-card p{color:var(--muted);line-height:1.45}#routeSteps{margin:12px 0 0;padding-left:22px}#routeSteps li{margin-bottom:8px}@media(max-width:900px){.app{grid-template-columns:1fr}.panel{max-height:48vh;border-right:0;border-bottom:1px solid var(--line)}.map-shell{min-height:78vh}.cemetery-plan{inset:12px 12px 220px}.layout-grid{grid-template-columns:1fr;min-width:520px}.form-grid{grid-template-columns:1fr}}.plot-strip.unavailable{display:grid;place-items:center;min-height:31px;border:1px dashed var(--line);border-radius:8px;color:var(--muted);background:rgba(243,246,240,.72);font-size:12px;font-weight:800}.plot-strip.unavailable+.alley-label{opacity:.9}.parish-form{display:grid;gap:10px;margin-top:8px;padding-top:10px;border-top:1px solid var(--line)}.fee-grid{display:grid;grid-template-columns:1fr;gap:8px}.parish-display{display:grid;gap:6px;margin-top:10px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.parish-display h3{margin:0;font-size:15px}.parish-display p{margin:0;color:var(--muted);font-size:13px;line-height:1.35}.parish-display strong{color:var(--ink)}.payment-tags{display:flex;flex-wrap:wrap;gap:6px}.payment-tags span{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;padding:0 8px;background:#e4efe2;color:var(--green);font-size:12px;font-weight:800}.sync-panel{display:grid;gap:10px;padding:13px;border:1px solid var(--line);border-radius:8px;background:#fff}.sync-grid{display:grid;gap:5px;color:var(--muted);font-size:13px}.sync-grid strong{color:var(--green);font-size:18px}.sync-message{margin:0;color:var(--muted);font-size:13px;line-height:1.35}.login-panel{display:grid;gap:10px;padding:13px;border:1px solid var(--line);border-radius:8px;background:#fff}.login-form{display:grid;gap:10px}.admin-only{display:none}.admin-logged-in .admin-only{display:grid}.admin-logged-in #logoutButton{display:block}.admin-logged-in .owner-panel{display:grid}.admin-logged-in .entry-card.open{display:grid}body:not(.admin-logged-in) #newEntryButton,body:not(.admin-logged-in) #syncPanel{display:none}body:not(.admin-logged-in) .entry-card{display:none!important}.link-button{display:inline-grid;place-items:center;text-decoration:none;text-align:center}.admin-logged-in .login-panel.admin-only{display:grid}