:root{color-scheme:dark;--bg:#050a09;--panel:#0a1211;--panel2:#0d1715;--line:rgba(211,255,221,.11);--line2:rgba(211,255,221,.2);--text:#eef5f1;--muted:#81928b;--acid:#d7ff64;--mint:#5de4d1;--orange:#ff875b;--magenta:#df77ff;font-family:Inter,"Microsoft YaHei UI","PingFang SC",system-ui,sans-serif;font-size:16px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text)}body{min-width:320px}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--acid);outline-offset:2px}.is-hidden{display:none!important}.app-shell{min-height:100vh;background-image:radial-gradient(circle at 50% -20%,rgba(93,228,209,.08),transparent 38%),linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:auto,38px 38px,38px 38px}.topbar{height:64px;display:grid;grid-template-columns:220px minmax(220px,1fr) auto minmax(330px,1fr) auto;align-items:center;gap:18px;padding:0 20px;border-bottom:1px solid var(--line);background:rgba(5,10,9,.9);backdrop-filter:blur(18px);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:11px;color:inherit;text-decoration:none;width:max-content}.brand-mark{width:38px;height:38px;border:1px solid rgba(215,255,100,.3);border-radius:11px;display:grid;place-items:center;background:rgba(215,255,100,.06)}.brand-mark svg{width:28px;fill:var(--mint);stroke:var(--acid);stroke-width:2.4}.brand strong{display:block;font-size:1.1rem;letter-spacing:.15em}.brand small{display:block;color:var(--muted);font:600 .63rem/1.4 ui-monospace,Consolas,monospace;letter-spacing:.09em}.mode-tabs{justify-self:center;display:flex;gap:3px;padding:4px;background:#08100f;border:1px solid var(--line);border-radius:11px}.mode-tab{min-height:36px;padding:0 17px;border:0;border-radius:7px;background:transparent;color:#91a199;font-size:.8rem;cursor:pointer}.mode-tab:hover{background:rgba(255,255,255,.04);color:var(--text)}.mode-tab.is-active{background:var(--acid);color:#07100f;font-weight:800}.top-actions{display:flex;align-items:center;gap:8px;justify-content:flex-end}.ghost-button,.primary-button,.upload-button{min-height:38px;padding:0 14px;border-radius:9px;font-size:.76rem;font-weight:750;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer}.ghost-button{border:1px solid var(--line2);background:rgba(255,255,255,.025)}.ghost-button:hover:not(:disabled){border-color:#5f7068;background:rgba(255,255,255,.05)}.ghost-button:disabled{opacity:.35;cursor:not-allowed}.primary-button,.upload-button{border:1px solid var(--acid);background:var(--acid);color:#07100f}.upload-button b{font-weight:800}.source-state{display:flex;align-items:center;gap:8px;min-width:0}.source-state i{width:7px;height:7px;border-radius:50%;background:#56645f;flex:0 0 auto}.source-state i.ready{background:var(--mint);box-shadow:0 0 9px var(--mint)}.source-state strong{min-width:0;font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.source-state span{color:var(--muted);font-size:.68rem;white-space:nowrap}.flow-hint{display:flex;align-items:center;gap:9px;color:#6e7e77;font:650 .66rem ui-monospace,monospace}.flow-hint i{width:28px;height:1px;background:var(--line2)}.text-button{justify-self:end;border:0;background:none;color:var(--mint);font-size:.72rem;cursor:pointer}.text-button:disabled{opacity:.3;cursor:not-allowed}.header-reset{min-height:34px;padding:0 3px;white-space:nowrap}.dual-workspace{height:calc(100vh - 98px);min-height:600px;display:grid;grid-template-columns:minmax(0,1.75fr) minmax(340px,.85fr);gap:12px;padding:12px}.work-card{min-width:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:rgba(10,18,17,.94);box-shadow:0 18px 50px rgba(0,0,0,.16)}.work-card.correction-disabled{opacity:.62}.card-head{min-height:64px;padding:8px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.card-title{display:flex;align-items:center;gap:10px}.number{width:32px;height:32px;border:1px solid rgba(215,255,100,.3);border-radius:8px;display:grid;place-items:center;color:var(--acid);font:800 .72rem ui-monospace,monospace}.correction-card .number{border-color:rgba(223,119,255,.3);color:var(--magenta)}.card-title small{color:var(--mint);font:700 .58rem ui-monospace,monospace;letter-spacing:.12em}.correction-card .card-title small{color:var(--magenta)}h1{font-size:1rem;margin:2px 0 0}.primary-result{text-align:right}.primary-result>span{display:block;color:var(--muted);font-size:.68rem}.primary-result>div{display:flex;align-items:baseline;justify-content:flex-end;gap:6px;margin-top:3px}.primary-result strong{color:var(--acid);font:760 1.7rem/1 ui-monospace,Consolas,monospace;letter-spacing:-.05em}.correction-result strong{color:var(--magenta)}.primary-result em{font-style:normal;color:var(--muted);font-size:.72rem}.canvas-stage{position:relative;flex:1;min-height:360px;margin:12px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#020605;cursor:crosshair}.canvas-stage:before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,rgba(215,255,100,.045) 1px,transparent 1px),linear-gradient(rgba(215,255,100,.045) 1px,transparent 1px);background-size:50px 50px}.canvas-stage.dragging{border-color:var(--acid);box-shadow:inset 0 0 0 2px rgba(215,255,100,.12)}canvas{display:block}.canvas-stage canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;touch-action:none}.empty-state{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;background:radial-gradient(circle,rgba(93,228,209,.055),transparent 46%);pointer-events:none}.empty-state strong{font-size:.9rem;margin-top:16px}.empty-state p{color:var(--muted);font-size:.72rem;margin:7px 0 0}.crop-symbol{width:65px;height:65px;border:1px dashed rgba(215,255,100,.35);border-radius:11px;position:relative}.crop-symbol:before,.crop-symbol:after{content:"";position:absolute;width:21px;height:21px}.crop-symbol:before{left:-5px;top:-5px;border-left:2px solid var(--acid);border-top:2px solid var(--acid)}.crop-symbol:after{right:-5px;bottom:-5px;border-right:2px solid var(--acid);border-bottom:2px solid var(--acid)}.track-symbol{width:64px;height:78px;position:relative;flex-shrink:0}.track-symbol:before{content:"";position:absolute;left:50%;top:0;bottom:0;border-left:1px dashed rgba(223,119,255,.7);transform:translateX(-50%)}.track-symbol:after{content:"+";position:absolute;left:50%;transform:translateX(-50%);top:29px;width:25px;height:25px;border:1px solid rgba(223,119,255,.55);border-radius:5px;display:grid;place-items:center;color:var(--magenta)}.canvas-label,.canvas-tip{position:absolute;z-index:5;top:11px;padding:7px 9px;border-radius:7px;background:rgba(5,10,9,.84);backdrop-filter:blur(8px);font-size:.66rem;pointer-events:none}.canvas-label{left:11px;border:1px solid rgba(215,255,100,.22);color:var(--acid);font:700 .64rem ui-monospace,monospace}.card-heading-row{display:flex;align-items:center;gap:8px;margin-top:2px}.card-heading-row h1{margin:0}.measure-method{width:auto;min-width:112px;min-height:24px;padding:2px 22px 2px 7px;border:1px solid rgba(215,255,100,.18);border-radius:5px;background:#07100f;color:#dbe7e1;font-size:.62rem;cursor:pointer}.correction-card .canvas-label{border-color:rgba(223,119,255,.22);color:var(--magenta)}.canvas-tip{right:11px;border:1px solid var(--line2);color:#d9e2de}.card-foot{min-height:72px;padding:10px 15px;display:grid;grid-template-columns:auto 30px auto 1fr;gap:10px;align-items:center;border-top:1px solid var(--line)}.point-step{display:flex;align-items:center;gap:8px;opacity:.42}.point-step.is-active,.point-step.is-complete{opacity:1}.point-step>span{width:28px;height:28px;display:grid;place-items:center;flex:0 0 auto}.target-mark{color:var(--orange);font-size:1.55rem}.self-mark{border:2px solid var(--mint);border-radius:50%;position:relative}.self-mark:after{content:"";position:absolute;inset:7px;background:var(--mint);border-radius:50%}.height-mark{color:var(--magenta);border:1px solid rgba(223,119,255,.5);border-radius:5px}.point-step strong,.point-step small{display:block}.point-step strong{font-size:.72rem}.point-step small{color:var(--muted);font-size:.62rem;margin-top:3px}.card-foot>i{width:30px;height:1px;background:var(--line2)}.compact{min-height:33px;padding:0 11px;justify-self:end}.correction-foot{grid-template-columns:auto 1fr auto}.correction-foot p{color:var(--muted);font-size:.65rem;text-align:center}.privacy-bar{height:34px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);color:#687970;font:600 .62rem ui-monospace,monospace}.privacy-bar span:first-child{display:flex;align-items:center;gap:7px}.privacy-bar i{width:5px;height:5px;border-radius:50%;background:var(--mint);box-shadow:0 0 8px var(--mint)}dialog{color:var(--text);background:#0a1211;border:1px solid var(--line2);border-radius:16px;box-shadow:0 30px 100px #000;padding:0}dialog::backdrop{background:rgba(0,0,0,.76);backdrop-filter:blur(6px)}dialog form{padding:20px}.settings-dialog{width:min(620px,calc(100vw - 28px));max-height:calc(100vh - 28px);overflow:auto}.region-dialog{width:min(900px,calc(100vw - 28px))}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between}.dialog-head small{color:var(--mint);font:700 .63rem ui-monospace,monospace;letter-spacing:.12em}.dialog-head h2{font-size:1.08rem;margin:5px 0 0}.circle-button{width:35px;height:35px;border-radius:50%;border:1px solid var(--line2);background:none;color:var(--muted);cursor:pointer}.settings-dialog section{padding:15px 0;border-top:1px solid var(--line);margin-top:15px}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-title strong{font-size:.8rem}.section-title span{color:var(--muted);font-size:.66rem}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}label>span{display:block;color:var(--muted);font-size:.68rem;margin:0 0 6px}input,select{width:100%;min-height:39px;border:1px solid var(--line2);border-radius:8px;background:#07100f;color:var(--text);padding:8px 10px;font-size:.8rem}.suffix-field{position:relative}.suffix-field input{padding-right:34px}.suffix-field b{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:.66rem}.zoom-segments{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:10px;padding:4px;border:1px solid var(--line);border-radius:9px;background:#07100f}.zoom-segments button{height:32px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:.75rem;cursor:pointer}.zoom-segments button.is-active{background:rgba(215,255,100,.12);color:var(--acid);font-weight:800}.check-row{display:flex;align-items:center;gap:8px;margin-top:11px}.check-row input{width:16px;min-height:16px}.check-row span{margin:0}.manual-scale{display:block;margin-top:9px}.correction-settings label{display:block;margin-top:10px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.dialog-actions.spread{justify-content:space-between}.dialog-actions.spread>div{display:flex;gap:8px}.region-dialog form>p{color:var(--muted);font-size:.72rem;margin:10px 0 13px}.region-editor{height:min(60vh,560px);position:relative;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:#020605}.region-editor canvas{width:100%;height:100%;cursor:crosshair}.region-editor>span{position:absolute;left:10px;top:10px;padding:6px 8px;border-radius:6px;background:rgba(5,10,9,.85);color:var(--acid);font-size:.66rem;pointer-events:none}.toast{position:fixed;z-index:100;left:50%;bottom:24px;transform:translate(-50%,12px);padding:10px 14px;border-radius:9px;background:#edf4f0;color:#07100f;font-size:.74rem;font-weight:800;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1400px){.topbar{grid-template-columns:210px minmax(180px,1fr) auto auto;gap:14px}.flow-hint{display:none}}
@media(max-width:1050px){.topbar{grid-template-columns:180px minmax(140px,1fr) auto auto;gap:10px;padding:0 12px}.source-state span{display:none}.mode-tab{padding:0 11px}.top-actions .ghost-button{padding:0 11px}.dual-workspace{height:auto;min-height:0;grid-template-columns:1fr}.work-card{min-height:600px}.privacy-bar{position:static}}
@media(max-width:700px){.topbar{height:auto;min-height:66px;grid-template-columns:1fr auto;padding:10px 12px}.source-state{display:none}.top-actions{grid-column:2;grid-row:1}.mode-tabs{order:3;grid-column:1/-1;width:100%;margin-top:9px}.mode-tab{flex:1}.upload-button{padding:0 11px}.upload-button b{display:none}.header-reset{font-size:.68rem}.flow-hint{display:none}.dual-workspace{padding:8px}.work-card{min-height:520px}.card-foot{grid-template-columns:1fr 20px 1fr}.card-foot .compact{grid-column:1/-1;width:100%}.correction-foot{grid-template-columns:1fr}.correction-foot p{display:none}.privacy-bar{height:auto;min-height:38px;gap:8px;flex-wrap:wrap}.dialog-actions.spread{flex-direction:column}.dialog-actions.spread>div{display:grid;grid-template-columns:1fr 1fr}.two-fields{grid-template-columns:1fr}}

.privacy-bar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);gap:12px}
.privacy-bar .privacy-notice{min-width:0;max-width:100%;justify-self:start}
.privacy-bar i{flex:0 0 5px}
.privacy-bar .privacy-text,.privacy-bar .image-purpose,.privacy-bar #serverStatus{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.privacy-bar .image-purpose{color:var(--muted);text-align:center}
.privacy-bar #serverStatus{justify-self:end}

