:root{--bg:#0d1117;--side:#090c10;--panel:#151b23;--panel2:#11161d;--line:#27313d;--text:#e8edf3;--muted:#84909e;--accent:#d6ff38;--orange:#ffb44a;--danger:#ff6464}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}aside{position:fixed;inset:0 auto 0 0;width:245px;background:var(--side);border-right:1px solid var(--line);padding:26px 18px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;font-size:20px;font-weight:900;letter-spacing:.5px;margin:0 8px 34px}.brand>span{color:var(--accent);font-size:28px}.brand div>span{color:var(--accent)}.brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:2px;margin-top:3px}nav{display:grid;gap:6px}nav a{color:#aab4c0;text-decoration:none;padding:12px 13px;border-radius:7px;font-weight:650}nav a b{display:inline-block;width:28px;color:#718092}nav a:hover,nav a.active{background:#18211f;color:#fff}nav a.active{border-left:3px solid var(--accent)}nav a.active b{color:var(--accent)}.sidefoot{margin-top:auto;border-top:1px solid var(--line);padding:18px 8px;color:#53606e;font-size:9px;letter-spacing:1.4px}.sidefoot strong{color:#7c8997;font-size:11px}main{margin-left:245px;padding:32px 38px;max-width:1500px}header{display:flex;justify-content:space-between;align-items:start;margin-bottom:28px}h1{font-size:27px;margin:0 0 5px}header p,.muted{color:var(--muted)}header p{margin:0}.status{font:700 10px monospace;color:var(--accent);border:1px solid #334122;padding:8px 11px;border-radius:4px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.metric,.panel,.cratecard{background:linear-gradient(145deg,var(--panel),var(--panel2));border:1px solid var(--line);border-radius:9px}.metric{padding:20px}.metric label,.panel label,.cratecard label{color:#748190;font-size:10px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase}.metric strong{display:block;font-size:27px;margin:9px 0 5px}.metric small{color:var(--muted)}.metric.accent{border-top:2px solid var(--accent)}.metric.accent strong{color:var(--accent)}.grid2{display:grid;grid-template-columns:1.3fr 1fr;gap:16px}.panel{padding:20px;margin-bottom:16px}.panel h2{margin:5px 0 12px}.panelhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.btn{border:0;background:var(--accent);color:#0b1007;padding:10px 14px;border-radius:5px;font-weight:900;font-size:11px;letter-spacing:.4px;text-decoration:none;cursor:pointer}.btn.big{width:100%;padding:14px;margin-top:15px}.btn.ghost{background:#242e38;color:#dbe3eb}.cratechips,.demand{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.cratechips span,.demand span,.cut,.tag{background:#202a33;border:1px solid #303d49;border-radius:4px;padding:6px 9px;font:700 11px monospace}.tag{color:var(--accent);font-size:9px}.progressrow{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:12px 0}.warn{color:var(--orange)}.cratecards{grid-template-columns:repeat(3,1fr)}.cratecard{padding:22px;text-decoration:none;color:inherit}.cratecard:hover{border-color:#53623c}.cratecard h2{margin:10px 0 5px}.cratecard p{color:var(--muted)}.cratecard span{color:var(--accent);font-weight:900;font-size:11px}.inline{display:flex;gap:9px;align-items:center}.formgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:end}.formgrid label{display:grid;gap:7px}.formgrid .wide{grid-column:span 2}input,select{width:100%;background:#0e141a;color:#e8edf3;border:1px solid #303b46;border-radius:5px;padding:10px 11px;outline:none}input:focus,select:focus{border-color:#70834a}.small{width:110px}table{width:100%;border-collapse:collapse}th{text-align:left;color:#72808e;font-size:9px;letter-spacing:1.1px;text-transform:uppercase;padding:10px;border-bottom:1px solid var(--line)}td{padding:12px 10px;border-bottom:1px solid #202832}tbody tr:hover{background:#171e26}.danger{border:0;background:transparent;color:var(--danger);font-size:9px;font-weight:800;cursor:pointer}.addrow{margin-top:18px}.notice{background:#251f12;border:1px solid #54421e;color:#ffc96d;padding:13px 15px;border-radius:7px;margin-bottom:16px}.qtyrow{display:flex!important;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:10px 0}.qtyrow span{color:#dce3ea;font-size:13px;text-transform:none;letter-spacing:0}.qtyrow input{width:100px}.darkpanel{background:#0b1015}.darkpanel h2{color:var(--accent)}.darkpanel p{line-height:1.65}.sectiontitle{margin:28px 0 14px}.mobilebar{display:none}.navscrim{display:none}@media(max-width:900px){body{padding-top:calc(64px + env(safe-area-inset-top))}.mobilebar{display:flex;position:fixed;z-index:1002;top:0;left:0;right:0;height:calc(64px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 16px 0;align-items:center;justify-content:space-between;background:rgba(9,12,16,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.mobilebrand{display:flex;align-items:center;gap:10px;font-size:20px;letter-spacing:.3px}.mobilebrand img{width:36px;height:36px}.mobilebrand span{color:var(--accent)}.menubtn{width:44px;height:44px;border:1px solid #34404c;border-radius:8px;background:#151b23;color:var(--text);font-size:25px;line-height:1;cursor:pointer}aside{position:fixed;z-index:1003;inset:0 auto 0 0;width:min(84vw,320px);padding:calc(22px + env(safe-area-inset-top)) 18px calc(18px + env(safe-area-inset-bottom));transform:translateX(-105%);transition:transform .2s ease;box-shadow:16px 0 45px rgba(0,0,0,.45);overflow-y:auto}body.navopen aside{transform:translateX(0)}.navscrim{display:block;position:fixed;z-index:1001;inset:0;background:rgba(0,0,0,.58)}.navscrim[hidden]{display:none}.brand{margin-bottom:24px}nav{grid-template-columns:1fr;gap:5px}nav a{padding:13px}.sidefoot{display:block;margin-top:24px}main{margin:0;padding:20px 16px calc(24px + env(safe-area-inset-bottom));max-width:none}main>header{display:block;margin-bottom:22px}main>header>div:last-child{margin-top:14px;display:flex!important;flex-wrap:wrap!important;justify-content:flex-start}.cards,.grid2,.cratecards,.formgrid{grid-template-columns:1fr}h1{font-size:26px}.panel{padding:16px}.status{padding:7px 9px}.tag{padding:7px 9px}}
.tablewrap{overflow-x:auto}.clickrow{cursor:pointer}.clickrow:hover{background:#1b242d}.good{color:var(--accent)}.bad{color:var(--danger)}a{color:#b9d2e8}.totalrow{border-top:2px solid #394550;font-size:15px}.yearpick select{width:110px}.legend{display:flex;gap:14px;flex-wrap:wrap}.lg{font-size:10px;color:var(--muted)}.lg:before{content:"";display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px}.lg.rev:before,.bar.rev{background:#6e8ba5}.lg.exp:before,.bar.exp{background:#b27a59}.lg.pro:before,.bar.pro{background:var(--accent)}.monthchart{height:260px;display:grid;grid-template-columns:repeat(12,minmax(44px,1fr));gap:10px;align-items:end;border-top:1px solid var(--line);padding-top:18px;overflow-x:auto}.monthcol{height:225px;display:flex;flex-direction:column;justify-content:end;align-items:center;min-width:44px}.bars{height:170px;width:100%;display:flex;align-items:end;justify-content:center;gap:3px;border-bottom:1px solid #33404c}.bar{display:block;width:23%;min-height:1px;border-radius:3px 3px 0 0}.monthcol b{font-size:10px;margin-top:7px}.monthcol small{font-size:8px;color:var(--muted);margin-top:3px}.formgrid.compact{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.formgrid.compact{grid-template-columns:1fr}.monthchart{grid-template-columns:repeat(12,52px)}}
.cards.three{grid-template-columns:repeat(3,1fr)}h3{margin:22px 0 10px;color:#cbd5df}.panel input[type=date]{min-width:140px}@media(max-width:900px){.cards.three{grid-template-columns:1fr}}
.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.actions form{margin:0}.editset{display:contents;border:0;padding:0;margin:0}.editset:disabled input,.editset:disabled select{opacity:.72;cursor:not-allowed}.purchasegroup{border:1px solid var(--line);border-radius:7px;margin:9px 0;background:#11171e}.purchasegroup summary{cursor:pointer;padding:14px 16px;display:flex;justify-content:space-between}.purchasegroup summary span{color:var(--muted);font-size:11px}.purchasegroup table{margin:0 12px 12px;width:calc(100% - 24px)}
.cutgrid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:14px}.cutgroup{background:#10161c;border:1px solid var(--line);border-radius:7px;padding:12px 15px}.cutgroup h3{margin:4px 0 8px;color:var(--accent)}.num{text-align:right}.shopplan{border-top:2px solid var(--accent)}@media(max-width:900px){.cutgrid{grid-template-columns:1fr}}

.kiosk{min-height:100vh;background:var(--bg)}.kioskbox{max-width:520px;margin:8vh auto;padding:20px}.kioskbrand{font-size:24px;font-weight:900;letter-spacing:.6px;margin-bottom:24px}.kioskbrand span{color:var(--accent)}.kioskbrand small{display:block;color:var(--muted);font-size:9px;letter-spacing:2px;margin-top:4px}.kiosk label{display:grid;gap:7px;margin:14px 0;color:#9aa7b4;font-size:11px;font-weight:800}.shopwrap{max-width:1050px;margin:0 auto;padding:28px}.shopwrap header{margin-bottom:20px}@media(max-width:700px){.shopwrap{padding:16px}.kioskbox{margin:2vh auto}.shopwrap .cards{grid-template-columns:1fr}}
.subrow td{padding-top:5px;padding-bottom:5px;font-size:11px;background:#10161c}

/* ShopHand V4.8.2 employee mobile/PWA layout */
.emobilebar,.emenu,.emenuscrim{display:none}.employeeprimary{background:linear-gradient(145deg,var(--panel),var(--panel2));border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:9px;padding:20px;margin-bottom:16px}.employeeprimary label,.employeetime label{color:#748190;font-size:10px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase}.estatusline{display:flex;align-items:baseline;gap:12px;margin-top:7px}.estatusline strong{font-size:26px}.estatusline span{color:var(--muted)}.employeetime{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}.employeetime>div{background:linear-gradient(145deg,var(--panel),var(--panel2));border:1px solid var(--line);border-radius:9px;padding:18px 20px}.employeetime strong{display:block;font-size:24px;margin-top:7px}.employeeplanbtn{display:inline-block}.emenu{background:var(--side)}
@media(max-width:700px){
 body.employeeapp{padding-top:calc(58px + env(safe-area-inset-top));overflow-x:hidden}
 .employeeapp .emobilebar{display:flex;position:fixed;z-index:1102;top:0;left:0;right:0;height:calc(58px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 14px 0;align-items:center;justify-content:space-between;background:rgba(9,12,16,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}
 .emobilebrand{display:flex;align-items:center;gap:9px;font-size:18px;text-transform:uppercase;letter-spacing:.3px}.emobilebrand img{width:34px;height:34px;border-radius:8px}.emobilebrand span{color:var(--accent)}
 .emenubtn{width:42px;height:42px;border:1px solid #34404c;border-radius:8px;background:#151b23;color:var(--text);font-size:23px;line-height:1;cursor:pointer}
 .employeeapp .emenu{display:block;position:fixed;z-index:1104;top:0;right:0;bottom:0;width:min(82vw,310px);padding:calc(20px + env(safe-area-inset-top)) 18px calc(18px + env(safe-area-inset-bottom));transform:translateX(105%);transition:transform .2s ease;box-shadow:-16px 0 45px rgba(0,0,0,.45)}
 .employeeapp.emenuopen .emenu{transform:translateX(0)}.employeeapp .emenuscrim{display:block;position:fixed;z-index:1103;inset:0;background:rgba(0,0,0,.58)}.employeeapp .emenuscrim[hidden]{display:none}
 .emenuhead{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:15px}.emenuhead .kioskbrand{font-size:20px;margin:0}.emenuclose{border:0;background:transparent;color:var(--text);font-size:30px;line-height:1}.emenuuser{display:grid;gap:5px;padding:22px 4px}.emenuuser small{color:var(--muted);font-size:9px;letter-spacing:1.5px}.emenuuser strong{font-size:22px}.emenulogout{width:100%;padding:13px}
 .employeeapp .shopwrap{padding:14px 14px calc(22px + env(safe-area-inset-bottom));max-width:none}
 .employeeapp .employeehero{margin:0 0 12px;display:block}.employeeapp .employeehero .kioskbrand,.employeeapp .employeehero>form{display:none}.employeeapp .employeehero h1{font-size:23px;margin:2px 0 2px}.employeeapp .employeehero p{font-size:13px;margin:0}
 .employeeprimary{padding:14px 15px;margin-bottom:12px}.employeeprimary label{font-size:9px}.estatusline{justify-content:space-between;align-items:center;margin-top:4px}.estatusline strong{font-size:23px}.estatusline span{font-size:12px}.employeeprimary .btn.big{margin-top:12px;padding:14px;font-size:13px}
 .employeeapp .employeeproduction{padding:15px;margin-bottom:12px}.employeeproduction .panelhead{align-items:flex-start;margin-bottom:6px}.employeeproduction h2{font-size:21px;margin:4px 0 2px}.employeeproduction p{margin:8px 0 12px}.employeeproduction .tag{font-size:8px;padding:6px 7px;white-space:nowrap}.employeeplanbtn{display:block;text-align:center;padding:13px 10px;font-size:11px}
 .employeetime{gap:10px;margin-bottom:12px}.employeetime>div{padding:13px 14px}.employeetime label{font-size:9px}.employeetime strong{font-size:20px;margin-top:4px}
 .employeeapp .employeepunches{padding:15px;margin-bottom:0}.employeepunches h2{font-size:20px;margin:4px 0 8px}.employeepunches .tablewrap{overflow-x:auto}.employeepunches th{padding:8px 6px}.employeepunches td{padding:10px 6px;font-size:12px;white-space:nowrap}
}


/* ShopHand V4.8.3 mobile shell reset: explicit classes prevent kiosk/admin collisions. */
.mobilenavaccount{display:none}
@media(max-width:900px){
 body:not(.kiosk){padding-top:calc(58px + env(safe-area-inset-top))}
 body:not(.kiosk) .mobilebar{display:flex!important;height:calc(58px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 14px 0;z-index:1202}
 body:not(.kiosk) .mobilebrand{font-size:19px;line-height:1}
 body:not(.kiosk) .mobilebrand img{display:none!important;width:0!important;height:0!important}
 body:not(.kiosk) .menubtn{width:44px;height:44px;flex:0 0 44px}
 body:not(.kiosk) .adminnav{display:flex!important;position:fixed!important;z-index:1204!important;top:0!important;bottom:0!important;left:0!important;right:auto!important;width:min(86vw,320px)!important;height:100dvh!important;margin:0!important;padding:calc(20px + env(safe-area-inset-top)) 18px calc(18px + env(safe-area-inset-bottom))!important;transform:translate3d(-110%,0,0)!important;transition:transform .22s ease!important;overflow-y:auto!important;background:var(--side)!important;visibility:visible!important}
 body.navopen:not(.kiosk){overflow:hidden}
 body.navopen:not(.kiosk) .adminnav{transform:translate3d(0,0,0)!important}
 body:not(.kiosk) .adminnav nav{display:grid!important;grid-template-columns:1fr!important;gap:5px!important}
 body:not(.kiosk) .adminnav nav a{display:block!important;width:100%!important}
 body:not(.kiosk) .navscrim{z-index:1203!important}
 body:not(.kiosk) main{margin-left:0!important;padding:16px 14px calc(24px + env(safe-area-inset-bottom))!important;width:100%!important}
 body:not(.kiosk) main>header{margin-bottom:16px!important}
 body:not(.kiosk) main>header>div:last-child{display:none!important}
 body:not(.kiosk) .mobilenavaccount{display:grid;gap:5px;border-top:1px solid var(--line);padding:16px 8px 4px;margin-top:14px}
 body:not(.kiosk) .mobilenavaccount small{color:var(--muted);font-size:9px;letter-spacing:1.4px}
 body:not(.kiosk) .mobilenavaccount strong{font-size:17px}
 body:not(.kiosk) .mobilenavaccount span{color:var(--muted);font-size:11px}
 body:not(.kiosk) .mobilenavaccount form{margin:8px 0 0}
 body:not(.kiosk) .mobilenavaccount .btn{width:100%;min-height:44px}
}

/* ShopHand V4.8.4: clean employee mobile shell. */
@media(max-width:900px){
 body.employeeapp{padding-top:calc(58px + env(safe-area-inset-top))!important;overflow-x:hidden!important}
 .employeeapp .emobilebar{display:flex!important;position:fixed!important;z-index:1302!important;top:0!important;left:0!important;right:0!important;height:calc(58px + env(safe-area-inset-top))!important;padding:env(safe-area-inset-top) 14px 0!important;align-items:center!important;justify-content:space-between!important;background:#090c10!important;border-bottom:1px solid var(--line)!important}
 .employeeapp .emobilebrand{display:flex!important;align-items:center!important;font-size:19px!important;line-height:1!important;letter-spacing:.2px!important;text-transform:none!important}
 .employeeapp .emobilebrand strong{font-size:19px!important;line-height:1!important}.employeeapp .emobilebrand span{color:var(--accent)!important}
 .employeeapp .emenubtn{display:block!important;width:44px!important;height:44px!important;min-width:44px!important;padding:0!important;border:1px solid #34404c!important;border-radius:8px!important;background:#151b23!important;color:var(--text)!important;font-size:23px!important;line-height:42px!important;text-align:center!important}
 .employeeapp .emenu{display:block!important;position:fixed!important;z-index:1304!important;top:0!important;right:0!important;bottom:0!important;left:auto!important;width:min(82vw,310px)!important;height:100dvh!important;margin:0!important;padding:calc(20px + env(safe-area-inset-top)) 18px calc(18px + env(safe-area-inset-bottom))!important;transform:translate3d(110%,0,0)!important;transition:transform .2s ease!important;background:var(--side)!important;overflow-y:auto!important;visibility:visible!important}
 body.employeeapp.emenuopen{overflow:hidden!important}.employeeapp.emenuopen .emenu{transform:translate3d(0,0,0)!important}
 .employeeapp .emenuscrim{display:block!important;position:fixed!important;z-index:1303!important;inset:0!important;background:rgba(0,0,0,.58)!important}.employeeapp .emenuscrim[hidden]{display:none!important}
 .employeeapp .shopwrap{width:100%!important;max-width:none!important;margin:0!important;padding:14px 14px calc(22px + env(safe-area-inset-bottom))!important}
 .employeeapp .employeehero{display:block!important;margin:0 0 12px!important;padding:0!important}.employeeapp .employeehero h1{font-size:28px!important;line-height:1.1!important;margin:0 0 5px!important}.employeeapp .employeehero p{font-size:14px!important;line-height:1.35!important;margin:0!important;color:var(--muted)!important}
 .employeeapp .employeeprimary{padding:14px 15px!important;margin:0 0 12px!important}.employeeapp .employeestatus label{display:block!important;margin:0 0 6px!important}.employeeapp .estatusline{display:flex!important;justify-content:space-between!important;align-items:center!important;gap:14px!important;margin:0!important}.employeeapp .estatusline strong{font-size:20px!important;line-height:1.15!important;white-space:nowrap!important}.employeeapp .estatusline span{font-size:12px!important;line-height:1.2!important;text-align:right!important;color:var(--muted)!important}.employeeapp .employeeprimary form{margin:0!important}.employeeapp .employeeprimary .btn.big{width:100%!important;min-height:48px!important;margin-top:12px!important;padding:13px 14px!important}
 .employeeapp .employeeproduction{padding:15px!important;margin:0 0 12px!important}.employeeapp .employeeproduction .panelhead{display:flex!important;justify-content:space-between!important;align-items:flex-start!important;gap:12px!important}.employeeapp .employeeproduction h2{font-size:22px!important;line-height:1.15!important}.employeeapp .employeeproduction p{font-size:15px!important}.employeeapp .employeeplanbtn{display:block!important;width:100%!important;min-height:46px!important;padding:13px 10px!important;text-align:center!important}
 .employeeapp .employeetime{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;margin:0 0 12px!important}.employeeapp .employeetime>div{padding:12px 14px!important}.employeeapp .employeetime strong{font-size:18px!important}
 .employeeapp .employeepunches{padding:15px!important;margin:0!important}
}

/* ShopHand V4.8.5 — consolidated Owner + Employee mobile/PWA polish. */
@media(max-width:900px){
 html,body{max-width:100%;overflow-x:hidden}
 body:not(.kiosk) main,body:not(.kiosk) main>*,.panel,.metric,.grid2,.cards,.formgrid,.actions,.panelhead,.tablewrap{min-width:0;max-width:100%}
 body:not(.kiosk) main{padding:14px 14px calc(28px + env(safe-area-inset-bottom))!important}
 body:not(.kiosk) main>header{margin-bottom:14px!important}
 body:not(.kiosk) main>header h1{font-size:27px;line-height:1.12}
 body:not(.kiosk) main>header p{font-size:14px;line-height:1.4;margin-top:6px}
 .panel{padding:15px;margin-bottom:14px;overflow:hidden}
 .metric{padding:16px}.metric strong{font-size:25px}
 .panelhead{gap:10px;flex-wrap:wrap;align-items:flex-start}.panelhead>div{min-width:0}.panelhead h2{line-height:1.18}
 .panelhead .btn{max-width:100%;text-align:center}
 .cards,.cards.three{gap:10px;margin-bottom:14px}
 .grid2{gap:12px}
 .formgrid,.formgrid.compact{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:11px!important}
 .formgrid .wide{grid-column:auto!important}.formgrid>*{min-width:0!important}
 input,select{min-width:0;max-width:100%;font-size:16px;min-height:44px}.small{width:100%;max-width:none}
 .btn{min-height:44px;padding:11px 13px}.actions{gap:7px}.actions .btn{white-space:normal;text-align:center}
 .inline{flex-wrap:wrap;align-items:stretch}.inline form{flex:1 1 145px}.inline .btn{width:100%}
 .tablewrap{width:100%;overflow-x:auto!important;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
 .tablewrap table{width:max-content;min-width:100%;max-width:none}
 th,td{white-space:normal;vertical-align:middle}
 td input,td select{min-width:105px}
 .cut{display:inline-flex!important;align-items:center;justify-content:center;white-space:nowrap;margin:2px 2px 2px 0;padding:6px 8px}
 td .cut{vertical-align:middle}
 .demand{gap:6px;margin-top:12px}.demand span{white-space:nowrap}
 .progressrow{gap:12px;align-items:flex-start}.progressrow span{min-width:0}.progressrow b{text-align:right;overflow-wrap:anywhere}
 .purchasegroup{max-width:100%;overflow:hidden}.purchasegroup summary{gap:10px;flex-wrap:wrap}.purchasegroup table{display:block;max-width:calc(100% - 24px);overflow-x:auto;-webkit-overflow-scrolling:touch}
 .cutgrid{grid-template-columns:minmax(0,1fr)!important}.cutgroup{min-width:0;overflow:hidden}
 .notice{line-height:1.45}
 .monthchart{height:190px!important;grid-template-columns:repeat(12,48px)!important;gap:7px;padding-top:12px}
 .monthcol{height:160px!important;min-width:48px}.bars{height:112px!important}.monthcol b{font-size:11px}.monthcol small{font-size:8px}
 .legend{gap:9px}.lg{font-size:9px}
 .yearpick{width:100%}.yearpick select{width:100%}
 .qtyrow{gap:12px}.qtyrow input{width:96px!important;flex:0 0 96px}
 .sectiontitle{margin:22px 0 12px}
 body:not(.kiosk) .adminnav{width:min(80vw,300px)!important}
 body:not(.kiosk) .adminnav nav a{min-height:44px;display:flex!important;align-items:center!important}
 body:not(.kiosk) .brand{margin-bottom:18px}
}
@media(max-width:520px){
 .panelhead h2{font-size:21px}.progressrow{font-size:13px}
 .tag{white-space:nowrap}
}

/* Employee app: same shell proportions, slightly denser task-first layout. */
@media(max-width:900px){
 .employeeapp .emobilebar{height:calc(58px + env(safe-area-inset-top))!important}
 .employeeapp .emenu{width:min(78vw,290px)!important}
 .employeeapp .shopwrap{padding:12px 14px calc(24px + env(safe-area-inset-bottom))!important}
 .employeeapp .employeehero{margin-bottom:10px!important}.employeeapp .employeehero h1{font-size:26px!important}.employeeapp .employeehero p{font-size:13px!important}
 .employeeapp .employeeprimary{padding:13px 14px!important;margin-bottom:10px!important}.employeeapp .employeeprimary .btn.big{min-height:46px!important;margin-top:10px!important}
 .employeeapp .employeeproduction{padding:14px!important;margin-bottom:10px!important}.employeeapp .employeeproduction h2{font-size:21px!important}.employeeapp .employeeproduction .panelhead{margin-bottom:4px!important}.employeeapp .employeeproduction p{margin:6px 0 10px!important}
 .employeeapp .employeetime{gap:8px!important;margin-bottom:10px!important}.employeeapp .employeetime>div{padding:11px 13px!important}
 .employeeapp .employeepunches{padding:14px!important}.employeeapp .employeepunches .tablewrap{overflow-x:hidden!important}.employeeapp .employeepunches table{width:100%!important;min-width:0!important}.employeeapp .employeepunches th,.employeeapp .employeepunches td{padding:9px 5px!important;font-size:11px!important;white-space:nowrap!important}
}

/* Shop-floor production plan stays readable on phones without widening the viewport. */
@media(max-width:700px){
 body.kiosk:not(.employeeapp){overflow-x:hidden}.shopwrap{max-width:100%;overflow:hidden;padding:14px!important}.shopwrap header{display:block}.shopwrap header .actions{margin-top:10px}
 .shopwrap .panel{max-width:100%;overflow:hidden}.shopwrap .tablewrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.shopwrap .tablewrap table{width:max-content;min-width:100%}
 .shopwrap .progressrow{gap:10px;flex-wrap:wrap}.shopwrap .progressrow b{text-align:left}.shopwrap .cut{white-space:nowrap}
}

/* ShopHand V4.8.7 — employee rollout + final mobile cleanup */
.rollout .enrolllink{display:flex;gap:8px;margin:12px 0}.rollout .enrolllink input{flex:1}.enrollhistory{display:grid;gap:8px;margin-top:14px}.enrollrow,.pendingrow{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px;border:1px solid var(--line);border-radius:10px;background:#0d1218}.enrollrow>div,.pendingrow>div:first-child{display:grid;gap:3px}.enrollrow small,.pendingrow small,.pendingrow span{color:var(--muted)}.pendingrow .actions{display:flex;gap:8px}.badtag{border-color:#8a3a3a!important;color:#ff9a9a!important}.punchcorrect td{padding-top:0!important}.punchcorrect summary{cursor:pointer;color:var(--accent);font-size:10px;font-weight:800;letter-spacing:1px}.punchform{display:grid;grid-template-columns:120px 120px 1fr auto;gap:8px;align-items:end;margin-top:10px}.punchform label{font-size:10px;color:var(--muted)}
.onboardwrap{width:min(560px,calc(100% - 28px));margin:0 auto;padding:calc(28px + env(safe-area-inset-top)) 0 calc(28px + env(safe-area-inset-bottom))}.onboardwrap h1{margin-top:24px}.onboardsteps{display:grid;gap:10px;margin:22px 0}.onboardsteps>div{display:flex;gap:12px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.onboardsteps b{display:grid;place-items:center;flex:0 0 32px;height:32px;border-radius:50%;background:var(--accent);color:#071007}.onboardsteps span{display:grid;gap:4px}.onboardsteps small{color:var(--muted);line-height:1.4}.onboardwrap .btn{width:100%}
@media(max-width:700px){
 .rollout .enrolllink{display:grid}.enrollrow,.pendingrow{align-items:stretch;flex-direction:column}.pendingrow .actions{display:grid;grid-template-columns:1fr 1fr}.pendingrow .actions form,.pendingrow .actions button{width:100%}.punchform{grid-template-columns:1fr 1fr}.punchform label:nth-child(3),.punchform .btn{grid-column:1/-1}
 /* Expense and payroll history become true mobile records instead of desktop tables. */
 body:not(.kiosk) table tbody tr:has(td[data-label]){display:block;border:1px solid var(--line);border-radius:10px;margin:0 0 12px;padding:10px;background:#0d1218}
 body:not(.kiosk) table tbody tr:has(td[data-label]) td{display:grid!important;grid-template-columns:92px minmax(0,1fr);gap:8px;align-items:center;border:0!important;padding:6px 0!important;white-space:normal!important;width:100%!important}
 body:not(.kiosk) table tbody tr:has(td[data-label]) td:before{content:attr(data-label);color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.8px;text-transform:uppercase}
 body:not(.kiosk) table:has(td[data-label]) thead{display:none}
 body:not(.kiosk) table:has(td[data-label]){display:block!important;width:100%!important;min-width:0!important}
 body:not(.kiosk) table:has(td[data-label]) tbody{display:block;width:100%}
 body:not(.kiosk) table tbody tr:has(td[data-label]) input,body:not(.kiosk) table tbody tr:has(td[data-label]) select{width:100%!important;min-width:0!important}
 body:not(.kiosk) table tbody tr:has(td[data-label]) td.actions{grid-template-columns:92px 1fr 1fr!important}.actions form{min-width:0}
}
/* V4.8.8 employee launch polish */
.attendancefilters{display:flex;gap:8px;align-items:center}.attendancenav{display:flex;gap:8px;margin:10px 0 14px}.installhelp{display:grid;gap:4px;margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#0d1218}.installhelp em{font-style:normal;color:var(--accent);font-size:11px;font-weight:800}.install-other{border:0;background:none;color:var(--accent);padding:8px 0 0;font:inherit;font-size:11px;text-align:left}.installbutton{margin-top:10px}.installhelp[hidden],.install-other[hidden],.installbutton[hidden]{display:none!important}
@media(max-width:900px){.attendancepanel .panelhead{align-items:flex-start}.attendancefilters{width:100%;display:grid;grid-template-columns:1fr 1.4fr}.attendancefilters select,.attendancefilters input{width:100%}.attendancenav{display:grid;grid-template-columns:1fr 1fr 1fr}.attendancenav .btn{padding:10px 5px;font-size:9px}.onboarding .onboardwrap{padding-top:max(18px,env(safe-area-inset-top))}}
