:root { --forest:#123c2a; --leaf:#24724d; --lime:#b5d66d; --cream:#f6f5ee; --ink:#183126; }
* { box-sizing:border-box; } body { margin:0; background:var(--cream); color:var(--ink); font-family:Inter, ui-sans-serif, system-ui, sans-serif; }
.topbar { height:72px; padding:0 7vw; display:flex; align-items:center; justify-content:space-between; background:var(--forest); color:#dce9d9; font-size:.9rem; }
.brand { color:#fff; text-decoration:none; font-weight:750; letter-spacing:-.03em; font-size:1.2rem; }
.topbar nav { display:flex; align-items:center; gap:1rem; }.topbar nav a { color:#e6f0e4; text-decoration:none; }.topbar nav form { margin:0; }.link-button { border:0; background:none; color:#e6f0e4; padding:0; cursor:pointer; font:inherit; }.nav-action { border:1px solid #92bc8e; border-radius:.35rem; padding:.45rem .7rem; }
.hero { min-height:58vh; padding:14vh 12vw 8vh; background:radial-gradient(circle at 86% 12%, #d5e7a4 0, transparent 28%), var(--cream); }
.eyebrow { color:var(--leaf); font-weight:700; text-transform:uppercase; letter-spacing:.09em; font-size:.72rem; }
h1 { font-size:clamp(3rem,8vw,6.4rem); letter-spacing:-.07em; line-height:.9; margin:.35rem 0 1.7rem; max-width:850px; } h1 em { color:var(--leaf); font-style:normal; }
.lede { max-width:540px; font-size:1.15rem; line-height:1.6; color:#496255; }.button { display:inline-block; margin-top:1.8rem; padding:.85rem 1.15rem; background:var(--forest); color:#fff; text-decoration:none; border-radius:.4rem; font-weight:700; }
.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#cdd8cf; }.cards article { padding:2.2rem 12vw; background:#fff; display:grid; gap:.45rem; }.cards strong { color:var(--forest); font-size:1.1rem; }.cards span { color:#5f7367; line-height:1.45; font-size:.92rem; }
.account-shell { min-height:calc(100vh - 72px); padding:7vh 7vw; display:grid; place-items:start center; background:radial-gradient(circle at 15% 0%, #d8e9ad 0, transparent 26%), var(--cream); }.account-card { width:min(100%, 540px); padding:2.7rem; background:#fff; border:1px solid #d8e3d9; border-radius:.8rem; box-shadow:0 18px 50px #123c2a13; }.account-card h1 { font-size:clamp(2.25rem,5vw,3.6rem); margin:.3rem 0 1.1rem; }.account-form { display:grid; gap:1rem; margin-top:1.8rem; }.field { display:grid; gap:.4rem; }.field label { font-weight:700; font-size:.9rem; }.field input { width:100%; padding:.75rem .85rem; border:1px solid #b8c9bb; border-radius:.35rem; font:inherit; color:var(--ink); }.field input:focus { outline:2px solid #b5d66d; border-color:var(--leaf); }.account-form .button { margin-top:.4rem; border:0; cursor:pointer; text-align:left; }.account-note { margin:1.3rem 0 0; color:#50665a; }.account-note a { color:var(--leaf); font-weight:700; }.error { color:#a22d26; line-height:1.4; }.message { width:min(86%, 850px); margin:1.5rem auto 0; padding:.85rem 1rem; border-radius:.35rem; background:#e4f2e1; color:#154522; }.message.error { background:#fbe7e5; color:#8a211b; }
.wide-card { width:min(100%, 650px); }.field textarea { width:100%; padding:.75rem .85rem; border:1px solid #b8c9bb; border-radius:.35rem; font:inherit; resize:vertical; }.page-shell { padding:7vh 10vw; }.page-heading { display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-bottom:2.5rem; }.page-heading h1 { font-size:clamp(2.5rem,6vw,4.6rem); margin:.25rem 0 .8rem; }.area-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:1rem; }.area-card { padding:1.4rem; border:1px solid #d4dfd5; border-radius:.65rem; background:#fff; color:var(--ink); text-decoration:none; display:grid; gap:.55rem; }.area-card:hover { border-color:var(--leaf); box-shadow:0 10px 30px #123c2a10; }.area-card strong { color:var(--forest); font-size:1.1rem; }.area-card span { color:#567064; }.area-card small { color:var(--leaf); font-weight:700; }.empty-state { padding:3rem; background:#fff; border:1px dashed #afc5b1; border-radius:.7rem; }.empty-state h2 { margin-top:0; }.details-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:1px; background:#d4dfd5; margin:0; }.details-grid div { padding:1.25rem; background:#fff; }.details-grid dt { color:#5e7566; font-size:.8rem; text-transform:uppercase; letter-spacing:.05em; }.details-grid dd { margin:.5rem 0 0; color:var(--forest); font-weight:700; }
.actions { display:flex; gap:.7rem; flex-wrap:wrap; }.button.secondary { background:#e4eee4; color:var(--forest); }.history { margin-top:3.5rem; }.history h2 { margin:.25rem 0 1rem; }.analysis-list { display:grid; gap:.75rem; }.analysis-list article { position:relative; padding:1.2rem; background:#fff; border:1px solid #d4dfd5; border-radius:.5rem; }.analysis-list article p { margin:.65rem 0 0; color:#597064; }.status { display:inline-block; margin-left:.7rem; padding:.2rem .5rem; border-radius:999px; font-size:.8rem; font-weight:700; background:#f4eacb; color:#6b5413; }.status.completed { background:#e2f1df; color:#1e652e; }.status.error { background:#f8e1de; color:#962e27; }.status.processing { background:#e3ecf3; color:#245a82; }
.map-section { margin-top:3.5rem; }.map-section h2 { margin:.25rem 0 1rem; }.map-wrapper { position:relative; }.map-section #area-map { height:min(58vh,520px); min-height:320px; width:100%; border:1px solid #cbd9cc; border-radius:.65rem; overflow:hidden; box-shadow:0 16px 36px #123c2a12; }.map-wrapper #focus-area { position:absolute; right:12px; bottom:12px; z-index:2; padding:.6rem .8rem; border:0; border-radius:.35rem; background:#fff; color:var(--forest); box-shadow:0 2px 9px #123c2a35; font-weight:700; cursor:pointer; }
.map-section #result-map { height:min(58vh,520px); min-height:320px; width:100%; border:1px solid #cbd9cc; border-radius:.65rem; overflow:hidden; box-shadow:0 16px 36px #123c2a12; }.map-wrapper #focus-result { position:absolute; right:12px; bottom:12px; z-index:2; padding:.6rem .8rem; border:0; border-radius:.35rem; background:#fff; color:var(--forest); box-shadow:0 2px 9px #123c2a35; font-weight:700; cursor:pointer; }.result-link { display:inline-block; margin-top:.9rem; color:var(--leaf); font-weight:700; }.result-banner { margin-top:2.5rem; padding:1.6rem; background:#fff; border:1px solid #d4dfd5; border-left:5px solid var(--leaf); border-radius:.55rem; }.result-banner h2 { margin:.25rem 0 .55rem; }.result-banner p:last-child { margin:0; color:#50665a; }.result-banner.no-changes { border-left-color:#50826a; }.result-banner.has-changes { border-left-color:#c85a2e; }.result-banner.result-error { border-left-color:#a22d26; }.change-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1rem; }.change-grid article { padding:1.3rem; background:#fff; border:1px solid #d4dfd5; border-radius:.55rem; }.change-grid article strong { color:var(--forest); }.change-grid dl { display:grid; gap:.85rem; margin:1rem 0 0; }.change-grid dt { color:#5e7566; font-size:.75rem; text-transform:uppercase; letter-spacing:.05em; }.change-grid dd { margin:.25rem 0 0; font-weight:700; }
@media (max-width:700px) { .topbar{padding:0 7vw}.topbar span{display:none}.hero{padding:12vh 7vw}.cards{grid-template-columns:1fr}.cards article{padding:1.8rem 7vw} }