/* Keep the workspace chrome inside the canvas so the crop keeps the full card height. */
.card-head,.card-foot{position:absolute;left:12px;z-index:6;border:1px solid var(--line2);border-radius:10px;background:rgba(5,10,9,.94);box-shadow:0 8px 28px rgba(0,0,0,.28);backdrop-filter:blur(8px)}
.card-head{top:12px;width:min(250px,calc(100% - 24px));min-height:0;padding:8px 10px;gap:10px;border-bottom:1px solid var(--line2)}
.distance-card .card-head{display:grid;grid-template-columns:1fr}
.distance-card .primary-result{display:flex;align-items:center;justify-content:space-between;padding-top:6px;border-top:1px solid var(--line)}
.distance-card .primary-result>div{margin-top:0}
.distance-card .primary-result strong{font-size:1.28rem}
.correction-card .card-head{width:min(250px,calc(100% - 24px))}
.correction-card .card-title small{font-size:.5rem;letter-spacing:.08em;white-space:nowrap}
.card-foot{bottom:12px;width:min(250px,calc(100% - 24px));max-width:calc(100% - 24px);min-height:0;padding:8px 10px;grid-template-columns:1fr 1fr;gap:8px;border-top:1px solid var(--line2)}
.distance-card .card-foot>i{display:none}
.distance-card .card-foot .compact{grid-column:1/-1;width:100%;margin-left:0}
.correction-foot{grid-template-columns:auto auto}
.correction-foot p{display:none}
.canvas-label{top:84px;left:12px}
.distance-card .canvas-label{top:108px}
.card-foot .compact{justify-self:auto;margin-left:4px;white-space:nowrap}
@media(max-width:700px){.card-head,.card-foot{left:8px}.card-head{top:8px;width:calc(100% - 16px);padding:7px 8px}.distance-card .card-head{display:flex}.distance-card .primary-result{display:block;padding-top:0;border-top:0}.distance-card .primary-result>div{margin-top:3px}.correction-card .card-head{width:calc(100% - 16px)}.card-foot{bottom:8px;width:auto;max-width:calc(100% - 16px);padding:6px 8px;grid-template-columns:auto auto auto;gap:6px}.distance-card .card-foot .compact{grid-column:auto;width:auto}.card-foot .compact{grid-column:auto;width:auto}.point-step small{display:none}.correction-foot{grid-template-columns:auto auto}.canvas-label,.distance-card .canvas-label{top:78px;left:8px}}

