/* CAD BOLT BIM portal + BIM tools (navy + orange) */
.sm{padding:.4rem .75rem!important;font-size:.82rem!important;border-radius:8px}
.mut{color:var(--muted)}
.pp-login{max-width:460px;margin:0 auto;background:var(--navy-mid);border:1px solid var(--line);border-top:4px solid var(--orange);border-radius:16px;padding:24px}
.pp-login form,.pp-f{display:grid;gap:10px}.pp-f{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));align-items:end}.pp-f .w{grid-column:1/-1}
.pp-login label,.pp-f label,.bt-f label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--muted);min-width:0}
.pp-login input,.pp-f input,.pp-f select,.pp-f textarea,.pp-admbar input,.pp-admbar select,.pp-sts,.bt-f input,.bt-f select,.bt-f textarea,.pp-adm input{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);color:#fff;border-radius:9px;padding:.55rem .65rem;font:inherit;min-width:0;max-width:100%;box-sizing:border-box}
.pp-f select option,.bt-f select option,.pp-sts option,.pp-admbar select option{color:#0B1F33}
.pp-m{min-height:1.2em;font-size:.88rem;margin:.4rem 0}.pp-m.e{color:#ff9b8a}.pp-m.o{color:#7ee2a8}
.pp-adm{margin-top:14px;font-size:.88rem}.pp-adm form{display:flex;gap:8px;flex-wrap:wrap}.pp-adm summary{cursor:pointer;color:var(--muted)}
.pp-bar{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;margin-bottom:14px}.pp-role{font-size:.8rem;padding:.2rem .6rem;border-radius:20px;background:rgba(243,112,33,.15);color:var(--orange-hot)}
.pp-card{background:var(--navy-mid);border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin:0 0 14px;min-width:0}.pp-card h3{margin:0 0 .6rem;font-size:1.05rem}
.pp-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr));gap:14px}
.pp-t{width:100%;border-collapse:collapse;font-size:.88rem}.pp-t td,.pp-t th{padding:.45rem;border-bottom:1px solid var(--line);text-align:left}
.pp-pins{margin-top:12px;padding:12px;border-radius:10px;background:rgba(243,112,33,.1);border:1px dashed var(--orange);line-height:1.9}.pp-pins code{font-size:1.05rem;color:#fff;background:rgba(0,0,0,.3);padding:1px 6px;border-radius:5px}
.pp-lod{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;list-style:none;padding:0;margin:0 0 14px;counter-reset:l}
.pp-lod li{padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid var(--line);border-top:4px solid rgba(255,255,255,.15);font-size:.8rem;color:var(--muted)}
.pp-lod li b{display:block;color:#fff;font-size:.95rem}.pp-lod li.done{border-top-color:#2ea05a}.pp-lod li.now{border-top-color:var(--orange);background:rgba(243,112,33,.1)}.pp-lod li.now b::after{content:" · current";color:var(--orange-hot);font-size:.75rem}
@media(max-width:640px){.pp-lod{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pp-admbar{display:flex;flex-wrap:wrap;gap:10px;align-items:end}.pp-admbar label{display:flex;flex-direction:column;font-size:.8rem;color:var(--muted);gap:3px;flex:1 1 160px}
.pp-note{padding:10px 14px;border-left:4px solid var(--orange);background:rgba(243,112,33,.08);border-radius:8px;margin-bottom:14px}
.pp-tabs{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 6px;padding-bottom:4px}
.pp-tabs button{flex:0 0 auto;background:transparent;border:1px solid var(--line);color:var(--text);padding:.5rem .8rem;border-radius:9px;font:inherit;font-size:.86rem;cursor:pointer}.pp-tabs button[aria-selected=true]{background:var(--orange);border-color:var(--orange);color:#fff}.pp-tabs small{opacity:.75}
.pp-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(160px,46%),1fr));gap:10px;margin-bottom:14px}
.pp-kpi{text-align:left;background:var(--navy-mid);border:1px solid var(--line);border-radius:12px;padding:12px 14px;color:var(--text);font:inherit;cursor:pointer}.pp-kpi b{display:block;font-size:1.5rem;color:#fff}.pp-kpi span{font-size:.8rem;color:var(--muted)}.pp-kpi:hover{border-color:var(--orange)}
.pp-sev{display:grid;grid-template-columns:70px 1fr 90px;gap:8px;align-items:center;font-size:.85rem;margin:.35rem 0}.pp-barf{height:9px;background:rgba(255,255,255,.08);border-radius:5px;overflow:hidden}.pp-barf i{display:block;height:100%;background:#2ea05a}
.pp-ev{margin:.4rem 0;font-size:.88rem;overflow-wrap:anywhere}
.pp-tools{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}.pp-up{cursor:pointer}
.pp-add summary{cursor:pointer;font-weight:700;color:var(--orange-hot)}.pp-add form{margin-top:12px}
.pp-item{background:var(--navy-mid);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:0 0 10px;overflow-wrap:anywhere}
.pp-item header{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pp-st,.pp-pill{font-size:.75rem;padding:.15rem .55rem;border-radius:20px;background:rgba(255,255,255,.08)}.pp-st.ok{background:rgba(46,160,90,.2);color:#7ee2a8}.pp-st.bad{background:rgba(255,120,100,.15);color:#ffb2a6}.pp-st.mid{background:rgba(243,170,33,.15);color:#ffd28a}
.pp-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:6px 14px;margin:8px 0;font-size:.86rem}.pp-meta span{display:block;color:var(--muted);font-size:.75rem}
.pp-acts{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.pp-shot{max-width:min(320px,100%);border-radius:8px;border:1px solid var(--line);margin:4px 6px 4px 0}.pp-file{display:inline-block;margin:4px 8px 4px 0}
.pp-gantt{font-size:.82rem}.pp-gh{display:flex;justify-content:space-between;color:var(--muted);margin-left:min(34%,240px)}
.pp-gr{display:grid;grid-template-columns:min(34%,240px) 1fr;gap:8px;align-items:center;margin:5px 0}.pp-gl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pp-gl small{color:var(--muted)}
.pp-gt{position:relative;height:20px;background:rgba(255,255,255,.04);border-radius:5px}.pp-gt i{position:absolute;top:3px;bottom:3px;border-radius:4px;background:rgba(243,170,33,.35);overflow:hidden}.pp-gt i.ok{background:rgba(46,160,90,.4)}.pp-gt i u{display:block;height:100%;background:var(--orange);text-decoration:none}.pp-gt i.ok u{background:#2ea05a}.pp-gt em{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--orange-hot);z-index:2}
/* tools pages */
.bt-wrap{background:var(--navy-mid);border:1px solid var(--line);border-radius:18px;padding:22px;min-width:0}
.bt-f{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:12px;align-items:end}.bt-f .w{grid-column:1/-1}
.bt-chk{display:flex;flex-wrap:wrap;gap:8px}.bt-chk label{flex-direction:row!important;align-items:center;gap:6px;background:rgba(255,255,255,.05);padding:.4rem .7rem;border-radius:20px;color:var(--text)!important;cursor:pointer}
.bt-out{margin-top:16px;padding:16px;border-radius:12px;background:rgba(243,112,33,.08);border:1px solid rgba(243,112,33,.35);overflow-wrap:anywhere}.bt-out table{width:100%;border-collapse:collapse;font-size:.88rem}.bt-out td,.bt-out th{padding:.4rem;border-bottom:1px solid var(--line);text-align:left}.bt-out .r{text-align:right}
.bt-big{font-size:1.6rem;font-weight:800;color:#fff}.bt-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.bt-lod{overflow-x:auto}.bt-lod table{border-collapse:collapse;font-size:.85rem;min-width:520px}.bt-lod td,.bt-lod th{padding:.35rem;border-bottom:1px solid var(--line)}
.bt-lod select{background:rgba(255,255,255,.06);color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:7px;padding:.3rem}
.bt-sec{margin:18px 0 8px;font-size:1.05rem;color:var(--orange-hot)}
.feat{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:14px}.feat .card h3{margin-top:0}.feat .card .tag{font-size:.75rem;color:var(--orange-hot);font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.pp-grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:14px}
.pp-ring{--p:0;width:140px;height:140px;border-radius:50%;margin:4px auto 12px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:radial-gradient(closest-side,var(--navy-mid) 74%,transparent 75%),conic-gradient(var(--orange) calc(var(--p)*1%),rgba(255,255,255,.08) 0)}
.pp-ring b{font-size:1.9rem;color:#fff;line-height:1}.pp-ring span{font-size:.7rem;color:var(--muted);max-width:90px}
.pp-disc{grid-template-columns:96px 1fr 110px}.pp-trend{width:100%;height:auto;margin-top:10px}
.pp-tl{border-left:3px solid var(--orange);padding:2px 0 2px 10px;margin:0 0 10px}.pp-tl p{margin:.25rem 0;font-size:.86rem;overflow-wrap:anywhere}
.pp-shots{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(160px,46%),1fr));gap:8px}.pp-shots a{display:block;color:var(--muted);font-size:.75rem}.pp-shots img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;border:1px solid var(--line);display:block}
.pp-late{color:#ffb2a6}
@media(max-width:520px){.pp-disc{grid-template-columns:80px 1fr;}.pp-disc small{grid-column:2}.pp-item{padding:12px}.pp-card{padding:14px}}
/* QA fixes: toast, lightbox, onboarding, signed-in compact hero, tap targets, min font sizes */
#pp-toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,140%);z-index:60;max-width:min(92vw,520px);background:#173d2a;color:#d9ffe9;border:1px solid #2ea05a;border-radius:12px;padding:12px 16px;font-size:.95rem;box-shadow:0 10px 30px rgba(0,0,0,.4);transition:transform .25s;pointer-events:none}
#pp-toast.show{transform:translate(-50%,0)}#pp-toast.bad{background:#4a1f1a;color:#ffd9d2;border-color:#ff8a76}
.pp-lb{position:fixed;inset:0;z-index:70;background:rgba(4,12,20,.92);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px}
.pp-lb img{max-width:100%;max-height:82vh;border-radius:8px;object-fit:contain}.pp-lb p{color:#c5d3e0;margin:.6rem 0 0;font-size:.9rem}
.pp-lb button{position:absolute;top:12px;right:12px;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.4);color:#fff;font-size:1.3rem;cursor:pointer}
.pp-tour{padding:12px 14px;margin:0 0 12px;border-radius:10px;background:rgba(46,120,200,.12);border:1px solid rgba(120,170,230,.35);font-size:.92rem;line-height:1.55}.pp-tour .btn{margin-left:6px}
.pp-rem{flex-direction:row!important;align-items:center;gap:8px!important;color:var(--text)!important}.pp-rem input{width:20px;height:20px}
body.pp-in .hero{padding:18px 0 6px!important}body.pp-in .hero h1,body.pp-in .hero .lead,body.pp-in .hero .eyebrow{display:none}
.pp-shots a,.pp-item a[data-lb]{cursor:zoom-in}
.pp-st,.pp-pill,.pp-meta span,.pp-shots a,.pp-lod li{font-size:.8rem}.pp-kpi span,.pp-gl small{font-size:.82rem}
.pp-cmp{margin-top:8px}
@media(max-width:700px){.sm{min-height:44px;padding:.55rem .9rem!important;font-size:.9rem!important}.pp-tabs button{min-height:44px}.pp-sts{min-height:44px}.pp-tools .btn,.pp-acts .btn{flex:1 1 auto}
.pp-login input,.pp-f input,.pp-f select,.pp-f textarea{font-size:16px;min-height:44px}.pp-bar{align-items:flex-start}}
@media(max-width:900px){#pp-toast{bottom:96px}}
/* portal v2: notifications, comments, MoM, payments, 3D viewer (line SVG icons) */
.pp-ic{vertical-align:-3px;flex:0 0 auto}.btn .pp-ic{margin-right:3px}
.pp-cfg{font-size:.8rem;margin:-6px 0 10px}
.pp-nw{position:relative;display:inline-block}.pp-bell{position:relative;padding:.35rem .55rem!important;line-height:0}
.pp-badge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--orange);color:#fff;font-size:.7rem;line-height:18px;text-align:center;font-weight:700}
.pp-npanel{position:absolute;right:0;top:calc(100% + 8px);z-index:60;width:min(360px,92vw);max-height:70vh;overflow:auto;background:var(--navy-deep,#08182a);border:1px solid var(--line);border-top:3px solid var(--orange);border-radius:12px;box-shadow:0 14px 40px rgba(0,0,0,.45)}
.pp-nh{display:flex;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--line);font-size:.88rem}
.pp-ni{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);color:var(--text);font:inherit;font-size:.84rem;padding:9px 12px;cursor:pointer}.pp-ni:hover{background:rgba(255,255,255,.04)}.pp-ni.un{border-left:3px solid var(--orange);background:rgba(243,112,33,.07)}
.pp-thread{margin:10px 0 4px;padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.03);border:1px solid var(--line)}.pp-th{display:block;font-size:.85rem;margin-bottom:6px;color:var(--orange-hot)}
.pp-cm{padding:7px 0;border-top:1px solid var(--line);font-size:.88rem}.pp-cm:first-of-type{border-top:0}.pp-cm p{margin:3px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.pp-cm-admin b{color:var(--orange-hot)}
.pp-mom{margin:8px 0}.pp-mom p{white-space:pre-wrap;margin:4px 0}
.pp-tw{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:8px 0}.pp-act{min-width:560px}.pp-act td,.pp-act th{font-size:.84rem}
.pp-ack{color:#7ee2a8;font-size:.84rem;white-space:nowrap}
body.pp3d-on{overflow:hidden}
.pp3d{position:fixed;inset:0;z-index:1000;background:#06121f;display:flex;flex-direction:column;color:#fff}
.pp3d-top{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:2px solid var(--orange,#F37021);background:#0B1F33}.pp3d-top b{font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pp3d button{background:transparent;border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:9px;padding:6px 8px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;font:inherit;font-size:.78rem}.pp3d button:hover,.pp3d button.on{border-color:#F37021;color:#F37021}
.pp3d-cv{position:relative;flex:1;min-height:0;touch-action:none}.pp3d-cv canvas{width:100%;height:100%;display:block}
.pp3d-ld{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;color:#c9d6e3}.pp3d-ld.bad{color:#ff9b8a}
.pp3d-bar{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;padding:8px;background:#0B1F33;border-top:1px solid rgba(255,255,255,.1)}
.pp3d-sec{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;padding:6px 10px;background:#0B1F33;font-size:.82rem}.pp3d-sec input[type=range]{flex:1;max-width:420px;accent-color:#F37021}.pp3d-sec select{background:#102a44;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:7px;padding:4px}
.pp3d-help{margin:0;padding:4px 10px 8px;text-align:center;font-size:.72rem;color:#8A9BAE;background:#0B1F33}
@media(max-width:560px){.pp3d-bar button span{display:none}.pp3d-bar button{padding:8px 10px}}
