
*{box-sizing:border-box}body{margin:0;background:#f5f3ed;color:#203e3b;font:16px system-ui}header{background:#183f3c;color:#fff;padding:35px max(22px,calc((100vw - 1120px)/2)) 28px}header small{letter-spacing:3px;color:#e5c892}h1{font:clamp(32px,6vw,58px) Georgia;margin:14px 0}header p{color:#d0ded8;max-width:650px;line-height:1.6}nav{display:flex;gap:8px;overflow:auto;padding:18px 20px;position:sticky;top:0;background:#f5f3ed;z-index:2;border-bottom:1px solid #ddd}button{border:1px solid #c8d2cc;border-radius:22px;background:white;padding:11px 17px;cursor:pointer;color:#203e3b;font:inherit;white-space:nowrap}button.active,button.primary{background:#183f3c;color:white}main{max-width:1120px;margin:auto;padding:25px 20px}.bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:25px}input,textarea{font:inherit;padding:12px;border:1px solid #c8d2cc;border-radius:12px;width:100%;background:white}#search{flex:1;min-width:200px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.card{background:white;border:1px solid #e0e4dd;border-radius:18px;padding:22px;cursor:pointer;box-shadow:0 4px 18px #173d3505}.card:hover{border-color:#72958c;transform:translateY(-2px)}.card h3{font:24px Georgia;margin:7px 0 12px}.card small,.muted{color:#70857d}.badge{font-size:12px;background:#eef2ea;padding:5px 9px;border-radius:20px}.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin:25px 0}.photos img{width:100%;height:210px;object-fit:cover;border-radius:14px}.photos figure{margin:0}label{display:block;margin:18px 0 7px}footer{max-width:1120px;margin:auto;padding:30px 20px;font-size:13px;color:#70857d}.note{background:#eee6d4;padding:14px;border-radius:12px;margin-bottom:20px}h2{font:32px Georgia}a{color:inherit}
@media(max-width:480px){main{padding:20px 14px}.grid{grid-template-columns:1fr}.photos{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.photos img{height:180px}.photos figure{min-width:0}.photos button{padding:9px 12px}header{padding:28px 18px}.bar button{font-size:14px}nav{padding:12px;max-width:100vw}}
dialog{width:min(540px,calc(100vw - 24px));max-height:90dvh;border:1px solid #c8d2cc;border-radius:20px;padding:22px}dialog::backdrop{background:#102c2b99}select{font:inherit;padding:12px;width:100%;border:1px solid #c8d2cc;border-radius:12px}#sync-status{font-size:14px}#upload-status{white-space:normal}#add-form button{white-space:normal;margin-top:10px}figcaption{overflow-wrap:anywhere}
.notice{background:#eee6d4;padding:15px;border-radius:12px;line-height:1.6}.card{text-align:left;white-space:normal}label{display:block}#viewer{width:min(95vw,1200px);max-height:95dvh}#full-photo{display:block;max-width:100%;max-height:80dvh;object-fit:contain}#installation{font-size:14px}.bar a{padding:10px}button:disabled{opacity:.6}figure input{margin:8px 0}footer{padding-bottom:calc(30px + env(safe-area-inset-bottom))}