:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eef3ec;--surface:#fcfcf8e6;--surface-strong:#ffffffeb;--border:#1e302a24;--ink:#12211c;--muted:#4a5f57;--accent:#0f6b61;--accent-soft:#0f6b611f;--danger:#a33929;--shadow:0 24px 60px #12211c1f;--radius:22px;--font-sans:"Avenir Next","Segoe UI",sans-serif}*{box-sizing:border-box}html,body{min-height:100%;color:var(--ink);font-family:var(--font-sans);background:radial-gradient(circle at 0 0,#0f6b611f,#0000 28rem),linear-gradient(#f8faf5 0%,#eef3ea 100%);margin:0}body{min-height:100vh}a{color:inherit}button,input,select{font:inherit}.shell{height:100vh;min-height:100vh;position:relative;overflow:hidden}.panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);flex-direction:column;gap:.9rem;min-height:0;padding:1rem;display:flex}.sidebar-panel{z-index:10;width:min(var(--panel-width,25rem),calc(100vw - 2rem));min-width:21rem;max-width:min(44rem,100vw - 2rem);height:calc(100vh - 2rem);position:absolute;top:1rem;left:1rem;overflow:hidden}.sidebar-panel[data-panel=upload]{width:min(var(--panel-width,24rem),calc(100vw - 2rem))}.sidebar-panel[data-panel=layers]{width:min(var(--panel-width,30rem),calc(100vw - 2rem))}.panel-header{justify-content:space-between;align-items:start;gap:.9rem;min-width:0;display:flex}.panel-header>.toggle{flex-shrink:0}.panel-scroll{flex-direction:column;flex:1;gap:.8rem;min-height:0;padding-right:.2rem;display:flex;overflow:hidden}.sidebar-panel[data-panel=upload] .panel-scroll{overflow:auto}.panel-resizer{cursor:ew-resize;width:.85rem;height:100%;position:absolute;top:0;right:0}.panel-resizer:before{content:"";background:#12211c1f;border-radius:999px;width:.25rem;height:4.5rem;position:absolute;top:50%;right:.2rem;transform:translateY(-50%)}.hero{flex-direction:column;flex:1;gap:.35rem;min-width:0;display:flex}.hero h1{letter-spacing:-.03em;white-space:normal;overflow-wrap:anywhere;word-break:break-word;margin:0;font-size:clamp(1.22rem,1.7vw,1.48rem)}.hero p,.muted,.field-hint,.badge-row{color:var(--muted)}.hero .badge-row{margin-top:.15rem}.dropzone{background:linear-gradient(#0f6b610f,#ffffffa8);border:1px dashed #0f6b615c;border-radius:1rem;gap:.55rem;padding:.95rem;display:grid}.dropzone[data-dragging=true]{border-color:var(--accent);background:linear-gradient(#0f6b6129,#ffffffb8)}.upload-actions{flex-wrap:wrap;gap:.55rem;display:flex}.button{appearance:none;background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:999px;padding:.7rem .95rem;font-weight:600}.button.secondary{color:var(--ink);background:#12211c14}.button:disabled{cursor:wait;opacity:.65}.stack{flex-direction:column;flex:1;gap:.75rem;min-height:0;display:flex}.layer-stack{padding-right:.1rem;overflow:auto}.layer-section{flex-direction:column;flex:none;gap:.75rem;min-height:0;display:flex}.status-card,.search-card,.layer-card{border:1px solid var(--border);background:var(--surface-strong);border-radius:1rem;flex-direction:column;gap:.65rem;padding:.85rem .95rem;display:flex}.status-card strong{white-space:normal;overflow-wrap:anywhere;word-break:break-word;font-size:.98rem}.upload-progress{appearance:none;width:100%;height:.55rem}.upload-progress::-webkit-progress-bar{background:#12211c14;border-radius:999px}.upload-progress::-webkit-progress-value{background:linear-gradient(90deg,var(--accent),#1d9f8d);border-radius:999px}.upload-progress::-moz-progress-bar{background:linear-gradient(90deg,var(--accent),#1d9f8d);border-radius:999px}.processing-overlay{z-index:40;background:#f8faf5d1;place-items:center;padding:1.5rem;display:grid;position:absolute;inset:0}.processing-overlay-card{border:1px solid var(--border);background:#fffffff5;border-radius:1.1rem;flex-direction:column;gap:.8rem;width:min(28rem,100vw - 3rem);padding:1rem 1.1rem;display:flex;box-shadow:0 18px 40px #12211c1f}.processing-overlay-head{align-items:center;gap:.7rem;display:flex}.spinner{border:2px solid #0f6b6129;border-top-color:var(--accent);border-radius:999px;flex-shrink:0;width:1.15rem;height:1.15rem;animation:.9s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.search-row{align-items:center;gap:.6rem;display:flex}.search-meta-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;display:flex}.search-input{appearance:none;border:1px solid var(--border);width:100%;min-width:0;color:var(--ink);background:#fff;border-radius:.9rem;padding:.72rem .85rem}.search-input::placeholder{color:var(--muted)}.badge-row{flex-wrap:wrap;gap:.45rem;font-size:.8rem;display:flex}.badge{background:#12211c0f;border-radius:999px;align-items:center;gap:.35rem;padding:.28rem .52rem;display:inline-flex}.swatch{border:1px solid #12211c1f;border-radius:999px;width:.9rem;height:.9rem}.layer-code{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.76rem}.toggle{appearance:none;border:1px solid var(--border);color:var(--ink);cursor:pointer;background:#fff;border-radius:999px;padding:.42rem .74rem}.toggle[data-active=true]{background:var(--accent-soft);border-color:#0f6b6152}.toggle:disabled{cursor:not-allowed;opacity:.52}.layer-table{background:#ffffffd1;border:1px solid #12211c14;border-radius:1rem;flex-direction:column;flex:1 0 auto;display:flex;overflow:hidden}.layer-table-header,.layer-row{grid-template-columns:minmax(0,1fr) 4rem 4rem 4rem;align-items:center;gap:.35rem;display:grid}.layer-table-header{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;background:#0f6b610f;border-bottom:1px solid #12211c14;padding:.68rem .85rem;font-size:.75rem;font-weight:700}.layer-card.compact{background:0 0;border:0;border-radius:0;gap:0;padding:0}.layer-card.compact+.layer-card.compact{border-top:1px solid #12211c14}.panel-heading.compact{justify-content:space-between;align-items:center;gap:.75rem;padding:0 .1rem;display:flex}.section-toggle{appearance:none;width:100%;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:.85rem;padding:0;display:flex}.section-toggle-icon{width:2rem;height:2rem;color:var(--ink);background:#12211c0f;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;line-height:1;display:inline-flex}.layer-row{min-height:3.1rem;padding:.5rem .85rem}.layer-name-cell{grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:.55rem;min-width:0;display:grid}.layer-name-meta{flex-direction:column;gap:.18rem;min-width:0;display:flex}.layer-name-actions{align-items:center;gap:.35rem;display:inline-flex}.layer-title-row{align-items:center;gap:.45rem;min-width:0;display:flex}.layer-name-cell strong{text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;overflow:hidden}.layer-object-meta{flex-wrap:wrap;align-items:center;gap:.45rem;min-width:0;display:flex}.layer-object-badge{color:var(--ink);white-space:nowrap;background:#12211c12;border-radius:999px;align-items:center;padding:.14rem .45rem;font-size:.72rem;font-weight:500;line-height:1.2;display:inline-flex}.layer-object-breakdown{min-width:0;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;line-height:1.2;overflow:hidden}.work-area-note{font-size:.84rem;line-height:1.45}.layer-expander,.layer-mini-button{justify-content:center;align-items:center;width:2rem;height:2rem;padding:0;display:inline-flex}.layer-expander{appearance:none;color:var(--ink);cursor:pointer;background:#12211c0d;border:0;border-radius:.65rem;font-size:1rem;line-height:1}.layer-check{justify-content:center;align-items:center;display:inline-flex}.layer-check input{width:1rem;height:1rem}.layer-inline-state{color:var(--muted);font-size:.78rem;font-weight:600}.compact-empty{justify-content:center;min-height:10rem}.entity-list{flex-direction:column;gap:.8rem;margin-top:.4rem;display:flex}.entity-list.compact{background:#12211c05;gap:.75rem;margin-top:0;padding:0 .85rem .85rem}.layer-opacity-control{flex-direction:column;gap:.45rem;padding:.2rem 0;display:flex}.layer-opacity-label{justify-content:space-between;align-items:center;gap:.75rem;font-size:.84rem;font-weight:600;display:flex}.layer-opacity-range{width:100%}.work-area-summary-table{background:#ffffffc2;border:1px solid #12211c14;border-radius:.9rem;flex-direction:column;display:flex;overflow:hidden}.work-area-summary-header,.work-area-summary-row{grid-template-columns:minmax(0,1fr) 4rem 6.5rem;align-items:center;gap:.6rem;padding:.65rem .8rem;display:grid}.work-area-summary-header{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;background:#0f6b610f;font-size:.75rem;font-weight:700}.work-area-summary-row+.work-area-summary-row{border-top:1px solid #12211c14}.work-area-summary-total{background:#12211c09;font-weight:700}.work-area-summary-name{align-items:center;gap:.45rem;min-width:0;display:flex}.work-area-summary-name strong{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.entity-group{flex-direction:column;gap:.45rem;display:flex}.entity-group-header{border-bottom:1px solid #12211c14;justify-content:space-between;align-items:center;gap:.75rem;padding-bottom:.22rem;display:flex}.entity-item{background:#ffffffe0;border-radius:.75rem;grid-template-columns:1fr auto;align-items:center;gap:.65rem;padding:.5rem .6rem;display:grid}.entity-actions{align-items:center;gap:.45rem;display:flex}.entity-toggle{grid-template-columns:auto 1fr;align-items:center;gap:.65rem;display:grid}.entity-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.icon-button{appearance:none;border:1px solid var(--border);color:var(--ink);cursor:pointer;vertical-align:middle;background:#fff;border-radius:.7rem;justify-content:center;align-items:center;padding:.35rem .5rem;font-size:.8rem;font-weight:700;line-height:1;text-decoration:none;display:inline-flex}.layer-download-button{border-radius:.95rem;flex:none;align-self:center;width:2.55rem;min-width:2.55rem;height:2.55rem;padding:0;font-size:1rem}.icon-button:disabled,.layer-expander:disabled{cursor:not-allowed;opacity:.45}.modal-backdrop{z-index:30;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#12211c61;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0}.modal-card{border:1px solid var(--border);background:var(--surface-strong);width:min(960px,100%);max-height:min(80vh,900px);box-shadow:var(--shadow);border-radius:1.1rem;flex-direction:column;gap:1rem;padding:1.1rem;display:flex}.modal-head{justify-content:space-between;align-items:start;gap:1rem;display:flex}.modal-head h2{margin:.2rem 0 0;font-size:1.15rem}.coord-table-wrap{border:1px solid #12211c14;border-radius:.9rem;overflow:auto}.coord-table{border-collapse:collapse;background:#fff;width:100%}.coord-table th,.coord-table td{text-align:left;white-space:nowrap;border-bottom:1px solid #12211c14;padding:.7rem .8rem}.coord-table thead{background:#f5f7f2;position:sticky;top:0}.map-panel{height:100vh;min-height:100vh;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;padding:0;overflow:hidden}.map-frame{height:100%;min-height:100%;position:relative}.map-top-toolbar{z-index:6;flex-wrap:wrap;gap:.5rem;max-width:min(26rem,100% - 2rem);display:flex;position:absolute;top:1rem;left:1rem}.map-canvas{width:100%;height:100%;min-height:100%}.map-nav-controls{z-index:5;flex-wrap:wrap;justify-content:flex-end;gap:.45rem;max-width:min(38rem,100% - 22rem);display:flex;position:absolute;bottom:1rem;right:1rem}.map-control-button{appearance:none;border:1px solid var(--border);min-width:3.75rem;color:var(--ink);cursor:pointer;box-shadow:var(--shadow);background:#fbfaf3f2;border-radius:999px;padding:.62rem .85rem}.map-control-button:disabled{cursor:not-allowed;opacity:.52}.map-toolbar{z-index:5;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;max-width:min(32rem,100% - 28rem);display:flex;position:absolute;top:1rem;right:1rem}.error{color:var(--danger)}.sr-only{clip:rect(0,0,0,0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:1100px){.shell{height:auto;overflow:visible}.sidebar-panel{width:auto;max-width:none;height:auto;margin:1rem 1rem 0;position:relative;top:auto;left:auto}.panel-scroll,.layer-stack{overflow:visible}.panel-resizer{display:none}.map-panel{height:auto}.map-panel,.map-canvas,.map-frame{min-height:68vh}.map-toolbar{max-width:none;inset:auto 1rem 1rem}.map-nav-controls{max-width:none;bottom:4.75rem;left:1rem;right:1rem}.map-top-toolbar{max-width:none;top:1rem;left:1rem;right:1rem}}
