
:root{--blue:#0757ad;--blue2:#0a69c7;--ink:#17212b;--muted:#667585;--bg:#eef3f8;--panel:#fff;--soft:#f7f9fc;--line:#d9e2ec;--good:#16835f;--warn:#b46a08;--bad:#b93a45;--shadow:0 6px 24px rgba(32,57,82,.08)}
*{box-sizing:border-box}body{margin:0;font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial;color:var(--ink);background:var(--bg)}
button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
#login{min-height:100vh;display:grid;place-items:center;padding:22px;background:linear-gradient(135deg,#f7fbff,#dfeaf5)}
.loginbox{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px;box-shadow:var(--shadow);position:relative;overflow:visible}.login-mascot{position:absolute;right:-78px;bottom:-72px;width:235px;max-width:48vw;height:auto;z-index:3;pointer-events:none;filter:drop-shadow(0 12px 14px rgba(15,35,55,.18))}@media(max-width:520px){.loginbox{margin-right:18px}.login-mascot{right:-48px;bottom:-54px;width:190px;max-width:46vw}}
.logo{max-width:245px;width:100%;display:block;margin:0 auto 20px}.loginbox h1{margin:0 0 4px;text-align:center}.muted{color:var(--muted)}.tiny{font-size:12px}
label{display:block;font-weight:700;margin:11px 0 5px}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #cbd7e3;border-radius:9px;background:#fff;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:#69a1d7;box-shadow:0 0 0 3px #e5f1fc}textarea{min-height:88px;resize:vertical}
.btn{border:1px solid #cbd7e3;background:#fff;color:var(--ink);padding:9px 13px;border-radius:9px;font-weight:750}.btn:hover{background:#f5f8fb}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.danger{color:var(--bad);border-color:#efc4c8}.btn.good{color:#fff;background:var(--good);border-color:var(--good)}.btn.small{padding:6px 9px;font-size:12px}
#app{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:242px;background:#f8fafc;border-right:1px solid var(--line);padding:18px 12px;overflow:auto;z-index:20}.sideLogo{width:190px;display:block;margin:2px auto 18px}.nav{display:grid;gap:4px}.nav button{border:0;background:transparent;text-align:left;padding:10px 11px;border-radius:9px;color:#405162;font-weight:700}.nav button.active,.nav button:hover{background:#e2eef9;color:var(--blue)}.nav .group{font-size:10px;text-transform:uppercase;letter-spacing:1.2px;color:#8997a5;padding:14px 10px 4px}
.main{margin-left:242px}.top{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:0 22px;position:sticky;top:0;z-index:10}.top h1{font-size:20px;margin:0}.global-search{position:relative;flex:1;max-width:620px;margin-left:8px}.global-search input{padding:10px 38px 10px 38px;border-radius:12px;background:#f7f9fc}.global-search .glass{position:absolute;left:13px;top:9px;font-size:17px;color:#60758a;pointer-events:none}.search-results{position:absolute;left:0;right:0;top:48px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 45px rgba(22,47,73,.18);max-height:68vh;overflow:auto;z-index:80;padding:7px}.search-result{display:flex;gap:11px;align-items:center;width:100%;border:0;background:#fff;text-align:left;padding:10px;border-radius:10px}.search-result:hover,.search-result.active{background:#eef5fb}.search-result .sico{width:34px;height:34px;border-radius:9px;background:#e7f1fb;color:var(--blue);display:grid;place-items:center;font-weight:900;flex:0 0 auto}.search-result b{display:block}.search-result small{display:block;color:var(--muted);margin-top:1px}.search-empty{padding:14px;color:var(--muted)}.content{padding:20px;max-width:1500px;margin:auto}
.grid{display:grid;gap:14px}.g4{grid-template-columns:repeat(4,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g2{grid-template-columns:repeat(2,1fr)}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow)}.metric b{font-size:26px;display:block;color:var(--blue)}.metric span{color:var(--muted)}
.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:13px}.toolbar h2{margin:0 auto 0 0;font-size:19px}.search{max-width:300px}
.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid #e8eef4;vertical-align:middle}th{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:#708090;background:#f7f9fb;position:sticky;top:0}tr.clickable:hover{background:#f0f6fc;cursor:pointer}
.pill{display:inline-block;padding:4px 8px;border-radius:999px;background:#e9f2fb;color:#245b8e;font-size:11px;font-weight:800}.pill.good{background:#e4f4ee;color:#176b51}.pill.warn{background:#fff1db;color:#8a5609}.pill.bad{background:#fdebed;color:#a52d38}
.modal{position:fixed;inset:0;background:rgba(17,28,39,.42);display:grid;place-items:center;padding:18px;z-index:100}.modalbox{background:#fff;width:min(760px,100%);max-height:92vh;overflow:auto;border-radius:16px;border:1px solid var(--line);box-shadow:0 24px 70px rgba(0,0,0,.22)}.modalhead{display:flex;align-items:center;padding:15px 18px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}.modalhead h3{margin:0;flex:1}.modalbody{padding:18px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.full{grid-column:1/-1}.actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}
.jobcards{display:none}.jobhero{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:14px}.jobhero h2{margin:0}.tabs{display:flex;gap:6px;overflow:auto;padding:3px 0 12px}.tabs button{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 10px;font-weight:700}.tabs button.active{background:#e4f0fb;color:var(--blue);border-color:#b9d4ed}
.filegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.filecard{border:1px solid var(--line);border-radius:11px;padding:12px;background:#fff}.filecard img{width:100%;height:150px;object-fit:contain;background:#f4f6f8;border-radius:7px;margin-bottom:8px}.preview{width:100%;min-height:420px;border:1px solid var(--line);border-radius:10px;background:#f5f7f9}.scanbox{border:2px dashed #9bb9d5;background:#f4f9fe;padding:16px;border-radius:12px;margin-bottom:12px}.ocrStatus{padding:8px 0;color:var(--blue);font-weight:700}
.toast{position:fixed;right:18px;bottom:18px;background:#17212b;color:#fff;padding:11px 14px;border-radius:9px;z-index:200;box-shadow:var(--shadow);max-width:360px}
.notify-btn{position:relative;min-width:40px;font-size:18px;padding:7px 10px}.notify-badge{position:absolute;right:-5px;top:-7px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:#c62828;color:#fff;font-size:11px;line-height:19px;text-align:center;font-weight:900;border:2px solid #fff}.notification-list{display:grid;gap:9px}.notification-item{display:flex;gap:11px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff;cursor:pointer}.notification-item:hover{background:#f7faff}.notification-icon{width:34px;height:34px;border-radius:9px;background:#e8f2fc;color:var(--blue);display:grid;place-items:center;font-weight:900;flex:0 0 auto}.notification-item.warn .notification-icon{background:#fff3df;color:#9a5a00}.notification-item.bad .notification-icon{background:#fdebec;color:#b4232d}.notification-item .nmain{flex:1}.notification-item .nmain b{display:block}.notification-item .nmain span{display:block;color:var(--muted);font-size:12px;margin-top:2px}.notification-section{margin:14px 0 7px;font-size:12px;font-weight:900;color:#60758a;text-transform:uppercase;letter-spacing:.04em}
.mobilebar{display:none}
@media(max-width:980px){.g4{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:1fr 1fr}}
@media(max-width:760px){
.global-search{max-width:none;margin-left:0}.top #pageTitle{display:none}.top #who{display:none}.global-search input{padding-top:9px;padding-bottom:9px}.search-results{position:fixed;left:8px;right:8px;top:57px;max-height:70vh}
.sidebar{display:none}.main{margin-left:0}.top{height:58px;padding:0 12px}.content{padding:10px 10px 82px}.top h1{font-size:17px}.g4,.g3,.g2{grid-template-columns:1fr}.card{padding:13px}.formgrid{grid-template-columns:1fr}.full{grid-column:auto}.tablewrap{display:none}.jobcards{display:grid;gap:9px}.jobcard{background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px}.jobcard h3{margin:0 0 3px;color:#174e82}.jobcard .row{display:flex;justify-content:space-between;gap:8px;margin-top:8px}.mobilebar{display:flex;position:fixed;z-index:30;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);padding:6px env(safe-area-inset-right) calc(6px + env(safe-area-inset-bottom)) env(safe-area-inset-left);justify-content:space-around}.mobilebar button{border:0;background:transparent;color:#526579;font-size:10px;font-weight:800;padding:5px}.mobilebar button b{display:block;font-size:19px;color:var(--blue)}.modal{padding:0;align-items:end}.modalbox{width:100%;max-height:94vh;border-radius:16px 16px 0 0}.preview{min-height:55vh}
}

/* ===== Pro-Tech QMS 2026 dashboard refresh ===== */
:root{
  --qms-navy:#102A43;
  --qms-blue:#0B5FB3;
  --qms-blue2:#2C7CC5;
  --qms-soft:#EEF5FB;
  --qms-bg:#F4F7FA;
  --qms-green:#17865C;
  --qms-amber:#B26A00;
  --qms-red:#B6424C;
}
body{background:var(--qms-bg)}
.content{padding:24px;max-width:1600px}
.card{border-radius:18px;border-color:#DFE7EF;box-shadow:0 8px 28px rgba(22,47,73,.055)}
.top{height:72px}
.sidebar{background:#FBFCFE}
.nav button{border-radius:12px}
.nav button.active{background:#E7F1FB;box-shadow:inset 3px 0 0 var(--qms-blue)}
.qms-hero{
  background:linear-gradient(125deg,#0F2B46 0%,#123B60 58%,#0B5FB3 135%);
  color:white;border-radius:22px;padding:24px;box-shadow:0 18px 45px rgba(17,50,80,.16);
  display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;overflow:hidden;position:relative
}
.qms-hero:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-90px;top:-120px;background:rgba(255,255,255,.06)}
.qms-hero h2{margin:0 0 5px;font-size:25px}
.qms-hero p{margin:0;color:#D8E7F5}
.health-wrap{display:flex;align-items:center;gap:16px;position:relative;z-index:1}
.health-ring{
  --score:95; width:92px;height:92px;border-radius:50%;
  background:conic-gradient(#67D5AC calc(var(--score)*1%),rgba(255,255,255,.14) 0);
  display:grid;place-items:center
}
.health-ring:before{content:"";width:70px;height:70px;background:#143753;border-radius:50%;position:absolute}
.health-ring b{position:relative;font-size:23px}
.health-label{font-size:12px;color:#CFE2F2;text-align:center;margin-top:4px}
.qms-statgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:15px}
.qms-stat{background:white;border:1px solid #E0E8F0;border-radius:16px;padding:16px;cursor:pointer;transition:.18s}
.qms-stat:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(29,61,90,.08)}
.qms-stat .num{font-size:26px;font-weight:850;color:var(--qms-navy);line-height:1.05}
.qms-stat .cap{font-size:12px;color:#63788D;margin-top:6px}
.qms-stat .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background:#63B895}
.qms-stat.warn .dot{background:#E7A13B}.qms-stat.bad .dot{background:#D85C65}
.section-title{display:flex;align-items:center;justify-content:space-between;margin:24px 1px 10px}
.section-title h2{font-size:17px;margin:0;color:var(--qms-navy)}
.iso-attention{display:grid;gap:8px}
.attention-row{display:flex;align-items:center;gap:12px;padding:12px 13px;background:#fff;border:1px solid #E1E9F1;border-radius:13px;cursor:pointer}
.attention-row:hover{background:#FAFCFE}.attention-icon{width:34px;height:34px;border-radius:10px;background:#FFF3E1;color:#9A5B00;display:grid;place-items:center;font-weight:900}
.attention-main{flex:1}.attention-main b{display:block;color:#20384E}.attention-main span{font-size:12px;color:#6E8192}
.quick-modern{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.quick-modern button{min-height:76px;text-align:left;border:1px solid #DDE6EE;background:#fff;border-radius:15px;padding:13px;font-weight:800;color:#20384E}
.quick-modern button:hover{background:#F2F7FC;border-color:#BDD4E9}
.quick-modern button span{display:block;font-size:20px;margin-bottom:5px;color:var(--qms-blue)}
.qms-shell{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.qms-tile{background:#fff;border:1px solid #E0E8F0;border-radius:18px;padding:18px;cursor:pointer;min-height:145px;transition:.18s}
.qms-tile:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(30,60,90,.08)}
.qms-tile .ico{width:42px;height:42px;border-radius:12px;background:#EAF3FC;color:var(--qms-blue);display:grid;place-items:center;font-size:21px;font-weight:900;margin-bottom:12px}
.qms-tile h3{margin:0 0 5px;color:#1B344B}.qms-tile p{margin:0;color:#6C7F91;font-size:13px}
.docrow{display:grid;grid-template-columns:110px 1.6fr 120px 110px 130px 120px;gap:10px;align-items:center;padding:12px;border-bottom:1px solid #E7EDF3}
.docrow.header{font-size:10px;text-transform:uppercase;letter-spacing:.7px;color:#718396;background:#F8FAFC;font-weight:800}
.doclist{background:#fff;border:1px solid #DEE7EF;border-radius:15px;overflow:auto}
.readiness-card{display:flex;align-items:center;gap:12px;padding:13px;border:1px solid #E0E8F0;background:#fff;border-radius:14px;cursor:pointer}
.readiness-card .status{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-weight:900}
.status.good{background:#E6F5EF;color:#167252}.status.warn{background:#FFF2DD;color:#A56000}.status.bad{background:#FDEBED;color:#A83742}
.policy-card{background:#fff;border:1px solid #DFE7EF;border-radius:16px;padding:17px}
.policy-card h3{margin:0 0 5px}.policy-meta{font-size:12px;color:#728597;margin-bottom:11px}
.setup-banner{background:#FFF5E6;border:1px solid #F2D7AA;border-radius:14px;padding:13px;color:#754C0B;margin-bottom:13px}
.audit-tag{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:999px;background:#E9F4EF;color:#166B4F;font-size:11px;font-weight:850}
@media(max-width:1000px){
 .qms-statgrid{grid-template-columns:repeat(2,1fr)}
 .qms-shell{grid-template-columns:repeat(2,1fr)}
 .quick-modern{grid-template-columns:repeat(2,1fr)}
 .docrow{grid-template-columns:90px 1.5fr 90px 100px 110px}
 .docrow>*:nth-child(6){display:none}
}
@media(max-width:650px){
 .content{padding:14px}
 .qms-hero{grid-template-columns:1fr;padding:19px}
 .health-wrap{justify-content:flex-start}
 .qms-statgrid{grid-template-columns:repeat(2,1fr)}
 .qms-shell{grid-template-columns:1fr}
 .quick-modern{grid-template-columns:repeat(2,1fr)}
 .docrow{grid-template-columns:78px 1fr 72px}
 .docrow>*:nth-child(4),.docrow>*:nth-child(5),.docrow>*:nth-child(6){display:none}
}


/* ScrAppy v1.4.10.5 · faster prepared inspection workflow */
@media(max-width:760px){
  .content{padding-bottom:calc(150px + env(safe-area-inset-bottom))!important;}
  .modalbody{padding-bottom:calc(120px + env(safe-area-inset-bottom))!important;}
  .modalbox{scroll-padding-bottom:calc(120px + env(safe-area-inset-bottom));}
  #jobtab,#content{padding-bottom:calc(70px + env(safe-area-inset-bottom));}
  .qol-undo{bottom:calc(82px + env(safe-area-inset-bottom));}
  #offlineBanner{bottom:calc(82px + env(safe-area-inset-bottom));}
}


.train-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}.train-card{background:#fff;border:1px solid #dce5ee;border-radius:16px;padding:16px;box-shadow:0 3px 12px #0b31530b}.train-card h3{margin:5px 0 7px}.train-meta{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0}.train-tag{font-size:12px;padding:4px 8px;border-radius:999px;background:#eef5fb;color:#24445f}.lesson-slide{background:linear-gradient(145deg,#0d3150,#0b5fb3);color:#fff;border-radius:18px;padding:24px;min-height:260px;display:flex;flex-direction:column;justify-content:center}.lesson-slide h2{color:#fff;margin-top:0}.lesson-slide li{margin:10px 0;line-height:1.45}.slide-nav{display:flex;justify-content:space-between;gap:10px;margin-top:12px}.quiz-q{border:1px solid #dce5ee;border-radius:14px;padding:14px;margin:12px 0;background:#fff}.quiz-opt{display:block;border:1px solid #d7e1ea;border-radius:10px;padding:10px;margin:7px 0;cursor:pointer}.quiz-opt input{width:auto;margin-right:8px}.training-progress{height:8px;background:#e8eef4;border-radius:99px;overflow:hidden}.training-progress>i{display:block;height:100%;background:#0b5fb3}.course-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.train-card{position:relative;overflow:hidden}
.train-card.is-passed{padding-top:58px}
.training-pass-stamp{
 position:absolute;top:12px;right:-42px;width:190px;text-align:center;
 transform:rotate(12deg);border:3px solid #178447;border-radius:8px;
 color:#178447;background:rgba(255,255,255,.94);font-weight:900;
 font-size:18px;letter-spacing:1.4px;padding:5px 8px;z-index:2;
 box-shadow:0 2px 8px rgba(0,0,0,.08);pointer-events:none
}
.training-pass-stamp small{display:block;font-size:10px;letter-spacing:.4px;margin-top:1px}



.install-link{margin-top:14px;text-align:center}.install-link button{background:none;border:0;color:#0b5fb3;font-weight:800;cursor:pointer;padding:8px}.install-card{text-align:center}.install-card .qr{width:190px;max-width:70%;border:1px solid #dce5ee;border-radius:14px;padding:8px;background:#fff;margin:10px auto}.install-url{font-weight:800;word-break:break-all;color:#17324a}.install-steps{text-align:left;background:#f6f9fc;border:1px solid #dce5ee;border-radius:12px;padding:12px;margin:12px 0;line-height:1.5}.install-back{margin-top:8px}


/* v1.4.10.60 first-login state: never show normal login credentials during password setup */
body.scrappy-password-setup #loginEmailLabel,
body.scrappy-password-setup #email,
body.scrappy-password-setup #loginPasswordLabel,
body.scrappy-password-setup #password,
body.scrappy-password-setup #loginbtn,
body.scrappy-password-setup #forgot_password,
body.scrappy-password-setup .login-normal-only { display:none !important; }


#inspection_fullscreen_btn{margin-right:8px;min-width:42px;font-size:18px;line-height:1}
#modal .modalbox[data-inspection-fullscreen="1"] .modalbody{height:calc(100vh - 88px);overflow:auto}
#modal .modalbox[data-inspection-fullscreen="1"]{overflow:hidden}


#offlineBanner{position:fixed;left:50%;transform:translateX(-50%);bottom:14px;z-index:9999;background:#7f1d1d;color:white;padding:9px 14px;border-radius:999px;font-weight:800;box-shadow:0 8px 30px #0003}.jobcard.status-hold{border:2px solid #c62828;background:#fff7f7}.jobcard.status-progress{border-left:5px solid #1976d2}.jobcard.status-ready{border-left:5px solid #2e7d32}.jobcard.status-attn{border-left:5px solid #ed8b00}.recent-jobs{display:flex;gap:8px;flex-wrap:wrap}.recent-jobs button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 10px;cursor:pointer}.stage-strip{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}.stage-chip{padding:6px 9px;border-radius:999px;background:#edf2f7;font-size:12px;font-weight:800}.stage-chip.now{background:#dbeafe;color:#0754a8}.stage-chip.done{background:#e7f6ee;color:#176b48}.smart-pass{background:#e7f6ee!important}.smart-fail{background:#fdebec!important}.markup-tools{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:8px}.markup-wrap{position:relative;overflow:auto;background:#d8dee6;padding:8px}.markup-wrap canvas{display:block;max-width:100%;height:auto;margin:auto;background:white}.qol-undo{position:fixed;right:16px;bottom:16px;z-index:9998;background:#17324d;color:white;padding:12px 14px;border-radius:12px;box-shadow:0 10px 30px #0003}.qol-undo button{margin-left:10px}


#inspection_ai_items .inspection-sheet{margin-top:12px}
#inspection_ai_items .inspection-check{border:1px solid var(--line);border-radius:12px;padding:12px;margin:10px 0;background:#fff}
#inspection_ai_items .inspection-check-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
#inspection_ai_items .inspection-check-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr .8fr;gap:8px;align-items:end}
#inspection_ai_items .inspection-check-grid label{margin:0;font-size:11px;color:#617286;font-weight:800}
#inspection_ai_items .inspection-check-grid input,#inspection_ai_items .inspection-check-grid select{margin-top:4px}
#inspection_ai_items .smart-pass{border-color:#54a86b!important;background:#f2fbf5!important}
#inspection_ai_items .smart-fail{border-color:#cf5b5b!important;background:#fff4f4!important}
@media(max-width:760px){
  #inspection_ai_items .tablewrap{display:block!important}
  #inspection_ai_items .inspection-check-grid{grid-template-columns:1fr}
  #inspection_drawing_live iframe{height:42vh!important;min-height:300px}
}


.qf19-sheet{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-top:12px}.qf19-bar{background:#0e5b9f;color:#fff;font-weight:900;padding:9px 12px;font-size:13px}.qf19-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:10px}.qf19-grid label,.qf19-checks label{margin:0;font-size:11px;font-weight:800;color:#526577}.qf19-dims{padding:8px}.qf19-dim{display:grid;grid-template-columns:34px 1.5fr 1.1fr .8fr .75fr;gap:6px;align-items:end;padding:6px 0;border-bottom:1px solid #e4e9ee}.qf19-dim>span{font-weight:900;text-align:center;padding-bottom:10px}.qf19-dim input,.qf19-dim select{margin-top:3px}.qf19-checks{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:10px}.qf19-check{border:1px solid #dce3e9;border-radius:9px;padding:8px;display:flex;align-items:center;justify-content:space-between;gap:8px}.qf19-check select{width:105px;margin:0}.qf19-result{padding:10px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.qf19-result .pillbox{padding:10px;border:1px solid #dce3e9;border-radius:10px;text-align:center;font-weight:900}.qf19-result .pass{background:#effaf2}.qf19-result .fail{background:#fff1f1}.qf19-actions{padding:10px}.qf19-note{padding:10px}.qf19-drawing iframe{width:100%;height:min(44vh,500px);border:0;background:#fff}.qf19-smart-pass{border-color:#54a86b!important;background:#f2fbf5!important}.qf19-smart-fail{border-color:#cf5b5b!important;background:#fff4f4!important}
@media(max-width:760px){.qf19-grid{grid-template-columns:1fr 1fr}.qf19-dim{grid-template-columns:30px 1fr 1fr}.qf19-dim label:nth-of-type(3),.qf19-dim label:nth-of-type(4){grid-column:auto}.qf19-dim label[data-wide]{grid-column:2/4}.qf19-checks{grid-template-columns:1fr}.qf19-result{grid-template-columns:1fr}.qf19-drawing iframe{height:36vh;min-height:260px}}


.scrappy-cal-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px}.scrappy-cal-head h2{margin:0 auto 0 0}.cal-toggle{display:flex;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:#fff}.cal-toggle button{border:0;background:#fff;padding:8px 12px;font-weight:800;color:var(--muted)}.cal-toggle button.active{background:#e7f1fb;color:var(--blue)}
.cal-nav{display:flex;align-items:center;justify-content:center;gap:9px;margin:8px 0 14px}.cal-nav .month-title{min-width:170px;text-align:center;font-weight:900;font-size:18px}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}.cal-dow{padding:9px 4px;text-align:center;font-size:11px;font-weight:900;color:var(--muted);background:#f6f8fb;border-bottom:1px solid var(--line)}.cal-day{min-height:112px;padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}.cal-day:nth-child(7n){border-right:0}.cal-day.other{background:#fafbfd;color:#9aa8b5}.cal-date{font-weight:900;font-size:12px;margin-bottom:6px}.cal-date.today{display:inline-grid;place-items:center;background:var(--blue);color:#fff;border-radius:999px;min-width:25px;height:25px;padding:0 6px}.cal-event{display:block;width:100%;border:0;border-radius:7px;padding:5px 6px;margin:3px 0;text-align:left;font-size:10px;font-weight:750;line-height:1.2;background:#edf4fb;color:#123a60;white-space:normal;overflow:hidden}.cal-event.job{background:#e8f5ed;color:#17613c}.cal-event.warn{background:#fff2dd;color:#7b4a00}.cal-event.qms{background:#f0ebfb;color:#50337b}.cal-event.person{background:#fcebed;color:#7a2933}.cal-more{display:block;width:100%;border:0;background:transparent;text-align:left;font-size:10px;color:var(--blue);font-weight:900;padding:4px 2px;cursor:pointer}.cal-list-group{margin:14px 0}.cal-list-date{font-weight:900;margin:0 0 7px}.cal-list-row{display:flex;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}.cal-list-row:first-of-type{border-top:0}.cal-dot{width:9px;height:9px;border-radius:999px;background:#7295b8;flex:0 0 auto}.cal-list-main{min-width:0;flex:1}.cal-list-main b,.cal-list-main span{display:block}.cal-list-main span{font-size:12px;color:var(--muted);margin-top:2px}
.search-group-title{padding:8px 10px 4px;font-size:10px;font-weight:900;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}.search-result .sbody{min-width:0}.search-result b,.search-result small{overflow:hidden;text-overflow:ellipsis}
@media(max-width:700px){.cal-nav{gap:5px;flex-wrap:wrap}.cal-nav .btn.small{padding:7px 9px;min-width:0}.cal-day{min-height:76px;padding:3px}.cal-event{font-size:9px;padding:4px}.cal-grid{border-radius:12px}.cal-dow{font-size:9px;padding:7px 2px}.cal-date{font-size:11px}.scrappy-cal-head{align-items:flex-start}.scrappy-cal-head h2{width:100%}.cal-nav .month-title{min-width:120px;font-size:15px;flex:1 1 120px}.cal-event{white-space:nowrap;text-overflow:ellipsis}.scrappy-cal-head .btn{padding:8px 10px}.cal-toggle button{padding:7px 9px}}
.scrappy-cal-head,.cal-nav,.cal-grid,.cal-list-group{max-width:100%;box-sizing:border-box}.cal-grid>*{min-width:0}.search-result{max-width:100%;box-sizing:border-box}


body.gloves-on-mode .sidebar{display:none!important}body.gloves-on-mode .main{margin-left:0!important;width:100%!important}body.gloves-on-mode.management-gloves .sidebar{display:block!important}body.gloves-on-mode.management-gloves .main{margin-left:242px!important;width:auto!important}body.gloves-on-mode .global-search,body.gloves-on-mode #notifyBtn,body.gloves-on-mode #backBtn,body.gloves-on-mode .mobilebar{display:none!important}body.gloves-on-mode .top{padding:14px 20px;gap:12px}body.gloves-on-mode #pageTitle{font-size:24px}body.gloves-on-mode .content{max-width:980px;margin:0 auto;padding:22px}.gloves-hero{text-align:center;padding:26px 12px}.gloves-hero h2{font-size:34px;margin:6px}.gloves-big{width:100%;min-height:92px;font-size:27px;font-weight:800;border-radius:18px}.gloves-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px}.gloves-actions .btn{min-height:105px;font-size:25px;font-weight:800}.gloves-job{cursor:pointer;border:2px solid #d8e4ef}.gloves-job h3{font-size:24px;margin:0 0 5px}.gloves-timer{font-size:44px;font-weight:800;letter-spacing:1px;margin:12px 0}.gloves-menu{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:18px}.gloves-menu .btn{min-height:44px}.job-short{font-weight:800;font-size:17px}.job-parts{font-size:12px;color:#5b6b7a;margin-top:3px}@media(max-width:650px){body.gloves-on-mode .content{padding:12px}.gloves-actions{grid-template-columns:1fr}.gloves-timer{font-size:36px}.gloves-big{min-height:84px}}
.gloves-attendance{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:14px 0 2px}.gloves-attendance .btn{min-height:48px;font-weight:800}\n

.activity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.activity-choice{min-height:88px;font-size:20px;font-weight:800;border:2px solid #d8e4ef;border-radius:16px;background:#fff;cursor:pointer;padding:16px}.activity-choice:hover{border-color:#1261b8;background:#f2f7fc}.activity-choice.nonjob{background:#f7f8fa}.gate-quick{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.gate-quick .btn{min-height:52px;font-weight:800}@media(max-width:650px){.activity-grid{grid-template-columns:1fr}.activity-choice{min-height:72px}}


.gloves-preview-actions{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}.gloves-preview-actions .btn{min-height:92px;font-size:23px;font-weight:800;border-radius:16px}.gloves-worker-desc{white-space:pre-wrap;font-size:17px;line-height:1.55}.gloves-drawing-card{margin-top:14px;padding:16px;border:1px solid #d8e4ef;border-radius:14px;background:#f8fbfe}.gloves-drawing-card b{font-size:18px}@media(max-width:650px){.gloves-preview-actions{grid-template-columns:1fr}.gloves-preview-actions .btn{min-height:76px}}


.gloves-job.inspect-card{position:relative;opacity:.62;filter:saturate(.55);overflow:hidden;background:#f4f6f8}
.gloves-job.inspect-card::after{content:'INSPECT';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:54px;font-weight:900;letter-spacing:7px;color:rgba(19,54,83,.10);transform:rotate(-12deg);pointer-events:none}
.gloves-job.inspect-card>*{position:relative;z-index:1}.gloves-job.inspect-card .pill{opacity:.9}


@media(max-width:760px){
body.gloves-on-mode .main,body.gloves-on-mode.management-gloves .main{margin-left:0!important;width:100%!important}
body.gloves-on-mode .sidebar,body.gloves-on-mode.management-gloves .sidebar{display:none!important}
body.gloves-on-mode .top{height:auto!important;min-height:64px;padding:10px 12px!important;position:sticky;top:0;z-index:25;background:#fff}
body.gloves-on-mode .top #pageTitle{display:block!important;font-size:22px!important;white-space:nowrap}
body.gloves-on-mode .top #who{display:block!important;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:42vw}
body.gloves-on-mode .top .global-search,body.gloves-on-mode .top #notifyBtn,body.gloves-on-mode #backBtn,body.gloves-on-mode .mobilebar{display:none!important}
body.gloves-on-mode .content{padding:12px 12px calc(24px + env(safe-area-inset-bottom))!important;max-width:none!important}
body.gloves-on-mode .grid.g2{grid-template-columns:1fr!important;gap:12px!important}
body.gloves-on-mode .gloves-job{min-height:0!important;padding:16px!important;border-radius:16px!important}
body.gloves-on-mode .gloves-job h3{font-size:21px!important;line-height:1.15!important;margin-bottom:8px!important}
body.gloves-on-mode .job-parts{font-size:13px!important;line-height:1.35!important;margin-top:6px!important}
body.gloves-on-mode .toolbar{display:flex!important;align-items:flex-start!important;gap:10px!important;flex-wrap:wrap!important}
body.gloves-on-mode .toolbar>div:first-child,body.gloves-on-mode .toolbar h2{min-width:0!important;flex:1 1 210px!important}
body.gloves-on-mode .toolbar .btn{flex:0 0 auto!important}
body.gloves-on-mode .gloves-preview-actions{grid-template-columns:1fr 1fr!important;gap:10px!important}
body.gloves-on-mode .gloves-preview-actions .btn{min-height:70px!important;font-size:18px!important;padding:12px 8px!important}
body.gloves-on-mode .activity-grid{grid-template-columns:1fr 1fr!important;gap:10px!important}
body.gloves-on-mode .activity-choice{min-height:70px!important;font-size:16px!important;padding:10px!important}
body.gloves-on-mode .gloves-actions{grid-template-columns:1fr 1fr!important;gap:10px!important}
body.gloves-on-mode .gloves-actions .btn{min-height:82px!important;font-size:20px!important}
body.gloves-on-mode .gloves-menu{gap:6px!important;margin-top:12px!important}
body.gloves-on-mode .gloves-menu .btn{min-height:40px!important;padding:8px 10px!important;font-size:13px!important}
body.gloves-on-mode .gloves-hero{padding:18px 6px!important}
body.gloves-on-mode .gloves-hero h2{font-size:28px!important}
body.gloves-on-mode .gloves-big{min-height:82px!important;font-size:24px!important}
body.gloves-on-mode .gloves-timer{font-size:34px!important}
body.gloves-on-mode .inspect-card::after{font-size:38px!important;letter-spacing:4px!important}
}
@media(max-width:430px){body.gloves-on-mode .top #who{display:none!important}body.gloves-on-mode .gloves-preview-actions,body.gloves-on-mode .activity-grid,body.gloves-on-mode .gloves-actions{grid-template-columns:1fr!important}}


.workshop-now-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.gloves-dashboard-btn{font-weight:900!important}@media(max-width:650px){.workshop-now-actions{width:100%;justify-content:flex-start}.gloves-dashboard-btn{min-height:46px;font-size:15px}.section-title{flex-wrap:wrap}}


body.gloves-on-mode .gloves-attendance{margin:14px auto 4px;max-width:720px}
body.gloves-on-mode .gloves-attendance .btn{min-width:180px;font-size:17px}
@media(max-width:650px){body.gloves-on-mode .gloves-attendance{display:grid;grid-template-columns:1fr;text-align:center}body.gloves-on-mode .gloves-attendance .btn{width:100%}}


@media(min-width:761px){
  body:not(.gloves-on-mode) .sidebar{display:block!important}
  body:not(.gloves-on-mode) .main{margin-left:242px!important;width:auto!important}
  html body.gloves-on-mode.management-gloves .sidebar{display:block!important}
  html body.gloves-on-mode.management-gloves .main{margin-left:242px!important;width:auto!important}
}


@media(min-width:761px){
  body.scrappy-management .sidebar{display:block!important;visibility:visible!important;transform:none!important;left:0!important;opacity:1!important}
  body.scrappy-management .main{margin-left:242px!important;width:auto!important}
}


#inspection_ai_items .qf19-dim{grid-template-columns:34px 1.5fr 1.1fr .8fr .75fr 42px}
#inspection_ai_items .qf19-delete{align-self:end;margin-bottom:1px;width:38px;height:38px;padding:0;border-color:#efb5b5;color:#a61b1b;font-size:18px;font-weight:900}
.qf19-result .pillbox.pass,.qf19-result .pillbox.fail{background:#fff;cursor:pointer;user-select:none}
.qf19-result .pillbox.pass.active{background:#eaf8ee;border-color:#54a86b;color:#176b31;box-shadow:0 0 0 2px rgba(84,168,107,.12)}
.qf19-result .pillbox.fail.active{background:#fff0f0;border-color:#cf5b5b;color:#9f1f1f;box-shadow:0 0 0 2px rgba(207,91,91,.12)}
@media(max-width:760px){#inspection_ai_items .qf19-dim{grid-template-columns:30px 1fr 1fr 42px}#inspection_ai_items .qf19-dim label[data-wide]{grid-column:2/4}#inspection_ai_items .qf19-delete{grid-column:4;grid-row:1}}

/* Release refinements apply to the application shell; generated ISO/print documents retain their own styling. */
:root{--bg:#eff3f7;--soft:#f6f8fb;--line:#dce4ec;--shadow:0 3px 12px rgba(32,57,82,.045)}
body{font-size:14px;-webkit-font-smoothing:antialiased}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible{outline:3px solid #75afe9;outline-offset:3px}
button:disabled{cursor:not-allowed;opacity:.55}
#app .sidebar{background:#fbfcfe;padding-top:22px}
#app .nav{gap:3px}#app .nav button{transition:background .12s ease;min-height:40px}
#app .nav button.active{background:#e3effb;box-shadow:inset 3px 0 var(--blue)}
#app .top{gap:10px;box-shadow:0 2px 8px #263f5910}
#app .top h1{letter-spacing:-.35px;white-space:nowrap;font-size:18px}
#app .content{padding:24px;min-width:0}
#app h2,#app h3{letter-spacing:-.3px}
#app .card{border-radius:14px}
#app .toolbar{gap:12px;margin-bottom:16px}
#app .toolbar .actions{margin-top:0}
#app .metric{padding:20px}#app .metric b{font-size:30px;letter-spacing:-1px}
#app .jobcard{border-radius:12px;transition:border-color .12s ease}#app .jobcard:hover{border-color:#9dbfe0}
#app .tablewrap{overscroll-behavior-x:contain}
#app .tablewrap td .actions{justify-content:flex-start;margin:0}
#app .tabs{scrollbar-width:thin}
#app .btn{min-height:39px}#app .btn.small{min-height:34px}
#app input[type=checkbox],#app input[type=radio],#modal input[type=checkbox],#modal input[type=radio]{width:auto;accent-color:var(--blue)}
#toast{z-index:100010;max-width:min(90vw,520px);white-space:normal}
.scrappy-build{border-top:1px solid var(--line);padding:16px 10px;margin-top:18px;color:var(--muted);font-size:11px}
#menuToggle,#menuBackdrop{display:none}
#scrappy-net-state{position:static!important;flex-shrink:0;white-space:nowrap;font-size:11px!important;padding:5px 8px!important;box-shadow:none!important;background:#e7f4ed!important;color:#216046!important;border-color:#cae5d6!important}
#scrappy-net-state[data-state=offline],#scrappy-net-state[data-state=pending]{background:#fff1d9!important;color:#875207!important;border-color:#ead6ad!important}
#scrappy-net-state[hidden]{display:none!important}
#app .top #who{max-width:175px;font-size:11px}
#app .global-search{min-width:100px}
.scrappy-loading #pageTitle::after{content:' ';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--blue);margin-left:9px;animation:scrappyPulse 1s ease infinite alternate}
@keyframes scrappyPulse{to{opacity:.25}}
#login .loginbox{margin:0;max-width:440px}#login .login-mascot{width:190px;height:auto;right:-48px;bottom:-58px}
#login{overflow-x:clip;padding-bottom:90px}
@media(max-width:1100px){#app .top #who{display:none}#app .top{padding:0 16px}#app .top h1{font-size:16px}}
@media(max-width:760px){
 #app .main,html body.gloves-on-mode.management-gloves .main{margin-left:0!important;width:100%!important}
 #app .top{height:auto;min-height:62px;padding:10px 12px;flex-wrap:wrap;gap:8px}
 #app .top #pageTitle{flex:1;max-width:calc(100vw - 160px);overflow:hidden;text-overflow:ellipsis;font-size:16px}
 #app .top .global-search{display:block!important;flex-basis:100%;order:10;max-width:none;margin:0}
 #app .top #logout{font-size:11px}#app #appFullscreen{display:none}
 #app .top #who{display:none}
 #app #menuToggle{display:inline-flex;align-items:center;justify-content:center;min-width:38px}
 #app .sidebar,html body.gloves-on-mode.management-gloves .sidebar{display:block!important;width:260px;z-index:100002;transform:translateX(-105%);transition:transform .18s ease;padding-bottom:30px}
 body.scrappy-menu-open #app .sidebar{transform:translateX(0)}
 body.scrappy-menu-open #menuBackdrop{display:block;position:fixed;inset:0;background:#15273866;z-index:100001;border:0;width:100%;height:100%}
 #app .content{padding:14px 12px 90px}
 #app .g4,#app .g3,#app .g2{grid-template-columns:minmax(0,1fr)}
 #app .toolbar>h2,#app .toolbar>div:first-child{max-width:100%}
 #app .toolbar .search{max-width:none}
 #app .btn{min-height:44px}#app .btn.small{min-height:38px}
 #app .mobilebar{padding-bottom:env(safe-area-inset-bottom);z-index:30}
 .modal{padding:8px}.modalbox{max-height:calc(100dvh - 16px);border-radius:12px}.modalhead{padding:12px}.modalbody{padding:12px}
 #modal .formgrid{grid-template-columns:1fr}
 #login .login-mascot{right:-12px;bottom:-60px;width:155px;max-width:40vw}
 #scrappy-net-state{font-size:10px!important;min-height:30px!important}
 body.gloves-on-mode #app .global-search{display:none!important}
 body.gloves-on-mode #app .top #menuToggle{display:none}
 body.gloves-on-mode.management-gloves #app .top #menuToggle{display:inline-flex}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
@media print{#menuToggle,#menuBackdrop,#scrappy-net-state,.scrappy-build{display:none!important}}
/* Shared ScrAppy 2.0 workspace components. */
.s2-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:8px 0 24px}.s2-eyebrow{font-size:10px;font-weight:800;letter-spacing:1.4px;color:#698097;text-transform:uppercase}.s2-heading h2{font-size:28px;line-height:1.25;letter-spacing:-1px!important;margin:7px 0 8px}.s2-heading p{color:#69798a;margin:0}.s2-heading-actions{display:flex;gap:8px;flex-shrink:0}
.s2-nav-icon{display:inline-grid;place-items:center;width:22px;margin-right:9px;color:#7b8ea1}.s2-gloves-nav{margin-top:18px!important;background:#e6f0fa!important;color:#0757ad!important}
.s2-workshop-strip{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:11px;padding:11px 15px;background:#fff;margin-bottom:20px;font-size:12px}.s2-workshop-strip>span:last-of-type{color:var(--muted);margin-left:auto}.s2-live-dot{width:8px;height:8px;background:#258566;border-radius:50%}.s2-live-dot.closed{background:#9aa5b1}
.s2-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:30px}.s2-metric{text-align:left;border:1px solid var(--line);border-radius:13px;background:#fff;padding:18px 20px;display:grid;gap:6px;transition:box-shadow .15s}.s2-metric:hover{box-shadow:0 5px 18px #1c416712;border-color:#b1c9e2}.s2-metric>span{font-size:12px;font-weight:650;color:#53677c}.s2-metric>b{font-size:32px;line-height:1.3;color:#153956;letter-spacing:-1px}.s2-metric>small{color:#7b8c9a;font-size:11px}.s2-metric>small span{float:right;color:#0757ad}
.s2-dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:24px}.s2-section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.s2-section-title h3{font-size:15px;margin:0}.s2-text-button{border:0;background:transparent;color:var(--blue);font-size:12px;font-weight:700;padding:4px}.s2-job-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.s2-job{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:13px;background:#fff;padding:17px;color:var(--ink);font:inherit;transition:border-color .15s,box-shadow .15s}.s2-job:hover{border-color:#8eb5dc;box-shadow:0 4px 14px #2246690a}.s2-job-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:13px}.s2-job-top>span:first-child{font-size:11px;font-weight:800;color:#53728e}.s2-job h3{font-size:16px;margin:0 0 5px}.s2-job-description{font-size:13px;margin:0;color:#526a7e}.s2-parts{font-size:12px;margin:8px 0;color:#738292}.s2-job-meta{border-top:1px solid #eef1f5;display:flex;flex-wrap:wrap;gap:8px 13px;margin-top:16px;padding-top:11px;font-size:10px;color:#7d8b98}.s2-job-meta b{color:#465f75;font-weight:650}.s2-job-meta>span:last-child{margin-left:auto}.s2-overdue{color:#b84141!important;font-weight:750}
.s2-status{display:inline-block;border-radius:6px;background:#f0f3f7;color:#6a7c8f;font-size:9px;padding:4px 7px;font-weight:800;white-space:nowrap}.s2-status[data-status='Ready']{background:#e8f4ed;color:#35775b}.s2-status[data-status='In Progress']{background:#e7f0ff;color:#396eb5}.s2-status[data-status*='Inspection']{background:#fff3df;color:#9a702d}.s2-status[data-status='Ready for Delivery']{background:#eeeafa;color:#7153a6}
.s2-person{display:flex;align-items:center;gap:11px;padding:13px 0;border-bottom:1px solid #edf1f5}.s2-person:last-child{border:0}.s2-avatar{display:grid;place-items:center;border-radius:50%;width:34px;height:34px;background:#e8f0f8;color:#3c709e;font-weight:800}.s2-person b{font-size:12px;display:block}.s2-person small{font-size:10px;color:#7d8a97;display:block;margin-top:3px}.s2-rail .card{margin-bottom:24px}.s2-action-list{padding:5px 15px!important}.s2-action-list button{display:flex;justify-content:space-between;gap:10px;width:100%;padding:15px 0;background:transparent;border:0;border-bottom:1px solid #eef2f6;text-align:left;font-size:12px;color:#566c80}.s2-action-list button:last-child{border:0}.s2-action-list b{color:#1d5f9d}
.s2-empty{text-align:center;padding:32px 16px;color:#8997a5;grid-column:1/-1}.s2-empty>span{display:inline-grid;place-items:center;border-radius:50%;width:32px;height:32px;background:#eaf3ee;color:#4c8867}.s2-empty h3{font-size:14px;margin:12px 0 6px;color:#526b80}.s2-empty p{font-size:12px;margin:0}.s2-inline-warning{color:#896323;font-size:12px}
.s2-job-controls{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px}.s2-filter-tabs{display:flex;gap:5px;flex-wrap:wrap}.s2-filter-tabs button{border:0;background:transparent;padding:8px 13px;color:#698094;border-radius:7px;font-size:12px;font-weight:700}.s2-filter-tabs button.active{background:#e7f0fa;color:#185d9c}.s2-list-controls{display:flex;gap:10px;margin-top:12px}.s2-list-controls input{flex:1}.s2-list-controls select{width:110px}
.s2-board{display:grid;grid-template-columns:repeat(5,minmax(220px,1fr));gap:14px;overflow-x:auto;padding-bottom:16px}.s2-column{border-radius:13px;background:#e7edf3;padding:10px;min-height:320px}.s2-column-title{display:flex;align-items:center;justify-content:space-between;padding:4px 4px 14px}.s2-column-title h3{margin:0;font-size:12px}.s2-column-title>span{border-radius:50%;background:#d6e0eb;color:#516b81;padding:2px 7px;font-size:10px}.s2-column .s2-job{margin-bottom:10px;padding:13px}.s2-column .s2-job-top{flex-wrap:wrap}.s2-column .s2-job h3{font-size:14px}.s2-column-empty{padding:40px 8px;text-align:center;color:#8c9cab;font-size:12px}
.s2-worker-home{max-width:610px;margin:30px auto;text-align:center}.s2-worker-label{font-size:11px;letter-spacing:2px;color:#7b91a5;font-weight:800}.s2-worker-home img{object-fit:contain;margin:20px auto 5px}.s2-worker-home h2{font-size:32px;margin:8px 0}.s2-worker-home>p{color:var(--muted);font-size:16px}.s2-start{width:100%;font-size:23px!important;padding:24px!important;border-radius:16px!important;margin:20px 0}.s2-worker-links{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.s2-worker-links .btn{padding:17px!important}.s2-skeleton{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.s2-skeleton div{height:150px;background:#e5edf5;border-radius:13px}
@media(min-width:1550px){#s2JobResults .s2-job-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px){.s2-dashboard-grid{grid-template-columns:1fr}.s2-rail{display:grid;grid-template-columns:1fr 1fr;gap:12px}.s2-rail .s2-section-title{grid-row:1}.s2-heading h2{font-size:25px}}
@media(max-width:760px){.s2-heading{display:block;margin:8px 0 18px}.s2-heading h2{font-size:25px}.s2-heading-actions{margin-top:15px}.s2-heading-actions .btn{flex:1}.s2-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:22px}.s2-metric{padding:14px}.s2-metric>b{font-size:28px}.s2-job-grid{grid-template-columns:1fr}.s2-rail{display:block}.s2-workshop-strip{flex-wrap:wrap;font-size:11px}.s2-workshop-strip .btn{margin-left:auto}.s2-board{grid-template-columns:repeat(5,260px)}.s2-filter-tabs{gap:3px}.s2-filter-tabs button{padding:9px 10px}.s2-worker-home{margin:14px auto}.s2-worker-home h2{font-size:28px}.s2-job-meta{font-size:11px}.s2-heading p{font-size:12px}}

.s2-heading-actions{flex-wrap:wrap;justify-content:flex-end}@media(max-width:760px){.s2-heading-actions{justify-content:stretch}}
/* 2.1: fitting-first cards, quiet detail, generous workshop controls. */
.s2-job h3.s2-job-description{font-size:25px;font-weight:800;line-height:1.2;margin:12px 0 3px;color:var(--text,#172c3b)}
.s21-customer{font-size:12px;color:#607586;margin-top:8px}.s2-job .s2-parts{font-size:13px;min-height:0;margin:0 0 14px;color:#587080}.s21-job-label h2{font-size:30px;margin:12px 0 0}.s21-job-label p{margin:4px 0 12px}.s21-progress{display:flex;flex-wrap:wrap;gap:10px}.s21-progress span{padding:8px 12px;background:#edf1f5;border-radius:8px;color:#607080}.s21-progress .done{background:#e4f3ec;color:#24644c}.s21-profile{max-width:720px}.s21-check{display:flex;align-items:center;gap:12px}.s21-check input{width:22px;height:22px}.s21-profile hr{border:0;border-top:1px solid #dbe3e9;margin:25px 0}.s2-status[data-status="On Hold"]{background:#fff0d8;color:#8a5309}.s2-board{grid-template-columns:repeat(6,minmax(230px,1fr))}.gloves-menu .btn{min-height:48px}#breakState{font-weight:700;color:#9a5c0d}#content input[type=checkbox]{accent-color:#176b67}@media(max-width:700px){.s2-board{grid-template-columns:1fr}.s21-progress{gap:5px}.s21-progress span{font-size:12px;padding:7px}.s2-job h3.s2-job-description{font-size:23px}}
#s21Dock{position:fixed;right:18px;bottom:18px;z-index:80}#s21Dock[hidden],#s21DockMenu[hidden]{display:none}.s21-dock-toggle{border:1px solid #ccd8e2;border-radius:50%;background:white;width:58px;height:58px;box-shadow:0 5px 18px #10263822;cursor:pointer}.s21-dock-toggle img{object-fit:contain}#s21DockMenu{position:absolute;bottom:68px;right:0;width:220px;display:grid;gap:9px;box-shadow:0 8px 28px #10263822}#s21DockMenu .btn{text-align:left}@media(max-width:700px){#s21Dock{bottom:70px;right:12px}.s21-dock-toggle{width:48px;height:48px}.s21-dock-toggle img{width:34px;height:34px}}

/* Quiet stage colours; labels retain meaning without colour perception. */
.s2-job.s2-job-started{background:#edf8ef;border-color:#c0ddc6}.s2-job.s2-job-inspection{background:#edf5ff;border-color:#bfd4ed}.s2-job.s2-job-delivery{background:#fff3e5;border-color:#ecd0ac}
.s2-job.s2-job-started:hover{border-color:#83b890}.s2-job.s2-job-inspection:hover{border-color:#86aad9}.s2-job.s2-job-delivery:hover{border-color:#d8ab70}
.s2-card-hours{font-size:10px;line-height:1.5;text-align:right;color:#456252;margin-top:9px;font-variant-numeric:tabular-nums;white-space:normal}.s2-job-inspection .s2-card-hours{color:#456181}.s2-job-delivery .s2-card-hours{color:#785b36}