/* Narrow vertical controls stay in the spare gutter beside the measured image. */
.card-head,.card-foot{width:180px;max-width:calc(100% - 24px);padding:8px;box-shadow:0 5px 18px rgba(0,0,0,.22)}
.card-title{align-items:flex-start;gap:7px}
.card-title>div{flex:1;min-width:0}
.number{width:24px;height:24px;flex:0 0 24px;border-radius:6px}
.card-title small{font-size:.49rem;letter-spacing:.06em;white-space:nowrap}
.card-heading-row{flex-direction:column;align-items:stretch;gap:5px;margin-top:3px}
.measure-method{width:100%;min-width:0;min-height:24px}
.local-method{align-self:flex-start;padding:3px 6px;border:1px solid rgba(215,255,100,.18);border-radius:5px;color:var(--acid);font-size:.62rem;line-height:1.4}
.distance-card .card-head,.correction-card .card-head{display:flex;flex-direction:column;align-items:stretch;gap:7px}
.distance-card .primary-result,.correction-card .primary-result{display:flex;align-items:center;justify-content:space-between;padding-top:6px;border-top:1px solid var(--line);text-align:left}
.distance-card .primary-result>div,.correction-card .primary-result>div{margin:0}
.primary-result strong{font-size:1.18rem}
.correction-card .card-head,.correction-card .card-foot{width:140px}
.correction-card .card-title small{font-size:.41rem;letter-spacing:.02em}
.card-foot,.correction-foot{display:flex;flex-direction:column;align-items:stretch;gap:5px}
.card-foot .point-step{min-height:27px}
.card-foot .point-step>span{width:23px;height:23px}
.card-foot .compact,.distance-card .card-foot .compact{width:100%;min-height:28px;margin:2px 0 0;padding:0 6px}
.canvas-label{display:none}
.canvas-tip{top:137px;right:auto;left:12px;max-width:180px;padding:6px 8px;line-height:1.4}
.correction-card .canvas-tip{top:96px;max-width:140px}
@media(max-width:700px){.card-head,.card-foot{left:8px;max-width:calc(100% - 16px)}.distance-card .card-head,.distance-card .card-foot{width:180px}.correction-card .card-head,.correction-card .card-foot{width:140px}.distance-card .primary-result{display:flex;padding-top:6px;border-top:1px solid var(--line)}.card-foot{display:flex;gap:5px}.card-foot .point-step small{display:block}.card-foot .compact,.distance-card .card-foot .compact{width:100%}.canvas-tip{left:8px}}

