:root{--ink:#0F1B2D;--muted:#5B6575;--bg:#EEF3FC;--card:#fff;--border:#E6E9F0;--border2:#D5DAE3;--track:#E8ECF2;--grid:#E8ECF2;--hover:#F6F7FB;--primary:#2563EB;--primary-h:#1D4ED8;--tint:#EAF1FE;--focus:#0F1B2D;--glass:rgba(255,255,255,.58);--glass-s:rgba(255,255,255,.88);--glass-b:rgba(255,255,255,.75);--shadow:0 8px 24px rgba(15,27,45,.1);--map-bg:#E4EDFA;--land:#F8FAFD;--land-s:#B7C3D6;--grat:#CBD8EA;--ok-bg:#DCFCE7;--ok:#166534;--wn-bg:#FEF3C7;--wn:#92400E;--bd-bg:#FEE2E2;--bd:#991B1B;--gr-bg:#E8ECF2;--gr:#475569;--pos:#166534;--neg:#991B1B;--blue:#1D4ED8;--blob1:rgba(96,165,250,.45);--blob2:rgba(129,140,248,.4);--blob3:rgba(45,212,191,.35)}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased;background:radial-gradient(circle at 8% 10%,var(--blob1),transparent 40%),radial-gradient(circle at 92% 18%,var(--blob2),transparent 38%),radial-gradient(circle at 60% 100%,var(--blob3),transparent 42%),var(--bg);background-attachment:fixed}button{font-family:inherit;cursor:pointer}h1,h3{margin:0}h3{font-size:16px;font-weight:600}.glass,.head,.card.kpi{-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%)}.app{display:flex;min-height:100vh}.main{flex:1;padding:16px 32px 48px;min-width:0}.head{position:sticky;top:12px;z-index:15;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;padding:12px 18px;flex-wrap:wrap;background:var(--glass);border:1px solid var(--glass-b);border-radius:16px;box-shadow:var(--shadow)}.head h1{font-size:24px;letter-spacing:-.02em}.tools{display:flex;gap:10px;align-items:center}.av{width:40px;height:40px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px}.ic{border:0;background:none;color:var(--muted);border-radius:8px;padding:6px;display:flex}.ic:hover{background:var(--hover)}.ic.round{width:40px;height:40px;border:1px solid var(--border2);background:var(--card);border-radius:50%;align-items:center;justify-content:center;position:relative;color:var(--ink)}.dot{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;border-radius:9px;background:#dc2626;color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 4px}.bellwrap{position:relative}.card.bellpanel{position:absolute;right:0;top:50px;width:340px;z-index:30;background:var(--glass-s);border-color:var(--glass-b);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.row.new{font-weight:600}.l{font-size:13px;color:var(--muted)}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:22px;box-shadow:0 1px 2px #0f1b2d0a,0 4px 16px #0f1b2d0d}.card.kpi{background:var(--glass);border-color:var(--glass-b);box-shadow:var(--shadow)}.ch{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}.acts{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.acts.end{justify-content:flex-end;margin-top:16px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:16px}.kpi{padding:18px 20px;position:relative}.kic{position:absolute;top:16px;right:16px;width:34px;height:34px;border-radius:10px;background:var(--tint);color:var(--primary);display:flex;align-items:center;justify-content:center}.kic.good{background:var(--ok-bg);color:var(--ok)}.kic.warn{background:var(--wn-bg);color:var(--wn)}.kic.bad{background:var(--bd-bg);color:var(--bd)}.kic.blue{background:var(--tint);color:var(--blue)}.k{font-size:28px;font-weight:700;letter-spacing:-.02em;margin:6px 0 4px}.k.good,.pos{color:var(--pos)}.k.warn{color:var(--wn)}.k.bad,.neg{color:var(--neg)}.k.blue{color:var(--blue)}.g2{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;margin-bottom:16px;align-items:start}.stack{display:flex;flex-direction:column;gap:16px}.b{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.ok{background:var(--ok-bg);color:var(--ok)}.wn{background:var(--wn-bg);color:var(--wn)}.bd{background:var(--bd-bg);color:var(--bd)}.gr{background:var(--gr-bg);color:var(--gr)}.bar{height:8px;background:var(--track);border-radius:99px;overflow:hidden;min-width:80px}.bar i{display:block;height:100%;border-radius:99px;background:var(--primary)}.bar i.bd{background:#dc2626}.bar i.ok{background:#16a34a}.pb{background:var(--primary);color:#fff;border:0;border-radius:10px;padding:10px 16px;font-weight:600;font-size:14px;min-height:40px}.sc{background:var(--card);color:var(--ink);border:1px solid var(--border2);border-radius:10px;padding:10px 16px;font-weight:600;font-size:14px;min-height:40px}.sc:hover{background:var(--hover)}.sm{min-height:34px;padding:6px 12px;font-size:13px}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.lnk{border:0;background:none;padding:0;text-align:left;color:inherit;font:inherit}.lnk:hover b{text-decoration:underline}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.chip{border:1px solid var(--border2);background:var(--glass);border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600;color:var(--ink);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.chip.on{background:var(--primary);border-color:var(--primary);color:#fff}.tw{overflow-x:auto}.tbl{width:100%;border-collapse:collapse;font-size:14px}.tbl th{text-align:left;font-size:13px;font-weight:500;color:var(--muted);padding:0 12px 10px 0}.tbl td{padding:12px 12px 12px 0;border-top:1px solid var(--border);vertical-align:middle}.void{text-decoration:line-through;color:var(--muted)}.row{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--border);font-size:14px}.row>div:first-child{flex:1}.hrow{padding:10px 8px;margin:0 -8px;border-radius:10px}.hrow:hover{background:var(--hover)}.sm-t{font-size:13px}.inp{display:block;width:100%;margin-top:4px;padding:10px 12px;border:1px solid var(--border2);border-radius:10px;font:inherit;font-size:14px;color:var(--ink);background:var(--card)}.selbox{min-width:240px;width:auto;display:inline-block;margin-left:8px}.fld{display:block;margin-bottom:12px;font-size:13px;color:var(--muted)}.fld.chk{display:flex;gap:8px;align-items:center;color:var(--ink);font-size:14px}.err{display:block;color:var(--neg);font-size:12px;margin-top:4px}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b122080;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.card.modal{width:440px;max-width:100%;max-height:90vh;overflow:auto;background:var(--glass-s);border-color:var(--glass-b);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--ink);color:var(--card);padding:12px 20px;border-radius:12px;font-size:14px;font-weight:600;z-index:60;box-shadow:var(--shadow)}.tipwrap{position:relative}.tipcard,.mp .tip{background:var(--glass-s);border:1px solid var(--glass-b);color:var(--ink);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.tipcard{position:absolute;z-index:40;width:220px;border-radius:12px;padding:12px 14px;font-size:13px;pointer-events:none}.tr{display:flex;justify-content:space-between;gap:12px;margin-top:4px}.legend{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:8px;font-size:13px}.legend span{display:inline-flex;align-items:center;gap:6px}svg text{fill:var(--muted)}svg text[font-weight="700"]{fill:var(--ink)}svg line[stroke="#E8ECF2"]{stroke:var(--grid)}svg line[stroke="#C3CCDA"]{stroke:var(--border2)}.nums summary{cursor:pointer;font-size:13px;font-weight:600;text-decoration:underline;text-decoration-color:var(--primary);text-underline-offset:4px;margin-top:8px}.nums .tbl{margin-top:10px}.donut{width:170px;height:170px;display:block;margin:0 auto 14px}.lg{display:flex;align-items:center;gap:8px;font-size:13px;padding:6px 8px;border-radius:8px}.lg.hot{background:var(--hover)}.lg i{width:10px;height:10px;border-radius:3px}.lg span{flex:1}.lg .pc{flex:none;width:34px;text-align:right}.mapwrap{display:grid;grid-template-columns:380px 1fr;gap:28px;align-items:start}.map{position:relative;border-radius:14px;padding:6px 0;background:var(--map-bg)}.map svg{width:100%;display:block}.map path{fill:var(--land);stroke:var(--land-s);stroke-width:1;stroke-linejoin:round}.grat{stroke:var(--grat);stroke-width:.6;stroke-dasharray:2 4}.mp{position:absolute;transform:translate(-50%,-50%);width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:none;border:0;padding:0}.mp .d{width:12px;height:12px;border-radius:50%;background:#dc2626;border:2px solid #fff;box-shadow:0 0 0 6px #dc262638;transition:all .15s}.mp:hover .d,.mp:focus-visible .d,.mp.sel .d{background:#991b1b;transform:scale(1.3);box-shadow:0 0 0 10px #dc262652}.mp .pl{position:absolute;top:50%;transform:translateY(-50%);font-size:11px;font-weight:600;background:var(--card);color:var(--ink);border-radius:6px;padding:2px 6px;white-space:nowrap;box-shadow:0 1px 4px #0f1b2d33}.pl.r{left:20px}.pl.l{right:20px}.mp .tip{display:none;position:absolute;left:26px;top:-30px;width:250px;border-radius:12px;padding:12px 14px;z-index:5;font-size:13px;text-align:left}.mp:hover,.mp:focus-visible{z-index:6}.mp:hover .tip,.mp:focus-visible .tip{display:block}.mp.r .tip{left:auto;right:26px}.tip .t1{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.tip .tr,.tip .l{display:flex;justify-content:space-between;gap:12px}.sel-panel{margin-top:16px;padding:14px;background:var(--hover);border-radius:12px}.ring{width:140px;height:140px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none}.ring>div{width:104px;height:104px;border-radius:50%;background:var(--card);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:28px;font-weight:700}.hero{display:flex;gap:32px;align-items:center}.hero>div:last-child{flex:1}.folders{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.folders div{border:1px solid var(--border);border-radius:12px;padding:14px;font-weight:600;font-size:14px}.track{height:18px;background:var(--track);border-radius:6px;position:relative;flex:1}.track i{position:absolute;top:0;height:18px;border-radius:6px}.gantt{display:flex;align-items:center;gap:12px;margin-bottom:12px;font-size:13px}.gantt span{width:90px}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sigs{display:flex;gap:48px;margin-top:40px}.sigs div{flex:1;text-align:center;font-size:13px;color:var(--muted)}.sigs i{display:block;border-bottom:1px solid var(--ink);height:32px;margin-bottom:6px}.pb:disabled{opacity:.5;cursor:not-allowed}.inp:disabled{opacity:.6}@media (max-width:1000px){.g2,.mapwrap{grid-template-columns:1fr}}@media (max-width:700px){.main{padding:12px}.rail{width:56px}.ri{width:40px;height:40px}.hero{flex-direction:column;align-items:flex-start}.card.bellpanel{width:290px}.head{top:8px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}@media print{body{background:#fff!important;color:#000}body *{visibility:hidden}.report,.report *{visibility:visible}.report{position:absolute;left:0;top:0;width:100%}.noprint{display:none!important}.card{box-shadow:none;background:#fff!important;color:#000}svg text,.l{fill:#333;color:#333}}.rail{width:84px;flex:none;position:sticky;top:0;height:100vh;z-index:20}.railbg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;filter:drop-shadow(6px 0 16px rgba(31,90,166,.35))}.railin{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.logo{position:absolute;top:16px;left:10px;width:38px;height:38px;border-radius:12px;background:#fff;color:var(--primary);font-weight:800;font-size:19px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0f1b2d33}.grp{display:flex;flex-direction:column;gap:8px}.ri{position:relative;width:46px;height:46px;border-radius:14px;border:0;background:none;color:#ffffffd9;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s,transform .15s}.ri:hover{background:#ffffff38;color:#fff}.ri.on,.ri.on:hover{background:#fff;color:var(--primary);box-shadow:0 6px 16px #0f1b2d47}.ri.bottom{position:absolute;left:8px;bottom:16px;width:40px;height:40px}.ri:after{content:attr(data-tip);position:absolute;left:58px;top:50%;transform:translateY(-50%);background:#0f1b2d;color:#fff;font-size:12px;font-weight:600;padding:6px 10px;border-radius:8px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s;box-shadow:0 4px 14px #00000059}.ri:hover:after,.ri:focus-visible:after{opacity:1}.ri:focus-visible{outline:2px solid #fff;outline-offset:2px}.cnt{position:absolute;top:-4px;right:-4px;min-width:19px;height:19px;border-radius:10px;background:#22c55e;color:#052e16;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 5px;border:2px solid #3560E8}.tabs{display:flex;gap:6px;margin:-6px 0 18px;flex-wrap:wrap}.tab{border:1px solid var(--glass-b);background:var(--glass);color:var(--ink);border-radius:999px;padding:8px 18px;font-size:14px;font-weight:600;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.tab:hover{background:var(--hover)}.tab.on{background:var(--primary);border-color:var(--primary);color:#fff}@media (max-height:760px){.ri{width:40px;height:40px}.grp{gap:5px}}.split{display:grid;grid-template-columns:320px 1fr;gap:16px;align-items:start}.g2b{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:16px}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:14px}.facts b{font-size:18px}.kan{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;align-items:start}.kcard{padding:12px;border:1px solid var(--border);border-radius:12px;margin-bottom:10px;background:var(--card)}.banner{margin-bottom:16px;border-color:var(--primary)}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--primary)}.pcard{text-align:left;color:inherit;font:inherit;width:100%;cursor:pointer;transition:transform .2s,box-shadow .2s,border-color .2s}.pcard:hover{transform:translate(3px)}.pcard.on{border-color:var(--primary);box-shadow:0 0 0 2px #1f5aa647}.card.bellpanel.menu{width:260px}.grp{position:relative;--sz:46px;--gap:8px;gap:var(--gap)}.slide{position:absolute;left:0;top:0;width:var(--sz);height:var(--sz);border-radius:14px;background:#fff;box-shadow:0 8px 18px #0f1b2d4d;pointer-events:none;transform:translateY(calc(var(--i) * (var(--sz) + var(--gap))));transition:transform .5s cubic-bezier(.34,1.45,.5,1)}.grp .ri{z-index:1;animation:pop .5s cubic-bezier(.34,1.45,.5,1) both;animation-delay:calc(var(--n) * 55ms)}.grp .ri.on,.grp .ri.on:hover{background:none;box-shadow:none;color:var(--primary)}.ri.bottom{animation:none}@media (max-height:760px){.grp{--sz:40px;--gap:5px}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}@keyframes fadeIn{0%{opacity:0}}@keyframes growX{0%{transform:scaleX(0)}}@keyframes growY{0%{transform:scaleY(0)}}@keyframes sweep{0%{stroke-dasharray:0 400}}@keyframes pop{0%{opacity:0;transform:scale(.6)}}@keyframes pulse{0%{box-shadow:0 0 #dc262673}to{box-shadow:0 0 0 14px #dc262600}}@keyframes swing{0%{transform:rotate(-5deg)}to{transform:rotate(5deg)}}@keyframes pend{0%{transform:rotate(-7deg)}to{transform:rotate(7deg)}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes buildUp{0%{transform:scaleY(0);opacity:0}}@keyframes drawLine{0%{stroke-dashoffset:600}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(7px)}60%{transform:translate(-5px)}80%{transform:translate(3px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes drift{to{background-position:64px 64px}}.page>*{animation:rise .55s cubic-bezier(.2,.8,.2,1) both}.page>*:nth-child(2){animation-delay:.05s}.page>*:nth-child(3){animation-delay:.1s}.page>*:nth-child(4){animation-delay:.15s}.page>*:nth-child(5){animation-delay:.2s}.page>*:nth-child(n+6){animation-delay:.25s}.page>.kpis,.page>.scrim{animation:none}.kpi{animation:rise .6s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i) * 70ms);transition:transform .25s,box-shadow .25s}.card.kpi:hover{transform:translateY(-4px);box-shadow:0 14px 30px #0f1b2d29}.bar i{transform-origin:left;animation:growX .9s cubic-bezier(.2,.8,.2,1) both}.tipwrap svg{animation:fadeIn .7s both}.tipwrap svg rect[rx="6"]{transform-box:fill-box;transform-origin:50% 100%;animation:growY .9s cubic-bezier(.2,.8,.2,1) both}.donut circle{animation:sweep 1.1s cubic-bezier(.2,.8,.2,1) both}.mp .d{animation:pulse 2.4s ease-out infinite}.mp:hover .d,.mp.sel .d{animation:none}.toast{animation:rise .35s cubic-bezier(.2,.8,.2,1) both}.scrim{animation:fadeIn .2s both}.card.modal{animation:rise .35s cubic-bezier(.2,.8,.2,1) both}.card.bellpanel{animation:rise .25s both}.row,.tbl tbody tr{transition:background .15s}.tbl tbody tr:hover{background:var(--hover)}.pb,.sc,.chip,.tab{transition:background .15s,transform .15s,box-shadow .15s}.pb:active,.sc:active{transform:scale(.97)}.sg{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.sg-art{background:#0e2a47;color:#fff;padding:44px 56px;display:flex;flex-direction:column;justify-content:space-between;gap:32px}.sg-brand{display:flex;align-items:center;gap:10px;font-weight:600}.sg-brand span{width:30px;height:30px;border-radius:4px;background:#fff;color:#0e2a47;display:flex;align-items:center;justify-content:center;font-weight:700}.sheet-eyebrow{font:600 12px IBM Plex Sans,sans-serif;letter-spacing:.08em;text-transform:uppercase;opacity:.7;margin-bottom:12px}.sg-copy h2{margin:0 0 14px;font:600 34px/1.15 IBM Plex Sans,sans-serif;letter-spacing:-.01em;max-width:430px}.sg-copy p{margin:0;max-width:420px;opacity:.8;line-height:1.6}.sg-draw{width:100%;max-width:520px;height:auto;opacity:.5}.sg-draw *{fill:none;stroke:#fff;stroke-width:1.2}.sg-form{position:relative;display:flex;align-items:center;justify-content:center;padding:32px}.sg-theme{position:absolute;top:20px;right:20px}.sg-card{width:100%;max-width:440px;animation:rise .7s .1s cubic-bezier(.2,.8,.2,1) both}.sg-card h1{font-size:30px;letter-spacing:-.02em;margin-bottom:4px}.sg-card form{margin-top:20px}.sg-card.shake{animation:shake .45s}.pwrap{position:relative;display:block}.pwrap .inp{padding-right:44px}.eye{position:absolute;right:6px;top:50%;transform:translateY(-35%);border:0;background:none;color:var(--muted);padding:6px;border-radius:8px}.eye:hover{background:var(--hover)}.inp{transition:border-color .15s,box-shadow .15s}.inp:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1f5aa633;outline:none}.pb.shine{position:relative;overflow:hidden;min-height:46px}.pb.shine:after{content:"";position:absolute;top:0;bottom:0;width:60px;left:-80px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transform:skew(-20deg)}.pb.shine:hover:after{left:120%;transition:left .7s}.spin{display:inline-block;width:18px;height:18px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.sg-div{display:flex;align-items:center;gap:10px;margin:22px 0 12px;font-size:12px;color:var(--muted)}.sg-div:before,.sg-div:after{content:"";flex:1;height:1px;background:var(--border)}.demo{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dchip{display:flex;gap:10px;align-items:flex-start;text-align:left;padding:10px;border:1px solid var(--border2);border-radius:12px;background:var(--card);color:var(--ink);font-size:12px;transition:transform .15s,border-color .15s,box-shadow .15s}.dchip:hover{transform:translateY(-2px);border-color:var(--primary);box-shadow:0 6px 16px #1f5aa629}.dchip b{display:block;font-size:13px}.mono{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--muted);word-break:break-all}.di{width:28px;height:28px;border-radius:9px;background:var(--tint);color:var(--primary);display:flex;align-items:center;justify-content:center;flex:none}@media (max-width:900px){.sg{grid-template-columns:1fr}.sg-art{display:none}.split{grid-template-columns:1fr}}@media (max-width:480px){.demo{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}:root{--bg:#F4F6FA;--grid-line:rgba(31,90,166,.1)}body{background:var(--bg);background-attachment:scroll;font-variant-numeric:tabular-nums}h1,h3,.k,.crumb b{font-family:Manrope,Inter,system-ui,sans-serif}.card{box-shadow:none;border-radius:12px}.main{padding:0}.topbar{position:sticky;top:0;z-index:15;height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:var(--card);border-bottom:1px solid var(--border)}.crumb{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--muted)}.crumb b{color:var(--ink);font-weight:700}.topbar .ic.round{width:36px;height:36px}.topbar .av{width:36px;height:36px;font-size:13px;border:0}.topbar .card.bellpanel{top:46px}.page{padding:8px 32px 56px}.pagehead{position:relative;padding:20px 0 22px;overflow:hidden}.pagehead:after{content:"";position:absolute;right:0;top:0;bottom:0;width:42%;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:22px 22px;-webkit-mask-image:linear-gradient(90deg,transparent,#000);mask-image:linear-gradient(90deg,transparent,#000);pointer-events:none}.pagehead h1{font-size:28px;letter-spacing:-.03em;margin:0 0 4px;position:relative}.pagehead p{margin:0;position:relative}.kpis{gap:1px;background:var(--border);border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:16px}.card.kpi{border:0;border-radius:0;box-shadow:none;background:var(--card);-webkit-backdrop-filter:none;backdrop-filter:none}.card.kpi:hover{transform:none;box-shadow:none;background:var(--hover)}.kic{border-radius:8px;width:32px;height:32px}.bar{position:relative;height:10px}.bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(10% - 2px),var(--card) calc(10% - 2px),var(--card) 10%);pointer-events:none}.b:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:6px;vertical-align:1px}.tbl th{font-size:11.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:36px 16px}.empty svg{width:220px;height:auto;margin-bottom:12px}.empty svg path{fill:none;stroke:var(--muted);stroke-width:1.8;stroke-dasharray:6 6;stroke-linecap:round;animation:dash 8s linear infinite}.empty b{font-family:Manrope,Inter,sans-serif;font-size:18px}.empty p{max-width:380px;margin:6px 0 16px;line-height:1.5}@keyframes dash{to{stroke-dashoffset:-96}}.mlist{margin-top:16px;border-top:1px solid var(--border)}.mrow{border-bottom:1px solid var(--border)}.mrow summary{display:grid;grid-template-columns:1.1fr .9fr .9fr 1.4fr .6fr;gap:12px;align-items:center;padding:12px 0;cursor:pointer;list-style:none;font-size:14px}.mrow summary::-webkit-details-marker{display:none}.mrow summary:hover{background:var(--hover)}.mrow[open] summary{font-weight:600}.wkc{padding:12px 14px;margin:0 0 10px;border:1px solid var(--border);border-radius:10px;background:var(--bg);font-size:14px}.wkc p{margin:6px 0 0}@media (max-width:900px){.mrow summary{grid-template-columns:1fr 1fr}}@media (max-width:700px){.topbar{padding:0 16px}.page{padding:8px 16px 40px}}.gate{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}.gate-card{width:100%;max-width:440px}.auth-surface{--ink:#14181F;--mut:#5E6673;--line:#DDE1E7;--soft:#F4F5F7;--blue:#1F5AA6;--blue-d:#194B8C;--navy:#0E2A47;background:#fff;color:var(--ink);min-height:100vh;font-family:IBM Plex Sans,system-ui,sans-serif;font-size:16px;line-height:1.6}.auth-surface *,.auth-surface *:before,.auth-surface *:after{box-sizing:border-box}.auth-surface h1,.auth-surface h2,.auth-surface h3,.auth-surface h4{font-family:Archivo,IBM Plex Sans,sans-serif;margin:0;color:var(--ink);line-height:1.08;letter-spacing:-.02em}.auth-surface h1{font-size:clamp(36px,5vw,64px);font-weight:800}.auth-surface h2{font-size:clamp(26px,3.2vw,38px);font-weight:700}.auth-surface h3{font-size:19px;font-weight:700;letter-spacing:-.01em}.auth-surface h4{font:600 12px IBM Plex Sans,sans-serif;letter-spacing:.08em;text-transform:uppercase}.auth-surface p{margin:0}.auth-surface a:focus-visible,.auth-surface button:focus-visible,.auth-surface input:focus-visible,.auth-surface select:focus-visible,.auth-surface textarea:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.pwrap{max-width:1160px;margin:0 auto;padding:0 28px}.plabel{font:600 12px IBM Plex Sans,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin-bottom:10px}.plabel.light{color:#ffffffb3}.plead{font-size:18px;color:var(--mut);max-width:580px;margin-top:16px}.flip{display:inline-flex;transform:rotate(180deg)}.pbtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 20px;background:var(--blue);color:#fff;border:1px solid var(--blue);font:600 15px IBM Plex Sans,sans-serif;text-decoration:none;cursor:pointer;border-radius:4px;transition:background .15s}.pbtn:hover{background:var(--blue-d);border-color:var(--blue-d)}.pbtn.ghost{background:#fff;color:var(--ink);border-color:#b9c0ca}.pbtn.ghost:hover{background:var(--soft);border-color:var(--ink)}.pbtn.lg{padding:13px 24px;font-size:16px}.pbtn.sm{padding:7px 14px;font-size:14px}.pbtn:disabled{opacity:.55;cursor:not-allowed}.plink{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--blue);text-decoration:none}.plink:hover{text-decoration:underline}.plogo{display:flex;align-items:center;gap:10px;font:800 17px Archivo,sans-serif;letter-spacing:-.01em;color:var(--ink);text-decoration:none}.plogo span{width:30px;height:30px;background:var(--navy);color:#fff;display:grid;place-items:center;border-radius:4px;font-weight:800}.plogo.light{color:#fff}.plogo.light span{background:#fff;color:var(--navy)}.pf{display:block;margin-bottom:16px}.pf>span:first-child{display:block;font:500 14px IBM Plex Sans,sans-serif;margin-bottom:5px}.pf input,.pf select,.pf textarea,.ppw input{width:100%;padding:11px 12px;border:1px solid #B9C0CA;background:#fff;font:inherit;color:var(--ink);border-radius:4px}.pf input:focus,.pf select:focus,.pf textarea:focus,.ppw input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #1f5aa62e}.pf em{display:block;font-size:13px;color:var(--mut);margin-top:4px;font-style:normal}.perr{color:#b42318;font-size:14px;margin-top:5px}.plogin{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.plogin-art{padding:44px 56px;background:var(--soft);border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;gap:40px}.plogin-art h1{font-size:clamp(32px,4vw,48px)}.phases{margin-top:32px;display:grid;gap:12px;max-width:440px}.phase{display:grid;grid-template-columns:22px 100px 1fr 40px;gap:12px;align-items:center;font-size:14px}.pdot{width:20px;height:20px;border:2px solid #8A93A0;border-radius:50%;display:grid;place-items:center}.pdot.done{background:var(--blue);border-color:var(--blue);color:#fff}.pbar{height:6px;background:var(--line);border-radius:3px}.pbar i{display:block;height:100%;background:var(--blue);border-radius:3px}.plogin-form{display:grid;place-items:center;padding:40px}.plogin .pcard{width:100%;max-width:420px;background:#fff;border:1px solid var(--line);padding:32px;border-radius:6px}.ppw{position:relative;display:block}.ppw input{padding-right:44px}.ppw button{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:none;padding:6px;cursor:pointer;color:var(--mut)}.pdemo{margin-top:18px;padding:10px 12px;background:var(--soft);border-radius:4px;font-size:13px}.pdemo span{display:block;color:var(--mut);margin-bottom:3px}.pdemo .plink{border:0;background:none;font:500 13px IBM Plex Mono,monospace;cursor:pointer;padding:0;text-align:left}.plinks2{display:flex;justify-content:space-between;gap:12px;margin-top:18px;font-size:14px;color:var(--mut);flex-wrap:wrap}.plinks2 a{color:var(--blue);font-weight:600}.portal{min-height:100vh}.ptop{position:sticky;top:0;z-index:15;display:flex;align-items:center;gap:24px;height:56px;padding:0 28px;background:var(--card);border-bottom:1px solid var(--border)}.plogo2{display:flex;align-items:center;gap:10px;font:800 16px Archivo,sans-serif;color:var(--ink);text-decoration:none}.plogo2 span{width:28px;height:28px;background:var(--primary);color:#fff;display:grid;place-items:center;border-radius:4px}.ptabs{display:flex;gap:2px;flex:1}.ptab{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:0;background:none;color:var(--muted);font-weight:500;font-size:14px;border-radius:6px}.ptab:hover{background:var(--hover);color:var(--ink)}.ptab.on{background:var(--tint);color:var(--primary);font-weight:600}.cnt2{min-width:18px;height:18px;border-radius:9px;background:#c2410c;color:#fff;font-size:11px;display:grid;place-items:center;padding:0 5px}.pmain{max-width:1160px;margin:0 auto;padding:4px 28px 56px}.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin-bottom:8px}.pth{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;border:1px solid var(--border)}.pth img{width:100%;height:100%;object-fit:cover;display:block}.pdel{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:0;background:#0f1b2dbf;color:#fff;display:grid;place-items:center;padding:0}.padd{aspect-ratio:1;border:2px dashed var(--border2);border-radius:8px;background:none;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-size:12px}.padd:hover{border-color:var(--primary);color:var(--primary)}.sg-links{display:flex;justify-content:space-between;margin-top:14px;font-size:13px}.sg-links a{color:var(--primary);font-weight:600;text-decoration:none}.thumbs{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.thumbs img{width:72px;height:54px;object-fit:cover;border-radius:6px;border:1px solid var(--border)}.pnote{color:var(--mut);font-size:14px;margin-top:12px}.ppage{padding:56px 0 40px}.ppage h1{max-width:860px;font-size:clamp(32px,4.4vw,52px)}@media (max-width:980px){.plogin{grid-template-columns:1fr}.plogin-art{display:none}}@media (max-width:760px){.ptop{padding:0 12px;gap:8px;flex-wrap:wrap;height:auto;min-height:56px}.ptabs{flex-wrap:wrap}.pmain{padding:4px 16px 40px}.pwrap{padding:0 16px}.plogin-form{padding:24px}}@media (prefers-reduced-motion:reduce){.auth-surface *{animation:none!important;transition:none!important}}:root{--ink:#14181F;--muted:#5E6673;--bg:#F4F5F7;--card:#fff;--border:#DDE1E7;--border2:#C5CBD3;--track:#E6E9EE;--grid:#E6E9EE;--hover:#F1F3F6;--primary:#1F5AA6;--primary-h:#194B8C;--tint:#E8EFF8;--focus:#14181F;--blue:#1F5AA6;--map-bg:#E9EDF3;--land:#FAFBFC;--land-s:#B9C1CD;--grat:#D5DBE4}body{font-family:IBM Plex Sans,system-ui,sans-serif;background:var(--bg);font-size:14.5px}h1,h3,.k,.crumb b,.plogo2{font-family:inherit;font-weight:600;letter-spacing:-.005em}.card{border-radius:8px;box-shadow:none;padding:20px}.card.kpi{padding:16px 18px}.kic{display:none}.kpis{border-radius:8px}.k{font-size:26px;font-weight:600;letter-spacing:-.01em;margin:4px 0 2px}.kpi .l:first-child{font-weight:500}.b{border-radius:4px;padding:2px 8px;font-weight:600;font-size:12px}.b:before{display:none}.pb,.sc{border-radius:6px;min-height:36px;padding:7px 14px;font-weight:600;font-size:14px}.pb{background:var(--primary);color:#fff}.pb:hover{background:var(--primary-h)}.sm{min-height:30px;padding:4px 10px;font-size:13px}.pb.shine:after{display:none}.inp{border-radius:6px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.chip{border-radius:0;border:1px solid var(--border2);margin:0;background:var(--card);padding:6px 14px;font-weight:500;-webkit-backdrop-filter:none;backdrop-filter:none}.chip:first-child{border-radius:6px 0 0 6px}.chip:last-child{border-radius:0 6px 6px 0}.chip.on{background:var(--ink);border-color:var(--ink);color:var(--card)}.pagehead{padding:16px 0 14px;overflow:visible}.pagehead:after{display:none}.pagehead h1{font-size:22px;font-weight:600;letter-spacing:-.01em;margin:0}.pagehead p{margin-top:2px}.topbar{height:52px}.page{padding-top:0}.tbl th{text-transform:none;letter-spacing:0;font-size:12.5px;font-weight:500;color:var(--muted)}.tbl td{padding:9px 12px 9px 0}.bar{height:6px;border-radius:3px}.bar:after{display:none}.bar i{border-radius:3px}.rail .logo{border-radius:6px}.ri{border-radius:8px}.slide{border-radius:8px;box-shadow:none;transition:transform .22s ease}.cnt{background:#c2410c;color:#fff;border-color:#0e2a47}.page>*,.kpi,.bar i,.tipwrap svg,.donut circle,.mp .d,.toast,.card.bellpanel{animation:none!important}.grp .ri{animation:none}.row,.tbl tbody tr{transition:none}.pb:active,.sc:active{transform:none}.card.kpi:hover{background:var(--card)}.scrim,.card.modal{animation:fadeIn .15s both!important}.mapwrap{gap:24px}.map{border-radius:8px}.pcell img,.pth,.thumbs img{border-radius:4px}.empty svg path{animation:none;stroke-dasharray:none;stroke:var(--muted)}.sg-card.shake{animation:shake .35s}.workforce .wf-filters,.wf-filters{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin:12px 0}.wf-filters label{display:grid;gap:5px;min-width:150px;flex:1}.wf-buttons{display:flex;gap:6px;flex-wrap:wrap}.wf-form{padding:16px;margin-top:16px;border:1px solid var(--line,#ccd3dc);display:grid;gap:12px;max-width:600px}.wf-form label{display:grid;gap:6px}button:disabled{opacity:.45;cursor:not-allowed}.workforce details{margin-top:16px}.workforce small{display:block}@media (max-width:650px){.wf-filters{display:grid;grid-template-columns:1fr}.wf-buttons button{min-height:40px}.wf-form{max-width:100%}}html,body,#root{min-width:0;width:100%;min-height:100%}body{overflow-wrap:anywhere}.app,.main,.page,.portal,.pmain,.card,.stack,.g2,.g2b,.split,.mapwrap,.kpis,.facts,.wf-filters,.acts,.ch,.table-region{min-width:0;max-width:100%}.g2>*,.g2b>*,.split>*,.mapwrap>*,.kpis>*,.facts>*{min-width:0}button,a,input,select,textarea{touch-action:manipulation}button,.pb,.sc,.sm,.ic,.ic.round,.topbar .ic.round,.av,.topbar .av,.chip,.ptab,.eye,.ppw button,.pdel,.mp,summary{min-height:44px;min-width:44px}button,.pb,.sc,.chip,.ptab{white-space:normal;overflow-wrap:anywhere}.pb,.sc{display:inline-flex;align-items:center;justify-content:center;text-align:center}a.pb,a.sc,.plink,.sg-links a,.plinks2 a{min-height:44px;align-items:center;display:inline-flex}input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea,.inp{font-size:16px;min-width:0;max-width:100%;min-height:44px}input[type=checkbox],input[type=radio]{flex:none;min-width:24px;min-height:24px;width:24px;height:24px;accent-color:var(--primary)}.chk,.wf-form label:has(input[type=checkbox]){min-height:44px;align-items:center;gap:10px}.b{white-space:normal;overflow-wrap:anywhere;max-width:100%;line-height:1.45}.row{flex-wrap:wrap;align-items:flex-start}.row>div:first-child{min-width:0;flex:1 1 160px}.row .b{flex:0 1 auto}.acts>*,.ch>*{max-width:100%;min-width:0}.acts>button,.ch button{min-width:44px}img{max-width:100%;height:auto}.thumbs{max-width:100%}.thumbs img{object-fit:contain;background:var(--hover);height:auto;max-height:160px;width:min(100%,180px)}svg{max-width:100%}.legend svg,.tools svg,.ri svg,.pb svg,.sc svg,.ic svg{flex-shrink:0}.tipwrap,.wkc{min-width:0;max-width:100%}.tipcard{max-width:min(220px,100%)}.selbox{min-width:0;max-width:100%;margin-left:0}.hero>div{min-width:0}.ring{max-width:100%}.rail{width:210px;position:sticky;top:0;height:100vh;height:100dvh;display:flex;flex-direction:column;padding:16px 12px;background:#0e2a47;flex-shrink:0;color:#fff}.railbg,.slide{display:none}.rail .logo{position:static;margin:0 0 20px;width:44px;height:44px;flex:none}.railin{position:static;inset:auto;display:block;flex:1;overflow-y:auto;min-height:0;overscroll-behavior:contain}.rail .grp{display:flex;flex-direction:column;gap:6px;position:static}.rail .ri,.rail .ri.bottom{position:relative;inset:auto;width:100%;height:auto;min-height:44px;display:flex;justify-content:flex-start;gap:12px;padding:10px 12px;flex:none}.rail .ri.bottom{margin-top:12px}.rail .ri:after{display:none}.rail .nav-label{display:block;min-width:0;flex:1;text-align:left;font-size:14px}.rail .cnt{position:static;min-width:22px;min-height:22px;flex:none}.rail .grp .ri.on{background:#fff;color:#194b8c}.drawer-heading,.nav-toggle,.nav-backdrop{display:none}.topbar{min-height:64px;height:auto;padding:10px 24px;gap:12px}.crumb{min-width:0;flex-wrap:wrap}.tools{flex-shrink:0;gap:8px}.page{padding:8px 24px 40px}.pagehead h1{overflow-wrap:anywhere}.table-region{width:100%}.tw{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}.tbl{width:100%}.tbl td,.tbl th{overflow-wrap:anywhere}.cell-value{min-width:0;max-width:100%}.cell-label{display:none}.table-scroll-hint{font-size:13px;color:var(--muted);margin:8px 0}.table-scroll .tw{border:1px solid var(--border);padding:8px;border-radius:6px}.table-scroll .tbl{min-width:760px}.scrim{padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));align-items:center;overflow:hidden;max-width:100%;height:100dvh}.card.modal{padding:0;width:560px;max-width:100%;max-height:100%;display:flex;flex-direction:column;overflow:hidden;background:var(--card)}.modal-heading{flex:none;margin:0;padding:12px 16px;border-bottom:1px solid var(--border);flex-wrap:nowrap}.modal-heading h3{min-width:0}.modal-heading .ic{flex:none}.modal-body{padding:16px;overflow:auto;min-height:0;overscroll-behavior:contain;scroll-padding-block:20px}.modal-body input,.modal-body textarea,.modal-body select{scroll-margin-block:20px}.modal-actions.acts.end{flex:none;margin:0;padding:12px 16px max(12px,env(safe-area-inset-bottom));background:var(--card);border-top:1px solid var(--border)}.modal-actions button{flex:1;min-width:0}.scrim .pth{min-width:0}.pdel{width:44px;height:44px}.card.bellpanel,.card.bellpanel.menu{max-height:min(70dvh,480px);overflow-y:auto;overflow-wrap:anywhere}.toast{max-width:calc(100% - 24px);width:max-content;text-align:center;bottom:max(12px,env(safe-area-inset-bottom));pointer-events:none}.attendance-feedback{margin:0;padding:12px 16px;border:1px solid var(--ok);background:var(--ok-bg);color:var(--ok);border-radius:6px}.wf-buttons{min-width:0}.wf-buttons button{min-height:44px;max-width:100%}.attendance-submit{padding:16px 0;margin-top:8px;border-top:1px solid var(--border)}.attendance-submit>button{min-height:48px}.wf-form{width:100%;min-width:0}.wf-form label{min-width:0}.wf-form label:has(input[type=checkbox]){display:flex}.client-project-selector{max-width:100%;width:100%;margin-bottom:16px}.client-contact .acts{margin-top:12px}.client-contact a{min-height:48px}@media (hover:none){.mp .tip,.mp .pl{display:none!important}.mp{min-width:44px;min-height:44px}.tipcard{display:none}.chart-data{display:block}}@media (min-width:901px){.nav-label{display:block}}@media (max-width:1100px){.g2,.g2b,.mapwrap{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.app{display:block}.main{width:100%;padding:0}.rail{position:fixed;z-index:60;left:0;top:0;width:min(300px,calc(100% - 32px));height:100vh;height:100dvh;visibility:hidden;transform:translate(-100%);transition:transform .18s ease,visibility .18s}.rail.nav-open{visibility:visible;transform:none}.rail .logo{display:none}.drawer-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.drawer-heading .ic{color:#fff;flex:none}.nav-toggle{display:flex;align-items:center;justify-content:center;flex:none}.nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:59;background:#00000080;border:0;width:100%;height:100%;border-radius:0}.topbar{flex-wrap:wrap;padding:10px 12px}.topbar .tools{margin-left:auto}.topbar .crumb{order:3;flex:1 0 100%;font-size:14px}.page{padding:8px 16px 40px}.split,.g2,.g2b,.mapwrap{grid-template-columns:minmax(0,1fr)}.sg-form{padding:80px 24px 32px}.sg-card{min-width:0}.sg-card h1{font-size:26px}.sg-card .pwrap{max-width:none;margin:0;padding:0}.ptop{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;height:auto;padding:12px;position:static}.ptop .plogo2{font-size:14px;min-width:0}.plogo2 span{flex:none}.ptabs{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.ptab{justify-content:center;min-width:0}.pmain{padding:4px 0 40px}.portal .tools{gap:6px}.ptop .tools .ic,.ptop .tools .av{width:44px;height:44px}.card.bellpanel,.card.bellpanel.menu{position:fixed;right:12px;left:auto;top:76px;width:min(340px,calc(100% - 24px));max-width:calc(100% - 24px);z-index:40}.mrow summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.hero{flex-wrap:wrap;gap:20px}.facts{grid-template-columns:repeat(2,minmax(0,1fr))}.wf-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.wf-filters label{min-width:0}}@media (max-width:600px){.page{padding:4px 12px 32px}.card,.card.kpi{padding:16px}.kpis,.g2b,.kan,.facts,.wf-filters{grid-template-columns:minmax(0,1fr)}.wf-filters label{min-width:0;width:100%}.wf-buttons{display:grid;grid-template-columns:minmax(0,1fr);width:100%}.wf-buttons button{width:100%;min-height:48px;font-size:16px}.table-cards .tw{overflow:visible}.table-cards .tbl,.table-cards tbody{display:block;width:100%}.table-cards thead{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.table-cards tr{display:block;border:1px solid var(--border);border-radius:6px;padding:12px;margin-bottom:12px;background:var(--card)}.table-cards .tbl td{display:block;width:100%;padding:8px 0;border:0;min-width:0;white-space:normal}.table-cards td+td{border-top:1px solid var(--border)}.table-cards .cell-label{display:block;font-size:13px;color:var(--muted);font-weight:600;margin-bottom:4px}.table-cards .cell-value{font-size:15px}.table-cards .table-empty td{padding:8px 0}.table-scroll .tbl th,.table-scroll .tbl td{min-width:70px}.table-scroll .tbl th:first-child{min-width:160px}.selbox{display:block;width:100%}.hero{flex-direction:column;align-items:flex-start}.hero>div:last-child{width:100%}.mrow summary{grid-template-columns:minmax(0,1fr)}.row>div:first-child{flex-basis:100%}.row>.pb,.row>.sc{flex:1 1 auto}.ch>.acts{width:100%}.ch>.acts>button,.acts.end>button{flex:1 1 120px}.sigs{gap:16px}.lg{flex-wrap:wrap}.lg span{min-width:0}.sg-form,.plogin-form{padding:80px 16px 28px}.plogin .pcard{padding:20px;min-width:0;cursor:default}.plogin .pcard:hover{transform:none}.sg-links,.plinks2{flex-direction:column;gap:8px}.demo{grid-template-columns:minmax(0,1fr)}.sg-card .pwrap{padding:0}.gate{padding:16px}.empty{padding:24px 8px}.empty svg{max-width:100%}.pgrid{grid-template-columns:repeat(auto-fit,minmax(88px,1fr))}.thumbs img{width:100%;max-height:none;object-fit:contain}.map .mp .pl,.map .mp .tip{display:none!important}.ptop{grid-template-columns:minmax(0,1fr)}.ptop>.tools{grid-row:2;justify-self:end}.ptabs{grid-row:3}.ptop .plogo2{min-height:44px}.card.modal{padding:0}.modal-body{padding:12px}.modal-heading,.modal-actions.acts.end{padding-left:12px;padding-right:12px}.modal-heading h3{font-size:16px}.scrim{padding:8px}.modal-actions button{min-height:48px}.toast{font-size:14px}}@media (prefers-reduced-motion:reduce){.rail{transition:none}}@media print{.rail,.nav-toggle,.nav-backdrop{display:none!important}.table-cards .tbl{display:table}.table-cards thead{position:static;width:auto;height:auto;clip-path:none}.table-cards tbody{display:table-row-group}.table-cards tr{display:table-row}.table-cards .tbl td{display:table-cell}.cell-label{display:none!important}}.pcard.card:hover{transform:none}.sg-form,.plogin-form,.sg-art{min-width:0}.plogin .pcard{font:inherit;text-align:left}.plogin .pcard:hover{transform:none}:where(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--focus);outline-offset:2px}.client-contact a,.client-contact button{min-width:44px;max-width:100%;white-space:normal}@media (max-width:600px){.client-contact .acts{display:grid;grid-template-columns:minmax(0,1fr)}.client-contact .acts>*{width:100%}}@media (max-height:480px){.scrim{padding:4px}.modal-heading,.modal-actions.acts.end{padding-block:4px}}.milestone-dates{display:block}.gantt,.gantt .track{min-width:0}@media (max-width:600px){.gantt{grid-template-columns:minmax(0,1fr);gap:8px}.gantt .track{width:100%}}.sg-card .pwrap .inp,.ppw input{padding-right:56px}.portal-mobile-name,.client-payment-cards,.foreman-mobile-tools{display:none}.client-project-name{font-size:20px;font-weight:700;line-height:1.3}.client-site-summary>div{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.client-site-summary .l{display:block}@media (max-width:900px){.portal,.portal *,.app-foreman,.app-foreman *{box-sizing:border-box}.portal,.portal .pmain,.portal .page,.portal .card,.portal .stack,.portal .g2b,.portal .kpis,.portal .hero,.portal .hero>div{min-width:0;max-width:100%}.portal{overflow-wrap:anywhere}.portal .page{padding:8px 12px 32px}.portal .pmain{padding:0}.portal .pagehead{padding:16px 0}.portal .pagehead h1{font-size:22px;margin:0 0 4px}.portal .ptop{position:static;display:grid;grid-template-columns:minmax(0,1fr) auto;padding:12px;gap:12px 8px;height:auto;background:var(--card)}.portal .plogo2{grid-column:1;grid-row:1;min-height:44px;gap:8px;min-width:0;font-size:15px}.portal .plogo2>span{flex:none;width:28px;height:28px}.portal-company-name{display:none}.portal-mobile-name{display:block;font-weight:600}.portal .ptop>.tools{grid-column:2;grid-row:1;justify-self:end;display:flex;gap:4px;margin:0}.portal .tools button{width:44px;height:44px;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.portal .ptabs{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0;min-width:0}.portal .ptab{display:flex;align-items:center;justify-content:flex-start;gap:8px;padding:10px 12px;min-height:48px;min-width:0;border:1px solid var(--border);border-radius:6px;font-size:15px}.portal .ptab.on{border-color:var(--primary)}.portal-tab-label{min-width:0;overflow-wrap:normal;word-break:normal}.portal .cnt2{position:static;flex:none;margin-left:auto}.portal .tools .card.bellpanel{position:fixed;left:12px;right:12px;top:72px;width:auto;max-width:calc(100% - 24px);max-height:65dvh;overflow:auto;z-index:40}.portal button,.portal a.pb,.portal a.sc,.portal summary{min-width:44px;min-height:44px;white-space:normal}.portal .inp,.portal input:not([type=checkbox]),.portal select,.portal textarea{width:100%;max-width:100%;min-width:0;min-height:48px;font-size:16px}.portal .g2b{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.portal .hero{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;align-items:center}.portal .hero .ring{width:76px;height:76px}.portal .hero .ring>div{width:58px;height:58px;font-size:20px}.portal .hero .ring span{font-size:10px!important}.portal .hero>div:last-child{width:auto}.portal .client-project-name{font-size:18px}.portal .hero .bar{min-width:0}.portal .client-project-selector{margin:0 0 14px}.portal .kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px}.portal .card.kpi{padding:12px;min-width:0}.portal .k{font-size:22px;line-height:1.25}.portal .kpi .l{font-size:13px}.portal .kpis>.kpi:last-child:nth-child(odd){grid-column:1/-1}.portal .card{padding:16px}.portal .b{white-space:normal;max-width:100%}.portal .ch>.acts{max-width:100%}.portal .client-contact .acts{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.portal .client-contact .acts>*{width:100%;min-height:48px;font-size:16px;display:flex;align-items:center;justify-content:center;text-decoration:none}.portal .client-contact p{margin:6px 0}.portal .client-site-summary b{font-size:18px}.portal .row{flex-wrap:wrap;gap:8px}.portal .row>div:first-child{flex:1 1 100%;min-width:0}.portal .acts{display:flex;flex-wrap:wrap;gap:8px}.portal .acts>button{flex:1 1 120px}.portal .thumbs{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.portal .thumbs img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;border-radius:6px}.portal .mrow summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:14px 0}.portal .mrow summary>b{grid-column:1/-1}.portal .mrow summary>*{min-width:0}.portal .mrow summary .b{font-size:12px}.portal .client-record-table{display:none}.client-payment-cards{display:grid;gap:10px}.client-payment{padding:14px;border:1px solid var(--border);border-radius:6px;min-width:0}.client-payment>b{font-size:22px}.client-payment dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0 0}.client-payment dt{font-size:13px;color:var(--muted)}.client-payment dd{margin:4px 0 0;overflow-wrap:anywhere}.app-foreman .workforce{gap:12px}.app-foreman .page{padding-inline:12px}.app-foreman .foreman-mobile-tools{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.app-foreman .foreman-mobile-tools .fld{margin:0}.app-foreman .foreman-mobile-tools .inp{min-height:48px;font-size:16px}.app-foreman .foreman-filters{display:none}.app-foreman .foreman-filters.filters-open{display:grid;grid-template-columns:minmax(0,1fr);padding:12px;border:1px solid var(--border);border-radius:6px}.app-foreman .foreman-filters .foreman-desktop-search{display:none}.app-foreman .foreman-filters label{min-width:0}.app-foreman .table-cards .tw{overflow:visible}.app-foreman .table-cards table,.app-foreman .table-cards tbody{display:block;width:100%}.app-foreman .table-cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.app-foreman .table-cards tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px;margin:0 0 12px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--card)}.app-foreman .table-cards .tbl td{display:block;min-width:0;width:auto;padding:10px 0;border:0;border-top:1px solid var(--border);overflow-wrap:anywhere}.app-foreman .table-cards td:first-child,.app-foreman .table-cards td:last-child{grid-column:1/-1}.app-foreman .table-cards td:first-child{border-top:0;font-size:17px}.app-foreman .cell-label{display:block;margin-bottom:4px;font-size:13px;color:var(--muted);font-weight:500}.app-foreman .cell-value{min-width:0;font-size:15px;line-height:1.45}.app-foreman .worker-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.app-foreman .worker-actions>button{min-width:0;min-height:48px;font-size:15px;padding:10px}.app-foreman .worker-actions>button:last-child:nth-child(odd){grid-column:1/-1}.app-foreman .worker-clock-action:disabled{opacity:1;background:var(--hover);color:var(--muted);border:1px solid var(--border)}.app-foreman .worker-clock-action.is-recorded:disabled{background:var(--ok-bg);color:var(--ok);border-color:var(--ok)}.app-foreman .attendance-submit{display:grid;grid-template-columns:minmax(0,1fr);width:100%;padding:14px 0;margin:0}.app-foreman .attendance-submit>button{width:100%;min-height:52px;font-size:16px}.app-foreman .foreman-worker-summary{padding:12px;background:var(--hover);border-radius:6px;font-size:14px;line-height:1.65}}@media (min-width:601px) and (max-width:900px){.portal .client-contact .acts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media print{.client-payment-cards{display:none}.client-record-table{display:block!important}.foreman-mobile-tools{display:none!important}.foreman-filters{display:grid!important}}@media (max-width:900px){.auth-surface.plogin{display:block;min-width:0;min-height:100dvh}.plogin .plogin-art{display:none}.plogin .plogin-form{padding:32px 16px;min-height:100dvh;min-width:0;place-items:center}.plogin .pcard{width:100%;max-width:420px;padding:24px 20px;min-width:0;margin:0;cursor:default}.plogin .pcard:hover{transform:none}.plogin .pf input{font-size:16px;min-height:48px;min-width:0;max-width:100%}.plogin .pbtn{min-height:48px;font-size:16px}.plogin .ppw button{width:48px;height:48px;min-width:48px;min-height:48px}.plogin .ppw input{padding-right:56px}.plogin .plinks2{display:flex;flex-direction:column;gap:12px}.plogin .pdemo{overflow-wrap:anywhere}.plogin .pdemo button{min-height:44px;font-size:13px}}.foreman-mobile-start{display:none}@media (max-width:900px){.app-foreman .foreman-mobile-start{display:block}.app-foreman .foreman-mobile-start .pb{width:100%;min-height:52px;font-size:16px}.app-foreman .foreman-site-overview{display:none}.app-foreman .foreman-submission-details{margin:0 0 12px}.app-foreman .foreman-submission-details summary{min-height:44px;padding-block:10px;font-weight:500;color:var(--muted)}.app-foreman .foreman-worker-summary{margin-block:8px 16px}.app-foreman .attendance-feedback{font-size:15px}}@media print{.foreman-mobile-start{display:none!important}.foreman-site-overview{display:block!important}}.mobile-project-picker,.nav-toggle-label,.table-scroll-hint[hidden]{display:none}.items-list,.items-copy{min-width:0}.items-row>.b{flex:none}@media (max-width:900px){.app .page{padding:8px 12px 36px}.app .pagehead{padding:14px 0 16px}.app .pagehead h1{font-size:23px;line-height:1.2}.app .pagehead p{line-height:1.5}.app .topbar{padding:8px 12px;gap:6px 12px}.app .topbar .crumb{font-size:13px;line-height:1.35}.app .nav-toggle{width:auto;gap:6px;padding:8px}.nav-toggle-label{display:inline;font-size:14px;font-weight:600}.app .card{padding:16px}.app .card.modal{padding:0}.app .stack{gap:12px}.app .g2,.app .g2b,.app .mapwrap,.app .split,.app .project-selection-layout{grid-template-columns:minmax(0,1fr);gap:12px}.app .mobile-project-picker{display:block;grid-column:1/-1;margin:0}.app .desktop-project-list{display:none}.mobile-project-picker .inp{min-height:48px}.app .kpis{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:12px;gap:1px}.app .card.kpi{padding:12px}.app .kpi .k{font-size:clamp(19px,5vw,24px);line-height:1.25;margin:5px 0;overflow-wrap:anywhere}.app .kpi .l{font-size:13px;line-height:1.45}.app .kpis>.kpi:last-child:nth-child(odd){grid-column:1/-1}.app .facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.app .facts>div{padding:8px 0;min-width:0}.app .facts b{font-size:17px;line-height:1.4}.app .ch{gap:10px;align-items:flex-start}.app .ch h3{font-size:16px;line-height:1.4;max-width:100%}.app .ch>.acts{display:flex;flex-wrap:wrap;width:100%;gap:8px}.app .ch>.acts>button{flex:1 1 140px;min-height:44px}.app .acts:has(>.selbox),.app .acts:has(>label){display:grid;grid-template-columns:minmax(0,1fr);width:100%;gap:8px}.app .acts>.inp{margin-left:0;width:100%;min-width:0}.app .wf-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.app .wf-filters>label{min-width:0}.app .wf-filters>button{grid-column:1/-1;min-height:48px}.app .wf-form{padding:12px;gap:12px}.app .wf-form label{line-height:1.4}.app .wf-form>button{min-height:48px}.app .kan{grid-template-columns:minmax(0,1fr);gap:12px}.app .kcard{padding:14px}.app .kcard .acts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.app .kcard .acts>button{min-width:0;min-height:44px}.app .table-cards .tw{overflow:visible}.app .table-cards .tbl,.app .table-cards tbody{display:block;width:100%;min-width:0}.app .table-cards thead{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.app:not(.app-foreman) .table-cards tr{display:grid;grid-template-columns:minmax(0,1fr);gap:0 12px;padding:12px;margin:0 0 12px;border:1px solid var(--border);border-radius:8px;background:var(--card)}.app:not(.app-foreman) .table-cards.table-detailed tr{grid-template-columns:repeat(2,minmax(0,1fr))}.app .table-cards .tbl td{display:block;width:auto;min-width:0;max-width:100%;padding:10px 0;border:0;white-space:normal;overflow-wrap:anywhere}.app .table-cards td+td{border-top:1px solid var(--border)}.app .table-cards td:first-child,.app .table-cards td:last-child{grid-column:1/-1}.app .table-cards td:first-child{border-top:0}.app .table-cards .cell-label{display:block;color:var(--muted);font-weight:500;font-size:13px;line-height:1.4;margin-bottom:4px}.app .table-cards .cell-value{font-size:15px;line-height:1.45;min-width:0}.app .table-cards .cell-value .acts{display:flex;flex-wrap:wrap;gap:8px}.app .table-cards .cell-value .acts>button{flex:1 1 120px;min-height:44px}.app .table-cards .table-empty{grid-template-columns:minmax(0,1fr)}.app .table-cards .table-empty td{grid-column:1/-1}.app .items-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;padding:14px 0}.app .items-row>.items-copy{min-width:0;width:auto}.app .items-row>.b{max-width:120px;font-size:12px}.items-copy .l{margin-top:4px;line-height:1.5}.app .mrow summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:14px 0}.app .mrow summary>b{grid-column:1/-1}.app .mrow summary>*{min-width:0}.app .legend{gap:10px;line-height:1.5}.app .legend>span{min-width:0}.app .lg{flex-wrap:wrap;gap:8px}.app .lg span:not(.pc){flex:1 1 100px}.app .lg b{font-size:15px}.sg-form:not(:has(>.sg-theme)){padding-top:32px}.sg-form .sg-card{max-width:440px}.sg-card .dchip{min-height:64px;box-shadow:none}.sg-card .dchip:hover{transform:none;box-shadow:none}.scrim .modal-actions{gap:8px}.modal-actions button{min-height:48px}.modal-body .fld{font-size:14px;line-height:1.5}.modal-body .fld.chk{min-height:44px}.scrim .modal-actions.acts.end{display:flex}.scrim .modal-heading{align-items:center}}@media (max-width:480px){.app .wf-filters{grid-template-columns:minmax(0,1fr)}.app .facts{grid-template-columns:repeat(2,minmax(0,1fr))}.app .table-cards .cell-value>button{width:100%;min-height:48px}.app .items-row>.b{max-width:100px}.app .topbar .tools{gap:6px}.app .chips{gap:6px;margin:0 0 12px}.app .chip{margin:0;border-radius:6px;min-height:44px;font-size:14px;max-width:100%}}.app .topbar .tools .card.bellpanel{box-sizing:border-box;width:260px;min-width:min(260px,calc(100vw - 24px));max-width:calc(100vw - 24px);overflow-wrap:anywhere}.app .topbar .tools .card.bellpanel .l,.app .topbar .tools .card.bellpanel b{overflow-wrap:anywhere;word-break:normal}@media (max-width:480px){.app .topbar .tools .card.bellpanel{left:12px;right:12px;width:auto;min-width:0;max-width:none}}@media print{.mobile-project-picker,.nav-toggle-label{display:none!important}.desktop-project-list{display:flex!important}.app .table-cards .tbl{display:table}.app .table-cards tbody{display:table-row-group}.app .table-cards tr{display:table-row!important}.app .table-cards .tbl td{display:table-cell;width:auto}.app .table-cards thead{position:static;width:auto;height:auto;clip-path:none}}@media (max-width:900px){.app-foreman .wf-filters.foreman-filters:not(.filters-open){display:none}.app-foreman .wf-filters.foreman-filters.filters-open{display:grid}}.material-intro{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.material-intro p{flex:1 1 300px;line-height:1.55}.material-filters{display:grid;grid-template-columns:1fr 1fr auto;gap:14px;align-items:end}.material-filters .fld{margin:0;min-width:0}.material-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--muted)}.material-legend span{display:inline-flex;gap:6px;align-items:center}.material-legend i{width:12px;height:12px;display:inline-block;border-radius:2px}.material-legend .available{background:#6599d6}.material-legend .reserved{background:#efd3a4}.material-legend .reorder{background:#d24d4d}.material-stock-row{padding:18px 0;border-top:1px solid var(--border)}.material-stock-row:first-of-type{border-top:0}.material-stock-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.material-stock-heading h3{font-size:16px}.material-quantity{margin:10px 0 8px;font-size:15px;color:var(--muted)}.material-quantity b{font-size:21px;color:var(--ink)}.material-quantity span{white-space:nowrap}.material-stock-bar{display:flex;width:100%;height:14px;background:var(--track);border-radius:3px;overflow:hidden}.material-stock-bar>span{height:100%;display:block}.material-available{background:#6599d6}.material-available.low{background:#d24d4d}.material-reserved{background:#efd3a4}.material-stock-meta{display:flex;gap:10px 20px;flex-wrap:wrap;margin-top:10px;font-size:13px;color:var(--muted)}.material-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.material-actions>*{max-width:100%;min-width:0}@media (max-width:900px){.material-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.material-filters .chk{grid-column:1/-1}.material-stock-heading h3{max-width:100%}.material-actions>button{min-height:48px;flex:1 1 120px}.material-stock-row{padding:16px 0}}@media (max-width:480px){.material-filters{grid-template-columns:minmax(0,1fr)}.material-quantity{font-size:14px}.material-quantity b{font-size:20px}.material-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.material-actions>button{font-size:14px;width:100%;min-width:0}.material-actions>button:last-child:nth-child(odd){grid-column:1/-1}.material-stock-meta{display:grid;grid-template-columns:minmax(0,1fr);gap:5px}.material-stock-heading{align-items:start}.material-stock-heading .b{font-size:12px}}.material-actions:empty{display:none}.material-manage{margin-top:8px}.material-manage summary{min-height:44px;display:list-item;cursor:pointer;font-size:14px;font-weight:600;color:var(--primary);padding:12px 0;list-style-position:inside}.material-manage .material-actions{margin-top:2px}.materials-page{gap:14px}.materials-page .material-intro{gap:10px}.materials-page .material-intro p{font-size:13px;margin:0;max-width:850px}.materials-page .material-filters{gap:12px}.materials-page .material-filters .inp{min-height:44px;font-size:16px}.materials-page .kpis{gap:10px}.materials-page .kpi{padding:12px 14px}.materials-page .kpi .k{font-size:26px;line-height:1.2;margin:4px 0}.materials-page .kpi .l{font-size:12px;line-height:1.4}.materials-page .material-stock-row{padding:12px 0;display:grid;grid-template-columns:minmax(170px,1fr) minmax(240px,1.4fr) 150px;column-gap:20px;row-gap:8px;align-items:center}.materials-page .material-stock-heading{grid-column:1;grid-row:1;gap:8px;justify-content:flex-start}.materials-page .material-stock-heading h3{font-size:14px;margin:0;overflow-wrap:anywhere}.materials-page .material-quantity{grid-column:2;grid-row:1;margin:0;font-size:12px;line-height:1.5;overflow-wrap:anywhere}.materials-page .material-quantity b{font-size:17px;font-variant-numeric:tabular-nums}.materials-page .material-stock-bar{grid-column:1/3;grid-row:2;height:8px;border-radius:4px}.materials-page .material-stock-meta{grid-column:1/3;grid-row:3;margin:0;gap:6px 16px;font-size:11px;line-height:1.5}.materials-page .material-manage{grid-column:3;grid-row:1/4;margin:0;align-self:start;min-width:0}.materials-page .material-manage summary{min-height:44px;padding:12px 8px;font-size:12px;border:1px solid var(--border);border-radius:6px;overflow-wrap:anywhere}.materials-page .material-manage .material-actions{display:grid;gap:6px;margin-top:8px}.materials-page .material-actions button{min-height:44px;font-size:12px;padding:8px 10px;white-space:normal}.materials-page .material-stock-row>.material-actions{grid-column:3;grid-row:1/4;margin:0}.materials-page .material-legend{gap:10px;font-size:11px}.materials-page .material-legend i{width:9px;height:9px}.materials-page .chips{gap:8px;flex-wrap:wrap}.materials-page .chip{min-height:44px}@media (max-width:1100px){.materials-page .material-stock-row{grid-template-columns:minmax(140px,1fr) minmax(180px,1.3fr) 130px;column-gap:12px}}@media (max-width:760px){.materials-page .material-stock-row{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:12px 0}.materials-page .material-stock-heading{grid-column:1/-1;grid-row:1}.materials-page .material-quantity{grid-column:1/-1;grid-row:2}.materials-page .material-stock-bar{grid-column:1/-1;grid-row:3}.materials-page .material-stock-meta{grid-column:1/-1;grid-row:4;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px}.materials-page .material-manage,.materials-page .material-stock-row>.material-actions{grid-column:1/-1;grid-row:5;width:100%;margin:0}.materials-page .material-manage summary{padding:12px;font-size:13px}.materials-page .material-manage .material-actions,.materials-page .material-stock-row>.material-actions{display:flex;flex-wrap:wrap;gap:8px}.materials-page .material-actions>button{flex:1 1 120px;font-size:13px;min-height:44px}.materials-page .kpi{padding:10px 12px}.materials-page .kpi .k{font-size:24px}.materials-page .material-quantity{font-size:13px}.materials-page .material-stock-heading h3{font-size:15px}}.sg-art.login-brand-panel,.plogin-art.login-brand-panel{display:flex;align-items:center;justify-content:center;gap:20px;padding:40px clamp(20px,4vw,64px);background:#0a1e34;border:0;min-width:0;color:#fff}.login-brand-image{display:block;width:100%;max-width:560px;height:auto;object-fit:contain;flex-shrink:1}.login-brand-panel .login-brand-caption{margin:0;text-align:center;font-size:14px;line-height:1.5;letter-spacing:.04em;color:#e5edf7}@media (max-width:980px){.sg,.auth-surface.plogin{grid-template-columns:minmax(0,1fr)}.sg-art.login-brand-panel,.plogin-art.login-brand-panel{display:flex;padding:20px 16px;gap:8px}.login-brand-image{width:148px;max-width:100%}.login-brand-panel .login-brand-caption{font-size:12px}.sg-form,.plogin .plogin-form{min-height:0;padding:56px 16px 28px}.auth-surface.plogin{min-height:100dvh}}.google-login-info{display:flex;justify-content:center;margin-top:20px}.google-icon-button{width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--border);border-radius:50%;background:#fff;cursor:not-allowed}.google-icon-button svg{display:block}.sg,.auth-surface.plogin{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-height:100dvh}.sg-art.login-brand-panel,.plogin-art.login-brand-panel{position:relative;background:radial-gradient(ellipse at 50% 38%,#193a59,#0a1e34 65%);padding:56px clamp(24px,5vw,80px);gap:28px}.login-brand-image{max-width:490px;filter:drop-shadow(0 18px 30px #0003)}.login-brand-panel .login-brand-caption{color:#bccbd9;font-size:11px;letter-spacing:.16em;text-transform:uppercase}.sg-form,.plogin .plogin-form{padding:76px clamp(24px,5vw,76px);background:var(--bg,#f5f7fa);min-width:0}.sg-card,.plogin .pcard{width:100%;max-width:460px;padding:36px;border:1px solid var(--border,#e2e8f0);border-radius:20px;background:var(--card,#fff);box-shadow:0 12px 44px #0e2a4709;min-width:0}.sg-card h1,.plogin .pcard h2{font-size:clamp(26px,2.5vw,34px);line-height:1.2;letter-spacing:-.035em;margin:0 0 12px;font-weight:700}.sg-card>.l,.plogin .pnote{font-size:15px;line-height:1.65;color:var(--muted,#5e6673);margin:0}.login-eyebrow{font-size:10px;font-weight:700;letter-spacing:.14em;color:var(--muted,#5e6673);margin-bottom:18px;line-height:1.6}.login-access-list{display:grid;gap:12px;margin-top:28px}.login-access-card{display:flex;align-items:center;gap:14px;padding:17px 14px;min-height:82px;border:1px solid var(--border,#e2e8f0);border-radius:12px;color:var(--ink,#14181f);text-decoration:none;background:var(--card,#fff);transition:border-color .15s,background .15s}.login-access-card:hover,.login-access-card:focus-visible{border-color:#b58724;background:var(--hover,#f8fafc)}.login-access-icon{display:grid;place-items:center;width:42px;height:42px;flex-shrink:0;border-radius:10px;background:#dba93618;color:var(--ink,#16324d)}.login-access-copy{display:grid;gap:5px;min-width:0;overflow-wrap:anywhere}.login-access-copy strong{font-size:14px;font-weight:650}.login-access-copy>span{font-size:12px;color:var(--muted,#5e6673);line-height:1.5}.login-access-arrow{margin-left:auto;color:var(--muted,#5e6673)}.login-help{font-size:12px;line-height:1.7;color:var(--muted,#5e6673);margin:24px 0 0;padding-top:20px;border-top:1px solid var(--border,#e2e8f0)}.sg-card form{margin-top:26px}.sg-card .fld{gap:8px;margin-bottom:18px;font-size:13px;font-weight:600}.sg-card .inp,.plogin .pform input{font-size:16px;min-height:48px;border-radius:9px}.sg-card .pwrap{padding:0}.sg-card .eye,.plogin .ppw button{min-width:44px;min-height:44px;right:2px;transform:translateY(-50%);display:grid;place-items:center}.sg-card .pb,.plogin .pbtn{min-height:48px;border-radius:9px;font-size:15px;font-weight:600}.sg-links,.plinks2{padding-top:20px;border-top:1px solid var(--border,#e2e8f0);margin-top:24px;font-size:13px;line-height:1.6;gap:12px;display:flex;flex-wrap:wrap;justify-content:space-between}.sg-links a,.plinks2 a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}.sg-links a:hover,.plinks2 a:hover{text-decoration:underline}.google-login-info{margin:24px 0 0}.google-icon-button{border-color:#dce3eb;box-shadow:0 2px 5px #0e2a4707}@media (max-width:980px){.sg,.auth-surface.plogin{grid-template-columns:minmax(0,1fr)}.sg-art.login-brand-panel,.plogin-art.login-brand-panel{padding:24px 16px;gap:12px}.login-brand-image{width:132px}.login-brand-panel .login-brand-caption{font-size:9px;letter-spacing:.1em}.sg-form,.plogin .plogin-form{padding:56px 20px 32px;min-height:0}.sg-card,.plogin .pcard{max-width:460px}}@media (max-width:400px){.sg-form,.plogin .plogin-form{padding:56px 12px 24px}.sg-card,.plogin .pcard{padding:24px 18px;border-radius:16px}.login-access-card{padding:14px 10px;gap:10px}.login-access-icon{width:36px;height:40px}.login-access-copy strong{font-size:13px}}.sg,.auth-surface.plogin{--ink:#f1f5fb;--muted:#a4afc0;--mut:#a4afc0;--border:#334155;--line:#334155;--card:#101929;--bg:#101929;--hover:#1a263a;--primary:#3b82f6;color:#f1f5fb;background:#101929;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.sg-art.login-brand-panel,.plogin-art.login-brand-panel{background:linear-gradient(180deg,#09111cc4,#09111cb8),var(--login-photo) center/cover;align-items:stretch;justify-content:space-between;gap:56px;padding:36px clamp(28px,3vw,56px);min-height:100dvh}.login-company{display:flex;align-items:center;gap:12px;font-weight:750;font-size:21px;letter-spacing:-.04em}.login-company .login-brand-image{width:60px;height:60px;object-fit:contain;filter:none;flex-shrink:0}.login-company small{display:block;font-size:9px;font-weight:500;letter-spacing:.15em;color:#b6c1d0;margin-top:4px}.login-story{margin-top:12px;margin-bottom:auto;max-width:580px}.login-story h2,.auth-surface .login-story h2{color:#fff;font-size:clamp(36px,4.1vw,60px);font-weight:700;line-height:1.08;letter-spacing:-.045em;margin:0 0 18px}.login-story>p{color:#c0c6ce;font-size:18px;line-height:1.65;margin:0;max-width:400px}.login-highlights{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;margin-top:64px}.login-feature-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid #ffffff24;background:#18283b99;color:#72a8ff;font-size:22px}.login-highlights h3,.auth-surface .login-highlights h3{font-size:14px;font-weight:600;color:#fff;margin:16px 0 10px;line-height:1.4;letter-spacing:0}.login-highlights p{font-size:12px;color:#bac1cb;line-height:1.8;margin:0}.login-brand-panel .login-brand-caption{text-align:left;font-size:10px;color:#b3bdca;letter-spacing:.06em}.sg-form,.plogin .plogin-form{background:#101929;padding:64px clamp(28px,6vw,96px)}.sg-card,.plogin .pcard{background:transparent;border:0;box-shadow:none;padding:0;border-radius:0;max-width:400px;color:#f1f5fb;animation:none}.sg-card h1,.plogin .pcard h2{color:#f1f5fb;font-size:32px;margin-bottom:8px;letter-spacing:-.035em}.login-eyebrow{color:#91a4bf;font-size:9px;margin-bottom:16px}.sg-card>.l,.plogin .pnote{color:#a4afc0;font-size:14px}.sg-card form{margin-top:32px}.sg-card .fld,.plogin .pf>span:first-child{color:#a4afc0;font-size:11px;letter-spacing:.035em}.sg-card .inp,.plogin .pform input{background:#222e40;border:1px solid #354155;color:#f1f5fb;border-radius:999px;min-height:48px;padding:12px 18px;font-size:16px;box-shadow:none}.sg-card .inp::placeholder,.plogin .pform input::placeholder{color:#96a2b3;font-size:13px;opacity:1}.sg-card .inp:focus,.plogin .pform input:focus{border-color:#60a5fa;outline:2px solid #3b82f644;outline-offset:2px}.sg-card .pwrap .inp,.plogin .ppw input{padding-right:52px}.sg-card .eye,.plogin .ppw button{color:#a4afc0;background:transparent;border-radius:50%}.sg-card .pb,.plogin .pbtn{background:#3b82f6;color:#fff;border:1px solid #3b82f6;border-radius:999px;box-shadow:none;min-height:48px}.sg-card .pb:hover,.plogin .pbtn:hover{background:#2563eb}.sg-card .err,.plogin .perr{color:#fda4a4}.sg-links,.plinks2{border-color:#293548;color:#a4afc0;font-size:12px}.sg-links a,.plinks2 a{color:#80b3ff}.google-login-info{margin-top:28px;border-top:1px solid #293548;padding-top:24px}.google-icon-button{background:#101929;border-color:#43516a;width:48px;height:48px;box-shadow:none}.login-access-card{background:transparent;border-color:#354155;color:#f1f5fb}.login-access-card:hover,.login-access-card:focus-visible{background:#1a263a;border-color:#60a5fa}.login-access-icon{background:#3b82f61a;color:#80b3ff}.login-access-copy>span,.login-access-arrow,.login-help{color:#a4afc0}.login-help{border-color:#293548}@media (max-width:980px){.sg,.auth-surface.plogin{grid-template-columns:minmax(0,1fr)}.sg-art.login-brand-panel,.plogin-art.login-brand-panel{min-height:0;padding:24px;gap:24px;background-position:center 40%}.login-company{font-size:18px}.login-company .login-brand-image{width:48px;height:48px}.login-story{margin:0}.login-story h2,.auth-surface .login-story h2{font-size:32px;margin-bottom:10px}.login-story>p{font-size:14px}.login-highlights,.login-brand-panel .login-brand-caption{display:none}.sg-form,.plogin .plogin-form{padding:36px 24px 40px}.sg-card,.plogin .pcard{padding:0;max-width:440px}}@media (max-width:400px){.sg-art.login-brand-panel,.plogin-art.login-brand-panel{padding:20px}.sg-form,.plogin .plogin-form{padding:32px 20px}.sg-card h1,.plogin .pcard h2{font-size:28px}.login-story h2,.auth-surface .login-story h2{font-size:30px}}.google-login-info .google-icon-button{width:100%;min-height:48px;height:auto;border-radius:999px;display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 20px;color:#f1f5fb;font-size:13px;font-weight:600}.google-login-info .google-icon-button svg{width:20px;height:20px;flex-shrink:0}.google-login-info{flex-direction:column;gap:24px;border-top:0;padding-top:0}.login-provider-divider{display:flex;align-items:center;gap:14px;width:100%;color:#a4afc0;font-size:10px;font-weight:500;letter-spacing:.04em}.login-provider-divider:before,.login-provider-divider:after{content:"";height:1px;flex:1;background:#334155}.login-provider-divider span{flex-shrink:0}.account-directory,.account-directory-sections{display:grid;gap:20px;min-width:0}.account-toolbar{display:grid;grid-template-columns:minmax(220px,2fr) repeat(3,minmax(140px,1fr));gap:14px;padding:18px 0}.account-toolbar .fld{margin:0;font-size:12px;gap:8px}.account-toolbar .inp{width:100%;min-width:0;font-size:16px;min-height:44px}.account-sheet-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--border);background:var(--hover);font-size:12px;color:var(--muted)}.account-sheet .tw{max-height:620px;overflow:auto;isolation:isolate;border:1px solid var(--border);border-top:0}.account-sheet .tbl{min-width:1060px;border-collapse:separate;border-spacing:0;width:100%}.account-sheet .tbl th{position:sticky;top:0;z-index:1;background:var(--card);border-bottom:2px solid var(--border);font-size:11px;letter-spacing:.04em;white-space:nowrap;padding:14px 12px}.account-sheet .tbl td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:14px 12px;vertical-align:top}.account-sheet .tbl th+th{border-left:1px solid var(--border)}.account-sheet .tbl tbody tr:nth-child(2n){background:var(--hover)}.account-sheet .tbl tbody tr:hover{background:var(--tint)}.account-sheet .tbl td:first-child{width:42px;text-align:center;background:var(--hover)}.account-sheet .tbl td:nth-child(2){min-width:160px}.account-sheet .tbl td:nth-child(3){min-width:200px}.account-sheet .tbl td:nth-child(5){min-width:150px;max-width:240px}.account-sheet .cell-value{overflow-wrap:anywhere}.account-row-number{font-variant-numeric:tabular-nums;color:var(--muted);font-size:12px}.account-email{font-size:13px}.account-self{display:inline-block;margin-left:8px;font-size:11px;color:var(--muted)}.account-status{display:flex;gap:6px;flex-wrap:wrap}.account-row-actions{min-width:148px}.account-row-actions summary{min-height:44px;display:flex;align-items:center;padding:8px 12px;border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:12px;font-weight:600}.account-row-actions summary:after{content:"+";margin-left:auto;padding-left:12px}.account-row-actions[open] summary:after{content:"−"}.account-row-actions .acts{display:grid;gap:8px;padding-top:8px}.account-row-actions button{min-height:44px;width:100%;white-space:normal;text-align:left}@media (max-width:1000px){.account-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.account-toolbar{grid-template-columns:minmax(0,1fr)}.account-sheet .tw{max-height:none;overflow:visible;border:0}.account-sheet .tbl{min-width:0;border:0}.account-sheet .tbl th{position:static}.account-sheet .tbl td,.account-sheet .tbl td:first-child{border-right:0;width:auto;text-align:left;background:transparent;padding:10px 0}.account-sheet .tbl td:nth-child(2),.account-sheet .tbl td:nth-child(3),.account-sheet .tbl td:nth-child(5){min-width:0;max-width:none}.account-sheet .tbl tbody tr:nth-child(2n){background:var(--card)}.account-sheet .tbl tbody tr:hover{background:var(--card)}.account-row-actions{min-width:0}.account-sheet-meta{padding:12px}.account-directory{gap:16px}}.account-directory .modal{width:min(760px,calc(100vw - 24px));max-width:760px}.account-directory .modal-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid var(--border);padding:0;margin:16px;align-content:start}.account-directory .modal-body>.fld{margin:0;padding:16px;min-width:0;border-bottom:1px solid var(--border);font-size:12px;gap:10px}.account-directory .modal-body>.fld:nth-child(odd){border-right:1px solid var(--border)}.account-directory .modal-body>.fld .inp{min-height:44px;font-size:16px;width:100%;min-width:0}.account-directory .modal-body>.err{grid-column:1/-1;padding:12px}.account-directory .modal-actions{padding:16px}.account-directory .modal-actions button{min-height:44px;white-space:normal}@media (max-width:640px){.account-directory .modal-body{grid-template-columns:minmax(0,1fr);margin:12px}.account-directory .modal-body>.fld:nth-child(odd){border-right:0}.account-directory .modal-actions{flex-wrap:wrap}.account-directory .modal-actions button{flex:1 1 140px}}@keyframes workspace-enter{0%{opacity:0}to{opacity:1}}@keyframes workspace-heading-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:no-preference){.app .page,.portal .page{animation:workspace-enter .2s ease-out both}.app .page>.pagehead,.portal .page>.pagehead{animation:workspace-heading-enter .24s cubic-bezier(.2,.7,.3,1) both!important}.materials-page>.card{animation:workspace-enter .18s ease-out both!important}.app .rail .ri,.portal .ptab,.materials-page .chip{transition:background-color .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease}}@media (prefers-reduced-motion:reduce){.app .page,.portal .page,.app .page>*,.portal .page>*,.materials-page>.card{animation:none!important}.app .rail,.app .rail .ri,.portal .ptab,.materials-page .chip{transition:none!important}.app .scrim,.app .card.modal,.portal .scrim,.portal .card.modal{animation:none!important}}@media print{.app .page,.portal .page,.app .page>*,.portal .page>*,.materials-page>.card{animation:none!important}}@keyframes financial-bar-enter{0%{transform:scaleY(0);opacity:.35}to{transform:scaleY(1);opacity:1}}@media (prefers-reduced-motion:no-preference){.app .tipwrap svg .financial-bar,.portal .tipwrap svg .financial-bar{transform-box:fill-box;transform-origin:center bottom;animation:financial-bar-enter .65s cubic-bezier(.2,.75,.3,1) var(--bar-delay,0ms) both!important}}@media (prefers-reduced-motion:reduce){.app .tipwrap svg .financial-bar,.portal .tipwrap svg .financial-bar{animation:none!important;transform:none}}@media print{.app .tipwrap svg .financial-bar,.portal .tipwrap svg .financial-bar{animation:none!important;transform:none}}@keyframes financial-donut-enter{0%{stroke-dasharray:0 var(--ring-length);opacity:.25}to{stroke-dasharray:var(--segment-length) var(--segment-gap);opacity:1}}@media (prefers-reduced-motion:no-preference){.app .donut .financial-donut-segment,.portal .donut .financial-donut-segment{animation:financial-donut-enter .85s cubic-bezier(.2,.7,.3,1) both!important}}@media (prefers-reduced-motion:reduce){.app .donut .financial-donut-segment,.portal .donut .financial-donut-segment{animation:none!important;transition:none!important}}@media print{.app .donut .financial-donut-segment,.portal .donut .financial-donut-segment{animation:none!important}}@keyframes dashboard-panel-enter{0%{opacity:0}to{opacity:1}}@keyframes dashboard-metric-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:no-preference){.dashboard-motion>.workspace-greeting{animation:workspace-heading-enter .32s cubic-bezier(.2,.7,.3,1) backwards!important}.dashboard-motion>.pagehead{animation:workspace-heading-enter .32s 35ms cubic-bezier(.2,.7,.3,1) backwards!important}.app .dashboard-motion .card:not(.modal):not(.bellpanel),.portal .dashboard-motion .card:not(.modal):not(.bellpanel){animation:dashboard-panel-enter .36s 80ms ease-out backwards!important}.app .dashboard-motion .card.kpi,.portal .dashboard-motion .card.kpi{animation:dashboard-metric-enter .38s 60ms cubic-bezier(.2,.7,.3,1) backwards!important}.app .dashboard-motion .kpis>.kpi:nth-child(2),.portal .dashboard-motion .kpis>.kpi:nth-child(2){animation-delay:.1s!important}.app .dashboard-motion .kpis>.kpi:nth-child(3),.portal .dashboard-motion .kpis>.kpi:nth-child(3){animation-delay:.14s!important}.app .dashboard-motion .kpis>.kpi:nth-child(n+4),.portal .dashboard-motion .kpis>.kpi:nth-child(n+4){animation-delay:.18s!important}}@media (prefers-reduced-motion:reduce){.dashboard-motion .card,.dashboard-motion>.workspace-greeting,.dashboard-motion>.pagehead{animation:none!important}}@media print{.dashboard-motion .card,.dashboard-motion>.workspace-greeting,.dashboard-motion>.pagehead{animation:none!important}}.company-logo{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;box-shadow:none;border-radius:0;padding:8px 10px;max-width:100%;width:210px;flex-shrink:1}.company-logo img{display:block;width:100%;height:auto;object-fit:contain;max-width:100%}.login-company .company-logo{width:300px;padding:12px 16px}.app .rail-brand{padding:0 0 20px}.app .rail-brand .company-logo{width:100%;padding:6px 4px}.app .drawer-heading .company-logo{width:200px}.portal .plogo2{min-width:0}.portal .plogo2 .company-logo{width:190px;min-width:0;padding:4px 6px;height:auto;background:transparent}.portal .plogo2 .company-logo img{width:100%;height:auto}.portal .ptop{height:auto;min-height:68px}@media (max-width:900px){.login-company .company-logo{width:230px;padding:10px 12px}.portal .plogo2 .company-logo{width:160px;max-width:100%}.portal .plogo2{min-width:0}.app .drawer-heading .company-logo{max-width:calc(100% - 56px)}}@media (max-width:375px){.portal .plogo2 .company-logo{width:125px;padding:4px}.login-company .company-logo{width:210px}}.app .company-logo,.portal .plogo2 .company-logo{background:transparent;border:0;box-shadow:none}:root{color-scheme:light;--ui-ink:#302c24;--ui-muted:#665f52;--ui-bg:#f2f3f1;--ui-surface:#ffffff;--ui-border:#cabfa9;--ui-control:#faf3e6;--ui-hover:#e4d8c2;--ui-accent:#076b74;--ui-accent-hover:#055861;--ui-tint:#d0e2d7;--ui-shell:#f7f8f6;--ink:var(--ui-ink);--muted:var(--ui-muted);--bg:var(--ui-bg);--card:var(--ui-surface);--border:var(--ui-border);--border2:#aaa08a;--hover:var(--ui-hover);--primary:var(--ui-accent);--primary-h:var(--ui-accent-hover);--tint:var(--ui-tint);--focus:#00636d;--blue:var(--ui-accent);--track:#d9cfba;--grid:#d9cfba;--glass:var(--ui-surface);--glass-s:var(--ui-surface);--glass-b:var(--ui-border);--shadow:none;--ok-bg:#dfebd8;--ok:#34583c;--wn-bg:#f1e2b6;--wn:#735016;--bd-bg:#f0d9cf;--bd:#943f32;--gr-bg:#e2dccd;--gr:#605b50;--pos:#34583c;--neg:#943f32;--map-bg:#e7decc;--land:#f3ecdf;--land-s:#b2b8a1;--grat:#d4d2bd;--surface-radius:22px;--control-radius:9px;--surface-fill:#ffffff;--surface-rim:#fff6e0;--surface-shadow:0 2px 10px rgba(48,44,36,.045)}body{background:var(--bg);color:var(--ink)}.app,.portal{background:var(--bg);color:var(--ink);min-height:100dvh}.app .main{min-width:0;background:var(--ui-shell)}.app .page,.portal .page{min-width:0}.app .pagehead{padding:22px 0 18px}.app .pagehead h1,.portal .pagehead h1{font-size:25px;letter-spacing:-.035em;color:var(--ink)}.app .pagehead p,.portal .pagehead p{font-size:13px;line-height:1.6;margin:6px 0 0}.app .card,.portal .card,.app .card:hover,.portal .card:hover{background:var(--surface-fill);color:var(--ink);border:0;border-radius:var(--surface-radius);box-shadow:var(--surface-shadow);transform:none;backdrop-filter:none;-webkit-backdrop-filter:none}.app .ch,.portal .ch{min-width:0}.app .ch h3,.portal .ch h3{font-size:14px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}.app .kpis,.portal .kpis{background:transparent;border:0;border-radius:0;overflow:visible;gap:12px}.app .card.kpi,.portal .card.kpi{display:flex;flex-direction:column;gap:6px;min-width:0;min-height:140px;padding:16px 18px;overflow-wrap:anywhere}.kpi-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.kpi-heading>.l{min-width:0}.kpi-symbol{width:25px;height:25px;display:grid;place-items:center;flex:none;border-radius:50%;background:var(--ui-control);color:var(--muted)}.kpi-symbol svg{stroke-width:1.65}.app .kpi .k,.portal .kpi .k{font-size:29px;font-weight:650;line-height:1.25;letter-spacing:-.035em;margin:0 0 8px}.app .kpi .l,.portal .kpi .l{font-size:12px;line-height:1.5}.app .kpi-note,.portal .kpi-note{margin-top:auto;font-size:11px}.kpi-note>span{display:inline-block;max-width:100%;padding:4px 8px;background:var(--tint);color:var(--ink);border-radius:999px;overflow-wrap:anywhere}.app .rail{background:var(--ui-surface);color:var(--ink);border-right:1px solid var(--border);width:216px;padding:20px 12px}.app .rail-brand{padding:0 4px 20px;margin-bottom:12px;border-bottom:1px solid var(--border)}.app .railin{min-width:0}.app .rail .grp{gap:8px}.app .rail .ri,.app .rail .grp .ri.on,.app .rail .grp .ri.on:hover{display:flex;gap:10px;padding:6px 10px;min-height:46px;border-radius:12px;box-shadow:none;border:1px solid transparent;color:var(--muted);background:transparent}.app .rail .ri:hover{background:var(--hover)}.app .rail .grp .ri.on,.app .rail .grp .ri.on:hover{background:var(--tint);color:var(--ink);border-color:var(--border)}.app .rail .nav-label{font-size:13px}.nav-symbol{width:32px;height:32px;display:grid;place-items:center;flex:none;border-radius:50%}.nav-symbol svg{width:18px;height:18px;stroke-width:1.8}.app .rail .ri.on .nav-symbol{background:var(--ui-control);color:var(--primary);position:relative}.app .rail .ri.on .nav-symbol:after{content:"";position:absolute;bottom:-4px;width:5px;height:5px;border-radius:50%;background:var(--primary)}.app .rail .cnt,.portal .cnt2{background:var(--tint);color:var(--ink);border:0;font-size:10px}.app .rail .ri.bottom{margin-top:12px;border-top:1px solid var(--border);border-radius:0}.app .topbar,.portal .ptop{background:var(--ui-shell);border-color:var(--border);color:var(--ink)}.app .topbar{min-height:64px;padding:12px 24px}.app .crumb{font-size:12px}.app .ic,.portal .ic{color:var(--muted)}.app .topbar .ic.round,.portal .tools .ic.round{border-radius:50%;background:var(--ui-control);color:var(--muted);border-color:var(--border)}.app .av,.portal .av{background:var(--tint);color:var(--primary);border:1px solid var(--border)}.app .pb,.portal .pb{background:var(--primary);border:1px solid var(--primary);color:var(--card);border-radius:var(--control-radius);box-shadow:none;min-height:44px}.app .pb:hover,.portal .pb:hover{background:var(--primary-h)}.app .sc,.portal .sc{background:var(--ui-control);border:1px solid var(--border2);color:var(--ink);border-radius:var(--control-radius);box-shadow:none;min-height:44px}.app .sc:hover,.portal .sc:hover{background:var(--hover)}.app .inp,.portal .inp{background:var(--ui-control);color:var(--ink);border-color:var(--border2);border-radius:var(--control-radius);font-size:16px;min-height:44px}.app .inp::placeholder,.portal .inp::placeholder{color:var(--muted);opacity:1}.app input[type=checkbox],.portal input[type=checkbox]{accent-color:var(--primary)}.app button:focus-visible,.portal button:focus-visible,.app summary:focus-visible,.portal summary:focus-visible,.app a:focus-visible,.portal a:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.app .tbl th,.portal .tbl th{background:var(--hover);color:var(--muted);font-size:12px;font-weight:600;padding:12px;border-color:var(--border)}.app .tbl td,.portal .tbl td{font-size:13px;padding:12px;border-color:var(--border)}.app .b,.portal .b{border-radius:6px;font-size:11px;padding:3px 7px}.app .chip,.portal .ptab{border-radius:9px}.app .chip.on,.portal .ptab.on{background:var(--tint);color:var(--primary);border-color:var(--primary)}.app .card.modal,.portal .card.modal{padding:0;background:var(--card);border-radius:18px;max-height:100%;overflow:hidden;box-shadow:0 16px 48px #0003}.app .card.bellpanel,.portal .card.bellpanel{background:var(--card);border-radius:16px}.app .modal .modal-heading,.portal .modal .modal-heading{margin:0}.app .pcard.card{position:relative;text-align:left;border-color:var(--border2)}.app .pcard.card.on,.app .pcard.card.on:hover,.app .pcard.card[aria-pressed=true]{background:var(--tint);border-color:var(--primary);box-shadow:inset 4px 0 0 var(--primary)}.project-selected-label{font-size:12px;color:var(--muted);min-height:24px;margin-bottom:4px}.app .pcard.on .project-selected-label{color:var(--primary);font-weight:600}.materials-page .material-stock-meta,.materials-page .material-legend{font-size:12px}.materials-page .material-stock-row>.material-actions:empty{display:none}.materials-page .material-stock-bar{height:8px;border-radius:3px}.materials-page .material-manage summary{border:1px solid var(--border2);border-radius:9px;background:var(--ui-control);color:var(--primary)}.materials-page .chip.on{border-bottom:2px solid var(--primary)}.app .material-available:not(.low),.app .material-legend .available{background:#168d96}.app .material-reserved,.app .material-legend .reserved{background:#c9cfaf}.app .material-available.low,.app .material-legend .reorder{background:#b95845}.app .wf-form,.portal .client-payment{background:var(--hover);border-color:var(--border);border-radius:12px}.app .attendance-feedback{background:var(--ok-bg);color:var(--ok);border-color:var(--ok)}.app .account-sheet .tw,.app .account-sheet .tbl,.app .account-sheet .tbl th{background:var(--card)}.app .tipwrap svg text,.portal .tipwrap svg text{fill:var(--muted)}.app .donut text:first-of-type,.portal .donut text:first-of-type{fill:var(--ink)}.app .tipwrap svg line[stroke="#E8ECF2"],.portal .tipwrap svg line[stroke="#E8ECF2"]{stroke:var(--grid)}.budget-overview-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr);gap:16px;align-items:start;min-width:0}.budget-overview-panels{display:contents}.budget-trend-panel{grid-column:1;grid-row:1}.budget-distribution-panel{grid-column:2;grid-row:1}.budget-overview-summary{grid-column:1/-1;grid-row:2;min-width:0}.budget-project-panel{grid-column:1/-1;grid-row:3}.budget-overview-summary .kpis{margin:0}.budget-overview-layout>.card{min-width:0}.budget-distribution-panel .donut{max-width:190px;display:block;margin:10px auto 18px}.sg,.auth-surface.plogin{--ink:var(--ui-ink);--muted:var(--ui-muted);--mut:var(--ui-muted);--card:var(--ui-surface);--bg:var(--ui-bg);--border:var(--ui-border);--border2:var(--ui-border);--line:var(--ui-border);--hover:var(--ui-hover);--primary:var(--ui-accent);--focus:var(--ui-accent);--tint:var(--ui-tint);background:var(--bg);color:var(--ink)}.sg-form,.plogin .plogin-form{background:var(--ui-shell)}.sg-card,.plogin .pcard,.sg-card h1,.plogin .pcard h2{color:var(--ink)}.sg-card>.l,.plogin .pnote,.login-eyebrow,.sg-card .fld,.plogin .pf>span:first-child{color:var(--muted)}.sg-card .inp,.plogin .pform input{background:var(--ui-control);border-color:var(--border2);color:var(--ink);border-radius:9px}.sg-card .inp::placeholder,.plogin .pform input::placeholder{color:var(--muted)}.sg-card .eye,.plogin .ppw button{color:var(--muted)}.sg-card .pb,.plogin .pbtn{background:var(--primary);border-color:var(--primary);color:var(--card);border-radius:9px}.sg-links,.plinks2{color:var(--muted);border-color:var(--border)}.sg-links a,.plinks2 a{color:var(--primary)}.login-access-card{background:var(--surface-fill);color:var(--ink);border-color:var(--surface-rim);border-radius:16px}.login-access-card:hover{background:var(--hover);border-color:var(--primary)}.login-access-icon{background:var(--tint);color:var(--primary);border-radius:10px}.login-access-copy>span,.login-access-arrow,.login-help{color:var(--muted)}.login-help{border-color:var(--border)}.google-login-info .google-icon-button{background:var(--ui-control);color:var(--ink);border-color:var(--border2);border-radius:9px}.login-provider-divider{color:var(--muted)}.login-provider-divider:before,.login-provider-divider:after{background:var(--border2)}@media (min-width:1101px){.app .main{margin:14px 16px 14px 0;border:0;border-radius:28px}.app .topbar{border-radius:28px 28px 0 0}.app .page{padding:0 22px 28px}}@media (max-width:1100px){.budget-overview-layout{grid-template-columns:minmax(0,1fr)}.budget-trend-panel{grid-column:1;grid-row:1}.budget-overview-summary{grid-column:1;grid-row:2}.budget-distribution-panel{grid-column:1;grid-row:3}.budget-project-panel{grid-column:1;grid-row:4}}@media (max-width:900px){.app .rail{width:min(300px,calc(100% - 32px));background:var(--card);padding:16px 12px}.app .drawer-heading,.app .drawer-heading .ic{color:var(--ink)}.app .topbar{padding:10px 12px}.app .page{padding:0 14px 28px}}@media (max-width:640px){:root{--surface-radius:16px}.app .card.kpi,.portal .card.kpi{padding:13px;min-height:130px}.app .kpi .k,.portal .kpi .k{font-size:25px}.app .kpis,.portal .kpis{gap:10px}.app .pagehead h1,.portal .pagehead h1{font-size:22px}.app .table-cards .tbl td,.portal .table-cards .tbl td{padding:9px 0;background:transparent}.app .account-sheet .tbl td,.app .account-sheet .tbl td:first-child{padding:10px 0;border-right:0;background:transparent}.app .table-cards tbody tr,.portal .table-cards tbody tr{background:var(--card);border-color:var(--border);border-radius:12px}.portal .ptabs{grid-template-columns:repeat(3,minmax(0,1fr))}.portal .ptab{justify-content:center;flex-wrap:wrap;padding:10px 6px;font-size:13px}.portal-tab-label{overflow-wrap:anywhere}.app .card.modal,.portal .card.modal{padding:0}}@media print{.app,.portal,.app .main{background:#fff;margin:0}.app .kpi .l,.app .kpi .k,.portal .kpi .l,.portal .kpi .k{color:#111!important}.budget-overview-layout,.budget-overview-panels{display:block}}.rail-brand-mark,.workspace-header-logo{display:none}.workspace-greeting{padding:24px 0 8px;min-width:0}.workspace-greeting-title{font-size:clamp(23px,2.3vw,32px);font-weight:650;line-height:1.25;letter-spacing:-.035em;margin:0;color:var(--ink);overflow-wrap:anywhere}.workspace-greeting-date{font-size:12px;line-height:1.6;color:var(--muted);margin:8px 0 0}.workspace-greeting-date>span:last-child{color:var(--primary);font-weight:600}.app .pagehead,.portal .pagehead{padding:12px 0 18px}.app .pagehead h1,.portal .pagehead h1{font-size:19px;letter-spacing:-.02em}@media (min-width:901px){.app .rail{width:86px;padding:20px 10px;border-right:0;background:var(--ui-bg)}.app .rail-brand{padding:0 0 18px;margin-bottom:12px;display:flex;justify-content:center;border:0}.app .rail-brand>.company-logo{display:none}.rail-brand-mark{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--surface-rim);border-radius:15px;background:var(--ui-surface);color:var(--primary)}.app .railin{border:1px solid var(--surface-rim);border-radius:26px;padding:12px 3px;background:var(--ui-surface)}.app .rail .grp{gap:12px}.app .rail .ri,.app .rail .grp .ri.on,.app .rail .grp .ri.on:hover{justify-content:center;min-height:46px;padding:6px 0;border:0;background:transparent;border-radius:50%;position:relative;overflow:visible}.app .rail .nav-label{display:none}.app .rail .nav-symbol{width:36px;height:36px}.app .rail .ri.on .nav-symbol{background:var(--ui-control);box-shadow:0 2px 5px #45391f20}.app .rail .cnt{position:absolute;top:1px;right:0;min-width:16px;min-height:16px;font-size:9px;padding:1px 4px;background:var(--primary);color:var(--card)}.app .rail .ri.bottom{width:44px;margin:16px auto 0;border-top:0}.app .rail .ri.bottom>svg{width:20px}.workspace-header-logo{display:flex;align-items:center}.workspace-header-logo .company-logo{width:145px;padding:0}.app .topbar .crumb{margin-right:auto}.app .topbar{gap:20px}}@media (max-width:900px){.workspace-greeting{padding-top:18px}.workspace-greeting-title{font-size:24px}.workspace-greeting-date{font-size:12px}.app .rail .nav-label{display:block}.app .pagehead h1,.portal .pagehead h1{font-size:18px}}@media print{.workspace-header-logo{display:none}.workspace-greeting{padding-top:0}}.app .rail .railin{scrollbar-width:none;-ms-overflow-style:none}.app .rail .railin::-webkit-scrollbar{display:none;width:0;height:0}.app .pb,.app .sc,.portal .pb,.portal .sc,.app .pb.sm,.app .sc.sm,.portal .pb.sm,.portal .sc.sm{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;min-width:44px;padding:9px 14px;font-size:14px;font-weight:600;line-height:1.35;white-space:normal;text-align:center;text-decoration:none;max-width:100%;box-sizing:border-box}.app .pb.sm,.app .sc.sm,.portal .pb.sm,.portal .sc.sm{padding:8px 12px;font-size:13px}.app .pb svg,.app .sc svg,.portal .pb svg,.portal .sc svg{width:17px;height:17px;flex-shrink:0}.app .ic,.portal .ic{min-width:44px;min-height:44px;align-items:center;justify-content:center;flex-shrink:0}.app .chip,.portal .ptab{min-height:44px;padding:9px 13px;font-size:13px;line-height:1.4;white-space:normal}.app .acts,.portal .acts,.app .wf-buttons,.app .material-actions{gap:8px;align-items:center;min-width:0;flex-wrap:wrap}.app .acts>.pb,.app .acts>.sc,.portal .acts>.pb,.portal .acts>.sc,.app .wf-buttons>button{flex:0 1 auto}.app .ch,.portal .ch{gap:12px;align-items:center}.app .ch>.acts:empty,.portal .ch>.acts:empty{display:none}.app .ch>h3,.portal .ch>h3{flex:1 1 160px;min-width:0}.app .ch>.acts,.portal .ch>.acts{max-width:100%}.app .cell-value:has(>button),.portal .cell-value:has(>button){display:flex;align-items:center;flex-wrap:wrap;gap:8px}.app .row,.portal .row{gap:12px;min-width:0}.app .row>div:first-child,.portal .row>div:first-child{min-width:0;overflow-wrap:anywhere}.app .fld,.portal .fld{gap:8px;line-height:1.5}.app .wf-form label,.app .wf-filters label{font-size:13px;line-height:1.5}.app .wf-form input:not([type=checkbox]),.app .wf-form select,.app .wf-form textarea,.app .wf-filters input,.app .wf-filters select{font-family:inherit;font-size:16px;min-height:44px;min-width:0;max-width:100%;padding:10px 12px;border:1px solid var(--border2);border-radius:var(--control-radius);color:var(--ink);background:var(--ui-control)}.app .material-actions button,.app .account-row-actions button{font-size:13px;min-height:44px;padding:9px 12px;line-height:1.4}.app .account-row-actions summary,.app .material-manage summary{font-size:13px;line-height:1.4;min-height:44px}.app button:disabled,.portal button:disabled{opacity:.6;cursor:not-allowed}@media (max-width:900px){.app .ch>.acts,.portal .ch>.acts{width:100%;justify-content:flex-start}.app .ch>.acts>.pb,.app .ch>.acts>.sc,.portal .ch>.acts>.pb,.portal .ch>.acts>.sc{flex:1 1 140px}.app .topbar .tools{flex-wrap:nowrap}}@media (max-width:640px){.app .acts>.pb,.app .acts>.sc,.portal .acts>.pb,.portal .acts>.sc,.app .wf-buttons>button{flex:1 1 120px}.app .cell-value:has(>button)>button,.portal .cell-value:has(>button)>button{flex:1 1 120px;width:auto}.app .modal-actions>.pb,.app .modal-actions>.sc,.portal .modal-actions>.pb,.portal .modal-actions>.sc{flex:1 1 120px;min-height:48px}.app .account-row-actions .acts>button{width:100%}.app .row,.portal .row{flex-wrap:wrap}}:root{--chart-teal:#258a94;--chart-mint:#659f99;--chart-forest:#36776f;--chart-sage:#98afa0;--chart-pale:#becab1;--chart-cost:#b84b3d;--chart-income:#34754a;--chart-budget:#8c671f}.app .bar i,.portal .bar i{background:var(--primary)}.app .bar i.ok,.portal .bar i.ok{background:var(--ok)}.app .bar i.bd,.portal .bar i.bd{background:var(--neg)}.app .tipwrap svg line[stroke="#C3CCDA"],.portal .tipwrap svg line[stroke="#C3CCDA"]{stroke:var(--grid)}.sidebar-tooltip{position:fixed;z-index:1000;transform:translateY(-50%);max-width:200px;padding:10px 14px;border:1px solid #615844;border-radius:10px;background:#373329;color:#fff7e9;box-shadow:0 4px 14px #30251526;font:500 13px/1.4 IBM Plex Sans,system-ui,sans-serif;overflow-wrap:anywhere;pointer-events:none}.sidebar-tooltip:before{content:"";position:absolute;left:-5px;top:calc(50% - 5px);width:8px;height:8px;background:#373329;border-left:1px solid #615844;border-bottom:1px solid #615844;transform:rotate(45deg)}@media (prefers-reduced-motion:no-preference){.sidebar-tooltip{animation:fadeIn .12s ease-out}}@media (max-width:900px){.sidebar-tooltip{display:none}}.app .chips,.portal .chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px;align-items:center}.app .chips>.chip,.portal .chips>.chip,.app .chips>.chip:first-child,.app .chips>.chip:last-child,.portal .chips>.chip:first-child,.portal .chips>.chip:last-child{margin:0;border:1px solid var(--border2);border-radius:10px;min-height:44px;padding:9px 14px;max-width:100%;background:var(--ui-control);color:var(--ink)}.app .chips>.chip.on,.portal .chips>.chip.on{background:var(--tint);border-color:var(--primary);color:var(--primary);font-weight:600}.app .stack,.portal .stack,.app .g2,.app .g2b,.portal .g2,.portal .g2b{gap:16px}.app .page>.card+.card,.portal .page>.card+.card,.app .page>.card+.g2,.app .page>.card+.g2b,.portal .page>.card+.g2b{margin-top:16px}.app .page>.card+.chips,.portal .page>.card+.chips{margin-top:16px}.app .material-actions,.app .wf-buttons,.app .acts,.portal .acts{gap:8px}@media (max-width:640px){.app .chips,.portal .chips{gap:8px;margin-bottom:12px}.app .chips>.chip,.portal .chips>.chip{font-size:13px;padding:9px 12px}.app .stack,.portal .stack,.app .g2,.app .g2b,.portal .g2,.portal .g2b{gap:12px}.app .page>.card+.card,.portal .page>.card+.card,.app .page>.card+.g2,.app .page>.card+.g2b,.portal .page>.card+.g2b{margin-top:12px}}.chart-empty{padding:10px 12px;border:1px dashed var(--border2);border-radius:9px;text-align:center;background:var(--ui-control)}.app select,.portal select,.sg select{font-family:inherit;font-size:16px;line-height:1.5;min-height:44px;max-width:100%;color:var(--ink);background-color:var(--ui-control);border:1px solid var(--border2);border-radius:10px;padding:10px 38px 10px 14px;cursor:pointer;color-scheme:light}.app select:focus-visible,.portal select:focus-visible,.sg select:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.app select option,.portal select option,.sg select option{background:var(--ui-control);color:var(--ink);font:inherit}@supports (appearance:base-select){.app select,.portal select,.sg select,.app select::picker(select),.portal select::picker(select),.sg select::picker(select){-webkit-appearance:base-select;-moz-appearance:base-select;appearance:base-select}.app select,.portal select,.sg select{display:flex;align-items:center;gap:10px;padding:10px 14px}.app select::picker-icon,.portal select::picker-icon,.sg select::picker-icon{color:var(--muted);margin-left:auto;font-size:13px}.app select:open,.portal select:open,.sg select:open{border-color:var(--primary);outline:2px solid var(--tint);outline-offset:1px}.app select::picker(select),.portal select::picker(select),.sg select::picker(select){background:var(--ui-control);color:var(--ink);border:1px solid var(--border2);border-radius:12px;box-shadow:0 10px 28px #392f221f;padding:6px;margin-block:6px;max-height:min(360px,55dvh);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border2) transparent}.app select option,.portal select option,.sg select option{display:flex;align-items:center;gap:10px;min-height:44px;padding:10px 12px;border-radius:7px;line-height:1.4;white-space:normal;overflow-wrap:anywhere}.app select option:hover,.portal select option:hover,.sg select option:hover,.app select option:focus,.portal select option:focus,.sg select option:focus{background:var(--hover)}.app select option:checked,.portal select option:checked,.sg select option:checked{background:var(--tint);color:var(--primary);font-weight:600}.app select option::checkmark,.portal select option::checkmark,.sg select option::checkmark{color:var(--primary);margin-right:4px}.app select option:disabled,.portal select option:disabled,.sg select option:disabled{color:var(--muted);opacity:.65}}@media (pointer:coarse){.app select,.portal select,.sg select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;display:block;padding:10px 12px}.app select::picker(select),.portal select::picker(select),.sg select::picker(select){-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}.app .rail .ri .nav-symbol{position:relative;isolation:isolate}.app .rail .ri .nav-symbol svg{position:relative;z-index:1;transform-origin:center}.app .rail .ri:hover .nav-symbol,.app .rail .ri:focus-visible .nav-symbol{background:transparent;color:var(--primary);box-shadow:none}.app .rail .ri.on:hover .nav-symbol,.app .rail .ri.on:focus-visible .nav-symbol{background:transparent;color:var(--primary)}.app .rail .ri:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@keyframes sidebar-label-enter{0%{opacity:0;transform:translate(5px,-50%)}to{opacity:1;transform:translateY(-50%)}}@media (prefers-reduced-motion:no-preference){.app .rail .ri .nav-symbol{transition:background-color .16s ease,color .16s ease,box-shadow .18s ease,transform .18s cubic-bezier(.2,.7,.3,1)}.app .rail .ri .nav-symbol svg{transition:transform .18s cubic-bezier(.2,.7,.3,1)}.app .rail .ri:hover .nav-symbol,.app .rail .ri:focus-visible .nav-symbol{transform:none}.app .rail .ri:hover .nav-symbol svg,.app .rail .ri:focus-visible .nav-symbol svg{transform:scale(1.18)}.app .rail .ri:active .nav-symbol{transform:translateY(0) scale(.96)}.sidebar-tooltip{animation:sidebar-label-enter .16s cubic-bezier(.2,.7,.3,1) both}}@media (prefers-reduced-motion:reduce){.app .rail .ri,.app .rail .ri .nav-symbol,.app .rail .ri .nav-symbol svg{transition:none!important;transform:none!important}.sidebar-tooltip{animation:none!important}}@media (hover:none){.app .rail .ri:not(.on):hover .nav-symbol{background:transparent;box-shadow:none;transform:none}.app .rail .ri:hover .nav-symbol svg{transform:none}}.app .pagehead,.portal .pagehead{overflow:visible}.app .card h3,.portal .card h3,.app .card b,.portal .card b,.app .card strong,.portal .card strong{overflow-wrap:anywhere;word-break:normal}.app .l,.portal .l{line-height:1.55;overflow-wrap:anywhere}.app .kpi-note,.portal .kpi-note,.app .workspace-greeting-date,.portal .workspace-greeting-date{font-size:12px}.app .b,.portal .b{font-size:12px;line-height:1.45;white-space:normal;max-width:100%;overflow-wrap:anywhere;vertical-align:middle}.app .facts>div,.portal .facts>div,.app .cell-value,.portal .cell-value{min-width:0}.app .facts b,.portal .facts b,.app .kpi .k,.portal .kpi .k{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;line-height:1.35}.app .modal-heading h3,.portal .modal-heading h3,.app .ch h3,.portal .ch h3{white-space:normal;overflow-wrap:anywhere;line-height:1.5}.app .fld,.portal .fld,.app .wf-form label,.app .wf-filters label{overflow-wrap:anywhere}.app input,.app select,.app textarea,.portal input,.portal select,.portal textarea{font-family:inherit}.app .bellpanel b,.app .bellpanel .l,.portal .bellpanel b,.portal .bellpanel .l{white-space:normal;overflow-wrap:anywhere}.app .account-email{font-size:13px;overflow-wrap:anywhere}.app .items-copy b,.portal .items-copy b{line-height:1.5}@media (max-width:640px){.app .legend,.portal .legend,.app .lg,.portal .lg{flex-wrap:wrap;gap:8px}.app .lg span,.portal .lg span{min-width:0;overflow-wrap:anywhere}.app .lg b,.portal .lg b{overflow-wrap:anywhere}}.attendance-review-target{min-width:0;border-radius:var(--surface-radius);scroll-margin-top:96px}.attendance-review-target:focus{outline:2px solid var(--primary);outline-offset:5px}@media (hover:hover){.app .tbl tbody tr:not(.is-selected):hover,.portal .tbl tbody tr:not(.is-selected):hover{background:#086b740b}}.app .tbl tbody tr:focus-within,.portal .tbl tbody tr:focus-within{background:#086b7411}.app .tbl tbody tr.is-selected,.app .tbl tbody tr.is-selected:hover,.portal .tbl tbody tr.is-selected,.portal .tbl tbody tr.is-selected:hover{background:var(--tint)}.app .tbl tbody tr.is-selected>td:first-child,.portal .tbl tbody tr.is-selected>td:first-child{box-shadow:inset 3px 0 0 var(--primary)}.app .tbl tbody tr.is-selected .sc,.portal .tbl tbody tr.is-selected .sc{border-color:var(--primary);color:var(--primary)}@media (prefers-reduced-motion:no-preference){.app .tbl tbody tr,.portal .tbl tbody tr{transition:background-color .13s ease}}@media (max-width:640px){.app .table-cards .tbl tbody tr.is-selected,.portal .table-cards .tbl tbody tr.is-selected{background:var(--tint);border-color:var(--primary)}.app .table-cards .tbl tbody tr.is-selected>td:first-child,.portal .table-cards .tbl tbody tr.is-selected>td:first-child{box-shadow:none}}.app .workforce .sc.site-name-button,.app .workforce .sc.site-details-button{width:auto;min-width:0;min-height:36px;padding:6px 11px;font-size:13px;line-height:1.35;border-radius:8px;flex:0 0 auto;font-weight:600}@media (pointer:coarse),(max-width:640px){.app .workforce .sc.site-name-button,.app .workforce .sc.site-details-button{min-height:44px;padding:8px 12px;width:auto;flex:0 0 auto}}@media (min-width:641px) and (pointer:fine){.app .sc.sm,.portal .sc.sm{min-height:30px;min-width:0;padding:5px 9px;font-size:12px;line-height:1.3;border-radius:7px}.app .sc.sm svg,.portal .sc.sm svg{width:14px;height:14px}.app .workforce .sc.site-name-button,.app .workforce .sc.site-details-button{min-height:30px;min-width:0;padding:5px 9px;font-size:12px;line-height:1.3;border-radius:7px}.app .tbl .sc,.portal .tbl .sc{min-height:32px;min-width:0;padding:6px 10px;font-size:12px;line-height:1.35;border-radius:7px}.app .account-row-actions .sc{min-height:32px;font-size:12px;padding:6px 10px}.app .worker-actions .sc,.app .worker-actions .pb,.app .attendance-submit .sc,.app .attendance-submit .pb{min-height:44px;padding:9px 14px;font-size:14px}}@media (pointer:coarse),(max-width:640px){.app .sc.sm,.portal .sc.sm,.app .tbl .sc,.portal .tbl .sc{min-height:44px;padding:8px 12px;font-size:13px}}.app .rail .grp{position:relative;isolation:isolate}.sidebar-selection-marker{position:absolute;top:0;left:0;z-index:0;pointer-events:none;border-radius:11px;background:var(--tint);border:0;box-shadow:none}.app .rail .grp .ri{z-index:1;position:relative}.app .rail .grp .ri.on,.app .rail .grp .ri.on:hover{background:transparent;border-color:transparent;box-shadow:none;color:var(--primary)}.app .rail .grp .ri.on .nav-symbol{background:transparent;box-shadow:none}.app .rail .grp .ri.on .nav-symbol:after{display:none}@media (prefers-reduced-motion:no-preference){.sidebar-selection-marker{transition:transform .36s cubic-bezier(.22,.8,.25,1),width .22s ease,height .22s ease}}@media (prefers-reduced-motion:reduce){.sidebar-selection-marker{transition:none}}.app .card.kpi,.portal .card.kpi{min-height:156px;gap:10px;padding:18px 20px;border-radius:18px}.kpi-metric-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;min-height:52px}.app .kpi-metric-row .k,.portal .kpi-metric-row .k{font-size:29px;margin:0;line-height:1.2;letter-spacing:-.035em;flex:1;min-width:0}.app .kpi-heading>.l,.portal .kpi-heading>.l{font-size:12px;font-weight:500;line-height:1.5}.app .kpi-symbol,.portal .kpi-symbol{width:24px;height:24px;background:transparent;color:var(--muted)}.app .kpi-note,.portal .kpi-note{display:flex;flex-direction:column;align-items:flex-start;gap:4px;line-height:1.5;margin-top:auto}.app .kpi-note>span,.portal .kpi-note>span{background:transparent;color:var(--muted);padding:0;border-radius:0;font-size:12px}@media (min-width:901px){.app .rail-brand{display:none}}@media (max-width:640px){.app .card.kpi,.portal .card.kpi{padding:14px;min-height:146px;gap:8px}.kpi-metric-row{flex-wrap:wrap;gap:4px}.app .kpi-metric-row .k,.portal .kpi-metric-row .k{font-size:25px;flex-basis:100%}.app .kpi-note>span,.portal .kpi-note>span{font-size:12px}}.requirement-page .fld{margin-top:16px;max-width:480px}.requirement-page .chips{margin:0}.requirement-history{padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--ui-control)}.requirement-history>summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:600}.app .card,.portal .card,.app .card:hover,.portal .card:hover,.app .card.kpi,.portal .card.kpi{background:#fff;border:0;color:var(--ink);box-shadow:var(--surface-shadow)}.app .kpi .k,.portal .kpi .k{color:var(--ink)}.app .kpi .k.good,.portal .kpi .k.good{color:var(--pos)}.app .kpi .k.bad,.portal .kpi .k.bad{color:var(--neg)}.app .kpi .k.warn,.portal .kpi .k.warn{color:var(--wn)}.app .pcard.card.on,.app .pcard.card.on:hover,.app .pcard.card[aria-pressed=true]{background:#fff;border:0;box-shadow:inset 4px 0 0 var(--primary),var(--surface-shadow)}.login-access-card,.login-access-card:hover{background:#fff;border:0;box-shadow:var(--surface-shadow)}.app .card.modal,.portal .card.modal,.app .card.bellpanel,.portal .card.bellpanel{background:#fff;border:0;box-shadow:0 12px 36px #302c241a}.app .kcard,.app .wkc,.app .wf-form,.app .folders>div,.app .requirement-history,.app .foreman-worker-summary,.app .foreman-filters.filters-open,.portal .client-payment{background:#fff;border:0;border-radius:16px;box-shadow:var(--surface-shadow);color:var(--ink)}.app .folders>div{padding:16px}.gate .gate-card{background:#fff;border:0;border-radius:20px;box-shadow:var(--surface-shadow)}.sg .sg-card,.plogin .pcard{background:#fff;border:0;border-radius:20px;box-shadow:var(--surface-shadow);padding:28px}.app .tipcard,.portal .tipcard{background:#fff;border:0;box-shadow:0 8px 24px #302c241a;backdrop-filter:none;-webkit-backdrop-filter:none}@media (max-width:900px){.app .table-cards .tbl tbody tr,.app-foreman .table-cards .tbl tbody tr,.portal .table-cards .tbl tbody tr{background:#fff;border:0;border-radius:14px;box-shadow:var(--surface-shadow)}.app .table-cards .tbl tbody tr.is-selected,.portal .table-cards .tbl tbody tr.is-selected{background:#fff;border:0;box-shadow:inset 3px 0 0 var(--primary),var(--surface-shadow)}}@media (max-width:640px){.sg .sg-card,.plogin .pcard{padding:22px 18px}.app .kcard,.app .wkc,.app .wf-form,.portal .client-payment{border-radius:14px}}.app .rail .ri:hover,.app .rail .ri:focus-visible{background:transparent;box-shadow:none}.app .rail .ri .nav-symbol,.app .rail .ri:hover .nav-symbol,.app .rail .ri:focus-visible .nav-symbol,.app .rail .ri.on:hover .nav-symbol{background:transparent;box-shadow:none}.app .main{border:0;box-shadow:none}.project-dropdown-layout{display:flex;flex-direction:column;gap:16px;min-width:0}.project-picker-toolbar{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;min-width:0;margin-bottom:2px}.app .project-dropdown-layout .mobile-project-picker{display:grid;gap:6px;margin:0;width:min(100%,380px);font-size:13px;font-weight:600}.project-picker-toolbar>.l{padding-bottom:12px;font-size:12px}@media (max-width:640px){.project-picker-toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}.app .project-dropdown-layout .mobile-project-picker{width:100%}.project-picker-toolbar>.l{padding:0}.project-dropdown-layout{gap:12px}}.app .chips>.chip,.portal .chips>.chip,.app .chips>.chip:first-child,.app .chips>.chip:last-child,.portal .chips>.chip:first-child,.portal .chips>.chip:last-child{width:auto;min-width:0;flex:0 0 auto;border-radius:999px;padding:7px 14px;min-height:36px;font-size:13px;line-height:1.35;white-space:normal}@media (pointer:coarse),(max-width:640px){.app .chips>.chip,.portal .chips>.chip,.app .chips>.chip:first-child,.app .chips>.chip:last-child,.portal .chips>.chip:first-child,.portal .chips>.chip:last-child{min-height:44px;padding:9px 14px}}.page-title-accessible{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.workspace-greeting{padding-bottom:20px}.app .stack>:is(.kpis,.g2,.g2b,.chips,.fld),.portal .stack>:is(.kpis,.g2,.g2b,.chips,.fld){margin-block:0}.app .card>.ch:last-child,.portal .card>.ch:last-child{margin-bottom:0}.app .card>p.l,.portal .card>p.l{line-height:1.65;margin:0 0 16px;max-width:80ch}.app .card>p.l:last-child,.portal .card>p.l:last-child{margin-bottom:0}.app .card>.row:first-of-type,.portal .card>.row:first-of-type{border-top:0;padding-top:0}.app .card>.row:last-child,.portal .card>.row:last-child{padding-bottom:0}.app .row>:is(.pb,.sc),.portal .row>:is(.pb,.sc){flex-shrink:0}.app .admin-project-summary{margin-bottom:16px}.workspace-reference{background:var(--card);border:0;border-radius:var(--surface-radius);box-shadow:var(--surface-shadow);min-width:0}.workspace-reference>summary{cursor:pointer;min-height:48px;padding:16px 20px;font-size:14px;font-weight:600;list-style-position:inside}.workspace-reference-body{padding:0 20px 20px;min-width:0}.workspace-reference[open]>summary{color:var(--primary)}.app .account-toolbar .fld{margin-bottom:0}.app .account-sheet-meta{gap:8px 16px;flex-wrap:wrap}@media (max-width:640px){.app .row>:is(.pb,.sc),.portal .row>:is(.pb,.sc){flex-shrink:1}.workspace-reference>summary{padding:14px 16px}.workspace-reference-body{padding:0 16px 16px}}.app.top-navigation-app{display:block}.top-navigation-app .main{width:100%;margin:0;border-radius:0}.top-navigation-app>.topbar{border-radius:0;gap:16px;background:var(--ui-shell);border-bottom:0;box-shadow:none;min-height:76px}.top-navigation-app .page>.crumb{padding-top:16px;font-size:12px;display:flex;align-items:center;gap:8px}.top-navigation-app .workspace-greeting{padding-top:12px}@media (min-width:901px){.top-navigation-app>.topbar{display:flex;flex-wrap:nowrap;padding:12px 24px}.top-navigation-app .rail{position:static;inset:auto;width:auto;height:auto;min-width:0;flex:1;display:flex;flex-direction:row;align-items:center;padding:0;background:transparent;border:0}.top-navigation-app .rail .railin{overflow:visible;padding:0 12px;border:0;background:#fff;border-radius:999px;box-shadow:var(--surface-shadow);width:max-content;max-width:100%;flex:0 1 auto;min-width:0;margin-inline:0}.top-navigation-app .rail .grp{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:flex-start;gap:12px}.top-navigation-app .rail .grp .ri{width:auto;min-width:44px;min-height:44px;height:auto;flex:0 0 auto;padding:6px 10px;gap:7px;border-radius:12px;animation:none}.top-navigation-app .rail .grp .ri .nav-label{display:block;flex:none;font-size:13px;line-height:1.4;white-space:normal}.top-navigation-app .rail .grp .ri .nav-symbol{width:24px;height:24px}.top-navigation-app .rail .grp .ri .cnt{position:static;flex:none;margin-left:2px}.top-navigation-app .rail .ri.bottom,.top-navigation-app .rail-brand,.top-navigation-app .drawer-heading{display:none}.top-navigation-app .rail .cnt{right:auto;top:auto}.top-navigation-app .sidebar-selection-marker{border-radius:10px}.top-navigation-app .workspace-header-logo{flex:0 0 145px}.top-navigation-app .topbar .tools{margin:0;flex:none}.sidebar-tooltip{width:180px;text-align:center}.sidebar-tooltip:before{display:none}}@media (max-width:900px){.top-navigation-app>.topbar{flex-wrap:nowrap;gap:8px;padding:10px 12px}.top-navigation-app>.topbar:has(.nav-open){z-index:60}.top-navigation-app .workspace-header-logo{display:flex;align-items:center;min-width:0;flex:1}.top-navigation-app .workspace-header-logo .company-logo{width:min(145px,100%);padding:0}.top-navigation-app .topbar .tools{margin-left:auto;gap:6px}.top-navigation-app .nav-toggle{min-width:44px;width:44px;padding:8px;flex:none}.top-navigation-app .nav-toggle-label{display:none}}@media print{.top-navigation-app>.topbar{display:none}}.nav-more{position:relative;flex:none}.nav-more-panel{position:absolute;right:0;top:calc(100% + 12px);width:260px;max-width:calc(100vw - 24px);max-height:65dvh;overflow-y:auto;padding:8px;background:var(--card);border-radius:16px;box-shadow:0 12px 36px #302c2426;z-index:40}@media (min-width:901px){.top-navigation-app .rail .railin{box-sizing:border-box}.top-navigation-app .rail .grp .nav-overflow-item{display:none}.top-navigation-app .rail .grp .ri .nav-label{white-space:nowrap}.top-navigation-app .rail .nav-more-panel .ri{width:100%;justify-content:flex-start;padding:10px;gap:10px}.top-navigation-app .rail .nav-more-panel .ri.on{background:var(--tint)}}@media (max-width:900px){.nav-more{display:none}}.top-navigation-app .sidebar-selection-marker{border-radius:999px;background:#16764f}@media (min-width:901px){.top-navigation-app .rail .grp .ri{width:max-content;flex:0 0 auto;padding:4px 8px;gap:3px;border-radius:999px}.top-navigation-app .rail .grp .ri .nav-label{flex:0 0 auto}.top-navigation-app .rail .nav-more-panel .ri{border-radius:12px}.top-navigation-app .rail .nav-more-panel .ri.on{background:#dceedd}}.top-navigation-app .rail .grp>.ri.on,.top-navigation-app .rail .grp>.ri.on:hover,.top-navigation-app .rail .grp>.ri.on .nav-symbol,.top-navigation-app .rail .grp>.ri.on:hover .nav-symbol,.top-navigation-app .rail .nav-more>.ri.on,.top-navigation-app .rail .nav-more>.ri.on:hover{color:#fff}@media (min-width:901px){.top-navigation-app .rail .grp>.ri .nav-label,.top-navigation-app .rail .nav-more>.ri .nav-label{font-size:12px;font-weight:500}.top-navigation-app .rail .grp>.ri .nav-symbol{width:20px;height:20px}.top-navigation-app .rail .grp>.ri .nav-symbol svg{width:16px;height:16px}.top-navigation-app .rail .grp>.ri.on .cnt{background:#e0f2e7;color:#125a3d}}@media (min-width:901px){.app.top-navigation-app .rail .grp>.ri,.app.top-navigation-app .rail .grp>.ri.on,.app.top-navigation-app .rail .grp>.ri.on:hover,.app.top-navigation-app .rail .nav-more>.ri,.app.top-navigation-app .rail .nav-more>.ri.on{width:max-content;min-width:44px;height:44px;min-height:44px;flex:0 0 auto;padding:7px 12px;gap:3px;border:0;border-radius:999px;box-sizing:border-box}.app.top-navigation-app .rail .nav-more-panel .ri,.app.top-navigation-app .rail .nav-more-panel .ri.on,.app.top-navigation-app .rail .nav-more-panel .ri.on:hover{width:100%;min-width:0;height:auto;min-height:44px;justify-content:flex-start;padding:10px 12px;gap:8px;border-radius:12px}.app.top-navigation-app .rail .nav-more-panel .ri .nav-label{white-space:normal;overflow-wrap:anywhere;flex:1;min-width:0}}@media (min-width:901px){.app.top-navigation-app .rail .grp>.ri[data-nav-name=Payroll]{gap:0}.app.top-navigation-app .rail .grp>.ri[data-nav-name=Payroll] .nav-symbol{width:18px}}@media (min-width:901px){.app.top-navigation-app .rail .railin{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--border) transparent;overscroll-behavior-inline:contain}.app.top-navigation-app .rail .grp{width:max-content;min-width:0;max-width:none;flex-wrap:nowrap;padding:0 2px}}@media (min-width:901px){.app.top-navigation-app>.topbar{gap:10px;padding-inline:16px}.app.top-navigation-app .workspace-header-logo{flex-basis:120px}.app.top-navigation-app .workspace-header-logo .company-logo{width:120px}.app.top-navigation-app .rail .railin{overflow:visible;padding-inline:8px}.app.top-navigation-app .rail .grp{width:max-content;max-width:100%;gap:4px;padding:0}.app.top-navigation-app .rail .grp>.ri,.app.top-navigation-app .rail .grp>.ri.on,.app.top-navigation-app .rail .grp>.ri.on:hover{padding-inline:7px;gap:3px}.app.top-navigation-app .rail .grp>.ri .nav-label{font-size:12px}}@media (min-width:901px) and (max-width:1199px){.app.top-navigation-app .rail{position:fixed;z-index:60;left:0;top:0;width:min(300px,calc(100% - 32px));height:100dvh;visibility:hidden;transform:translate(-100%);display:flex;flex-direction:column;padding:16px 12px;background:var(--card)}.app.top-navigation-app .rail.nav-open{visibility:visible;transform:none}.app.top-navigation-app .rail .railin{width:100%;overflow-y:auto;padding:0;background:transparent;box-shadow:none;flex:1}.app.top-navigation-app .rail .grp{width:100%;max-width:100%;flex-direction:column;gap:6px}.app.top-navigation-app .rail .grp>.ri,.app.top-navigation-app .rail .grp>.ri.on,.app.top-navigation-app .rail .grp>.ri.on:hover{width:100%;justify-content:flex-start;padding:10px 12px;gap:10px;height:auto;min-height:44px}.app.top-navigation-app .rail .grp>.ri .nav-label{font-size:14px}.app.top-navigation-app .drawer-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.app.top-navigation-app .drawer-heading .company-logo{width:180px}.app.top-navigation-app .rail .ri.bottom{display:flex;width:100%;margin-top:12px;justify-content:flex-start;gap:10px}.app.top-navigation-app .rail .ri.bottom .nav-label{display:block}.app.top-navigation-app .nav-toggle{display:flex;width:44px;min-width:44px;justify-content:center}.app.top-navigation-app .nav-toggle-label{display:none}.app.top-navigation-app .topbar .tools{margin-left:auto}.app.top-navigation-app .nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:59;background:#0008;border:0;width:100%;height:100%;border-radius:0}.app.top-navigation-app>.topbar:has(.nav-open){z-index:60}}@media (min-width:1200px){.app.top-navigation-app>.topbar{justify-content:space-between}.app.top-navigation-app .rail{flex:1;min-width:0}.app.top-navigation-app .rail .railin{width:100%;flex:1}.app.top-navigation-app .rail .grp{width:100%;justify-content:space-between;gap:4px}.app.top-navigation-app .topbar .tools{margin-left:0;flex-shrink:0}}.app.top-navigation-app .rail .cnt,.app.top-navigation-app .rail .grp>.ri.on .cnt{background:#dc2626;color:#fff}@media (min-width:1200px){.app.top-navigation-app.compact-navigation .rail .grp{justify-content:center;gap:clamp(20px,3vw,48px)}}@media (min-width:1200px){.app.top-navigation-app.compact-navigation .rail{justify-content:center}.app.top-navigation-app.compact-navigation .rail .railin{width:max-content;max-width:100%;flex:0 1 auto;margin-inline:auto}.app.top-navigation-app.compact-navigation .rail .grp{width:max-content;max-width:100%}}.app.top-navigation-app .topbar .tools .ic.round{background:#fff;color:#526258;border:0;box-shadow:var(--surface-shadow)}.app.top-navigation-app .topbar .tools .ic.round:hover{background:#edf5ee;color:#16764f}.app.top-navigation-app .topbar .tools .av{background:#16764f;color:#fff;border:0;box-shadow:none}.app.top-navigation-app .topbar .tools .av:hover{background:#115d3e}.app.top-navigation-app .topbar .tools .dot{background:#dc2626;color:#fff}.app .tipwrap>.chart-plot,.portal .tipwrap>.chart-plot{max-height:320px;margin-inline:auto}.app .card:has(.chart-plot),.portal .card:has(.chart-plot){padding:18px 20px}.app .card:has(.chart-plot)>.ch,.portal .card:has(.chart-plot)>.ch{margin-bottom:10px}@media (max-width:640px){.app .card:has(.chart-plot),.portal .card:has(.chart-plot){padding:16px}}.chart-numbers-menu{position:relative}.chart-numbers-menu>summary{margin:0;min-height:44px;display:flex;align-items:center;gap:8px;font-size:13px;list-style:none;padding:8px 10px;border-radius:9px;background:var(--ui-shell);text-decoration:none}.chart-numbers-menu>summary:before{content:"▸"}.chart-numbers-menu[open]>summary:before{content:"▾"}.chart-numbers-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:20;width:min(580px,calc(100vw - 56px));max-height:55dvh;overflow:auto;padding:16px;background:var(--card);border-radius:14px;box-shadow:0 10px 32px #302c2426}@media (max-width:900px){.chart-numbers-panel{left:0;right:auto}}.chart-figure-actions{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px 24px;margin-top:8px}.chart-figure-actions>details{min-width:0;flex:0 1 auto}.chart-figure-actions>details[open]{flex-basis:100%;order:1}.chart-figure-actions>details>summary{display:list-item;list-style:disclosure-closed inside;min-height:44px;margin:0;padding:10px 0;font-size:13px;background:transparent;text-decoration:underline;text-decoration-color:var(--primary);text-underline-offset:4px}.chart-figure-actions>details[open]>summary{list-style-type:disclosure-open}.chart-figure-actions .chart-numbers-menu>summary:before{content:none}.budget-overview-layout .budget-project-panel{width:100%;max-width:600px;justify-self:start}.project-budget-row{padding:14px 0;min-width:0}.project-budget-row:first-child{padding-top:0}.project-budget-row:last-child{padding-bottom:0}.project-budget-row+.project-budget-row{border-top:1px solid var(--border)}.project-budget-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}.project-budget-heading>div{min-width:0;flex:1}.project-budget-heading strong{font-size:14px;line-height:1.5;overflow-wrap:anywhere}.project-budget-heading .b{flex:none;max-width:45%}.project-budget-figures{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;margin-bottom:8px;font-size:12px;line-height:1.6;font-variant-numeric:tabular-nums}.project-budget-figures>span{min-width:0;overflow-wrap:anywhere}.project-budget-progress{display:flex;align-items:center;gap:12px;min-width:0}.project-budget-progress .bar{flex:1;min-width:0;height:7px}.project-budget-progress>span{flex:none;font-size:12px;font-variant-numeric:tabular-nums}@media (max-width:480px){.project-budget-figures{flex-direction:column}.project-budget-heading{gap:8px}.project-budget-heading .b{font-size:11px}}.app .budget-project-panel .project-budget-row,.app .budget-project-panel .project-budget-row:hover{transform:none;animation:none;transition:none;position:static;cursor:default}.app .budget-project-panel .project-budget-heading,.app .budget-project-panel .project-budget-figures,.app .budget-project-panel .project-budget-progress{transform:none;animation:none;transition:none}.project-budget-toolbar{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:18px}.project-budget-toolbar .fld{flex:1 1 220px;margin:0;font-size:12px;min-width:0}.project-budget-toolbar>.l{padding-bottom:10px;font-size:12px}.project-budget-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:14px;margin-top:16px;border-top:1px solid var(--border)}.project-budget-pagination .acts{gap:8px}@media (max-width:480px){.project-budget-pagination .acts{width:100%}.project-budget-pagination .acts>button{flex:1}.project-budget-toolbar{gap:4px}.project-budget-toolbar>.l{padding-bottom:0}}.budget-project-panel .project-budget-row{padding-block:10px}.budget-project-panel .project-budget-row:first-child{padding-top:0}.budget-project-panel .project-budget-row:last-child{padding-bottom:0}.budget-project-panel .project-budget-heading{margin-bottom:5px;gap:8px}.budget-project-panel .project-budget-heading strong{font-size:13px}.budget-project-panel .project-budget-heading .l{font-size:11px}.budget-project-panel .project-budget-heading .b{font-size:11px;padding:2px 6px;line-height:1.4}.budget-project-panel .project-budget-figures{margin-bottom:5px;gap:3px 12px;font-size:12px}.budget-project-panel .project-budget-progress .bar{height:6px}.budget-project-panel .project-budget-progress>span{font-size:11px}.budget-project-panel .project-budget-toolbar{margin-bottom:12px}.budget-project-panel .project-budget-search{display:block;width:190px;max-width:100%;margin:0}.app .budget-project-panel .project-budget-search .inp{margin:0;width:100%;min-height:36px;padding:7px 10px;font-size:16px;border:0;border-radius:999px;background:var(--ui-shell);box-shadow:none}.budget-project-panel .project-budget-toolbar>.l{padding-bottom:0}@media (max-width:900px){.app .budget-project-panel>.ch>.acts{width:auto;flex:0 1 190px}.budget-project-panel .project-budget-search{width:100%}}@media (pointer:coarse){.app .budget-project-panel .project-budget-search .inp{min-height:44px}}.app .budget-overview-layout .budget-project-panel{padding:16px}.app .budget-project-panel>.ch{margin-bottom:10px}.app.app-budget .page>:is(.kpis,.chips,.card,.stack,.budget-request-layout,.budget-expense-filters){width:100%;max-width:100%}.app.app-budget .card:not(.modal):not(.bellpanel):not(.kpi){padding:16px 18px}.app.app-budget .card.kpi{padding:14px 16px;min-height:124px;gap:6px}.app.app-budget .kpi-metric-row{min-height:38px}.app.app-budget .kpi-metric-row .k{font-size:26px}.app.app-budget .card>.ch{margin-bottom:12px}.app.app-budget .tbl td{padding:10px 12px;line-height:1.5}.app.app-budget .row{padding-block:10px;gap:8px 12px;align-items:center}.app.app-budget .wf-filters{gap:10px}.app.app-budget .materials-page .material-stock-row{padding-block:10px}.budget-request-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}.budget-expense-filters{display:flex;justify-content:flex-end;margin-bottom:12px}.budget-compact-search{width:220px;max-width:100%}.app .budget-compact-search .inp{border:0;background:var(--card);border-radius:999px;box-shadow:var(--surface-shadow);margin:0;min-height:36px;padding:8px 12px;font-size:16px}@media (min-width:1300px){.budget-request-layout{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.app.app-budget .card:not(.modal):not(.bellpanel):not(.kpi){padding:14px}.app.app-budget .card.kpi{padding:12px;min-height:124px}.app.app-budget .kpi-metric-row .k{font-size:24px}.app.app-budget .table-cards .tbl td{padding:8px 0}.budget-request-layout{gap:12px}}@media (pointer:coarse){.app .budget-compact-search .inp{min-height:44px}}.app .legend .chart-series-key,.portal .legend .chart-series-key{gap:8px;padding:5px 9px;border-radius:8px;background:var(--ui-shell);color:var(--ink);font-size:13px;font-weight:500}.chart-series-key svg{flex:none}.tip-series-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;flex:none}.tipcard .tr>span{display:flex;align-items:center;min-width:0}.budget-distribution-panel .lg{gap:10px;padding:9px 4px;min-width:0}.budget-distribution-panel .lg>i{width:12px;height:12px;flex:none;border-radius:3px}.budget-distribution-panel .lg>span:not(.pc){min-width:0;overflow-wrap:anywhere;color:var(--ink);font-size:13px}.budget-distribution-panel .lg>b{font-size:13px;font-variant-numeric:tabular-nums}.budget-distribution-panel .lg .pc{color:var(--muted);font-size:12px;width:38px}.app .pb,.portal .pb{background:#16764f;border-color:#16764f;color:#fff;border-radius:10px}.app .pb:hover:not(:disabled),.portal .pb:hover:not(:disabled){background:#115d3e;border-color:#115d3e}.app .sc,.portal .sc{background:#fff;border-color:#d9e1db;color:var(--ink);border-radius:10px}.app .sc:hover:not(:disabled),.portal .sc:hover:not(:disabled){background:#edf5ee;border-color:#b8cdbd}.app .chips>.chip,.portal .chips>.chip{background:#fff;border-color:#d9e1db}.app .chips>.chip.on,.portal .chips>.chip.on{background:#e2f0e5;border-color:#b8d6bf;color:#145f40}.app .inp,.portal .inp,.app select,.portal select{background-color:#f7f8f6;border-color:#d9e1db}.app .inp:focus-visible,.portal .inp:focus-visible{outline:2px solid #16764f;outline-offset:2px}.app .card>.ch,.portal .card>.ch{row-gap:10px}.app .card>.ch>.acts,.portal .card>.ch>.acts{gap:8px}@media (prefers-reduced-motion:no-preference){.app .pb,.app .sc,.portal .pb,.portal .sc{transition:background-color .14s ease,border-color .14s ease}}.app .project-budget-search .inp,.app .budget-compact-search .inp{border:0}@media (min-width:1200px){.app.top-navigation-app .main>.page{padding-left:22px;padding-right:22px}}.app .b.review,.portal .b.review{background:#e3edfc;color:#24518c}.app .b.paid,.portal .b.paid{background:#d9f1ec;color:#146454}.app .b.returned,.portal .b.returned{background:#ffead5;color:#934412}.app .payroll-status-filter{display:block;width:260px;max-width:100%;margin-bottom:14px;font-size:12px;font-weight:500;color:var(--muted)}.app .payroll-status-filter select.inp{width:100%;min-height:36px;padding:7px 12px;font-size:16px;line-height:1.4;border-radius:10px;margin-top:5px}@media (pointer:coarse){.app .payroll-status-filter select.inp{min-height:44px}}.payroll-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}@media (max-width:640px){.payroll-pagination .acts{width:100%}.payroll-pagination .acts>button{flex:1}}.payroll-list-filters{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px;margin-bottom:14px}.app .payroll-list-filters .payroll-status-filter{margin-bottom:0}.payroll-batch-search{display:block;width:280px;max-width:100%;font-size:12px;font-weight:500;color:var(--muted)}.app .payroll-batch-search .inp{min-height:36px;margin-top:5px;padding:7px 12px;font-size:16px;line-height:1.4}@media (max-width:640px){.payroll-list-filters>label{flex:1 1 220px;width:100%}}@media (pointer:coarse){.app .payroll-batch-search .inp{min-height:44px}}.payroll-status-picker{position:relative}.payroll-status-trigger{width:100%;min-height:36px;margin-top:5px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 12px;border:1px solid #d9e1db;border-radius:10px;background:#f7f8f6;color:var(--ink);font:inherit;font-size:16px;text-align:left}.payroll-status-options{position:absolute;left:0;top:100%;z-index:35;width:100%;min-width:0;padding:6px;background:#fff;border-radius:12px;box-shadow:0 10px 30px #302c2426;max-height:340px;overflow-y:auto}.payroll-status-options>button{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:44px;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:var(--ink);font:inherit;font-size:13px;text-align:left;white-space:normal}.payroll-status-options>button:hover,.payroll-status-options>button:focus-visible{background:#edf5ee}.payroll-status-options>button[aria-selected=true]{background:#e2f0e5;color:#145f40;font-weight:600}@media (pointer:coarse){.payroll-status-trigger{min-height:44px}}.progress-detail-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start;margin-bottom:16px;min-width:0}.progress-detail-layout>.card{min-width:0}.progress-months-card .mlist{margin-top:0}.progress-months-card .mrow summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;align-items:center;padding-block:12px}.progress-months-card .mrow summary>b{grid-column:1/-1}.progress-months-card .mrow summary>*{min-width:0;overflow-wrap:anywhere}.progress-months-card .wkc p{overflow-wrap:anywhere}@media (max-width:1100px){.progress-detail-layout{grid-template-columns:minmax(0,1fr)}}@media (max-width:640px){.progress-detail-layout{gap:12px;margin-bottom:12px}}.weekly-report-details{min-width:0}.weekly-report-details>summary{cursor:pointer;min-height:44px;padding:10px 0;font-size:13px;color:var(--primary);font-weight:500}.weekly-report-details p{font-size:13px;line-height:1.6;overflow-wrap:anywhere;max-width:420px}.progress-overview-grid{align-items:stretch}.progress-overview-grid>.card{height:100%;box-sizing:border-box}.progress-site-updates .row{align-items:flex-start;gap:10px}.progress-site-updates .row>div:first-child{min-width:0;flex:1 1 160px}.progress-site-updates .row b{font-size:14px;line-height:1.55}.progress-site-updates .row .l{font-size:12px;line-height:1.6;margin-top:4px}.progress-site-updates .row>.b{flex:none;max-width:35%}@media (max-width:1100px){.progress-overview-grid>.card{height:auto}}.progress-overview-toolbar{display:flex;align-items:flex-end;gap:12px 20px;flex-wrap:wrap;min-width:0}.progress-project-select{display:block;width:280px;max-width:100%;font-size:12px;font-weight:500;color:var(--muted)}.app .progress-project-select .inp{margin-top:5px;background:#fff;border:0;border-radius:10px;min-height:44px}.progress-project-location{flex:1;min-width:120px;padding-bottom:10px;overflow-wrap:anywhere}.progress-overview-toolbar>button{margin-bottom:4px}.progress-overview>.progress-detail-layout{margin-bottom:0}.progress-overview .progress-detail-layout>.card{padding:18px 20px;border-radius:20px}.progress-overview .progress-site-updates>.ch{margin-bottom:8px}.progress-update-list{display:flex;flex-direction:column;min-width:0}.progress-update-item{padding:14px 0;min-width:0}.progress-update-item+.progress-update-item{border-top:1px solid #e8ece8}.progress-update-item:last-child{padding-bottom:0}.progress-update-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.progress-update-meta time{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.progress-update-meta .b{font-size:11px;padding:3px 7px}.progress-update-item p{margin:8px 0 6px;font-size:14px;font-weight:500;line-height:1.6;overflow-wrap:anywhere}.progress-update-item>.l{font-size:12px}@media (max-width:640px){.progress-project-select{width:100%}.progress-project-location{padding-bottom:0;flex-basis:100%}.progress-overview-toolbar{gap:8px}.progress-overview-toolbar>button{margin:0}.progress-overview .progress-detail-layout>.card{padding:16px;border-radius:16px}}.client-project-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,1fr);gap:24px;align-items:center}.client-section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:#16764f}.client-project-intro h2{font-size:24px;line-height:1.35;margin:6px 0 8px;overflow-wrap:anywhere}.client-project-intro p{margin:0}.client-progress-summary>div{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;font-size:13px}.client-progress-summary strong{font-size:28px;color:#16764f;line-height:1.2}.client-progress-summary p{margin:8px 0 0;font-size:12px}.client-review-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.client-review-banner>div{flex:1;min-width:180px}.client-review-banner p{margin:6px 0 0}.client-update-entry{padding:14px 0;min-width:0}.client-update-entry+.client-update-entry{border-top:1px solid #e8ece8}.client-update-entry:first-child{padding-top:0}.client-update-entry:last-child{padding-bottom:0}.client-update-meta{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.client-update-entry p{font-size:14px;line-height:1.6;margin:8px 0;overflow-wrap:anywhere}.client-update-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.client-update-photos button{padding:0;border:0;border-radius:12px;background:#f2f5f2;overflow:hidden;min-height:44px}.client-update-photos img{display:block;width:100%;height:130px;object-fit:contain}.client-overview .client-contact{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.client-overview .client-contact p{margin:6px 0 0}.client-photo-dialog{width:min(900px,100%);max-height:90dvh;overflow:auto}.client-photo-dialog>img{display:block;width:100%;max-height:70dvh;object-fit:contain}@media (max-width:640px){.client-project-hero{grid-template-columns:minmax(0,1fr);gap:18px}.client-project-intro h2{font-size:22px}.client-review-banner>.pb{width:100%}.client-overview .client-contact>.acts{width:100%;display:flex;flex-wrap:wrap}.client-overview .client-contact>.acts>*{flex:1 1 130px}.client-update-photos img{height:110px}}.client-document-review{padding:16px 0;min-width:0}.client-document-review+.client-document-review{border-top:1px solid #e8ece8}.client-document-review:first-child{padding-top:0}.client-document-review:last-child{padding-bottom:0}.client-document-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.client-document-heading strong{font-size:14px;line-height:1.6;min-width:0;overflow-wrap:anywhere;flex:1 1 160px}.client-document-review>p{font-size:12px;line-height:1.6;margin:6px 0 12px}.portal .ptop{height:auto;min-height:76px;padding:12px 22px;gap:16px;background:var(--ui-shell);border-bottom:0;box-shadow:none}.portal .ptop .plogo2{flex:0 0 145px;min-width:0}.portal .ptop .plogo2 .company-logo{width:145px;padding:0}.portal .ptop .ptabs{display:flex;flex:0 1 auto;width:max-content;max-width:100%;margin-inline:auto;gap:24px;padding:0 12px;border:0;border-radius:999px;background:#fff;box-shadow:var(--surface-shadow)}.portal .ptop .ptab{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:44px;padding:7px 12px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-size:12px;white-space:nowrap;flex-wrap:nowrap}.portal .ptop .ptab:before{content:"";position:absolute;top:7px;right:0;bottom:7px;left:0;border-radius:999px;z-index:-1;background:transparent}.portal .ptop .ptab.on{color:#fff;background:transparent}.portal .ptop .ptab.on:before{background:#16764f}.portal .ptop .ptab:not(.on):hover{color:#16764f;background:transparent}.portal .ptop .ptab svg{width:16px;height:16px;flex:none}.portal .ptop .cnt2{background:#dc2626;color:#fff;min-width:18px;min-height:18px;padding:1px 5px;border-radius:999px;line-height:16px;font-size:10px}.portal .ptop .tools{flex:none;margin-left:0}.portal .ptop .tools .ic.round{background:#fff;border:0;color:#526258;box-shadow:var(--surface-shadow)}.portal .ptop .tools .av{background:#16764f;color:#fff;border:0}.portal .ptop .tools .dot{background:#dc2626;color:#fff}@media (max-width:900px){.portal .ptop{flex-wrap:wrap;gap:10px;padding:10px 14px}.portal .ptop .plogo2{flex:1}.portal .ptop .tools{margin-left:auto}.portal .ptop .ptabs{order:3;flex:0 1 auto;width:max-content;max-width:100%;margin-inline:auto;gap:12px}}@media (max-width:375px){.portal .ptop .ptabs{gap:4px;padding-inline:6px}.portal .ptop .ptab{padding-inline:9px;gap:4px}}.portal .ptop .tools .card.bellpanel{box-sizing:border-box;width:min(340px,calc(100vw - 24px));min-width:min(280px,calc(100vw - 24px));max-width:calc(100vw - 24px);padding:18px;border:0;border-radius:16px;background:#fff;box-shadow:0 12px 36px #302c2426;overflow-y:auto;overscroll-behavior:contain;z-index:70}.portal .ptop .tools .card.bellpanel .ch{gap:8px;align-items:center}.portal .ptop .tools .card.bellpanel .ch>h3{flex:1 1 110px}.portal .ptop .tools .card.bellpanel .row{gap:6px;padding-block:10px}.portal .ptop .tools .card.bellpanel :is(b,.l,.row){overflow-wrap:anywhere;white-space:normal}.portal .ptop .tools .av,.portal .ptop .tools .ic.round{width:44px;height:44px;min-width:44px;min-height:44px;flex:none}.pwa-install{position:fixed;bottom:calc(16px + env(safe-area-inset-bottom,0px));left:16px;z-index:120;max-width:min(340px,calc(100vw - 32px));padding:6px;border-radius:20px;background:#fff;color:#25372e;box-shadow:0 6px 28px #19382b29}.pwa-install-row{display:flex;align-items:center;gap:4px}.pwa-install .pwa-install-action{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 14px;background:#16764f;color:#fff;border:0;border-radius:999px;font:inherit;font-size:14px;cursor:pointer}.pwa-install .pwa-install-close{display:grid;place-items:center;min-width:44px;min-height:44px;padding:8px;border:0;border-radius:50%;background:transparent;color:#526258;cursor:pointer}.pwa-install button:focus-visible{outline:3px solid #007d89;outline-offset:2px}.pwa-install p{margin:12px;padding:0;font-size:14px;line-height:1.6}.sg .unified-login-card{width:100%;max-width:460px;box-sizing:border-box;padding:32px;border-radius:24px}.unified-login-card .google-login-info{margin:24px 0 0;padding:0;gap:0;border:0;min-width:0}.unified-login-card .google-icon-button{width:100%;min-height:48px;height:auto;padding:12px 18px;border-radius:999px;background:#fff;color:#302e28;border:1px solid #d8dfdb;cursor:pointer;font:inherit;font-size:15px;font-weight:600;line-height:1.4;white-space:normal;overflow-wrap:normal}.unified-login-card .google-icon-button:disabled{cursor:wait;opacity:.65}.google-rendered-button:empty{display:none}.google-rendered-button{width:100%;min-width:0;display:flex;justify-content:center;overflow:hidden}.unified-login-card .password-login-toggle{display:block;width:100%;height:auto;min-height:44px;margin:12px 0 0;padding:10px 12px;border:0;border-radius:12px;background:transparent;color:#16764f;font:inherit;font-size:14px;font-weight:600;line-height:1.5;text-align:center;white-space:normal;overflow-wrap:normal;cursor:pointer}.unified-login-card .password-login-toggle:hover{background:#edf5ef}.unified-login-card button:focus-visible{outline:3px solid #16764f;outline-offset:3px}.unified-login-card .err{margin-top:12px;min-height:0;line-height:1.5}.unified-login-card .login-help{margin:20px 0 0;padding:18px 0 0;line-height:1.6;text-align:center}.unified-login-card form{margin-top:18px}.unified-login-card form .pb{width:100%}@media (max-width:480px){.sg .unified-login-card{padding:24px 20px;border-radius:20px}}
