.nav{position:sticky;top:0;background:#f5f1e8;color:#2c4a52;z-index:10000;box-shadow:0 1px 3px #2c4a5214}.nav__inner{display:flex;align-items:center;justify-content:space-between;max-width:1100px;margin:0 auto;padding:14px 20px}.brand{font-weight:700;font-size:18px;text-decoration:none;color:#2c4a52}nav a{color:#3d5e68;margin-left:16px;text-decoration:none;font-weight:500;transition:color .2s}nav a:hover{color:#2c4a52}nav a.active{color:#2c4a52;font-weight:600}nav a.cta{background:#d4a574;color:#fff;padding:8px 16px;border-radius:8px;font-weight:600}nav a.cta:hover{background:#b88d5f;color:#fff}nav.nav__links{display:flex;align-items:center;gap:12px}.nav__user{display:flex;align-items:center;gap:8px;margin-left:8px}.nav__user span{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3d5e68;font-size:14px}.nav__user .signout{background:#fff;color:#3d5e68;border:1px solid #B8C9CE;border-radius:6px;padding:6px 12px;cursor:pointer;font-weight:500;transition:all .2s}.nav__user .signout:hover{background:#2c4a52;color:#fff;border-color:#2c4a52}.nav__settings{position:relative}.settings-toggle{background:none;border:none;color:#3d5e68;font-weight:500;font-size:inherit;cursor:pointer;padding:4px 8px;border-radius:4px;transition:background-color .2s}.settings-toggle:hover{background-color:#3d5e681a}.settings-dropdown{position:absolute;top:100%;right:0;background:#f5f1e8;border:1px solid #B8C9CE;border-radius:8px;padding:8px 0;min-width:160px;box-shadow:0 4px 12px #2c4a5226;z-index:9999}.settings-dropdown a{display:block;padding:8px 16px;color:#3d5e68;text-decoration:none;margin:0}.settings-dropdown a:hover{background-color:#3d5e681a;color:#2c4a52}.settings-dropdown a.active{background-color:#d4a7741a;color:#2c4a52;font-weight:600}.footer{margin-top:0;background:#0b1d14;color:#fff}.footer__inner{max-width:1100px;margin:0 auto;padding:0 20px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.footer p{opacity:.8}.footer__links{display:flex;align-items:center;gap:14px}.footer__links a{color:#fff;text-decoration:none;font-size:14px;font-weight:600;opacity:.82}.footer__links a:hover{opacity:1;text-decoration:underline}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;overflow-x:hidden;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Helvetica Neue,sans-serif;color:#333}.app-shell{min-height:100vh;display:flex;flex-direction:column}main{max-width:1100px;margin:0 auto;padding:20px;flex:1 0 auto;background:#fff}.app-shell--fullscreen{height:100vh;min-height:100vh;overflow:hidden}.app-shell--fullscreen main{max-width:none;width:100vw;height:100vh;margin:0;padding:0;flex:1 1 auto;background:#dbe5df;overflow:hidden}main:has(.hero){padding-top:0!important}main:has(.consent-page){padding:0!important;max-width:100vw!important;width:100vw!important;margin:0!important;display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.section{padding:64px 0}.section:has(.hero){padding:0!important}.container{max-width:1100px;margin:0 auto;padding:0 20px}.hero{position:relative;height:70vh;min-height:480px;width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);background:#0f1419;margin-top:0;padding-top:0}.hero__content{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;z-index:1}.hero__title{font-size:clamp(28px,5vw,56px);margin:0 0 12px;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.55)}.hero__subtitle{max-width:800px;margin:0 auto;opacity:.95;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.55)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:24px}.card{background:#0f2419;border:1px solid #133224;border-radius:12px;padding:16px}.btn{display:inline-block;background:#2b8a3e;color:#fff;padding:10px 14px;border-radius:8px;text-decoration:none;margin-top:16px}.consent-page{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;width:100%;margin:0;padding:0}.consent-page>*{margin-top:0!important;padding-top:0!important}.consent-top{flex:0 0 auto;height:50vh;overflow:hidden;position:relative;z-index:1;margin:0;padding:0;background:#e3f2fd}.consent-top>.section{display:flex;flex-direction:column;height:100%;margin:0;padding:0}.consent-mid{flex:1 1 auto;min-height:30vh;position:relative;margin:0;padding:0}.consent-mid .consent-map-wrapper{height:100%;margin:0;padding:0}.consent-splitter{flex:0 0 auto;height:8px;cursor:row-resize;background:linear-gradient(180deg,#133224e6,#133224b3);border-top:1px solid #0b2419;border-bottom:1px solid #1a3b2a}.consent-splitter:hover{background:linear-gradient(180deg,#194330f2,#194330bf)}.consent-splitter.dragging{background:linear-gradient(180deg,#266649,#266649d9)}.full-bleed{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);background:#f5f5f5}.consent-mid>.map-controls{position:absolute;top:8px;right:8px;z-index:5000}.consent-map-wrapper .leaflet-container{touch-action:auto!important;cursor:grab;margin-top:0!important}.consent-map-wrapper .leaflet-container:active{cursor:grabbing}.consent-map-wrapper .leaflet-pane,.consent-map-wrapper .leaflet-tile,.consent-map-wrapper .leaflet-marker-icon,.consent-map-wrapper .leaflet-interactive{pointer-events:auto}table{width:100%;font-size:13px}table th,table td{padding:6px 8px;text-align:left;border-bottom:1px solid #133224;vertical-align:top}.consent-row-hover:hover{background:#79c7ff!important}table tbody tr{background:#f1f5f9}.leaflet-popup-content table tbody tr:hover{background:#9ed6bf80!important}.leaflet-popup-content table tbody tr:hover th,.leaflet-popup-content table tbody tr:hover td{background:transparent!important}.consent-popup table tbody tr:hover{background:#9ed6bf80!important}.leaflet-popup-content-wrapper{max-height:400px!important;min-height:auto!important}.leaflet-popup-content{max-height:380px!important;overflow-y:auto!important;margin:8px 12px!important;min-height:auto!important}.leaflet-popup{margin-bottom:20px!important}.consent-popup{font-size:12px;line-height:1.3;max-width:260px;max-height:380px;overflow-y:auto}.consent-popup__title{font-weight:600;margin:0 0 4px;font-size:13px}.consent-popup__table{border-collapse:collapse;width:100%}.consent-popup__table th{padding:2px 4px;text-align:left;vertical-align:top;color:#9fd6bf;font-weight:500;white-space:nowrap}.consent-popup__table td{padding:2px 4px;text-align:left;vertical-align:top}.consent-popup .consent-popup__table tbody tr:hover th,.consent-popup .consent-popup__table tbody tr:hover td{background:transparent!important}.consent-popup button{display:inline-block!important;visibility:visible!important;opacity:1!important;z-index:1000!important;position:relative!important;margin:0!important;flex-shrink:0!important}.consent-popup button:hover{opacity:.8!important;transform:translateY(-1px)}.consent-popup>div:last-child{margin-top:8px!important;display:flex!important;gap:6px!important;flex-wrap:wrap!important;position:sticky!important;bottom:0!important;background:inherit!important;padding-top:4px!important}.cluster-marker{display:flex;align-items:center;justify-content:center;background:#1f4d37;color:#fff;border:2px solid #9fd6bf;border-radius:50%;width:34px;height:34px;font-size:12px;font-weight:600;box-shadow:0 0 0 2px #0f2419,0 2px 4px #00000080}.cluster-marker.small{background:#256346}.cluster-marker.medium{background:#2b7a56;width:40px;height:40px;font-size:13px}.cluster-marker.large{background:#329165;width:48px;height:48px;font-size:14px}.tabs{display:flex;gap:8px;border-bottom:1px solid #133224;margin-bottom:8px}.tab-btn{appearance:none;background:transparent;border:none;color:#000;padding:8px 12px;border-radius:8px 8px 0 0;cursor:pointer;font-weight:600;opacity:.7}.tab-btn:hover{opacity:.9;background:#0f2419}.tab-btn.active{opacity:1;color:#000;background:#f5f5f5;border:1px solid #133224;border-bottom-color:transparent}.tab-btn.active:hover{background:#f5f5f5!important}.consent-side-panel{background:#f8fafc;border-left:1px solid #dbe5df;box-shadow:-10px 0 30px #0f241914}.consent-panel-shell{background:linear-gradient(180deg,#f8fafc,#eef4f0)}.consent-tabs-toolbar{padding:10px 12px 8px;border-bottom:1px solid #dbe5df;background:#ffffffc7;backdrop-filter:blur(10px)}.tabs.consent-tabs{display:flex;gap:4px;margin:0;padding:4px;border:1px solid rgba(219,229,223,.9);border-radius:12px;background:linear-gradient(180deg,#ffffff9e,#e7f0ebb8);box-shadow:inset 0 1px #fffffff2,0 10px 22px #0f241912;overflow-x:auto;scrollbar-width:thin}.tabs.consent-tabs .tab-btn{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:7px 11px;border:1px solid rgba(255,255,255,.58);border-radius:9px;color:#475569;background:linear-gradient(180deg,#ffffffb3,#ffffff40);font-size:12px;font-weight:700;line-height:1;opacity:1;white-space:nowrap;box-shadow:inset 0 1px #ffffffe6;transition:transform .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease}.tabs.consent-tabs .tab-btn:hover{transform:translateY(-1px);background:linear-gradient(180deg,#fffffff2,#f0f7f3b8);color:#173d2a;box-shadow:inset 0 1px #fffffff2,0 8px 16px #0f24191a}.tabs.consent-tabs .tab-btn.active{color:#fff;background:linear-gradient(135deg,#1f4834fa,#2f6c4ddb);border:1px solid rgba(255,255,255,.22);box-shadow:inset 0 1px #ffffff47,0 10px 20px #1f483438}.tabs.consent-tabs .tab-btn.active:hover{background:linear-gradient(135deg,#1f4834fa,#2f6c4ddb)!important;color:#fff}.tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;border-radius:999px;background:#ffffffd1;color:#1f4834;font-size:10px;font-weight:800}.tab-btn:not(.active) .tab-count{background:#dce8e1;color:#475569}.consent-tab-card{margin:10px 12px 12px;background:#fff;border:1px solid #dbe5df!important;border-radius:12px!important;color:#1e293b;box-shadow:0 12px 26px #0f241914;overflow:hidden}.consent-tab-content{display:flex;flex-direction:column;gap:14px;flex:1 1 0;min-height:0;padding:14px}.consent-panel-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.consent-panel-title{font-size:13px;font-weight:800;color:#173d2a;letter-spacing:.01em}.consent-panel-meta{font-size:11px;color:#64748b;font-weight:600}.consent-control-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;padding:10px 12px;background:linear-gradient(180deg,#ffffffb8,#f8fafc99);border:1px solid rgba(219,229,223,.95);border-radius:12px;box-shadow:inset 0 1px #ffffffd9}.consent-control-bar label{font-size:12px;color:#475569;font-weight:700}.consent-control-bar input,.consent-control-bar select,.consent-tab-content input[type=text],.consent-tab-content input[type=number],.consent-tab-content input:not([type]),.consent-tab-content select,.consent-tab-content textarea{border:1px solid rgba(203,213,225,.9)!important;border-radius:10px!important;background:linear-gradient(180deg,#ffffffeb,#f8fafcc2)!important;color:#1e293b!important;padding:8px 10px!important;font-size:12px!important;box-shadow:inset 0 1px #fffffff2,0 4px 12px #0f172a0d!important;outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.consent-control-bar input:focus,.consent-control-bar select:focus,.consent-tab-content input[type=text]:focus,.consent-tab-content input[type=number]:focus,.consent-tab-content input:not([type]):focus,.consent-tab-content select:focus,.consent-tab-content textarea:focus{border-color:#3b9d6f!important;box-shadow:inset 0 1px #fffffff2,0 0 0 3px #3b9d6f29,0 8px 18px #0f241914!important;background:#fff!important}.consent-tab-content input[type=file]{padding:6px!important;cursor:pointer}.consent-tab-content input[type=file]::file-selector-button{margin-right:10px;border:1px solid rgba(31,72,52,.18);border-radius:8px;background:linear-gradient(180deg,#fffffff2,#e7f0ebe6);color:#1f4834;padding:7px 10px;font-size:12px;font-weight:800;cursor:pointer;box-shadow:inset 0 1px #fffffff2,0 2px 8px #0f241914}.consent-tab-content input[type=range]{accent-color:#2f6c4d;padding:0!important;box-shadow:none!important;background:transparent!important}.consent-tab-content input[type=checkbox]{accent-color:#1f4834;width:16px;height:16px;padding:0!important;box-shadow:none!important}.consent-table-title{font-size:12px;font-weight:800;color:#334155;margin:0 0 6px;padding:0 2px}.consent-table-wrap{border:1px solid #dbe5df!important;border-radius:10px!important;background:#fff;box-shadow:inset 0 1px #ffffffb3}.consent-table-wrap table thead{background:#f8fafc!important;color:#334155!important}.consent-table-wrap table th{background:#f8fafc;color:#334155;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;border-color:#e2e8f0!important}.consent-table-wrap table td{border-color:#e2e8f0!important;color:#1e293b}.consent-row-hover:hover{background:#eef7f1!important}.consent-empty-state{display:flex;align-items:center;justify-content:center;min-height:120px;padding:22px;text-align:center;color:#64748b;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;font-size:13px;line-height:1.45}.consent-tab-content button:not(.tab-btn),.consent-primary-btn,.consent-secondary-btn,.analysis-dashboard-modern button{position:relative;border:1px solid rgba(255,255,255,.26)!important;border-radius:10px!important;padding:8px 12px!important;font-size:12px!important;font-weight:800!important;cursor:pointer;white-space:nowrap;color:#fff!important;background:linear-gradient(135deg,#1f4834f5,#2f6c4dd1)!important;box-shadow:inset 0 1px #ffffff47,0 8px 18px #1f48342e,0 1px 2px #0f172a1a!important;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}.consent-tab-content button:not(.tab-btn):before,.consent-primary-btn:before,.consent-secondary-btn:before,.analysis-dashboard-modern button:before{content:"";position:absolute;inset:1px 1px auto;height:45%;border-radius:9px;background:linear-gradient(180deg,#ffffff5c,#fff0);pointer-events:none}.consent-tab-content button:not(.tab-btn):hover,.consent-primary-btn:hover,.consent-secondary-btn:hover,.analysis-dashboard-modern button:hover{transform:translateY(-1px);filter:saturate(1.05);box-shadow:inset 0 1px #ffffff57,0 12px 24px #1f483438,0 2px 4px #0f172a1f!important}.consent-tab-content button:not(.tab-btn):active,.consent-primary-btn:active,.consent-secondary-btn:active,.analysis-dashboard-modern button:active{transform:translateY(0);box-shadow:inset 0 2px 6px #0f241938,0 4px 10px #1f483424!important}.consent-tab-content button:disabled,.analysis-dashboard-modern button:disabled{background:linear-gradient(180deg,#e2e8f0,#cbd5e1)!important;color:#94a3b8!important;cursor:not-allowed;box-shadow:inset 0 1px #ffffffb3!important;transform:none!important}.consent-secondary-btn{background:linear-gradient(180deg,#ffffffeb,#e7f0ebe6)!important;color:#1f4834!important;border:1px solid rgba(31,72,52,.14)!important}.consent-danger-btn,.consent-tab-content button[title*=Delete],.consent-tab-content button[title*=Remove]{background:linear-gradient(135deg,#b91c1cf2,#ef4444d1)!important;color:#fff!important;box-shadow:inset 0 1px #ffffff42,0 8px 18px #b91c1c2e!important}.analysis-dashboard-modern button.liquid-toggle:not(.active){background:linear-gradient(180deg,#ffffffeb,#e7f0ebe6)!important;color:#1f4834!important;border:1px solid rgba(31,72,52,.16)!important;box-shadow:inset 0 1px #fffffff2,0 4px 12px #0f241912!important}.consent-history-list{overflow-y:auto;border:1px solid #dbe5df;border-radius:10px;background:#f8fafc;padding:8px}.consent-history-card{border:1px solid #e2e8f0;border-radius:10px;padding:12px;background:#fff;box-shadow:0 1px 4px #0f172a0d}.consent-pdf-frame{border:1px solid #dbe5df!important;border-radius:10px!important;background:#f8fafc;box-shadow:inset 0 1px #fffc}.analysis-dashboard-modern{color:#1e293b}.analysis-dashboard-modern>div{border-color:#dbe5df!important;border-radius:12px!important;box-shadow:0 10px 24px #0f241914!important}.analysis-dashboard-modern [style*="border: 2px solid"],.analysis-dashboard-modern [style*="border:2px solid"],.analysis-dashboard-modern [style*="border: 3px solid"],.analysis-dashboard-modern [style*="border:3px solid"]{border:1px solid #dbe5df!important;border-radius:12px!important}.analysis-dashboard-modern button{border-radius:8px!important}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
