:root{color:#24352d;background:#f7faf6;font-family:Yu Gothic,Hiragino Kaku Gothic ProN,Meiryo,system-ui,sans-serif;font-size:18px;line-height:1.6;--green: #2f6f4e;--green-dark: #24583e;--line: #d7e4d8;--paper: #fffdf7;--alert: #b44a2f;--gold: #e9b44c}*{box-sizing:border-box}body{margin:0;min-width:320px}a{color:inherit}button,input,select,textarea{font:inherit}input,select,textarea{width:100%;border:2px solid var(--line);border-radius:8px;padding:.75rem;background:#fff;color:#24352d}textarea{min-height:8rem;resize:vertical}fieldset{border:2px solid var(--line);border-radius:8px;padding:1rem}legend{font-weight:700;padding:0 .5rem}.app-shell{min-height:100vh;background:#f7faf6}.site-header{position:sticky;top:0;z-index:5;border-bottom:1px solid var(--line);background:#fffdf7f7}.brand{display:flex;align-items:center;gap:.75rem;max-width:1040px;margin:0 auto;padding:.75rem 1rem;text-decoration:none}.brand-mark{display:grid;place-items:center;width:3rem;height:3rem;border-radius:8px;background:var(--green);color:#fff;font-weight:800;font-size:1.35rem}.brand strong,.brand small{display:block}.brand small{color:#5f7167;font-size:.85rem}.page{width:min(1040px,100%);margin:0 auto;padding:1rem}.narrow{width:min(760px,100%)}h1,h2,h3,p{overflow-wrap:anywhere}h1{margin:.25rem 0 1rem;font-size:clamp(1.65rem,1.35rem + 1vw,2.35rem);line-height:1.25}h2{font-size:1.35rem}.eyebrow{margin:0;color:var(--green);font-weight:800}.hero-panel,.top-heading{padding:1.25rem 0}.hero-panel p,.top-heading p{font-size:1.05rem}.district-grid,.main-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:.85rem}.district-button,.button{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:3.7rem;border:0;border-radius:8px;padding:.85rem 1.1rem;text-align:center;text-decoration:none;font-weight:800;cursor:pointer}.district-button{min-height:5rem;border:2px solid var(--green);background:#fff;color:var(--green-dark);font-size:1.25rem}.button.primary{background:var(--green);color:#fff}.button.secondary{border:2px solid var(--green);background:#fff;color:var(--green-dark)}.button.quiet{background:#edf4ef;color:var(--green-dark)}.button.danger{background:var(--alert);color:#fff}.button:disabled{cursor:not-allowed;opacity:.45}.resident-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;max-width:1040px;margin:0 auto;padding:.75rem 1rem;border-bottom:1px solid var(--line);background:#edf4ef;font-weight:800}.resident-toolbar button,.back-button{border:2px solid var(--green);border-radius:8px;background:#fff;color:var(--green-dark);min-height:3.1rem;padding:.55rem .85rem;font-weight:800}.back-button{display:inline-flex;align-items:center;gap:.4rem;margin:.75rem 0 1rem}.important-box,.notice{border:2px solid #f0c67c;border-radius:8px;padding:1rem;margin:0 0 1rem;background:#fff4dc}.important-box div{display:flex;align-items:center;gap:.5rem;color:#7b381f}.important-box a{display:block;margin-top:.4rem;font-weight:800}.admin-link-row{padding:2rem 0 .5rem;text-align:right;font-size:.9rem;color:#5f7167}.card-list{display:grid;gap:.8rem}.card{border:1px solid var(--line);border-radius:8px;padding:1rem;background:var(--paper)}.circular-card{display:block;text-decoration:none}.important-card{border-left:8px solid var(--gold)}.card-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.card-title-row h2,.card-title-row h1{margin-top:0}.badge{display:inline-flex;flex:0 0 auto;align-items:center;border-radius:8px;padding:.15rem .5rem;background:#e8f0e9;color:var(--green-dark);font-weight:800;font-size:.88rem}.badge.danger{background:#ffe2d8;color:#90381f}.meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:.65rem;margin:.75rem 0}.meta-grid dt{color:#5f7167;font-size:.86rem;font-weight:800}.meta-grid dd{margin:0;font-weight:700}.empty,.hint{color:#5f7167}.description{white-space:pre-wrap}.attachments{margin-top:1.5rem}.attachment-link{display:flex;align-items:center;gap:.5rem;min-height:3.4rem;margin-bottom:.75rem;border:2px solid var(--green);border-radius:8px;padding:.75rem;color:var(--green-dark);font-weight:800;text-decoration:none}.photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:.75rem}.photo-button{overflow:hidden;aspect-ratio:3 / 4;border:2px solid var(--line);border-radius:8px;padding:0;background:#fff}.photo-button img{width:100%;height:100%;object-fit:contain}.lightbox{position:fixed;inset:0;z-index:20;display:grid;place-items:center;border:0;padding:1rem;background:#000000c7}.lightbox img{max-width:100%;max-height:100%;background:#fff}.search-panel,.form{display:grid;gap:.9rem}.search-panel{grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));margin-bottom:1rem;border:1px solid var(--line);border-radius:8px;padding:1rem;background:#fff}.form label,.search-panel label{display:grid;gap:.35rem;font-weight:800}.check-row{display:flex!important;flex-direction:row;align-items:center;gap:.55rem;font-weight:800}.check-row input{width:1.25rem;height:1.25rem;flex:0 0 auto}.two-columns,.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:.85rem}.error{color:var(--alert);font-weight:800}.admin-topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.admin-nav{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.admin-nav a{border-radius:8px;padding:.55rem .75rem;background:#edf4ef;color:var(--green-dark);text-decoration:none;font-weight:800}.admin-card{display:grid;gap:.75rem}.admin-card .circular-card{padding:0;border:0;background:transparent}.admin-card-actions{display:flex;flex-wrap:wrap;gap:.65rem}.inline-form{display:grid;grid-template-columns:1fr auto;gap:.65rem;margin-bottom:1rem}.row-card{display:flex;align-items:center;justify-content:space-between;gap:1rem}.row-card input{max-width:26rem}.attachment-list{display:grid;gap:.5rem;padding:0;list-style:none}.attachment-list li{display:flex;align-items:center;gap:.5rem;border:1px solid var(--line);border-radius:8px;padding:.5rem;background:#fff}.attachment-list button{margin-left:auto;border:0;border-radius:8px;padding:.35rem .65rem;background:#f5e6e2;color:#7b381f;font-weight:800}@media(max-width:640px){:root{font-size:17px}.site-header{position:static}.page{padding:.85rem}.brand-mark{width:2.6rem;height:2.6rem}.resident-toolbar,.admin-topbar,.row-card,.inline-form{display:grid;grid-template-columns:1fr}.admin-link-row{text-align:left}}
