:root{--background: #f6f8f5;--surface: #ffffff;--surface-soft: #eef5f0;--text: #16241c;--muted: #647268;--border: #d9e0da;--border-strong: #c3cdc5;--green: #167a43;--green-dark: #0f6335;--blue: #2475b8;--terracotta: #d64e27;--amber: #eba634;--shadow: 0 16px 42px rgba(31, 52, 38, .11);--soft-shadow: 0 8px 20px rgba(31, 52, 38, .08);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--background);overflow-x:hidden;-webkit-text-size-adjust:100%}button,input,select,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation}input,select,textarea{max-width:100%}.app-shell{min-height:100vh;background:linear-gradient(180deg,#fffffffa 0,#f6f8f5fa 118px),var(--background)}.app-header{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:minmax(260px,1fr) auto minmax(300px,1fr);align-items:center;gap:24px;min-height:78px;padding:0 calc(22px + env(safe-area-inset-right)) 0 calc(22px + env(safe-area-inset-left));background:#ffffffed;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-mark{display:grid;place-items:center;width:32px;height:32px;color:var(--green)}.brand strong{display:block;font-size:28px;line-height:1;letter-spacing:0}.brand>div{display:flex;align-items:baseline;gap:24px;min-width:0}.brand span:last-child{display:block;color:#27332b;font-size:14px;line-height:1.2;white-space:nowrap}.top-nav{display:flex;align-items:stretch;align-self:stretch;gap:26px}.nav-item{position:relative;display:inline-flex;align-items:center;gap:10px;border:0;border-bottom:4px solid transparent;padding:0 13px;background:transparent;color:#17231b;font-size:16px;font-weight:600}.nav-item.active{border-bottom-color:var(--green);color:var(--green-dark)}.header-actions{display:flex;justify-content:flex-end;align-items:center;gap:14px}.primary-action,.secondary-action,.full-concept-button,.measure-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;border-radius:7px;font-size:15px;font-weight:700;letter-spacing:0}.primary-action{min-width:222px;border:1px solid #c23e1d;background:var(--terracotta);color:#fff;box-shadow:0 8px 18px #d64e2733}.icon-button,.avatar-button{display:grid;place-items:center;width:42px;height:42px;border:0;background:transparent;color:#5d6961;text-decoration:none}.workspace{display:grid;grid-template-columns:348px minmax(520px,1fr) 454px;height:calc(100vh - 78px);min-height:calc(100vh - 78px);overflow:hidden}.sidebar,.insights{background:#ffffffe0;border-color:var(--border);min-height:0;overflow:auto}.sidebar{display:flex;flex-direction:column;border-right:1px solid var(--border)}.workflow-step{border-bottom:1px solid var(--border)}.sidebar-final-action{padding:12px 18px 18px}.sidebar-final-action .concept-meta{margin:8px 0 0}.step-header{display:grid;grid-template-columns:32px 1fr 18px;align-items:center;gap:10px;width:100%;min-height:64px;border:0;padding:0 20px;background:transparent;color:#17241c;font-size:17px;font-weight:700;text-align:left}.step-status{display:grid;place-items:center;width:27px;height:27px;border:1px solid #8b9890;border-radius:50%;color:#556158;font-size:15px;font-weight:800}.step-status.complete{border-color:var(--green);background:var(--green);color:#fff}.step-chevron{justify-self:end}.step-body{padding:0 18px 16px}.address-combobox{position:relative;z-index:6}.address-field{display:grid;grid-template-columns:38px minmax(0,1fr) 28px 44px;align-items:center;height:49px;border:1px solid var(--border-strong);border-radius:7px;background:var(--surface);color:#66746b;overflow:hidden}.address-field input{width:100%;min-width:0;border:0;outline:0;color:var(--text);font-size:14px}.address-field svg{justify-self:center}.address-field button{display:grid;place-items:center;width:100%;height:100%;border:0;background:transparent;color:#5a675e}.address-field .search-button{grid-column:4;background:var(--green);color:#fff}.address-suggestions{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:12;display:grid;gap:4px;padding:6px;border:1px solid var(--border-strong);border-radius:7px;background:#fffffffa;box-shadow:0 18px 34px #1f342629}.address-suggestions button{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:9px;width:100%;min-height:58px;border:0;border-radius:6px;padding:8px 10px;background:transparent;color:var(--text);text-align:left}.address-suggestions button:hover,.address-suggestions button:focus-visible{outline:none;background:var(--surface-soft)}.address-suggestions svg{justify-self:center;color:var(--green)}.address-suggestions strong,.address-suggestions small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.address-suggestions strong{font-size:13px;line-height:1.25}.address-suggestions small{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.2}.address-suggestion-status{min-height:46px;border-radius:6px;padding:14px 12px;color:var(--muted);font-size:13px;line-height:1.35}.captured-address{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;color:var(--green-dark);font-size:14px;line-height:1.35}.captured-address button{display:grid;flex:0 0 auto;place-items:center;width:26px;height:26px;border:0;background:transparent;color:#26322b}.site-capture-actions{display:grid;grid-template-columns:1fr;gap:8px;margin-top:10px}.capture-or{display:flex;align-items:center;justify-content:center;margin:8px 0;color:#526056;font-size:12px;font-weight:700;letter-spacing:0;text-transform:uppercase}.full-width-action{width:100%}.site-capture-note{margin-top:9px;margin-bottom:0}.site-capture-warning{margin:8px 0 0;color:#b03520;font-size:12px;font-weight:650;line-height:1.35}.property-enhancement-panel{margin-top:10px;padding-top:10px;border-top:1px solid var(--border);display:grid;gap:8px}.enhancement-preview,.design-library-panel{margin-top:0}.design-library-body{display:grid;gap:8px;padding:0 10px 12px}.design-library-field{display:grid;gap:6px}.design-library-field span{color:#253229;font-size:12px;font-weight:700}.design-library-field input,.design-library-field select{width:100%;min-height:38px;border:1px solid var(--border-strong);border-radius:7px;padding:0 10px;background:#fff;color:#17241c}.design-library-actions{margin-top:2px}.tool-pair.design-library-actions{grid-template-columns:1fr}.design-library-status{margin-top:6px;margin-bottom:0}.tool-pair{display:grid;grid-template-columns:1fr 1.18fr;gap:8px}.tool-pair.single-action{grid-template-columns:1fr}.secondary-action{min-width:0;border:1px solid var(--border-strong);background:var(--surface);color:#18251d}.secondary-action svg{color:var(--green)}.sidebar .secondary-action{width:100%;align-items:flex-start;justify-content:flex-start;min-height:58px;padding:10px 12px;text-align:left}.sidebar .secondary-action>span{display:grid;gap:2px;min-width:0}.sidebar .secondary-action .described-action-title{font-size:14px;font-weight:600;line-height:1.2}.sidebar .secondary-action small{display:block;color:var(--muted);font-size:12px;font-weight:600;line-height:1.25}.sidebar .secondary-action svg{margin-top:1px}.described-action{align-items:flex-start;justify-content:flex-start;min-height:58px;padding:10px 12px;text-align:left}.described-action>span{display:grid;gap:2px;min-width:0}.described-action .described-action-title,.described-action small{display:block}.described-action .described-action-title{font-size:14px;font-weight:600;line-height:1.2}.described-action small{color:var(--muted);font-size:12px;font-weight:600;line-height:1.25}.remove-plant-action{width:100%;margin-top:8px}.remove-plant-action:disabled{opacity:.55;cursor:not-allowed}.helper-copy{margin:16px 0 10px;color:#39463e;font-size:13px;line-height:1.45}.marker-strip{display:flex;align-items:center;gap:10px;min-height:61px;padding:10px 11px;border:1px solid var(--border);border-radius:7px;background:var(--surface)}.marker-chip{display:grid;place-items:center;width:31px;height:31px;border:0;border-radius:50%;background:var(--marker);color:#fff;font-size:14px;font-weight:800}.marker-chip.active{outline:7px solid rgba(22,122,67,.11)}.layer-panel{margin:18px;border:1px solid var(--border);border-radius:7px;background:var(--surface)}.panel-title{display:grid;grid-template-columns:22px 1fr 18px;align-items:center;min-height:48px;padding:0 13px;color:#1d2b23;font-size:15px;font-weight:800}.layer-list{display:grid;gap:2px;padding:4px 0 12px}.layer-row{display:grid;grid-template-columns:28px 1fr 28px;align-items:center;min-height:42px;padding:0 10px;color:#26342b;font-size:14px}.layer-row input{width:16px;height:16px;accent-color:var(--green)}.layer-row button{display:grid;place-items:center;width:28px;height:28px;border:0;background:transparent;color:#5e6b62}.markup-tools{display:grid;gap:9px;padding:0 10px 12px}.markup-action-row{display:grid;grid-template-columns:1fr;gap:8px;align-items:stretch}.markup-action-row .secondary-action{width:100%;justify-content:flex-start;padding:0 12px}.markup-action-row .described-action{align-items:center}.markup-action-row .described-action>span{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px}.markup-action-row .described-action .described-action-title,.markup-action-row .described-action small{display:inline}.markup-action-row .full-width-action{grid-column:1 / -1}.secondary-action.active-tool{border-color:#0f633573;background:#167a431a;color:#153122}.markup-label-type{display:grid;gap:6px}.markup-label-type span{color:#253229;font-size:12px;font-weight:700}.markup-label-type select{width:100%;min-height:38px;border:1px solid var(--border-strong);border-radius:7px;padding:0 10px;background:#fff;color:#17241c}.markup-label-type select:disabled{opacity:.6}.markup-custom-label{display:grid;grid-template-columns:1fr;gap:8px}.markup-custom-label input{width:100%;min-height:38px;border:1px solid var(--border-strong);border-radius:7px;padding:0 10px;background:#fff;color:#17241c}.markup-custom-label input:disabled{opacity:.6}.markup-custom-label .secondary-action{width:100%;justify-content:flex-start;min-height:58px;padding:10px 12px}.measure-button{width:178px;margin:auto 0 26px 24px;border:1px solid var(--border-strong);background:var(--surface);color:#253129;font-size:14px;font-weight:650}.map-stage{position:relative;height:100%;min-height:0;overflow:hidden;background:#ced6c8;box-shadow:inset 0 0 0 1px #00000014}.map-stage.scrollable-map{overflow:auto}.map-stage.dragging-plant{cursor:grabbing}.map-stage.resizing-plant{cursor:nwse-resize}.map-stage.drawing-markup{cursor:crosshair}.map-image{position:absolute;object-fit:fill;pointer-events:none}.google-map-canvas{position:absolute;inset:0;z-index:0}.map-image.contained{object-fit:contain;background:#cfd7cf}.map-coordinate-layer{position:absolute;overflow:visible;z-index:1;pointer-events:none}.map-image-status{position:absolute;left:66px;top:15px;z-index:5;max-width:min(360px,calc(100% - 132px));border:1px solid rgba(255,255,255,.72);border-radius:7px;padding:11px 13px;background:#111f16c7;color:#fff;font-size:13px;font-weight:700;line-height:1.35;box-shadow:var(--soft-shadow)}.boundary-overlay,.contour-overlay{position:absolute;inset:0;pointer-events:none}.boundary-overlay{pointer-events:none}.property-boundary-frame{position:absolute;border:2px solid rgba(255,255,255,.94);background:#ffffff17;box-shadow:inset 0 0 0 1px #0a181040;cursor:move;pointer-events:auto;touch-action:none}.boundary-handle{position:absolute;width:12px;height:12px;border:2px solid white;border-radius:50%;background:#1d7f47;box-shadow:0 4px 10px #0000004d;touch-action:none}.boundary-handle.top-left{left:-8px;top:-8px;cursor:nwse-resize}.boundary-handle.top-right{right:-8px;top:-8px;cursor:nesw-resize}.boundary-handle.bottom-left{left:-8px;bottom:-8px;cursor:nesw-resize}.boundary-handle.bottom-right{right:-8px;bottom:-8px;cursor:nwse-resize}.contour-overlay path{fill:none;stroke:#ffffffc7;stroke-width:.32;stroke-dasharray:1.6 1.25}.map-label{position:absolute;left:var(--x);top:var(--y);z-index:6;border:1px solid rgba(255,255,255,.76);border-radius:999px;padding:4px 8px;background:#152319c7;color:#fff;font-size:11px;font-weight:700;line-height:1.2;transform:translate(-50%,-50%);pointer-events:auto;cursor:grab;touch-action:none}.map-label:active{cursor:grabbing}.map-context-menu{position:fixed;z-index:80;min-width:140px;border:1px solid rgba(209,218,211,.98);border-radius:7px;padding:4px;background:#fff;box-shadow:0 10px 26px #101b1438}.map-context-menu button{width:100%;min-height:34px;border:0;border-radius:6px;background:transparent;color:#1a271f;font-size:13px;font-weight:700;text-align:left;padding:0 10px}.map-context-menu button:hover{background:#167a431f}.sunlight-band{position:absolute;left:22%;top:15%;display:grid;grid-template-columns:1fr 1fr;width:52%;min-height:52%;border-radius:999px;background:linear-gradient(100deg,#f6b84d42,#3b91c82e);color:#fff;font-size:13px;font-weight:800;letter-spacing:0;text-shadow:0 1px 3px rgba(0,0,0,.45);pointer-events:none}.sunlight-band span{align-self:center;justify-self:center}.map-marker{position:absolute;left:var(--x);top:var(--y);z-index:2;display:grid;width:clamp(38px,calc(68px * var(--plant-size, 1)),182px);height:clamp(38px,calc(68px * var(--plant-size, 1)),182px);aspect-ratio:1 / 1;padding:0;border:3px solid white;border-radius:50%;background:#fff;box-shadow:0 10px 20px #0000004d;cursor:grab;touch-action:none;transform:translate(-50%,-50%);transition:transform .17s ease,box-shadow .17s ease;-webkit-user-select:none;user-select:none;overflow:visible;pointer-events:auto}.map-marker-media{position:absolute;inset:0;display:grid;border-radius:50%;overflow:hidden}.map-marker-number-only{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 30% 26%,#f4f7f4,#d9e4db 68%);color:#1f2b24;font-size:clamp(20px,calc(10px + 20px * var(--plant-size, 1)),88px);font-weight:900;line-height:1}.map-marker-number-chip{cursor:text}.map-marker:hover,.map-marker.selected{z-index:3;transform:translate(-50%,-50%) scale(1.03);box-shadow:0 16px 30px #00000057}.map-marker.dragging{z-index:4;cursor:grabbing;transform:translate(-50%,-50%) scale(1.04);transition:none}.map-marker.resizing{z-index:4;cursor:nwse-resize;transform:translate(-50%,-50%);transition:none}.map-marker img{width:100%;height:100%;display:block;border-radius:50%;object-fit:cover;background:#dce6de;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.map-marker-name{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;padding:clamp(8px,calc(6px + 4px * var(--plant-size, 1)),18px);background:radial-gradient(circle at 30% 26%,#f1f6f2,#d9e5dc 68%);color:#1e2a23;font-size:clamp(11px,calc(8px + 5.5px * var(--plant-size, 1)),24px);font-weight:900;line-height:1.1;text-align:center;text-wrap:balance;overflow:hidden;word-break:break-word}.marker-number{position:absolute;left:calc(-11px - 11px * var(--plant-size, 1));top:calc(-11px - 11px * var(--plant-size, 1));z-index:2;display:grid;place-items:center;width:clamp(26px,calc(10px + 44px * var(--plant-size, 1)),170px);height:clamp(26px,calc(10px + 44px * var(--plant-size, 1)),170px);border:3px solid white;border-radius:50%;background:var(--marker);color:#fff;font-size:clamp(12px,calc(7px + 15px * var(--plant-size, 1)),66px);font-weight:900;pointer-events:none}.marker-number-button{pointer-events:auto;cursor:text}.marker-id-input{position:absolute;z-index:9;width:clamp(44px,calc(24px + 26px * var(--plant-size, 1)),150px);height:clamp(28px,calc(16px + 24px * var(--plant-size, 1)),108px);border:2px solid #ffffff;border-radius:999px;background:#17221be0;color:#fff;font-size:clamp(13px,calc(9px + 11px * var(--plant-size, 1)),44px);font-weight:900;text-align:center;outline:none;padding:0 6px}.marker-id-input-badge{left:calc(-11px - 11px * var(--plant-size, 1));top:calc(-11px - 11px * var(--plant-size, 1))}.marker-id-input-center{left:50%;top:50%;transform:translate(-50%,-50%)}.marker-resize-handle{position:absolute;right:-8px;bottom:-8px;z-index:5;width:18px;height:18px;border:2px solid white;border-radius:50%;background:#1b7c45;box-shadow:0 4px 10px #00000047;cursor:nwse-resize}.map-zoom,.compass-control{position:absolute;border-radius:7px;background:#fffffff5;box-shadow:var(--soft-shadow)}.map-zoom{left:12px;top:14px;z-index:20;display:grid;overflow:hidden}.map-zoom button{display:grid;place-items:center;width:42px;height:42px;border:0;border-bottom:1px solid var(--border);background:transparent;color:#18251d}.map-zoom button:last-child{border-bottom:0}.map-zoom button:disabled{cursor:not-allowed;opacity:.46}.compass-control{right:12px;top:12px;z-index:20;display:inline-flex;align-items:center;gap:6px;height:46px;border:0;padding:0 12px;color:#132018}.insights{border-left:1px solid var(--border)}.insight-section{padding:19px 19px 18px;border-bottom:1px solid var(--border);background:var(--surface)}.insight-section.collapsed{padding-bottom:12px}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.section-heading.compact{align-items:center}.section-heading h2{margin:0;font-size:19px;line-height:1.2;letter-spacing:0}.section-heading p{max-width:320px;margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.4}.section-heading button{display:grid;place-items:center;width:30px;height:30px;border:0;background:transparent;color:#4d5b53}.photo-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px;margin-bottom:12px}.photo-thumb,.photo-upload{width:100%;aspect-ratio:1;border-radius:7px}.photo-thumb{padding:0;border:2px solid transparent;background:#fff;overflow:hidden}.photo-thumb.active{border-color:var(--green)}.photo-thumb img{width:100%;height:100%;object-fit:cover}.photo-thumb-placeholder{display:grid;place-items:center;width:100%;height:100%;padding:6px;background:linear-gradient(145deg,#eef4ee,#dde8df);color:#1b2b21;font-size:10px;font-weight:800;line-height:1.2;text-align:center;word-break:break-word}.photo-upload{display:grid;place-items:center;border:2px dashed #c1cac3;background:transparent;color:#627168}.list-label{margin:0 0 9px;color:#26342b;font-size:13px;font-weight:650}.species-export-button{width:100%;min-height:36px;margin-bottom:9px;font-size:13px}.species-csv-actions{display:grid;gap:8px;margin-bottom:9px}.species-csv-actions .species-export-button{margin-bottom:0}.species-list{display:grid;gap:8px}.species-card{width:100%;min-height:104px;border:1px solid var(--border);border-radius:7px;background:var(--surface);padding:8px;color:var(--text);text-align:left}.species-card-main{display:grid;grid-template-columns:27px 60px minmax(0,1fr) 52px 16px;align-items:center;gap:8px;width:100%;border:0;background:transparent;padding:0;text-align:left;color:inherit}.species-card.selected{border-color:#167a4373;box-shadow:0 0 0 3px #167a4314}.identify-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:100%;min-height:34px;margin-top:8px;border:1px solid rgba(15,99,53,.28);border-radius:6px;background:#167a4314;color:var(--green-dark);font-size:12px;font-weight:700}.identify-button:disabled{opacity:.7;cursor:not-allowed}.species-index{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--marker);color:#fff;font-size:13px;font-weight:900}.species-card img{width:60px;height:56px;border-radius:5px;object-fit:cover}.species-image-placeholder{display:grid;place-items:center;width:60px;height:56px;border-radius:5px;padding:5px;background:linear-gradient(145deg,#eef4ee,#dde8df);color:#1b2b21;font-size:10px;font-weight:800;line-height:1.2;text-align:center;word-break:break-word}.species-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.species-copy strong{overflow:hidden;font-size:14px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.species-copy em{overflow:hidden;color:#48564d;font-size:12px;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.species-copy span{display:flex;align-items:center;flex-wrap:wrap;gap:5px;min-width:0;overflow:visible;color:#344239;font-size:10.5px;line-height:1.3;text-overflow:clip;white-space:normal}.species-copy svg:first-child{flex:0 0 auto;color:var(--amber)}.species-copy span:last-child svg{color:var(--blue)}.species-note{display:block;color:#2f3c34;font-size:10.5px;line-height:1.35}.confidence{justify-self:end;align-self:start;border-radius:999px;padding:4px 8px;background:#d9f0df;color:#19713d;font-size:12px;font-weight:800}.species-card-actions{display:flex;justify-content:flex-end;margin-top:8px}.species-edit-toggle{display:inline-flex;align-items:center;gap:6px;min-height:30px;border:1px solid rgba(112,127,117,.45);border-radius:6px;padding:0 10px;background:#fff;color:#2a372f;font-size:12px;font-weight:700}.species-edit-toggle.active{border-color:#0f633561;background:#167a4314;color:var(--green-dark)}.species-edit-panel{margin-top:8px;border-top:1px solid var(--border);padding-top:8px;display:grid;gap:8px}.species-edit-name{display:grid;gap:6px}.species-edit-name span{color:#2a372f;font-size:11px;font-weight:700}.species-edit-name input{width:100%;min-height:34px;border:1px solid var(--border-strong);border-radius:6px;padding:0 10px;background:#fff;color:var(--text);font-size:13px}.species-edit-check{display:inline-flex;align-items:center;gap:8px;color:#2a372f;font-size:12px;font-weight:650}.species-edit-check input{width:15px;height:15px;accent-color:var(--green)}.species-edit-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.species-edit-buttons button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:32px;border:1px solid rgba(112,127,117,.45);border-radius:6px;background:#fff;color:#2a372f;font-size:11px;font-weight:700;line-height:1}.species-edit-buttons button[type=submit]{border-color:#0f63354d;background:#167a4314;color:var(--green-dark)}.species-edit-buttons button:disabled{opacity:.5;cursor:not-allowed}.concept-section{border-bottom:0}.modal-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:22px;background:#0a140e73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.plant-modal{width:min(480px,100%);max-height:calc(100dvh - 44px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow);padding:18px;overflow:auto}.plant-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.plant-modal-header h2{margin:0;font-size:22px;line-height:1.2}.plant-modal-header button{display:grid;place-items:center;width:32px;height:32px;border:0;background:transparent;color:#4d5b53}.plant-modal-field{display:grid;gap:8px;margin-bottom:12px}.plant-modal-field span{color:#2a372f;font-size:13px;font-weight:650}.plant-modal-field input{width:100%;min-height:42px;border:1px solid var(--border-strong);border-radius:7px;padding:0 12px;background:#fff;color:var(--text)}.photo-picker{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border:1px dashed #96a79b;border-radius:7px;background:#f0f7f2cc;color:#243229;font-size:14px;font-weight:650}.photo-preview-stage{position:relative;width:100%;height:220px;border:1px solid var(--border);border-radius:7px;background:#f1f5f1;overflow:hidden;cursor:grab;touch-action:none}.photo-preview-stage.dragging{cursor:grabbing}.photo-preview{width:100%;height:100%;display:block;object-fit:contain}.photo-focus-ring{position:absolute;width:96px;height:96px;border:2px solid rgba(255,255,255,.96);box-sizing:border-box;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 9999px #09120d38,0 5px 14px #0000004d;pointer-events:none}.photo-preview-note{margin:8px 0 0;color:#3c4a42;font-size:12px;line-height:1.35}.plant-modal-toggle{display:inline-flex;align-items:center;gap:9px;margin:2px 0 10px;color:#253229;font-size:13px;font-weight:650}.plant-modal-toggle input{width:16px;height:16px;accent-color:var(--green)}.plant-modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.plant-modal-actions .primary-action{min-width:0}.concept-preview{position:relative;overflow:hidden;aspect-ratio:16 / 9;border:1px solid var(--border-strong);border-radius:7px;background:#e0e6dc}.concept-preview img{width:100%;height:100%;object-fit:cover}.concept-preview-empty{display:grid;place-items:center;width:100%;height:100%;color:#4f5d54;font-size:13px;font-weight:650}.concept-preview.ready{box-shadow:0 0 0 3px #167a4314}.concept-center-stage{display:block;padding:18px;background:#e7ece6;overflow:auto}.concept-center-wrap{width:max-content;min-width:100%;min-height:100%;border:1px solid var(--border-strong);border-radius:8px;background:#f1f5f0;display:grid;place-items:center;overflow:visible;padding:18px}.concept-center-image{width:auto;height:auto;max-width:none;max-height:none;display:block}.concept-center-status{margin:0;color:#405047;font-size:14px;font-weight:650;text-align:center}.concept-actions-row{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:8px}.concept-actions-row .secondary-action{width:100%;min-height:58px;padding:10px 12px;align-items:flex-start;justify-content:flex-start;text-align:left}.concept-meta{margin:0 0 10px;color:#445147;font-size:12px;line-height:1.35}.concept-model-grid{display:grid;grid-template-columns:1fr;gap:8px;margin:10px 0}.concept-model-grid label{display:grid;gap:6px}.concept-model-grid span,.concept-prompt-field span{color:#253229;font-size:12px;font-weight:700}.concept-model-grid select{width:100%;min-height:36px;border:1px solid var(--border-strong);border-radius:7px;padding:0 10px;background:#fff;color:#17241c}.concept-prompt-field{display:grid;gap:6px;margin-bottom:10px}.concept-prompt-field textarea{width:100%;border:1px solid var(--border-strong);border-radius:7px;padding:10px;background:#fff;color:#1c291f;line-height:1.4;resize:vertical}.concept-error{margin:0 0 10px;color:#b03520;font-size:12px;font-weight:650;line-height:1.35}.site-tags{display:grid;grid-template-columns:repeat(3,1fr);margin:13px 0 12px;border-bottom:1px solid var(--border);padding-bottom:13px}.site-tags span{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:0;border-right:1px solid var(--border);color:#2c3a31;font-size:13px;font-weight:650;white-space:nowrap}.site-tags span:last-child{border-right:0}.site-tags svg{color:var(--green)}.site-tags span:first-child svg{color:var(--amber)}.site-tags span:nth-child(2) svg{color:var(--blue)}.full-concept-button{width:100%;border:1px solid var(--border-strong);background:var(--surface);color:var(--green-dark)}.full-concept-button:disabled{opacity:.65;cursor:not-allowed}@media(max-width:1260px){.app-header{grid-template-columns:1fr auto}.top-nav{order:3;grid-column:1 / -1;justify-content:center;min-height:54px}.workspace{grid-template-columns:304px minmax(430px,1fr)}.insights{grid-column:1 / -1;display:grid;grid-template-columns:1.1fr .9fr;border-top:1px solid var(--border);border-left:0}.map-stage,.sidebar{min-height:760px}}@media(max-width:860px){html,body,#root{min-height:100%}body{overflow-y:auto}.app-shell{min-height:100dvh;padding-bottom:env(safe-area-inset-bottom)}.app-header{position:static;display:flex;flex-direction:column;align-items:stretch;gap:12px;padding:calc(14px + env(safe-area-inset-top)) calc(14px + env(safe-area-inset-right)) 14px calc(14px + env(safe-area-inset-left))}.brand strong{font-size:24px}.brand>div{display:block}.brand span:last-child{margin-top:5px;white-space:normal}.top-nav{order:initial;justify-content:space-between;gap:6px;min-height:48px}.nav-item{flex:1;justify-content:center;min-height:48px;padding:0 7px;font-size:14px}.header-actions{justify-content:stretch}.primary-action{flex:1;min-width:0}.workspace,.insights{display:block}.workspace{height:auto;min-height:0;overflow:visible}.sidebar,.insights{min-height:0;overflow:visible}.sidebar{border-right:0}.map-stage{width:100%;height:clamp(420px,62dvh,560px);min-height:0}.insights{border-left:0}.species-card-main{grid-template-columns:28px 58px minmax(0,1fr) 50px}.species-card-main>svg{display:none}.species-card img,.species-image-placeholder{width:58px;height:56px}.map-marker{width:clamp(34px,calc(56px * var(--plant-size, 1)),150px);height:clamp(34px,calc(56px * var(--plant-size, 1)),150px)}.marker-resize-handle{width:24px;height:24px;right:-11px;bottom:-11px}input,select,textarea,.address-field input,.design-library-field input,.design-library-field select,.markup-label-type select,.markup-custom-label input,.concept-model-grid select,.concept-prompt-field textarea,.plant-modal-field input,.species-edit-name input{font-size:16px}.secondary-action,.full-concept-button,.measure-button,.identify-button,.species-edit-toggle,.species-export-button,.photo-picker,.address-field,.plant-modal-field input,.concept-model-grid select,.concept-prompt-field textarea,.design-library-field input,.design-library-field select,.markup-label-type select,.markup-custom-label input,.species-edit-name input{min-height:44px}.captured-address button,.layer-row button,.section-heading button,.plant-modal-header button,.map-zoom button{min-width:44px;min-height:44px}.captured-address button,.section-heading button,.plant-modal-header button{width:44px;height:44px}.layer-row{min-height:46px}.layer-row input,.plant-modal-toggle input,.species-edit-check input,.boundary-handle{width:20px;height:20px}.marker-id-input{min-width:48px;min-height:36px;font-size:16px}.boundary-handle.top-left{left:-11px;top:-11px}.boundary-handle.top-right{right:-11px;top:-11px}.boundary-handle.bottom-left{left:-11px;bottom:-11px}.boundary-handle.bottom-right{right:-11px;bottom:-11px}.map-context-menu button{min-height:44px;font-size:14px}.photo-focus-ring{border-width:3px}}@media(max-width:540px){.app-header{gap:10px}.brand{gap:9px}.brand strong{font-size:22px}.brand span:last-child{font-size:13px}.brand-mark{width:29px;height:29px}.top-nav{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.top-nav::-webkit-scrollbar{display:none}.nav-item{flex:0 0 auto;min-width:106px}.header-actions{flex-wrap:wrap;gap:10px}.icon-button,.avatar-button{width:44px;height:44px}.primary-action{flex-basis:calc(100% - 108px);min-height:46px;padding:0 12px;line-height:1.1}.workspace{border-top:1px solid var(--border)}.step-header{grid-template-columns:30px minmax(0,1fr) 22px;min-height:58px;padding:0 calc(14px + env(safe-area-inset-right)) 0 calc(14px + env(safe-area-inset-left));font-size:15px}.step-body{padding:0 calc(14px + env(safe-area-inset-right)) 14px calc(14px + env(safe-area-inset-left))}.address-field{grid-template-columns:36px minmax(0,1fr) 36px 46px;height:auto;min-height:46px}.address-field input,.address-field button{min-height:44px}.address-suggestions{position:fixed;top:auto;right:calc(12px + env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom));left:calc(12px + env(safe-area-inset-left));max-height:min(310px,calc(100dvh - 120px));overflow:auto}.captured-address{align-items:flex-start}.map-stage{height:clamp(390px,58dvh,500px);overscroll-behavior:contain}.map-image-status{left:60px;top:12px;max-width:calc(100% - 120px);font-size:12px}.compass-control{top:10px;right:calc(10px + env(safe-area-inset-right));min-height:44px}.photo-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.insight-section{padding:16px calc(14px + env(safe-area-inset-right)) 16px calc(14px + env(safe-area-inset-left))}.section-heading{align-items:center}.species-card-main{grid-template-columns:28px 56px minmax(0,1fr);gap:8px}.confidence{justify-self:start;align-self:auto;grid-column:3}.species-edit-buttons{grid-template-columns:1fr}.species-edit-buttons button{min-height:44px;font-size:13px}.concept-actions-row{flex-wrap:wrap}.concept-actions-row .secondary-action{flex:1 1 150px;min-height:44px;font-size:14px}.modal-backdrop{align-items:end;padding:calc(12px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left))}.plant-modal{width:100%;max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:16px}.photo-preview-stage{height:clamp(170px,35dvh,220px)}.plant-modal-actions{grid-template-columns:1fr}.site-tags{grid-template-columns:1fr;gap:8px}.site-tags span{justify-content:flex-start;border-right:0}}@media(max-width:380px){.brand strong{font-size:20px}.primary-action{flex-basis:100%}.header-actions{display:grid;grid-template-columns:1fr 44px 44px}.nav-item{flex:1 1 0;min-width:0;gap:6px;font-size:13px}.map-stage{height:360px}.markup-action-row,.tool-pair,.plant-modal-actions,.markup-custom-label{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
