@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap";:root{color:#18201b;font-synthesis:none;text-rendering:optimizelegibility;--ink:#18201b;--muted:#69736c;--paper:#fff;--line:#dfe5dc;--green:#216149;--green-dark:#164534;--lime:#d9eb82;--warm:#f2ede4;background:#f5f7f2;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}h1,h2,p{margin-top:0}h1,h2,.brand,.auth-brand{letter-spacing:0;font-family:Manrope,sans-serif}#root{min-height:100vh}.app-shell{background:radial-gradient(circle at 90% 5%,#e6edcd 0,#0000 24rem),#f5f7f2;min-height:100vh}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:5;background:#f5f7f2e0;justify-content:space-between;align-items:center;height:72px;padding:0 max(24px,50vw - 590px);display:flex;position:sticky;top:0}.brand,.auth-brand{color:var(--green-dark);background:0 0;border:0;align-items:center;gap:10px;font-size:22px;font-weight:800;display:flex}.icon-button{border:1px solid var(--line);background:var(--paper);width:42px;height:42px;color:var(--ink);border-radius:7px;place-items:center;display:grid}.app-shell>main{width:min(1180px,100% - 48px);margin:0 auto;padding:64px 0 100px}.toolbar{justify-content:space-between;align-items:end;gap:32px;margin-bottom:28px;display:flex}.toolbar h1,.detail-copy h1{max-width:700px;margin:0;font-size:clamp(32px,5vw,52px);line-height:1.05}.eyebrow{color:var(--green);text-transform:uppercase;letter-spacing:.12em;margin-bottom:10px;font-size:12px;font-weight:700}.muted{color:var(--muted);line-height:1.6}.primary,.secondary,.analyze-button,.location-button{border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;gap:9px;min-height:46px;padding:0 20px;font-weight:700;display:inline-flex}.primary{background:var(--green);color:#fff}.primary:hover{background:var(--green-dark)}.secondary{border-color:var(--line);color:var(--ink);background:#fff}.wide{width:100%}.search-box{background:#fff;border:1px solid #cad4c8;border-radius:8px;align-items:center;gap:14px;height:64px;margin-bottom:34px;padding:0 20px;display:flex;box-shadow:0 12px 30px #233c2d14}.search-box:focus-within{border-color:var(--green);outline:3px solid #21614926}.search-box input{min-width:0;color:var(--ink);border:0;outline:0;flex:1;font-size:17px}.search-box button{color:var(--muted);background:0 0;border:0;place-items:center;display:grid}.items-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.item-card{text-align:left;border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;padding:0;transition:transform .18s,box-shadow .18s;overflow:hidden}.item-card:hover{transform:translateY(-3px);box-shadow:0 14px 28px #233c2d1a}.item-thumb{aspect-ratio:4/3;background:var(--warm);color:#879087;place-items:center;display:grid;overflow:hidden}.item-thumb img,.detail-image img{object-fit:cover;width:100%;height:100%}.item-card-copy{padding:18px}.item-card h2{margin-bottom:10px;font-size:18px}.item-card p{color:var(--muted);align-items:flex-start;gap:7px;min-height:44px;line-height:1.4;display:flex}.item-card p svg{flex:none;margin-top:2px}.tags{flex-wrap:wrap;gap:6px;display:flex}.tags span{color:#49604f;background:#edf2e7;border-radius:4px;padding:5px 8px;font-size:12px}.empty{text-align:center;min-height:330px;color:var(--muted);border:1px dashed #bec9bc;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;padding:30px;display:flex}.empty h2{color:var(--ink);margin:18px 0 8px}.empty .primary{margin-top:16px}.notice,.form-error{color:#9f2f20;background:#fff0ed;border-radius:6px;padding:11px 14px;font-size:14px}.modal-backdrop{z-index:20;background:#141c178c;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow-y:auto}.item-form{background:#fbfcf9;border-radius:8px;width:min(720px,100%);max-height:calc(100vh - 40px);padding:28px;overflow-y:auto;box-shadow:0 30px 80px #0a140d4d}.item-form header{justify-content:space-between;align-items:flex-start;margin-bottom:22px;display:flex}.item-form h2{margin:0;font-size:28px}.capture-area{height:190px;color:var(--green);cursor:pointer;background:#f0f3eb;border:1px dashed #aebaaa;border-radius:7px;flex-direction:column;justify-content:center;align-items:center;gap:7px;display:flex;overflow:hidden}.capture-area img{object-fit:contain;background:#e5e9e1;width:100%;height:100%}.capture-area span{color:var(--muted);font-size:13px}.analyze-button{color:#31451e;background:#e5efad;width:100%;margin:10px 0 18px}.form-grid{grid-template-columns:1fr 1fr;gap:16px;margin-top:18px;display:grid}label{color:#3d4a41;flex-direction:column;gap:7px;font-size:13px;font-weight:700;display:flex}label input,label textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #cfd7cc;border-radius:6px;outline:none;padding:12px}label input:focus,label textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #2161491a}label textarea{resize:vertical;min-height:92px}.full{grid-column:1/-1}.hint{color:var(--muted);font-weight:400}.location-button{border-color:var(--line);color:var(--green);background:#fff;margin-top:18px}.location-button.located{background:#e8f1e8}.item-form footer{justify-content:flex-end;gap:10px;padding-top:22px;display:flex}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.auth-page{background:linear-gradient(120deg,#ecf2e0e6,#fffffff5),repeating-linear-gradient(90deg,#0000 0 39px,#dfe6d8 40px);min-height:100vh;padding:36px}.auth-brand{width:min(1080px,100%);margin:0 auto}.auth-panel{border:1px solid var(--line);background:#fffffff0;border-radius:8px;width:min(440px,100%);margin:10vh auto 0;padding:38px;box-shadow:0 22px 60px #263f2f1f}.auth-panel h1{margin-bottom:10px;font-size:34px;line-height:1.15}.auth-panel form{gap:16px;margin-top:28px;display:grid}.text-button{color:var(--green);background:0 0;border:0;width:100%;margin-top:20px;font-weight:700}.detail-view{animation:.25s ease-out reveal}@keyframes reveal{0%{opacity:0;transform:translateY(8px)}}.back-button{color:var(--green);background:0 0;border:0;align-items:center;gap:8px;margin-bottom:30px;padding:0;font-weight:700;display:flex}.detail-layout{grid-template-columns:minmax(280px,1fr) 1fr;align-items:center;gap:50px;display:grid}.detail-image{aspect-ratio:4/3;background:var(--warm);color:#849087;border-radius:8px;place-items:center;display:grid;overflow:hidden}.detail-copy>p:not(.eyebrow){color:var(--muted);line-height:1.7}.location-callout{border-left:4px solid var(--green);background:#e8efdd;gap:14px;margin:25px 0;padding:18px;display:flex}.location-callout svg{color:var(--green);flex:none}.location-callout span,.location-callout strong{display:block}.location-callout span{color:var(--muted);margin-bottom:3px;font-size:12px}.map{border:1px solid var(--line);border-radius:8px;height:340px;margin-top:42px;overflow:hidden}.map iframe{border:0;width:100%;height:100%}.mobile-nav{display:none}@media (width<=800px){.app-shell>main{width:min(100% - 28px,600px);padding-top:36px}.toolbar{align-items:flex-start}.toolbar h1{font-size:36px}.desktop-add{display:none}.items-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-layout{grid-template-columns:1fr;gap:28px}.mobile-nav{z-index:10;height:72px;padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line);background:#fff;grid-template-columns:1fr 1fr;display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-nav button{color:var(--muted);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;display:flex}.mobile-nav button.active{color:var(--green)}}@media (width<=540px){.topbar{height:62px;padding:0 14px}.items-grid{grid-template-columns:1fr}.item-card{grid-template-columns:120px 1fr;display:grid}.item-thumb{aspect-ratio:auto;min-height:150px}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.modal-backdrop{align-items:end;padding:0}.item-form{border-radius:8px 8px 0 0;max-height:94vh;padding:20px}.auth-page{padding:22px}.auth-panel{margin-top:8vh;padding:26px 22px}}