/* The loupe is visual-only: it never catches a measuring or crop-editing click. */
.magnifier-toggle{white-space:nowrap}
.top-actions .magnifier-toggle{min-height:34px;padding:0 10px}
.magnifier-toggle svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;flex:0 0 auto}
.magnifier-toggle.is-active{border-color:rgba(215,255,100,.6);background:rgba(215,255,100,.1);color:var(--acid)}
.top-actions .magnifier-toggle{border-color:#64766d;background:#18231e;color:#e1ebe5;gap:6px}
.magnifier-state{display:inline-flex;align-items:center;justify-content:center;min-width:25px;height:22px;padding:0 5px;border:1px solid #72857a;border-radius:5px;background:#303f36;color:#edf5f0;font-size:.72rem;font-weight:850;line-height:1}
.top-actions .magnifier-toggle.is-active{border-color:var(--acid);background:var(--acid);color:#0b180a;box-shadow:0 0 0 2px rgba(215,255,100,.16),0 0 15px rgba(215,255,100,.14)}
.magnifier-toggle.is-active .magnifier-state{border-color:#163615;background:#163615;color:var(--acid)}
.top-actions .header-reset{min-height:34px;padding:0 11px;gap:6px;border:1px solid rgba(93,228,209,.38);background:linear-gradient(180deg,#18312b,#101e1a);color:#b9eee0;box-shadow:inset 0 1px 0 rgba(255,255,255,.04);transition:background .15s,border-color .15s,box-shadow .15s}
.header-reset svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.top-actions .header-reset:hover:not(:disabled){border-color:var(--mint);background:#203d34;box-shadow:0 0 0 2px rgba(93,228,209,.08)}
.top-actions .header-reset:active:not(:disabled){background:#11251e}
.top-actions .header-reset:disabled{opacity:.5;border-color:var(--line2);background:#101915;color:#8b9d93;box-shadow:none}
.magnifier{position:absolute;z-index:8;width:158px;padding:6px;border:1px solid rgba(215,255,100,.65);border-radius:10px;background:rgba(5,10,9,.96);box-shadow:0 12px 34px rgba(0,0,0,.52);pointer-events:none}
.magnifier canvas,.canvas-stage .magnifier canvas,.region-editor .magnifier canvas{position:static;inset:auto;width:144px;height:144px;border-radius:5px;image-rendering:pixelated;touch-action:auto;cursor:inherit}
.magnifier small{display:block;padding:5px 2px 1px;color:var(--acid);font:700 .61rem ui-monospace,Consolas,monospace;text-align:center;letter-spacing:.04em}
.magnifier-controls{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}
.magnifier:not(.is-centered){position:fixed;z-index:30}
.magnifier-controls .magnifier-mode{width:auto;min-height:30px;padding:3px 5px;border-radius:6px;font-size:.65rem;cursor:pointer}
.region-editor .editor-magnifier-controls{position:absolute;top:10px;right:10px;z-index:6}
.editor-magnifier-controls .magnifier-toggle{min-height:28px;padding:0 8px;font-size:.67rem}
.magnifier.is-centered{width:146px;height:146px;padding:0;overflow:hidden;border-radius:50%;box-shadow:0 3px 12px rgba(0,0,0,.3)}
.magnifier.is-centered canvas{border-radius:50%}
.magnifier.is-centered small{display:none}
.magnifier-result{position:absolute;z-index:9;pointer-events:none;padding:4px 7px;border:1px solid rgba(215,255,100,.55);border-radius:5px;background:rgba(5,10,9,.96);color:var(--acid);font:600 12px ui-monospace,Consolas,monospace;line-height:16px;white-space:nowrap}
.correction-card .magnifier-result{border-color:rgba(223,119,255,.6);color:var(--magenta)}
.canvas-stage.is-magnifying>canvas,.region-editor.is-magnifying>canvas{cursor:none}
@media(max-width:700px){.top-actions{gap:4px}.top-actions .magnifier-toggle{width:auto;min-width:66px;min-height:34px;padding:0 7px}.magnifier-button-text{display:none}}

/* Keep the paste setup discoverable without expanding the compact toolbar. */
.brand-group{display:flex;align-items:center;gap:10px;white-space:nowrap}
.brand-group .brand{flex:0 0 auto}
.brand-group .paste-guide-button{min-height:30px;padding:0 10px;flex:0 0 auto;border-radius:7px;color:var(--mint);font-size:.7rem;font-weight:800}
.paste-guide-dialog{width:min(1000px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:hidden;background:#0b1411}
.paste-guide-dialog form{display:flex;flex-direction:column;max-height:calc(100dvh - 34px);padding:0}
.guide-head{padding:22px 24px 17px;border-bottom:1px solid var(--line);flex-shrink:0}
.guide-head h2{font-size:1.3rem;margin:0;letter-spacing:.04em}
.guide-head p{margin:7px 0 0;color:var(--muted);font-size:.76rem;line-height:1.5}
.guide-head .circle-button{flex-shrink:0}
.guide-body{min-height:0;overflow-y:auto;padding:18px 24px 22px;scrollbar-width:thin;scrollbar-color:#3f574a transparent}
.guide-required{display:flex;align-items:center;gap:11px;padding:12px 15px;margin-bottom:16px;border:1px solid rgba(255,175,105,.26);border-radius:10px;background:rgba(255,164,90,.06)}
.guide-required-badge{padding:4px 8px;flex-shrink:0;border-radius:5px;background:#ffbf85;color:#34200e;font-size:.68rem;font-weight:800}
.guide-required p{margin:0;color:#e9d7c7;font-size:.85rem;line-height:1.65}
.guide-required strong{color:#ffce9f}
.guide-scenarios{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.guide-scenario{--guide-accent:var(--acid);min-width:0;padding:17px;border:1px solid rgba(215,255,100,.2);border-radius:12px;background:linear-gradient(150deg,rgba(215,255,100,.035),transparent 45%),#0a120f}
.guide-big{--guide-accent:var(--mint);border-color:rgba(93,228,209,.2);background:linear-gradient(150deg,rgba(93,228,209,.035),transparent 45%),#0a120f}
.guide-scenario-head{display:flex;align-items:center;gap:11px;padding-bottom:15px;margin-bottom:2px;border-bottom:1px solid var(--line)}
.guide-scenario-letter{display:grid;place-items:center;width:37px;height:42px;flex-shrink:0;border:1px solid var(--guide-accent);border-radius:8px;color:var(--guide-accent);font:700 1.35rem ui-monospace,Consolas,monospace}
.guide-scenario-eyebrow{color:var(--guide-accent);font-size:.67rem;font-weight:750}
.guide-scenario h3{margin:5px 0 0;font-size:.88rem;font-weight:650;line-height:1.6}
.guide-scenario h3 span{color:var(--guide-accent);white-space:nowrap}
.guide-steps{list-style:none;margin:0;padding:0}
.guide-steps li{display:grid;grid-template-columns:25px minmax(0,1fr);gap:10px;padding:14px 0;border-bottom:1px solid rgba(211,255,221,.07);font-size:.78rem;line-height:1.85;color:#b5c4ba}
.guide-steps li:last-child{padding-bottom:0;border-bottom:0}
.guide-step-number{padding-top:3px;color:var(--guide-accent);opacity:.8;font:650 .72rem/1.85 ui-monospace,Consolas,monospace}
.guide-steps strong{color:#f0f6f1;font-weight:700}
.guide-steps .guide-must{color:#ffbf85}
.guide-steps .guide-mode{display:inline-block;padding:0 5px;margin:0 2px;border-radius:4px;background:rgba(255,255,255,.055);color:var(--guide-accent)}
.guide-steps .guide-height{color:#e49cff}
.guide-step-note,.guide-privacy{display:block;margin-top:5px;font-size:.69rem;line-height:1.65;color:var(--muted)}
.guide-privacy{color:#7fcdb5}
.paste-guide-dialog kbd{display:inline-block;white-space:nowrap;padding:0 6px;border:1px solid #4b6154;border-bottom-width:2px;border-radius:5px;background:#17271e;color:#e8f5ed;font:650 .72rem/1.8 ui-monospace,Consolas,monospace;vertical-align:baseline}
.guide-tip{margin-top:10px;padding:10px 11px;border-left:2px solid #d8a968;border-radius:0 7px 7px 0;background:rgba(216,169,104,.06)}
.guide-tip>strong{color:#eac18b;font-size:.69rem}
.guide-tip p{margin:4px 0 0;color:#b9ac98;font-size:.71rem;line-height:1.75}
.guide-actions{flex-shrink:0;display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0;padding:14px 24px;border-top:1px solid var(--line);background:#0c1712}
.guide-footer-copy{display:flex;min-width:0;flex-direction:column;gap:7px;color:var(--muted)}
.guide-footer-copy>span{font-size:.69rem}
.guide-footer-copy>small{font-size:.69rem;line-height:1.65;color:#a8b8af}
.guide-footer-copy kbd{margin:0 2px}
.guide-footer-copy .guide-tip-label{color:var(--acid)}
.guide-footer-copy .guide-taskbar{color:var(--mint)}
.guide-footer-copy .guide-app-order{color:#ffbf85}
.guide-footer-copy .guide-repeat{color:#e49cff}
.guide-actions .primary-button{white-space:nowrap}
@media(max-width:760px){.guide-scenarios{grid-template-columns:1fr}.guide-head{padding:18px}.guide-body{padding:14px 18px 18px}.guide-actions{padding:12px 18px;flex-direction:column;align-items:stretch}.guide-footer-copy>span{display:none}.guide-actions .primary-button{width:100%}.guide-scenario{padding:15px}}
@media(max-width:440px){.paste-guide-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.paste-guide-dialog form{max-height:calc(100dvh - 18px)}.guide-head{padding:15px}.guide-head h2{font-size:1.15rem}.guide-head p{font-size:.7rem}.guide-body{padding:12px}.guide-required{padding:10px;gap:8px}.guide-required p{font-size:.78rem}.guide-scenario{padding:12px}.guide-steps li{gap:7px;font-size:.78rem}.guide-scenario h3{font-size:.82rem}}

/* Persistent parameter rails give the image its own unobstructed measuring surface. */
.work-card{display:grid;grid-template-columns:168px minmax(0,1fr);grid-template-rows:minmax(0,1fr)}
.correction-card{grid-template-columns:132px minmax(0,1fr)}
.control-rail{min-width:0;min-height:0;display:flex;flex-direction:column;gap:6px;padding:6px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line2) transparent}
.control-rail .card-head,.control-rail .card-foot{position:static;inset:auto;width:100%;max-width:none;min-height:0;margin:0;padding:6px;border:1px solid var(--line2);border-radius:8px;background:rgba(5,10,9,.72);box-shadow:none;backdrop-filter:none}
.control-rail .card-foot{margin-top:auto}
.control-rail .card-title small{display:none}
.control-rail .card-title{gap:6px;align-items:center}
.control-rail .card-title .number{width:22px;height:22px;flex-basis:22px}
.control-rail .card-title h1{font-size:.9rem}
.control-rail .card-heading-row{gap:4px}
.control-rail .primary-result strong{font-size:1.18rem}
.control-rail .point-step{min-height:25px}
.control-rail .point-step small{font-size:.57rem}
.control-rail .card-foot .compact{min-height:28px}
.param-panel{padding:7px 6px;border:1px solid var(--line);border-radius:8px;background:rgba(5,10,9,.48)}
.resolution-settings{border-color:rgba(93,228,209,.2)}
.correction-card .param-panel{border-color:rgba(223,119,255,.2)}
.param-panel .section-title{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px;margin:0 0 6px}
.param-panel .section-title strong{font-size:.68rem;line-height:1.3}
.param-panel .section-title span{font-size:.53rem}
.control-rail label>span{font-size:.59rem;margin-bottom:3px}
.control-rail .two-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.control-rail input,.control-rail select{min-height:28px;padding:3px 6px;border-radius:6px;font-size:.7rem}
.control-rail input[type=number]{appearance:textfield}
.control-rail input[type=number]::-webkit-inner-spin-button,.control-rail input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}
.control-rail .suffix-field input{padding-right:21px}
.control-rail .suffix-field b{right:5px;font-size:.55rem}
.control-rail .zoom-segments{margin-top:7px;padding:2px;gap:1px}
.control-rail .zoom-segments button{height:24px;font-size:.65rem}
.control-rail .check-row{margin-top:7px;gap:5px}
.control-rail .check-row input{width:14px;min-height:14px}
.control-rail .manual-scale{margin-top:7px}
.work-card .canvas-stage{min-width:0;min-height:0;margin:6px 6px 6px 0}
.work-card .canvas-tip,.correction-card .canvas-tip{top:12px;right:12px;left:auto;max-width:min(200px,calc(100% - 24px))}
@media(max-width:620px){.work-card,.correction-card{display:flex;flex-direction:column;min-height:0}.control-rail{width:100%;flex:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;gap:8px;padding:8px}.control-rail .card-foot{grid-column:1/-1;margin:0;flex-direction:row;flex-wrap:wrap;align-items:center}.control-rail .card-foot .compact{width:auto;margin-left:auto}.distance-card .local-settings,.distance-card .big-settings{grid-column:1/-1}.correction-card .card-foot{grid-column:1/-1}.work-card .canvas-stage{flex:none;min-height:420px;margin:0 8px 8px}}
@media(max-width:440px){.control-rail{display:flex;flex-direction:column}.control-rail .card-foot{display:flex}.work-card .canvas-stage{min-height:390px}}

/* Screenshot dimensions live beside the brand; loading status belongs to the image placeholders. */
.topbar{grid-template-columns:190px 234px auto minmax(0,1fr) auto;gap:12px}
.header-resolution{min-width:0;padding-left:12px;border-left:1px solid var(--line2)}
.resolution-title{display:flex;align-items:baseline;justify-content:space-between;gap:5px;margin-bottom:4px;white-space:nowrap}
.resolution-title strong{font-size:.65rem;line-height:1.2}
.resolution-title span{color:var(--muted);font-size:.52rem}
.resolution-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.resolution-inputs label{display:grid;grid-template-columns:12px minmax(0,1fr);align-items:center;gap:4px;min-width:0}
.resolution-inputs label>span:first-child{color:var(--muted);font-size:.6rem}
.resolution-inputs .suffix-field{display:block;min-width:0}
.resolution-inputs input{min-height:27px;height:27px;padding:3px 20px 3px 6px;border-radius:5px;font-size:.67rem;appearance:textfield}
.resolution-inputs input::-webkit-inner-spin-button,.resolution-inputs input::-webkit-outer-spin-button{appearance:none;margin:0}
.resolution-inputs .suffix-field b{right:5px;font-size:.52rem}
@media(max-width:1400px){.topbar{grid-template-columns:190px 234px auto minmax(0,1fr)}}
@media(max-width:1050px){.topbar{grid-template-columns:175px 225px auto minmax(0,1fr)}}
@media(max-width:960px){.topbar{height:auto;min-height:64px;grid-template-columns:minmax(0,1fr) auto;gap:7px 12px;padding:8px 12px}.brand-group{grid-column:1;grid-row:1}.top-actions{grid-column:2;grid-row:1}.header-resolution{grid-column:1;grid-row:2;width:234px}.mode-tabs{grid-column:2;grid-row:2;justify-self:end;margin:0}.flow-hint{display:none}}
@media(max-width:700px){.header-resolution{grid-column:1/-1;grid-row:2;width:min(100%,280px)}.mode-tabs{grid-column:1/-1;grid-row:3;justify-self:stretch;width:100%;margin:0}}

/* The fixed correction link straddles both measuring buttons like a chain joint. */
.topbar{grid-template-columns:190px 234px minmax(0,1fr) auto}
.flow-hint{display:none}
.mode-tabs{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;width:320px;height:44px;white-space:nowrap;border:1px solid #2b3c33;border-radius:999px;background:#101a16;isolation:isolate;box-shadow:inset 0 1px 0 rgba(225,245,230,.04)}
/* One continuous highlight crosses the join; the lettering never fades. */
.mode-tabs::before{content:"";position:absolute;inset:4px;z-index:-1;border-radius:999px;pointer-events:none;background:linear-gradient(90deg,rgba(149,199,154,.27),rgba(149,199,154,.15) 36%,rgba(149,199,154,.06) 56%,transparent 78%)}
.mode-tabs:has([data-mode=big-height].is-active)::before{background:linear-gradient(270deg,rgba(149,199,154,.27),rgba(149,199,154,.15) 36%,rgba(149,199,154,.06) 56%,transparent 78%)}
.mode-tabs .mode-tab{min-width:0;width:100%;min-height:36px;display:flex;align-items:stretch;padding:0;overflow:hidden;font-weight:600;background:transparent}
.mode-tabs .mode-tab:hover,.mode-tabs .mode-tab.is-active{background:transparent}
.mode-tabs .mode-name{position:relative;min-width:0;flex:1;display:grid;place-items:center;color:#93a59a;font-size:.76rem;transition:color .15s ease}
.mode-tabs .mode-tab.is-active .mode-name{color:#e4f5d5;font-weight:750}
.mode-tabs .mode-tab.is-active .mode-name::after{content:"";position:absolute;bottom:3px;left:50%;width:14px;height:2px;transform:translateX(-50%);border-radius:2px;background:#b9db9f}
.mode-tabs .mode-tab:not(.is-active):hover .mode-name{color:#e1eee5}
.mode-tabs .mode-tab[data-mode=local]{border-radius:999px 0 0 999px}
.mode-tabs .mode-tab[data-mode=big-height]{border-radius:0 999px 999px 0}
.mode-tabs .mode-tab[data-mode=local] .mode-name{border-radius:999px 0 0 999px}
.mode-tabs .mode-tab[data-mode=big-height] .mode-name{border-radius:0 999px 999px 0}
.mode-tabs .correction-half{flex:0 0 37px;height:26px;align-self:center;display:flex;align-items:center;justify-content:flex-end;border-top:1px solid #d1e8dc;border-bottom:1px solid #94b4a0;background:linear-gradient(180deg,#d3e9dd,#b0d1bc);color:#193727;font-size:.7rem;font-weight:750;line-height:1;user-select:none}
.account-menu{position:relative}.account-menu summary{list-style:none;display:flex;align-items:center;gap:8px;cursor:pointer;padding:5px 9px 5px 5px;border:1px solid rgba(130,166,156,.42);border-radius:10px;background:rgba(255,255,255,.58);font-size:.76rem;color:#17362e}.account-menu summary::-webkit-details-marker{display:none}.account-avatar{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:#17362e;color:#d7ff64;font-size:.7rem;font-weight:800}.account-popover{position:absolute;right:0;top:calc(100% + 9px);z-index:50;width:180px;padding:8px;background:#fff;border:1px solid #d6e2dd;border-radius:12px;box-shadow:0 18px 45px rgba(8,34,28,.18);display:grid}.account-popover span{padding:7px 9px;color:#759087;font-size:.69rem}.account-popover a,.account-popover button{border:0;background:transparent;text-decoration:none;color:#193a31;text-align:left;padding:9px;border-radius:8px;font:inherit;font-size:.76rem;cursor:pointer}.account-popover a:hover,.account-popover button:hover{background:#edf5f1}.account-popover #accountLogout{color:#b43e4b}
.mode-tabs .mode-tab[data-mode=local] .correction-half{border-left:1px solid #b5d2bf;border-radius:999px 0 0 999px}
.mode-tabs .mode-tab[data-mode=big-height] .correction-half{justify-content:flex-start;border-right:1px solid #b5d2bf;border-radius:0 999px 999px 0}
.top-actions{grid-column:4}
@media(max-width:1500px){.topbar{height:auto;min-height:64px;grid-template-columns:190px 234px minmax(0,1fr) auto;gap:7px 12px;padding:8px 12px}.brand-group{grid-column:1;grid-row:1}.header-resolution{grid-column:2;grid-row:1;width:234px}.top-actions{grid-column:4;grid-row:1}.mode-tabs{position:relative;left:auto;top:auto;grid-column:1/-1;grid-row:2;justify-self:center;transform:none;margin:0}}
@media(max-width:760px){.topbar{grid-template-columns:minmax(0,1fr) auto}.brand-group{grid-column:1;grid-row:1}.top-actions{grid-column:2;grid-row:1}.header-resolution{grid-column:1/-1;grid-row:2;width:min(100%,280px)}.mode-tabs{grid-column:1/-1;grid-row:3;justify-self:center;width:min(100%,320px)}}
@media(max-width:420px){.brand small{display:none}.mode-tabs .correction-half{flex-basis:35px}}

/* Big-map manual measurement uses the full screenshot unless this compact option is enabled. */
.control-rail .big-crop-switch{margin:0 0 3px;align-items:center;cursor:pointer}
.control-rail .big-crop-switch input{accent-color:var(--acid);flex:0 0 auto}
.control-rail .big-crop-switch span{margin:0;color:var(--text);line-height:1.3}
.big-crop-note{margin:0 0 9px 19px;color:var(--muted);font-size:.53rem;line-height:1.35}

/* Give the full-screen map the spare width beside the narrow correction strip. */
.control-rail .rail-tip{display:block;margin:2px 0;color:var(--muted);font-size:.59rem;line-height:1.45;text-align:left}
.control-rail .point-step>div{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 5px}
.control-rail .point-step small{margin-top:0}
.control-rail .big-crop-switch{margin-bottom:7px}
.big-crop-note{display:none}
@media(min-width:1051px){
  .app-shell{height:100dvh;min-height:620px;display:grid;grid-template-rows:auto minmax(0,1fr) 28px}
  .dual-workspace{height:auto;min-height:0;grid-template-columns:minmax(0,1fr) clamp(280px,17vw,340px);gap:8px;padding:8px}
  .work-card{border-radius:12px}
  .privacy-bar{height:28px;padding:0 12px}
}
@media(min-width:1501px){
  .topbar{height:56px;min-height:56px;padding:0 12px}
  .brand-mark{width:32px;height:32px;border-radius:9px}
  .brand-mark svg{width:24px}
  .brand strong{font-size:1rem}
}
@media(max-width:680px){
  .topbar .brand-group{grid-column:1/-1}
  .topbar .top-actions{grid-column:1/-1;grid-row:2;justify-self:stretch;flex-wrap:wrap}
  .topbar .header-resolution{grid-row:3}
  .topbar .mode-tabs{grid-row:4}
}

/* The source distance stays above the result to explain the correction flow. */
.correction-flow{padding-top:8px;border-top:1px solid var(--line)}
.compensation-settings label{display:block}
.compensation-settings label+label{margin-top:8px}
.correction-source{padding:8px 6px;border:1px solid var(--line);border-radius:7px;background:rgba(215,255,100,.025)}
.correction-source>span,.correction-flow .correction-result>span{display:block;color:var(--muted);font-size:.64rem}
.correction-source>div{display:flex;align-items:baseline;gap:5px;margin-top:6px}
.correction-source strong{display:inline-block;color:var(--acid);font:760 1.18rem/1.2 ui-monospace,Consolas,monospace}
.correction-source em{color:var(--muted);font-size:.65rem;font-style:normal}
.correction-arrow{display:flex;align-items:center;justify-content:center;gap:5px;height:58px;color:#53635b}
.correction-arrow svg{width:18px;height:38px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.correction-arrow span{font-size:.59rem}
.correction-flow.is-ready .correction-source{border-color:rgba(215,255,100,.35);background:rgba(215,255,100,.055)}
.correction-flow.is-ready .correction-arrow{color:var(--magenta)}
.control-rail .correction-flow .correction-result{display:block;padding:8px 6px;border:1px solid rgba(223,119,255,.18);border-radius:7px}
.correction-flow .correction-result>div{justify-content:flex-start;margin-top:7px;min-height:23px}
.correction-flow.is-complete .correction-result{background:rgba(223,119,255,.07);border-color:rgba(223,119,255,.45)}
.correction-flow-status{margin:9px 0 1px;color:var(--muted);font-size:.59rem;line-height:1.6}
.correction-flow.is-ready .correction-flow-status{color:var(--text)}
.distance-transfer{position:fixed;z-index:60;pointer-events:none;white-space:nowrap;padding:5px 8px;border:1px solid var(--acid);border-radius:6px;background:#111c12;color:var(--acid);box-shadow:0 4px 18px rgba(215,255,100,.16);font:750 .9rem/1.2 ui-monospace,Consolas,monospace;will-change:transform,opacity}
.correction-transfer{display:grid;background:#15151d;box-shadow:0 4px 18px rgba(223,119,255,.16)}
.correction-transfer>span{grid-area:1/1;text-align:center}
.correction-transfer>span:last-child{opacity:0}
.correction-flow.is-transforming .correction-result>div{visibility:hidden}
.correction-flow.is-transforming .correction-arrow{filter:drop-shadow(0 0 4px rgba(223,119,255,.55))}
.correction-flow #correctedValue{display:inline-block}
@media(max-width:620px){.correction-card .control-rail>.card-head{grid-column:1/-1}.correction-flow{display:grid;grid-template-columns:minmax(0,1fr);max-width:280px;width:100%;align-self:center}.correction-arrow{height:46px}}

/* Public workspace preview: the desk remains visible while every real action stays locked. */
body.workspace-locked{overflow:hidden}
.workspace-auth-layer{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 48%,rgba(7,24,20,.08),rgba(2,9,7,.43));animation:workspace-gate-enter .32s ease-out both}
.workspace-auth-layer[hidden]{display:none}
.workspace-auth-card [hidden]{display:none!important}
.workspace-auth-card{position:relative;isolation:isolate;width:min(372px,calc(100vw - 34px));padding:22px 24px 18px;border:1px solid rgba(224,244,232,.82);border-radius:18px;background:linear-gradient(145deg,rgba(250,253,249,.98),rgba(231,240,235,.96));color:#17372f;box-shadow:0 30px 90px rgba(0,12,9,.42),0 12px 28px rgba(2,32,25,.2),inset 0 1px 0 #fff;transform:perspective(1000px) rotateX(1.5deg) rotateY(-2deg) translateY(-5px);animation:workspace-card-enter .46s cubic-bezier(.2,.75,.2,1) both}
.workspace-auth-card:before{content:"";position:absolute;inset:8px -8px -9px 8px;z-index:-1;border:1px solid rgba(194,222,207,.48);border-radius:19px;background:rgba(178,208,191,.2);box-shadow:0 13px 22px rgba(0,24,18,.13)}
.workspace-auth-close{position:absolute;z-index:3;right:31px;top:29px;width:27px;height:27px;display:grid;place-items:center;padding:0;border:1px solid rgba(219,239,228,.22);border-radius:50%;background:rgba(4,25,20,.34);color:#dcebe3;font-size:18px;font-weight:300;line-height:1;cursor:pointer;transition:background .25s ease,transform .25s ease}.workspace-auth-close:hover{background:rgba(4,25,20,.66);transform:rotate(6deg)}.workspace-auth-close:focus-visible{outline:2px solid #d7ff64;outline-offset:2px}
.workspace-auth-visual{position:relative;height:72px;margin:-3px 0 15px;border-radius:13px;overflow:hidden;background:linear-gradient(135deg,#163f36,#0b2822);box-shadow:inset 0 1px 0 rgba(255,255,255,.09)}
.workspace-auth-visual:before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(211,255,221,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(211,255,221,.055) 1px,transparent 1px);background-size:20px 20px;mask-image:linear-gradient(to right,#000,transparent)}
.workspace-auth-origin,.workspace-auth-target{position:absolute;bottom:17px;width:8px;height:8px;border-radius:50%;background:#d7ff64;box-shadow:0 0 0 5px rgba(215,255,100,.12),0 0 16px rgba(215,255,100,.42)}
.workspace-auth-origin{left:34px}.workspace-auth-target{right:36px;background:#5de4d1;box-shadow:0 0 0 5px rgba(93,228,209,.12),0 0 16px rgba(93,228,209,.4)}
.workspace-auth-arc{position:absolute;left:39px;right:40px;bottom:21px;height:41px;border-top:1.5px dashed rgba(215,255,100,.86);border-radius:50% 50% 0 0;transform:skewX(-8deg)}
.workspace-auth-range{position:absolute;left:39px;right:40px;bottom:9px;border-top:1px solid rgba(224,244,232,.34)}
.workspace-auth-range:before,.workspace-auth-range:after{content:"";position:absolute;top:-3px;width:5px;height:5px;border:1px solid rgba(224,244,232,.7);transform:rotate(45deg)}.workspace-auth-range:before{left:0}.workspace-auth-range:after{right:0}
.workspace-auth-visual b{position:absolute;right:12px;top:9px;color:#9bb8ad;font:500 9px ui-monospace,Consolas,monospace}
.workspace-auth-kicker{display:flex;align-items:center;gap:7px;color:#648178;font:700 9px ui-monospace,Consolas,monospace;letter-spacing:.14em;text-transform:uppercase}.workspace-auth-kicker i{width:6px;height:6px;border-radius:50%;background:#69a986;box-shadow:0 0 0 4px rgba(105,169,134,.12)}
.workspace-auth-copy h2{margin:8px 0 6px;color:#17372f;font-size:21px;line-height:1.3;letter-spacing:-.02em}.workspace-auth-copy p{margin:0;color:#657e76;font-size:12px;line-height:1.75}
.workspace-auth-actions{display:grid;gap:9px;margin-top:17px}.workspace-auth-primary{height:42px;display:flex;align-items:center;justify-content:center;gap:10px;border-radius:9px;background:linear-gradient(115deg,#285d4d,#173f35);color:#fff;text-decoration:none;font-size:13px;font-weight:750;box-shadow:0 8px 18px rgba(23,63,53,.23);transition:transform .18s,box-shadow .18s}.workspace-auth-primary:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(23,63,53,.28)}.workspace-auth-primary:active{transform:translateY(0) scale(.985)}.workspace-auth-primary span{font-size:16px;transition:transform .18s}.workspace-auth-primary:hover span{transform:translateX(3px)}
.workspace-auth-minor{display:flex;align-items:center;justify-content:center;gap:9px;color:#688279;font-size:10px}.workspace-auth-minor>*+*:before{content:"";display:inline-block;width:1px;height:9px;margin-right:9px;vertical-align:-1px;background:#b7c8c0}.workspace-auth-secondary{text-align:center;color:inherit;text-decoration:none}.workspace-auth-minor button{padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}.workspace-auth-secondary:hover,.workspace-auth-minor button:hover{color:#285d4d;text-decoration:underline;text-underline-offset:3px}
.workspace-auth-checking{height:42px;margin-top:17px;display:flex;align-items:center;justify-content:center;gap:9px;border:1px solid #cddcd4;border-radius:9px;color:#71877f;font-size:11px;background:rgba(255,255,255,.48)}.workspace-auth-checking i{width:14px;height:14px;border:2px solid #b7cac0;border-top-color:#2b6957;border-radius:50%;animation:workspace-auth-spin .75s linear infinite}
.workspace-auth-retry{width:100%;height:42px;margin-top:17px;border:1px solid #2e6656;border-radius:9px;background:#214f42;color:#fff;font-size:12px;font-weight:700;cursor:pointer}.workspace-auth-retry:hover{background:#296250}.workspace-auth-note{display:block;margin-top:14px;color:#8da097;text-align:center;font-size:9px}
.workspace-auth-layer[data-state=unavailable] .workspace-auth-kicker i{background:#cf9a55;box-shadow:0 0 0 4px rgba(207,154,85,.13)}
@keyframes workspace-auth-spin{to{transform:rotate(1turn)}}
@keyframes workspace-gate-enter{from{opacity:0}to{opacity:1}}
@keyframes workspace-card-enter{from{opacity:0;translate:0 14px;scale:.975}to{opacity:1;translate:0 0;scale:1}}
@keyframes workspace-gate-leave{to{opacity:0}}
@keyframes workspace-card-leave{to{opacity:0;translate:0 8px;scale:.985}}
.workspace-auth-layer.is-leaving{animation:workspace-gate-leave .24s ease-in both;pointer-events:none}.workspace-auth-layer.is-leaving .workspace-auth-card{animation:workspace-card-leave .22s ease-in both}
@media(max-width:520px){.workspace-auth-layer{align-items:end;padding:18px 17px 25px}.workspace-auth-card{width:100%;padding:18px 19px 16px;transform:perspective(900px) rotateX(1deg) translateY(-3px)}.workspace-auth-close{right:26px;top:24px}.workspace-auth-visual{height:58px;margin-bottom:12px}.workspace-auth-copy h2{font-size:19px}.workspace-auth-copy p{font-size:11px}.workspace-auth-origin,.workspace-auth-target{bottom:14px}.workspace-auth-arc{bottom:18px;height:32px}.workspace-auth-range{bottom:7px}}
@media(prefers-reduced-motion:reduce){.workspace-auth-layer,.workspace-auth-card,.workspace-auth-layer.is-leaving,.workspace-auth-layer.is-leaving .workspace-auth-card{animation-duration:.01ms}.workspace-auth-card{transform:none}.workspace-auth-primary,.workspace-auth-primary span{transition:none}.workspace-auth-checking i{animation-duration:1.5s}}
/* Shared MapTool measurement mark: keep the geometry identical in every header. */
.brand-mark{background:#18324f;color:#fff;flex-shrink:0}
.brand-mark svg.maptool-symbol{width:100%;height:100%;display:block}
.brand-mark .maptool-symbol .logo-distance{fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round}
.brand-mark .maptool-symbol .logo-endpoint{fill:#55d7c6;stroke:none}
.brand-mark .maptool-symbol .logo-ruler{fill:none;stroke:#fff;stroke-width:1.8;stroke-opacity:.76;stroke-linecap:round;stroke-linejoin:round}
/* Only the action receives pointer events over the waiting canvas. */
.empty-state .paste-screenshot-button{pointer-events:auto;margin-top:18px;min-width:120px}
.paste-screenshot-button{white-space:nowrap;flex-shrink:0}
.paste-screenshot-button:disabled{opacity:.65;cursor:wait}
