@import"https://fonts.bunny.net/css?family=inter:400,500,600,700,800";:root,:host{--ol-background-color: white;--ol-accent-background-color: #F5F5F5;--ol-subtle-background-color: rgba(128, 128, 128, .25);--ol-partial-background-color: rgba(255, 255, 255, .75);--ol-foreground-color: #333333;--ol-subtle-foreground-color: #666666;--ol-brand-color: #00AAFF}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{position:absolute;bottom:-5px;font-size:10px;z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{position:absolute;font-size:12px;text-align:center;bottom:25px;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer}:root{--bg: #f3f5f2;--card: #ffffff;--ink: #1b211e;--muted: #69736d;--line: #dfe5e0;--soft: #eef2ee;--green: #245b44;--green-dark: #1b4634;--green-soft: #e8f0eb;--sidebar: #1d2421;--sidebar-2: #171d1b;--sidebar-text: #ecf1ed;--sidebar-muted: #98a39c;--danger: #a33b36;--shadow: 0 8px 24px rgba(20, 32, 25, .055);font-family:Inter,Arial,sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink)}body{font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}svg{width:20px;height:20px;fill:currentColor}.app-shell{min-height:100vh;display:flex}.sidebar{position:fixed;inset:0 auto 0 0;width:224px;z-index:50;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--sidebar),var(--sidebar-2));color:var(--sidebar-text)}.brand-block{min-height:78px;display:flex;gap:12px;align-items:center;padding:18px;border-bottom:1px solid rgba(255,255,255,.07)}.brand-mark{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#2f7658;font-weight:800;letter-spacing:-.03em}.brand-copy{display:flex;flex-direction:column;min-width:0}.brand-copy strong{font-size:14px;line-height:1.2;white-space:nowrap}.brand-copy span{margin-top:3px;color:var(--sidebar-muted);font-size:12px}.sidebar-nav{padding:14px 10px;display:flex;flex-direction:column;gap:4px}.nav-item{min-height:42px;display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:10px;padding:0 11px;border-radius:9px;color:#ced6d0;font-weight:600}.nav-item svg{color:#8fa098;width:19px;height:19px}.nav-item:hover,.nav-item.is-active{background:#ffffff13;color:#fff}.nav-item.is-active svg{color:#77b592}.nav-item.is-disabled{color:#77837c;cursor:default}.nav-item.is-disabled:hover{background:transparent;color:#77837c}.nav-item em{font-style:normal;font-size:10px;padding:2px 6px;border-radius:999px;background:#ffffff14}.nav-divider{height:1px;margin:10px 8px;background:#ffffff12}.nav-caption{padding:0 11px 5px;color:#738179;font-size:9px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.sidebar-foot{margin-top:auto;display:flex;justify-content:space-between;padding:16px 18px;color:var(--sidebar-muted);font-size:11px;border-top:1px solid rgba(255,255,255,.07)}.main-shell{width:calc(100% - 224px);margin-left:224px;min-height:100vh}.topbar{position:sticky;top:0;z-index:40;height:68px;display:flex;align-items:center;gap:16px;padding:0 26px;background:#fafbf9eb;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar-title{font-size:15px;font-weight:700}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.user-chip{width:35px;height:35px;display:grid;place-items:center;border-radius:50%;background:var(--sidebar);color:#fff;font-weight:700;font-size:12px}.icon-button{width:38px;height:38px;border:0;border-radius:9px;background:transparent;cursor:pointer;color:var(--ink)}.mobile-menu{display:none}.content-wrap{padding:28px;max-width:1800px;margin:0 auto}.map-content-wrap{padding:0;max-width:none;height:calc(100vh - 68px);overflow:hidden}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.page-heading h1{margin:0;font-size:32px;line-height:1.1;letter-spacing:-.035em;font-weight:700}.page-heading p{margin:8px 0 0;color:var(--muted);font-size:14px}.heading-meta{display:flex;align-items:center;gap:10px;color:var(--muted);margin-bottom:9px}.button{min-height:39px;display:inline-flex;align-items:center;justify-content:center;padding:0 15px;border:1px solid transparent;border-radius:8px;cursor:pointer;font-weight:700;font-size:13px;transition:.16s ease}.button:hover{transform:translateY(-1px)}.button:disabled{opacity:.5;cursor:not-allowed;transform:none}.button-primary{background:var(--green);color:#fff}.button-primary:hover{background:var(--green-dark)}.button-secondary{background:#fff;color:var(--ink);border-color:var(--line)}.button-secondary:hover{border-color:#cbd4cd;background:#fafbfa}.button-small{min-height:34px;padding:0 11px}.button-full{width:100%}.text-link,.back-link{color:var(--green);font-weight:700}.flash-message{margin-bottom:18px;padding:12px 14px;border:1px solid #c9ddcf;border-radius:9px;background:#eef7f0;color:#28543a;font-weight:600}.flash-error{border-color:#e4c2bf;background:#fff1f0;color:#8c342f}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.card-header{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;border-bottom:1px solid var(--line)}.card-header h2{margin:0;font-size:19px;letter-spacing:-.02em}.card-header p{margin:4px 0 0;color:var(--muted)}.stats-grid{display:grid;gap:14px;margin-bottom:20px}.stats-grid-five{grid-template-columns:repeat(5,minmax(0,1fr))}.stat-card{min-height:128px;display:flex;flex-direction:column;padding:18px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.stat-card span{color:var(--muted);font-weight:600}.stat-card strong{margin-top:10px;font-size:31px;line-height:1;letter-spacing:-.04em}.stat-card small{margin-top:auto;color:#8a948e;font-size:11px}.table-list{width:100%;overflow:hidden}.table-row{min-height:58px;display:grid;align-items:center;gap:16px;padding:0 20px;border-bottom:1px solid var(--line)}.table-row:last-child{border-bottom:0}.table-head{min-height:43px;background:#fafbfa;color:var(--muted);font-size:11px;font-weight:700}.project-grid{grid-template-columns:110px minmax(220px,1.6fr) minmax(110px,.7fr) 70px 110px 130px}.projects-list-grid{grid-template-columns:110px minmax(220px,1.6fr) minmax(100px,.7fr) 100px 60px 105px 120px}.is-clickable{transition:background .15s ease}.is-clickable:hover{background:#f8faf8}.row-title{color:var(--ink);font-weight:650;font-size:15px}.status-pill{display:inline-flex;width:fit-content;align-items:center;min-height:25px;padding:0 9px;border-radius:999px;background:var(--soft);color:#566159;font-size:11px;font-weight:700}.status-new{background:#edf1ee;color:#536057}.status-mapping{background:#e8f0eb;color:#245b44}.status-ready{background:#e9f4ec;color:#266038}.status-review{background:#f5efe3;color:#755d2d}.empty-state{padding:44px 24px;text-align:center;color:var(--muted)}.empty-state h3{color:var(--ink);margin:0 0 6px}.empty-state p{margin:0}.empty-state.compact{padding:30px 20px}.empty-state.compact .button{margin-top:16px}.pagination-wrap{margin-top:18px}.form-card{padding:24px;max-width:980px}.form-grid{display:grid;gap:16px}.form-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.compact-grid{gap:12px}.field{display:flex;flex-direction:column;gap:7px}.field-wide{grid-column:1 / -1}.field>span{font-size:12px;font-weight:700;color:#4d5851}.field input,.field select,.field textarea{width:100%;border:1px solid #d7ded8;border-radius:8px;background:#fff;color:var(--ink);outline:none;padding:10px 11px;min-height:42px}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#5f8d72;box-shadow:0 0 0 3px #245b4417}.field em{color:var(--danger);font-size:11px;font-style:normal}.form-actions{margin-top:24px;padding-top:20px;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line)}.toggle-line{display:flex;align-items:center;gap:9px;font-weight:600}.project-tabs{display:flex;align-items:center;gap:5px;margin-bottom:18px;padding:5px;width:fit-content;background:#e9ede9;border-radius:10px}.project-tabs a,.project-tabs span{min-height:36px;display:flex;align-items:center;gap:8px;padding:0 13px;border-radius:7px;color:var(--muted);font-weight:650}.project-tabs a.is-active{background:#fff;color:var(--ink);box-shadow:0 1px 4px #0000000f}.project-tabs em{font-style:normal;font-size:9px;padding:2px 5px;background:#dce3dd;border-radius:999px}.tab-count{min-width:20px;height:20px;display:inline-grid!important;place-items:center;padding:0 6px!important;border-radius:999px!important;background:#e4eae5;color:#536057!important;font-size:10px}.content-grid{display:grid;gap:18px}.project-overview-grid{grid-template-columns:1.25fr 1fr}.success-panel,.next-module{margin:20px;padding:20px;border-radius:10px;background:var(--green-soft)}.success-panel strong,.next-module strong{display:block;font-size:16px}.success-panel p,.next-module p{margin:6px 0 0;color:var(--muted)}.next-module{background:#f4f5f3}.next-module>span{display:block;margin-bottom:8px;color:var(--green);font-size:11px;font-weight:800}.map-workspace{height:100%;display:grid;grid-template-columns:330px minmax(0,1fr);background:#dfe5e0}.map-panel{position:relative;z-index:5;overflow-y:auto;background:#fff;border-right:1px solid var(--line)}.map-panel-head{padding:21px 20px 18px;border-bottom:1px solid var(--line)}.map-panel-head h1{margin:10px 0 3px;font-size:20px;letter-spacing:-.02em}.map-panel-head p{margin:0;color:var(--muted)}.map-panel-section{padding:17px 20px;border-bottom:1px solid var(--line)}.section-label{display:block;margin-bottom:12px;color:#69736d;font-size:10px;font-weight:800}.segmented-control{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;padding:4px;background:#edf1ed;border-radius:9px}.segmented-control button{min-height:34px;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;font-weight:700;font-size:12px}.segmented-control button.is-active{background:#fff;color:var(--ink);box-shadow:0 1px 4px #141e1914}.swipe-control{margin-top:14px}.swipe-control label,.opacity-line span{color:var(--muted);font-size:11px;font-weight:600}.swipe-control input{width:100%;margin-top:8px}.is-hidden{display:none!important}.layer-group+.layer-group{margin-top:17px}.layer-group>strong{display:block;margin-bottom:8px;font-size:12px}.layer-control{padding:8px 0}.layer-line{display:flex;align-items:center;gap:8px;font-weight:600}.layer-line input{accent-color:var(--green)}.opacity-line{display:grid;grid-template-columns:auto 1fr 35px;align-items:center;gap:8px;margin:8px 0 0 25px}.opacity-line input{width:100%;accent-color:var(--green)}.opacity-line output{text-align:right;color:var(--muted);font-size:10px}.site-tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.map-status{min-height:18px;margin:10px 0 0;color:var(--muted);font-size:11px}.map-stage{position:relative;min-width:0;min-height:0}.map-canvas{position:absolute;inset:0;background:#d8dfd9}.map-badge,.map-tip{position:absolute;z-index:4;border:1px solid rgba(30,45,36,.14);background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 16px #141e1914}.map-badge{top:58px;right:14px;padding:8px 10px;border-radius:8px;font-size:11px;font-weight:800}.map-tip{left:14px;bottom:14px;max-width:360px;padding:10px 12px;border-radius:8px;color:#536057;font-size:11px}.ol-zoom{top:14px!important;left:14px!important}.ol-full-screen{top:14px!important;right:14px!important}.ol-scale-bar{left:14px!important;bottom:62px!important}.ol-control button{background:#1d2421e0!important}.ol-attribution{font-family:Inter,Arial,sans-serif!important;font-size:10px!important}.settings-grid{grid-template-columns:minmax(0,1.4fr) minmax(340px,.8fr);align-items:start}.settings-grid>.card:nth-child(2){padding-bottom:20px}.settings-grid>.card:nth-child(2)>form{padding:20px}.settings-layer-row{min-height:70px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:14px;padding:14px 20px;border-bottom:1px solid var(--line)}.settings-layer-row:last-child{border-bottom:0}.settings-layer-head{display:flex;align-items:center;gap:10px;min-width:0}@media(max-width:1200px){.stats-grid-five{grid-template-columns:repeat(3,minmax(0,1fr))}.projects-list-grid{grid-template-columns:100px minmax(180px,1fr) 100px 100px 110px}.projects-list-grid>:nth-child(6){display:none}.settings-grid{grid-template-columns:1fr}}@media(max-width:900px){.sidebar{transform:translate(-100%);transition:transform .2s ease}.sidebar.is-open{transform:translate(0)}.main-shell{width:100%;margin-left:0}.mobile-menu{display:grid;place-items:center}.topbar{padding:0 16px}.content-wrap{padding:20px 16px}.map-content-wrap{padding:0}.stats-grid-five{grid-template-columns:repeat(2,minmax(0,1fr))}.project-overview-grid{grid-template-columns:1fr}.map-workspace{grid-template-columns:270px minmax(0,1fr)}}@media(max-width:680px){.page-heading{align-items:flex-start;flex-direction:column}.page-heading h1{font-size:27px}.stats-grid-five,.form-grid.two-col{grid-template-columns:1fr}.field-wide{grid-column:auto}.project-grid,.projects-list-grid{grid-template-columns:90px minmax(0,1fr) 100px}.project-grid>:nth-child(3),.project-grid>:nth-child(5),.projects-list-grid>:nth-child(3),.projects-list-grid>:nth-child(4),.projects-list-grid>:nth-child(6){display:none}.map-workspace{grid-template-columns:1fr;grid-template-rows:260px minmax(0,1fr)}.map-panel{border-right:0;border-bottom:1px solid var(--line)}.map-panel-head,.map-panel-section{padding:14px 16px}.map-panel-section:nth-of-type(3){display:none}}.project-url{display:inline-flex;margin-top:10px;padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:#fff9;color:#68736c;font-size:11px}.card-footer{display:flex;align-items:center;gap:12px;padding:16px 20px;border-top:1px solid var(--line)}.card-footer-between{justify-content:space-between}.helper-text{color:var(--muted);font-size:11px}.success-panel .text-link{display:inline-block;margin-top:14px}.storage-overview{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;padding:20px}.storage-overview>div{min-height:82px;display:flex;flex-direction:column;justify-content:center;padding:14px;border:1px solid var(--line);border-radius:9px;background:#fafbfa}.storage-overview span{color:var(--muted);font-size:11px;font-weight:650}.storage-overview strong{margin-top:5px;font-size:21px}.storage-overview .storage-key{overflow:hidden;text-overflow:ellipsis;font-size:13px;white-space:nowrap}.project-module-card{margin-top:18px}.documents-grid{grid-template-columns:minmax(0,1fr) 360px;align-items:start}.document-list{min-width:0}.document-row{min-height:76px;display:grid;grid-template-columns:44px minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:13px 20px;border-bottom:1px solid var(--line)}.document-row:last-child{border-bottom:0}.file-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:9px;background:var(--green-soft);color:var(--green);font-size:9px;font-weight:800}.file-main{min-width:0;display:flex;flex-direction:column}.file-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-main span{margin-top:3px;color:var(--muted);font-size:11px}.file-main small{margin-top:4px;color:var(--danger);font-size:10px}.row-actions{display:flex;align-items:center;gap:7px}.row-actions form{margin:0}.storage-status{display:inline-flex;align-items:center;min-height:25px;padding:0 9px;border-radius:999px;font-size:10px;font-weight:750;white-space:nowrap}.storage-sharepoint{background:#e7f3ea;color:#27613a}.storage-failed{background:#f9e9e7;color:#963a34}.storage-local,.storage-pending{background:#f4efe3;color:#725a2b}.panel-form{padding:20px}.panel-form>.field+.field,.panel-form>.form-grid+.button,.panel-form>.button{margin-top:14px}.file-field input{padding:8px}.storage-note{margin:0 20px 20px;padding:15px;border:1px solid #e4dcc9;border-radius:9px;background:#faf7f0}.storage-note.is-ready{border-color:#cfe0d3;background:#f0f7f2}.storage-note strong{display:block}.storage-note p{margin:5px 0 10px;color:var(--muted);font-size:11px}.settings-tabs{width:fit-content;display:flex;align-items:center;gap:4px;margin-bottom:18px;padding:4px;border-radius:9px;background:#e9ede9}.settings-tabs a{min-height:34px;display:flex;align-items:center;padding:0 13px;border-radius:6px;color:var(--muted);font-size:12px;font-weight:700}.settings-tabs a.is-active{background:#fff;color:var(--ink);box-shadow:0 1px 4px #141e1912}.settings-storage-grid{grid-template-columns:minmax(0,1.35fr) minmax(370px,.65fr);align-items:start}.settings-detail-list{padding:6px 20px}.settings-detail-list>div{min-height:56px;display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:18px;border-bottom:1px solid var(--line)}.settings-detail-list>div:last-child{border-bottom:0}.settings-detail-list span{color:var(--muted);font-size:11px;font-weight:650}.settings-detail-list strong{overflow-wrap:anywhere;font-size:12px}.env-block{margin:20px;padding:16px;overflow-x:auto;border:1px solid #dbe2dc;border-radius:9px;background:#19201d;color:#dce8df;font:11px/1.7 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.settings-callout{margin:0 20px 20px;padding:15px;border-radius:9px;background:var(--green-soft)}.settings-callout p{margin:5px 0 0;color:var(--muted);font-size:11px}.settings-layer-head>div{min-width:0;display:flex;flex-direction:column}.settings-layer-head small{margin-top:3px;overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.map-search-section{position:relative;overflow:visible}.map-search-form{display:grid;grid-template-columns:minmax(0,1fr) 38px;align-items:center;border:1px solid #d7ded8;border-radius:8px;background:#fff}.map-search-form:focus-within{border-color:#5f8d72;box-shadow:0 0 0 3px #245b4417}.map-search-form input{min-width:0;min-height:40px;padding:0 0 0 11px;border:0;outline:0;background:transparent}.map-search-form .icon-button{width:38px;height:38px;display:grid;place-items:center}.map-search-results{position:relative;z-index:9;max-height:250px;margin-top:7px;overflow-y:auto;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 12px 24px #1420191c}.map-search-result{width:100%;display:flex;flex-direction:column;gap:2px;padding:10px 11px;border:0;border-bottom:1px solid var(--line);background:#fff;color:var(--ink);text-align:left;cursor:pointer}.map-search-result:last-child{border-bottom:0}.map-search-result:hover{background:#f7faf7}.map-search-result strong{font-size:11px;line-height:1.35}.map-search-result span{color:var(--muted);font-size:9px;text-transform:capitalize}.map-search-empty{padding:12px;color:var(--muted);font-size:11px}.map-search-empty.is-error{color:var(--danger)}.map-location-actions .button{padding:0 8px;font-size:10px}.ring-toggle{margin-bottom:13px;color:var(--muted);font-size:10px;line-height:1.35}.map-status.is-error{color:var(--danger)}.swipe-divider{position:absolute;z-index:3;top:0;bottom:0;width:2px;transform:translate(-1px);background:#fffffff2;box-shadow:0 0 0 1px #1e2d2433,0 0 14px #141e1933;pointer-events:none}.swipe-divider:after{content:"↔";position:absolute;top:50%;left:50%;width:34px;height:34px;display:grid;place-items:center;transform:translate(-50%,-50%);border:1px solid rgba(30,45,36,.18);border-radius:50%;background:#fffffff0;color:var(--green);font-size:16px;font-weight:800}.ol-scale-bar-inner{border-color:var(--green)!important;color:var(--green)!important}@media(max-width:1350px){.document-row{grid-template-columns:44px minmax(0,1fr) auto}.document-row .row-actions{grid-column:2 / -1;justify-content:flex-end}}@media(max-width:1200px){.project-grid{grid-template-columns:100px minmax(180px,1fr) 100px 60px 105px}.project-grid>:nth-child(6){display:none}.projects-list-grid{grid-template-columns:100px minmax(180px,1fr) 90px 90px 55px 105px}.projects-list-grid>:nth-child(7){display:none}.documents-grid,.settings-storage-grid{grid-template-columns:1fr}}@media(max-width:900px){.map-workspace{grid-template-columns:290px minmax(0,1fr)}}@media(max-width:680px){.storage-overview{grid-template-columns:1fr}.document-row{grid-template-columns:42px minmax(0,1fr)}.document-row .storage-status{grid-column:2;width:fit-content}.document-row .row-actions{grid-column:2;justify-content:flex-start;flex-wrap:wrap}.settings-detail-list>div{grid-template-columns:1fr;gap:4px;padding:10px 0}.card-footer-between{align-items:flex-start;flex-direction:column}.settings-tabs{width:100%}.settings-tabs a{flex:1;justify-content:center}}@media(max-width:1200px)and (min-width:681px){.projects-list-grid>:nth-child(6){display:initial}}@media(max-width:680px){.project-grid>:nth-child(3),.project-grid>:nth-child(4),.project-grid>:nth-child(6){display:none}.project-grid>:nth-child(5){display:initial}.projects-list-grid>:nth-child(3),.projects-list-grid>:nth-child(4),.projects-list-grid>:nth-child(5),.projects-list-grid>:nth-child(7){display:none}.projects-list-grid>:nth-child(6){display:initial}}.map-shell-mode .sidebar{transform:translate(-100%);transition:transform .18s ease;box-shadow:18px 0 42px #0e18132e}.map-shell-mode .sidebar.is-open{transform:translate(0)}.map-shell-mode .main-shell{width:100%;margin-left:0}.map-shell-mode .mobile-menu{display:grid;place-items:center;flex:0 0 auto}.map-shell-mode .topbar{height:62px;padding:0 16px;gap:10px}.map-shell-mode .map-content-wrap{height:calc(100vh - 62px)}.map-header-back{width:36px;height:36px;flex:0 0 36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--green)}.map-header-back:hover{background:#f7faf8;border-color:#cbd5cd}.map-header-project{min-width:0;display:flex;flex-direction:column;line-height:1.25}.map-header-project strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.map-header-project span{max-width:min(760px,55vw);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:11px}.map-overview-button{min-height:34px;padding-inline:11px;font-size:11px}.map-workspace{grid-template-columns:318px minmax(0,1fr)}.map-panel-section{padding:15px 18px}.map-layers-section{min-height:190px}.map-stage{background:#d8dfd9}.map-badge{top:14px}.map-search-form{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:0;border:1px solid #d7ded8;border-radius:8px;overflow:hidden;background:#fff}.map-search-form input{min-width:0;height:40px;padding:0 10px;border:0;outline:0}.map-search-form .icon-button{border-radius:0}.map-location-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}.map-location-actions .button{min-height:32px}.project-summary-card{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:12px;padding:20px 22px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow)}.project-summary-main{min-width:0}.project-summary-main .heading-meta{margin-bottom:6px}.project-summary-main h1{margin:0;font-size:28px;line-height:1.1;letter-spacing:-.035em}.project-summary-main p{margin:6px 0 0;color:var(--muted)}.project-path{display:inline-block;margin-top:8px;color:#829087;font-size:10px}.compact-project-tabs{margin-bottom:12px}.compact-overview-grid{grid-template-columns:.9fr 1.35fr;gap:12px}.compact-project-card .card-header{min-height:62px;padding:14px 17px}.compact-project-card .card-header h2{font-size:17px}.compact-project-card .card-header p{font-size:12px}.compact-status-panel{min-height:105px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px}.compact-status-panel.is-success{background:linear-gradient(90deg,var(--green-soft),rgba(232,240,235,.35))}.compact-status-panel strong{display:block;font-size:15px}.compact-status-panel span{display:block;margin-top:4px;color:var(--muted);font-size:12px}.compact-map-summary{display:grid;grid-template-columns:.8fr .9fr 1.5fr;gap:9px;padding:16px 17px 10px}.compact-map-summary>div{min-width:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fafbfa}.compact-map-summary span{display:block;color:var(--muted);font-size:10px;font-weight:650}.compact-map-summary strong{display:block;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.compact-workflow{margin:0 17px 16px;padding:10px 12px;border-radius:8px;background:#f2f5f2;color:#5f6b63;font-size:11px}@media(max-width:900px){.map-header-project span{max-width:48vw}.map-overview-button{display:none}.compact-overview-grid{grid-template-columns:1fr}}@media(max-width:680px){.map-shell-mode .topbar{height:58px;padding:0 10px}.map-shell-mode .map-content-wrap{height:calc(100vh - 58px)}.map-header-project strong{font-size:12px}.map-header-project span{max-width:45vw}.map-workspace{grid-template-columns:1fr;grid-template-rows:230px minmax(0,1fr)}.project-summary-card{align-items:flex-start;flex-direction:column;padding:17px}.project-summary-card .button{width:100%}.compact-map-summary{grid-template-columns:1fr}}
/* v0.3.0 historic map workspace */
.map-workspace-v3 { grid-template-columns: 360px minmax(0, 1fr); }
.map-workspace-v3 .map-panel { display: flex; min-width: 0; flex-direction: column; overflow: hidden; }
.explorer-panel-head { min-height: 61px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 15px 11px 18px; border-bottom: 1px solid var(--line); background: #fbfcfb; }
.explorer-panel-head > div { min-width: 0; display: flex; flex-direction: column; }
.explorer-panel-head strong { margin-top: 2px; font-size: 15px; }
.panel-collapse-button { display: grid; place-items: center; flex: 0 0 34px; width: 34px; height: 34px; border: 1px solid var(--line); background: #fff; color: var(--green); }
.compact-search-section { flex: 0 0 auto; padding-block: 12px; }
.map-source-section { flex: 0 0 auto; padding-block: 12px; }
.base-map-selector { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 8px; }
.base-layer-control { display: contents; }
.base-layer-pill { position: relative; min-height: 32px; padding: 0 12px; border: 1px solid var(--line); border-radius: 8px; background: #fff; cursor: pointer; font-size: 11px; font-weight: 700; }
.base-layer-pill:has(input:checked) { border-color: #8fb49e; background: var(--green-soft); color: var(--green); }
.base-layer-pill input { position: absolute; opacity: 0; pointer-events: none; }

.historic-browser-section { min-height: 0; flex: 1 1 auto; display: flex; flex-direction: column; padding: 0 !important; overflow: hidden; }
.historic-browser-heading { min-height: 60px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 18px; border-bottom: 1px solid var(--line); }
.historic-browser-heading > div { display: flex; flex-direction: column; min-width: 0; }
.historic-browser-heading strong { margin-top: 2px; font-size: 13px; }
.source-badge { display: inline-flex; min-height: 25px; align-items: center; padding: 0 8px; border-radius: 999px; background: #eef2ee; color: #57635b; font-size: 9px; font-weight: 800; letter-spacing: .06em; }
.historic-layer-list { min-height: 0; flex: 1 1 auto; overflow-y: auto; padding: 8px 10px 18px; scrollbar-width: thin; scrollbar-color: #c9d2cb transparent; }
.historic-epoch-group + .historic-epoch-group { margin-top: 12px; }
.historic-epoch-title { display: flex; align-items: center; justify-content: space-between; padding: 5px 5px 6px; color: #657168; }
.historic-epoch-title span { font-size: 10px; font-weight: 800; letter-spacing: .075em; text-transform: uppercase; }
.historic-epoch-title small { min-width: 21px; height: 21px; display: grid; place-items: center; border-radius: 999px; background: #edf1ed; font-size: 9px; font-weight: 800; }

.historic-layer-card { position: relative; overflow: hidden; margin-bottom: 7px; border: 1px solid #dfe5e0; border-radius: 9px; background: #fff; transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.historic-layer-card:hover { border-color: #c6d2c9; background: #fbfcfb; }
.historic-layer-card.is-selected { border-color: #82a992; background: linear-gradient(135deg, #f0f7f2, #fbfdfb); box-shadow: 0 0 0 2px rgba(36,91,68,.055); }
.historic-layer-choice { position: relative; align-items: flex-start; gap: 10px; min-height: 86px; padding: 12px 11px; cursor: pointer; }
.historic-layer-choice > input { width: 15px; height: 15px; flex: 0 0 15px; margin: 3px 0 0; }
.historic-layer-main { min-width: 0; flex: 1; display: flex; flex-direction: column; }
.historic-layer-name { padding-right: 20px; color: var(--ink); font-size: 11px; font-weight: 750; line-height: 1.35; }
.historic-layer-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; margin-top: 6px; color: var(--muted); font-size: 9px; }
.historic-layer-meta b, .historic-layer-meta em { padding: 2px 5px; border-radius: 4px; background: #eef2ee; font-style: normal; font-weight: 700; }
.historic-layer-card.is-selected .historic-layer-meta b { background: #dceadf; color: var(--green); }
.historic-layer-coverage { margin-top: 6px; color: #859087; font-size: 9px; line-height: 1.35; }
.historic-layer-check { position: absolute; top: 11px; right: 11px; width: 20px; height: 20px; display: none; place-items: center; border-radius: 50%; background: var(--green); color: #fff; font-size: 10px; font-weight: 800; }
.historic-layer-card.is-selected .historic-layer-check { display: grid; }
.historic-empty { padding: 18px 14px; border: 1px dashed #cfd8d1; border-radius: 9px; text-align: center; color: var(--muted); }
.historic-empty strong, .historic-empty span { display: block; }
.historic-empty strong { color: var(--ink); font-size: 11px; }
.historic-empty span { margin-top: 4px; font-size: 10px; }
.supplemental-layer-control { padding: 9px 7px; border-top: 1px solid var(--line); }

.map-panel.is-panel-collapsed { width: 0; border-right: 0; overflow: hidden; }
.map-workspace-v3:has(.map-panel.is-panel-collapsed) { grid-template-columns: 0 minmax(0, 1fr); }

.map-compare-toolbar { position: absolute; z-index: 6; top: 14px; left: 50%; width: min(720px, calc(100% - 300px)); min-height: 64px; display: grid; grid-template-columns: minmax(190px, 1fr) auto minmax(170px, .75fr); align-items: center; gap: 14px; padding: 9px 12px; transform: translateX(-50%); border: 1px solid rgba(29,44,35,.16); border-radius: 11px; background: rgba(255,255,255,.94); backdrop-filter: blur(14px); box-shadow: 0 10px 26px rgba(20,32,25,.12); }
.compare-layer-summary { min-width: 0; display: flex; flex-direction: column; }
.compare-layer-summary > span, .global-opacity-control > span, .swipe-control label { color: #738078; font-size: 8px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.compare-layer-summary strong { margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.compare-layer-summary small { margin-top: 2px; overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.compare-mode-control { min-width: 145px; }
.compact-segmented { grid-template-columns: 1fr 1fr; min-width: 145px; }
.compact-segmented button { min-height: 31px; font-size: 10px; }
.map-compare-toolbar .swipe-control { margin-top: 6px; }
.map-compare-toolbar .swipe-control input { margin-top: 3px; }
.global-opacity-control { min-width: 0; display: grid; grid-template-columns: 1fr 35px; align-items: center; gap: 5px 8px; }
.global-opacity-control > span { grid-column: 1 / -1; }
.global-opacity-control input { min-width: 0; width: 100%; accent-color: var(--green); }
.global-opacity-control output { color: var(--muted); font-size: 9px; text-align: right; }

.map-site-toolbar { position: absolute; z-index: 6; top: 94px; right: 14px; display: flex; flex-direction: column; gap: 5px; padding: 6px; border: 1px solid rgba(29,44,35,.15); border-radius: 10px; background: rgba(255,255,255,.94); backdrop-filter: blur(12px); box-shadow: 0 8px 22px rgba(20,32,25,.1); }
.map-tool-button { width: 58px; min-height: 49px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 2px; padding: 5px; border: 0; border-radius: 7px; background: transparent; color: #4f5b53; cursor: pointer; font-size: 8px; font-weight: 750; }
.map-tool-button svg { width: 18px; height: 18px; }
.map-tool-button:hover { background: #f0f4f1; color: var(--green); }
.map-tool-button.is-primary { background: var(--green); color: #fff; }
.map-tool-button.is-primary:hover { background: var(--green-dark); color: #fff; }
.map-ring-toggle { position: relative; }
.map-ring-toggle input { position: absolute; opacity: 0; }
.map-ring-toggle:has(input:checked) { background: var(--green-soft); color: var(--green); }

.map-status-toast { position: absolute; z-index: 5; left: 14px; bottom: 14px; max-width: 420px; min-height: 34px; display: flex; align-items: center; padding: 8px 11px; border: 1px solid rgba(29,44,35,.14); border-radius: 8px; background: rgba(255,255,255,.93); color: #536057; backdrop-filter: blur(10px); box-shadow: 0 5px 18px rgba(20,30,25,.08); font-size: 10px; }
.map-status-toast.is-error { border-color: #e5c4c0; color: var(--danger); }
.map-tip { left: 14px; bottom: 57px; max-width: 410px; padding: 8px 10px; font-size: 10px; }
.map-badge { display: none; }
.map-workspace-v3 .ol-zoom { top: 14px !important; left: 14px !important; }
.map-workspace-v3 .ol-full-screen { top: 94px !important; right: 86px !important; }
.map-workspace-v3 .ol-scale-bar { left: 14px !important; bottom: 103px !important; }

@media (max-width: 1250px) {
    .map-workspace-v3 { grid-template-columns: 330px minmax(0, 1fr); }
    .map-compare-toolbar { width: min(650px, calc(100% - 210px)); grid-template-columns: minmax(160px, 1fr) auto minmax(145px, .7fr); }
}

@media (max-width: 900px) {
    .map-workspace-v3 { grid-template-columns: 300px minmax(0, 1fr); }
    .map-compare-toolbar { left: 12px; right: 82px; width: auto; grid-template-columns: minmax(0, 1fr) auto; transform: none; }
    .global-opacity-control { grid-column: 1 / -1; grid-template-columns: 1fr 35px; }
    .compare-layer-summary small { display: none; }
}

@media (max-width: 680px) {
    .map-workspace-v3 { grid-template-columns: 1fr; grid-template-rows: 260px minmax(0, 1fr); }
    .explorer-panel-head, .map-source-section { display: none; }
    .historic-browser-section { min-height: 130px; }
    .compact-search-section { padding: 9px 12px; }
    .historic-layer-list { display: flex; gap: 8px; overflow-x: auto; overflow-y: hidden; padding: 8px 10px; }
    .historic-epoch-group { display: contents; }
    .historic-epoch-title { display: none; }
    .historic-layer-card { min-width: 245px; margin-bottom: 0; }
    .map-compare-toolbar { top: 8px; left: 8px; right: 72px; min-height: 54px; padding: 6px 8px; }
    .compare-layer-summary { display: none; }
    .map-compare-toolbar { grid-template-columns: 1fr; }
    .global-opacity-control { grid-template-columns: 1fr 32px; }
    .map-site-toolbar { top: 70px; right: 8px; }
    .map-tool-button { width: 48px; min-height: 42px; }
    .map-tip { display: none; }
    .map-status-toast { left: 8px; right: 64px; bottom: 8px; max-width: none; }
    .map-workspace-v3 .ol-scale-bar { bottom: 53px !important; left: 8px !important; }
}
