:root{--paper:#f4efe6;--paper-2:#ece5d8;--ink:#1a1714;--ink-soft:#5a5048;--line:#cdc2ad;--vermilion:#d8431f;--vermilion-deep:#b3340f;--teal:#1f6f6a;--radius:4px}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-sans), system-ui, sans-serif;color:var(--ink);background-color:var(--paper);background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);-webkit-font-smoothing:antialiased;background-position:-1px -1px,-1px -1px;background-size:28px 28px,28px 28px;position:relative}body:before{content:"";pointer-events:none;background:radial-gradient(120% 90% at 50% 30%, transparent 50%, var(--paper) 100%);position:fixed;inset:0}.wrap{max-width:880px;margin:0 auto;padding:clamp(24px,6vw,72px) clamp(16px,5vw,40px) 80px;position:relative}.regmark{pointer-events:none;opacity:.55;width:22px;height:22px;position:absolute}.regmark:before,.regmark:after{content:"";background:var(--vermilion);position:absolute}.regmark:before{height:1.5px;top:50%;left:0;right:0;transform:translateY(-50%)}.regmark:after{width:1.5px;top:0;bottom:0;left:50%;transform:translate(-50%)}.regmark.tl{top:18px;left:14px}.regmark.tr{top:18px;right:14px}header.masthead{border-bottom:1.5px solid var(--ink);margin-bottom:32px;padding-bottom:16px}.kicker{font-family:var(--font-mono), monospace;letter-spacing:.22em;text-transform:uppercase;color:var(--vermilion-deep);font-size:11px}h1{font-family:var(--font-display), serif;letter-spacing:-.01em;margin-top:6px;font-size:clamp(30px,6vw,46px);font-weight:600;line-height:1.02}.sub{color:var(--ink-soft);max-width:46ch;margin-top:8px;font-size:14px}section{margin-top:28px}.label{font-family:var(--font-mono), monospace;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);align-items:center;gap:8px;margin-bottom:10px;font-size:11px;display:flex}.label:before{content:"";background:var(--vermilion);width:7px;height:7px;transform:rotate(45deg)}.dropzone{border:1.5px dashed var(--line);border-radius:var(--radius);background:repeating-linear-gradient(45deg, transparent, transparent 12px, #d8431f08 12px, #d8431f08 13px), var(--paper-2);text-align:center;cursor:pointer;padding:44px 24px;transition:border-color .18s,background-color .18s,transform .18s}.dropzone:hover{border-color:var(--ink-soft)}.dropzone.drag{border-color:var(--vermilion);background-color:#d8431f0f;border-style:solid;transform:scale(.995)}.dropzone .crosshair{border:1.5px solid var(--ink);border-radius:50%;width:40px;height:40px;margin:0 auto 14px;position:relative}.dropzone .crosshair:before,.dropzone .crosshair:after{content:"";background:var(--ink);position:absolute}.dropzone .crosshair:before{width:1.5px;top:-8px;bottom:-8px;left:50%;transform:translate(-50%)}.dropzone .crosshair:after{height:1.5px;top:50%;left:-8px;right:-8px;transform:translateY(-50%)}.dropzone .big{font-size:16px;font-weight:600}.dropzone .hint{font-family:var(--font-mono), monospace;color:var(--ink-soft);letter-spacing:.04em;margin-top:6px;font-size:11px}.error{color:var(--vermilion-deep);font-size:13px;font-family:var(--font-mono), monospace;margin-top:12px}.bar{background:var(--paper-2);border:1px solid var(--line);border-radius:99px;height:6px;margin-top:16px;overflow:hidden}.bar>span{background:var(--vermilion);height:100%;transition:width .2s;display:block}.list{border-top:1px solid var(--line);margin-top:8px}.row{border-bottom:1px solid var(--line);grid-template-columns:1fr auto auto auto;align-items:center;gap:14px;padding:12px 4px;display:grid}.row .name{word-break:break-all;font-size:14px;font-weight:500}.row .meta{font-family:var(--font-mono), monospace;color:var(--ink-soft);font-size:11px}.row .del{cursor:pointer;border:1px solid var(--line);color:var(--ink-soft);background:0 0;border-radius:99px;justify-content:center;align-items:center;width:26px;height:26px;font-size:16px;line-height:1;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.row .del:hover{color:#b3261e;background:#b3261e14;border-color:#b3261e66}.badge{font-family:var(--font-mono), monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);background:#1f6f6a1f;border:1px solid #1f6f6a4d;border-radius:99px;padding:3px 8px;font-size:10px}.empty{color:var(--ink-soft);padding:18px 4px;font-size:13px;font-style:italic}.foot{font-family:var(--font-mono), monospace;color:var(--ink-soft);letter-spacing:.04em;margin-top:48px;font-size:11px}.wrap.auth{max-width:440px}.card{border:1.5px solid var(--line);border-radius:var(--radius);background:var(--paper-2);flex-direction:column;gap:14px;padding:24px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field>span{font-family:var(--font-mono), monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);font-size:11px}.field input{font-family:var(--font-sans), sans-serif;border:1.5px solid var(--line);border-radius:var(--radius);background:var(--paper);color:var(--ink);padding:10px 12px;font-size:15px}.field input:focus{border-color:var(--vermilion);outline:none}.btn{font-family:var(--font-sans), sans-serif;border:1.5px solid var(--ink);border-radius:var(--radius);background:var(--ink);color:var(--paper);cursor:pointer;padding:11px 16px;font-size:15px;font-weight:600;transition:opacity .15s}.btn:hover{opacity:.9}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{color:var(--ink);background:0 0}.divider{color:var(--ink-soft);align-items:center;gap:12px;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}.divider span{font-family:var(--font-mono), monospace;text-transform:uppercase;font-size:11px}.muted{color:var(--ink-soft);text-align:center;font-size:13px}.muted a{color:var(--vermilion-deep)}.qr{border:1px solid var(--line);border-radius:var(--radius);align-self:center;width:180px;height:180px}.queue{border:1.5px dashed var(--line);border-radius:var(--radius);margin-top:14px;padding:10px 12px}.queue .tiny{font-family:var(--font-mono), monospace;color:var(--ink-soft);margin-bottom:6px;font-size:11px}.pane-max{font-family:var(--font-mono), monospace;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);border:1.5px solid var(--line);background:var(--paper);border-radius:var(--radius);cursor:pointer;padding:3px 8px;font-size:10px;line-height:1}.pane-max:hover{border-color:var(--ink-soft);color:var(--ink)}.pane-max[aria-pressed=true]{border-color:var(--vermilion);color:var(--vermilion-deep)}.share-viewer{border:1.5px solid var(--ink);border-radius:var(--radius);background:var(--paper-2);overflow:hidden}.share-toolbar{border-bottom:1.5px solid var(--line);background:var(--paper);flex-wrap:wrap;align-items:center;gap:14px;padding:10px 12px;display:flex}.share-file{font-family:var(--font-mono), monospace;color:var(--ink-soft);flex:1;min-width:160px;font-size:12px}.share-opacity{color:var(--ink-soft);align-items:center;gap:8px;font-size:12px;display:inline-flex}.share-opacity>span:first-child{font-family:var(--font-mono), monospace;text-transform:uppercase;letter-spacing:.04em}.share-opacity input[type=range]{width:140px;accent-color:var(--vermilion)}.share-opacity .val{font-family:var(--font-mono), monospace}.share-map{height:64vh;min-height:420px}.share-viewer.maximized{z-index:1200;border-radius:0;flex-direction:column;display:flex;position:fixed;inset:0}.share-viewer.maximized .share-map{flex:1;height:auto;min-height:0}.share-status{color:var(--ink-soft);padding:10px 12px;font-size:13px}.share-ctl{position:relative}.share-pop{z-index:50;background:var(--paper);border:1.5px solid var(--ink);border-radius:var(--radius);width:min(360px,86vw);padding:12px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 6px 24px #0000002e}.share-pop-row{gap:8px;display:flex}.share-pop-row input{min-width:0;font-family:var(--font-mono), monospace;border:1.5px solid var(--line);border-radius:var(--radius);background:var(--paper-2);flex:1;padding:8px 10px;font-size:12px}.share-pop-foot{justify-content:space-between;align-items:center;margin-top:10px;display:flex}.loc-picker{gap:10px;display:grid}.loc-row{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.loc-row .field{flex:1;min-width:180px}.loc-row select{font-family:var(--font-sans), sans-serif;border:1.5px solid var(--line);border-radius:var(--radius);background:var(--paper);padding:9px 10px;font-size:14px}.loc-add{white-space:nowrap}.loc-new{gap:6px;width:100%;margin-top:4px;display:flex}.loc-new input{border:1.5px solid var(--line);border-radius:var(--radius);font:inherit;flex:1;padding:8px 10px}.fmb-panel{border-top:1.5px solid var(--line);margin-top:32px;padding-top:18px}.fmb-block{border:1.5px solid var(--line);border-radius:var(--radius);background:var(--paper-2);margin-top:12px;padding:12px 14px}.fmb-block+.fmb-block{margin-top:14px}.fmb-sub{color:var(--ink-soft);margin-bottom:10px;font-size:13px}.fmb-loc-foot{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:12px;display:flex}.fmb-survey{min-width:180px}.fmb-vis{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.fmb-vis-opt{cursor:pointer;border:1.5px solid var(--line);color:var(--ink-soft);border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font-size:13px;display:inline-flex}.fmb-vis-opt.on{border-color:var(--vermilion);color:var(--vermilion-deep);background:#d8431f0f}.fmb-vis-opt input{accent-color:var(--vermilion)}.modreq{border-top:1.5px solid var(--line);margin-top:30px;padding-top:18px}.modreq-form{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:8px;display:flex}.modreq-form .field{min-width:170px}.modreq-text{min-width:240px;font:inherit;resize:vertical;border:1.5px solid var(--line);border-radius:var(--radius);background:var(--paper);flex:1;padding:9px 11px}.modreq-list{gap:10px;margin:16px 0 0;padding:0;list-style:none;display:grid}.modreq-list li{border:1.5px solid var(--line);border-radius:var(--radius);background:var(--paper-2);padding:10px 12px}.modreq-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.modreq-kind{font-family:var(--font-mono), monospace;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-size:11px}.modreq-by{color:var(--ink-soft);font-size:12px}.modreq-msg{margin-top:6px;font-size:14px}.modreq-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.tiny{font-family:var(--font-mono), monospace;color:var(--ink-soft);font-size:11px}.sketch-topbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.rev{border-top:1.5px solid var(--line);margin-top:30px;padding-top:18px}.rev-list{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.rev-list li{flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;display:flex}.rev-summary{flex:1;min-width:200px}.rev-meta{font-family:var(--font-mono), monospace;color:var(--ink-soft);font-size:11px}.overlap-warn{border:1.5px solid var(--vermilion);border-radius:var(--radius);background:#d8431f0d;margin-top:18px;padding:12px 14px}.overlap-head{color:var(--vermilion-deep);margin-bottom:6px;font-weight:600}.overlap-block{margin-top:6px}.overlap-sub{color:var(--ink-soft);margin-bottom:2px;font-size:13px}.overlap-warn ul{margin:0 0 0 18px;font-size:13px}.overlap-warn a{color:var(--vermilion-deep)}.vsearch{position:relative}.vsearch-input{border:1.5px solid var(--line);border-radius:var(--radius);background:var(--paper);width:100%;padding:10px 12px;font-size:15px}.vsearch-list{z-index:20;background:var(--paper);border:1.5px solid var(--line);border-radius:var(--radius);max-height:260px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto;box-shadow:0 6px 20px #0000001f}.vsearch-list li{cursor:pointer;border-radius:3px;flex-direction:column;gap:1px;padding:8px 10px;display:flex}.vsearch-list li:hover{background:var(--paper-2)}.vsearch-name{font-size:14px;font-weight:600}.vsearch-path{color:var(--ink-soft);font-size:12px}.gcp-dgps{font-family:var(--font-mono), monospace;letter-spacing:.06em;color:var(--teal);border:1px solid var(--teal);border-radius:3px;margin-left:8px;padding:1px 4px;font-size:10px;font-weight:700}.coverage{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-2);margin:14px 0;padding:14px 16px}.coverage-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.coverage-cols{grid-template-columns:1fr 1fr;gap:18px;margin-top:10px;display:grid}@media (max-width:640px){.coverage-cols{grid-template-columns:1fr}}.coverage-sub{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin:0 0 6px;font-size:12px}.coverage-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.coverage-list li{align-items:center;gap:8px;font-size:14px;display:flex}.coverage-list a{color:var(--vermilion-deep);font-weight:600;text-decoration:none}.coverage-list a:hover{text-decoration:underline}.coverage-tag{font-family:var(--font-mono), monospace;border:1px solid var(--line);color:var(--ink-soft);border-radius:3px;padding:0 5px;font-size:10px}.coverage-area{font-family:var(--font-mono), monospace;color:var(--ink-soft);font-size:11px}.coverage-missing{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.coverage-missing li{font-family:var(--font-mono), monospace;background:color-mix(in srgb, var(--vermilion) 12%, transparent);border:1px solid color-mix(in srgb, var(--vermilion) 35%, transparent);color:var(--vermilion-deep);border-radius:3px;padding:2px 7px;font-size:12px}.coverage-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px;display:flex}.fmb-tools{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-2);margin:14px 0;padding:14px 16px}.fmb-tools-row{flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px;display:flex}.nbr-list{flex-direction:column;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.nbr-list li{align-items:center;gap:8px;display:flex}.nbr-list select{flex:none}.nbr-list input{flex:auto;min-width:0}
