/* sign-in gate */
body.gate aside,body.gate .tabbar,body.gate main>.demo,body.gate .mhead,body.gate #ctxm{display:none!important}
body.gate .app{display:block}body.gate main{max-width:none;padding:0}
.lg{display:grid;grid-template-columns:minmax(300px,420px) 1fr;min-height:100vh}
.lgl{padding:48px 40px;border-right:1px solid var(--line);background:radial-gradient(600px 400px at 0 0,rgba(0,194,180,.18),transparent 60%),rgba(15,19,22,.7);display:flex;flex-direction:column;gap:14px}
.lgl img{height:56px;width:auto;align-self:flex-start}.lgl h1{font-size:40px;letter-spacing:.12em}.lgl p{color:var(--mut);font-size:16px;margin:0}
.lgl ul{margin:10px 0 0;padding:0;list-style:none;display:grid;gap:12px}.lgl li{padding-left:22px;position:relative;font-size:14px;color:#c9d2d6}
.lgl li:before{content:"";position:absolute;left:0;top:8px;width:8px;height:8px;border-radius:50%;background:var(--teal);box-shadow:0 0 10px var(--teal)}
.lgl .lgpw{margin-top:auto;height:44px;opacity:.9}
.lgr2{display:grid;place-items:start center;padding:56px 32px}
.lgcard{width:100%;max-width:760px}.lgcard h2{margin:26px 0 4px;font-size:28px;letter-spacing:-.02em}
.lgp{display:flex;gap:6px;flex-wrap:wrap}
.lgp button{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--s1);color:var(--mut);border-radius:99px;padding:6px 14px 6px 6px;font:600 13px inherit;font-family:inherit;cursor:default}
.lgp button i{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--s3);font-style:normal;font-size:12px}
.lgp button.on{color:var(--tx);border-color:rgba(0,194,180,.5)}.lgp button.on i{background:var(--teal);color:#00110f}
.lgp button.done{color:var(--tx);cursor:pointer}.lgp button.done i{background:rgba(0,194,180,.2);color:var(--teal)}
.lgo{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-top:20px}
.lgc{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;background:linear-gradient(180deg,var(--s2),var(--s1));border:1px solid var(--line);border-radius:18px;padding:16px;color:var(--tx);font-family:inherit;cursor:pointer;transition:.15s}
.lgc:hover{border-color:rgba(0,194,180,.45);transform:translateY(-1px)}.lgc.on{border-color:var(--teal);box-shadow:0 0 0 1px var(--teal) inset}
.lgc b{font-size:15px}.lgc small{color:var(--mut);font-size:12.5px;line-height:1.4}
.lgf{font-size:28px;line-height:1}.lgb{font:800 12px/1 inherit;font-family:inherit;letter-spacing:.08em;color:var(--teal);background:rgba(0,194,180,.12);border-radius:8px;padding:6px 8px;margin-bottom:6px}
.lgi svg{width:30px;height:30px;stroke:var(--teal);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;margin-bottom:6px}
.lgf2{max-width:460px;margin-top:10px}
/* sidebar / mobile context */
#ctx{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.cxp{text-align:left;background:rgba(0,194,180,.08);border:1px solid rgba(0,194,180,.25);border-radius:14px;padding:10px 12px;color:var(--tx);font-family:inherit;cursor:pointer;display:flex;flex-direction:column}
.cxp small{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--teal)}.cxp b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cxp span{font-size:12px;color:var(--mut)}
.cxu{display:flex;align-items:center;gap:10px;padding:8px;border-radius:14px;background:var(--s1);border:1px solid var(--line)}
.cxu>i{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--teal),#2de3d3);color:#00110f;font:800 13px inherit;font-family:inherit;font-style:normal}
.cxu div{min-width:0;flex:1}.cxu b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cxu small{display:block;font-size:11.5px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cxu button{flex:none;border:0;background:none;color:var(--mut);cursor:pointer;padding:6px;border-radius:8px}.cxu button:hover{color:var(--tx);background:var(--s3)}
.cxu svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#ctxm{display:none}
@media(max-width:1100px){#ctx .cxp,#ctx .cxu div{display:none}#ctx .cxu{flex-direction:column;padding:6px}}
@media(max-width:760px){#ctxm{display:flex;gap:8px;margin-bottom:14px}#ctxm .cxp{flex:1;min-width:0}#ctxm .cxu{flex:none}#ctxm .cxu div{display:none}
 .lg{grid-template-columns:1fr}.lgl{padding:calc(var(--sat) + 24px) 16px 20px;border-right:0;border-bottom:1px solid var(--line)}.lgl ul,.lgl .lgpw{display:none}.lgl h1{font-size:30px}.lgl img{height:42px}
 .lgr2{padding:20px 16px 40px}.lgcard h2{font-size:23px}.lgo{grid-template-columns:1fr 1fr}.lgr{grid-template-columns:1fr}.lgp span{display:none}.lgp button{padding:6px}}
/* projects hub */
.cn{opacity:.6;font-weight:700;margin-left:2px}
.ptools select{width:auto}
.ppins{display:flex;gap:10px;overflow-x:auto;margin-bottom:16px;padding-bottom:2px;scrollbar-width:none}
.ppins button{flex:none;display:grid;grid-template-columns:auto 1fr;column-gap:10px;text-align:left;background:var(--s2);border:1px solid var(--line);border-radius:14px;padding:10px 14px;color:var(--tx);font-family:inherit;cursor:pointer}
.ppins button span{grid-row:span 2;color:var(--y);font-size:18px;align-self:center}.ppins b{font-size:13.5px}.ppins small{color:var(--mut);font-size:12px}
.pgh{margin:18px 0 10px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}.pgh span{color:var(--teal);margin-left:6px}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.pc{background:linear-gradient(180deg,var(--s2),var(--s1));border:1px solid var(--line);border-radius:20px;padding:16px;cursor:pointer;transition:.15s;display:flex;flex-direction:column;gap:12px}
.pc:hover{border-color:rgba(0,194,180,.4);transform:translateY(-2px)}
.pch{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pcode{font:700 11.5px/1 inherit;font-family:ui-monospace,Menlo,monospace;color:var(--mut);letter-spacing:.04em}
.pab{font-size:10.5px;font-weight:800;letter-spacing:.08em;color:var(--teal);background:rgba(0,194,180,.12);border-radius:6px;padding:3px 6px}
.pin{margin-left:auto;border:0;background:none;color:#4b555b;font-size:18px;cursor:pointer;padding:0 2px;line-height:1}.pin.on{color:var(--y)}.pin:hover{color:var(--y)}
.pcm{display:flex;gap:12px;align-items:center}.pcm h4{margin:0;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pcm p{margin:2px 0 0;color:var(--mut);font-size:13px}
.pst{display:flex;align-items:center;gap:10px;font-size:12.5px;font-weight:650}.pst span{min-width:92px}
.psb{display:flex;gap:3px;flex:1}.psb i{flex:1;height:6px;border-radius:3px;background:rgba(255,255,255,.08)}.psb i.d{background:rgba(0,194,180,.55)}.psb i.c{background:var(--or);box-shadow:0 0 8px rgba(255,107,53,.6)}
.pnum{display:grid;align-items:start;grid-template-columns:1fr 1fr 1.3fr;gap:8px;background:var(--s1);border:1px solid var(--line);border-radius:14px;padding:10px 12px}
.pnum b{display:block;font-size:17px;font-variant-numeric:tabular-nums}.pnum small{color:var(--mut);font-size:11px}
.tr{color:var(--r)}.to{color:var(--or)}.dr{color:var(--r);font-weight:700}.dy{color:var(--y);font-weight:700}.dg{color:var(--g);font-weight:700}
.pnum b .dr,.pnum b .dy,.pnum b .dg{font-size:14px}
.pteam{display:flex;gap:6px;flex-wrap:wrap}.pteam span{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#c3ccd1;background:var(--s3);border-radius:99px;padding:3px 10px 3px 3px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pteam i{flex:none;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:rgba(255,107,53,.18);color:var(--or);font:800 10px inherit;font-family:inherit;font-style:normal}
.prw{display:grid;grid-template-columns:80px minmax(160px,1.6fr) 1.2fr 64px 80px 80px 110px;gap:12px;align-items:center;padding:12px 8px;border-bottom:1px solid var(--line);cursor:pointer;font-size:13.5px}
.prw:last-child{border:0}.prw:hover{background:rgba(255,255,255,.03)}.prw small{display:block;color:var(--mut);font-size:12px}.prw b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.prw em{font-style:normal;font-size:11.5px}.prs{display:flex;flex-direction:column;gap:5px;font-size:12.5px}
.prh{cursor:default;color:var(--mut);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.prh:hover{background:none}
.pboard{display:grid;grid-template-columns:repeat(5,minmax(200px,1fr));gap:12px;overflow-x:auto;padding-bottom:6px}
.pcol{background:var(--s1);border:1px solid var(--line);border-radius:18px;padding:10px;display:flex;flex-direction:column;gap:8px;min-height:160px}
.pcolh{display:flex;justify-content:space-between;padding:4px 6px}.pcolh span{color:var(--mut);font-weight:700}
.pmini{background:var(--s2);border:1px solid var(--line);border-radius:14px;padding:10px 12px;cursor:pointer;display:flex;flex-direction:column;gap:3px}.pmini:hover{border-color:rgba(0,194,180,.4)}
.pmini b{font-size:14px}.pmini small{color:var(--mut);font-size:12px}
/* project workspace */
.phd{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.phl{display:flex;gap:18px;align-items:center;min-width:0}.phr{display:flex;gap:8px;align-items:center}.phr select{width:auto}
.pstep{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.pstep button{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--s1);color:var(--mut);border-radius:12px;padding:10px;font:600 13px inherit;font-family:inherit;cursor:pointer;min-width:0}
.pstep button[disabled]{cursor:default}.pstep span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pstep i{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--s3);font-style:normal;font-size:12px}
.pstep .d{color:var(--tx)}.pstep .d i{background:rgba(0,194,180,.2);color:var(--teal)}.pstep .c{color:var(--tx);border-color:rgba(255,107,53,.5)}.pstep .c i{background:var(--or);color:#2a0d00}
.ptiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:14px}
.ptile{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;background:linear-gradient(180deg,var(--s2),var(--s1));border:1px solid var(--line);border-radius:18px;padding:14px;color:var(--tx);font-family:inherit;cursor:pointer;transition:.15s}
.ptile:hover{border-color:rgba(0,194,180,.45);transform:translateY(-1px)}
.ptile svg{width:24px;height:24px;stroke:var(--teal);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;margin-bottom:6px}
.ptile b{font-size:24px;line-height:1.1;font-variant-numeric:tabular-nums}.ptile span{font-weight:650;font-size:13.5px}.ptile small{color:var(--mut);font-size:12px}
.pteam2{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}.pteam2 small{display:block;color:var(--mut);font-size:11px;letter-spacing:.06em;text-transform:uppercase}.pteam2 b{font-size:14px}
@media(max-width:760px){.prw{grid-template-columns:1fr auto auto;row-gap:4px}.prw>:nth-child(1),.prw>:nth-child(3),.prw>:nth-child(5),.prw>:nth-child(6){display:none}.prh{display:none}
 .pgrid{grid-template-columns:1fr}.pstep{grid-template-columns:repeat(5,1fr)}.pstep span{display:none}.pstep button{justify-content:center}.ptiles{grid-template-columns:1fr 1fr}.phl{flex-direction:column;align-items:flex-start}.ptools select{flex:1}}
/* GEOSCANR brand */
.brand{gap:10px;padding:4px 8px 22px}.brand .bm{display:none;height:40px;width:auto;flex:none}.brand .bw{display:block;height:auto;width:190px;max-width:100%}.brand>div{min-width:0}.brand small{margin-top:6px;letter-spacing:.08em;text-transform:uppercase;font-size:9.5px}
.lgl .lgw{height:auto;width:100%;max-width:320px;margin:6px 0 10px}
@media(max-width:1100px){.brand>div{display:none}.brand .bm{display:block}}
@media(max-width:760px){.lgl .lgw{max-width:240px;margin:0}}
