:root{
  --fhr-navy:#232d44;
  --fhr-blue:#47668a;
  --fhr-blue-dark:#3b5573;
  --fhr-gold:#be955d;
  --fhr-sand:#cbc7b1;
  --fhr-soft:#dee5ee;
  --fhr-bg:#f2f4f7;
  --fhr-line:#d0d5dd;
  --fhr-text:#101828;
  --fhr-muted:#667085;
  --warning-orange:#f28c28;
  --danger:#b42318;
  --success:#0f7a35;
  --card:#fff;
  --shadow:0 2px 4px -2px rgba(16,24,40,.06),0 4px 8px -2px rgba(16,24,40,.1);
  --shadow-lg:0 8px 24px rgba(16,24,40,.14);
  --radius:8px;
}
*{box-sizing:border-box}
html{min-height:100%}
body{margin:0;min-height:100%;background:var(--fhr-bg);color:var(--fhr-text);font-family:"proxima-nova",Inter,Arial,Helvetica,sans-serif;font-size:16px;line-height:1.45}
a{color:var(--fhr-blue-dark);font-weight:650}a:hover{color:var(--fhr-gold)}
h1,.h1{color:var(--fhr-navy);font-size:36px;line-height:44px;margin:0 0 18px;font-weight:700}
h2,.h2{color:var(--fhr-navy);font-size:28px;line-height:36px;margin:0 0 14px;font-weight:700}
h3,.h3{color:var(--fhr-navy);font-size:22px;line-height:30px;margin:0 0 12px;font-weight:700}
p{color:#424242}.muted{color:var(--fhr-muted)}
.container{max-width:1280px;margin:0 auto;padding:28px 24px 36px}
/* FHR-style header */
.topbar{display:flex;align-items:center;gap:18px;justify-content:space-between;background:linear-gradient(27deg,var(--fhr-blue) 0%,var(--fhr-navy) 100%);color:#fff;padding:14px 24px;position:sticky;top:0;z-index:20;box-shadow:var(--shadow-lg);border-bottom:4px solid var(--fhr-gold)}
.brand-wrap{display:flex;align-items:center;gap:12px;min-width:max-content}.brand{font-size:20px;letter-spacing:.01em;font-weight:800;color:#fff;text-decoration:none;white-space:nowrap}.brand:hover{color:#fff;text-decoration:none}.hamburger{display:none;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.36);border-radius:var(--radius);font-weight:800;padding:7px 11px;line-height:1;box-shadow:none}.hamburger:hover{background:rgba(255,255,255,.14)}
.topnav{display:flex;align-items:center;gap:10px;flex:1;justify-content:flex-start}.nav-group{position:relative}.nav-group>button{background:rgba(0,0,0,.10);color:#fff;border:1px solid rgba(255,255,255,.20);border-radius:var(--radius);padding:9px 12px;cursor:pointer;font-weight:700;box-shadow:none}.nav-group:hover>button,.nav-group:focus-within>button{background:rgba(255,255,255,.14);border-color:var(--fhr-sand)}.nav-group .menu{display:none;position:absolute;left:0;top:calc(100% + 6px);min-width:220px;background:#fff;border:1px solid var(--fhr-line);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:8px;z-index:30}.nav-group:hover .menu,.nav-group:focus-within .menu{display:block}.nav-group .menu a{display:block;padding:10px 12px;color:var(--fhr-navy);text-decoration:none;border-radius:7px;font-weight:650}.nav-group .menu a:hover{background:var(--fhr-soft);color:var(--fhr-blue-dark)}.user-pill{white-space:nowrap;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:7px 11px;font-size:13px}.user-pill span{margin-left:6px;color:var(--fhr-sand);font-weight:800;text-transform:uppercase;font-size:11px;letter-spacing:.05em}
.poc-banner{background:var(--fhr-sand);border-bottom:1px solid rgba(35,45,68,.15);color:var(--fhr-navy);padding:10px 24px;font-weight:750;text-align:center}.app-footer{text-align:center;color:var(--fhr-muted);font-size:12px;padding:24px 16px;border-top:1px solid #e6e8ec;background:#fff;margin-top:20px}
/* Cards and sections */
.card,.notice,.public-card,.hero-card{background:var(--card);border:1px solid #eaecf0;border-radius:var(--radius);padding:22px;margin:16px 0;box-shadow:var(--shadow)}.card h1,.card h2,.notice h2{margin-top:0}.notice{border-left:6px solid var(--fhr-gold);background:#fffaf2}.notice.warn{border-left-color:var(--warning-orange)}.summary-card{border-top:5px solid var(--fhr-gold)}.danger-zone{border-left:6px solid var(--danger)!important}.danger,.btn.danger,button.danger{background:var(--danger)!important;color:#fff}.bad{color:var(--danger);font-weight:800}.center{text-align:center}
/* Forms */
form{gap:16px}label{display:block;color:#344054;font-size:14px;font-weight:650;line-height:20px}input,select,textarea{width:100%;max-width:100%;margin-top:6px;display:block;padding:11px 14px;border-radius:var(--radius);border:1px solid var(--fhr-line);background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.05);font:inherit;color:var(--fhr-text)}textarea{min-height:96px}input:focus,select:focus,textarea:focus{outline:2px solid rgba(190,149,93,.35);border-color:var(--fhr-gold)}input[type=checkbox],input[type=radio]{width:auto;display:inline-block;margin-top:0;margin-right:6px;box-shadow:none}.formgrid,.edit-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.formgrid .full,.edit-form .wide,.wide{grid-column:1/-1}.inline-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.inline-form input{width:auto;min-width:220px}.checkline{font-weight:750}
button,.btn,input[type=submit]{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--fhr-blue);color:#fff;border:1px solid var(--fhr-blue);border-radius:var(--radius);padding:10px 16px;text-decoration:none;cursor:pointer;font-weight:750;line-height:1.25;box-shadow:0 1px 2px rgba(16,24,40,.05);transition:background-color .18s ease,transform .18s ease,border-color .18s ease}button:hover,.btn:hover,input[type=submit]:hover{background:var(--fhr-blue-dark);border-color:var(--fhr-blue-dark);color:#fff;text-decoration:none}.btn.secondary,button.secondary{background:#fff;color:var(--fhr-blue-dark);border-color:var(--fhr-line)}.btn.secondary:hover,button.secondary:hover{background:var(--fhr-soft);color:var(--fhr-navy)}.small,.tiny{padding:6px 9px;font-size:12px}.tiny{font-size:.72rem;padding:.22rem .38rem;margin-top:.2rem}
/* Tables */
table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);margin:16px 0;border:1px solid #eaecf0}th,td{border-bottom:1px solid #eaecf0;padding:12px 14px;text-align:left;vertical-align:top}th{background:var(--fhr-blue-dark);color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.04em;font-weight:800}tr:nth-child(even) td{background:#f9fafb}tr:hover td{background:#eef3f8}.badrow td{background:#fff0f0!important;border-bottom-color:#f0c2c2}.oldval{color:#9b1c1c;text-decoration:line-through}.newval{color:var(--success);font-weight:800}.hidden{display:none!important}.select-all{font-weight:800}
.filters,.public-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;align-items:end}.filter-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:end}.mapping-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.mapping-grid div{background:#f8fafc;border:1px solid #e1e7ed;border-radius:var(--radius);padding:12px}.pill{display:inline-block;background:var(--fhr-soft);color:var(--fhr-navy);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:800;margin:2px}.pill.new{background:#dff4e6;color:#115d2a}.pill.danger{background:#f8d7da;color:#842029}.pill.gold{background:#fff5db;color:#8a5a00}
/* Public homepage / site list */
.public-body{background:#f6f7f9;color:var(--fhr-text)}.welcome,.site-page{max-width:1192px;margin:0 auto;padding:24px}.hero-card{position:relative;overflow:hidden;background:linear-gradient(27deg,rgba(71,102,138,.96) 0%,rgba(35,45,68,.98) 100%);color:#fff;padding:42px 34px}.hero-card h1,.hero-card p{color:#fff}.hero-card h1{font-size:48px;line-height:56px}.brand-bar{width:100px;height:4px;background:var(--fhr-gold);border-radius:0;margin-bottom:24px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.site-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.site-tile{display:block;text-decoration:none;color:var(--fhr-navy);border:1px solid #eaecf0;border-radius:var(--radius);padding:20px;background:#fff;box-shadow:var(--shadow);transition:all .18s ease}.site-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);background:var(--fhr-soft);text-decoration:none}.site-tile b{display:block;color:var(--fhr-blue-dark);font-size:18px}.site-tile span{display:block;color:var(--fhr-muted);margin-top:6px}
/* Label cards */
.phone-label{max-width:520px;margin:16px auto;background:#fff;padding:18px;border:1px solid var(--fhr-line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.warning{background:var(--warning-orange);font-weight:900;font-size:42px;text-align:center;padding:10px;margin:-18px -18px 16px;border-radius:var(--radius) var(--radius) 0 0;color:#111;display:flex;align-items:center;justify-content:center;gap:10px}.warning span{letter-spacing:.03em}.phone-label h2,.phone-label h3{text-align:center;margin:6px}.label-grid{display:grid;grid-template-columns:40% 60%;gap:8px;font-size:22px;margin-top:14px}.label-grid b{text-align:right;color:var(--fhr-navy)}.label-grid span{padding-left:12px}.site-label-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:20px;align-items:start}.site-label-item{background:transparent}.site-label-item .phone-label{margin:0 auto}.label-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.mini-label{display:block;text-decoration:none;color:#111;background:#fff;border:2px solid #111;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.mini-label>b{display:block;font-size:20px;padding:12px 14px 4px}.mini-grid{display:grid;grid-template-columns:120px 1fr;gap:4px 8px;padding:8px 14px 14px}.mini-grid span{font-weight:700}
/* Login */
.login{max-width:460px;margin:60px auto;background:#fff;border:1px solid #eaecf0;border-radius:12px;box-shadow:var(--shadow-lg);padding:28px}.login h1{margin-bottom:8px}.login form{display:grid;gap:12px}.login .app-footer{border-top:none;background:transparent;margin-top:20px;padding-bottom:0}
/* Stable QR / label options */
.two-col{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:1rem;align-items:start}.preview-panel{position:sticky;top:86px}.qr-label-preview{width:336px;height:224px;border:1px solid var(--fhr-line);border-radius:10px;background:#fff;box-shadow:var(--shadow);overflow:hidden;position:relative}.preview-warning{height:70px;background:var(--warning-orange);display:none;align-items:center;justify-content:center;gap:12px;font-weight:900;font-size:28px;color:#071825}.qr-label-preview.with-warning .preview-warning{display:flex}.preview-warning .tri{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;background:#fff;border:3px solid #071825;clip-path:polygon(50% 0,100% 100%,0 100%);font-size:18px;padding-top:8px}.preview-body{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:18px}.qr-label-preview.with-warning .preview-body{height:154px}.fake-qr{width:88px;height:88px;background:repeating-linear-gradient(45deg,#111 0 6px,#fff 6px 12px);border:8px solid #fff;outline:2px solid #111;margin-bottom:8px}.qr-label-preview.with-warning .fake-qr{width:74px;height:74px}.preview-name{font-weight:800;font-size:13px;text-align:center}.preview-subtitle{font-size:10px}.preview-url{font-size:8px;color:#555;max-width:95%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Real 4x6 print preview */
.print-preview-panel{margin-top:18px}.print-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px}.print-preview-card{position:relative;background:#fff;border:1px solid var(--fhr-line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden;aspect-ratio:6/4;max-width:520px}.preview-warning-header{display:none;height:31.25%;background:var(--warning-orange);align-items:center;justify-content:center;gap:18px;color:#111}.print-preview-card.with-warning .preview-warning-header{display:flex}.preview-triangle{display:inline-flex;align-items:center;justify-content:center;width:38px;height:34px;border:3px solid #111;clip-path:polygon(50% 0,0 100%,100% 100%);font-weight:900;padding-top:12px}.preview-warning-word{font-size:34px;font-weight:900;letter-spacing:.03em}.preview-label-body{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px}.print-preview-card.with-warning .preview-label-body{height:68.75%;justify-content:center}.preview-real-qr{width:38%;max-width:160px;min-width:115px;height:auto;object-fit:contain}.preview-device-name{margin-top:8px;font-weight:900;font-size:16px;text-align:center}.preview-subtitle{font-size:12px;margin-top:4px;text-align:center}.preview-url{font-size:9px;color:#52606d;margin-top:4px;text-align:center;max-width:92%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-qty-badge{position:absolute;right:10px;top:10px;background:var(--fhr-navy);color:#fff;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800;z-index:5}.label-controls{margin-bottom:12px}
/* Misc */
details summary{cursor:pointer;color:var(--fhr-blue-dark);font-weight:800}.bulk h2{margin-top:0}.edit-form label{font-weight:750}.edit-form label input:not([type=checkbox]),.edit-form label select{margin-top:6px;font-weight:400}
/* Mobile */
@media(max-width:900px){.container{padding:20px 14px}.topbar{align-items:flex-start;flex-wrap:wrap;padding:12px 16px}.brand-wrap{width:100%;flex-direction:column;align-items:flex-start;gap:8px}.hamburger{display:inline-flex}.topnav{display:none;flex-basis:100%;flex-direction:column;align-items:stretch;gap:8px}.topnav.open{display:flex}.nav-group .menu{position:static;box-shadow:none;margin-top:6px}.nav-group:hover .menu{display:none}.nav-group:focus-within .menu{display:block}.nav-group>button{width:100%;text-align:left}.user-pill{margin-left:0;align-self:flex-start}.formgrid,.edit-form{grid-template-columns:1fr}.wide{grid-column:span 1}.two-col{grid-template-columns:1fr}.preview-panel{position:static}.qr-label-preview{width:100%;max-width:336px}table{font-size:13px;display:block;overflow-x:auto;white-space:nowrap}.hero-card h1{font-size:36px;line-height:44px}.site-label-list{grid-template-columns:1fr}.label-grid{font-size:18px}.warning{font-size:34px}}
@media(max-width:500px){.welcome,.site-page{padding:14px}.card,.notice,.public-card,.hero-card{padding:18px}.hero-actions{flex-direction:column}.hero-actions .btn{width:100%}.phone-label{border-radius:8px}.label-grid{font-size:16px;grid-template-columns:1fr}.label-grid b{text-align:left}.label-grid span{padding-left:0}.print-preview-grid{grid-template-columns:1fr}.preview-warning-word{font-size:28px}}

/* v7.2 fixes: tappable mobile submenus, smaller mobile label cards, proportional print previews */
@media(max-width:900px){
  .nav-group .menu{display:none!important;position:static;box-shadow:none;margin-top:6px;background:rgba(255,255,255,.96);border-radius:8px;padding:6px;border:1px solid rgba(255,255,255,.35)}
  .nav-group.submenu-open .menu{display:block!important}
  .nav-group:hover .menu,.nav-group:focus-within .menu{display:none!important}
  .nav-group.submenu-open:hover .menu,.nav-group.submenu-open:focus-within .menu{display:block!important}
  .nav-group>button::after{content:'+';float:right;font-weight:900}
  .nav-group.submenu-open>button::after{content:'−'}
  .brand-wrap{width:100%;flex-direction:column;align-items:flex-start;gap:8px}
  .hamburger{display:inline-flex;margin-top:4px}

  .phone-label{width:min(96vw,430px);max-width:430px;padding:13px;margin:10px auto;font-size:14px}
  .phone-label .warning,.warning{margin:-13px -13px 12px;padding:8px;font-size:28px;line-height:1.05}
  .phone-label h2{font-size:20px;line-height:24px;margin:5px 0}
  .phone-label h3{font-size:15px;line-height:20px;margin:4px 0 10px}
  .label-grid{font-size:16px;gap:6px 8px;margin-top:10px;grid-template-columns:42% 58%}
  .label-grid span{padding-left:8px}
  .phone-label p{margin:7px 0;line-height:1.25}
}

@media(max-width:500px){
  .phone-label{width:94vw;max-width:360px;padding:11px;font-size:13px}
  .phone-label .warning,.warning{margin:-11px -11px 10px;font-size:24px;padding:7px}
  .phone-label h2{font-size:18px;line-height:22px}
  .phone-label h3{font-size:13px;line-height:18px}
  .label-grid{grid-template-columns:38% 62%;font-size:14px;gap:5px}
  .label-grid b{text-align:right}
  .label-grid span{padding-left:6px}
  .site-label-list{grid-template-columns:1fr;gap:14px}
}

/* Print preview is a true 4x6 landscape ratio. Orange warning artwork consumes the top 1.25 inch of a 4 inch tall label. The PDF content is still positioned for a 1.375 inch printable header reserve. */
.print-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:18px;align-items:start}
.print-preview-card{aspect-ratio:6/4;width:100%;max-width:600px;min-height:auto;border-radius:12px;overflow:hidden;display:flex;flex-direction:column;background:#fff}
.preview-warning-header{height:31.25%;min-height:0;flex:0 0 31.25%;display:none;background:var(--warning-orange);align-items:center;justify-content:center;gap:18px;color:#111;border-bottom:2px solid rgba(0,0,0,.15)}
.print-preview-card.with-warning .preview-warning-header{display:flex}
.preview-triangle{display:inline-flex;align-items:center;justify-content:center;width:42px;height:37px;border:3px solid #111;clip-path:polygon(50% 0,0 100%,100% 100%);font-weight:900;padding-top:12px;background:#fff;color:#111;line-height:1}
.preview-warning-word{font-size:36px;font-weight:900;letter-spacing:.04em;line-height:1}
.preview-label-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 18px 12px;overflow:hidden}
.print-preview-card:not(.with-warning) .preview-label-body{padding-top:32px;padding-bottom:24px}
.preview-real-qr{width:42%;max-width:175px;min-width:105px;height:auto;object-fit:contain;display:block;flex:0 0 auto;margin:0 auto 8px}
.print-preview-card.with-warning .preview-real-qr{width:34%;max-width:145px;min-width:95px;margin-bottom:6px}
.preview-device-name{font-weight:900;font-size:16px;text-align:center;line-height:1.15;max-width:94%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.preview-subtitle{font-size:12px;line-height:1.15;margin-top:4px;text-align:center;max-width:94%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.preview-url{font-size:9px;color:#52606d;margin-top:4px;text-align:center;max-width:94%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.15}
.preview-qty-badge{position:absolute;right:10px;top:10px;background:var(--fhr-navy);color:#fff;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800;z-index:5}
@media(max-width:500px){
  .print-preview-grid{grid-template-columns:1fr}
  .preview-warning-word{font-size:26px}
  .preview-triangle{width:34px;height:30px;padding-top:10px}
  .preview-device-name{font-size:13px}
  .preview-subtitle{font-size:10px}
  .preview-url{font-size:8px}
}


/* v7.3 fixes: force accurate 4x6 print preview and cleaner footer version behavior */
.print-preview-panel{
  overflow:visible!important;
}
.print-preview-grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fill,minmax(360px,1fr))!important;
  gap:18px!important;
  align-items:start!important;
}
.print-preview-card{
  position:relative!important;
  width:100%!important;
  max-width:600px!important;
  aspect-ratio:6 / 4!important;
  height:auto!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  padding:0!important;
  background:#fff!important;
  border:1px solid var(--fhr-line)!important;
  border-radius:12px!important;
  box-shadow:var(--shadow)!important;
}
.preview-warning-header{
  display:none!important;
  height:auto!important;
  min-height:0!important;
  flex:0 0 31.25%!important; /* orange WARNING bar = 1.25 inches of a 4 inch label */
  background:var(--warning-orange)!important;
  align-items:center!important;
  justify-content:center!important;
  gap:14px!important;
  color:#111!important;
  border-bottom:2px solid rgba(0,0,0,.16)!important;
  padding:0!important;
  margin:0!important;
}
.print-preview-card.with-warning .preview-warning-header{
  display:flex!important;
}
.preview-triangle{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:36px!important;
  height:32px!important;
  border:3px solid #111!important;
  clip-path:polygon(50% 0,0 100%,100% 100%)!important;
  background:#fff!important;
  color:#111!important;
  font-size:16px!important;
  line-height:1!important;
  font-weight:900!important;
  padding-top:10px!important;
}
.preview-warning-word{
  font-size:32px!important;
  font-weight:900!important;
  letter-spacing:.04em!important;
  line-height:1!important;
}
.preview-label-body{
  flex:1 1 auto!important;
  min-height:0!important;
  height:auto!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  padding:8px 14px 10px!important;
  overflow:hidden!important;
}
.print-preview-card:not(.with-warning) .preview-label-body{
  padding:18px 16px 18px!important;
}
.preview-real-qr{
  display:block!important;
  flex:0 0 auto!important;
  width:118px!important;
  height:118px!important;
  max-width:34%!important;
  max-height:58%!important;
  object-fit:contain!important;
  margin:0 auto 6px!important;
}
.print-preview-card.with-warning .preview-real-qr{
  width:98px!important;
  height:98px!important;
  max-width:30%!important;
  max-height:54%!important;
  margin-bottom:5px!important;
}
.preview-device-name{
  flex:0 0 auto!important;
  margin:0!important;
  font-weight:900!important;
  font-size:14px!important;
  line-height:1.05!important;
  text-align:center!important;
  max-width:96%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.preview-subtitle{
  flex:0 0 auto!important;
  font-size:10px!important;
  line-height:1.1!important;
  margin:3px 0 0!important;
  text-align:center!important;
  max-width:96%!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.preview-url{
  flex:0 0 auto!important;
  font-size:8px!important;
  color:#52606d!important;
  line-height:1.1!important;
  margin:2px 0 0!important;
  text-align:center!important;
  max-width:96%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.preview-qty-badge{
  position:absolute!important;
  right:10px!important;
  top:10px!important;
  z-index:10!important;
  background:var(--fhr-navy)!important;
  color:#fff!important;
  border-radius:999px!important;
  padding:5px 9px!important;
  font-size:12px!important;
  font-weight:800!important;
  box-shadow:0 2px 6px rgba(0,0,0,.18)!important;
}
@media(max-width:500px){
  .print-preview-grid{grid-template-columns:1fr!important;}
  .preview-warning-word{font-size:24px!important;}
  .preview-triangle{width:30px!important;height:27px!important;font-size:13px!important;padding-top:8px!important;}
  .preview-real-qr{width:96px!important;height:96px!important;}
  .print-preview-card.with-warning .preview-real-qr{width:82px!important;height:82px!important;}
  .preview-device-name{font-size:12px!important;}
  .preview-subtitle{font-size:9px!important;}
  .preview-url{font-size:7px!important;}
}

/* v1.2.0 admin dashboard summary and site label layout */
.stats-bar{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin:18px 0;align-items:stretch}.stat-card{background:#fff;border:1px solid #eaecf0;border-top:4px solid var(--fhr-gold);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px;min-height:118px}.stat-card.accent{background:linear-gradient(27deg,var(--fhr-blue) 0%,var(--fhr-navy) 100%);color:#fff;border-top-color:var(--fhr-sand)}.stat-card.accent .stat-label,.stat-card.accent small{color:#fff}.stat-label{display:block;color:var(--fhr-blue-dark);font-size:12px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;margin-bottom:8px}.stat-card strong{display:block;color:var(--fhr-navy);font-size:24px;line-height:1.1;margin-bottom:5px}.stat-card.accent strong{color:#fff;font-size:32px}.stat-card small{color:var(--fhr-muted)}.stat-card details{margin-top:6px}.stat-card summary{font-size:13px;cursor:pointer;color:var(--fhr-blue-dark);font-weight:800}.stat-card ul{margin:8px 0 0;padding-left:18px;max-height:140px;overflow:auto}.stat-card li{font-size:13px;margin-bottom:4px}.wide-stat{grid-column:span 2}.type-counts{display:flex;flex-wrap:wrap;gap:6px}.pill.strong{font-weight:800;background:var(--fhr-soft);color:var(--fhr-navy);border:1px solid #cfd8e3}.site-label-list{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-width:1120px;margin:0 auto}.site-label-item .phone-label{max-width:520px;width:100%}@media(max-width:1100px){.stats-bar{grid-template-columns:repeat(3,minmax(0,1fr))}.wide-stat{grid-column:span 2}}@media(max-width:700px){.stats-bar{grid-template-columns:1fr}.wide-stat{grid-column:span 1}.site-label-list{grid-template-columns:1fr!important}}


/* v1.2.2: fixed 4x6 QR content position regardless of printed WARNING header.
   The content body always starts below the same 1.25in visual header area. */
.print-preview-card{position:relative!important;display:block!important;}
.preview-warning-header{position:absolute!important;top:0!important;left:0!important;right:0!important;height:31.25%!important;z-index:2;}
.preview-label-body{position:absolute!important;left:0!important;right:0!important;top:31.25%!important;bottom:0!important;height:auto!important;padding:10px 18px 12px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;overflow:hidden!important;}
.print-preview-card:not(.with-warning) .preview-label-body{padding:10px 18px 12px!important;}
.preview-real-qr,.print-preview-card.with-warning .preview-real-qr{width:34%!important;max-width:145px!important;min-width:95px!important;height:auto!important;margin:0 auto 6px!important;object-fit:contain!important;}
.preview-device-name{margin-top:0!important;font-size:16px!important;line-height:1.12!important;font-weight:900!important;text-align:center!important;max-width:92%;}
.preview-location{font-size:11px!important;line-height:1.15!important;font-weight:800!important;text-align:center!important;margin-top:3px!important;max-width:92%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#111;}
.preview-subtitle{font-size:11px!important;line-height:1.15!important;margin-top:3px!important;text-align:center!important;}
.preview-url{font-size:8px!important;line-height:1.1!important;margin-top:3px!important;}
@media(max-width:500px){.preview-location{font-size:9px!important}.preview-device-name{font-size:13px!important}.preview-subtitle{font-size:9px!important}}

/* Mobile Offline PWA additions */
.mobile-shell{max-width:760px;margin:0 auto}
.mobile-hero{background:linear-gradient(27deg,var(--fhr-blue) 0%,var(--fhr-navy) 100%);color:#fff;border-radius:14px;padding:24px;box-shadow:var(--shadow-lg);border-bottom:5px solid var(--fhr-gold)}
.mobile-hero h1,.mobile-hero p{color:#fff}
.mobile-status{display:inline-block;margin-top:10px;border-radius:999px;padding:7px 12px;background:#eef3f8;color:var(--fhr-navy);font-weight:850}
.mobile-status.ok{background:#dff4e6;color:#115d2a}
.mobile-status.warn{background:#fff5db;color:#8a5a00}
.mobile-status.bad{background:#f8d7da;color:#842029}
.mobile-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:16px 0}
.mobile-stat{background:#fff;border:1px solid #eaecf0;border-radius:12px;padding:14px;box-shadow:var(--shadow)}
.mobile-stat b{display:block;font-size:22px;color:var(--fhr-navy)}
.mobile-stat span{display:block;color:var(--fhr-muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.mobile-actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.mobile-reader video{width:100%;border-radius:12px;border:1px solid var(--fhr-line);box-shadow:var(--shadow);background:#111}
.mobile-card{background:#fff;border:1px solid #eaecf0;border-radius:12px;padding:18px;margin:16px 0;box-shadow:var(--shadow)}
.mobile-source{text-align:center;color:var(--fhr-muted);font-size:12px;font-weight:750}
.mobile-offline-label{max-width:560px}
@media(max-width:500px){
  .mobile-actions button,.mobile-actions .btn{width:100%}
  .mobile-card .inline-form{display:grid;grid-template-columns:1fr}
  .mobile-card .inline-form input{min-width:0;width:100%}
}

/* PWA install + QR scanner fallback additions */
.mobile-install-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  background:#fff;
  border:1px solid #eaecf0;
  border-radius:12px;
  padding:16px 18px;
  margin:16px 0;
  box-shadow:var(--shadow);
}
.mobile-install-card h2{margin:0 0 4px}
.mobile-install-card p{margin:0}
.ios-help{flex-basis:100%;margin-top:8px!important;color:var(--fhr-muted)}
.qr-region{
  background:#fff;
  border:1px solid var(--fhr-line);
  border-radius:12px;
  padding:10px;
  box-shadow:var(--shadow);
}
#html5-qrcode-button-camera-permission,
#html5-qrcode-button-camera-start,
#html5-qrcode-button-camera-stop{
  margin:8px auto!important;
}
@media(max-width:600px){
  .mobile-install-card{display:block}
  .mobile-install-card button{width:100%;margin-top:12px}
}

/* Compact Mobile Offline UI */
.compact-mobile-shell{max-width:760px}
.mobile-topline{
  position:sticky;
  top:72px;
  z-index:12;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  background:#fff;
  border:1px solid #eaecf0;
  border-radius:12px;
  padding:10px 12px;
  margin:-8px 0 10px;
  box-shadow:var(--shadow);
}
.mobile-topline h1{font-size:22px;line-height:26px;margin:0;color:var(--fhr-navy)}
.mobile-topline p{font-size:12px;margin:1px 0 0;color:var(--fhr-muted)}
.compact-status{
  flex:0 0 auto;
  margin:0!important;
  padding:6px 10px!important;
  font-size:12px;
  white-space:nowrap;
}
.compact-actions{
  position:relative;
  display:grid;
  grid-template-columns:1.4fr 1fr .8fr .8fr;
  gap:8px;
  margin:10px 0;
}
.compact-actions button{padding:10px 10px}
.compact-reader{margin:8px 0}
.compact-qr-region{padding:6px!important}
.compact-qr-region video,
#html5QrRegion video{
  max-height:52vh!important;
  object-fit:cover!important;
  border-radius:10px;
}
.compact-stats{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:8px!important;
  margin:8px 0 10px!important;
}
.compact-stat{
  padding:8px 8px!important;
  min-width:0;
}
.compact-stat b{
  font-size:15px!important;
  line-height:18px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.compact-stat span{
  font-size:10px!important;
  line-height:12px;
}
.compact-manual{
  padding:12px 14px!important;
  margin:10px 0!important;
}
.compact-manual summary{
  font-size:14px;
}
.compact-notice{
  padding:12px 14px!important;
  margin:12px 0!important;
}
.compact-notice p{margin:0;font-size:13px}
.compact-extra{padding:14px!important}
@media(max-width:900px){
  .mobile-topline{top:86px}
}
@media(max-width:560px){
  .compact-actions{grid-template-columns:1fr 1fr}
  .compact-actions button{width:100%}
  .mobile-topline{top:92px;align-items:flex-start}
  .mobile-topline h1{font-size:20px}
  .mobile-topline p{display:none}
  .compact-stats{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .compact-stat{padding:7px 4px!important;text-align:center}
  .compact-stat b{font-size:13px!important}
  .compact-stat span{font-size:9px!important}
}

/* Mobile field app improvements */
.mobile-app-body .topbar{
  justify-content:center!important;
  padding:10px 16px!important;
}
.mobile-app-body .brand-wrap{
  width:auto!important;
  min-width:0!important;
  align-items:center!important;
}
.mobile-app-body .brand{
  font-size:18px!important;
  text-align:center!important;
}
.mobile-app-body .hamburger,
.mobile-app-body .topnav,
.mobile-app-body .user-pill,
.mobile-app-body .poc-banner{
  display:none!important;
}
.mobile-app-body .container{
  padding-top:14px!important;
}
.mobile-app-body .app-footer{
  display:none!important;
}
.minimized-extra summary{
  font-weight:900;
  color:var(--fhr-blue-dark);
  cursor:pointer;
}
.minimized-extra{
  margin-top:8px!important;
}
.site-cache-card h2{
  margin:0;
  font-size:22px;
}
.site-cache-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  margin-bottom:12px;
}
.site-filter-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin:10px 0;
}
.site-filter-grid label{
  font-size:12px;
}
.site-filter-grid input,
.site-filter-grid select{
  padding:8px 9px;
  font-size:14px;
}
.site-device-list{
  display:grid;
  gap:8px;
  margin-top:10px;
}
.site-result-count{
  font-size:12px;
  color:var(--fhr-muted);
  font-weight:800;
}
.site-device-row{
  display:block!important;
  width:100%;
  text-align:left!important;
  background:#fff!important;
  color:var(--fhr-text)!important;
  border:1px solid #eaecf0!important;
  border-left:5px solid var(--warning-orange)!important;
  border-radius:10px!important;
  padding:10px 12px!important;
  box-shadow:var(--shadow)!important;
}
.site-device-row b{
  display:block;
  color:var(--fhr-navy);
  font-size:15px;
}
.site-device-row span{
  display:block;
  color:var(--fhr-muted);
  font-size:12px;
  margin-top:3px;
}
@media(max-width:760px){
  .site-filter-grid{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:480px){
  .site-filter-grid{
    grid-template-columns:1fr;
  }
  .mobile-app-body .brand{
    font-size:16px!important;
  }
}

/* Fix mobile field scanner status/header overlap and match public label */
.mobile-topline{
  position:relative!important;
  top:auto!important;
  z-index:1!important;
  margin:0 0 8px!important;
}
.compact-status{
  align-self:flex-start;
  margin-top:1px!important;
}
.mobile-app-body .topbar{
  position:relative!important;
  top:auto!important;
  z-index:1!important;
}
.mobile-app-body .container{
  padding-top:10px!important;
}
.compact-actions{
  position:relative!important;
  z-index:2!important;
}
.public-match-label h2{
  text-align:center;
}
.public-match-label h3{
  text-align:center;
}
.public-match-label .mobile-source{
  border-top:1px solid #eaecf0;
  padding-top:8px;
  margin-top:8px;
}

/* Mobile cache storage indicator */
.mobile-status-wrap{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:4px;
}
.cache-storage-status{
  font-size:11px;
  line-height:1;
  color:var(--fhr-muted);
  background:#f8fafc;
  border:1px solid #eaecf0;
  border-radius:999px;
  padding:5px 8px;
  white-space:nowrap;
}
@media(max-width:560px){
  .cache-storage-status{
    font-size:10px;
    padding:4px 7px;
  }
}

/* Pull down to sync */
.pull-sync-indicator{
  position:fixed;
  top:8px;
  left:50%;
  transform:translateX(-50%) translateY(-150%);
  z-index:9999;
  background:var(--fhr-navy);
  color:#fff;
  border-radius:999px;
  padding:8px 14px;
  font-size:12px;
  font-weight:900;
  box-shadow:var(--shadow-lg);
  transition:transform .18s ease;
  pointer-events:none;
}
.pull-sync-indicator.show{
  transform:translateX(-50%) translateY(0);
}

/* Mobile PWA version display */
.mobile-version-pill{
  display:inline-flex;
  align-items:center;
  margin-left:6px;
  padding:2px 7px;
  border-radius:999px;
  background:var(--fhr-soft);
  color:var(--fhr-navy);
  font-size:11px;
  font-weight:900;
  white-space:nowrap;
}
@media(max-width:560px){
  .mobile-topline p{
    display:block!important;
  }
  .mobile-version-pill{
    margin-left:0;
    margin-top:3px;
  }
}

/* v1.4 Multi one-line drawing viewer + inspect locator */
.oneline-body{background:#1f2937;margin:0;color:#fff}.oneline-toolbar{position:sticky;top:0;z-index:50;display:flex;justify-content:space-between;align-items:center;gap:12px;background:#111827;color:#fff;padding:10px 14px;border-bottom:3px solid var(--warning-orange)}.oneline-toolbar span{display:block;color:#d1d5db;font-size:12px;font-weight:600}.oneline-actions{display:flex;gap:8px;align-items:center}.oneline-actions button,.oneline-actions .btn{padding:7px 10px;font-size:13px}.oneline-viewer{padding:12px;overflow:auto}#pdfPages{display:grid;gap:18px;justify-content:center}.pdf-page-wrap{position:relative;background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.35);margin:0 auto}.pdf-page-canvas{display:block}.pdf-locator-box{position:absolute;border:4px solid #e11d48;background:rgba(225,29,72,.12);box-shadow:0 0 0 9999px rgba(0,0,0,.08),0 0 22px rgba(225,29,72,.9);pointer-events:none;animation:pulse-locator 1.2s ease-in-out infinite alternate}.pdf-page-label{position:absolute;left:8px;top:8px;background:rgba(17,24,39,.84);color:#fff;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:800}@keyframes pulse-locator{from{transform:scale(1)}to{transform:scale(1.025)}}.inspect-link-row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:10px 0}@media(max-width:700px){.oneline-toolbar{align-items:flex-start;flex-direction:column}}

/* v1.4.1 editable one-line mapping + readable locator */
.pdf-locator-box{
  background:transparent!important;
  border:2px dashed #e11d48!important;
  box-shadow:none!important;
  outline:2px solid rgba(255,255,255,.92);
  outline-offset:2px;
}
.pdf-locator-box::before,
.pdf-locator-box::after{
  content:"";
  position:absolute;
  inset:-8px;
  pointer-events:none;
  background:
    linear-gradient(#e11d48,#e11d48) left top/28px 5px no-repeat,
    linear-gradient(#e11d48,#e11d48) left top/5px 28px no-repeat,
    linear-gradient(#e11d48,#e11d48) right top/28px 5px no-repeat,
    linear-gradient(#e11d48,#e11d48) right top/5px 28px no-repeat,
    linear-gradient(#e11d48,#e11d48) left bottom/28px 5px no-repeat,
    linear-gradient(#e11d48,#e11d48) left bottom/5px 28px no-repeat,
    linear-gradient(#e11d48,#e11d48) right bottom/28px 5px no-repeat,
    linear-gradient(#e11d48,#e11d48) right bottom/5px 28px no-repeat;
}
.pdf-locator-box::after{
  inset:-13px;
  opacity:.25;
}

/* v1.4.2 mobile one-line viewer cleanup */
.oneline-fullscreen-body{
  overflow:hidden;
  background:#111827;
}
.fullscreen-oneline-viewer{
  position:fixed;
  inset:0;
  padding:52px 10px 16px;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-x pan-y pinch-zoom;
}
.oneline-floating-controls{
  position:fixed;
  top:8px;
  left:8px;
  right:8px;
  z-index:1000;
  display:flex;
  gap:6px;
  align-items:center;
  justify-content:center;
  background:rgba(17,24,39,.72);
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  padding:6px;
  box-shadow:0 10px 30px rgba(0,0,0,.35);
}
.oneline-floating-controls button,
.oneline-floating-controls .btn{
  border-radius:999px!important;
  padding:7px 10px!important;
  font-size:12px!important;
  min-width:42px;
  line-height:1!important;
}
.pdf-status-pill{
  position:fixed;
  right:12px;
  bottom:12px;
  z-index:1000;
  background:rgba(17,24,39,.82);
  color:#fff;
  border-radius:999px;
  padding:7px 10px;
  font-size:12px;
  font-weight:900;
  pointer-events:none;
}
.subtle-page-label{
  opacity:.72;
}
.fullscreen-oneline-viewer #pdfPages{
  justify-content:flex-start;
  width:max-content;
  min-width:100%;
}
.fullscreen-oneline-viewer .pdf-page-wrap{
  margin:0 auto 14px;
}
@media(max-width:520px){
  .oneline-floating-controls{
    justify-content:space-between;
  }
  .oneline-floating-controls button,
  .oneline-floating-controls .btn{
    min-width:0;
    padding:7px 9px!important;
  }
}

/* Contractor access management */
.contractor-mode-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border-radius:14px;
  padding:18px;
  margin:16px 0;
  box-shadow:var(--shadow);
  border:1px solid #eaecf0;
  background:#fff;
}
.contractor-mode-card.enabled{
  border-left:7px solid #dc2626;
}
.contractor-mode-card.disabled{
  border-left:7px solid #16a34a;
}
.contractor-mode-card h2{margin:0 0 4px}
.contractor-mode-card p{margin:0;color:var(--fhr-muted)}
.big-code{
  font-size:20px;
  font-weight:900;
  letter-spacing:.14em;
  background:#111827;
  color:#fff;
  border-radius:8px;
  padding:6px 9px;
}
.contractor-gate-wrap{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:20px;
  background:linear-gradient(135deg,#232d44,#111827);
}
.contractor-gate-card{
  width:min(430px,100%);
  background:#fff;
  border-radius:18px;
  box-shadow:0 24px 70px rgba(0,0,0,.35);
  padding:26px;
  border-top:8px solid var(--warning-orange);
}
.contractor-gate-card h1{
  margin:0 0 4px;
  color:var(--fhr-navy);
}
.contractor-gate-card h2{
  margin:0 0 12px;
}
.contractor-gate-card input[name="passcode"]{
  text-transform:uppercase;
  text-align:center;
  font-size:28px;
  font-weight:900;
  letter-spacing:.22em;
}
@media(max-width:700px){
  .contractor-mode-card{display:block}
  .contractor-mode-card form{margin-top:12px}
}

/* v1.5.1 PWA contractor gate */
.mobile-contractor-gate{
  margin:12px 0;
}
.mobile-gate-card{
  min-height:auto!important;
  width:100%!important;
  box-shadow:var(--shadow-lg)!important;
}
.mobile-gate-card h2{
  margin-top:0;
}
.mobile-gate-card input[name="passcode"]{
  text-transform:uppercase;
  text-align:center;
  font-size:24px;
  font-weight:900;
  letter-spacing:.18em;
}

/* v1.5.2 PWA contractor enforcement */
.mobile-contractor-gate{ margin:12px 0; }
.mobile-gate-card{ min-height:auto!important; width:100%!important; box-shadow:var(--shadow-lg)!important; }
.mobile-gate-card h2{ margin-top:0; }
.mobile-gate-card input[name="passcode"]{ text-transform:uppercase; text-align:center; font-size:24px; font-weight:900; letter-spacing:.18em; }
.compact-actions button[disabled]{ opacity:.45; cursor:not-allowed; }

/* v1.5.13 contractor management editing */
.contractor-table input,
.contractor-table select{
  width:100%;
  max-width:260px;
  padding:6px 8px;
  font-size:13px;
}
.contractor-table label{
  display:block;
  font-size:12px;
  color:var(--fhr-muted);
  margin-bottom:6px;
}
.contractor-inline-form{
  margin:0;
}
.inline-action-form{
  display:inline-block;
  margin:2px 4px 2px 0;
}
.contractor-edit-grid,
.contractor-code-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:10px;
  align-items:end;
}
.contractor-actions{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}
.mini-check{
  display:inline-flex!important;
  align-items:center;
  gap:6px;
  color:var(--fhr-text)!important;
  margin:0!important;
}
.mini-check input{
  width:auto!important;
}
.card-heading-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}
@media(max-width:800px){
  .contractor-table,
  .contractor-table thead,
  .contractor-table tbody,
  .contractor-table th,
  .contractor-table td,
  .contractor-table tr{
    display:block;
  }
  .contractor-table thead{display:none}
  .contractor-table tr{
    border:1px solid #eaecf0;
    border-radius:12px;
    padding:10px;
    margin-bottom:10px;
  }
  .contractor-table td{
    border:0!important;
    padding:6px 0!important;
  }
}

/* v1.5.14 contractor UX cleanup */
.contractor-panel{
  margin:14px 0;
  border:1px solid #eaecf0;
  border-radius:16px;
  background:#fff;
  box-shadow:var(--shadow);
  overflow:hidden;
}
.contractor-panel > summary{
  display:flex;
  flex-direction:column;
  gap:3px;
  cursor:pointer;
  padding:14px 18px;
  background:#f8fafc;
  font-weight:900;
  color:var(--fhr-navy);
}
.contractor-panel > summary small{
  color:var(--fhr-muted);
  font-weight:600;
}
.contractor-panel-body{
  margin:0!important;
  box-shadow:none!important;
  border-radius:0!important;
}
.soft-card{
  box-shadow:none!important;
  border:1px solid #eaecf0;
}
.contractor-code-list{
  display:grid;
  gap:10px;
}
.contractor-code-row,
.contractor-row{
  border:1px solid #eaecf0;
  border-radius:12px;
  background:#fff;
  overflow:hidden;
}
.contractor-code-row > summary,
.contractor-row > summary{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  cursor:pointer;
  padding:10px 12px;
  background:#fbfcfe;
}
.contractor-row-body{
  padding:12px;
  border-top:1px solid #eaecf0;
}
.contractor-toolbar{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-bottom:10px;
}
.contractor-table input,
.contractor-table select,
.contractor-code-grid input,
.contractor-code-grid select{
  width:100%;
  max-width:260px;
  padding:6px 8px;
  font-size:13px;
}
.contractor-table label,
.contractor-code-grid label{
  display:block;
  font-size:12px;
  color:var(--fhr-muted);
  margin-bottom:6px;
}
.contractor-edit-grid,
.contractor-code-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:10px;
  align-items:end;
}
.contractor-actions{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}
.mini-check{
  display:inline-flex!important;
  align-items:center;
  gap:6px;
  color:var(--fhr-text)!important;
  margin:0!important;
}
.mini-check input{width:auto!important}
.card-heading-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}
@media(max-width:800px){
  .contractor-code-row > summary{align-items:flex-start}
  .contractor-toolbar{justify-content:flex-start}
}

/* v1.6.0 spreadsheet import edit usability */
.import-preview-scroll,
#importTable{
  width:100%;
}
#importTable{
  table-layout:auto;
}
#importTable th,
#importTable td{
  vertical-align:top;
}
#importTable input:not([type="checkbox"]),
#importTable select{
  width:auto;
  max-width:none;
  min-width:14ch;
  padding:7px 9px;
  font-size:13px;
}
#importTable input[name^="equipment_name_"],
#importTable input[name^="protective_device_"]{
  min-width:30ch;
}
#importTable input[name^="label_number_"],
#importTable input[name^="device_type_code_"],
#importTable input[name^="shock_risk_voltage_"]{
  min-width:18ch;
}
#importTable input[name^="limited_approach_"],
#importTable input[name^="restricted_approach_"],
#importTable input[name^="arc_flash_boundary_"],
#importTable input[name^="incident_energy_"],
#importTable input[name^="incident_energy_distance_"]{
  min-width:16ch;
}
#importTable input[name^="note_codes_"]{
  min-width:20ch;
}
#importTable textarea[name^="notes_expanded_"]{
  min-width:36ch;
  min-height:90px;
}
#importTable .hidden{
  display:none!important;
}
@media(max-width:900px){
  #importTable{
    display:block;
    overflow-x:auto;
    white-space:nowrap;
  }
  #importTable textarea{
    white-space:normal;
  }
}
