@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/montserrat-latin-300-normal-BgP24wlQ.woff2)format("woff2"),url(/assets/montserrat-latin-300-normal-sTRdVzlf.woff)format("woff")}@font-face{font-family:Montserrat;font-style:italic;font-display:swap;font-weight:300;src:url(/assets/montserrat-latin-300-italic-DSsDFQ71.woff2)format("woff2"),url(/assets/montserrat-latin-300-italic-BB6rDLGV.woff)format("woff")}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-latin-400-normal-BLhwKU8k.woff2)format("woff2"),url(/assets/montserrat-latin-400-normal-xItZbAXg.woff)format("woff")}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-latin-500-normal-DRFEGfly.woff2)format("woff2"),url(/assets/montserrat-latin-500-normal-Dok2oTci.woff)format("woff")}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-latin-600-normal-UVxSCcoG.woff2)format("woff2"),url(/assets/montserrat-latin-600-normal-CdhFl4lI.woff)format("woff")}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-latin-700-normal-BdjcYUrC.woff2)format("woff2"),url(/assets/montserrat-latin-700-normal-BWkrl476.woff)format("woff")}:root{--bg:#0a0a0a;--panel:#111;--card:#141414;--card-key:#1c1c1c;--pill:#2a2a2a;--img-hole:#131313;--red:red;--red-soft:#ff4d4d;--red-fill:#200000;--on:#22c55e;--border:#2e2e2e;--border-subtle:#3a3a3a;--border-white:#fff;--text:#fff;--text-2:#c9c9c9;--text-3:#9a9a9a;--text-faint:#6e6e6e;--radius:12px;--radius-sm:8px;--gap:16px;--font:"Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit}.page{flex-direction:column;min-height:100vh;display:flex}.app{flex-direction:column;flex:1;min-height:100vh;display:flex}.gate{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.gate-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);text-align:center;flex-direction:column;align-items:center;gap:13px;width:100%;max-width:380px;padding:36px 28px;display:flex}.gate-logo{height:30px;margin-bottom:4px}.gate-title{letter-spacing:.5px;margin:0;font-size:26px;font-weight:700}.gate-lead{color:var(--text-2);margin:0 0 4px;font-size:13px;line-height:1.5}.gate-input{text-align:center;letter-spacing:2px}.gate-btn{width:100%}.gate-err{color:var(--red-soft);margin:0;font-size:12.5px}.gate-lang{margin-top:4px}.topbar{z-index:20;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#111111eb;align-items:center;gap:14px;padding:12px 20px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:14px;text-decoration:none;display:flex}.brand img{height:26px}.brand-name{letter-spacing:.5px;font-size:14px;font-weight:600}.accent{color:var(--red)}.spacer{flex:1}.nav-back{color:var(--text-3);margin-right:8px;font-size:13px;font-weight:500;text-decoration:none;transition:color .16s}.nav-back:hover{color:var(--text)}.lang{border:1px solid var(--border-subtle);border-radius:999px;display:inline-flex;overflow:hidden}.lang-btn{cursor:pointer;color:var(--text-3);background:0 0;border:none;padding:3px 11px;font-family:inherit;font-size:12px;font-weight:600}.lang-btn.on{background:var(--red-fill);color:var(--text)}.btn{background:var(--red-fill);border:1px solid var(--red);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;padding:8px 18px;font-family:inherit;font-size:12.5px;font-weight:600;text-decoration:none;transition:background .16s,opacity .16s}.btn:hover{background:color-mix(in srgb, var(--red) 24%, #000)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-ghost{background:var(--card);border-color:var(--border-white)}.btn-ghost:hover{background:var(--card-key);border-color:var(--red)}.wrap{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:0 20px 56px}.pagehead{text-align:center;padding:48px 0 20px}.pagehead h1{letter-spacing:.5px;margin:0;font-size:44px;font-weight:700;line-height:1.02}.pagehead p{color:var(--text-2);margin:16px 0 0;font-size:15px;line-height:1.6}.dropzone{border:1.5px dashed var(--border-subtle);border-radius:var(--radius);background:var(--panel);text-align:center;cursor:pointer;flex-direction:column;align-items:center;gap:10px;padding:44px 24px;transition:border-color .16s,background .16s;display:flex}.dropzone:hover,.dropzone:focus-visible{border-color:var(--red);outline:none}.dropzone.drag{border-color:var(--red);background:var(--red-fill)}.dz-ico{background:var(--red-fill);border:1px solid var(--red);border-radius:12px;justify-content:center;align-items:center;width:54px;height:54px;display:flex}.dz-ico svg{width:26px;height:26px;stroke:var(--red-soft)}.dz-title{font-size:16px;font-weight:600}.dz-hint{color:var(--text-3);font-size:12.5px}.dz-btn{margin-top:8px}.results{margin-top:28px}.cols,.col{flex-direction:column;gap:20px;display:flex}.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.panel--warn{border-color:var(--border-white);background:#626262c7}.panel-head{letter-spacing:.8px;text-transform:uppercase;color:var(--text-2);align-items:baseline;gap:8px;margin-bottom:14px;font-size:12px;font-weight:700;display:flex}.count{color:var(--text-faint);letter-spacing:0;font-weight:600}.seg{border:1px solid var(--border-subtle);border-radius:999px;margin-bottom:14px;display:inline-flex;overflow:hidden}.seg-btn{cursor:pointer;color:var(--text-3);background:0 0;border:none;padding:6px 14px;font-family:inherit;font-size:12px;font-weight:600;transition:background .16s,color .16s}.seg-btn.on{background:var(--red-fill);color:var(--text)}.seg--nav{margin-bottom:0;margin-left:8px}.field{margin-bottom:6px;display:block}.field-label{color:var(--text-3);margin-bottom:6px;font-size:12px;display:block}.input{background:var(--bg);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:100%;color:var(--text);padding:9px 12px;font-family:inherit;font-size:14px;transition:border-color .16s}.input:focus{border-color:var(--red);outline:none}.field-note{color:var(--text-faint);margin:0 0 14px;font-size:11.5px;line-height:1.5}.check{color:var(--text);cursor:pointer;align-items:center;gap:9px;margin-top:4px;font-size:13px;display:flex}.check input{accent-color:var(--red);width:15px;height:15px}.filelist{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.fileitem{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);align-items:flex-start;gap:11px;padding:11px 12px;display:flex}.fileitem.bad{border-color:var(--red)}.fi-tag{letter-spacing:.4px;text-transform:uppercase;border:1px solid var(--border-subtle);color:var(--text-3);border-radius:999px;flex:none;padding:3px 8px;font-size:10px;font-weight:700}.fi-tag.old{color:var(--red-soft);border-color:var(--red)}.fi-tag.new{color:var(--on);border-color:var(--on)}.fi-tag.obj{color:var(--text-2)}.fi-tag.rejected{color:var(--red-soft);border-color:var(--red);background:var(--red-fill)}.fi-body{flex:1;min-width:0}.fi-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.fi-sum{color:var(--text-3);margin-top:2px;font-size:11.5px}.tree{color:var(--text-2);white-space:pre;margin:0;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.7;overflow-x:auto}.tree .t-folder{color:var(--text);font-weight:600}.tree .t-geo{color:var(--red-soft)}.tree .t-size{color:var(--text-faint)}.tree .t-editable{cursor:text;border-bottom:1px dashed var(--text-faint)}.tree .t-editable:hover{color:var(--text);border-bottom-color:var(--red-soft)}.tree .t-name-input{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--red);border-radius:4px;min-width:6ch;padding:0 4px}.tree .t-name-input:focus{outline:none}.tree .t-clash{color:var(--red-soft)}.tree .t-clash-badge{color:var(--red-soft);font-weight:600}.warnlist{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.warnlist li{color:var(--text);align-items:flex-start;gap:10px;font-size:12px;line-height:1.5;display:flex}.warn-ico{width:16px;height:16px;color:var(--text);flex:none;margin-top:1px}.warn-ico svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px;display:block}.warn-body{overflow-wrap:anywhere;min-width:0}.warn-title{color:var(--text);font-weight:700}.warn-desc{color:var(--text-2);margin-top:2px}.warn-link{font:inherit;color:var(--red-soft);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;font-weight:600;text-decoration:underline}.warn-link:hover{color:var(--text)}.actions{align-items:center;gap:12px;margin-top:22px;display:flex}.upload-status{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--card);margin:12px 0 0;padding:11px 14px;font-size:12.5px;line-height:1.5}.upload-status.ok{border-color:var(--on);color:var(--text)}.upload-status.err{border-color:var(--red);background:var(--red-fill)}.upload-status .status-action{margin-left:10px}.nav-link{cursor:pointer;color:var(--text-3);background:0 0;border:none;margin-right:8px;font-family:inherit;font-size:13px;font-weight:500;text-decoration:none;transition:color .16s}.nav-link:hover{color:var(--text)}.workspace{grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:start;gap:20px;padding:24px 0 8px;display:grid}.ws-projects{position:sticky;top:76px}.ws-main{flex-direction:column;gap:20px;min-width:0;display:flex}.newproj-btn{width:100%;margin-bottom:12px}.project-head{padding:14px 16px}.ph-row{align-items:center;gap:12px;display:flex}.ph-label{letter-spacing:.8px;text-transform:uppercase;color:var(--text-3);flex:none;font-size:11px;font-weight:700}.ph-name{word-break:break-all;font-size:16px;font-weight:600}.ph-name.t-editable{cursor:text;border-bottom:1px dashed var(--text-faint)}.ph-name.t-editable:hover{color:var(--text);border-bottom-color:var(--red-soft)}.ph-name-input{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--red);border-radius:4px;min-width:10ch;padding:1px 6px;font-size:16px;font-weight:600}.ph-name-input:focus{outline:none}.manage{grid-template-columns:300px 1fr;align-items:start;gap:20px;margin-top:4px;display:grid}.manage-col{min-width:0}.manage .panel-head .warn-link{font-weight:600}.projlist{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.proj-btn{text-align:left;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;min-width:0;color:var(--text);font:inherit;cursor:pointer;overflow-wrap:anywhere;align-items:center;gap:8px;padding:9px 11px;font-size:13px;font-weight:500;transition:border-color .16s,background .16s;display:flex}.proj-btn:hover{border-color:var(--border-white)}.proj-btn.on{border-color:var(--red);background:var(--red-fill)}.proj-btn .proj-n{color:var(--text-faint);margin-left:auto;font-size:11.5px;font-weight:600}.mgfiles{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.mgfile{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);align-items:center;gap:10px;padding:9px 11px;font-size:13px;display:flex}.mgfile .mg-dir{color:var(--text-faint)}.mg-name{word-break:break-all;cursor:text;border-bottom:1px dashed var(--text-faint);font-weight:600}.mg-name:hover{color:var(--text);border-bottom-color:var(--red-soft)}.mg-name-input{font:inherit;color:var(--text);background:var(--card);border:1px solid var(--red);border-radius:4px;min-width:10ch;padding:1px 5px}.mg-name-input:focus{outline:none}.mg-size{color:var(--text-faint);font-size:11.5px}.mg-act{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-3);cursor:pointer;background:0 0;flex:none;justify-content:center;align-items:center;width:30px;height:30px;transition:border-color .16s,color .16s,background .16s;display:inline-flex}.mg-act:hover{border-color:var(--border-white);color:var(--text)}.mg-act:disabled{opacity:.4;cursor:not-allowed}.mg-act svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.mg-del:hover{border-color:var(--red);color:var(--red-soft);background:var(--red-fill)}.footer{border-top:1px solid var(--border);color:var(--text-faint);align-items:center;gap:8px;margin-top:auto;padding:6px 20px;font-size:11px;display:flex}.footer img{opacity:.7;height:14px}@media (width<=820px){.cols,.manage{grid-template-columns:1fr}.workspace{grid-template-columns:1fr;padding-top:16px}.ws-projects{position:static}.pagehead h1{font-size:34px}}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{color:#fff;white-space:normal;background-color:#333;border-radius:4px;outline:0;font-size:14px;line-height:1.4;transition-property:transform,visibility,opacity;position:relative}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{border-width:8px 8px 0;border-top-color:initial;transform-origin:top;bottom:-7px;left:0}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{border-width:0 8px 8px;border-bottom-color:initial;transform-origin:bottom;top:-7px;left:0}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;transform-origin:0;right:-7px}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:100%;left:-7px}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{color:#333;width:16px;height:16px}.tippy-arrow:before{content:"";border-style:solid;border-color:#0000;position:absolute}.tippy-content{z-index:1;padding:5px 9px;position:relative}
