:root{--navy:#0b263d;--blue:#2457e6;--green:#11835f;--red:#c43c52;--amber:#a96e13;--ink:#20384f;--muted:#7c8a98;--line:#e1e8ef;--bg:#f4f7fa}
*{box-sizing:border-box}html,body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}.shell{min-height:100vh;display:grid;grid-template-columns:248px 1fr}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:20px 14px;background:linear-gradient(180deg,#081f33,#0d2f4b);color:#d9e8f2;z-index:50}.brand{padding:5px 8px 22px;border-bottom:1px solid rgba(255,255,255,.08)}.brand img{display:block;width:185px;filter:brightness(0) invert(1)}.brand>span{display:block;margin-top:8px;font-size:11px;font-weight:900;letter-spacing:.18em;color:#7dbbe2}.sidebar nav{display:grid;gap:5px;padding-top:18px}.sidebar nav a{display:flex;align-items:center;gap:10px;padding:12px;border-radius:11px;color:#b9ccda;font-size:13px;font-weight:750}.sidebar nav a.on,.sidebar nav a:hover{background:rgba(255,255,255,.09);color:#fff}.user{margin-top:auto;padding:14px 10px;border-top:1px solid rgba(255,255,255,.08);display:grid;gap:3px}.user strong{font-size:12px;color:#fff}.user small{font-size:11px;color:#87a9c0}.user button{margin-top:7px;padding:0;border:0;background:transparent;color:#9bc2dc;text-align:left;font-size:12px;cursor:pointer}.main{min-width:0}.main>header{height:80px;position:sticky;top:0;z-index:35;display:flex;align-items:center;gap:14px;padding:13px 26px;background:rgba(255,255,255,.95);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}.main>header small{display:block;color:#8794a0;font-size:10.5px;font-weight:900;letter-spacing:.12em}.main>header h1{margin:3px 0 0;font-size:22px;letter-spacing:-.03em}.main>header>a{margin-left:auto;padding:10px 13px;border-radius:10px;background:#eaf0ff;color:var(--blue);font-size:12px;font-weight:850}.langswitch{margin-left:auto;display:flex;align-items:center;gap:4px;padding:4px 7px;border:1px solid #dce5ed;border-radius:10px;background:#f7f9fb}.langswitch form{margin:0}.langswitch span{font-size:11px;color:#b0bac4}.langswitch button{border:0;background:transparent;padding:5px 6px;border-radius:6px;color:#8a98a5;font-size:11px;font-weight:900;letter-spacing:.04em;cursor:pointer}.langswitch button.active{background:#173b5b;color:#fff}.langswitch button:hover:not(.active){background:#e9eef3;color:#526779}.main>header>.langswitch+a{margin-left:0}
.main>header>button{display:none}.main>main{max-width:1650px;margin:auto;padding:23px 27px 45px}.kicker{font-size:11px;font-weight:900;letter-spacing:.13em;color:#597892}.card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 9px 28px rgba(20,42,62,.055)}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 15px;border-radius:11px;border:0;font-size:12px;font-weight:850;cursor:pointer}.primary{background:linear-gradient(135deg,#2457e6,#1e6cc2);color:#fff;box-shadow:0 8px 18px rgba(36,87,230,.15)}.secondary{background:#fff;border:1px solid #dbe4ec;color:#55687a}.full{width:100%}.flash{padding:12px 14px;margin-bottom:13px;border:1px solid #cce7d9;border-radius:11px;background:#eaf8f2;color:#176a51;font-size:12px}.flash.error{border-color:#efcad2;background:#fff2f4;color:#a42d42}.hero{min-height:236px;display:grid;grid-template-columns:1.4fr .6fr;align-items:center;padding:30px 34px;border-radius:22px;background:radial-gradient(circle at 82% 12%,rgba(66,151,213,.35),transparent 28%),linear-gradient(135deg,#092137,#104a6d);color:#fff;box-shadow:0 20px 50px rgba(10,34,54,.17)}.hero .kicker{color:#91c9ec}.hero h2{margin:10px 0;font-size:35px;letter-spacing:-.04em}.hero p{max-width:650px;margin:0 0 20px;color:#bdd2e0;font-size:13px;line-height:1.7}.orb{justify-self:center;display:grid;place-items:center;width:160px;height:160px;border:1px solid rgba(255,255,255,.16);border-radius:50%;font-size:29px;font-weight:900;letter-spacing:.06em;box-shadow:inset 0 0 0 20px rgba(255,255,255,.035)}.orb span{font-size:10.5px;color:#8fc9ed}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:17px 0}.metrics>div{min-height:126px;display:grid;align-content:center;justify-items:center;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff}.metrics span{font-size:12px;font-weight:800;color:#748394}.metrics strong{font-size:34px}.metrics small{font-size:11px;color:#99a4af}.cardhead{display:flex;align-items:center;justify-content:space-between;padding:19px 21px;border-bottom:1px solid var(--line)}.cardhead h3{margin:4px 0 0;font-size:18px}.cardhead a{font-size:12px;font-weight:800;color:var(--blue)}.records{padding:5px 18px 14px}.records>a{display:flex;justify-content:space-between;gap:12px;padding:14px 6px;border-bottom:1px solid #edf1f4}.records>a:last-child{border:0}.records>a>div{display:grid;gap:4px}.records strong{font-size:12px}.records span,.records small{font-size:11px;color:#8291a0}.records>a>div:last-child{text-align:right}.status{display:inline-flex;width:max-content;padding:5px 8px;border-radius:999px;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em}.status.completed{background:#e7f7f0;color:#11835f}.status.draft{background:#fff3df;color:#956313}.empty{padding:30px;text-align:center;color:#8a98a5;font-size:12px}.regtop{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px}.regtop h2{margin:4px 0;font-size:21px}.regtop p{margin:0;color:#7b8997;font-size:12px}.filters{display:grid;grid-template-columns:minmax(230px,1fr) 180px auto auto;gap:8px;margin:13px 0}.filters input,.filters select,.filters button,.filters a{min-height:44px;padding:0 12px;border:1px solid #dbe4ec;border-radius:10px;background:#fff;color:#536578;font-size:12px}.filters button{border:0;background:#173b5b;color:#fff;font-weight:800}.filters a{display:grid;place-items:center}.list{display:grid;gap:9px}.install{display:flex;justify-content:space-between;gap:18px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 5px 16px rgba(20,40,60,.035)}.install:hover{border-color:#c9d7e5;transform:translateY(-1px)}.ref{font:800 9px ui-monospace,monospace;color:#56718a}.install h3{margin:5px 0;font-size:16px}.install p{margin:0;color:#778796;font-size:12px}.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.chips span{padding:5px 7px;border-radius:7px;background:#f1f4f7;color:#627385;font-size:10.5px;font-weight:700}.install aside{display:flex;min-width:145px;align-items:flex-end;flex-direction:column;gap:6px}.install aside>span{font-size:12px;color:#5d7185}.install aside small{font-size:11px;color:#92a0ad}.formintro{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px}.formintro h2{margin:4px 0 6px;font-size:22px}.formintro p{margin:0;color:#7b8998;font-size:12px}.actions{display:flex;gap:8px}.actions.bottom{justify-content:flex-end;margin-top:18px}.formsec{margin-top:13px;padding:21px}.sectitle{display:flex;align-items:center;gap:13px;padding-bottom:16px;margin-bottom:17px;border-bottom:1px solid var(--line)}.sectitle>span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#eaf0ff;color:var(--blue);font-size:12px;font-weight:900}.sectitle h3{margin:0;font-size:18px}.sectitle p{margin:4px 0 0;color:#8593a0;font-size:12px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:grid;gap:6px;min-width:0}.field label{font-size:12px;font-weight:800;color:#526477}.field label b{color:#cf3c53}.field input,.field select,.field textarea,.loginbox input,.loginbox select{width:100%;min-height:46px;padding:9px 11px;border:1px solid #d8e1ea;border-radius:10px;background:#fff;color:#34485b;outline:0;font-size:12px}.field textarea{min-height:110px}.field input:focus,.field select:focus,.field textarea:focus,.loginbox input:focus{border-color:#8faaf0;box-shadow:0 0 0 4px rgba(36,87,230,.06)}.field small{font-size:10.5px;color:#929da9;line-height:1.45}.field em{font-size:11px;color:#b73047;font-style:normal}.span2{grid-column:1/-1}.geobtn{justify-self:start;min-height:42px;padding:0 12px;border:1px solid #ccdae6;border-radius:10px;background:#f7fafc;color:#315b7e;font-size:12px;font-weight:800}.checks{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:15px}.check{display:flex;align-items:center;gap:8px;padding:12px;border:1px solid #dfe6ed;border-radius:11px;background:#fbfcfd;cursor:pointer}.check input{position:absolute;opacity:0}.check>span{display:grid;place-items:center;width:25px;height:25px;border:1px solid #cbd7e1;border-radius:7px;background:#fff;color:transparent}.check input:checked+span{border-color:#a8dac6;background:#e8f7f0;color:#12805d}.check strong{font-size:11px}.formsec h4{margin:19px 0 0;font-size:12px}.notes{margin-top:15px}.photogrid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.photobox{position:relative;min-height:145px;display:grid;align-content:center;justify-items:center;padding:16px;border:1.5px dashed #ccd8e4;border-radius:14px;background:#fafcfe;text-align:center;overflow:hidden;cursor:pointer}.photobox:hover,.photobox.picked{border-color:#8fb5dc;background:#f1f8fd}.photobox>b{font-size:25px;color:#5f8cb2}.photobox strong{margin:6px 0 4px;font-size:12px}.photobox small{font-size:10.5px;color:#8492a0;line-height:1.45}.photobox input{position:absolute;inset:0;opacity:0;cursor:pointer}.sticky{position:sticky;bottom:10px;z-index:25;display:flex;justify-content:flex-end;gap:8px;margin-top:13px;padding:13px;border:1px solid #dfe6ed;border-radius:14px;background:rgba(244,247,250,.93);backdrop-filter:blur(10px)}.detailhero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px}.detailhero h2{margin:5px 0;font-size:24px}.detailhero p{margin:0;color:#7b8997;font-size:12px}.details{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;margin-top:13px}.detail{padding:19px}.detail dl{display:grid;grid-template-columns:125px 1fr;margin:11px 0 0}.detail dt,.detail dd{margin:0;padding:8px 0;border-bottom:1px solid #edf1f4;font-size:12px}.detail dt{color:#8b98a4}.detail dd{font-weight:700;overflow-wrap:anywhere}.mono{font-family:ui-monospace,monospace}.tests{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}.tests span{padding:9px;border-radius:9px;background:#f5f7f9;color:#9a686d;font-size:11px}.tests span:before{content:"○ ";font-weight:900}.tests span.ok{background:#e8f7f0;color:#137f5d}.tests span.ok:before{content:"✓ "}.detail h4{margin:16px 0 6px;font-size:12px}.detail p{font-size:12px;color:#6f7f8e;line-height:1.6}.photos{margin-top:13px;overflow:hidden}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;padding:13px}.gallery figure{margin:0;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}.gallery img{display:block;width:100%;height:180px;object-fit:cover;background:#eef2f5}.gallery figcaption{display:grid;gap:3px;padding:9px}.gallery strong{font-size:11px}.gallery span{font-size:10.5px;color:#8a97a3}.gallery button{justify-self:start;padding:0;border:0;background:transparent;color:#b43a4e;font-size:10.5px;cursor:pointer}.users{display:grid;gap:9px;margin-top:13px}.ucard{display:grid;grid-template-columns:42px minmax(220px,1fr) 110px 90px auto;align-items:center;gap:11px;padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:#fff}.avatar{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:linear-gradient(145deg,#173b5c,#2457e6);color:#fff;font-weight:900}.ucard>div{display:grid;gap:3px}.ucard strong{font-size:12px}.ucard small{font-size:11px;color:#8795a3}.ucard>b{font-size:11px;color:#5c7084}.ucard button{min-height:34px;border:1px solid #d9e2eb;border-radius:8px;background:#fff;color:#53677a;font-size:11px;font-weight:800}.auth{min-height:100vh;background:#eef3f7}.authgrid{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}.visual{display:flex;flex-direction:column;justify-content:space-between;padding:46px 52px;background:radial-gradient(circle at 25% 12%,rgba(63,145,207,.33),transparent 25%),linear-gradient(135deg,#081f33,#104c70);color:#fff}.visual img{width:250px;filter:brightness(0) invert(1)}.visual>div{max-width:640px;margin-bottom:8vh}.visual span{font-size:11px;font-weight:900;letter-spacing:.17em;color:#91c9ed}.visual h1{margin:14px 0;font-size:44px;line-height:1.05;letter-spacing:-.04em}.visual p{max-width:580px;color:#bed3e1;font-size:13px;line-height:1.75}.loginpanel{display:grid;place-items:center;padding:30px}.loginbox{width:min(440px,100%);padding:32px;border:1px solid #dfe6ed;border-radius:20px;background:#fff;box-shadow:0 20px 55px rgba(18,42,64,.09)}.loginbox h2{margin:8px 0;font-size:27px}.loginbox>p{margin:0 0 22px;color:#8492a0;font-size:12px}.loginbox label{display:grid;gap:6px;margin-top:13px;color:#526477;font-size:12px;font-weight:800}.pw{position:relative}.pw input{padding-right:48px}.pw button{position:absolute;right:5px;top:5px;width:38px;height:38px;border:0;background:transparent;color:#7d8996}.note{display:block;margin-top:14px;text-align:center;color:#9aa5af;font-size:10.5px}.setup{min-height:100vh;display:grid;place-items:center;padding:25px}.widebox{width:min(760px,100%)}.setuplogo{width:215px;margin-bottom:18px}#veil{display:none}
@media(max-width:1080px){.shell{grid-template-columns:220px 1fr}.metrics{grid-template-columns:repeat(2,1fr)}.checks{grid-template-columns:repeat(2,1fr)}.gallery{grid-template-columns:repeat(3,1fr)}}
@media(max-width:850px){.shell{display:block}.sidebar{position:fixed;left:-280px;width:260px;transition:left .2s;box-shadow:20px 0 45px rgba(3,17,29,.25)}body.navopen .sidebar{left:0}.main>header>button{display:grid;place-items:center;width:40px;height:40px;border:1px solid #dbe4ec;border-radius:10px;background:#fff;color:#425c73}#veil{display:block;position:fixed;inset:0;z-index:45;background:rgba(3,15,25,.45);opacity:0;pointer-events:none;transition:.2s}body.navopen #veil{opacity:1;pointer-events:auto}.main>header{height:72px;padding:12px 15px}.main>main{padding:17px 14px 35px}.hero{grid-template-columns:1fr;min-height:215px;padding:25px}.orb{display:none}.details{grid-template-columns:1fr}.gallery{grid-template-columns:repeat(2,1fr)}.authgrid{grid-template-columns:1fr}.visual{display:none}.loginpanel{min-height:100vh}.formintro{align-items:flex-start;flex-direction:column}.formintro .actions{width:100%}.formintro .actions>*{flex:1}.ucard{grid-template-columns:42px 1fr auto}.ucard>b{grid-column:2}.ucard>.status,.ucard>form{grid-column:3}}
@media(max-width:620px){.main>header h1{font-size:18px}.langswitch{margin-left:auto;padding:3px 5px}.langswitch button{padding:4px 5px}.main>header>a{padding:9px 10px}.main>main{padding:13px 9px 86px}.hero{padding:21px;border-radius:17px}.hero h2{font-size:29px}.metrics{gap:7px}.metrics>div{min-height:108px;padding:12px}.metrics strong{font-size:29px}.regtop{align-items:flex-start;flex-direction:column}.regtop .primary{width:100%}.filters{grid-template-columns:1fr 1fr}.filters input{grid-column:1/-1;font-size:16px}.filters select{font-size:16px}.install{display:block;padding:14px}.install aside{min-width:0;margin-top:11px;align-items:flex-start;flex-direction:row;flex-wrap:wrap}.install aside small{width:100%}.formsec{padding:15px}.grid{grid-template-columns:1fr;gap:11px}.span2{grid-column:auto}.field input,.field select,.field textarea{font-size:16px}.checks{grid-template-columns:1fr 1fr;gap:7px}.photogrid{grid-template-columns:1fr 1fr;gap:7px}.photobox{min-height:138px;padding:11px}.sticky{position:fixed;left:7px;right:7px;bottom:7px;margin:0;z-index:40}.sticky>*{flex:1}.detailhero{align-items:flex-start;flex-direction:column}.detailhero .primary{width:100%}.detail dl{grid-template-columns:108px 1fr}.gallery{grid-template-columns:1fr 1fr;padding:8px;gap:7px}.gallery img{height:150px}.ucard{grid-template-columns:40px 1fr}.ucard>b,.ucard>.status,.ucard>form{grid-column:2}.loginbox{padding:25px 19px}.setup{padding:12px}}
@media(max-width:390px){.photogrid,.gallery,.checks{grid-template-columns:1fr}.filters{grid-template-columns:1fr}.filters input{grid-column:auto}}


/* === InstallPro technician management premium polish === */
.brand{padding:3px 7px 21px}
.brand-logo-surface{
  display:flex;align-items:center;justify-content:center;
  width:100%;min-height:60px;padding:9px 11px;
  border-radius:12px;background:#fff;
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 7px 20px rgba(0,0,0,.13)
}
.brand-logo-surface img{
  display:block;width:100%;max-width:190px;height:auto;
  filter:none!important;opacity:1!important
}
.brand>span{margin:10px 3px 0;font-size:11px;letter-spacing:.2em;color:#79b9e2}

.tech-hero{
  position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:space-between;gap:28px;
  min-height:150px;padding:27px 29px
}
.tech-hero:after{
  content:"";position:absolute;right:-65px;top:-90px;width:260px;height:260px;
  border-radius:50%;background:radial-gradient(circle,rgba(36,87,230,.1),rgba(36,87,230,0) 70%);
  pointer-events:none
}
.tech-hero-copy{position:relative;z-index:1;max-width:780px}
.tech-hero h2{margin:6px 0 7px;font-size:27px;letter-spacing:-.035em;color:#18344d}
.tech-hero p{max-width:720px;margin:0;color:#738597;font-size:12px;line-height:1.65}
.tech-add-btn{position:relative;z-index:1;flex:none;min-width:190px;min-height:48px;box-shadow:0 11px 25px rgba(36,87,230,.2)}

.tech-metrics{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:11px;margin:13px 0
}
.tech-metric{
  display:flex;align-items:center;gap:13px;min-height:104px;padding:16px 17px;
  border:1px solid var(--line);border-radius:15px;background:#fff;
  box-shadow:0 6px 18px rgba(20,42,62,.035)
}
.tech-metric-icon{
  flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;
  background:linear-gradient(145deg,#eef3ff,#e6f1fa);color:#285b9b;font-size:16px;font-weight:900
}
.tech-metric>div{display:grid;min-width:0}
.tech-metric small{font-size:10.5px;font-weight:900;letter-spacing:.11em;color:#81909e}
.tech-metric strong{margin:2px 0 -1px;font-size:25px;line-height:1;color:#18344d;letter-spacing:-.04em}
.tech-metric div span{font-size:11px;color:#97a3ae}

.tech-toolbar{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:11px 13px;margin-bottom:12px;border-radius:14px
}
.tech-search{position:relative;display:flex;align-items:center;flex:1;max-width:620px}
.tech-search>span{position:absolute;left:13px;color:#8194a5;font-size:16px;pointer-events:none}
.tech-search input{
  width:100%;height:43px;padding:0 14px 0 38px;border:1px solid #dce5ed;border-radius:10px;
  background:#f9fbfc;color:#344a5d;font-size:12px;outline:0
}
.tech-search input:focus{background:#fff;border-color:#94afe9;box-shadow:0 0 0 4px rgba(36,87,230,.055)}
.tech-toolbar-note{display:flex;align-items:center;gap:7px;color:#7b8b99;font-size:11px;font-weight:750;white-space:nowrap}
.live-dot{width:7px;height:7px;border-radius:50%;background:#20a574;box-shadow:0 0 0 4px rgba(32,165,116,.1)}

.tech-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.tech-user-card{
  min-width:0;padding:18px;border:1px solid #dde6ee;border-radius:16px;background:#fff;
  box-shadow:0 7px 22px rgba(18,42,64,.045);
  transition:border-color .16s,box-shadow .16s,transform .16s
}
.tech-user-card:hover{border-color:#cbd9e6;box-shadow:0 10px 28px rgba(18,42,64,.07);transform:translateY(-1px)}
.tech-user-card[hidden]{display:none!important}

.tech-card-top{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:start}
.tech-avatar{
  display:grid;place-items:center;width:48px;height:48px;border-radius:14px;
  background:linear-gradient(145deg,#173d70,#2c60dd);color:#fff;font-size:18px;font-weight:900;
  box-shadow:0 8px 18px rgba(32,76,159,.17)
}
.tech-identity{min-width:0;display:grid;gap:2px}
.tech-name-line{display:flex;align-items:center;gap:7px;min-width:0}
.tech-name-line h3{margin:0;font-size:14px;letter-spacing:-.015em;color:#18344d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.self-badge{padding:3px 6px;border-radius:999px;background:#edf2ff;color:#3d61bf;font-size:10.5px;font-weight:900;text-transform:uppercase}
.tech-username{font:700 8.5px ui-monospace,SFMono-Regular,Consolas,monospace;color:#7c8d9d}
.tech-email{width:max-content;max-width:100%;margin-top:2px;color:#6e8295;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tech-email:hover{color:#2457e6}.tech-email.muted{color:#a0abb5}

.tech-status{
  display:inline-flex;align-items:center;gap:6px;padding:6px 8px;border-radius:999px;
  font-size:10.5px;font-weight:900;text-transform:uppercase;letter-spacing:.04em
}
.tech-status i{width:6px;height:6px;border-radius:50%}
.tech-status.is-active{background:#e9f8f2;color:#14805e}.tech-status.is-active i{background:#1aa779}
.tech-status.is-suspended{background:#fff2e8;color:#a46020}.tech-status.is-suspended i{background:#d98a3a}

.tech-role-row{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin:16px 0 12px;padding:10px 0;border-top:1px solid #eef2f5;border-bottom:1px solid #eef2f5
}
.tech-role-badge{
  display:inline-flex;align-items:center;gap:6px;padding:6px 8px;border-radius:8px;
  font-size:10.5px;font-weight:850
}
.tech-role-badge.admin{background:#eaf0ff;color:#315bb6}
.tech-role-badge.supervisor{background:#edf5fb;color:#33769c}
.tech-role-badge.technician{background:#f1f4f7;color:#586e81}
.tech-install-count{color:#8291a0;font-size:11px}.tech-install-count strong{color:#334b61;font-size:12px}

.tech-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tech-meta>div{display:grid;gap:3px;padding:10px;border-radius:10px;background:#f8fafc}
.tech-meta small{font-size:10.5px;font-weight:900;letter-spacing:.08em;color:#95a1ad}
.tech-meta strong{font-size:11px;color:#53697d;font-weight:750}

.tech-card-actions{display:flex;align-items:center;min-height:37px;margin-top:12px}
.tech-card-actions form{width:100%}
.tech-action-btn{
  width:100%;min-height:37px;padding:8px 12px;border-radius:9px;font-size:11px;font-weight:850;cursor:pointer
}
.tech-action-btn.suspend{border:1px solid #e1e7ed;background:#fff;color:#607285}
.tech-action-btn.suspend:hover{border-color:#e9c7cc;background:#fff7f8;color:#a54455}
.tech-action-btn.reactivate{border:1px solid #c9e7dc;background:#f0fbf6;color:#157858}
.protected-account{display:flex;align-items:center;gap:6px;color:#788a9b;font-size:11px;font-weight:750}
.protected-account:first-letter{color:#1b9a6e}

.tech-no-results{display:grid;justify-items:center;gap:4px;padding:32px;margin-top:12px;text-align:center}
.tech-no-results strong{font-size:12px;color:#42596e}
.tech-no-results span{font-size:11px;color:#8997a5}

@media(max-width:1180px){
  .tech-metrics{grid-template-columns:repeat(2,1fr)}
  .tech-grid{grid-template-columns:1fr}
}
@media(max-width:850px){
  .brand-logo-surface{min-height:58px}
  .tech-hero{align-items:flex-start;flex-direction:column;padding:22px}
  .tech-add-btn{width:100%}
}
@media(max-width:620px){
  .tech-hero{min-height:auto;padding:18px 16px}
  .tech-hero h2{font-size:23px}
  .tech-metrics{grid-template-columns:1fr 1fr;gap:7px}
  .tech-metric{min-height:88px;padding:12px;gap:9px}
  .tech-metric-icon{width:34px;height:34px;border-radius:10px}
  .tech-metric strong{font-size:22px}
  .tech-toolbar{align-items:stretch;flex-direction:column}
  .tech-search{max-width:none}
  .tech-search input{font-size:16px}
  .tech-toolbar-note{padding:0 2px}
  .tech-user-card{padding:14px}
  .tech-card-top{grid-template-columns:44px minmax(0,1fr);gap:10px}
  .tech-avatar{width:44px;height:44px}
  .tech-status{grid-column:2;justify-self:start;margin-top:3px}
  .tech-meta{grid-template-columns:1fr 1fr}
}
@media(max-width:390px){
  .tech-metrics{grid-template-columns:1fr}
  .tech-role-row{align-items:flex-start;flex-direction:column}
  .tech-meta{grid-template-columns:1fr}
}


/* === Installation registry premium polish === */
.installations-page{max-width:100%}

.installation-registry-hero{
  position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:space-between;gap:30px;
  min-height:158px;padding:28px 30px
}
.installation-registry-hero:after{
  content:"";position:absolute;right:-65px;top:-100px;width:280px;height:280px;border-radius:50%;
  background:radial-gradient(circle,rgba(36,87,230,.11),rgba(36,87,230,0) 70%);
  pointer-events:none
}
.installation-registry-copy{position:relative;z-index:1;max-width:820px}
.installation-registry-copy .kicker{font-size:12px;letter-spacing:.14em}
.installation-registry-copy h2{
  margin:7px 0 7px;font-size:29px;line-height:1.12;letter-spacing:-.035em;color:#18344d
}
.installation-registry-copy p{
  max-width:780px;margin:0;color:#708397;font-size:13px;line-height:1.65
}
.installation-new-btn{
  position:relative;z-index:1;flex:none;min-width:205px;min-height:49px;
  padding:11px 18px;font-size:13px;box-shadow:0 11px 26px rgba(36,87,230,.2)
}

.installation-registry-stats{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:11px;margin:13px 0
}
.registry-stat{
  display:flex;align-items:center;gap:14px;min-height:98px;padding:16px 18px;
  border:1px solid #dfe7ee;border-radius:15px;background:#fff;
  box-shadow:0 6px 18px rgba(20,42,62,.035)
}
.registry-stat-icon{
  flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;
  background:#edf3ff;color:#315fae;font-size:16px;font-weight:900
}
.registry-stat-icon.completed{background:#e9f8f2;color:#14805e}
.registry-stat-icon.draft{background:#fff4e5;color:#a16a19}
.registry-stat>div{display:grid;min-width:0}
.registry-stat small{font-size:10.5px;font-weight:900;letter-spacing:.11em;color:#8493a1}
.registry-stat strong{margin:1px 0;font-size:27px;line-height:1;color:#1b374f;letter-spacing:-.04em}
.registry-stat div span{font-size:11.5px;color:#8c9aa7}

.installation-filters{
  display:grid;grid-template-columns:minmax(320px,1fr) 210px 92px 82px;
  gap:9px;padding:10px;margin:0 0 12px;
  border:1px solid #dde6ee;border-radius:15px;background:#fff;
  box-shadow:0 5px 18px rgba(20,42,62,.035)
}
.installation-search{position:relative;display:flex;align-items:center}
.installation-search>span{
  position:absolute;left:14px;color:#8597a7;font-size:18px;pointer-events:none
}
.installation-filters input,.installation-filters select,
.installation-filter-btn,.installation-clear-btn{
  width:100%;min-height:48px;border-radius:10px;font-size:13px
}
.installation-filters input,.installation-filters select{
  padding:0 14px;border:1px solid #d8e2ea;background:#f9fbfc;color:#41566a;outline:0
}
.installation-filters input{padding-left:42px}
.installation-filters input:focus,.installation-filters select:focus{
  background:#fff;border-color:#93afe9;box-shadow:0 0 0 4px rgba(36,87,230,.055)
}
.installation-filter-btn{
  border:0;background:#173d5d;color:#fff;font-weight:850;cursor:pointer
}
.installation-filter-btn:hover{background:#1d4b71}
.installation-clear-btn{
  display:grid;place-items:center;border:1px solid #dbe4ec;background:#fff;color:#617386;font-weight:750
}
.installation-clear-btn:hover{background:#f7f9fb}

.installation-results-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  min-height:34px;padding:0 4px 5px;color:#8393a1;font-size:12px
}
.installation-results-head>div{display:flex;align-items:baseline;gap:5px}
.installation-results-head strong{font-size:13px;color:#3e556b}
.active-filter-note{color:#3e69b6;font-size:11px;font-weight:800}

.installation-records{display:grid;gap:11px}
.installation-record{
  display:grid;grid-template-columns:minmax(270px,1.2fr) minmax(390px,1.45fr) 190px;
  gap:22px;align-items:center;min-height:132px;padding:19px 20px;
  border:1px solid #dde6ee;border-radius:16px;background:#fff;
  box-shadow:0 6px 20px rgba(18,42,64,.04);
  transition:border-color .16s,box-shadow .16s,transform .16s
}
.installation-record:hover{
  border-color:#bfd0e1;box-shadow:0 11px 29px rgba(18,42,64,.075);transform:translateY(-1px)
}
.installation-record-main{min-width:0}
.installation-reference-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.installation-reference{
  font:850 10px ui-monospace,SFMono-Regular,Consolas,monospace;
  letter-spacing:.015em;color:#41698d
}
.installation-type{
  padding:4px 7px;border-radius:7px;background:#eff4f8;color:#6b7f91;
  font-size:10.5px;font-weight:850;text-transform:uppercase;letter-spacing:.04em
}
.installation-record-main h3{
  margin:7px 0 5px;font-size:21px;line-height:1.18;letter-spacing:-.025em;color:#18344d
}
.installation-client-line{display:flex;align-items:center;gap:4px;min-width:0;color:#7a8b9b;font-size:12.5px}
.installation-client-line strong{color:#566b7f;font-weight:800}
.installation-client-line span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.installation-record-technical{
  display:grid;grid-template-columns:minmax(120px,.95fr) minmax(190px,1.25fr) 80px;
  gap:8px;min-width:0
}
.technical-item{
  min-width:0;display:grid;gap:5px;padding:11px 12px;border-radius:11px;background:#f7f9fb
}
.technical-item small{font-size:10.5px;font-weight:900;letter-spacing:.1em;color:#98a4af}
.technical-item strong{
  min-width:0;font-size:12px;color:#455d72;font-weight:800;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.technical-item .mono{font-size:12px}
.photo-item{justify-items:center;text-align:center}
.photo-item strong{font-size:12px}

.installation-record-meta{
  position:relative;display:grid;justify-items:end;gap:6px;min-width:0;padding-right:24px
}
.installation-record-meta .status{font-size:11px;padding:6px 9px}
.record-date{font-size:12px;color:#6d8194;font-weight:750}
.record-technician{display:grid;justify-items:end;gap:2px}
.record-technician span{font-size:10.5px;font-weight:850;letter-spacing:.08em;color:#9aa5af;text-transform:uppercase}
.record-technician strong{
  max-width:150px;color:#667a8d;font-size:12px;font-weight:800;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.record-open{
  position:absolute;right:0;top:50%;transform:translateY(-50%);
  color:#8ea6ba;font-size:18px;transition:transform .16s,color .16s
}
.installation-record:hover .record-open{color:#2457e6;transform:translate(2px,-50%)}

.installation-empty{
  display:grid;justify-items:center;gap:6px;padding:45px 20px;text-align:center
}
.installation-empty>span{font-size:30px;color:#8ca2b5}
.installation-empty strong{font-size:14px;color:#41596f}
.installation-empty p{margin:0;color:#8594a2;font-size:12px}

@media(max-width:1250px){
  .installation-record{
    grid-template-columns:minmax(260px,1fr) minmax(320px,1.2fr) 170px;
    gap:15px
  }
  .installation-record-technical{grid-template-columns:1fr 1.25fr 70px}
}
@media(max-width:1050px){
  .installation-record{
    grid-template-columns:minmax(0,1fr) 170px;
  }
  .installation-record-technical{
    grid-column:1;grid-row:2;
    grid-template-columns:1fr 1.3fr 90px
  }
  .installation-record-meta{grid-column:2;grid-row:1/3;align-self:stretch;align-content:center}
}
@media(max-width:850px){
  .installation-registry-hero{align-items:flex-start;flex-direction:column;padding:23px}
  .installation-new-btn{width:100%}
  .installation-registry-copy h2{font-size:26px}
  .installation-registry-stats{grid-template-columns:repeat(3,1fr)}
  .installation-filters{grid-template-columns:1fr 190px 88px 78px}
}
@media(max-width:700px){
  .installation-registry-stats{grid-template-columns:1fr 1fr}
  .registry-stat:first-child{grid-column:1/-1}
  .installation-filters{grid-template-columns:1fr 1fr}
  .installation-search{grid-column:1/-1}
  .installation-filters input,.installation-filters select{font-size:16px}
  .installation-filter-btn,.installation-clear-btn{font-size:12px}
  .installation-record{
    display:block;min-height:0;padding:16px
  }
  .installation-record-technical{
    display:grid;grid-template-columns:1fr 1fr;
    margin-top:13px
  }
  .technical-item.photo-item{grid-column:1/-1;justify-items:start;text-align:left}
  .installation-record-meta{
    display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;
    gap:8px;margin-top:13px;padding:11px 28px 0 0;border-top:1px solid #edf1f4
  }
  .record-technician{display:flex;align-items:center;gap:5px;justify-items:start}
  .record-open{right:2px;top:auto;bottom:2px;transform:none}
  .installation-record:hover .record-open{transform:translateX(2px)}
}
@media(max-width:430px){
  .installation-registry-hero{padding:18px 16px}
  .installation-registry-copy .kicker{font-size:11px}
  .installation-registry-copy h2{font-size:23px}
  .installation-registry-copy p{font-size:12.5px}
  .installation-registry-stats{grid-template-columns:1fr}
  .registry-stat:first-child{grid-column:auto}
  .registry-stat{min-height:82px}
  .installation-record-main h3{font-size:19px}
  .installation-client-line{font-size:12px}
  .installation-record-technical{grid-template-columns:1fr}
  .technical-item.photo-item{grid-column:auto}
}


/* === Installations registry v2 === */
.install-registry-v2{display:grid;gap:14px}

.irv2-head{
  position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:space-between;gap:26px;
  min-height:150px;padding:28px 30px
}
.irv2-head:after{
  content:"";position:absolute;right:-90px;top:-120px;width:330px;height:330px;border-radius:50%;
  background:radial-gradient(circle,rgba(36,87,230,.11),rgba(36,87,230,0) 72%);
  pointer-events:none
}
.irv2-head-copy{position:relative;z-index:1;max-width:800px}
.irv2-head .kicker{font-size:12px;letter-spacing:.145em}
.irv2-head h2{
  margin:7px 0 7px;font-size:30px;line-height:1.1;letter-spacing:-.038em;color:#18344d
}
.irv2-head p{
  margin:0;max-width:760px;color:#738597;font-size:13px;line-height:1.65
}
.irv2-new{
  position:relative;z-index:1;min-width:205px;min-height:50px;
  padding:11px 18px;font-size:13px
}

.irv2-overview{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px
}
.irv2-overview-item{
  position:relative;display:grid;grid-template-columns:44px 1fr auto;
  align-items:center;gap:13px;min-height:86px;padding:15px 17px;
  border:1px solid #dde6ee;border-radius:15px;background:#fff;
  box-shadow:0 6px 18px rgba(20,42,62,.035)
}
.irv2-overview-icon{
  display:grid;place-items:center;width:44px;height:44px;border-radius:12px;
  font-size:17px;font-weight:900;background:#edf3ff;color:#315fae
}
.irv2-overview-icon.done{background:#e9f8f2;color:#15815f}
.irv2-overview-icon.pending{background:#fff4e4;color:#a06b1a}
.irv2-overview-item>div{display:grid;gap:1px}
.irv2-overview-item small{
  font-size:10.5px;font-weight:900;letter-spacing:.11em;color:#8a98a6
}
.irv2-overview-item strong{
  font-size:26px;line-height:1;color:#18344d;letter-spacing:-.04em
}
.irv2-overview-item em{
  align-self:end;padding-bottom:2px;color:#8e9ca8;font-size:11px;font-style:normal
}

.irv2-toolbar{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:10px 12px
}
.irv2-filter-form{
  display:grid;grid-template-columns:minmax(330px,1fr) 195px 92px 78px;
  gap:8px;flex:1
}
.irv2-search{position:relative;display:flex;align-items:center}
.irv2-search>span{
  position:absolute;left:14px;color:#8799aa;font-size:18px;pointer-events:none
}
.irv2-filter-form input,.irv2-filter-form select,
.irv2-filter-submit,.irv2-clear{
  min-height:48px;border-radius:10px;font-size:13px
}
.irv2-filter-form input,.irv2-filter-form select{
  width:100%;padding:0 13px;border:1px solid #d9e3eb;
  background:#f9fbfc;color:#405569;outline:0
}
.irv2-filter-form input{padding-left:42px}
.irv2-filter-form input:focus,.irv2-filter-form select:focus{
  background:#fff;border-color:#90abe7;box-shadow:0 0 0 4px rgba(36,87,230,.05)
}
.irv2-filter-submit{
  border:0;background:#173c5c;color:#fff;font-weight:850;cursor:pointer
}
.irv2-clear{
  display:grid;place-items:center;border:1px solid #dbe4ec;background:#fff;
  color:#607386;font-weight:750
}
.irv2-result-count{
  flex:none;display:flex;align-items:baseline;gap:5px;white-space:nowrap;
  padding:0 5px;color:#8796a3;font-size:12px
}
.irv2-result-count strong{font-size:15px;color:#3e566c}
.irv2-result-count b{
  margin-left:5px;color:#3e69b6;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em
}

.irv2-table{overflow:hidden}
.irv2-table-head{
  display:grid;
  grid-template-columns:minmax(280px,1.45fr) minmax(145px,.8fr) minmax(210px,1fr) 80px minmax(125px,.75fr) 92px 96px 24px;
  gap:14px;align-items:center;
  min-height:44px;padding:0 18px;
  border-bottom:1px solid #dfe7ee;background:#f8fafc;
  color:#8997a4;font-size:10.5px;font-weight:900;letter-spacing:.11em
}
.irv2-row{
  display:grid;
  grid-template-columns:minmax(280px,1.45fr) minmax(145px,.8fr) minmax(210px,1fr) 80px minmax(125px,.75fr) 92px 96px 24px;
  gap:14px;align-items:center;
  min-height:112px;padding:15px 18px;
  border-bottom:1px solid #e8edf2;
  background:#fff;
  transition:background .15s,box-shadow .15s
}
.irv2-row:last-child{border-bottom:0}
.irv2-row:hover{
  position:relative;z-index:1;background:#fbfdff;
  box-shadow:inset 3px 0 0 #2457e6
}

.irv2-asset{
  display:grid;grid-template-columns:46px minmax(0,1fr);gap:12px;align-items:center;min-width:0
}
.irv2-asset-icon{
  display:grid;place-items:center;width:46px;height:46px;border-radius:13px;
  background:linear-gradient(145deg,#173d70,#2c61dd);color:#fff;
  font-size:17px;font-weight:900;box-shadow:0 7px 18px rgba(35,78,160,.14)
}
.irv2-asset-copy{min-width:0}
.irv2-ref{
  display:block;margin-bottom:3px;
  font:850 9px ui-monospace,SFMono-Regular,Consolas,monospace;
  letter-spacing:.02em;color:#537697
}
.irv2-asset h3{
  margin:0 0 4px;font-size:18px;line-height:1.15;
  color:#18344d;letter-spacing:-.02em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.irv2-asset p{
  margin:0;color:#7a8b9a;font-size:12px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.irv2-asset p strong{color:#566c80;font-weight:800}

.irv2-cell{min-width:0;display:grid;gap:4px}
.irv2-cell small{
  display:none;color:#9aa6b1;font-size:10.5px;font-weight:900;letter-spacing:.09em
}
.irv2-cell strong{
  min-width:0;color:#4c6277;font-size:12px;font-weight:800;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.irv2-cell .mono{font-size:12px}
.irv2-cell span{color:#8b99a6;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.irv2-evidence strong{font-size:12px}
.irv2-status-wrap{display:flex;justify-content:flex-start}
.irv2-status-wrap .status{font-size:10.5px;padding:6px 8px}
.irv2-open{color:#8da5b9;font-size:18px;transition:transform .15s,color .15s}
.irv2-row:hover .irv2-open{color:#2457e6;transform:translateX(2px)}

.irv2-empty{
  display:grid;justify-items:center;gap:5px;padding:45px 20px;text-align:center
}
.irv2-empty>span{font-size:28px;color:#8ca1b4}
.irv2-empty strong{font-size:14px;color:#41596e}
.irv2-empty p{margin:0;color:#8795a3;font-size:12px}

@media(max-width:1320px){
  .irv2-table-head,.irv2-row{
    grid-template-columns:minmax(260px,1.3fr) minmax(130px,.75fr) minmax(180px,1fr) 70px minmax(110px,.72fr) 88px 90px 22px;
    gap:10px
  }
}
@media(max-width:1120px){
  .irv2-table-head{display:none}
  .irv2-row{
    grid-template-columns:minmax(280px,1.2fr) minmax(150px,.8fr) minmax(200px,1fr) 80px 150px 95px 95px 22px;
    overflow-x:auto
  }
  .irv2-cell small{display:block}
}
@media(max-width:900px){
  .irv2-head{align-items:flex-start;flex-direction:column;padding:22px}
  .irv2-new{width:100%}
  .irv2-overview{grid-template-columns:repeat(3,1fr)}
  .irv2-toolbar{align-items:stretch;flex-direction:column}
  .irv2-filter-form{grid-template-columns:1fr 180px 90px 76px}
  .irv2-result-count{padding:0 4px 3px}
  .irv2-row{
    display:grid;grid-template-columns:1fr 1fr;
    gap:13px;padding:16px
  }
  .irv2-asset{grid-column:1/-1}
  .irv2-cell{padding:10px 11px;border-radius:10px;background:#f7f9fb}
  .irv2-evidence{grid-column:auto}
  .irv2-status-wrap{align-items:center}
  .irv2-open{justify-self:end;align-self:center}
}
@media(max-width:700px){
  .irv2-head h2{font-size:25px}
  .irv2-head p{font-size:12.5px}
  .irv2-overview{grid-template-columns:1fr 1fr}
  .irv2-overview-item:first-child{grid-column:1/-1}
  .irv2-filter-form{grid-template-columns:1fr 1fr}
  .irv2-search{grid-column:1/-1}
  .irv2-filter-form input,.irv2-filter-form select{font-size:16px}
  .irv2-filter-submit,.irv2-clear{font-size:12px}
}
@media(max-width:460px){
  .irv2-head{padding:18px 15px}
  .irv2-head h2{font-size:23px}
  .irv2-overview{grid-template-columns:1fr}
  .irv2-overview-item:first-child{grid-column:auto}
  .irv2-row{grid-template-columns:1fr}
  .irv2-asset{grid-column:auto}
  .irv2-status-wrap{padding-top:3px}
  .irv2-open{display:none}
}


/* === Installation detail dossier v2 === */
.detail-page-v2{display:grid;gap:14px}

.detail-v2-hero{
  position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:space-between;gap:28px;
  min-height:175px;padding:28px 30px
}
.detail-v2-hero:after{
  content:"";position:absolute;right:-80px;top:-120px;width:330px;height:330px;border-radius:50%;
  background:radial-gradient(circle,rgba(36,87,230,.12),rgba(36,87,230,0) 72%);
  pointer-events:none
}
.detail-v2-hero-main{position:relative;z-index:1;min-width:0;flex:1}
.detail-v2-hero .kicker{font-size:12px;letter-spacing:.145em}
.detail-v2-title-row{
  display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-top:7px
}
.detail-v2-title-row h2{
  margin:0 0 7px;font-size:30px;line-height:1.08;letter-spacing:-.038em;color:#18344d
}
.detail-v2-title-row p{
  display:flex;gap:5px;flex-wrap:wrap;margin:0;color:#7b8c9c;font-size:12.5px
}
.detail-v2-title-row p strong{color:#566c80}
.detail-v2-title-row .status{margin-top:4px;padding:7px 10px;font-size:11px}
.detail-v2-summary{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:9px;margin-top:20px
}
.detail-v2-summary>div{
  min-width:0;display:grid;gap:4px;padding:11px 12px;border-radius:11px;
  background:#f7f9fb;border:1px solid #edf1f5
}
.detail-v2-summary small{
  font-size:10.5px;font-weight:900;letter-spacing:.09em;color:#97a3ae
}
.detail-v2-summary strong{
  min-width:0;font-size:12px;color:#4c6378;font-weight:800;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.detail-v2-actions{position:relative;z-index:1;flex:none}
.detail-v2-edit{min-width:175px;min-height:48px;font-size:12px}

.detail-v2-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px
}
.detail-v2-panel{overflow:hidden}
.detail-v2-panel-head{
  display:flex;align-items:center;gap:12px;padding:17px 19px;
  border-bottom:1px solid #e5ebf0;background:linear-gradient(180deg,#fff,#fbfcfd)
}
.detail-v2-panel-icon{
  flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;
  background:#edf3ff;color:#315fae;font-size:16px;font-weight:900
}
.detail-v2-panel-icon.tracker{background:#e9f5fb;color:#26769e}
.detail-v2-panel-icon.install{background:#f0f3f7;color:#61778a}
.detail-v2-panel-icon.verify{background:#e9f8f2;color:#14805e}
.detail-v2-panel-head .kicker{font-size:10.5px;letter-spacing:.12em}
.detail-v2-panel-head h3{
  margin:3px 0 0;font-size:15px;line-height:1.2;color:#27435a;letter-spacing:-.015em
}

.detail-v2-list{margin:0;padding:5px 18px 14px}
.detail-v2-list>div{
  display:grid;grid-template-columns:minmax(125px,.48fr) minmax(0,1fr);
  gap:18px;align-items:center;min-height:45px;border-bottom:1px solid #edf1f4
}
.detail-v2-list>div:last-child{border-bottom:0}
.detail-v2-list dt{
  color:#8696a5;font-size:12px;font-weight:650
}
.detail-v2-list dd{
  margin:0;color:#304b62;font-size:12.5px;font-weight:800;line-height:1.35;overflow-wrap:anywhere
}
.detail-v2-list dd.mono{font-size:12px}
.empty-value{color:#a4afb9!important;font-weight:650!important}
.detail-v2-highlight{
  margin:3px -5px;padding:0 5px;border-bottom:0!important;border-radius:9px;background:#f5f8fc
}
.detail-v2-highlight dt{color:#5f7890;font-weight:800}
.detail-v2-highlight dd{font-size:12px;color:#1e4f80}
.detail-v2-highlight.secondary{background:#f2f8f6}
.detail-v2-highlight.secondary dd{color:#236a56}
.accessory-chip{
  display:inline-flex;margin:2px 4px 2px 0;padding:5px 7px;border-radius:7px;
  background:#eef3f7;color:#526a7e;font-size:11px;font-weight:800
}

.verification-panel{display:flex;flex-direction:column}
.detail-v2-tests{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;padding:16px 18px 10px
}
.test-tile{
  display:flex;align-items:center;gap:9px;min-height:58px;padding:10px 11px;
  border:1px solid #ece7e8;border-radius:11px;background:#fbf8f8
}
.test-tile>span{
  flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:8px;
  background:#fff;border:1px solid #ead8dc;color:#b06a76;font-size:12px;font-weight:900
}
.test-tile>div{display:grid;gap:2px}
.test-tile strong{font-size:12px;color:#76565c}
.test-tile small{font-size:10.5px;color:#a18388}
.test-tile.passed{border-color:#d1eadf;background:#f0faf5}
.test-tile.passed>span{border-color:#b8ddce;background:#e5f6ee;color:#14805e}
.test-tile.passed strong{color:#235f4d}
.test-tile.passed small{color:#5f8c7d}
.technician-notes-v2{
  margin:4px 18px 18px;padding:14px;border-radius:11px;background:#f8fafc;border:1px solid #edf1f4
}
.technician-notes-v2>small{
  font-size:10.5px;font-weight:900;letter-spacing:.1em;color:#8d9aa6
}
.technician-notes-v2 p{
  margin:7px 0 0;color:#586d80;font-size:12px;line-height:1.55
}

.detail-v2-photos{overflow:hidden}
.detail-v2-photos-head{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:19px 21px;border-bottom:1px solid #e4ebf0
}
.detail-v2-photos-head .kicker{font-size:11px}
.detail-v2-photos-head h3{
  margin:4px 0 3px;font-size:18px;color:#27435a;letter-spacing:-.02em
}
.detail-v2-photos-head p{margin:0;color:#8493a0;font-size:12px}
.detail-v2-gallery{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:11px;padding:14px
}
.detail-v2-gallery figure{
  margin:0;border:1px solid #dfe7ee;border-radius:13px;background:#fff;overflow:hidden;
  box-shadow:0 5px 15px rgba(20,42,62,.035)
}
.detail-v2-photo-link{position:relative;display:block;overflow:hidden;background:#eef2f5}
.detail-v2-photo-link img{
  display:block;width:100%;height:210px;object-fit:cover;transition:transform .2s
}
.detail-v2-photo-link:hover img{transform:scale(1.015)}
.photo-open-icon{
  position:absolute;right:9px;top:9px;display:grid;place-items:center;
  width:27px;height:27px;border-radius:8px;background:rgba(11,38,61,.78);color:#fff;
  font-size:12px;backdrop-filter:blur(4px)
}
.detail-v2-gallery figcaption{
  display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:10px 11px
}
.detail-v2-gallery figcaption>div{display:grid;gap:3px;min-width:0}
.detail-v2-gallery figcaption strong{
  color:#40586e;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.detail-v2-gallery figcaption span{color:#8b99a6;font-size:10.5px}
.detail-v2-gallery figcaption button{
  border:0;background:transparent;color:#b54455;font-size:10.5px;font-weight:750;cursor:pointer
}
.detail-v2-photo-empty{
  grid-column:1/-1;display:grid;justify-items:center;gap:5px;padding:36px;text-align:center
}
.detail-v2-photo-empty span{font-size:26px;color:#91a5b5}
.detail-v2-photo-empty strong{font-size:12px;color:#617487}

@media(max-width:1180px){
  .detail-v2-summary{grid-template-columns:repeat(2,1fr)}
  .detail-v2-gallery{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
  .detail-v2-hero{align-items:flex-start;flex-direction:column;padding:23px}
  .detail-v2-actions{width:100%}
  .detail-v2-edit{width:100%}
  .detail-v2-grid{grid-template-columns:1fr}
  .detail-v2-gallery{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:620px){
  .detail-v2-hero{padding:18px 16px}
  .detail-v2-title-row{display:block}
  .detail-v2-title-row h2{font-size:24px}
  .detail-v2-title-row .status{margin-top:10px}
  .detail-v2-title-row p{font-size:12px}
  .detail-v2-summary{grid-template-columns:1fr 1fr}
  .detail-v2-panel-head{padding:14px}
  .detail-v2-list{padding:4px 14px 12px}
  .detail-v2-list>div{grid-template-columns:110px minmax(0,1fr);gap:12px}
  .detail-v2-list dt{font-size:12px}
  .detail-v2-list dd{font-size:12px}
  .detail-v2-tests{grid-template-columns:1fr 1fr;padding:13px 14px 8px}
  .technician-notes-v2{margin:4px 14px 14px}
  .detail-v2-photos-head{padding:15px}
  .detail-v2-gallery{padding:9px;gap:8px}
  .detail-v2-photo-link img{height:165px}
}
@media(max-width:430px){
  .detail-v2-summary{grid-template-columns:1fr}
  .detail-v2-list>div{grid-template-columns:1fr;gap:3px;padding:8px 0}
  .detail-v2-tests{grid-template-columns:1fr}
  .detail-v2-gallery{grid-template-columns:1fr}
  .detail-v2-photo-link img{height:220px}
}


/* === Technician create page polish === */
.tech-create-page{
  max-width:1180px;
  margin:0 auto;
}
.tech-create-card{
  overflow:hidden;
}
.tech-create-head{
  position:relative;
  display:flex;
  align-items:center;
  gap:16px;
  min-height:122px;
  padding:24px 26px;
  border-bottom:1px solid #e4ebf0;
  background:linear-gradient(180deg,#fff,#fbfcfd);
}
.tech-create-head:after{
  content:"";
  position:absolute;
  right:-65px;
  top:-95px;
  width:250px;
  height:250px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(36,87,230,.09),rgba(36,87,230,0) 72%);
  pointer-events:none;
}
.tech-create-head-icon{
  position:relative;
  z-index:1;
  flex:none;
  display:grid;
  place-items:center;
  width:50px;
  height:50px;
  border-radius:14px;
  background:#eaf0ff;
  color:#2457e6;
  font-size:18px;
  font-weight:900;
}
.tech-create-head-copy{
  position:relative;
  z-index:1;
  min-width:0;
  flex:1;
}
.tech-create-head-copy .kicker{
  font-size:11px;
}
.tech-create-head-copy h2{
  margin:5px 0 5px;
  font-size:24px;
  line-height:1.15;
  color:#18344d;
  letter-spacing:-.025em;
}
.tech-create-head-copy p{
  max-width:700px;
  margin:0;
  color:#7c8c9a;
  font-size:12.5px;
  line-height:1.55;
}
.tech-create-head-note{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:7px;
  padding:8px 10px;
  border-radius:999px;
  background:#eef8f4;
  color:#31755f;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}
.tech-create-head-note span{
  color:#1aa779;
  font-size:10.5px;
}

.tech-create-form{
  padding:0 26px 24px;
}
.tech-create-section{
  padding:24px 0 22px;
  border-bottom:1px solid #e7edf2;
}
.tech-create-section:last-of-type{
  border-bottom:0;
}
.tech-create-section-title{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:18px;
}
.tech-create-section-title>span{
  flex:none;
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border-radius:11px;
  background:#f0f4f8;
  color:#597087;
  font-size:11px;
  font-weight:900;
}
.tech-create-section-title h3{
  margin:0;
  font-size:16px;
  color:#29465d;
  letter-spacing:-.01em;
}
.tech-create-section-title p{
  margin:3px 0 0;
  color:#8b99a6;
  font-size:11.5px;
}
.tech-create-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.tech-field{
  display:grid;
  gap:7px;
  min-width:0;
}
.tech-field label{
  color:#4c6175;
  font-size:12px;
  font-weight:800;
}
.tech-field label b{
  color:#d13e55;
}
.tech-field input,
.tech-field select{
  width:100%;
  min-height:50px;
  padding:0 13px;
  border:1px solid #d8e2ea;
  border-radius:10px;
  background:#fff;
  color:#334a5f;
  outline:0;
  font-size:13px;
}
.tech-field input:focus,
.tech-field select:focus{
  border-color:#8da9e9;
  box-shadow:0 0 0 4px rgba(36,87,230,.055);
}
.tech-field small{
  color:#93a0ac;
  font-size:11px;
  line-height:1.45;
}
.tech-field em{
  color:#b7334a;
  font-size:11px;
  font-style:normal;
}

.tech-access-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);
  gap:16px;
  align-items:stretch;
}
.account-state-box{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  min-height:100px;
  padding:16px 18px;
  border:1px solid #dfe7ee;
  border-radius:12px;
  background:#f9fbfc;
}
.account-state-box>div{
  display:grid;
  gap:3px;
}
.account-state-label{
  color:#8d9aa6;
  font-size:10.5px;
  font-weight:900;
  letter-spacing:.1em;
}
.account-state-box strong{
  color:#40586e;
  font-size:12px;
}
.account-state-box small{
  max-width:330px;
  color:#8998a5;
  font-size:11px;
  line-height:1.45;
}
.account-toggle{
  flex:none;
  position:relative;
  display:inline-flex;
  align-items:center;
  cursor:pointer;
}
.account-toggle input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.account-toggle-ui{
  position:relative;
  display:block;
  width:50px;
  height:28px;
  border-radius:999px;
  background:#cfd9e2;
  transition:background .18s;
}
.account-toggle-ui i{
  position:absolute;
  left:4px;
  top:4px;
  width:20px;
  height:20px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 2px 5px rgba(35,56,76,.18);
  transition:transform .18s;
}
.account-toggle input:checked + .account-toggle-ui{
  background:#2457e6;
}
.account-toggle input:checked + .account-toggle-ui i{
  transform:translateX(22px);
}
.account-toggle input:focus-visible + .account-toggle-ui{
  box-shadow:0 0 0 4px rgba(36,87,230,.12);
}
.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

.tech-password-wrap{
  position:relative;
}
.tech-password-wrap input{
  padding-right:50px;
}
.tech-password-toggle{
  position:absolute;
  right:6px;
  top:6px;
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#7c8f9f;
  cursor:pointer;
}
.tech-password-toggle:hover,
.tech-password-toggle.visible{
  background:#f1f5f8;
  color:#2457e6;
}
.tech-password-toggle span{
  font-size:14px;
}

.tech-create-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding-top:22px;
}
.tech-create-footer-note{
  display:flex;
  align-items:center;
  gap:9px;
  max-width:620px;
  color:#748697;
}
.tech-create-footer-note>span{
  flex:none;
  display:grid;
  place-items:center;
  width:27px;
  height:27px;
  border-radius:8px;
  background:#eaf8f2;
  color:#14805e;
  font-size:12px;
  font-weight:900;
}
.tech-create-footer-note p{
  margin:0;
  font-size:11.5px;
  line-height:1.45;
}
.tech-create-actions{
  display:flex;
  gap:9px;
  flex:none;
}
.tech-create-actions .secondary,
.tech-create-actions .primary{
  min-height:46px;
  padding:10px 17px;
  font-size:12px;
}

@media(max-width:900px){
  .tech-create-head{
    align-items:flex-start;
  }
  .tech-create-head-note{
    display:none;
  }
  .tech-access-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:700px){
  .tech-create-page{
    max-width:none;
  }
  .tech-create-head{
    padding:20px 17px;
  }
  .tech-create-head-icon{
    width:44px;
    height:44px;
  }
  .tech-create-head-copy h2{
    font-size:21px;
  }
  .tech-create-form{
    padding:0 16px 18px;
  }
  .tech-create-grid{
    grid-template-columns:1fr;
    gap:13px;
  }
  .tech-field input,
  .tech-field select{
    font-size:16px;
  }
  .account-state-box{
    min-height:90px;
  }
  .tech-create-footer{
    align-items:stretch;
    flex-direction:column;
  }
  .tech-create-actions{
    width:100%;
  }
  .tech-create-actions>*{
    flex:1;
  }
}
@media(max-width:430px){
  .tech-create-head{
    display:grid;
    grid-template-columns:44px 1fr;
  }
  .tech-create-head-copy{
    grid-column:2;
  }
  .account-state-box{
    align-items:flex-start;
  }
}


/* === Access-level select chevron refinement === */
.tech-select-wrap{
  position:relative;
}
.tech-select-wrap select{
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  padding-right:58px!important;
  cursor:pointer;
}
.tech-select-chevron{
  position:absolute;
  right:8px;
  top:50%;
  transform:translateY(-50%);
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:9px;
  background:#f2f6fa;
  border:1px solid #e1e8ef;
  color:#536b80;
  pointer-events:none;
  transition:background .16s,border-color .16s,color .16s,transform .16s;
}
.tech-select-chevron svg{
  width:16px;
  height:16px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.tech-select-wrap:focus-within .tech-select-chevron{
  background:#eaf0ff;
  border-color:#cbd8f5;
  color:#2457e6;
}
.tech-select-wrap:hover .tech-select-chevron{
  background:#edf3f8;
}


/* === Metrics / technician performance === */
.metrics-page-v1{display:grid;gap:14px}
.mp-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:27px 29px;min-height:145px;overflow:hidden;position:relative}
.mp-hero:after{content:"";position:absolute;right:-90px;top:-115px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(36,87,230,.11),transparent 70%)}
.mp-hero>div:first-child{position:relative;z-index:1;max-width:850px}
.mp-hero h2{margin:7px 0 7px;font-size:30px;letter-spacing:-.035em;color:#18344d}
.mp-hero p{margin:0;color:#748697;font-size:12.5px;line-height:1.65}
.mp-hero-badge{position:relative;z-index:1;display:grid;gap:3px;min-width:150px;padding:12px 14px;border-radius:12px;background:#f0f7f4;border:1px solid #dceee6}
.mp-hero-badge span{font-size:10.5px;font-weight:900;letter-spacing:.12em;color:#19916d}
.mp-hero-badge strong{font-size:12px;color:#466a5d}

.mp-filter{padding:15px}
.mp-filter-title{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.mp-filter-title>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#edf3ff;color:#315fae;font-size:16px}
.mp-filter-title>div{display:grid;gap:2px}
.mp-filter-title strong{font-size:12px;color:#324c63}
.mp-filter-title small{font-size:11px;color:#8b99a6}
.mp-filter-grid{display:grid;grid-template-columns:minmax(300px,1.6fr) 170px 165px 140px 170px 130px 130px 86px 92px;gap:8px}
.mp-filter-grid input,.mp-filter-grid select,.mp-apply,.mp-reset{width:100%;min-height:44px;border-radius:9px;font-size:12px}
.mp-filter-grid input,.mp-filter-grid select{padding:0 10px;border:1px solid #d8e2ea;background:#fff;color:#41586c;outline:0}
.mp-filter-grid input:focus,.mp-filter-grid select:focus{border-color:#8ea9e8;box-shadow:0 0 0 4px rgba(36,87,230,.05)}
.mp-search-wide{position:relative;display:flex;align-items:center}
.mp-search-wide>span{position:absolute;left:12px;color:#8b9baa;font-size:15px;pointer-events:none}
.mp-search-wide input{padding-left:36px}
.mp-date{position:relative}
.mp-date>span{position:absolute;z-index:1;left:9px;top:-6px;padding:0 4px;background:#fff;color:#8a99a6;font-size:10.5px;font-weight:800}
.mp-apply{border:0;background:#173d5d;color:#fff;font-weight:850;cursor:pointer}
.mp-reset{display:grid;place-items:center;border:1px solid #dbe4ec;background:#fff;color:#627386;font-weight:750}

.mp-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.mp-kpis article{display:flex;align-items:center;gap:12px;min-height:100px;padding:15px;border:1px solid #dfe7ee;border-radius:15px;background:#fff;box-shadow:0 6px 18px rgba(20,42,62,.035)}
.mp-kpi-icon{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#edf3ff;color:#315fae;font-weight:900}
.mp-kpi-icon.success{background:#e9f8f2;color:#15815f}.mp-kpi-icon.pending{background:#fff4e4;color:#a06b1a}.mp-kpi-icon.clients{background:#f2efff;color:#6a51b7}.mp-kpi-icon.photos{background:#edf7fb;color:#26769e}
.mp-kpis article>div{display:grid;gap:1px}.mp-kpis small{font-size:10.5px;font-weight:900;letter-spacing:.09em;color:#8c9aa6}.mp-kpis strong{font-size:25px;line-height:1;color:#18344d}.mp-kpis p{margin:2px 0 0;font-size:11px;color:#8c99a5}

.mp-chart-grid{display:grid;grid-template-columns:1.45fr .75fr;gap:14px}
.mp-panel{overflow:hidden}.mp-panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 19px;border-bottom:1px solid #e4ebf0}
.mp-panel>header h3{margin:4px 0 0;font-size:17px;color:#29465d;letter-spacing:-.015em}.mp-panel-meta{font-size:11px;color:#8b99a6}
.mp-workload{display:grid;gap:12px;padding:17px 19px}.mp-workload-row{display:grid;grid-template-columns:minmax(150px,230px) 1fr 34px;align-items:center;gap:12px}
.mp-workload-user{display:flex;align-items:center;gap:9px;min-width:0}.mp-mini-avatar{flex:none;display:grid;place-items:center;width:33px;height:33px;border-radius:9px;background:linear-gradient(145deg,#173d70,#2c61dd);color:#fff;font-size:12px;font-weight:900}
.mp-workload-user>div{display:grid;gap:2px;min-width:0}.mp-workload-user strong{font-size:12px;color:#40586e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mp-workload-user small{font-size:10.5px;color:#8e9ba7}
.mp-workload-track{height:9px;border-radius:999px;background:#eef2f5;overflow:hidden}.mp-workload-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2457e6,#3f86c8)}
.mp-workload-value{font-size:12px;color:#40586e;text-align:right}

.mp-donut-wrap{display:grid;grid-template-columns:160px 1fr;align-items:center;gap:22px;padding:24px}
.mp-donut{display:grid;place-items:center;width:150px;height:150px;border-radius:50%;position:relative}
.mp-donut:after{content:"";position:absolute;width:94px;height:94px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #edf1f4}
.mp-donut>div{position:relative;z-index:1;display:grid;justify-items:center}.mp-donut strong{font-size:25px;color:#213f58}.mp-donut span{font-size:10.5px;color:#8b99a6}
.mp-donut-legend{display:grid;gap:10px}.mp-donut-legend>div{display:grid;grid-template-columns:9px 1fr auto 30px;align-items:center;gap:7px}.mp-donut-legend i{width:8px;height:8px;border-radius:50%}.type-new i{background:#2457e6}.type-replacement i{background:#16a085}.type-inspection i{background:#d4872f}
.mp-donut-legend span{font-size:11px;color:#617487}.mp-donut-legend strong{font-size:12px;color:#40586e}.mp-donut-legend small{font-size:10.5px;color:#96a2ad;text-align:right}

.mp-activity-chart{height:245px;display:grid;grid-template-columns:repeat(6,1fr);align-items:end;gap:18px;padding:24px 32px 18px}
.mp-month{height:100%;display:grid;grid-template-rows:18px 1fr 16px 14px;justify-items:center;gap:4px;min-width:0}
.mp-month-value{font-size:11px;font-weight:800;color:#607487}.mp-month-track{width:54%;min-width:24px;height:100%;display:flex;align-items:flex-end;border-radius:9px 9px 4px 4px;background:#f0f3f6;overflow:hidden}
.mp-month-track i{display:block;width:100%;min-height:2px;background:linear-gradient(180deg,#3f86c8,#2457e6);border-radius:7px 7px 3px 3px}.mp-month strong{font-size:11px;color:#536a7f}.mp-month small{font-size:10.5px;color:#9aa5af}

.mp-tech-table{overflow-x:auto}.mp-tech-table-head,.mp-tech-table-row{display:grid;grid-template-columns:30px minmax(220px,1.4fr) 90px 90px 75px 70px 150px 110px;gap:12px;align-items:center;min-width:900px}
.mp-tech-table-head{padding:11px 17px;background:#f8fafc;border-bottom:1px solid #e5ebf0;color:#8c99a5;font-size:10.5px;font-weight:900;letter-spacing:.09em}
.mp-tech-table-row{min-height:78px;padding:12px 17px;border-bottom:1px solid #edf1f4}.mp-tech-table-row:last-child{border-bottom:0}.mp-tech-table-row>strong,.mp-tech-table-row>span{font-size:12px;color:#536a7f}
.mp-rank{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:#f0f4f7;font-weight:900!important}
.mp-tech-name{display:flex;align-items:center;gap:9px;min-width:0}.mp-tech-name>div{display:grid;gap:2px;min-width:0}.mp-tech-name strong{font-size:12px;color:#334e65}.mp-tech-name small{font-size:10.5px;color:#8d9aa6}
.mp-achievements{display:flex;gap:4px;flex-wrap:wrap}.mp-achievements b{padding:3px 5px;border-radius:5px;background:#fff3df;color:#9a691e;font-size:10.5px}.mp-achievements b.complete{background:#e9f8f2;color:#157b5c}
.mp-rate{display:grid;grid-template-columns:1fr 34px;align-items:center;gap:7px}.mp-rate>span{height:7px;border-radius:999px;background:#edf1f4;overflow:hidden}.mp-rate i{display:block;height:100%;background:#1c9a70;border-radius:inherit}.mp-rate strong{font-size:10.5px;color:#627588}

.mp-client-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px}
.mp-client-card{padding:14px;border:1px solid #e0e7ed;border-radius:13px;background:#fbfcfd}.mp-client-head{display:flex;align-items:center;gap:9px}.mp-client-head>span{display:grid;place-items:center;width:37px;height:37px;border-radius:10px;background:#edf3ff;color:#315fae;font-weight:900}
.mp-client-head>div{display:grid;gap:2px;min-width:0}.mp-client-head strong{font-size:12px;color:#39546b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mp-client-head small{font-size:10.5px;color:#8e9ca8}
.mp-client-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:12px 0}.mp-client-numbers>div{display:grid;gap:1px;padding:8px;border-radius:8px;background:#fff}.mp-client-numbers strong{font-size:13px;color:#304d65}.mp-client-numbers span{font-size:10.5px;color:#929faa}
.mp-service-chips{display:flex;flex-wrap:wrap;gap:4px}.mp-service-chips span{padding:4px 6px;border-radius:6px;background:#edf2f6;color:#617588;font-size:10.5px;font-weight:750}

.mp-log-panel{overflow:hidden}.mp-log-head,.mp-log-row{display:grid;grid-template-columns:minmax(180px,1.25fr) minmax(130px,.9fr) minmax(130px,.9fr) minmax(130px,.9fr) minmax(170px,1.05fr) 90px 85px 20px;gap:12px;align-items:center;min-width:980px}
.mp-log-head{padding:10px 16px;background:#f8fafc;border-bottom:1px solid #e5ebf0;color:#8d9aa6;font-size:10.5px;font-weight:900;letter-spacing:.08em}.mp-log-body{overflow-x:auto}
.mp-log-row{min-height:75px;padding:11px 16px;border-bottom:1px solid #edf1f4;background:#fff;transition:background .15s}.mp-log-row:hover{background:#fbfdff}.mp-log-row:last-child{border-bottom:0}.mp-log-row>div{display:grid;gap:3px;min-width:0}
.mp-log-row strong{font-size:11.5px;color:#40596e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mp-log-row small{font-size:10.5px;color:#8d9aa6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mp-log-row .status{font-size:10.5px}.mp-log-open{color:#879fb4;font-size:15px}
.mp-empty{padding:28px;text-align:center;color:#8c99a5;font-size:11.5px}

@media(max-width:1350px){.mp-filter-grid{grid-template-columns:minmax(280px,1.6fr) 160px 155px 130px 160px 120px 120px 82px 88px}.mp-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1100px){.mp-filter-grid{grid-template-columns:repeat(4,1fr)}.mp-search-wide{grid-column:1/-1}.mp-chart-grid{grid-template-columns:1fr}.mp-client-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:850px){.mp-hero{align-items:flex-start;flex-direction:column;padding:22px}.mp-hero-badge{width:100%}.mp-filter-grid{grid-template-columns:repeat(2,1fr)}.mp-kpis{grid-template-columns:repeat(2,1fr)}.mp-donut-wrap{grid-template-columns:150px 1fr}}
@media(max-width:620px){.mp-hero h2{font-size:25px}.mp-filter-grid{grid-template-columns:1fr}.mp-search-wide{grid-column:auto}.mp-filter-grid input,.mp-filter-grid select{font-size:16px}.mp-kpis{grid-template-columns:1fr 1fr}.mp-kpis article{min-height:88px;padding:12px}.mp-workload-row{grid-template-columns:145px 1fr 28px;gap:8px}.mp-workload{padding:14px}.mp-donut-wrap{grid-template-columns:1fr;justify-items:center}.mp-donut-legend{width:100%}.mp-activity-chart{gap:7px;padding:20px 10px 15px}.mp-month-track{width:70%}.mp-client-grid{grid-template-columns:1fr}}
@media(max-width:420px){.mp-kpis{grid-template-columns:1fr}.mp-workload-row{grid-template-columns:1fr 35px}.mp-workload-track{grid-column:1/-1;grid-row:2}.mp-activity-chart{height:210px}}


/* === Installation capture form v3 polish === */
.installation-form-v3 .formintro{
  position:relative;
  overflow:hidden;
  min-height:155px;
  padding:27px 29px;
  border-radius:19px;
}
.installation-form-v3 .formintro:after{
  content:"";
  position:absolute;
  right:-70px;
  top:-105px;
  width:280px;
  height:280px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(36,87,230,.09),rgba(36,87,230,0) 72%);
  pointer-events:none;
}
.installation-form-v3 .formintro>div{
  position:relative;
  z-index:1;
}
.installation-form-v3 .formintro h2{
  margin:6px 0 7px;
  font-size:27px;
  line-height:1.12;
  letter-spacing:-.032em;
  color:#18344d;
}
.installation-form-v3 .formintro p{
  max-width:820px;
  font-size:12px;
  line-height:1.6;
}
.installation-form-v3 .formintro .actions{
  position:relative;
  z-index:1;
}
.installation-form-v3 .formintro .actions button{
  min-height:48px;
  padding:10px 17px;
  font-size:12px;
}

.installation-form-v3 .formsec{
  margin-top:14px;
  padding:25px;
  border-radius:18px;
}
.installation-form-v3 .formsec-primary{
  border-color:#d8e4ef;
  box-shadow:0 10px 30px rgba(20,42,62,.06);
}
.installation-form-v3 .sectitle{
  gap:14px;
  padding-bottom:18px;
  margin-bottom:20px;
}
.installation-form-v3 .sectitle>span{
  width:44px;
  height:44px;
  border-radius:12px;
  font-size:12px;
  box-shadow:inset 0 0 0 1px rgba(36,87,230,.04);
}
.installation-form-v3 .sectitle h3{
  font-size:19px;
  color:#29465d;
  letter-spacing:-.018em;
}
.installation-form-v3 .sectitle p{
  margin-top:4px;
  font-size:12px;
  line-height:1.45;
}
.installation-form-v3 .grid{
  gap:16px;
}
.installation-form-v3 .field{
  gap:7px;
}
.installation-form-v3 .field label{
  font-size:12px;
  font-weight:800;
  color:#465d72;
}
.installation-form-v3 .field input,
.installation-form-v3 .field select,
.installation-form-v3 .field textarea{
  min-height:51px;
  padding:10px 13px;
  border-color:#d5e0e9;
  border-radius:11px;
  color:#31495e;
  font-size:13px;
  background-color:#fff;
}
.installation-form-v3 .field input:hover,
.installation-form-v3 .field select:hover,
.installation-form-v3 .field textarea:hover{
  border-color:#c6d4df;
}
.installation-form-v3 .field input:focus,
.installation-form-v3 .field select:focus,
.installation-form-v3 .field textarea:focus{
  border-color:#88a6e9;
  box-shadow:0 0 0 4px rgba(36,87,230,.055);
}
.installation-form-v3 .field small{
  font-size:11px;
}
.installation-form-v3 .field em{
  font-size:11px;
}

/* Larger custom down-arrow for every select on the installation form */
.installation-form-v3 .field select{
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  padding-right:58px;
  cursor:pointer;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 7.5 10 12l4.5-4.5' fill='none' stroke='%23536b80' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"),
    linear-gradient(#f2f6fa,#f2f6fa);
  background-repeat:no-repeat,no-repeat;
  background-size:18px 18px,36px 36px;
  background-position:right 15px center,right 6px center;
}
.installation-form-v3 .field select:focus{
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 7.5 10 12l4.5-4.5' fill='none' stroke='%232457e6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"),
    linear-gradient(#eaf0ff,#eaf0ff);
}

/* GPS capture */
.geo-field{
  margin-top:2px;
}
.geo-capture-card{
  display:grid;
  grid-template-columns:44px minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  min-height:92px;
  padding:14px;
  border:1px solid #d9e4ed;
  border-radius:13px;
  background:#f9fbfc;
  transition:border-color .18s,background .18s,box-shadow .18s;
}
.geo-capture-icon{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:12px;
  background:#edf3ff;
  color:#315fae;
  font-size:19px;
  font-weight:900;
}
.geo-capture-copy{
  display:grid;
  gap:4px;
  min-width:0;
}
.geo-capture-copy strong{
  color:#38536b;
  font-size:12px;
}
.geo-capture-copy small{
  color:#8292a0;
  font-size:11px;
  line-height:1.5;
}
.geo-accuracy{
  min-height:11px;
  color:#697f92;
  font-size:10.5px;
  font-weight:750;
}
.geo-capture-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.installation-form-v3 .geobtn{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:46px;
  padding:0 14px;
  border:1px solid #bfcfdd;
  border-radius:10px;
  background:#fff;
  color:#2f5e84;
  font-size:12px;
  font-weight:850;
  cursor:pointer;
  transition:border-color .16s,background .16s,color .16s,box-shadow .16s;
}
.installation-form-v3 .geobtn:hover{
  border-color:#91b1cc;
  background:#f3f8fc;
}
.installation-form-v3 .geobtn:disabled{
  cursor:wait;
  opacity:.75;
}
.geo-btn-icon{
  font-size:15px;
}
.geobtn.is-loading .geo-btn-icon{
  animation:geoPulse 1s ease-in-out infinite;
}
.geo-map-link{
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:0 10px;
  border-radius:9px;
  color:#60798e;
  font-size:11px;
  font-weight:800;
}
.geo-map-link:hover{
  background:#eef3f7;
  color:#2457e6;
}
.geo-map-link.is-hidden{
  display:none;
}
.geo-capture-card[data-state="loading"]{
  border-color:#b9cbee;
  background:#f5f8ff;
  box-shadow:0 0 0 4px rgba(36,87,230,.035);
}
.geo-capture-card[data-state="success"],
.geo-capture-card[data-state="saved"]{
  border-color:#bfe2d5;
  background:#f4fbf8;
}
.geo-capture-card[data-state="success"] .geo-capture-icon,
.geo-capture-card[data-state="saved"] .geo-capture-icon{
  background:#e5f6ee;
  color:#14805e;
}
.geo-capture-card[data-state="error"]{
  border-color:#edc7cf;
  background:#fff7f8;
}
.geo-capture-card[data-state="error"] .geo-capture-icon{
  background:#fff0f2;
  color:#b64255;
}
@keyframes geoPulse{
  0%,100%{transform:scale(1);opacity:.7}
  50%{transform:scale(1.18);opacity:1}
}

.installation-form-v3 .checks{
  gap:9px;
}
.installation-form-v3 .check{
  min-height:50px;
  padding:12px 13px;
}
.installation-form-v3 .check strong{
  font-size:11.5px;
}
.installation-form-v3 .formsec h4{
  font-size:12px;
  color:#475f74;
}
.installation-form-v3 .photobox{
  min-height:155px;
}
.installation-form-v3 .photobox strong{
  font-size:12px;
}
.installation-form-v3 .sticky{
  padding:12px;
}
.installation-form-v3 .sticky button{
  min-height:46px;
  font-size:12px;
}

@media(max-width:850px){
  .installation-form-v3 .formintro{
    padding:23px;
  }
  .geo-capture-card{
    grid-template-columns:44px minmax(0,1fr);
  }
  .geo-capture-actions{
    grid-column:1/-1;
    justify-content:flex-start;
    padding-left:58px;
  }
}
@media(max-width:620px){
  .installation-form-v3 .formintro{
    padding:19px 16px;
  }
  .installation-form-v3 .formintro h2{
    font-size:23px;
  }
  .installation-form-v3 .formsec{
    padding:17px 14px;
  }
  .installation-form-v3 .field input,
  .installation-form-v3 .field select,
  .installation-form-v3 .field textarea{
    font-size:16px;
  }
  .installation-form-v3 .field select{
    background-size:18px 18px,38px 38px;
  }
  .geo-capture-card{
    display:grid;
    grid-template-columns:38px minmax(0,1fr);
    gap:10px;
    padding:12px;
  }
  .geo-capture-icon{
    width:38px;
    height:38px;
  }
  .geo-capture-actions{
    padding-left:48px;
    flex-direction:column;
    align-items:stretch;
  }
  .installation-form-v3 .geobtn,
  .geo-map-link{
    width:100%;
    justify-content:center;
  }
}


/* === Asset details section v3 === */
.asset-section-v3{
  position:relative;
  overflow:hidden;
}
.asset-section-v3:after{
  content:"";
  position:absolute;
  right:-80px;
  top:-105px;
  width:260px;
  height:260px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(36,87,230,.055),rgba(36,87,230,0) 72%);
  pointer-events:none;
}
.asset-section-v3>.sectitle,
.asset-section-v3>div{
  position:relative;
  z-index:1;
}
.asset-context-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.asset-required-block{
  margin-top:20px;
  padding:18px;
  border:1px solid #cad9ea;
  border-radius:14px;
  background:linear-gradient(180deg,#f8fbff,#f4f8fd);
  box-shadow:inset 0 0 0 1px rgba(36,87,230,.018);
}
.asset-required-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:16px;
}
.asset-required-kicker{
  display:block;
  margin-bottom:4px;
  color:#3f67a8;
  font-size:10.5px;
  font-weight:900;
  letter-spacing:.11em;
}
.asset-required-head h4{
  margin:0 0 4px!important;
  color:#29465d!important;
  font-size:14px!important;
  letter-spacing:-.01em;
}
.asset-required-head p{
  margin:0;
  color:#7d8f9f;
  font-size:11.5px;
  line-height:1.45;
}
.required-badge{
  flex:none;
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:6px 8px;
  border-radius:999px;
  background:#fff0f2;
  color:#b44658;
  font-size:10.5px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.045em;
}
.required-badge:first-letter{
  color:#d3485e;
}
.asset-key-grid{
  display:grid;
  grid-template-columns:1.15fr 1fr 1fr;
  gap:12px;
}
.asset-key-field{
  padding:13px;
  border:1px solid #d9e4ef;
  border-radius:12px;
  background:#fff;
}
.asset-key-field label{
  color:#35526d!important;
  font-size:12px!important;
}
.asset-key-field input{
  min-height:53px!important;
  border-color:#cddae5!important;
  background:#fff!important;
  font-size:13px!important;
  font-weight:700;
}
.asset-key-field input::placeholder{
  color:#a2adb7;
  font-weight:500;
}
.asset-key-field input:focus{
  border-color:#789be7!important;
}
.asset-optional-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:20px 1px 11px;
  padding-top:2px;
}
.asset-optional-head>span{
  color:#60758a;
  font-size:10.5px;
  font-weight:900;
  letter-spacing:.1em;
}
.asset-optional-head small{
  color:#96a2ad;
  font-size:10.5px;
}
.asset-optional-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.asset-optional-grid .field:nth-child(4),
.asset-optional-grid .field:nth-child(5){
  grid-column:span 1;
}
@media(max-width:980px){
  .asset-key-grid{grid-template-columns:1fr 1fr}
  .asset-key-field:first-child{grid-column:1/-1}
  .asset-optional-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .asset-context-grid,
  .asset-key-grid,
  .asset-optional-grid{
    grid-template-columns:1fr;
  }
  .asset-key-field:first-child{
    grid-column:auto;
  }
  .asset-required-block{
    padding:14px;
  }
  .asset-required-head{
    display:grid;
    gap:9px;
  }
  .required-badge{
    justify-self:start;
  }
  .asset-key-field{
    padding:11px;
  }
  .asset-key-field input{
    font-size:16px!important;
  }
  .asset-optional-head{
    align-items:flex-start;
    flex-direction:column;
    gap:3px;
  }
}


/* === Tracker & SIM simplified section v4 === */
.tracker-sim-v4{
  position:relative;
  overflow:hidden;
}
.tracker-sim-v4:after{
  content:"";
  position:absolute;
  right:-90px;
  top:-105px;
  width:280px;
  height:280px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(38,118,158,.055),rgba(38,118,158,0) 72%);
  pointer-events:none;
}
.tracker-sim-v4>.sectitle,
.tracker-sim-v4>div{
  position:relative;
  z-index:1;
}

.tracker-required-block{
  padding:18px;
  border:1px solid #cadee8;
  border-radius:14px;
  background:linear-gradient(180deg,#f8fcfe,#f4f9fb);
}
.tracker-required-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:16px;
}
.tracker-required-kicker{
  display:block;
  margin-bottom:4px;
  color:#2f789e;
  font-size:10.5px;
  font-weight:900;
  letter-spacing:.11em;
}
.tracker-required-head h4{
  margin:0 0 4px!important;
  color:#29465d!important;
  font-size:14px!important;
  letter-spacing:-.01em;
}
.tracker-required-head p{
  margin:0;
  color:#7e909e;
  font-size:11.5px;
  line-height:1.45;
}

.tracker-key-grid{
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr;
  gap:12px;
}
.tracker-key-field{
  padding:13px;
  border:1px solid #d7e4eb;
  border-radius:12px;
  background:#fff;
}
.tracker-key-field label{
  color:#35526d!important;
  font-size:12px!important;
}
.tracker-key-field input,
.tracker-key-field select{
  min-height:53px!important;
  border-color:#cbdbe4!important;
  background-color:#fff!important;
  font-size:13px!important;
  font-weight:700;
}
.tracker-key-field input::placeholder{
  color:#a1aeb8;
  font-weight:500;
}
.tracker-key-field input:focus,
.tracker-key-field select:focus{
  border-color:#73a6c1!important;
}

.tracker-other-field{
  display:none;
  grid-column:1/-1;
  border-color:#d8dfea;
  background:#fafbfe;
}
.tracker-other-field.is-visible{
  display:grid;
}

.tracker-network-block{
  display:grid;
  grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);
  gap:18px;
  align-items:end;
  margin-top:18px;
  padding:16px 18px;
  border:1px solid #e0e8ee;
  border-radius:13px;
  background:#fafcfd;
}
.tracker-network-copy{
  display:grid;
  gap:4px;
  align-self:center;
}
.tracker-network-copy>span{
  color:#60768a;
  font-size:10.5px;
  font-weight:900;
  letter-spacing:.1em;
}
.tracker-network-copy small{
  color:#8e9ca8;
  font-size:11px;
  line-height:1.45;
}
.tracker-network-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.tracker-network-other{
  display:none;
}
.tracker-network-other.is-visible{
  display:grid;
}

.tracker-optional-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:20px 1px 10px;
}
.tracker-optional-head>span{
  color:#60758a;
  font-size:10.5px;
  font-weight:900;
  letter-spacing:.1em;
}
.tracker-optional-head small{
  color:#96a2ad;
  font-size:10.5px;
}
.tracker-optional-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.tracker-managed-note{
  display:flex;
  align-items:center;
  gap:9px;
  margin-top:16px;
  padding:11px 12px;
  border:1px solid #dcebe4;
  border-radius:10px;
  background:#f3faf7;
}
.tracker-managed-note>span{
  flex:none;
  display:grid;
  place-items:center;
  width:25px;
  height:25px;
  border-radius:7px;
  background:#e4f5ed;
  color:#14805e;
  font-size:12px;
  font-weight:900;
}
.tracker-managed-note p{
  margin:0;
  color:#617c70;
  font-size:11px;
  line-height:1.45;
}

@media(max-width:980px){
  .tracker-key-grid{
    grid-template-columns:1fr 1fr;
  }
  .tracker-key-field:first-child{
    grid-column:1/-1;
  }
  .tracker-network-block{
    grid-template-columns:1fr;
  }
}
@media(max-width:620px){
  .tracker-required-block{
    padding:14px;
  }
  .tracker-required-head{
    display:grid;
    gap:9px;
  }
  .tracker-key-grid,
  .tracker-network-grid,
  .tracker-optional-grid{
    grid-template-columns:1fr;
  }
  .tracker-key-field:first-child{
    grid-column:auto;
  }
  .tracker-key-field{
    padding:11px;
  }
  .tracker-key-field input,
  .tracker-key-field select{
    font-size:16px!important;
  }
  .tracker-network-block{
    padding:14px;
  }
  .tracker-optional-head{
    align-items:flex-start;
    flex-direction:column;
    gap:3px;
  }
}


/* === Tracker installation position selector v5 === */
.install-tests-v5{
  position:relative;
  overflow:hidden;
}
.install-tests-v5:after{
  content:"";
  position:absolute;
  right:-95px;
  top:-115px;
  width:290px;
  height:290px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(36,87,230,.045),rgba(36,87,230,0) 72%);
  pointer-events:none;
}
.install-tests-v5>.sectitle,
.install-tests-v5>div,
.install-tests-v5>h4{
  position:relative;
  z-index:1;
}
.install-location-block{
  display:grid;
  grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);
  gap:18px;
  align-items:end;
  padding:17px 18px;
  border:1px solid #dce6ee;
  border-radius:13px;
  background:#fafcfd;
}
.install-location-copy{
  display:grid;
  gap:4px;
  align-self:center;
}
.install-location-copy>span{
  color:#60788b;
  font-size:10.5px;
  font-weight:900;
  letter-spacing:.1em;
}
.install-location-copy strong{
  color:#38536a;
  font-size:12px;
}
.install-location-copy small{
  color:#8c9aa6;
  font-size:11px;
  line-height:1.45;
}
.install-location-fields{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.install-position-other{
  display:none;
}
.install-position-other.is-visible{
  display:grid;
}
.install-wiring-grid{
  margin-top:16px;
}
.install-tests-v5 .checks{
  margin-top:14px;
}
.install-tests-v5>h4{
  margin-top:22px!important;
}
@media(max-width:900px){
  .install-location-block{
    grid-template-columns:1fr;
    align-items:start;
  }
}
@media(max-width:620px){
  .install-location-block{
    padding:14px;
  }
  .install-location-fields{
    grid-template-columns:1fr;
  }
}


/* === Responsive audit: smartphone + tablet hardening === */
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{
  min-width:0;
  overflow-x:hidden;
}
img{
  max-width:100%;
}
button,a,input,select,textarea{
  -webkit-tap-highlight-color:transparent;
}
button,a,select{
  touch-action:manipulation;
}

/* Persistent logo surfaces */
.brand-logo-surface{
  overflow:hidden;
}
.brand-logo-surface img{
  width:100%!important;
  max-width:190px!important;
  height:auto!important;
  object-fit:contain;
  filter:none!important;
  opacity:1!important;
}
.mobile-brand{
  display:none;
  flex:none;
  align-items:center;
  justify-content:center;
}
.mobile-brand>span{
  display:flex;
  align-items:center;
  justify-content:center;
  width:112px;
  height:42px;
  padding:5px 8px;
  border:1px solid #dce5ed;
  border-radius:9px;
  background:#fff;
  box-shadow:0 3px 10px rgba(18,42,64,.05);
  overflow:hidden;
}
.mobile-brand img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  filter:none!important;
  opacity:1!important;
}
.header-title{
  min-width:0;
}
.header-title h1{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.header-new{
  flex:none;
}
.header-new b{
  font-size:13px;
  line-height:1;
}

/* Desktop/tablet touch improvements */
.sidebar{
  overflow-y:auto;
  overscroll-behavior:contain;
}
.sidebar nav a{
  min-height:46px;
}
.user button{
  min-height:38px;
  display:flex;
  align-items:center;
}
.langswitch button{
  min-width:34px;
  min-height:34px;
}
.primary,.secondary,
.filters button,.filters a,
.tech-action-btn,
.mp-apply,.mp-reset{
  min-height:44px;
}

/* Dense data areas remain contained and touch-scrollable */
.mp-tech-table,
.mp-log-body,
.irv2-table,
.mp-panel{
  max-width:100%;
}
.mp-tech-table,
.mp-log-body{
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;
  scrollbar-width:thin;
}
.mp-tech-table:focus,
.mp-log-body:focus{
  outline:2px solid rgba(36,87,230,.18);
  outline-offset:-2px;
}
.detail-v2-gallery img,
.gallery img{
  max-width:100%;
}

/* Tablet: drawer navigation and compact app header */
@media(max-width:850px){
  .shell{
    display:block;
    width:100%;
  }
  .sidebar{
    position:fixed!important;
    inset:0 auto 0 0;
    left:-282px!important;
    width:272px!important;
    height:100dvh!important;
    padding:
      calc(16px + env(safe-area-inset-top))
      14px
      calc(16px + env(safe-area-inset-bottom));
    transition:left .2s ease;
    box-shadow:20px 0 45px rgba(3,17,29,.25);
    z-index:60;
  }
  body.navopen{
    overflow:hidden;
  }
  body.navopen .sidebar{
    left:0!important;
  }
  #veil{
    z-index:55!important;
  }

  .app-header{
    height:68px!important;
    gap:9px!important;
    padding:
      max(8px,env(safe-area-inset-top))
      max(12px,env(safe-area-inset-right))
      8px
      max(12px,env(safe-area-inset-left))!important;
  }
  .menu-button{
    display:grid!important;
    place-items:center;
    flex:none;
    width:44px!important;
    height:44px!important;
    min-width:44px;
    min-height:44px;
    margin:0;
    border:1px solid #dbe4ec!important;
    border-radius:10px!important;
    background:#fff!important;
    color:#425c73!important;
    font-size:18px;
  }
  .mobile-brand{
    display:flex;
  }
  .header-title{
    flex:1;
    min-width:0;
  }
  .header-title small{
    display:none!important;
  }
  .header-title h1{
    margin:0!important;
    font-size:17px!important;
    line-height:1.15;
  }
  .langswitch{
    flex:none;
    margin-left:0!important;
  }
  .header-new{
    flex:none;
    min-width:44px;
    min-height:44px;
    padding:0 11px!important;
  }

  .main>main{
    width:100%;
    max-width:100%;
    padding:
      16px
      max(13px,env(safe-area-inset-right))
      calc(36px + env(safe-area-inset-bottom))
      max(13px,env(safe-area-inset-left))!important;
  }

  .card{
    max-width:100%;
  }

  /* Tablet forms */
  .installation-form-v3 .formintro,
  .formintro{
    align-items:flex-start;
    flex-direction:column;
  }
  .installation-form-v3 .formintro .actions,
  .formintro .actions{
    width:100%;
  }
  .installation-form-v3 .formintro .actions>*,
  .formintro .actions>*{
    flex:1;
    min-height:48px;
  }
  .field input,
  .field select,
  .field textarea{
    min-height:48px;
  }
  .check{
    min-height:48px;
  }

  /* Detail and media */
  .detail-v2-grid{
    grid-template-columns:1fr!important;
  }
  .detail-v2-gallery{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  /* Metrics panels fit tablet without page overflow */
  .mp-chart-grid{
    grid-template-columns:1fr!important;
  }
  .mp-filter-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .mp-search-wide{
    grid-column:1/-1!important;
  }
  .mp-client-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

/* Compact phone */
@media(max-width:620px){
  .app-header{
    height:64px!important;
    gap:7px!important;
  }
  .mobile-brand>span{
    width:92px;
    height:38px;
    padding:4px 6px;
  }
  .header-title h1{
    font-size:15px!important;
  }
  .langswitch{
    padding:3px 4px!important;
    gap:1px!important;
  }
  .langswitch button{
    min-width:31px;
    min-height:32px;
    padding:4px!important;
    font-size:10.5px!important;
  }
  .header-new{
    width:42px;
    min-width:42px;
    height:42px;
    padding:0!important;
    justify-content:center;
  }
  .header-new span{
    display:none;
  }
  .header-new b{
    font-size:17px;
  }

  .main>main{
    padding:
      12px
      max(9px,env(safe-area-inset-right))
      calc(104px + env(safe-area-inset-bottom))
      max(9px,env(safe-area-inset-left))!important;
  }

  /* Prevent iOS focus zoom */
  input,
  select,
  textarea,
  .field input,
  .field select,
  .field textarea,
  .loginbox input,
  .loginbox select,
  .tech-field input,
  .tech-field select,
  .mp-filter-grid input,
  .mp-filter-grid select{
    font-size:16px!important;
  }

  .card{
    border-radius:14px;
  }
  .kicker{
    font-size:11px;
  }

  /* Forms and fixed action area */
  .installation-form-v3 .formsec{
    padding:16px 13px!important;
  }
  .installation-form-v3 .sectitle{
    align-items:flex-start;
    gap:10px;
    margin-bottom:16px;
    padding-bottom:14px;
  }
  .installation-form-v3 .sectitle>span{
    width:38px;
    height:38px;
    flex:none;
  }
  .installation-form-v3 .sectitle h3{
    font-size:17px;
  }
  .installation-form-v3 .sectitle p{
    font-size:11.5px;
  }
  .installation-form-v3 .sticky,
  .sticky{
    position:fixed!important;
    left:max(7px,env(safe-area-inset-left))!important;
    right:max(7px,env(safe-area-inset-right))!important;
    bottom:calc(7px + env(safe-area-inset-bottom))!important;
    z-index:48!important;
    display:grid!important;
    grid-template-columns:1fr 1fr;
    gap:7px!important;
    margin:0!important;
    padding:8px!important;
    border-radius:13px!important;
    background:rgba(244,247,250,.97)!important;
    box-shadow:0 8px 25px rgba(18,42,64,.14);
  }
  .installation-form-v3 .sticky button,
  .sticky button{
    width:100%;
    min-width:0;
    min-height:48px!important;
    padding:8px 7px!important;
    white-space:normal;
    line-height:1.2;
  }

  .checks{
    grid-template-columns:1fr 1fr!important;
  }
  .check{
    padding:11px!important;
  }
  .photogrid{
    grid-template-columns:1fr 1fr!important;
  }

  /* GPS action card */
  .geo-capture-card{
    grid-template-columns:38px minmax(0,1fr)!important;
  }
  .geo-capture-actions{
    grid-column:1/-1!important;
    padding-left:48px!important;
    width:100%;
  }
  .geo-capture-actions>*{
    width:100%;
    justify-content:center;
  }

  /* Installation registry behaves as cards */
  .irv2-table{
    overflow:visible!important;
  }
  .irv2-row{
    min-width:0!important;
  }

  /* Metrics mobile: intentional internal horizontal scroll, never page overflow */
  .mp-tech-table,
  .mp-log-body{
    width:100%;
    overflow-x:auto!important;
    border-radius:0 0 14px 14px;
  }
  .mp-tech-table-head,
  .mp-tech-table-row{
    min-width:820px!important;
  }
  .mp-log-head,
  .mp-log-row{
    min-width:860px!important;
  }
  .mp-filter-grid{
    grid-template-columns:1fr!important;
  }
  .mp-search-wide{
    grid-column:auto!important;
  }
  .mp-kpis{
    grid-template-columns:1fr 1fr!important;
  }
  .mp-client-grid{
    grid-template-columns:1fr!important;
  }
  .mp-panel>header{
    align-items:flex-start;
    padding:14px;
  }

  /* Detail page */
  .detail-v2-hero{
    padding:17px 14px!important;
  }
  .detail-v2-title-row h2{
    font-size:23px!important;
  }
  .detail-v2-summary{
    grid-template-columns:1fr 1fr!important;
  }
  .detail-v2-gallery{
    grid-template-columns:1fr 1fr!important;
    gap:7px!important;
    padding:8px!important;
  }

  /* Technician management */
  .tech-metrics{
    grid-template-columns:1fr 1fr!important;
  }
  .tech-toolbar{
    align-items:stretch!important;
    flex-direction:column!important;
  }
  .tech-search{
    max-width:none!important;
  }
  .tech-grid{
    grid-template-columns:1fr!important;
  }

  /* Account creation */
  .tech-create-head{
    padding:18px 15px!important;
  }
  .tech-create-form{
    padding:0 14px 17px!important;
  }
  .tech-create-grid,
  .tech-access-grid{
    grid-template-columns:1fr!important;
  }

  /* Authentication */
  .loginpanel{
    padding:
      calc(18px + env(safe-area-inset-top))
      max(12px,env(safe-area-inset-right))
      calc(18px + env(safe-area-inset-bottom))
      max(12px,env(safe-area-inset-left))!important;
  }
  .loginbox{
    width:100%!important;
    max-width:460px;
    padding:24px 18px!important;
  }
}

/* Very narrow phones */
@media(max-width:430px){
  .mobile-brand>span{
    width:82px;
    height:36px;
  }
  .header-title{
    display:none;
  }
  .langswitch{
    margin-left:auto!important;
  }

  .mp-kpis,
  .tech-metrics{
    grid-template-columns:1fr!important;
  }
  .checks,
  .photogrid{
    grid-template-columns:1fr!important;
  }
  .detail-v2-summary,
  .detail-v2-gallery{
    grid-template-columns:1fr!important;
  }
  .detail-v2-photo-link img{
    height:220px!important;
  }
}

/* Landscape phones: don't let fixed footer dominate screen */
@media(max-height:520px) and (max-width:850px) and (orientation:landscape){
  .sidebar{
    padding-top:10px;
    padding-bottom:10px;
  }
  .brand-logo-surface{
    min-height:48px;
    padding:6px 9px;
  }
  .brand-logo-surface img{
    max-height:34px;
  }
  .brand>span{
    margin-top:5px;
  }
  .sidebar nav{
    padding-top:10px;
  }
  .sidebar nav a{
    min-height:40px;
    padding:8px 11px;
  }
  .installation-form-v3 .sticky,
  .sticky{
    position:sticky!important;
    left:auto!important;
    right:auto!important;
    bottom:8px!important;
  }
}


/* === Responsive audit follow-up: header anchors + auth logo === */
.app-header>.mobile-brand{
  margin-left:0!important;
  padding:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:inherit!important;
  box-shadow:none!important;
}
.login-mobile-logo{
  display:none;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:66px;
  margin:0 0 18px;
  padding:9px 12px;
  border:1px solid #dce5ed;
  border-radius:12px;
  background:#fff;
  box-shadow:0 6px 18px rgba(18,42,64,.05);
}
.login-mobile-logo img{
  display:block;
  width:min(220px,78%);
  max-height:48px;
  object-fit:contain;
  filter:none!important;
  opacity:1!important;
}
@media(max-width:850px){
  .login-mobile-logo{
    display:flex;
  }
  .user button{
    min-height:44px;
  }
}


/* === InstallPro enterprise workflow release === */
.connection-status{
  display:inline-flex;align-items:center;gap:5px;flex:none;
  padding:6px 8px;border-radius:999px;background:#eaf8f2;color:#157a5a;
  font-size:10.5px;font-weight:900;letter-spacing:.03em
}
.connection-status.is-offline{background:#fff3df;color:#956313}
.connection-status:first-letter{font-size:10.5px}

.workorder-linked-banner{
  display:flex;align-items:center;gap:11px;margin:13px 0;padding:12px 14px;border-radius:13px;
  background:#f4f8ff;border-color:#d7e2f4
}
.workorder-linked-banner>span{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#e7efff;color:#315cae;font-weight:900}
.workorder-linked-banner>div{display:grid;gap:2px;min-width:0}.workorder-linked-banner strong{font-size:12px;color:#38536b}.workorder-linked-banner small{font-size:11px;color:#8392a0}
.workorder-linked-banner>a{margin-left:auto;color:#2457e6;font-size:11px;font-weight:850}

.evidence-required-badge{display:inline-flex;vertical-align:middle;margin-left:7px;padding:4px 6px;border-radius:999px;background:#fff0f2;color:#b34658;font-size:10.5px;font-weight:900}
.evidence-note{display:flex;align-items:center;gap:9px;margin-top:12px;padding:10px 11px;border:1px solid #dcebe4;border-radius:10px;background:#f4faf7}
.evidence-note>span{display:grid;place-items:center;width:25px;height:25px;border-radius:7px;background:#e4f5ed;color:#14805e;font-weight:900}
.evidence-note p{margin:0;color:#617c70;font-size:11px;line-height:1.45}

/* QR / barcode scanning */
.scan-input-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:stretch}
.scan-input-wrap input{min-width:0}
.scan-code-btn{
  display:flex;align-items:center;justify-content:center;gap:5px;min-width:78px;padding:0 10px;
  border:1px solid #cbd8e3;border-radius:10px;background:#f7fafc;color:#35627f;
  font-size:11px;font-weight:850;cursor:pointer
}
.scan-code-btn:hover{background:#edf5fa;border-color:#9fbbce}
.scan-modal[hidden]{display:none!important}
.scan-modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:18px;background:rgba(4,18,30,.72);backdrop-filter:blur(5px)}
.scan-dialog{width:min(560px,100%);overflow:hidden;border-radius:18px;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.28)}
.scan-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #e2e8ee}
.scan-head>div{display:grid;gap:2px}.scan-head strong{font-size:13px;color:#29465d}.scan-head small{font-size:11px;color:#8595a4}.scan-head button{width:38px;height:38px;border:0;border-radius:9px;background:#f1f4f6;color:#597084;font-size:20px}
#scanReader{min-height:280px;background:#0c1720}
#scanState{margin:0;padding:12px 16px;color:#6f8190;font-size:11px;line-height:1.5}
body.scan-open{overflow:hidden}

/* Offline queue */
.offline-notice{margin-bottom:13px;padding:12px 14px;border:1px solid #ecd9ab;border-radius:11px;background:#fff7e8;color:#8a631e;font-size:12px;font-weight:750}
.offline-notice.saved,.offline-notice.synced{border-color:#c8e6da;background:#eefaf5;color:#15765a}
.offline-notice.error{border-color:#edcad1;background:#fff4f6;color:#a33e50}
.offline-notice.syncing{border-color:#cbdaf0;background:#f2f6fd;color:#365e91}

/* Final review */
.review-page{display:grid;gap:13px;max-width:1450px;margin:auto}
.review-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:23px 25px}
.review-hero h2{margin:6px 0 4px;font-size:27px;color:#18344d;letter-spacing:-.03em}.review-hero p{margin:0;color:#7b8b99;font-size:12px}
.review-status{display:inline-flex;align-items:center;padding:8px 10px;border-radius:999px;font-size:10.5px;font-weight:900;text-transform:uppercase;white-space:nowrap}
.review-status.ready{background:#e8f7f0;color:#137f5d}.review-status.needs-work{background:#fff3df;color:#956313}
.review-issues{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:14px;padding:15px 17px;border-color:#edd6ac;background:#fffaf0}
.review-issues-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:#fff0cc;color:#9a6b17;font-weight:900}
.review-issues h3{margin:0 0 3px;font-size:13px;color:#574a36}.review-issues p{margin:0;color:#8b795e;font-size:11px}
.review-issue-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.review-issue-chips span{padding:5px 7px;border-radius:7px;background:#fff1d5;color:#8b621c;font-size:10.5px;font-weight:800}
.review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.review-panel{overflow:hidden}.review-panel>header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid #e6edf2}.review-panel>header>span{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#edf3ff;color:#315eaf;font-size:10.5px;font-weight:900}
.review-panel>header>div{display:grid;gap:2px}.review-panel>header strong{font-size:12px;color:#38536a}.review-panel>header small{font-size:10.5px;color:#8d9aa6}
.review-panel dl{display:grid;grid-template-columns:1fr 1fr;margin:0;padding:10px 15px 14px;gap:0 18px}.review-panel dl>div{display:grid;gap:2px;padding:8px 0;border-bottom:1px solid #edf2f5}.review-panel dt{font-size:10.5px;font-weight:900;color:#94a0ab;text-transform:uppercase;letter-spacing:.06em}.review-panel dd{margin:0;color:#40586d;font-size:11.5px;font-weight:750;overflow-wrap:anywhere}
.review-tests{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:15px}.review-tests span{padding:10px;border-radius:9px;background:#f5f7f9;color:#8f7a7f;font-size:11px;font-weight:750}.review-tests span.ok{background:#e9f8f2;color:#147d5d}
.review-evidence{overflow:hidden}.review-evidence>header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid #e5ecf1}.review-evidence h3{margin:4px 0 0;font-size:15px;color:#29465d}.review-evidence>header>strong{font-size:11px;color:#718597}
.review-evidence-status{display:flex;flex-wrap:wrap;gap:6px;padding:12px 15px;background:#fafcfd}.review-evidence-status span{padding:6px 8px;border-radius:8px;background:#fff3df;color:#956313;font-size:10.5px;font-weight:800}.review-evidence-status span.ok{background:#e8f7f0;color:#137f5d}
.review-photo-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:12px}.review-photo-grid a{overflow:hidden;border:1px solid #dfe7ed;border-radius:10px;background:#fff}.review-photo-grid img{display:block;width:100%;height:130px;object-fit:cover;background:#edf2f5}.review-photo-grid small{display:block;padding:7px;color:#63788a;font-size:10.5px}
.signature-card{overflow:hidden}.signature-card>header{padding:18px;border-bottom:1px solid #e4ebf0}.signature-card h3{margin:5px 0 4px;font-size:17px;color:#29465d}.signature-card p{margin:0;color:#7d8d9b;font-size:11px}
.signature-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;padding:15px}.signature-box{padding:12px;border:1px solid #dde6ed;border-radius:12px;background:#fafcfd}.signature-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.signature-title strong{font-size:11px;color:#415b70}.signature-title button{border:0;background:transparent;color:#7a8d9e;font-size:10.5px;font-weight:800;cursor:pointer}
.signature-box canvas{display:block;width:100%;height:160px;border:1px dashed #bdcbd6;border-radius:9px;background:#fff;touch-action:none}
.signature-box label{display:grid;gap:5px;margin-top:10px;color:#52687a;font-size:11px;font-weight:800}.signature-box input{height:44px;padding:0 11px;border:1px solid #d5e0e8;border-radius:9px;background:#fff;font-size:12px}
.review-final-actions{display:flex;justify-content:flex-end;gap:8px;padding:13px 15px;border-top:1px solid #e4ebf0;background:#fafcfd}

/* Work Orders */
.workorders-page{display:grid;gap:13px}.wo-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:25px 27px}.wo-hero h2{margin:6px 0 6px;font-size:27px;color:#18344d;letter-spacing:-.03em}.wo-hero p{max-width:760px;margin:0;color:#738597;font-size:12px;line-height:1.6}
.wo-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.wo-kpis>div{display:grid;gap:2px;padding:14px 16px;border:1px solid #dfe7ee;border-radius:13px;background:#fff}.wo-kpis small{font-size:10.5px;font-weight:900;letter-spacing:.09em;color:#8a98a5}.wo-kpis strong{font-size:25px;color:#18344d}
.wo-filters{display:grid;grid-template-columns:minmax(260px,1fr) 180px 90px 90px;gap:8px;padding:11px}.wo-filters input,.wo-filters select,.wo-filters button,.wo-filters a{height:44px;padding:0 11px;border:1px solid #d8e2ea;border-radius:9px;background:#fff;color:#516779;font-size:12px}.wo-filters button{border:0;background:#173d5d;color:#fff;font-weight:850}.wo-filters a{display:grid;place-items:center}
.wo-list{display:grid;gap:9px}.wo-card{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:15px;padding:15px}.wo-date{display:grid;justify-items:center;padding:10px 5px;border-radius:11px;background:#f0f5fb}.wo-date strong{font-size:24px;line-height:1;color:#214a70}.wo-date span{font-size:10.5px;font-weight:900;text-transform:uppercase;color:#778d9f}.wo-date small{margin-top:4px;font-size:10.5px;color:#587187}
.wo-main{min-width:0}.wo-ref{font:800 8px ui-monospace,monospace;color:#69839a}.wo-main h3{margin:4px 0 3px;font-size:15px;color:#304d65}.wo-main p{margin:0;color:#748797;font-size:11px}.wo-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.wo-meta span{padding:5px 7px;border-radius:7px;background:#f2f5f7;color:#65798b;font-size:10.5px}
.wo-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap;max-width:330px}.wo-status{display:inline-flex;padding:6px 8px;border-radius:999px;font-size:10.5px;font-weight:900;text-transform:uppercase}.wo-status.assigned{background:#edf3ff;color:#315eaf}.wo-status.in_progress{background:#fff3df;color:#956313}.wo-status.completed{background:#e8f7f0;color:#137f5d}.wo-status.cancelled{background:#f1f3f5;color:#7c8893}
.wo-form{max-width:1100px;margin:auto;overflow:hidden}.wo-form>header{display:flex;align-items:center;gap:13px;padding:22px 24px;border-bottom:1px solid #e4ebf0}.wo-form>header>span{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#edf3ff;color:#315eaf}.wo-form h2{margin:5px 0 4px;font-size:23px}.wo-form p{margin:0;color:#7c8d9a;font-size:11.5px}.wo-form form{padding:20px}.wo-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.wo-form footer{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;padding-top:15px;border-top:1px solid #e6ecf1}
.wo-detail-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:23px 25px}.wo-detail-hero h2{margin:6px 0 4px;font-size:27px}.wo-detail-hero p{margin:0;color:#7c8c99;font-size:12px}.wo-detail-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.wo-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:13px}.wo-detail-grid>section{padding:18px}.wo-detail-grid h3{margin:0 0 10px;font-size:14px}.wo-detail-grid dl{margin:0}.wo-detail-grid dl>div{display:grid;grid-template-columns:130px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid #edf1f4}.wo-detail-grid dt{font-size:10.5px;color:#8b98a4}.wo-detail-grid dd{margin:0;font-size:11px;font-weight:750}
.wo-linked{margin-top:13px;overflow:hidden}.wo-linked header{padding:15px;border-bottom:1px solid #e6ecf1}.wo-linked h3{margin:0;font-size:14px}.wo-linked>a{display:grid;grid-template-columns:150px 1fr auto;gap:12px;align-items:center;padding:12px 15px;border-bottom:1px solid #edf1f4}.wo-linked>a:last-child{border-bottom:0}.wo-linked strong{font-size:11px}.wo-linked>a>span{font-size:11px;color:#6f8293}

/* Enhanced metrics */
.mp-period-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.mp-period-strip article{display:grid;gap:1px;padding:13px 15px;border:1px solid #dfe7ee;border-radius:13px;background:#fff}.mp-period-strip small{font-size:10.5px;font-weight:900;letter-spacing:.09em;color:#8c99a5}.mp-period-strip strong{font-size:24px;color:#1f415e}.mp-period-strip span{font-size:10.5px;color:#8d9aa6}
.mp-insights-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.mp-bars{display:grid;gap:10px;padding:15px}.mp-bars>div{display:grid;grid-template-columns:minmax(90px,1fr) minmax(80px,1.3fr) 28px;align-items:center;gap:8px}.mp-bars span{font-size:10.5px;color:#607487;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mp-bars i{display:block;height:7px;border-radius:999px;background:#edf2f5;overflow:hidden}.mp-bars b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2457e6,#4b8ac0)}.mp-bars strong{font-size:11px;text-align:right;color:#4f6578}.mp-bars.warning b{background:linear-gradient(90deg,#d4872f,#dcaa57)}

/* Dashboard work orders */
.dashboard-workorders{margin-top:15px}

/* Responsive workflow */
@media(max-width:1000px){
  .review-photo-grid{grid-template-columns:repeat(3,1fr)}
  .mp-insights-grid{grid-template-columns:1fr 1fr}
  .wo-card{grid-template-columns:68px 1fr}.wo-actions{grid-column:2;justify-content:flex-start;max-width:none}
}
@media(max-width:850px){
  .connection-status{display:none}
  .review-grid,.signature-grid,.wo-detail-grid{grid-template-columns:1fr}
  .review-issues{grid-template-columns:40px 1fr}.review-issues>a{grid-column:2;justify-self:start}
  .wo-kpis,.mp-period-strip{grid-template-columns:1fr 1fr}
  .wo-filters{grid-template-columns:1fr 1fr}.wo-filters input{grid-column:1/-1}
  .wo-form-grid{grid-template-columns:1fr}
  .wo-form-grid .span2{grid-column:auto}
  .mp-insights-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .scan-code-btn{min-width:52px;padding:0 8px}.scan-code-btn span{display:none}
  .scan-dialog{border-radius:14px}#scanReader{min-height:240px}
  .review-hero,.wo-hero,.wo-detail-hero{align-items:flex-start;flex-direction:column;padding:17px 14px}
  .review-hero h2,.wo-hero h2,.wo-detail-hero h2{font-size:23px}
  .review-status{align-self:flex-start}
  .review-panel dl{grid-template-columns:1fr}
  .review-photo-grid{grid-template-columns:1fr 1fr;padding:8px}.review-photo-grid img{height:140px}
  .signature-grid{padding:10px}.signature-box canvas{height:150px}.signature-box input{font-size:16px}
  .review-final-actions{display:grid;grid-template-columns:1fr 1fr}.review-final-actions>*{width:100%}
  .wo-kpis,.mp-period-strip{grid-template-columns:1fr 1fr}
  .wo-filters{grid-template-columns:1fr}.wo-filters input{grid-column:auto;font-size:16px}.wo-filters select{font-size:16px}
  .wo-card{grid-template-columns:58px minmax(0,1fr);padding:12px;gap:10px}.wo-date strong{font-size:21px}.wo-actions{grid-column:1/-1;justify-content:stretch}.wo-actions a{flex:1}
  .wo-form form{padding:14px}.wo-form>header{padding:17px 14px}.wo-form footer{display:grid;grid-template-columns:1fr 1fr}.wo-form footer>*{width:100%}
  .wo-detail-grid dl>div{grid-template-columns:105px 1fr}
  .wo-linked>a{grid-template-columns:1fr auto}.wo-linked>a>span:nth-child(2){grid-column:1/-1}
}
@media(max-width:430px){
  .review-photo-grid{grid-template-columns:1fr}.review-photo-grid img{height:220px}
  .wo-kpis,.mp-period-strip{grid-template-columns:1fr}
  .review-final-actions,.wo-form footer{grid-template-columns:1fr}
}


/* === Global typography pass v16 === */
:root{
  --type-micro:10.5px;
  --type-meta:11px;
  --type-small:12px;
  --type-body:13px;
  --type-label:12px;
}
body{
  line-height:1.45;
}
.kicker,
.status,
.wo-status,
.required-badge,
.evidence-required-badge,
.self-badge,
.mp-achievements b{
  line-height:1.25;
}
.field label,
.loginbox label,
.tech-field label,
.signature-box label{
  line-height:1.35;
}
.field small,
.tech-field small,
.loginbox>p,
.sectitle p,
.formintro p,
.detail-v2-photos-head p,
.review-hero p,
.wo-hero p,
.wo-detail-hero p{
  line-height:1.55;
}
.records span,
.records small,
.install p,
.irv2-cell span,
.detail-v2-gallery figcaption span,
.mp-log-row small,
.wo-main p,
.wo-meta span{
  line-height:1.4;
}
.mp-tech-table-head,
.mp-log-head,
.irv2-table-head{
  line-height:1.3;
}
.sidebar .user small,
.sidebar .user button,
.connection-status{
  line-height:1.35;
}
@media(max-width:620px){
  .kicker,
  .status,
  .wo-status,
  .required-badge,
  .evidence-required-badge,
  .self-badge{
    letter-spacing:.035em;
  }
  .field label,
  .tech-field label,
  .signature-box label{
    font-size:12px!important;
  }
  .field small,
  .tech-field small,
  .sectitle p,
  .formintro p{
    font-size:12px!important;
  }
  .records span,
  .records small,
  .mp-log-row small,
  .wo-meta span{
    font-size:11px!important;
  }
}


/* === InstallPro login polish · 2026-08-31 === */
.auth-login-v2{
  min-height:100vh;
  min-height:100dvh;
  background:#eef3f7;
  color:#18344d;
}
.auth-login-v2 .authgrid{
  min-height:100vh;
  min-height:100dvh;
  grid-template-columns:minmax(520px,1.08fr) minmax(500px,.92fr);
}
.auth-login-v2 .visual{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:44px clamp(42px,4vw,68px) 38px;
  background:
    radial-gradient(circle at 15% 12%,rgba(81,165,222,.28),transparent 28%),
    radial-gradient(circle at 92% 84%,rgba(41,116,164,.22),transparent 32%),
    linear-gradient(145deg,#081f33 0%,#0b3653 58%,#0d4b6c 100%);
}
.auth-login-v2 .visual:before{
  content:"";
  position:absolute;
  z-index:-1;
  right:-120px;
  bottom:-180px;
  width:460px;
  height:460px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:50%;
  box-shadow:
    0 0 0 54px rgba(255,255,255,.018),
    0 0 0 110px rgba(255,255,255,.012);
}
.auth-login-v2 .visual-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.auth-login-v2 .auth-brand{
  display:flex;
  align-items:center;
  gap:13px;
}
.auth-login-v2 .auth-brand-surface{
  display:flex;
  align-items:center;
  justify-content:center;
  width:248px;
  height:74px;
  padding:8px 14px;
  border:1px solid rgba(255,255,255,.8);
  border-radius:16px;
  background:rgba(255,255,255,.96);
  box-shadow:0 12px 30px rgba(0,0,0,.12);
}
.auth-login-v2 .auth-brand-surface img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  filter:none!important;
  opacity:1!important;
}
.auth-login-v2 .auth-product{
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  background:rgba(255,255,255,.07);
  color:#c8ddeb;
  font-size:10px;
  font-weight:900;
  letter-spacing:.16em;
}
.auth-login-v2 .visual-copy{
  max-width:650px;
  margin:0 0 7vh;
}
.auth-login-v2 .auth-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:9px;
  font-size:11px;
  font-weight:900;
  letter-spacing:.17em;
  color:#8fd0f3;
}
.auth-login-v2 .auth-eyebrow:before{
  content:"";
  width:28px;
  height:2px;
  border-radius:99px;
  background:#72bce7;
}
.auth-login-v2 .visual h1{
  max-width:650px;
  margin:16px 0 15px;
  font-size:clamp(38px,3.3vw,54px);
  line-height:1.03;
  letter-spacing:-.045em;
  text-wrap:balance;
}
.auth-login-v2 .visual h1 span{
  color:#d9edf8;
}
.auth-login-v2 .visual p{
  max-width:610px;
  margin:0;
  color:#c3d9e6;
  font-size:14px;
  line-height:1.72;
}
.auth-login-v2 .auth-benefits{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:23px;
}
.auth-login-v2 .auth-benefits>div{
  display:flex;
  align-items:center;
  gap:7px;
  min-height:34px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:10px;
  background:rgba(255,255,255,.065);
  color:#d8e9f3;
  backdrop-filter:blur(8px);
}
.auth-login-v2 .auth-benefits>div>span{
  display:grid;
  place-items:center;
  width:18px;
  height:18px;
  border-radius:50%;
  background:#dff3ea;
  color:#18795e;
  font-size:11px;
  font-weight:950;
}
.auth-login-v2 .auth-benefits strong{
  font-size:11px;
  font-weight:800;
  letter-spacing:.01em;
}
.auth-login-v2 .visual-foot{
  color:#7faac3;
  font-size:10.5px;
  font-weight:800;
  letter-spacing:.08em;
}
.auth-login-v2 .loginpanel{
  position:relative;
  display:grid;
  place-items:center;
  padding:42px clamp(28px,4vw,72px);
  background:
    radial-gradient(circle at 72% 42%,rgba(65,111,151,.08),transparent 30%),
    linear-gradient(180deg,#f4f7f9 0%,#edf2f6 100%);
}
.auth-login-v2 .login-wrap{
  width:min(470px,100%);
}
.auth-login-v2 .loginbox{
  width:100%;
  padding:34px 34px 28px;
  border:1px solid #dce4eb;
  border-radius:22px;
  background:rgba(255,255,255,.98);
  box-shadow:
    0 24px 60px rgba(18,42,64,.11),
    0 2px 8px rgba(18,42,64,.04);
}
.auth-login-v2 .login-heading{
  display:flex;
  align-items:center;
  gap:13px;
  margin-bottom:9px;
}
.auth-login-v2 .login-lock{
  display:grid;
  place-items:center;
  flex:0 0 42px;
  width:42px;
  height:42px;
  border-radius:12px;
  background:#eef4ff;
  color:#2457e6;
}
.auth-login-v2 .login-lock svg{
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.auth-login-v2 .loginbox .kicker{
  display:block;
  margin-bottom:5px;
  color:#607b91;
  font-size:10.5px;
  letter-spacing:.15em;
}
.auth-login-v2 .loginbox h2{
  margin:0;
  color:#15344e;
  font-size:28px;
  line-height:1.12;
  letter-spacing:-.035em;
}
.auth-login-v2 .loginbox>p.login-intro{
  margin:12px 0 22px;
  color:#788b9b;
  font-size:13px;
  line-height:1.6;
}
.auth-login-v2 .loginbox label{
  display:grid;
  gap:7px;
  margin-top:15px;
  color:#425d73;
  font-size:12px;
  font-weight:850;
}
.auth-login-v2 .loginbox input{
  min-height:52px;
  padding:11px 13px;
  border:1px solid #cfdae4;
  border-radius:11px;
  background:#fbfcfd;
  color:#1d3b53;
  font-size:14px;
  transition:border-color .16s,box-shadow .16s,background .16s;
}
.auth-login-v2 .loginbox input::placeholder{
  color:#a3afba;
}
.auth-login-v2 .loginbox input:hover{
  border-color:#b9c9d7;
  background:#fff;
}
.auth-login-v2 .loginbox input:focus{
  border-color:#7f9fe9;
  background:#fff;
  box-shadow:0 0 0 4px rgba(36,87,230,.09);
}
.auth-login-v2 .pw button{
  top:7px;
  right:7px;
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:9px;
  color:#728596;
  cursor:pointer;
  transition:background .15s,color .15s;
}
.auth-login-v2 .pw button:hover,
.auth-login-v2 .pw button:focus-visible{
  background:#edf3f8;
  color:#2457e6;
}
.auth-login-v2 .pw button svg{
  width:19px;
  height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.auth-login-v2 .pw button.is-visible{
  background:#eef4ff;
  color:#2457e6;
}
.auth-login-v2 .login-submit{
  min-height:50px;
  margin-top:20px;
  gap:9px;
  border-radius:11px;
  font-size:13px;
  letter-spacing:.005em;
  box-shadow:0 10px 22px rgba(36,87,230,.19);
  transition:transform .15s,box-shadow .15s,filter .15s;
}
.auth-login-v2 .login-submit:hover{
  transform:translateY(-1px);
  box-shadow:0 13px 26px rgba(36,87,230,.24);
  filter:saturate(1.05);
}
.auth-login-v2 .login-submit:active{
  transform:translateY(0);
}
.auth-login-v2 .login-submit svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.auth-login-v2 .login-security{
  display:flex;
  align-items:flex-start;
  gap:8px;
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid #edf1f4;
  color:#8b9aa7;
}
.auth-login-v2 .login-security svg{
  flex:0 0 16px;
  width:16px;
  height:16px;
  margin-top:1px;
  fill:none;
  stroke:#5f8caf;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.auth-login-v2 .login-security small{
  font-size:10.5px;
  line-height:1.45;
}
.auth-login-v2 .login-help{
  margin:15px 0 0;
  text-align:center;
  color:#8796a3;
  font-size:10.5px;
}
.auth-login-v2 .login-mobile-logo{
  display:none;
}

@media(max-width:1050px){
  .auth-login-v2 .authgrid{
    grid-template-columns:minmax(430px,.92fr) minmax(480px,1.08fr);
  }
  .auth-login-v2 .visual{
    padding-left:38px;
    padding-right:38px;
  }
  .auth-login-v2 .auth-brand-surface{
    width:220px;
    height:68px;
  }
  .auth-login-v2 .visual h1{
    font-size:40px;
  }
  .auth-login-v2 .auth-benefits{
    display:grid;
    width:max-content;
  }
}
@media(max-width:850px){
  .auth-login-v2{
    background:#edf2f6;
  }
  .auth-login-v2 .authgrid{
    display:block;
    min-height:100vh;
    min-height:100dvh;
  }
  .auth-login-v2 .visual{
    display:none!important;
  }
  .auth-login-v2 .loginpanel{
    min-height:100vh;
    min-height:100dvh;
    padding:
      calc(28px + env(safe-area-inset-top))
      max(18px,env(safe-area-inset-right))
      calc(28px + env(safe-area-inset-bottom))
      max(18px,env(safe-area-inset-left))!important;
  }
  .auth-login-v2 .login-wrap{
    width:min(470px,100%);
  }
  .auth-login-v2 .login-mobile-logo{
    display:flex!important;
    width:min(255px,70%);
    min-height:auto;
    margin:0 auto 20px;
    padding:9px 14px;
    border:1px solid #dce4eb;
    border-radius:14px;
    background:#fff;
    box-shadow:0 8px 24px rgba(18,42,64,.07);
  }
  .auth-login-v2 .login-mobile-logo img{
    width:100%;
    height:auto;
    max-height:62px;
    object-fit:contain;
    filter:none!important;
  }
}
@media(max-width:520px){
  .auth-login-v2 .loginpanel{
    align-items:center;
    padding-left:14px!important;
    padding-right:14px!important;
  }
  .auth-login-v2 .loginbox{
    padding:26px 20px 22px!important;
    border-radius:18px;
  }
  .auth-login-v2 .login-heading{
    align-items:flex-start;
  }
  .auth-login-v2 .loginbox h2{
    font-size:25px;
  }
  .auth-login-v2 .loginbox input{
    font-size:16px;
  }
  .auth-login-v2 .login-mobile-logo{
    width:min(230px,72%);
  }
}
@media(max-height:700px) and (min-width:851px){
  .auth-login-v2 .visual{
    padding-top:30px;
    padding-bottom:26px;
  }
  .auth-login-v2 .auth-brand-surface{
    width:215px;
    height:64px;
  }
  .auth-login-v2 .visual-copy{
    margin-bottom:3vh;
  }
  .auth-login-v2 .visual h1{
    font-size:38px;
    margin-top:12px;
  }
  .auth-login-v2 .auth-benefits{
    margin-top:16px;
  }
  .auth-login-v2 .loginbox{
    padding-top:27px;
    padding-bottom:23px;
  }
}
@media(prefers-reduced-motion:reduce){
  .auth-login-v2 *{
    scroll-behavior:auto!important;
    transition:none!important;
  }
}


/* === Dashboard ergonomic + typography pass · 2026-08-31 === */
.dashboard-page{
  --dash-ink:#17344d;
  --dash-body:#4d6478;
  --dash-muted:#7c8fa0;
  --dash-line:#dce5ec;
  --dash-surface:#ffffff;
  --dash-soft:#f5f8fb;
  --dash-blue:#2457e6;
  --dash-radius:18px;
}
.dashboard-page .shell{
  grid-template-columns:252px minmax(0,1fr);
}
.dashboard-page .sidebar{
  padding:18px 14px;
  background:linear-gradient(180deg,#071f33 0%,#0b304c 100%);
}
.dashboard-page .brand{
  padding:0 6px 19px;
}
.dashboard-page .brand-logo-surface{
  min-height:58px;
  padding:8px 10px;
  border-radius:12px;
  box-shadow:0 8px 22px rgba(0,0,0,.13);
}
.dashboard-page .brand-logo-surface img{
  max-width:188px!important;
}
.dashboard-page .brand>span{
  margin:9px 3px 0;
  font-size:10.5px;
  line-height:1.2;
  letter-spacing:.19em;
}
.dashboard-page .sidebar nav{
  gap:6px;
  padding-top:17px;
}
.dashboard-page .sidebar nav a{
  min-height:46px;
  gap:11px;
  padding:11px 12px;
  border:1px solid transparent;
  border-radius:11px;
  color:#bed0dc;
  font-size:13px;
  font-weight:720;
  line-height:1.2;
  transition:background .15s,border-color .15s,color .15s,transform .15s;
}
.dashboard-page .sidebar nav a:hover{
  background:rgba(255,255,255,.07);
  border-color:rgba(255,255,255,.04);
  color:#fff;
}
.dashboard-page .sidebar nav a.on{
  background:rgba(255,255,255,.105);
  border-color:rgba(255,255,255,.055);
  color:#fff;
  box-shadow:inset 3px 0 0 #67b7e7;
}
.dashboard-page .user{
  padding:15px 10px 6px;
  gap:4px;
}
.dashboard-page .user strong{
  font-size:12.5px;
  line-height:1.35;
}
.dashboard-page .user small{
  color:#8eb5cd;
  font-size:11px;
}
.dashboard-page .user button{
  margin-top:8px;
  color:#9dc8e1;
  font-size:11.5px;
}

.dashboard-page .main>header{
  height:84px;
  gap:12px;
  padding:13px 30px;
  background:rgba(255,255,255,.97);
  border-bottom-color:#dfe7ed;
  box-shadow:0 1px 0 rgba(19,44,64,.02);
}
.dashboard-page .header-title{
  display:grid;
  align-content:center;
}
.dashboard-page .header-title small{
  color:#7f909f;
  font-size:10.5px;
  font-weight:850;
  letter-spacing:.135em;
}
.dashboard-page .header-title h1{
  margin:4px 0 0;
  color:var(--dash-ink);
  font-size:24px;
  font-weight:760;
  line-height:1.12;
  letter-spacing:-.035em;
}
.dashboard-page .connection-status{
  margin-left:7px;
  padding:6px 9px;
  background:#eaf7f1;
  color:#167a5b;
  font-size:10.5px;
  font-weight:850;
}
.dashboard-page .langswitch{
  margin-left:auto;
  min-height:42px;
  padding:4px 6px;
  border-color:#dbe4eb;
  border-radius:11px;
  background:#f7f9fb;
}
.dashboard-page .langswitch button{
  min-width:36px;
  min-height:32px;
  border-radius:7px;
  font-size:11px;
}
.dashboard-page .main>header>.header-new{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-width:122px;
  min-height:42px;
  margin-left:0;
  padding:0 15px;
  border-radius:11px;
  background:#edf3ff;
  color:#2457e6;
  font-size:12px;
  font-weight:850;
  line-height:1;
  text-align:center;
  transition:background .15s,transform .15s;
}
.dashboard-page .main>header>.header-new b,
.dashboard-page .main>header>.header-new span{
  display:block;
  line-height:1;
}
.dashboard-page .langswitch>span{
  color:#9aa9b7;
  font-size:12px;
  font-weight:700;
  line-height:1;
}
.dashboard-page .main>header>.header-new:hover{
  background:#e4edff;
  transform:translateY(-1px);
}

.dashboard-page .main>main{
  max-width:1680px;
  padding:24px 28px 48px;
}
.dashboard-v2{
  display:grid;
  gap:16px;
}
.dashboard-hero{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(260px,.45fr);
  align-items:center;
  min-height:220px;
  padding:30px 34px;
  border-radius:22px;
  background:
    radial-gradient(circle at 88% 18%,rgba(94,178,229,.25),transparent 28%),
    radial-gradient(circle at 95% 100%,rgba(42,124,175,.24),transparent 28%),
    linear-gradient(135deg,#08243a 0%,#0c3c5c 58%,#11577a 100%);
  color:#fff;
  box-shadow:0 18px 44px rgba(15,49,73,.13);
}
.dashboard-hero:after{
  content:"";
  position:absolute;
  right:-84px;
  bottom:-135px;
  width:360px;
  height:360px;
  border:1px solid rgba(255,255,255,.07);
  border-radius:50%;
  box-shadow:0 0 0 52px rgba(255,255,255,.012);
}
.dashboard-hero-copy{
  position:relative;
  z-index:2;
  max-width:790px;
}
.dashboard-hero .kicker{
  color:#86c8ef;
  font-size:10.5px;
  font-weight:900;
  letter-spacing:.15em;
}
.dashboard-hero h2{
  max-width:760px;
  margin:10px 0 9px;
  color:#fff;
  font-size:36px;
  font-weight:760;
  line-height:1.08;
  letter-spacing:-.045em;
  text-wrap:balance;
}
.dashboard-hero p{
  max-width:700px;
  margin:0;
  color:#c3d9e6;
  font-size:13.5px;
  line-height:1.65;
}
.dashboard-hero-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:20px;
  flex-wrap:wrap;
}
.dashboard-primary-action{
  min-height:46px;
  padding:0 17px;
  border-radius:11px;
  font-size:12.5px;
  font-weight:850;
  box-shadow:0 10px 24px rgba(28,83,213,.22);
}
.dashboard-secondary-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:46px;
  padding:0 14px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:11px;
  background:rgba(255,255,255,.065);
  color:#d4e5ef;
  font-size:12px;
  font-weight:760;
  backdrop-filter:blur(8px);
}
.dashboard-secondary-action:hover{
  background:rgba(255,255,255,.105);
  color:#fff;
}
.dashboard-hero-summary{
  position:relative;
  z-index:2;
  display:grid;
  justify-items:center;
  gap:13px;
}
.dashboard-orb{
  display:grid;
  place-items:center;
  align-content:center;
  width:128px;
  height:128px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:50%;
  background:rgba(8,46,72,.16);
  box-shadow:inset 0 0 0 17px rgba(255,255,255,.022);
}
.dashboard-orb strong{
  color:#fff;
  font-size:29px;
  line-height:1;
  letter-spacing:.035em;
}
.dashboard-orb span{
  margin-top:8px;
  color:#91cceb;
  font-size:9.5px;
  font-weight:900;
  letter-spacing:.18em;
}
.dashboard-hero-stats{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  width:min(250px,100%);
}
.dashboard-hero-stats>div{
  display:grid;
  gap:1px;
  padding:8px 9px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:9px;
  background:rgba(255,255,255,.05);
  text-align:center;
}
.dashboard-hero-stats strong{
  font-size:15px;
  color:#fff;
}
.dashboard-hero-stats span{
  color:#a9c8d9;
  font-size:9.5px;
  line-height:1.25;
}

.dashboard-kpis{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.dashboard-kpi{
  position:relative;
  min-height:132px;
  padding:17px 18px;
  border:1px solid var(--dash-line);
  border-radius:16px;
  background:#fff;
  box-shadow:0 7px 22px rgba(20,42,62,.035);
}
.dashboard-kpi-top{
  display:flex;
  align-items:center;
  gap:9px;
  color:#607589;
  font-size:11.5px;
  font-weight:800;
}
.dashboard-kpi-icon{
  display:grid;
  place-items:center;
  width:31px;
  height:31px;
  border-radius:9px;
  background:#eef4ff;
  color:#416bd7;
}
.dashboard-kpi-icon.is-success{
  background:#eaf7f1;
  color:#11835f;
}
.dashboard-kpi-icon svg{
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.dashboard-kpi>strong{
  display:block;
  margin:11px 0 3px;
  color:var(--dash-ink);
  font-size:35px;
  font-weight:760;
  line-height:.95;
  letter-spacing:-.04em;
}
.dashboard-kpi>small{
  display:block;
  color:#8494a3;
  font-size:10.5px;
  line-height:1.4;
}

.dashboard-activity-grid{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(380px,.9fr);
  gap:14px;
}
.dashboard-activity-grid-single{
  grid-template-columns:1fr;
}
.dashboard-card{
  overflow:hidden;
  border-color:#dce5ec;
  border-radius:17px;
  box-shadow:0 10px 28px rgba(20,42,62,.04);
}
.dashboard-workorders{
  margin-top:0!important;
}
.dashboard-cardhead{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:18px 20px 16px;
  border-bottom:1px solid #e7edf2;
}
.dashboard-cardhead .kicker{
  color:#617c91;
  font-size:10px;
  letter-spacing:.14em;
}
.dashboard-cardhead h3{
  margin:5px 0 2px;
  color:var(--dash-ink);
  font-size:18px;
  font-weight:760;
  line-height:1.2;
  letter-spacing:-.025em;
}
.dashboard-cardhead p{
  margin:0;
  color:#8293a2;
  font-size:10.5px;
  line-height:1.45;
}
.dashboard-cardhead>a{
  display:inline-flex;
  align-items:center;
  gap:5px;
  flex:none;
  min-height:34px;
  padding:0 9px;
  border-radius:8px;
  color:#2457e6;
  font-size:11px;
  font-weight:820;
}
.dashboard-cardhead>a:hover{
  background:#f0f4ff;
}
.dashboard-records{
  padding:2px 12px 10px;
}
.dashboard-record{
  display:grid;
  grid-template-columns:36px minmax(0,1fr) auto 18px;
  align-items:center;
  gap:11px;
  min-height:64px;
  padding:10px 8px;
  border-bottom:1px solid #edf2f5;
  border-radius:9px;
  transition:background .15s;
}
.dashboard-record:last-child{
  border-bottom:0;
}
.dashboard-record:hover{
  background:#f7fafc;
}
.dashboard-record-icon{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:10px;
  background:#edf4fb;
  color:#46779c;
}
.dashboard-record-icon.is-workorder{
  background:#eef1ff;
  color:#526bc6;
}
.dashboard-record-icon svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.dashboard-record-main{
  min-width:0;
  display:grid;
  gap:3px;
}
.dashboard-record-main strong{
  overflow:hidden;
  color:#29465f;
  font-size:11.5px;
  font-weight:820;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dashboard-record-main span{
  overflow:hidden;
  color:#7b8d9c;
  font-size:10.5px;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dashboard-record-meta{
  display:grid;
  justify-items:end;
  gap:4px;
  min-width:150px;
  text-align:right;
}
.dashboard-record-meta small{
  color:#8797a5;
  font-size:10px;
  line-height:1.3;
}
.dashboard-record-date{
  color:#38546a;
  font-size:10.5px;
}
.dashboard-record .status{
  padding:4px 7px;
  font-size:9.5px;
  font-weight:900;
}
.dashboard-record-arrow{
  color:#9dafbd;
  font-size:15px;
}
.dashboard-record:hover .dashboard-record-arrow{
  color:#2457e6;
}
.dashboard-empty{
  display:grid;
  justify-items:center;
  gap:4px;
  padding:30px 18px 32px;
  color:#8b99a5;
  text-align:center;
}
.dashboard-empty>span{
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  margin-bottom:3px;
  border-radius:10px;
  background:#f1f5f8;
  color:#6f899d;
  font-size:18px;
}
.dashboard-empty strong{
  color:#536b7e;
  font-size:12px;
}
.dashboard-empty small{
  max-width:360px;
  font-size:10.5px;
  line-height:1.45;
}

@media(max-width:1180px){
  .dashboard-page .shell{
    grid-template-columns:228px minmax(0,1fr);
  }
  .dashboard-hero{
    grid-template-columns:minmax(0,1fr) 230px;
  }
  .dashboard-kpis{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .dashboard-activity-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:850px){
  .dashboard-page .shell{
    display:block;
  }
  .dashboard-page .main>header{
    height:68px!important;
    padding:
      max(8px,env(safe-area-inset-top))
      max(12px,env(safe-area-inset-right))
      8px
      max(12px,env(safe-area-inset-left))!important;
  }
  .dashboard-page .header-title h1{
    font-size:17px!important;
  }
  .dashboard-page .main>main{
    padding:
      15px
      max(13px,env(safe-area-inset-right))
      calc(34px + env(safe-area-inset-bottom))
      max(13px,env(safe-area-inset-left))!important;
  }
  .dashboard-v2{
    gap:13px;
  }
  .dashboard-hero{
    grid-template-columns:1fr;
    min-height:auto;
    padding:24px 22px;
  }
  .dashboard-hero-summary{
    display:none;
  }
  .dashboard-hero h2{
    font-size:31px;
  }
  .dashboard-kpis{
    gap:9px;
  }
}
@media(max-width:620px){
  .dashboard-hero{
    padding:21px 18px;
    border-radius:18px;
  }
  .dashboard-hero h2{
    margin-top:8px;
    font-size:28px;
  }
  .dashboard-hero p{
    font-size:12.5px;
  }
  .dashboard-hero-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }
  .dashboard-primary-action,
  .dashboard-secondary-action{
    width:100%;
    min-height:48px;
  }
  .dashboard-kpis{
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
  .dashboard-kpi{
    min-height:124px;
    padding:14px;
  }
  .dashboard-kpi>strong{
    font-size:32px;
  }
  .dashboard-kpi-top{
    gap:7px;
    font-size:11px;
  }
  .dashboard-kpi-icon{
    width:28px;
    height:28px;
  }
  .dashboard-cardhead{
    padding:16px 14px 14px;
  }
  .dashboard-cardhead p{
    display:none;
  }
  .dashboard-cardhead h3{
    font-size:17px;
  }
  .dashboard-records{
    padding:2px 7px 8px;
  }
  .dashboard-record{
    grid-template-columns:34px minmax(0,1fr) 16px;
    gap:9px;
    min-height:66px;
    padding:10px 7px;
  }
  .dashboard-record-meta{
    grid-column:2;
    grid-row:2;
    min-width:0;
    justify-items:start;
    text-align:left;
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
    margin-top:-2px;
  }
  .dashboard-record-arrow{
    grid-column:3;
    grid-row:1/3;
  }
}
@media(max-width:390px){
  .dashboard-kpis{
    grid-template-columns:1fr;
  }
}
@media(prefers-reduced-motion:reduce){
  .dashboard-page .sidebar nav a,
  .dashboard-page .header-new,
  .dashboard-record{
    transition:none!important;
  }
}


/* === Metrics typography + ergonomics pass · 2026-08-31 === */
.metrics-page-body{
  --mp-ink:#17344d;
  --mp-text:#4d6478;
  --mp-muted:#7c8f9f;
  --mp-line:#dce5ec;
  --mp-soft:#f6f9fb;
}
.metrics-page-body .shell{
  grid-template-columns:252px minmax(0,1fr);
}
.metrics-page-body .sidebar{
  padding:18px 14px;
  background:linear-gradient(180deg,#071f33 0%,#0b304c 100%);
}
.metrics-page-body .brand{
  padding:0 6px 19px;
}
.metrics-page-body .brand-logo-surface{
  min-height:58px;
  padding:8px 10px;
  border-radius:12px;
}
.metrics-page-body .brand-logo-surface img{
  max-width:188px!important;
}
.metrics-page-body .brand>span{
  margin:9px 3px 0;
  font-size:10.5px;
  line-height:1.2;
  letter-spacing:.19em;
}
.metrics-page-body .sidebar nav{
  gap:6px;
  padding-top:17px;
}
.metrics-page-body .sidebar nav a{
  min-height:46px;
  gap:11px;
  padding:11px 12px;
  border:1px solid transparent;
  border-radius:11px;
  color:#bed0dc;
  font-size:13px;
  font-weight:720;
  line-height:1.2;
}
.metrics-page-body .sidebar nav a:hover{
  background:rgba(255,255,255,.07);
  border-color:rgba(255,255,255,.04);
  color:#fff;
}
.metrics-page-body .sidebar nav a.on{
  background:rgba(255,255,255,.105);
  border-color:rgba(255,255,255,.055);
  color:#fff;
  box-shadow:inset 3px 0 0 #67b7e7;
}
.metrics-page-body .user{
  padding:15px 10px 6px;
  gap:4px;
}
.metrics-page-body .user strong{
  font-size:12.5px;
  line-height:1.35;
}
.metrics-page-body .user small{
  color:#8eb5cd;
  font-size:11px;
}
.metrics-page-body .user button{
  margin-top:8px;
  color:#9dc8e1;
  font-size:11.5px;
}

.metrics-page-body .main>header{
  height:84px;
  gap:12px;
  padding:13px 30px;
  background:rgba(255,255,255,.97);
  border-bottom-color:#dfe7ed;
}
.metrics-page-body .header-title small{
  color:#7f909f;
  font-size:10.5px;
  font-weight:850;
  letter-spacing:.135em;
}
.metrics-page-body .header-title h1{
  margin:4px 0 0;
  color:var(--mp-ink);
  font-size:24px;
  font-weight:760;
  line-height:1.12;
  letter-spacing:-.035em;
}
.metrics-page-body .connection-status{
  margin-left:7px;
  padding:6px 9px;
  background:#eaf7f1;
  color:#167a5b;
  font-size:10.5px;
  font-weight:850;
}
.metrics-page-body .langswitch{
  margin-left:auto;
  min-height:42px;
  padding:4px 6px;
  border-color:#dbe4eb;
  border-radius:11px;
  background:#f7f9fb;
}
.metrics-page-body .langswitch button{
  min-width:36px;
  min-height:32px;
  border-radius:7px;
  font-size:11px;
}
.metrics-page-body .langswitch>span{
  color:#9aa9b7;
  font-size:12px;
  font-weight:700;
  line-height:1;
}
.metrics-page-body .main>header>.header-new{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-width:122px;
  min-height:42px;
  margin-left:0;
  padding:0 15px;
  border-radius:11px;
  background:#edf3ff;
  color:#2457e6;
  font-size:12px;
  font-weight:850;
  line-height:1;
  text-align:center;
}
.metrics-page-body .main>header>.header-new b,
.metrics-page-body .main>header>.header-new span{
  display:block;
  line-height:1;
}

.metrics-page-body .main>main{
  max-width:1680px;
  min-width:0;
  padding:24px 28px 50px;
}
.metrics-page-v1{
  min-width:0;
  gap:15px;
}
.metrics-page-v1>*{
  min-width:0;
}
.metrics-page-body .card{
  border-color:var(--mp-line);
  border-radius:17px;
  box-shadow:0 8px 24px rgba(20,42,62,.04);
}

/* Hero */
.metrics-page-body .mp-hero{
  min-height:138px;
  padding:25px 28px;
  gap:28px;
}
.metrics-page-body .mp-hero>div:first-child{
  max-width:900px;
}
.metrics-page-body .mp-hero .kicker{
  color:#58778e;
  font-size:10.5px;
  letter-spacing:.145em;
}
.metrics-page-body .mp-hero h2{
  margin:8px 0 7px;
  color:var(--mp-ink);
  font-size:31px;
  font-weight:760;
  line-height:1.1;
  letter-spacing:-.04em;
}
.metrics-page-body .mp-hero p{
  max-width:850px;
  color:#6f8495;
  font-size:13px;
  line-height:1.6;
}
.metrics-page-body .mp-hero-badge{
  flex:none;
  min-width:154px;
  padding:12px 14px;
  border-radius:11px;
}
.metrics-page-body .mp-hero-badge span{
  font-size:10px;
}
.metrics-page-body .mp-hero-badge strong{
  font-size:11.5px;
}

/* Search + filters: two balanced rows, no viewport overflow */
.metrics-page-body .mp-filter{
  padding:16px;
}
.metrics-page-body .mp-filter-title{
  gap:11px;
  margin-bottom:13px;
}
.metrics-page-body .mp-filter-title-icon{
  display:grid;
  place-items:center;
  flex:none;
  width:36px;
  height:36px;
  border-radius:10px;
  background:#edf3ff;
  color:#315fae;
}
.metrics-page-body .mp-filter-title-icon svg,
.metrics-page-body .mp-search-wide>span svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
}
.metrics-page-body .mp-filter-title>div{
  display:grid;
  gap:2px;
}
.metrics-page-body .mp-filter-title strong{
  color:#304b63;
  font-size:13px;
  font-weight:820;
}
.metrics-page-body .mp-filter-title small{
  color:#7f909e;
  font-size:11.25px;
  line-height:1.4;
}
.metrics-page-body .mp-filter-primary{
  display:grid;
  grid-template-columns:minmax(280px,1.75fr) repeat(4,minmax(125px,1fr));
  gap:8px;
  min-width:0;
}
.metrics-page-body .mp-filter-primary>*{
  min-width:0;
}
.metrics-page-body .mp-filter-primary input,
.metrics-page-body .mp-filter-primary select,
.metrics-page-body .mp-date input{
  width:100%;
  min-height:46px;
  border:1px solid #d5e0e8;
  border-radius:10px;
  background:#fff;
  color:#41586c;
  outline:0;
  font-size:12px;
}
.metrics-page-body .mp-filter-primary input,
.metrics-page-body .mp-date input{
  padding:0 11px;
}
.metrics-page-body .mp-filter-primary select{
  padding:0 32px 0 11px;
}
.metrics-page-body .mp-filter-primary input:hover,
.metrics-page-body .mp-filter-primary select:hover,
.metrics-page-body .mp-date input:hover{
  border-color:#c1d0dc;
}
.metrics-page-body .mp-filter-primary input:focus,
.metrics-page-body .mp-filter-primary select:focus,
.metrics-page-body .mp-date input:focus{
  border-color:#88a6e8;
  box-shadow:0 0 0 4px rgba(36,87,230,.065);
}
.metrics-page-body .mp-search-wide{
  position:relative;
  display:flex;
  align-items:center;
}
.metrics-page-body .mp-search-wide>span{
  position:absolute;
  left:12px;
  z-index:1;
  display:grid;
  place-items:center;
  color:#8093a3;
  pointer-events:none;
}
.metrics-page-body .mp-search-wide input{
  padding-left:38px;
}
.metrics-page-body .mp-filter-secondary{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid #edf2f5;
}
.metrics-page-body .mp-date-range{
  display:flex;
  align-items:flex-end;
  gap:8px;
}
.metrics-page-body .mp-date{
  position:relative;
  display:grid;
  gap:5px;
  width:158px;
}
.metrics-page-body .mp-date>span{
  position:static;
  padding:0;
  background:transparent;
  color:#687e90;
  font-size:10.5px;
  font-weight:820;
}
.metrics-page-body .mp-date-separator{
  display:grid;
  place-items:center;
  height:46px;
  color:#96a5b2;
  font-size:13px;
}
.metrics-page-body .mp-filter-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex:none;
}
.metrics-page-body .mp-reset,
.metrics-page-body .mp-apply{
  width:auto;
  min-height:44px;
  padding:0 15px;
  border-radius:10px;
  font-size:11.5px;
}
.metrics-page-body .mp-reset{
  min-width:108px;
}
.metrics-page-body .mp-apply{
  min-width:142px;
}

/* KPI row */
.metrics-page-body .mp-kpis{
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
}
.metrics-page-body .mp-kpis article{
  min-width:0;
  min-height:105px;
  gap:12px;
  padding:15px 14px;
  border-color:var(--mp-line);
  border-radius:15px;
}
.metrics-page-body .mp-kpi-icon{
  width:41px;
  height:41px;
  border-radius:11px;
  font-size:15px;
}
.metrics-page-body .mp-kpis article>div{
  min-width:0;
  gap:2px;
}
.metrics-page-body .mp-kpis small{
  overflow:hidden;
  color:#748798;
  font-size:10px;
  font-weight:900;
  line-height:1.25;
  letter-spacing:.09em;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.metrics-page-body .mp-kpis strong{
  color:var(--mp-ink);
  font-size:29px;
  font-weight:760;
  line-height:1;
}
.metrics-page-body .mp-kpis p{
  margin:2px 0 0;
  color:#8393a1;
  font-size:10.75px;
  line-height:1.35;
}

/* Period summary */
.metrics-page-body .mp-period-strip{
  gap:10px;
}
.metrics-page-body .mp-period-strip article{
  min-height:88px;
  gap:2px;
  padding:14px 16px;
  border-color:var(--mp-line);
  border-radius:14px;
}
.metrics-page-body .mp-period-strip small{
  color:#738798;
  font-size:10px;
  letter-spacing:.09em;
}
.metrics-page-body .mp-period-strip strong{
  color:var(--mp-ink);
  font-size:27px;
  font-weight:750;
  line-height:1.05;
}
.metrics-page-body .mp-period-strip span{
  color:#8494a2;
  font-size:10.75px;
  line-height:1.35;
}

/* Panels and visual summaries */
.metrics-page-body .mp-insights-grid,
.metrics-page-body .mp-chart-grid{
  gap:14px;
}
.metrics-page-body .mp-panel>header{
  min-height:72px;
  padding:16px 18px;
}
.metrics-page-body .mp-panel>header .kicker{
  color:#607c91;
  font-size:10px;
  letter-spacing:.13em;
}
.metrics-page-body .mp-panel>header h3{
  margin:4px 0 0;
  color:#29465d;
  font-size:17.5px;
  font-weight:750;
  line-height:1.2;
  letter-spacing:-.02em;
}
.metrics-page-body .mp-panel-meta{
  color:#8192a0;
  font-size:10.75px;
}
.metrics-page-body .mp-bars{
  gap:11px;
  padding:16px 17px 18px;
}
.metrics-page-body .mp-bars>div{
  grid-template-columns:minmax(100px,1fr) minmax(90px,1.4fr) 28px;
  gap:9px;
}
.metrics-page-body .mp-bars span{
  color:#5b7285;
  font-size:11px;
}
.metrics-page-body .mp-bars strong{
  color:#415a6f;
  font-size:11.5px;
}
.metrics-page-body .mp-bars i{
  height:8px;
}

/* Workload, distribution and chart typography */
.metrics-page-body .mp-workload{
  gap:13px;
  padding:17px 18px 19px;
}
.metrics-page-body .mp-workload-user strong{
  color:#375269;
  font-size:12.25px;
}
.metrics-page-body .mp-workload-user small{
  font-size:10.75px;
}
.metrics-page-body .mp-workload-value{
  font-size:12.5px;
}
.metrics-page-body .mp-donut strong{
  font-size:27px;
}
.metrics-page-body .mp-donut span,
.metrics-page-body .mp-donut-legend small{
  font-size:10.75px;
}
.metrics-page-body .mp-donut-legend span{
  font-size:11.25px;
}
.metrics-page-body .mp-donut-legend strong{
  font-size:12.25px;
}
.metrics-page-body .mp-month-value{
  font-size:11.25px;
}
.metrics-page-body .mp-month strong{
  font-size:11.25px;
}
.metrics-page-body .mp-month small{
  font-size:10.5px;
}

/* Tables: slightly larger type, horizontal scrolling contained locally */
.metrics-page-body .mp-tech-table,
.metrics-page-body .mp-log-body{
  min-width:0;
  max-width:100%;
  overflow-x:auto;
}
.metrics-page-body .mp-tech-table-head{
  font-size:10.5px;
  letter-spacing:.075em;
}
.metrics-page-body .mp-tech-table-row{
  min-height:80px;
}
.metrics-page-body .mp-tech-table-row>strong,
.metrics-page-body .mp-tech-table-row>span{
  color:#4c6478;
  font-size:12.25px;
}
.metrics-page-body .mp-tech-name strong{
  font-size:12.25px;
}
.metrics-page-body .mp-tech-name small{
  font-size:10.75px;
}
.metrics-page-body .mp-log-head{
  font-size:10.5px;
  letter-spacing:.065em;
}
.metrics-page-body .mp-log-row{
  min-height:76px;
}
.metrics-page-body .mp-log-row strong{
  color:#3d576d;
  font-size:11.75px;
}
.metrics-page-body .mp-log-row small{
  font-size:10.75px;
}
.metrics-page-body .mp-log-row .status{
  font-size:9.75px;
}

/* Client cards */
.metrics-page-body .mp-client-grid{
  gap:11px;
  padding:15px;
}
.metrics-page-body .mp-client-card{
  padding:15px;
}
.metrics-page-body .mp-client-head strong{
  font-size:12.25px;
}
.metrics-page-body .mp-client-head small{
  font-size:10.75px;
}
.metrics-page-body .mp-client-numbers strong{
  font-size:14px;
}
.metrics-page-body .mp-client-numbers span,
.metrics-page-body .mp-service-chips span{
  font-size:10.5px;
}

@media(max-width:1350px){
  .metrics-page-body .shell{
    grid-template-columns:228px minmax(0,1fr);
  }
  .metrics-page-body .mp-filter-primary{
    grid-template-columns:minmax(280px,1.6fr) repeat(2,minmax(150px,1fr));
  }
  .metrics-page-body .mp-search-wide{
    grid-column:1/2;
  }
  .metrics-page-body .mp-kpis{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media(max-width:1050px){
  .metrics-page-body .mp-filter-primary{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .metrics-page-body .mp-search-wide{
    grid-column:1/-1;
  }
  .metrics-page-body .mp-filter-secondary{
    align-items:stretch;
    flex-direction:column;
  }
  .metrics-page-body .mp-date-range{
    width:100%;
  }
  .metrics-page-body .mp-date{
    flex:1;
    width:auto;
  }
  .metrics-page-body .mp-filter-actions{
    justify-content:flex-end;
  }
}
@media(max-width:850px){
  .metrics-page-body .shell{
    display:block;
  }
  .metrics-page-body .main>header{
    height:68px!important;
    padding:
      max(8px,env(safe-area-inset-top))
      max(12px,env(safe-area-inset-right))
      8px
      max(12px,env(safe-area-inset-left))!important;
  }
  .metrics-page-body .header-title h1{
    font-size:17px!important;
  }
  .metrics-page-body .main>main{
    padding:
      15px
      max(13px,env(safe-area-inset-right))
      calc(34px + env(safe-area-inset-bottom))
      max(13px,env(safe-area-inset-left))!important;
  }
  .metrics-page-body .mp-hero{
    align-items:flex-start;
    flex-direction:column;
    min-height:auto;
    padding:21px 19px;
  }
  .metrics-page-body .mp-hero h2{
    font-size:27px;
  }
  .metrics-page-body .mp-hero-badge{
    width:auto;
    min-width:0;
  }
  .metrics-page-body .mp-kpis{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .metrics-page-body .mp-insights-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:620px){
  .metrics-page-body .mp-hero h2{
    font-size:25px;
  }
  .metrics-page-body .mp-hero p{
    font-size:12.5px;
  }
  .metrics-page-body .mp-filter{
    padding:14px;
  }
  .metrics-page-body .mp-filter-primary{
    grid-template-columns:1fr;
  }
  .metrics-page-body .mp-search-wide{
    grid-column:auto;
  }
  .metrics-page-body .mp-filter-primary input,
  .metrics-page-body .mp-filter-primary select,
  .metrics-page-body .mp-date input{
    font-size:16px;
  }
  .metrics-page-body .mp-date-range{
    display:grid;
    grid-template-columns:1fr 18px 1fr;
    align-items:end;
  }
  .metrics-page-body .mp-filter-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .metrics-page-body .mp-reset,
  .metrics-page-body .mp-apply{
    width:100%;
    min-width:0;
    min-height:48px;
  }
  .metrics-page-body .mp-kpis{
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
  .metrics-page-body .mp-kpis article{
    min-height:100px;
    padding:13px;
  }
  .metrics-page-body .mp-kpi-icon{
    width:36px;
    height:36px;
  }
  .metrics-page-body .mp-kpis strong{
    font-size:27px;
  }
  .metrics-page-body .mp-period-strip{
    grid-template-columns:1fr 1fr;
  }
  .metrics-page-body .mp-panel>header{
    min-height:66px;
    padding:14px;
  }
  .metrics-page-body .mp-panel>header h3{
    font-size:16.5px;
  }
}
@media(max-width:390px){
  .metrics-page-body .mp-kpis,
  .metrics-page-body .mp-period-strip{
    grid-template-columns:1fr;
  }
  .metrics-page-body .mp-date-range{
    grid-template-columns:1fr;
  }
  .metrics-page-body .mp-date-separator{
    display:none;
  }
  .metrics-page-body .mp-filter-actions{
    grid-template-columns:1fr;
  }
}


/* === Smartphone + tablet audit hardening · 2026-08-31 === */
@media(max-width:850px){
  .metrics-page-body .mp-kpis{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .metrics-page-body .mp-panel>header{
    min-width:0;
  }
}

@media(max-width:620px){
  /* Keep the shared app header compact and prevent page-specific rules
     from forcing the New button back to desktop width. */
  .metrics-page-body .main>header>.header-new,
  .dashboard-page .main>header>.header-new{
    width:42px!important;
    min-width:42px!important;
    max-width:42px!important;
    height:42px!important;
    min-height:42px!important;
    padding:0!important;
    gap:0!important;
    justify-content:center!important;
  }
  .metrics-page-body .main>header>.header-new span,
  .dashboard-page .main>header>.header-new span{
    display:none!important;
  }
  .metrics-page-body .main>header>.header-new b,
  .dashboard-page .main>header>.header-new b{
    font-size:17px!important;
    line-height:1!important;
  }

  .metrics-page-body .header-title{
    min-width:0;
  }
  .metrics-page-body .mobile-brand{
    flex:none;
  }

  /* KPI density: two columns on normal smartphones without truncation. */
  .metrics-page-body .mp-kpis{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .metrics-page-body .mp-kpis article{
    min-width:0;
    min-height:102px;
    gap:9px;
    padding:12px;
  }
  .metrics-page-body .mp-kpi-icon{
    width:34px;
    height:34px;
    border-radius:10px;
  }
  .metrics-page-body .mp-kpis small{
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
    line-height:1.2;
  }
  .metrics-page-body .mp-kpis p{
    line-height:1.3;
  }

  .metrics-page-body .mp-period-strip{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  /* Long panel metadata should move below the title rather than squeeze it. */
  .metrics-page-body .mp-panel>header{
    align-items:flex-start;
    flex-direction:column;
    gap:6px;
  }
  .metrics-page-body .mp-panel-meta{
    line-height:1.35;
  }

  /* Six-month chart remains legible: it scrolls inside its panel on narrow screens. */
  .metrics-page-body .mp-activity-chart{
    grid-template-columns:repeat(6,minmax(54px,1fr));
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
  }

  /* Horizontal data regions scroll locally rather than widening the page. */
  .metrics-page-body .mp-tech-table,
  .metrics-page-body .mp-log-body{
    max-width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    touch-action:pan-x pan-y;
    outline:none;
  }
  .metrics-page-body .mp-tech-table:focus-visible,
  .metrics-page-body .mp-log-body:focus-visible{
    box-shadow:inset 0 0 0 2px rgba(36,87,230,.18);
  }
}

@media(max-width:430px){
  .metrics-page-body .mobile-brand>span{
    width:80px;
    height:36px;
  }
  .metrics-page-body .langswitch{
    margin-left:auto!important;
  }
  .metrics-page-body .mp-kpis{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .metrics-page-body .mp-period-strip{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .metrics-page-body .mp-kpis strong{
    font-size:26px;
  }
  .metrics-page-body .mp-kpis p,
  .metrics-page-body .mp-kpis small{
    font-size:10px;
  }
  .metrics-page-body .mp-filter-title small{
    font-size:10.75px;
  }
}

@media(max-width:349px){
  .metrics-page-body .mp-kpis,
  .metrics-page-body .mp-period-strip{
    grid-template-columns:1fr!important;
  }
  .metrics-page-body .mp-date-range{
    grid-template-columns:1fr!important;
  }
  .metrics-page-body .mp-date-separator{
    display:none!important;
  }
  .metrics-page-body .mp-filter-actions{
    grid-template-columns:1fr!important;
  }
}

@media(max-height:520px) and (max-width:850px) and (orientation:landscape){
  .metrics-page-body .mp-hero{
    padding:17px 18px;
  }
  .metrics-page-body .mp-hero-badge{
    display:none;
  }
  .metrics-page-body .mp-hero h2{
    font-size:24px;
  }
}


/* === Clickable GPS coordinates on installation detail · 2026-08-31 === */
.detail-gps-link{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:34px;
  max-width:100%;
  padding:5px 8px;
  margin:-5px -8px;
  border-radius:8px;
  color:#2457e6;
  font-weight:800;
  line-height:1.35;
  text-decoration:none;
  transition:background .15s,color .15s,box-shadow .15s;
}
.detail-gps-link span{
  overflow-wrap:anywhere;
}
.detail-gps-link svg{
  flex:0 0 15px;
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.detail-gps-link:hover{
  background:#edf3ff;
  color:#174fd2;
}
.detail-gps-link:focus-visible{
  outline:0;
  background:#edf3ff;
  box-shadow:0 0 0 3px rgba(36,87,230,.12);
}
@media(max-width:620px){
  .detail-gps-link{
    min-height:44px;
    padding:8px 10px;
    margin:-6px -10px;
  }
}

/* === InstallPro login · visual, responsive, accessibility + auth UX · 2026-09-16 === */
.auth-login-v3{--auth-navy:#08243a;--auth-blue:#2457e6;--auth-ink:#15344e;--auth-body:#657b8e;--auth-muted:#8797a5;--auth-line:#d8e2ea;min-height:100vh;min-height:100dvh;background:#edf2f6;color:var(--auth-ink)}
.auth-login-v3 .authgrid{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(540px,1.06fr) minmax(500px,.94fr)}
.auth-login-v3 .visual{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;min-width:0;padding:42px clamp(40px,4vw,70px) 38px;background:radial-gradient(circle at 16% 12%,rgba(90,178,233,.24),transparent 28%),radial-gradient(circle at 86% 76%,rgba(33,124,177,.19),transparent 32%),linear-gradient(145deg,#071e31 0%,#0a3450 58%,#0c4969 100%);color:#fff}
.auth-login-v3 .visual:before{content:"";position:absolute;z-index:-1;right:-150px;bottom:-210px;width:500px;height:500px;border:1px solid rgba(255,255,255,.07);border-radius:50%;box-shadow:0 0 0 58px rgba(255,255,255,.017),0 0 0 116px rgba(255,255,255,.011)}
.auth-login-v3 .visual>div{max-width:none;margin-bottom:0}.auth-login-v3 .visual-top{display:flex;align-items:center;justify-content:space-between}.auth-login-v3 .auth-brand{display:flex;align-items:center;gap:13px;min-width:0}
.auth-login-v3 .auth-brand-surface{display:flex;align-items:center;justify-content:center;width:248px;height:74px;padding:8px 14px;border:1px solid rgba(255,255,255,.76);border-radius:16px;background:rgba(255,255,255,.97);box-shadow:0 12px 30px rgba(0,0,0,.12)}
.auth-login-v3 .auth-brand-surface img{display:block;width:100%;height:100%;object-fit:contain;filter:none!important;opacity:1!important}.auth-login-v3 .auth-product{flex:none;padding:7px 10px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(255,255,255,.07);color:#d0e2ed;font-size:10px;font-weight:900;letter-spacing:.14em}
.auth-login-v3 .visual-copy{max-width:650px;margin-bottom:5vh}.auth-login-v3 .auth-eyebrow{display:inline-flex;align-items:center;gap:9px;color:#91d1f2;font-size:11px;font-weight:900;letter-spacing:.15em}.auth-login-v3 .auth-eyebrow:before{content:"";width:28px;height:2px;border-radius:99px;background:#72bce7}
.auth-login-v3 .visual h1{display:grid;gap:4px;max-width:650px;margin:16px 0;font-size:clamp(39px,3.15vw,52px);line-height:1.02;letter-spacing:-.044em;text-wrap:balance}.auth-login-v3 .visual h1 span{display:block;color:#dceef8;font:inherit;letter-spacing:inherit}.auth-login-v3 .visual p{max-width:610px;margin:0;color:#c6dae7;font-size:14px;line-height:1.72}
.auth-login-v3 .auth-benefits{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.auth-login-v3 .auth-benefits>div{display:flex;align-items:center;gap:7px;min-height:36px;padding:7px 10px;border:1px solid rgba(255,255,255,.11);border-radius:10px;background:rgba(255,255,255,.06);color:#dceaf3;backdrop-filter:blur(8px)}.auth-login-v3 .auth-benefits>div>span{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#def3e9;color:#18795e;font-size:11px;font-weight:950;letter-spacing:0}.auth-login-v3 .auth-benefits strong{font-size:11px;font-weight:800;letter-spacing:.005em}.auth-login-v3 .visual-foot{color:#81a9c0;font-size:10.5px;font-weight:800;letter-spacing:.08em}
.auth-login-v3 .loginpanel{position:relative;display:grid;place-items:center;min-width:0;padding:36px clamp(28px,4vw,70px);background:radial-gradient(circle at 76% 38%,rgba(63,109,147,.075),transparent 31%),linear-gradient(180deg,#f5f8fa 0%,#edf2f6 100%)}.auth-login-v3 .login-wrap{width:min(480px,100%)}
.auth-login-v3 .auth-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-height:36px;margin-bottom:12px}.auth-login-v3 .login-mobile-brand{display:none}.auth-login-v3 .auth-language{display:flex;align-items:center;gap:2px;padding:3px 5px;border:1px solid #dbe4eb;border-radius:10px;background:rgba(255,255,255,.75)}.auth-login-v3 .auth-language form{margin:0}.auth-login-v3 .auth-language span{color:#bdc7cf;font-size:10px}.auth-login-v3 .auth-language button{min-width:34px;min-height:30px;padding:4px 6px;border:0;border-radius:7px;background:transparent;color:#7a8d9d;font-size:10.5px;font-weight:900;letter-spacing:.04em;cursor:pointer}.auth-login-v3 .auth-language button:hover{background:#edf2f6;color:#3d566b}.auth-login-v3 .auth-language button.active{background:#163b59;color:#fff}
.auth-login-v3 .loginbox{width:100%;padding:32px 34px 27px;border:1px solid #d9e2e9;border-radius:22px;background:rgba(255,255,255,.985);box-shadow:0 24px 60px rgba(18,42,64,.105),0 2px 8px rgba(18,42,64,.035)}
.auth-login-v3 .login-heading{display:flex;align-items:center;gap:13px;margin-bottom:9px}.auth-login-v3 .login-lock{display:grid;place-items:center;flex:0 0 43px;width:43px;height:43px;border-radius:12px;background:#eef4ff;color:#2457e6}.auth-login-v3 .login-lock svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.auth-login-v3 .loginbox .kicker{display:block;margin-bottom:5px;color:#607b91;font-size:10.5px;letter-spacing:.13em}.auth-login-v3 .loginbox h2{margin:0;color:#14334d;font-size:28px;line-height:1.12;letter-spacing:-.035em}.auth-login-v3 .loginbox>p.login-intro{margin:12px 0 20px;color:#748899;font-size:13px;line-height:1.6}
.auth-login-v3 .login-alerts{margin:0 0 14px}.auth-login-v3 .login-alerts .flash{display:flex;align-items:flex-start;gap:9px;margin:0;padding:11px 12px;border-radius:10px;font-size:12px;line-height:1.45}.auth-login-v3 .login-alerts svg{flex:0 0 17px;width:17px;height:17px;margin-top:1px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.auth-login-v3 .auth-field{display:grid;gap:7px;margin-top:15px}.auth-login-v3 .auth-field>label,.auth-login-v3 .auth-label-row label{color:#405a70;font-size:12px;font-weight:850}.auth-login-v3 .auth-label-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.auth-login-v3 .caps-warning{color:#9a6417;font-size:10.5px;font-weight:800}.auth-login-v3 .caps-warning[hidden]{display:none}
.auth-login-v3 .loginbox input{width:100%;min-height:52px;padding:11px 13px;border:1px solid #cfdbe4;border-radius:11px;background:#fbfcfd;color:#173951;outline:0;font-size:14px;transition:border-color .16s,box-shadow .16s,background .16s}.auth-login-v3 .loginbox input::placeholder{color:#9eabb6}.auth-login-v3 .loginbox input:hover{border-color:#b7c8d5;background:#fff}.auth-login-v3 .loginbox input:focus{border-color:#7395e7;background:#fff;box-shadow:0 0 0 4px rgba(36,87,230,.095)}
.auth-login-v3 .pw{position:relative}.auth-login-v3 .pw input{padding-right:50px}.auth-login-v3 .pw button{position:absolute;right:7px;top:7px;display:grid;place-items:center;width:38px;height:38px;padding:0;border:0;border-radius:9px;background:transparent;color:#718596;cursor:pointer}.auth-login-v3 .pw button:hover,.auth-login-v3 .pw button:focus-visible{background:#edf3f8;color:#2457e6;outline:0}.auth-login-v3 .pw button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.auth-login-v3 .pw button.is-visible{background:#eef4ff;color:#2457e6}
.auth-login-v3 .login-submit{position:relative;min-height:50px;margin-top:20px;gap:9px;border-radius:11px;font-size:13px;letter-spacing:.005em;box-shadow:0 10px 22px rgba(36,87,230,.19);transition:transform .15s,box-shadow .15s,filter .15s}.auth-login-v3 .login-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 13px 26px rgba(36,87,230,.24);filter:saturate(1.05)}.auth-login-v3 .login-submit:active:not(:disabled){transform:translateY(0)}.auth-login-v3 .login-submit:disabled{cursor:wait;opacity:.86}.auth-login-v3 .login-submit .button-arrow{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.auth-login-v3 .button-loading{display:none;align-items:center;gap:8px}.auth-login-v3 .button-spinner{width:15px;height:15px;border:2px solid rgba(255,255,255,.42);border-top-color:#fff;border-radius:50%;animation:installpro-spin .7s linear infinite}.auth-login-v3 .loginbox.is-submitting .button-label,.auth-login-v3 .loginbox.is-submitting .button-arrow{display:none}.auth-login-v3 .loginbox.is-submitting .button-loading{display:inline-flex}@keyframes installpro-spin{to{transform:rotate(360deg)}}
.auth-login-v3 .login-security{display:flex;align-items:flex-start;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid #edf1f4;color:#8495a3}.auth-login-v3 .login-security svg{flex:0 0 16px;width:16px;height:16px;margin-top:1px;fill:none;stroke:#5f8caf;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.auth-login-v3 .login-security small{font-size:10.5px;line-height:1.48}.auth-login-v3 .login-help{display:flex;justify-content:center;gap:5px;flex-wrap:wrap;margin:14px 0 0;padding:0 8px;text-align:center;color:#8796a3;font-size:10.5px;line-height:1.45}.auth-login-v3 .login-help strong{color:#63798a}.auth-login-v3 :is(button,input):focus-visible{outline:3px solid rgba(36,87,230,.23);outline-offset:2px}
@media(max-width:1120px){.auth-login-v3 .authgrid{grid-template-columns:minmax(455px,.94fr) minmax(500px,1.06fr)}.auth-login-v3 .visual{padding-left:38px;padding-right:38px}.auth-login-v3 .auth-brand-surface{width:218px;height:67px}.auth-login-v3 .visual h1{font-size:40px}.auth-login-v3 .auth-benefits{display:grid;width:max-content}}
@media(max-width:960px){.auth-login-v3 .authgrid{display:block;min-height:100vh;min-height:100dvh}.auth-login-v3 .visual{display:none!important}.auth-login-v3 .loginpanel{min-height:100vh;min-height:100dvh;align-items:center;padding:calc(24px + env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))}.auth-login-v3 .login-wrap{width:min(510px,100%)}.auth-login-v3 .auth-toolbar{justify-content:space-between;margin-bottom:14px}.auth-login-v3 .login-mobile-brand{display:flex;align-items:center;gap:9px;min-width:0}.auth-login-v3 .login-mobile-brand img{display:block;width:150px;max-height:44px;object-fit:contain;filter:none!important}.auth-login-v3 .login-mobile-brand span{padding:5px 7px;border:1px solid #d8e2ea;border-radius:999px;background:#fff;color:#5f7487;font-size:9px;font-weight:900;letter-spacing:.12em}}
@media(max-width:540px){.auth-login-v3 .loginpanel{align-items:start;padding-left:13px;padding-right:13px}.auth-login-v3 .auth-toolbar{padding:0 2px}.auth-login-v3 .login-mobile-brand img{width:136px}.auth-login-v3 .login-mobile-brand span{display:none}.auth-login-v3 .loginbox{padding:25px 20px 22px;border-radius:18px}.auth-login-v3 .login-heading{align-items:flex-start}.auth-login-v3 .loginbox h2{font-size:25px}.auth-login-v3 .loginbox input{font-size:16px}.auth-login-v3 .loginbox>p.login-intro{font-size:12.5px}}
@media(max-width:370px){.auth-login-v3 .login-lock{display:none}.auth-login-v3 .loginbox{padding-left:17px;padding-right:17px}.auth-login-v3 .login-mobile-brand img{width:124px}}
@media(max-height:720px) and (min-width:961px){.auth-login-v3 .visual{padding-top:28px;padding-bottom:26px}.auth-login-v3 .auth-brand-surface{width:210px;height:62px}.auth-login-v3 .visual-copy{margin-bottom:2vh}.auth-login-v3 .visual h1{font-size:37px;margin-top:11px;margin-bottom:11px}.auth-login-v3 .auth-benefits{margin-top:15px}.auth-login-v3 .loginpanel{padding-top:22px;padding-bottom:22px}.auth-login-v3 .auth-toolbar{margin-bottom:8px}.auth-login-v3 .loginbox{padding-top:25px;padding-bottom:21px}}
@media(prefers-reduced-motion:reduce){.auth-login-v3 *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* InstallPro offline queue v2 */
.offline-queue-badge{margin-left:auto;min-height:36px;padding:7px 11px;border:1px solid #cbd8e2;border-radius:999px;background:#fff;color:#24445d;font:800 11px/1.2 inherit;cursor:pointer}.offline-queue-badge:disabled{opacity:.65;cursor:default}.offline-notice{margin:0 0 14px;padding:12px 14px;border:1px solid #cbd8e2;border-radius:12px;background:#f7fafc;color:#24445d;font-size:12px;font-weight:750;line-height:1.45}.offline-notice.offline,.offline-notice.saved{border-color:#e0c47a;background:#fff9e9;color:#715313}.offline-notice.synced{border-color:#9fd1bc;background:#effaf5;color:#176248}.offline-notice.error{border-color:#e1aaaa;background:#fff2f2;color:#8a2f2f}@media(max-width:620px){.ip-sync-state{flex-wrap:wrap}.offline-queue-badge{width:100%;margin:8px 0 0;min-height:44px}}


/* InstallPro mobile login vertical balance · 2026-09-17 */
@media (max-width:960px){
  .auth-login-v3 .loginpanel{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:100vh;
    min-height:100dvh;
    padding-top:max(28px,env(safe-area-inset-top));
    padding-bottom:max(28px,env(safe-area-inset-bottom));
  }
  .auth-login-v3 .login-wrap{
    margin:auto 0;
  }
}
@media (max-width:540px){
  .auth-login-v3 .loginpanel{
    align-items:center;
    padding-top:max(22px,env(safe-area-inset-top));
    padding-bottom:max(22px,env(safe-area-inset-bottom));
  }
  .auth-login-v3 .auth-toolbar{margin-bottom:18px}
  .auth-login-v3 .login-help{margin-top:18px;margin-bottom:0}
}
@media (max-width:540px) and (min-height:760px){
  .auth-login-v3 .login-wrap{transform:translateY(2vh)}
}
@media (max-width:540px) and (max-height:700px){
  .auth-login-v3 .loginpanel{align-items:flex-start}
  .auth-login-v3 .login-wrap{margin:0 auto;transform:none}
}
