*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Sans","Yu Gothic",sans-serif;background:#eef2f6;color:#1f2937}.app{min-height:100vh}.main.full{max-width:1220px;margin:0 auto;padding:24px}.hero{display:flex;justify-content:space-between;align-items:center;gap:18px;background:linear-gradient(135deg,#111827,#1f3b56);color:#fff;border-radius:26px;padding:28px;margin-bottom:20px;box-shadow:0 18px 45px rgba(15,23,42,.18)}.brandLine{display:flex;align-items:center;gap:14px}.logo{width:56px;height:56px;border-radius:18px;background:#f59e0b;color:#111827;font-weight:900;display:grid;place-items:center;font-size:28px;box-shadow:inset 0 -4px 0 rgba(0,0,0,.12)}.hero h1{font-size:30px;margin:0}.hero p{margin:6px 0 0;color:#dbeafe}.lead{max-width:680px;line-height:1.7}.heroStatus{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:18px;padding:14px 18px;text-align:right;white-space:nowrap}.heroStatus span{display:block;color:#cbd5e1;font-size:13px;margin-bottom:4px}.heroStatus b{font-size:18px}.page{display:none}.page.active{display:block}.topGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}.menuCard{border:0;text-align:left;border-radius:24px;padding:24px;min-height:170px;color:#fff;cursor:pointer;box-shadow:0 14px 32px rgba(15,23,42,.13);transition:.15s transform,.15s filter;display:flex;flex-direction:column;justify-content:space-between}.menuCard:hover{transform:translateY(-3px);filter:brightness(1.02)}.menuCard .icon{font-size:34px}.menuCard strong{display:block;font-size:24px}.menuCard small{display:block;line-height:1.5;color:rgba(255,255,255,.86);font-size:14px}.kintai{background:linear-gradient(135deg,#0f766e,#14b8a6)}.sharyo{background:linear-gradient(135deg,#b45309,#f59e0b)}.nippo{background:linear-gradient(135deg,#1d4ed8,#60a5fa)}.sagyoin{background:linear-gradient(135deg,#334155,#64748b)}.output{background:linear-gradient(135deg,#7e22ce,#a855f7)}.dashboard{background:linear-gradient(135deg,#be123c,#fb7185)}.cards{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:16px;margin-bottom:18px}.card,.panel{background:#fff;border:1px solid #e5e7eb;border-radius:20px;box-shadow:0 10px 25px rgba(15,23,42,.06)}.stat{padding:20px}.stat span{display:block;color:#64748b;font-size:13px}.stat strong{display:block;font-size:32px;margin:8px 0}.stat em{font-style:normal;color:#94a3b8;font-size:12px}.stat.danger strong{color:#dc2626}.pageHead{display:flex;align-items:center;gap:14px;margin:10px 0 18px}.pageHead h2{margin:0;font-size:28px}.backBtn{border:0;border-radius:999px;background:#111827;color:#fff;padding:11px 15px;font-weight:700;cursor:pointer}.grid.two{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.panel{padding:20px;margin-bottom:18px}.panel h3{margin:0 0 14px;font-size:18px}.panelHead{display:flex;justify-content:space-between;align-items:center}.form{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:14px}.form.single{grid-template-columns:1fr 1fr auto;align-items:end}.form label{display:grid;gap:6px;font-size:13px;color:#475569}.form input,.form select,.form textarea{width:100%;border:1px solid #cbd5e1;border-radius:12px;padding:11px 12px;font-size:15px;background:#fff}.form textarea{resize:vertical}.form button,.actions button,.sub{border:0;border-radius:12px;padding:12px 16px;background:#0f766e;color:#fff;font-weight:700;cursor:pointer}.form button:hover,.actions button:hover,.sub:hover{filter:brightness(.95)}.sub{padding:9px 12px;background:#334155}.dangerBtn{background:#dc2626!important}.tableWrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:900px}th,td{border-bottom:1px solid #e5e7eb;text-align:left;padding:12px 10px;font-size:14px;vertical-align:top}th{color:#64748b;background:#f8fafc;font-size:12px}td button{border:0;background:#fee2e2;color:#991b1b;border-radius:10px;padding:7px 9px;cursor:pointer}.list{display:grid;gap:10px}.item{border:1px solid #e5e7eb;background:#f8fafc;border-radius:14px;padding:12px}.item strong{display:block;margin-bottom:4px}.item span{color:#64748b;font-size:13px}.badge{display:inline-block;border-radius:999px;padding:3px 8px;background:#e0f2fe;color:#075985;font-size:12px;margin-left:6px}.badge.bad{background:#fee2e2;color:#991b1b}.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.chip{background:#f1f5f9;border:1px solid #cbd5e1;border-radius:999px;padding:8px 12px}.chip small{color:#64748b}.muted{color:#64748b}.actions{display:flex;flex-wrap:wrap;gap:10px}.roadmap{line-height:1.9;color:#334155}@media(max-width:960px){.main.full{padding:14px}.hero{display:block;padding:22px}.heroStatus{text-align:left;margin-top:16px}.hero h1{font-size:24px}.topGrid{grid-template-columns:1fr}.menuCard{min-height:135px}.cards,.grid.two,.form{grid-template-columns:1fr}.form.single{grid-template-columns:1fr}.pageHead{align-items:flex-start;flex-direction:column}}
.checkGroup{
  border:1px solid #cbd5e1;
  border-radius:12px;
  background:#fff;
  padding:10px;
  min-height:46px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.checkGroup label{
  display:flex;
  align-items:center;
  gap:6px;
  background:#f1f5f9;
  border:1px solid #e2e8f0;
  border-radius:999px;
  padding:7px 10px;
  font-size:14px;
  color:#334155;
  cursor:pointer;
}
.checkGroup input{
  width:auto!important;
}
.form label.wide{
  grid-column:span 2;
}
@media(max-width:960px){
  .form label.wide{grid-column:span 1}
}

.formSection{
  border:1px solid #e2e8f0;
  background:#f8fafc;
  border-radius:16px;
  padding:14px;
}
.wideFull{
  grid-column:1 / -1;
}
.sectionTitle{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:12px;
  margin-bottom:12px;
}
.sectionTitle strong{
  font-size:16px;
  color:#0f172a;
}
.sectionTitle small{
  color:#64748b;
}
.operationGrid{
  display:grid;
  grid-template-columns:repeat(4,minmax(150px,1fr));
  gap:12px;
}
.operationGrid label{
  display:grid;
  gap:6px;
  font-size:13px;
  color:#475569;
}
.operationGrid label.wide{
  grid-column:span 2;
}
.addOperationBtn{
  margin-top:12px;
}
.operationList{
  display:grid;
  gap:8px;
  margin-top:12px;
}
.operationItem{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  border:1px solid #cbd5e1;
  border-radius:14px;
  padding:10px 12px;
  background:#fff;
}
.operationItem div{
  line-height:1.6;
}
.operationItem strong{
  display:block;
  color:#0f172a;
}
.operationItem span{
  color:#64748b;
  font-size:13px;
}
.operationItem button{
  border:0;
  background:#fee2e2;
  color:#991b1b;
  border-radius:10px;
  padding:7px 9px;
  cursor:pointer;
}
@media(max-width:960px){
  .operationGrid{grid-template-columns:1fr}
  .operationGrid label.wide{grid-column:span 1}
  .sectionTitle{display:block}
}

.vehicleCards{
  display:grid;
  grid-template-columns:repeat(3,minmax(220px,1fr));
  gap:14px;
}
.vehicleCard{
  border:1px solid #e2e8f0;
  border-radius:18px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 8px 18px rgba(15,23,42,.05);
}
.vehiclePhoto{
  height:150px;
  background:linear-gradient(135deg,#e2e8f0,#f8fafc);
  display:grid;
  place-items:center;
  color:#64748b;
  font-weight:700;
}
.vehiclePhoto img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.vehicleBody{
  padding:14px;
}
.vehicleBody strong{
  display:block;
  font-size:17px;
  color:#0f172a;
}
.vehicleBody small{
  color:#64748b;
}
.vehicleDates{
  display:grid;
  gap:7px;
  margin-top:12px;
}
.dateRow{
  display:flex;
  justify-content:space-between;
  gap:10px;
  border-radius:12px;
  padding:8px 10px;
  background:#f8fafc;
  font-size:13px;
}
.statusBadge{
  display:inline-block;
  border-radius:999px;
  padding:3px 8px;
  font-size:12px;
  font-weight:700;
}
.statusOk{background:#dcfce7;color:#166534}
.statusSoon{background:#fef3c7;color:#92400e}
.statusOver{background:#fee2e2;color:#991b1b}
.statusNone{background:#e2e8f0;color:#475569}
.vehicleMasterForm{
  grid-template-columns:repeat(3,minmax(160px,1fr));
}
.vehicleMasterList{
  display:grid;
  grid-template-columns:repeat(2,minmax(250px,1fr));
  gap:12px;
  margin-top:14px;
}
.vehicleMasterItem{
  display:flex;
  gap:12px;
  align-items:center;
  border:1px solid #e2e8f0;
  border-radius:16px;
  padding:10px;
  background:#f8fafc;
}
.vehicleMasterThumb{
  width:74px;
  height:58px;
  border-radius:12px;
  background:#e2e8f0;
  display:grid;
  place-items:center;
  color:#64748b;
  font-size:12px;
  overflow:hidden;
  flex:0 0 auto;
}
.vehicleMasterThumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.vehicleMasterInfo{
  flex:1;
  line-height:1.5;
}
.vehicleMasterInfo strong{
  display:block;
  color:#0f172a;
}
.vehicleMasterInfo span{
  display:block;
  color:#64748b;
  font-size:13px;
}
@media(max-width:960px){
  .vehicleCards{grid-template-columns:1fr}
  .vehicleMasterForm{grid-template-columns:1fr}
  .vehicleMasterList{grid-template-columns:1fr}
}

.miniTitle{
  font-weight:800;
  color:#0f172a;
  margin:14px 0 10px;
}
.alcoholTableWrap{
  overflow:auto;
  border:1px solid #e2e8f0;
  border-radius:14px;
  background:#fff;
}
.alcoholTable{
  min-width:1180px;
  margin:0;
}
.alcoholTable th,
.alcoholTable td{
  border-right:1px solid #e2e8f0;
}
.alcoholTable select,
.alcoholTable input[type="text"],
.alcoholTable input[type="file"]{
  min-width:105px;
  border:1px solid #cbd5e1;
  border-radius:8px;
  padding:8px;
  background:#fff;
}
.checkStack,
.radioStack{
  display:grid;
  gap:7px;
  min-width:90px;
}
.checkStack label,
.radioStack label,
.inlineRadio label{
  display:flex;
  align-items:center;
  gap:5px;
  font-size:14px;
  color:#334155;
}
.operationMemoLabel{
  display:grid;
  gap:6px;
  margin-top:10px;
  font-size:13px;
  color:#475569;
}
.operationMemoLabel input{
  border:1px solid #cbd5e1;
  border-radius:12px;
  padding:11px 12px;
  font-size:15px;
}
.dashLine{
  border-top:2px dashed #cbd5e1;
  margin:22px 0;
}
.commuteGrid{
  display:grid;
  grid-template-columns:repeat(4,minmax(150px,1fr));
  gap:12px;
}
.commuteGrid label{
  display:grid;
  gap:6px;
  font-size:13px;
  color:#475569;
}
.commuteGrid input,
.commuteGrid select{
  width:100%;
  border:1px solid #cbd5e1;
  border-radius:12px;
  padding:11px 12px;
  font-size:15px;
  background:#fff;
}
.commuteGrid label.wide{
  grid-column:span 2;
}
.inlineRadio{
  display:flex;
  gap:12px;
  align-items:center;
  min-height:42px;
  background:#fff;
  border:1px solid #cbd5e1;
  border-radius:12px;
  padding:9px 10px;
}
.operationThumb{
  width:56px;
  height:44px;
  border-radius:8px;
  overflow:hidden;
  background:#e2e8f0;
  display:inline-grid;
  place-items:center;
  vertical-align:middle;
  margin-right:8px;
}
.operationThumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}
@media(max-width:960px){
  .commuteGrid{grid-template-columns:1fr}
  .commuteGrid label.wide{grid-column:span 1}
}

.summary{background:linear-gradient(135deg,#155e75,#22d3ee)}
.summaryControls{
  display:grid;
  grid-template-columns:repeat(4,minmax(160px,1fr));
  gap:14px;
  align-items:end;
}
.summaryControls label{
  display:grid;
  gap:6px;
  font-size:13px;
  color:#475569;
}
.summaryControls input,
.summaryControls select{
  width:100%;
  border:1px solid #cbd5e1;
  border-radius:12px;
  padding:11px 12px;
  font-size:15px;
  background:#fff;
}
.summaryControls button{
  border:0;
  border-radius:12px;
  padding:12px 16px;
  background:#0f766e;
  color:#fff;
  font-weight:700;
  cursor:pointer;
}
.summarySmallTable{
  min-width:420px;
}
.summaryPrintTitle{
  display:none;
}
@media(max-width:960px){
  .summaryControls{grid-template-columns:1fr}
}
@media print{
  body{background:#fff}
  .hero,.topGrid,.pageHead,.panelHead button,.summaryControls,.backBtn,.cards,.grid.two{display:none!important}
  .main.full{max-width:none;padding:0}
  .panel{box-shadow:none;border:0;padding:0}
  .summaryPrintTitle{display:block;margin-bottom:12px}
  table{min-width:0;font-size:11px}
  th,td{padding:6px}
}

.alcoholCard{
  border:1px solid #e2e8f0;
  border-radius:16px;
  background:#fff;
  padding:14px;
}
.alcoholTopGrid{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr 1fr 1fr;
  gap:12px;
  align-items:start;
  margin-bottom:14px;
}
.alcoholTopGrid > label{
  display:grid;
  gap:6px;
  font-size:13px;
  color:#475569;
}
.alcoholTopGrid select,
.alcoholTopGrid input[type="file"]{
  width:100%;
  border:1px solid #cbd5e1;
  border-radius:12px;
  padding:10px 11px;
  background:#fff;
  font-size:14px;
}
.horizontalChecks{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  min-height:42px;
  border:1px solid #cbd5e1;
  border-radius:12px;
  padding:9px 10px;
  align-items:center;
  background:#f8fafc;
}
.horizontalChecks label{
  display:flex;
  gap:5px;
  align-items:center;
  color:#334155;
  font-size:14px;
}
.alcoholChoiceGrid{
  display:grid;
  grid-template-columns:repeat(6,minmax(130px,1fr));
  border:1px solid #dbe3ed;
  border-radius:14px;
  overflow:hidden;
}
.choiceBox{
  border-right:1px solid #dbe3ed;
  background:#fff;
  min-height:92px;
}
.choiceBox:last-child{
  border-right:0;
}
.choiceBox > span{
  display:block;
  background:#f8fafc;
  color:#0f172a;
  font-weight:700;
  font-size:13px;
  padding:9px 10px;
  border-bottom:1px solid #dbe3ed;
}
.choiceRow{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  padding:10px;
  align-items:center;
}
.choiceRow label{
  display:flex;
  gap:5px;
  align-items:center;
  font-size:14px;
  color:#334155;
  white-space:nowrap;
}
.choiceRow input[type="radio"],
.horizontalChecks input[type="checkbox"]{
  accent-color:#2e7d32;
}
@media(max-width:1100px){
  .alcoholTopGrid{grid-template-columns:1fr 1fr}
  .alcoholChoiceGrid{grid-template-columns:repeat(2,1fr)}
  .choiceBox{border-bottom:1px solid #dbe3ed}
}
@media(max-width:700px){
  .alcoholTopGrid{grid-template-columns:1fr}
  .alcoholChoiceGrid{grid-template-columns:1fr}
  .choiceBox{border-right:0}
}

.summaryOutputCards{
  display:grid;
  gap:18px;
  margin-bottom:18px;
}
.outputReportCard{
  border:1px solid #cbd5e1;
  border-radius:16px;
  background:#fff;
  overflow:hidden;
  page-break-inside:avoid;
}
.outputReportHead{
  display:grid;
  grid-template-columns:1fr auto;
  gap:12px;
  background:#f8fafc;
  border-bottom:1px solid #cbd5e1;
  padding:12px 14px;
}
.outputReportHead strong{
  display:block;
  font-size:16px;
  color:#0f172a;
}
.outputReportHead span{
  color:#475569;
  font-size:13px;
}
.outputReportBody{
  padding:14px;
  display:grid;
  gap:14px;
}
.outputBasicGrid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
}
.outputField{
  border:1px solid #e2e8f0;
  border-radius:10px;
  padding:8px 10px;
  background:#fff;
}
.outputField small{
  display:block;
  color:#64748b;
  font-size:11px;
  margin-bottom:4px;
}
.outputField span{
  color:#0f172a;
  font-size:13px;
}
.outputSectionTitle{
  font-weight:800;
  color:#0f172a;
  border-left:4px solid #0f766e;
  padding-left:8px;
  margin-top:4px;
}
.outputAlcoholBox{
  border:1px solid #dbe3ed;
  border-radius:14px;
  overflow:hidden;
  background:#fff;
}
.outputAlcoholGrid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
}
.outputAlcoholCell{
  border-right:1px solid #dbe3ed;
  min-height:78px;
}
.outputAlcoholCell:last-child{
  border-right:0;
}
.outputAlcoholCell b{
  display:block;
  background:#f8fafc;
  border-bottom:1px solid #dbe3ed;
  font-size:12px;
  padding:8px 9px;
}
.outputAlcoholChoices{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  padding:10px;
  font-size:13px;
}
.markOn{
  color:#166534;
  font-weight:800;
}
.markOff{
  color:#94a3b8;
}
.outputMiniInfo{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:8px;
  margin-bottom:10px;
}
.outputCommuteTable{
  width:100%;
  min-width:0;
  border-collapse:collapse;
}
.outputCommuteTable th,
.outputCommuteTable td{
  border:1px solid #dbe3ed;
  padding:8px;
  font-size:12px;
}
.outputCommuteTable th{
  background:#f8fafc;
  color:#0f172a;
}
@media(max-width:960px){
  .outputBasicGrid,.outputMiniInfo{grid-template-columns:1fr 1fr}
  .outputAlcoholGrid{grid-template-columns:1fr 1fr}
}
@media print{
  .summaryRawTable{display:none!important}
  .summaryOutputCards{display:grid!important}
  .outputReportCard{
    border:1px solid #999;
    border-radius:0;
    margin-bottom:12px;
  }
  .outputReportHead{
    background:#f3f4f6!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .outputAlcoholCell b,
  .outputCommuteTable th{
    background:#f3f4f6!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
}

.vehicleDocs{
  display:grid;
  gap:8px;
  margin-top:12px;
}
.docRow{
  display:grid;
  grid-template-columns:74px 1fr;
  gap:10px;
  align-items:center;
  border:1px solid #e2e8f0;
  border-radius:12px;
  padding:8px;
  background:#f8fafc;
}
.docThumb{
  width:74px;
  height:54px;
  border-radius:10px;
  overflow:hidden;
  background:#e2e8f0;
  display:grid;
  place-items:center;
  color:#64748b;
  font-size:11px;
}
.docThumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.docInfo strong{
  display:block;
  color:#0f172a;
  font-size:13px;
}
.docInfo span{
  display:block;
  color:#475569;
  font-size:12px;
  margin-top:3px;
}
.vehicleMasterDocs{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:6px;
  margin-top:6px;
}
.vehicleMasterDocMini{
  border:1px solid #e2e8f0;
  border-radius:10px;
  padding:6px;
  background:#fff;
  font-size:11px;
  color:#475569;
}
.vehicleMasterDocMini b{
  display:block;
  color:#0f172a;
  font-size:11px;
  margin-bottom:2px;
}
@media(max-width:960px){
  .vehicleMasterDocs{grid-template-columns:1fr}
}

.hidden{display:none!important}
.vehicleMasterActions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:8px;
}
.vehicleMasterActions button{
  border:0;
  border-radius:10px;
  padding:7px 10px;
  cursor:pointer;
  font-weight:700;
}
.editBtn{
  background:#dbeafe;
  color:#1d4ed8;
}
.deleteBtn{
  background:#fee2e2;
  color:#991b1b;
}
.vehicleMasterForm button.sub{
  background:#64748b;
}

.vehicleDetailLayout{
  display:grid;
  grid-template-columns:360px 1fr;
  gap:18px;
  align-items:start;
}
.vehicleDetailMainPhoto{
  border:1px solid #e2e8f0;
  border-radius:20px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 10px 25px rgba(15,23,42,.06);
}
.vehicleDetailMainPhoto .photoBox{
  height:260px;
  background:linear-gradient(135deg,#e2e8f0,#f8fafc);
  display:grid;
  place-items:center;
  color:#64748b;
  font-weight:800;
}
.vehicleDetailMainPhoto img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.vehicleDetailMainPhoto .vehicleBody{
  padding:16px;
}
.vehicleDetailMainPhoto h3{
  margin:0 0 6px;
  font-size:24px;
}
.vehicleDetailActions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}
.vehicleDetailActions button{
  border:0;
  border-radius:12px;
  padding:11px 14px;
  font-weight:800;
  cursor:pointer;
}
.vehicleEditPanel{
  display:none;
}
.vehicleEditPanel.active{
  display:block;
}
.vehicleDocGrid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin-top:14px;
}
.vehicleDocCard{
  border:1px solid #e2e8f0;
  border-radius:16px;
  background:#fff;
  overflow:hidden;
}
.vehicleDocCard .docImg{
  height:150px;
  background:#e2e8f0;
  display:grid;
  place-items:center;
  color:#64748b;
  font-size:13px;
  font-weight:700;
}
.vehicleDocCard img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.vehicleDocCard .docText{
  padding:12px;
}
.vehicleDocCard .docText strong{
  display:block;
  color:#0f172a;
  margin-bottom:5px;
}
.vehicleTimeline{
  display:grid;
  gap:10px;
}
.vehicleTimeline .dateRow{
  padding:11px 12px;
}
.detailEditHint{
  color:#64748b;
  font-size:13px;
  margin:8px 0 0;
}
@media(max-width:960px){
  .vehicleDetailLayout{grid-template-columns:1fr}
  .vehicleDocGrid{grid-template-columns:1fr}
}

.loginScreen{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:20px;
  background:linear-gradient(135deg,#0f172a,#164e63);
}
.loginCard{
  width:min(460px,100%);
  background:#fff;
  border-radius:26px;
  padding:28px;
  box-shadow:0 24px 70px rgba(0,0,0,.25);
}
.loginLogo{
  width:62px;
  height:62px;
  border-radius:20px;
  background:#f59e0b;
  display:grid;
  place-items:center;
  font-weight:900;
  font-size:30px;
  color:#111827;
  margin-bottom:14px;
}
.loginCard h1{
  margin:0;
  font-size:28px;
}
.loginCard p{
  color:#64748b;
  line-height:1.6;
}
.loginTabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  background:#f1f5f9;
  padding:6px;
  border-radius:16px;
  margin:18px 0;
}
.loginTabs button{
  border:0;
  border-radius:12px;
  padding:11px;
  font-weight:800;
  cursor:pointer;
  background:transparent;
  color:#475569;
}
.loginTabs button.active{
  background:#0f766e;
  color:#fff;
}
.authForm{
  display:grid;
  gap:12px;
}
.authForm label{
  display:grid;
  gap:6px;
  color:#475569;
  font-size:13px;
}
.authForm input,
.authForm select{
  border:1px solid #cbd5e1;
  border-radius:12px;
  padding:12px;
  font-size:15px;
}
.authForm button{
  border:0;
  border-radius:12px;
  padding:13px;
  background:#0f766e;
  color:#fff;
  font-weight:900;
  cursor:pointer;
  margin-top:4px;
}
.demoLogin{
  margin-top:16px;
  border:1px dashed #cbd5e1;
  border-radius:14px;
  padding:12px;
  background:#f8fafc;
  color:#475569;
  font-size:13px;
}
.demoLogin strong{
  display:block;
  color:#0f172a;
  margin-bottom:4px;
}
.logoutBtn{
  margin-top:8px;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.12);
  color:#fff;
  border-radius:999px;
  padding:7px 10px;
  cursor:pointer;
  font-weight:800;
}
.writerBadge{
  display:inline-block;
  border-radius:999px;
  background:#eef2ff;
  color:#3730a3;
  padding:3px 8px;
  font-size:12px;
  font-weight:800;
}

.deadlineList{
  display:grid;
  gap:10px;
}
.deadlineItem{
  display:grid;
  grid-template-columns:72px 1fr auto;
  gap:12px;
  align-items:center;
  border:1px solid #e2e8f0;
  border-radius:16px;
  padding:10px;
  background:#fff;
}
.deadlineThumb{
  width:72px;
  height:54px;
  border-radius:12px;
  background:#e2e8f0;
  overflow:hidden;
  display:grid;
  place-items:center;
  color:#64748b;
  font-size:12px;
  font-weight:700;
}
.deadlineThumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.deadlineMain strong{
  display:block;
  color:#0f172a;
  font-size:15px;
}
.deadlineMain span{
  display:block;
  color:#475569;
  font-size:13px;
  margin-top:3px;
}
.deadlineType{
  display:inline-block;
  border-radius:999px;
  background:#f1f5f9;
  color:#334155;
  padding:3px 8px;
  font-size:12px;
  margin-right:5px;
}
.deadlineActions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.deadlineActions button{
  border:0;
  border-radius:10px;
  padding:8px 10px;
  cursor:pointer;
  font-weight:800;
  background:#dbeafe;
  color:#1d4ed8;
}
@media(max-width:700px){
  .deadlineItem{
    grid-template-columns:1fr;
  }
  .deadlineThumb{
    width:100%;
    height:140px;
  }
  .deadlineActions{
    justify-content:flex-start;
  }
}

.cloudStatus{
  display:block;
  margin-top:6px;
  font-size:12px;
  color:#dbeafe;
}
.cloudStatus.ok{color:#86efac}
.cloudStatus.warn{color:#fde68a}
.cloudStatus.bad{color:#fecaca}

.deletableChip{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.chipDeleteBtn{
  border:0;
  background:#fee2e2;
  color:#991b1b;
  border-radius:999px;
  padding:4px 8px;
  cursor:pointer;
  font-weight:800;
  font-size:12px;
}

.sortableItem{
  cursor:grab;
  user-select:none;
}
.sortableItem:active{
  cursor:grabbing;
}
.sortableItem.dragging{
  opacity:.45;
  transform:scale(.98);
}
.dragHandle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  border-radius:8px;
  background:#e2e8f0;
  color:#475569;
  font-weight:900;
  font-size:13px;
  flex:0 0 auto;
}
.vehicleMasterItem.sortableItem{
  cursor:grab;
}
.vehicleMasterItem.dragging{
  opacity:.45;
  outline:2px dashed #0f766e;
}
.sortHint{
  display:block;
  margin-top:8px;
  color:#64748b;
  font-size:12px;
}

.photoDropZone{
  position:relative;
  border:1px dashed #cbd5e1;
  border-radius:14px;
  padding:10px;
  background:#f8fafc;
  transition:.15s ease;
}
.photoDropZone input[type="file"]{
  background:#fff;
}
.photoDropZone::after{
  content:"ドラッグ・貼り付けOK";
  display:block;
  margin-top:6px;
  color:#64748b;
  font-size:12px;
  font-weight:700;
}
.photoDropZone.activeDrop{
  border-color:#0f766e;
  background:#ecfdf5;
  box-shadow:0 0 0 3px rgba(15,118,110,.12);
}
.photoDropZone.hasPhoto::after{
  content:"画像セット済み";
  color:#166534;
}
.photoDropZone .pasteHint{
  display:block;
  margin-top:4px;
  color:#64748b;
  font-size:11px;
}

.pdfBadge{
  display:inline-grid;
  place-items:center;
  width:100%;
  height:100%;
  background:#fee2e2;
  color:#991b1b;
  font-weight:900;
  font-size:15px;
}
.pdfLink{
  display:inline-block;
  margin-top:6px;
  border-radius:10px;
  padding:6px 9px;
  background:#fee2e2;
  color:#991b1b;
  font-weight:800;
  font-size:12px;
  text-decoration:none;
}
.docThumb .pdfBadge,
.docImg .pdfBadge,
.vehicleMasterThumb .pdfBadge,
.vehiclePhoto .pdfBadge,
.operationThumb .pdfBadge{
  min-height:44px;
}
.photoDropZone::after{
  content:"画像/PDF ドラッグ・貼り付けOK";
}
.photoDropZone.hasPhoto::after{
  content:"ファイルセット済み";
}

.kindBadge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:3px 8px;
  font-size:11px;
  font-weight:900;
  margin-left:6px;
  background:#ede9fe;
  color:#5b21b6;
}
.kindBadge.vehicle{
  background:#dcfce7;
  color:#166534;
}
.kindBadge.machine{
  background:#ede9fe;
  color:#5b21b6;
}


/* 写真の自動調整：車検証欄にかぶらないように固定枠へ収める */
.vehicleCard{
  overflow:hidden;
  display:flex;
  flex-direction:column;
}

.vehiclePhoto{
  height:230px;
  min-height:230px;
  max-height:230px;
  overflow:hidden;
  background:#eef2f7;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:18px 18px 0 0;
}

.vehiclePhoto img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}

.vehicleCard > div:not(.vehiclePhoto){
  position:relative;
  z-index:2;
}

.vehicleCard .docRow,
.vehicleCard .vehicleDocRow{
  background:rgba(255,255,255,.96);
}

.vehicleMasterItem{
  overflow:hidden;
}

.vehicleMasterThumb{
  width:74px;
  height:74px;
  min-width:74px;
  min-height:74px;
  max-width:74px;
  max-height:74px;
  overflow:hidden;
  background:#eef2f7;
  display:flex;
  align-items:center;
  justify-content:center;
}

.vehicleMasterThumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}

.photoBox{
  max-height:360px;
  overflow:hidden;
  background:#eef2f7;
  display:flex;
  align-items:center;
  justify-content:center;
}

.photoBox img{
  width:100%;
  max-height:360px;
  object-fit:contain;
  object-position:center;
  display:block;
}

.docThumb,
.docImg,
.deadlineThumb,
.operationThumb{
  overflow:hidden;
  background:#eef2f7;
  display:flex;
  align-items:center;
  justify-content:center;
}

.docThumb img,
.docImg img,
.deadlineThumb img,
.operationThumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}

/* スマホでは写真枠を少し低くして見やすく */
@media (max-width: 720px){
  .vehiclePhoto{
    height:190px;
    min-height:190px;
    max-height:190px;
  }
}


/* モバイル時のアルコール呼気記録のチェック位置ずれ対策 */
.horizontalChecks label,
.choiceRow label{
  flex:0 0 auto;
  min-width:0;
}
.horizontalChecks input[type="checkbox"],
.choiceRow input[type="radio"]{
  width:20px;
  height:20px;
  margin:0;
  flex:0 0 20px;
  vertical-align:middle;
}

@media(max-width:700px){
  .horizontalChecks{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px 14px;
    align-items:center;
  }
  .horizontalChecks label{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:8px;
    white-space:nowrap;
  }
  .choiceRow{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px 16px;
    align-items:center;
  }
  .choiceRow label{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:8px;
    white-space:nowrap;
  }
}

.pdfLink{
  border:0;
  cursor:pointer;
}


/* アプリ内PDF/画像ビューア */
.fileModal.hidden{
  display:none;
}
.fileModal{
  position:fixed;
  inset:0;
  z-index:9999;
}
.fileModalBackdrop{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.62);
  backdrop-filter:blur(2px);
}
.fileModalPanel{
  position:absolute;
  inset:24px;
  max-width:1100px;
  margin:auto;
  background:#fff;
  border-radius:18px;
  box-shadow:0 24px 80px rgba(15,23,42,.35);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.fileModalHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  background:#0f172a;
  color:#fff;
}
.fileModalHead strong{
  font-size:15px;
}
.fileModalHead button{
  border:0;
  border-radius:999px;
  background:#fff;
  color:#0f172a;
  padding:8px 14px;
  font-weight:800;
  cursor:pointer;
}
.fileModalBody{
  flex:1;
  min-height:0;
  background:#f8fafc;
}
.fileModalBody iframe{
  width:100%;
  height:100%;
  border:0;
  background:#fff;
}
.fileModalImageWrap{
  width:100%;
  height:100%;
  overflow:auto;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#111827;
}
.fileModalImageWrap img{
  max-width:100%;
  height:auto;
  display:block;
}
.fileModalLoading{
  padding:24px;
  font-weight:800;
  color:#334155;
}
.fileModalError{
  padding:24px;
  color:#991b1b;
  font-weight:800;
}
@media(max-width:700px){
  .fileModalPanel{
    inset:8px;
    border-radius:14px;
  }
  .fileModalHead{
    padding:10px 12px;
  }
  .fileModalHead button{
    padding:7px 12px;
  }
}


/* アルコール呼気記録：追加ボタンと追加済み一覧 */
.alcoholMemoInside{
  display:block;
  margin-top:14px;
}
.alcoholAddRow{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:12px;
}
.alcoholAddRow small{
  color:#64748b;
  font-weight:700;
}
.alcoholAddBtn{
  min-width:220px;
}
.alcoholList{
  margin-top:12px;
}
.alcoholRecordItem{
  border:1px solid #dbe3ed;
  border-radius:14px;
  background:#fff;
  padding:12px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  align-items:start;
}
.alcoholRecordItem strong{
  display:block;
  color:#0f172a;
  margin-bottom:4px;
}
.alcoholRecordChips{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:8px;
}
.alcoholRecordChips span{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  background:#f1f5f9;
  color:#334155;
  font-size:12px;
  font-weight:800;
  padding:4px 8px;
}
.alcoholRecordChips .ok{
  background:#dcfce7;
  color:#166534;
}
.alcoholRecordChips .ng{
  background:#fee2e2;
  color:#991b1b;
}
.alcoholRecordItem button{
  border:0;
  border-radius:10px;
  background:#fee2e2;
  color:#991b1b;
  font-weight:800;
  padding:8px 10px;
  cursor:pointer;
}
@media(max-width:700px){
  .alcoholAddBtn{
    width:100%;
    min-width:0;
  }
  .alcoholRecordItem{
    grid-template-columns:1fr;
  }
}


.machineNonePill{
  background:#fff7ed !important;
  border-color:#fdba74 !important;
  color:#9a3412 !important;
  font-weight:900 !important;
}


/* 安全版：トップ内で展開する日報一覧 */
.reportListSafeCard{
  background:linear-gradient(135deg,#2563eb,#06b6d4) !important;
  color:#fff !important;
  border:0 !important;
  text-align:left;
  cursor:pointer;
}
.reportListSafeCard strong,
.reportListSafeCard small,
.reportListSafeCard span{
  color:#fff !important;
}
.reportListSafeCard:hover{
  filter:brightness(1.05);
  transform:translateY(-2px);
}
.topReportSafePanel{
  margin-top:22px;
}
.topReportFilters{
  display:flex;
  align-items:end;
  gap:10px;
  flex-wrap:wrap;
  margin:12px 0;
}
.topReportFilters label{
  display:grid;
  gap:6px;
  color:#475569;
  font-size:13px;
  font-weight:700;
}
.topReportFilters input{
  border:1px solid #cbd5e1;
  border-radius:12px;
  padding:10px 12px;
  font-size:15px;
  background:#fff;
}
.darkSub{
  background:#0f172a !important;
  color:#fff !important;
}
.topReportMonthly{
  display:grid;
  gap:10px;
}
.topReportItem{
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  align-items:center;
  border:1px solid #e2e8f0;
  border-radius:14px;
  background:#fff;
  padding:12px;
}
.topReportItem strong{
  display:block;
  color:#0f172a;
  font-size:15px;
}
.topReportItem span{
  display:block;
  color:#64748b;
  font-size:13px;
  margin-top:3px;
}
.topReportItem button,
.topReportDetailSafe button{
  border:0;
  border-radius:999px;
  background:#0f766e;
  color:#fff;
  font-weight:900;
  padding:9px 13px;
  cursor:pointer;
}
.topReportDetailSafe{
  margin-top:14px;
}
.topReportDetailCard{
  border:1px solid #e2e8f0;
  border-radius:16px;
  background:#fff;
  padding:14px;
  display:grid;
  gap:10px;
}
.topReportDetailGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.topReportDetailGrid div{
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:12px;
  padding:10px;
}
.topReportDetailGrid b{
  display:block;
  color:#475569;
  font-size:12px;
  margin-bottom:4px;
}
.topReportDetailGrid span{
  color:#0f172a;
  font-weight:800;
}
@media(max-width:700px){
  .topReportItem{
    grid-template-columns:1fr;
  }
  .topReportItem button{
    width:100%;
  }
  .topReportDetailGrid{
    grid-template-columns:1fr;
  }
}


/* 日報一覧：専用ページ版 */
.reportListSafeCard{
  background:linear-gradient(135deg,#2563eb,#06b6d4) !important;
  color:#fff !important;
  border:0 !important;
}
.reportListSafeCard strong,
.reportListSafeCard small,
.reportListSafeCard span{
  color:#fff !important;
}
.reportListSafeCard:hover{
  filter:brightness(1.05);
  transform:translateY(-2px);
}
.topReportFilters{
  display:flex;
  align-items:end;
  gap:10px;
  flex-wrap:wrap;
  margin:12px 0;
}
.topReportFilters label{
  display:grid;
  gap:6px;
  color:#475569;
  font-size:13px;
  font-weight:700;
}
.topReportFilters input{
  border:1px solid #cbd5e1;
  border-radius:12px;
  padding:10px 12px;
  font-size:15px;
  background:#fff;
}
.topReportMonthly{
  display:grid;
  gap:10px;
}
.topReportItem{
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  align-items:center;
  border:1px solid #e2e8f0;
  border-radius:14px;
  background:#fff;
  padding:12px;
}
.topReportItem strong{
  display:block;
  color:#0f172a;
  font-size:15px;
}
.topReportItem span{
  display:block;
  color:#64748b;
  font-size:13px;
  margin-top:3px;
}
.topReportItem button,
.topReportDetailSafe button{
  border:0;
  border-radius:999px;
  background:#0f766e;
  color:#fff;
  font-weight:900;
  padding:9px 13px;
  cursor:pointer;
}
.topReportDetailCard{
  border:1px solid #e2e8f0;
  border-radius:16px;
  background:#fff;
  padding:14px;
  display:grid;
  gap:10px;
}
.topReportDetailGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.topReportDetailGrid div{
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:12px;
  padding:10px;
}
.topReportDetailGrid b{
  display:block;
  color:#475569;
  font-size:12px;
  margin-bottom:4px;
}
.topReportDetailGrid span{
  color:#0f172a;
  font-weight:800;
}
@media(max-width:700px){
  .topReportItem{
    grid-template-columns:1fr;
  }
  .topReportItem button{
    width:100%;
  }
  .topReportDetailGrid{
    grid-template-columns:1fr;
  }
}


/* トップ下の集計カードを押せるようにする */
.homeStatClickable{
  cursor:pointer;
  transition:.15s ease;
  position:relative;
}
.homeStatClickable:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 32px rgba(15,23,42,.14);
}
.homeStatClickable:active{
  transform:translateY(0);
}
.homeStatClickable::after{
  content:"タップして確認";
  display:block;
  margin-top:8px;
  color:#64748b;
  font-size:12px;
  font-weight:800;
}


/* 日報一覧からの日報編集 */
.reportEditForm{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  border:1px solid #dbe3ed;
  border-radius:16px;
  background:#f8fafc;
  padding:14px;
}
.reportEditForm label{
  display:grid;
  gap:6px;
  font-size:13px;
  color:#475569;
  font-weight:800;
}
.reportEditForm input,
.reportEditForm select,
.reportEditForm textarea{
  border:1px solid #cbd5e1;
  border-radius:12px;
  padding:10px 12px;
  font-size:14px;
  background:#fff;
}
.reportEditForm textarea{
  min-height:90px;
  resize:vertical;
}
.reportEditForm .wide{
  grid-column:1/-1;
}
.reportEditActions{
  grid-column:1/-1;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.reportEditActions button{
  border:0;
  border-radius:999px;
  padding:10px 16px;
  font-weight:900;
  cursor:pointer;
}
.reportEditActions .saveEdit{
  background:#0f766e;
  color:#fff;
}
.reportEditActions .cancelEdit{
  background:#0f172a;
  color:#fff;
}
.reportDetailButtons .editBtn{
  background:#2563eb;
}
@media(max-width:700px){
  .reportEditForm{
    grid-template-columns:1fr;
  }
  .reportEditActions button{
    width:100%;
  }
}


/* アカウント管理 */
#showRegisterBtn,
#registerForm,
.demoLogin{
  display:none !important;
}
.usersOnly{
  background:linear-gradient(135deg,#0f172a,#475569) !important;
  color:#fff !important;
}
.usersOnly strong,
.usersOnly small,
.usersOnly span{
  color:#fff !important;
}
.userAccountList{
  display:grid;
  gap:10px;
}
.userAccountItem{
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  align-items:center;
  border:1px solid #e2e8f0;
  border-radius:14px;
  background:#fff;
  padding:12px;
}
.userAccountItem strong{
  display:block;
  color:#0f172a;
}
.userAccountItem span{
  display:block;
  color:#64748b;
  font-size:13px;
  margin-top:3px;
}
.userAccountItem button{
  border:0;
  border-radius:10px;
  background:#fee2e2;
  color:#991b1b;
  padding:8px 10px;
  font-weight:900;
  cursor:pointer;
}
.noPermissionBox{
  border:1px solid #fecaca;
  background:#fef2f2;
  color:#991b1b;
  border-radius:14px;
  padding:14px;
  font-weight:900;
}
@media(max-width:700px){
  .userAccountItem{
    grid-template-columns:1fr;
  }
  .userAccountItem button{
    width:100%;
  }
}


/* 日報管理内の日報一覧は非表示。日報一覧はトップの日報一覧ページで確認 */
#reports .reportListPanel,
#reports .reportTablePanel,
#reports #reportListTableWrap,
#reports #reportTableWrap,
#reports #reportList.hidden,
#reports #reportTable.hidden,
#reportManagementListHidden{
  display:none !important;
}

.reportBottomBackBtn{
  display:flex !important;
  justify-content:center;
  margin:22px 0 6px;
}


/* 日報管理ページ内の一覧は完全に非表示 */
#reports .reportListPanel,
#reports .reportTablePanel,
#reports .reportsListPanel,
#reports #reportList,
#reports #reportsList,
#reports #reportTable,
#reports table.reportTable,
#reports .tableWrap:has(#reportTable),
#reports .tableWrap:has(#reportsList){
  display:none !important;
}


/* CSV出力 分割ボタン */
.exportSplitPanel{
  border:2px solid #dbeafe;
  background:linear-gradient(180deg,#ffffff,#f8fbff);
}
.exportSplitButtons{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:12px;
}
.exportSplitButtons button{
  border:0;
  border-radius:14px;
  padding:13px 18px;
  font-weight:900;
  cursor:pointer;
  color:#fff;
  background:#2563eb;
  box-shadow:0 10px 22px rgba(37,99,235,.18);
}
.exportSplitButtons button:nth-child(2){
  background:#0f766e;
  box-shadow:0 10px 22px rgba(15,118,110,.18);
}
.hintText{
  color:#64748b;
  font-size:13px;
  margin:10px 0 0;
}
@media(max-width:700px){
  .exportSplitButtons button{
    width:100%;
  }
}


/* 作業員ごとCSV出力 */
.workerCsvPanel{
  border:2px solid #dcfce7;
  background:linear-gradient(180deg,#ffffff,#f7fff9);
}
.workerCsvControls{
  display:flex;
  align-items:end;
  gap:12px;
  flex-wrap:wrap;
  margin-top:12px;
}
.workerCsvControls label{
  display:grid;
  gap:6px;
  min-width:220px;
  color:#475569;
  font-size:13px;
  font-weight:800;
}
.workerCsvControls select{
  border:1px solid #cbd5e1;
  border-radius:12px;
  padding:11px 12px;
  font-size:15px;
  background:#fff;
}
.workerCsvControls button{
  border:0;
  border-radius:14px;
  padding:13px 18px;
  font-weight:900;
  cursor:pointer;
  color:#fff;
  background:#0f766e;
  box-shadow:0 10px 22px rgba(15,118,110,.18);
}
.workerCsvControls button:nth-of-type(2){
  background:#7c3aed;
  box-shadow:0 10px 22px rgba(124,58,237,.18);
}
@media(max-width:700px){
  .workerCsvControls,
  .workerCsvControls label,
  .workerCsvControls button{
    width:100%;
  }
}


/* 日報一覧編集：運行管理・アルコール呼気記録 */
.reportEditSubSection{
  grid-column:1/-1;
  border:1px solid #dbeafe;
  background:#fff;
  border-radius:16px;
  padding:12px;
  display:grid;
  gap:12px;
}
.reportEditSubSection h4{
  margin:0;
  color:#0f172a;
  font-size:16px;
}
.reportEditMiniGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.reportEditMiniGrid label{
  display:grid;
  gap:6px;
  font-size:13px;
  color:#475569;
  font-weight:800;
}
.reportEditMiniGrid input,
.reportEditMiniGrid select,
.reportEditMiniGrid textarea{
  border:1px solid #cbd5e1;
  border-radius:12px;
  padding:10px 12px;
  font-size:14px;
  background:#fff;
}
.reportEditMiniGrid textarea{
  min-height:70px;
}
.reportEditMiniGrid .wide{
  grid-column:1/-1;
}
.reportEditRecordTitle{
  font-weight:900;
  color:#2563eb;
  border-top:1px dashed #cbd5e1;
  padding-top:10px;
}
.reportEditRecordTitle:first-of-type{
  border-top:0;
  padding-top:0;
}
@media(max-width:700px){
  .reportEditMiniGrid{
    grid-template-columns:1fr;
  }
}


/* 日報管理画面で日報編集中の表示 */
.reportEditModeBanner{
  margin:14px 0;
  padding:12px 14px;
  border:2px solid #2563eb;
  border-radius:16px;
  background:#eff6ff;
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.reportEditModeBanner strong{
  color:#1d4ed8;
  font-size:16px;
}
.reportEditModeBanner span{
  color:#334155;
  font-weight:800;
}
.reportEditModeBanner button{
  margin-left:auto;
  border:0;
  border-radius:999px;
  background:#0f172a;
  color:#fff;
  padding:8px 12px;
  font-weight:900;
  cursor:pointer;
}
.reportDetailButtons .editBtn{
  background:#2563eb;
  color:#fff;
}
@media(max-width:700px){
  .reportEditModeBanner{
    display:grid;
  }
  .reportEditModeBanner button{
    margin-left:0;
    width:100%;
  }
}


/* 日報管理画面で日報編集中の表示 */
.reportEditModeBanner{
  margin:14px 0;
  padding:12px 14px;
  border:2px solid #2563eb;
  border-radius:16px;
  background:#eff6ff;
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.reportEditModeBanner strong{
  color:#1d4ed8;
  font-size:16px;
}
.reportEditModeBanner span{
  color:#334155;
  font-weight:800;
}
.reportEditModeBanner button{
  margin-left:auto;
  border:0;
  border-radius:999px;
  background:#0f172a;
  color:#fff;
  padding:8px 12px;
  font-weight:900;
  cursor:pointer;
}
.reportDetailButtons .editBtn{
  background:#2563eb;
  color:#fff;
}
@media(max-width:700px){
  .reportEditModeBanner{
    display:grid;
  }
  .reportEditModeBanner button{
    margin-left:0;
    width:100%;
  }
}


/* ボタンカード内の項目文字を赤に変更 */
.menuCard strong,
.menuCard small,
.menuCard .icon,
.menuCard span{
  color:#dc2626 !important;
}

.menuCard.reportListSafeCard strong,
.menuCard.reportListSafeCard small,
.menuCard.reportListSafeCard .icon,
.menuCard.reportListSafeCard span,
.menuCard.usersOnly strong,
.menuCard.usersOnly small,
.menuCard.usersOnly .icon,
.menuCard.usersOnly span{
  color:#dc2626 !important;
}


/* トップページのボタンカード文字色は元の色に戻す */
.menuCard strong,
.menuCard small,
.menuCard .icon,
.menuCard span,
.menuCard.reportListSafeCard strong,
.menuCard.reportListSafeCard small,
.menuCard.reportListSafeCard .icon,
.menuCard.reportListSafeCard span,
.menuCard.usersOnly strong,
.menuCard.usersOnly small,
.menuCard.usersOnly .icon,
.menuCard.usersOnly span{
  color:inherit !important;
}

/* 入力フォームの項目ラベル文字を赤に変更 */
.form > label,
.formSection label,
.alcoholTopGrid > label,
.commuteGrid > label,
.operationMemoLabel,
.choiceBox > span,
.sectionTitle strong,
.miniTitle{
  color:#dc2626 !important;
}

/* ラベル内の入力欄や選択肢の文字は通常色のまま */
.form input,
.form select,
.form textarea,
.form label input,
.form label select,
.form label textarea,
.form .checkGroup label,
.form .horizontalChecks label,
.form .choiceRow label,
.form .inlineRadio label{
  color:#0f172a !important;
}

/* チェック項目の見出しラベルだけ赤 */
.form > label.wide,
.form label.wideFull,
.formSection .sectionTitle,
.formSection .miniTitle{
  color:#dc2626 !important;
}


/* 共有先の車両・重機写真読み込み表示 */
.photoLoadingBox,
.photoErrorBox,
.vehiclePhotoLoaded{
  border:1px solid #cbd5e1;
  border-radius:14px;
  background:#f8fafc;
  min-height:120px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:12px;
  color:#64748b;
  font-weight:800;
  text-align:center;
}
.photoErrorBox{
  color:#b91c1c;
  background:#fef2f2;
  border-color:#fecaca;
}
.vehiclePhotoLoaded img{
  width:100%;
  max-height:260px;
  object-fit:contain;
  border-radius:12px;
  display:block;
}


/* 車両・重機一覧の写真枠 */
.machinePhoto{
  width:74px;
  height:74px;
  border-radius:12px;
  background:#eef2f7;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  color:#64748b;
  font-size:12px;
  font-weight:800;
  flex:0 0 74px;
  text-align:center;
}
.machinePhoto img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.machinePhoto.empty{
  background:#f1f5f9;
  color:#94a3b8;
}


/* 車両書類の登録済み表示 */
.docStatusBadge.ok,
.vehicleDocRow em.ok,
.machineDocGrid em.ok{
  background:#dcfce7 !important;
  color:#166534 !important;
}


/* 車両写真の読込中を短く見せる */
.machinePhoto,
.vehiclePhoto{
  width:74px;
  height:74px;
  border-radius:12px;
  background:#eef2f7;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  color:#64748b;
  font-size:12px;
  font-weight:800;
  flex:0 0 74px;
  text-align:center;
}
.machinePhoto img,
.vehiclePhoto img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.machinePhoto.empty,
.vehiclePhoto.empty{
  background:#f1f5f9;
  color:#94a3b8;
}


/* 共有先の写真・書類プレビュー最終調整 */
.vehiclePhoto,
.machinePhoto{
  width:74px;
  height:74px;
  border-radius:12px;
  background:#eef2f7;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  color:#64748b;
  font-size:12px;
  font-weight:800;
  flex:0 0 74px;
  text-align:center;
}
.vehiclePhoto img,
.machinePhoto img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.docPreviewMini{
  width:58px;
  height:58px;
  border-radius:10px;
  background:#eef2f7;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  color:#64748b;
  font-size:11px;
  font-weight:900;
  flex:0 0 58px;
}
.docPreviewMini img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.docPreviewMini .pdfBadge,
.pdfBadge{
  background:#fee2e2;
  color:#b91c1c;
  border-radius:10px;
  padding:10px;
  font-weight:900;
}
.vehicleDocRow em.ok,
.machineDocGrid em.ok{
  background:#dcfce7 !important;
  color:#166534 !important;
  border-radius:999px;
  padding:2px 8px;
}
.fileRefPreview{
  color:#64748b;
  font-size:11px;
  font-weight:900;
}


/* 車両・重機カードの写真位置崩れ修正 */
.vehicleCard{
  display:flex !important;
  align-items:flex-start !important;
  gap:14px !important;
  overflow:hidden !important;
}

.vehicleCard > .vehiclePhoto,
.vehicleCard .vehiclePhoto,
.machineCard > .vehiclePhoto,
.machineCard .vehiclePhoto,
.machineCard > .machinePhoto,
.machineCard .machinePhoto{
  width:88px !important;
  height:88px !important;
  min-width:88px !important;
  max-width:88px !important;
  min-height:88px !important;
  max-height:88px !important;
  flex:0 0 88px !important;
  border-radius:12px !important;
  overflow:hidden !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#eef2f7 !important;
  margin:0 !important;
  padding:0 !important;
  position:relative !important;
}

.vehicleCard > .vehiclePhoto img,
.vehicleCard .vehiclePhoto img,
.machineCard > .vehiclePhoto img,
.machineCard .vehiclePhoto img,
.machineCard > .machinePhoto img,
.machineCard .machinePhoto img{
  width:100% !important;
  height:100% !important;
  min-width:100% !important;
  max-width:100% !important;
  min-height:100% !important;
  max-height:100% !important;
  object-fit:cover !important;
  display:block !important;
  border-radius:12px !important;
  margin:0 !important;
  padding:0 !important;
  position:static !important;
}

.vehicleBody,
.machineCardBody{
  flex:1 1 auto !important;
  min-width:0 !important;
}

/* 書類PDFの小さい枠はカード写真より小さく固定 */
.vehicleDocRow .docPreviewMini,
.machineDocGrid .docPreviewMini{
  width:58px !important;
  height:58px !important;
  min-width:58px !important;
  max-width:58px !important;
  min-height:58px !important;
  max-height:58px !important;
  flex:0 0 58px !important;
  overflow:hidden !important;
}

.vehicleDocRow .docPreviewMini img,
.machineDocGrid .docPreviewMini img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}


/* 車両・重機カード写真を見やすい大きさに調整 */
.vehicleCard{
  align-items:flex-start !important;
}

/* 一覧カードのメイン写真は大きめに表示 */
.vehicleCard > .vehiclePhoto,
.vehicleCard .vehiclePhoto,
.machineCard > .vehiclePhoto,
.machineCard .vehiclePhoto,
.machineCard > .machinePhoto,
.machineCard .machinePhoto{
  width:140px !important;
  height:110px !important;
  min-width:140px !important;
  max-width:140px !important;
  min-height:110px !important;
  max-height:110px !important;
  flex:0 0 140px !important;
  border-radius:14px !important;
  overflow:hidden !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#eef2f7 !important;
  margin:0 0 10px 0 !important;
  padding:0 !important;
}

/* 写真は枠いっぱいに、でもカードからはみ出さない */
.vehicleCard > .vehiclePhoto img,
.vehicleCard .vehiclePhoto img,
.machineCard > .vehiclePhoto img,
.machineCard .vehiclePhoto img,
.machineCard > .machinePhoto img,
.machineCard .machinePhoto img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  display:block !important;
  border-radius:14px !important;
}

/* 縦長写真でも見切れすぎないよう、クリック用ではなく一覧は中央寄せ */
.vehiclePhoto img,
.machinePhoto img{
  object-position:center center !important;
}

/* 書類の小さいプレビューはそのまま小さめ */
.vehicleDocRow .docPreviewMini,
.machineDocGrid .docPreviewMini{
  width:58px !important;
  height:58px !important;
  min-width:58px !important;
  max-width:58px !important;
  min-height:58px !important;
  max-height:58px !important;
  flex:0 0 58px !important;
}

/* 画面が狭い時は少しだけ小さく */
@media(max-width:700px){
  .vehicleCard > .vehiclePhoto,
  .vehicleCard .vehiclePhoto,
  .machineCard > .vehiclePhoto,
  .machineCard .vehiclePhoto,
  .machineCard > .machinePhoto,
  .machineCard .machinePhoto{
    width:120px !important;
    height:96px !important;
    min-width:120px !important;
    max-width:120px !important;
    min-height:96px !important;
    max-height:96px !important;
    flex:0 0 120px !important;
  }
}


/* 車両・重機カード写真を横幅いっぱいに表示 */
.vehicleCard{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:12px !important;
  overflow:hidden !important;
}

.vehicleCard > .vehiclePhoto,
.vehicleCard .vehiclePhoto{
  width:100% !important;
  height:170px !important;
  min-width:100% !important;
  max-width:100% !important;
  min-height:170px !important;
  max-height:170px !important;
  flex:0 0 170px !important;
  border-radius:16px !important;
  overflow:hidden !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#eef2f7 !important;
  margin:0 !important;
  padding:0 !important;
}

.vehicleCard > .vehiclePhoto img,
.vehicleCard .vehiclePhoto img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  display:block !important;
  border-radius:16px !important;
}

.vehicleCard .vehicleBody{
  width:100% !important;
  min-width:0 !important;
}

/* machineCard型で表示される場合も横幅いっぱい */
.machineCard{
  display:flex !important;
  align-items:flex-start !important;
  gap:14px !important;
}

.machineCard > .machinePhoto,
.machineCard .machinePhoto{
  width:180px !important;
  height:130px !important;
  min-width:180px !important;
  max-width:180px !important;
  min-height:130px !important;
  max-height:130px !important;
  flex:0 0 180px !important;
}

/* スマホは高さを少し抑える */
@media(max-width:700px){
  .vehicleCard > .vehiclePhoto,
  .vehicleCard .vehiclePhoto{
    height:145px !important;
    min-height:145px !important;
    max-height:145px !important;
    flex:0 0 145px !important;
  }
}


/* 各種登録の下にある車両情報カードも写真を横幅いっぱいにする */
.machineCard{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:12px !important;
  overflow:hidden !important;
}

.machineCard > .machinePhoto,
.machineCard .machinePhoto,
.machineCard > .vehiclePhoto,
.machineCard .vehiclePhoto{
  width:100% !important;
  height:170px !important;
  min-width:100% !important;
  max-width:100% !important;
  min-height:170px !important;
  max-height:170px !important;
  flex:0 0 170px !important;
  border-radius:16px !important;
  overflow:hidden !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#eef2f7 !important;
  margin:0 !important;
  padding:0 !important;
}

.machineCard > .machinePhoto img,
.machineCard .machinePhoto img,
.machineCard > .vehiclePhoto img,
.machineCard .vehiclePhoto img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  display:block !important;
  border-radius:16px !important;
  margin:0 !important;
  padding:0 !important;
}

.machineCardBody{
  width:100% !important;
  min-width:0 !important;
}

/* 各種登録側のドラッグボタンは左上に軽く重ねる */
.machineCard .dragHandle{
  position:absolute !important;
  top:12px !important;
  left:12px !important;
  z-index:3 !important;
  background:rgba(255,255,255,.88) !important;
  border-radius:999px !important;
}

/* absolute配置用 */
.machineCard{
  position:relative !important;
}

/* 各種登録側でも書類の小さいプレビューは小さいまま */
.machineCard .vehicleDocRow .docPreviewMini,
.machineCard .machineDocGrid .docPreviewMini{
  width:58px !important;
  height:58px !important;
  min-width:58px !important;
  max-width:58px !important;
  min-height:58px !important;
  max-height:58px !important;
  flex:0 0 58px !important;
}

/* スマホでは少し低く */
@media(max-width:700px){
  .machineCard > .machinePhoto,
  .machineCard .machinePhoto,
  .machineCard > .vehiclePhoto,
  .machineCard .vehiclePhoto{
    height:145px !important;
    min-height:145px !important;
    max-height:145px !important;
    flex:0 0 145px !important;
  }
}


/* 車体が見えるように写真を大きく、情報欄をコンパクトにする */
.vehicleCard,
.machineCard{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:8px !important;
  overflow:hidden !important;
  padding:12px !important;
}

/* 車両一覧・各種登録どちらも写真をさらに大きく */
.vehicleCard > .vehiclePhoto,
.vehicleCard .vehiclePhoto,
.machineCard > .machinePhoto,
.machineCard .machinePhoto,
.machineCard > .vehiclePhoto,
.machineCard .vehiclePhoto{
  width:100% !important;
  height:245px !important;
  min-width:100% !important;
  max-width:100% !important;
  min-height:245px !important;
  max-height:245px !important;
  flex:0 0 245px !important;
  border-radius:16px !important;
  overflow:hidden !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#eef2f7 !important;
  margin:0 !important;
  padding:0 !important;
}

/* 車体全体が見えやすいように contain 寄りに変更 */
.vehicleCard > .vehiclePhoto img,
.vehicleCard .vehiclePhoto img,
.machineCard > .machinePhoto img,
.machineCard .machinePhoto img,
.machineCard > .vehiclePhoto img,
.machineCard .vehiclePhoto img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center center !important;
  display:block !important;
  border-radius:16px !important;
  background:#f8fafc !important;
  margin:0 !important;
  padding:0 !important;
}

/* 本体情報を詰める */
.vehicleBody,
.machineCardBody{
  width:100% !important;
  min-width:0 !important;
  display:grid !important;
  gap:6px !important;
}

.vehicleBody strong,
.machineCardBody h4{
  font-size:16px !important;
  line-height:1.25 !important;
  margin:0 !important;
}

.vehicleBody small,
.machineCardBody p{
  font-size:12px !important;
  line-height:1.25 !important;
  margin:0 !important;
}

/* 点検欄を薄く低くする */
.vehicleDates{
  display:grid !important;
  gap:4px !important;
  margin:4px 0 !important;
}

.vehicleDates .dateRow,
.dateRow{
  min-height:28px !important;
  padding:5px 8px !important;
  border-radius:10px !important;
  font-size:12px !important;
}

.vehicleDates .dateRow span,
.dateRow span{
  font-size:12px !important;
}

.vehicleDates .dateRow b,
.dateRow b{
  font-size:12px !important;
}

.statusBadge{
  font-size:11px !important;
  padding:2px 7px !important;
}

/* 車検証・保険・自賠責欄をコンパクトにする */
.vehicleDocs,
.machineDocGrid{
  display:grid !important;
  gap:6px !important;
  margin-top:4px !important;
}

.vehicleDocRow{
  display:grid !important;
  grid-template-columns:42px 1fr !important;
  align-items:center !important;
  gap:8px !important;
  min-height:46px !important;
  padding:6px 8px !important;
  border-radius:10px !important;
}

.vehicleDocRow .docPreviewMini,
.machineDocGrid .docPreviewMini{
  width:42px !important;
  height:42px !important;
  min-width:42px !important;
  max-width:42px !important;
  min-height:42px !important;
  max-height:42px !important;
  flex:0 0 42px !important;
  border-radius:9px !important;
  font-size:10px !important;
}

.vehicleDocRow b,
.machineDocGrid b{
  font-size:12px !important;
  line-height:1.2 !important;
}

.vehicleDocRow span,
.machineDocGrid span,
.vehicleDocRow em,
.machineDocGrid em{
  font-size:11px !important;
  line-height:1.2 !important;
}

.vehicleDocRow em.ok,
.machineDocGrid em.ok{
  padding:1px 6px !important;
  font-size:11px !important;
}

/* 詳細・編集ボタン周りも少し詰める */
.machineActions,
.reportDetailButtons{
  margin-top:4px !important;
  gap:6px !important;
}

.machineActions button,
.vehicleCard button,
.machineCard button{
  padding:6px 10px !important;
  font-size:12px !important;
}

/* 各種登録側のドラッグボタンは写真の上に重ねて邪魔にならない位置 */
.machineCard{
  position:relative !important;
}

.machineCard .dragHandle{
  position:absolute !important;
  top:18px !important;
  left:18px !important;
  z-index:3 !important;
  background:rgba(255,255,255,.9) !important;
  border-radius:999px !important;
}

/* スマホでは写真を少し低く */
@media(max-width:700px){
  .vehicleCard > .vehiclePhoto,
  .vehicleCard .vehiclePhoto,
  .machineCard > .machinePhoto,
  .machineCard .machinePhoto,
  .machineCard > .vehiclePhoto,
  .machineCard .vehiclePhoto{
    height:200px !important;
    min-height:200px !important;
    max-height:200px !important;
    flex:0 0 200px !important;
  }
}


/* 各種登録：ドラッグ並び替え用つまみを押しやすくする */
.machineCard .dragHandle{
  position:absolute !important;
  top:14px !important;
  left:14px !important;
  z-index:20 !important;
  width:34px !important;
  height:34px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:rgba(255,255,255,.95) !important;
  border:1px solid #cbd5e1 !important;
  border-radius:999px !important;
  box-shadow:0 6px 14px rgba(15,23,42,.15) !important;
  cursor:grab !important;
  user-select:none !important;
  touch-action:none !important;
}

.machineCard .dragHandle:active{
  cursor:grabbing !important;
}

.machineCard.draggingMachineCard{
  opacity:.55 !important;
  transform:scale(.99) !important;
}

.machineCard.dragOverMachineCard{
  outline:3px dashed #2563eb !important;
  outline-offset:-8px !important;
}


/* 各種登録側の書類登録済み表示 */
.registryDocRow{
  display:grid !important;
  grid-template-columns:42px 1fr !important;
  align-items:center !important;
  gap:8px !important;
  min-height:46px !important;
  padding:6px 8px !important;
  border-radius:10px !important;
  background:#fff !important;
  border:1px solid #e2e8f0 !important;
}

.registryDocRow b{
  font-size:12px !important;
  line-height:1.2 !important;
}

.registryDocRow span,
.registryDocRow em{
  font-size:11px !important;
  line-height:1.2 !important;
}

.registryDocRow em.ok,
.machineDocGrid em.ok,
.vehicleDocRow em.ok{
  background:#dcfce7 !important;
  color:#166534 !important;
  border-radius:999px !important;
  padding:1px 6px !important;
  font-weight:900 !important;
}


/* 各種登録：書類表示とドラッグ並び替えを両立 */
.machineCard{
  position:relative !important;
}

.machineCard .dragHandle{
  position:absolute !important;
  top:14px !important;
  left:14px !important;
  z-index:50 !important;
  width:38px !important;
  height:38px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:rgba(255,255,255,.96) !important;
  border:1px solid #cbd5e1 !important;
  border-radius:999px !important;
  box-shadow:0 6px 14px rgba(15,23,42,.18) !important;
  cursor:grab !important;
  user-select:none !important;
  touch-action:none !important;
  color:#334155 !important;
  font-weight:900 !important;
}

.machineCard .dragHandle:active{
  cursor:grabbing !important;
}

.machineCard.draggingMachineCard{
  opacity:.55 !important;
  transform:scale(.99) !important;
}

.machineCard.dragOverMachineCard{
  outline:3px dashed #2563eb !important;
  outline-offset:-8px !important;
}

.registryDocRow em.ok,
.machineDocGrid em.ok,
.vehicleDocRow em.ok{
  background:#dcfce7 !important;
  color:#166534 !important;
  border-radius:999px !important;
  padding:1px 6px !important;
  font-weight:900 !important;
}


/* 各種登録：重機車両の上下並び替えボタン */
.machineTitleRow{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:8px !important;
}

.machineTitleRow h4{
  margin:0 !important;
  flex:1 1 auto !important;
}

.machineOrderBtns{
  display:flex !important;
  gap:4px !important;
  flex:0 0 auto !important;
}

.machineOrderBtns button{
  border:0 !important;
  border-radius:999px !important;
  background:#e0f2fe !important;
  color:#075985 !important;
  padding:5px 8px !important;
  font-size:11px !important;
  font-weight:900 !important;
  cursor:pointer !important;
}

.machineOrderBtns button:disabled{
  opacity:.35 !important;
  cursor:not-allowed !important;
}

.machineCard .dragHandle{
  position:absolute !important;
  top:14px !important;
  left:14px !important;
  z-index:50 !important;
  width:38px !important;
  height:38px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:rgba(255,255,255,.96) !important;
  border:1px solid #cbd5e1 !important;
  border-radius:999px !important;
  box-shadow:0 6px 14px rgba(15,23,42,.18) !important;
  cursor:grab !important;
  user-select:none !important;
  color:#334155 !important;
  font-weight:900 !important;
}


/* 各種登録：上へ下へボタンを消して、ドラッグだけに戻す */
.machineOrderBtns,
.machineTitleRow .machineOrderBtns{
  display:none !important;
}

.machineCard{
  position:relative !important;
}

.machineCard .dragHandle{
  position:absolute !important;
  top:14px !important;
  left:14px !important;
  z-index:80 !important;
  width:42px !important;
  height:42px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:rgba(255,255,255,.97) !important;
  border:1px solid #cbd5e1 !important;
  border-radius:999px !important;
  box-shadow:0 6px 14px rgba(15,23,42,.20) !important;
  cursor:grab !important;
  user-select:none !important;
  touch-action:none !important;
  color:#334155 !important;
  font-weight:900 !important;
  font-size:18px !important;
}

.machineCard .dragHandle:active{
  cursor:grabbing !important;
}

.machineCard.draggingMachineCard{
  opacity:.6 !important;
  transform:scale(.99) !important;
}

.machineCard.dragOverMachineCard{
  outline:4px dashed #2563eb !important;
  outline-offset:-8px !important;
}


/* 各種登録：スクショのような横並びカードに戻す */
#machineList .machineCard.compactMachineCard,
#machineList .machineCard{
  display:grid !important;
  grid-template-columns:42px 96px 1fr !important;
  align-items:center !important;
  gap:14px !important;
  padding:16px !important;
  min-height:150px !important;
  border-radius:18px !important;
  position:relative !important;
  overflow:hidden !important;
}

#machineList .machineCard .dragHandle{
  position:static !important;
  z-index:10 !important;
  width:28px !important;
  height:28px !important;
  min-width:28px !important;
  min-height:28px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#eaf1f8 !important;
  border:0 !important;
  border-radius:999px !important;
  box-shadow:none !important;
  cursor:grab !important;
  user-select:none !important;
  touch-action:none !important;
  color:#64748b !important;
  font-weight:900 !important;
  font-size:16px !important;
  padding:0 !important;
}

#machineList .machineCard .dragHandle:active{
  cursor:grabbing !important;
}

#machineList .machineCard .machinePhoto,
#machineList .machineCard .vehiclePhoto,
#machineList .machineCard .compactPhoto{
  width:96px !important;
  height:96px !important;
  min-width:96px !important;
  max-width:96px !important;
  min-height:96px !important;
  max-height:96px !important;
  flex:0 0 96px !important;
  border-radius:14px !important;
  overflow:hidden !important;
  background:#eef2f7 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:#64748b !important;
  font-size:12px !important;
  font-weight:800 !important;
  margin:0 !important;
  padding:0 !important;
}

#machineList .machineCard .machinePhoto img,
#machineList .machineCard .vehiclePhoto img,
#machineList .machineCard .compactPhoto img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  display:block !important;
  border-radius:14px !important;
}

#machineList .machineCardBody.compactMachineBody,
#machineList .machineCardBody{
  display:grid !important;
  gap:5px !important;
  min-width:0 !important;
  width:100% !important;
}

#machineList .machineCardBody h4{
  margin:0 !important;
  font-size:17px !important;
  line-height:1.25 !important;
}

#machineList .machineCardBody p{
  margin:0 !important;
  font-size:13px !important;
  color:#475569 !important;
  line-height:1.25 !important;
}

#machineList .compactDocGrid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:8px !important;
  margin-top:4px !important;
}

#machineList .compactDocBox{
  background:#fff !important;
  border:1px solid #dbe5f0 !important;
  border-radius:10px !important;
  padding:8px 10px !important;
  min-height:48px !important;
}

#machineList .compactDocBox b{
  display:block !important;
  font-size:12px !important;
  line-height:1.2 !important;
  margin-bottom:3px !important;
}

#machineList .compactDocBox span,
#machineList .compactDocBox em{
  font-size:12px !important;
  line-height:1.2 !important;
}

#machineList .compactDocBox em.ok{
  background:#dcfce7 !important;
  color:#166534 !important;
  border-radius:999px !important;
  padding:2px 8px !important;
  font-weight:900 !important;
}

#machineList .compactMachineActions,
#machineList .machineActions{
  display:flex !important;
  gap:8px !important;
  margin-top:4px !important;
}

#machineList .machineActions button{
  padding:7px 12px !important;
  font-size:13px !important;
  border-radius:10px !important;
}

#machineList .machineCard.draggingMachineCard{
  opacity:.6 !important;
  transform:scale(.99) !important;
}

#machineList .machineCard.dragOverMachineCard{
  outline:4px dashed #2563eb !important;
  outline-offset:-8px !important;
}

/* 上へ下へボタンは完全非表示 */
.machineOrderBtns,
.machineTitleRow .machineOrderBtns{
  display:none !important;
}

@media(max-width:700px){
  #machineList .machineCard.compactMachineCard,
  #machineList .machineCard{
    grid-template-columns:34px 82px 1fr !important;
    gap:10px !important;
    padding:12px !important;
  }
  #machineList .machineCard .machinePhoto,
  #machineList .machineCard .vehiclePhoto,
  #machineList .machineCard .compactPhoto{
    width:82px !important;
    height:82px !important;
    min-width:82px !important;
    max-width:82px !important;
    min-height:82px !important;
    max-height:82px !important;
  }
  #machineList .compactDocGrid{
    grid-template-columns:1fr !important;
  }
}


/* 各種登録：カード全体を掴んでグイーン並び替え */
#machineList .machineCard{
  cursor:grab !important;
  user-select:none !important;
  touch-action:none !important;
}

/* A307: vehicle files are preview-only until the single safe save runs. */
.a307VehicleFileStatus,
#vehicleSaveStatusA307{
  margin-top:8px;
  padding:9px 11px;
  border:1px solid #bfdbfe;
  border-radius:9px;
  background:#eff6ff;
  color:#1d4ed8;
  font-size:12px;
  font-weight:800;
  line-height:1.5;
}

#vehicleSaveStatusA307{
  margin:4px 0 12px;
}

.a307VehicleFileStatus[data-type="saving"],
#vehicleSaveStatusA307[data-type="saving"]{
  border-color:#fed7aa;
  background:#fff7ed;
  color:#9a3412;
}

.a307VehicleFileStatus[data-type="saved"],
#vehicleSaveStatusA307[data-type="success"]{
  border-color:#86efac;
  background:#dcfce7;
  color:#166534;
}

.a307VehicleFileStatus[data-type="error"],
#vehicleSaveStatusA307[data-type="error"]{
  border-color:#fecaca;
  background:#fee2e2;
  color:#991b1b;
}

/* A308: show whether each existing vehicle document is already registered. */
.a308ExistingVehicleDocStatus{
  margin-top:6px;
  padding:6px 8px;
  border-radius:8px;
  background:#f8fafc;
  color:#64748b;
  font-size:11px;
  font-weight:800;
  line-height:1.45;
}
.a308ExistingVehicleDocStatus[data-registered="true"]{
  background:#ecfdf5;
  color:#047857;
}
.a308ExistingVehicleDocStatus[data-registered="false"]{
  background:#fff7ed;
  color:#c2410c;
}

/* A309: idle-session warning shown five minutes before automatic logout. */
.idleWarningOverlayA309{
  position:fixed;
  inset:0;
  z-index:2147483646;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(15,23,42,.7);
  backdrop-filter:blur(5px);
}
.idleWarningOverlayA309.hidden{display:none!important}
.idleWarningCardA309{
  width:min(440px,100%);
  padding:28px;
  border:1px solid rgba(255,255,255,.45);
  border-radius:20px;
  background:#fff;
  color:#0f172a;
  box-shadow:0 24px 80px rgba(15,23,42,.35);
  text-align:center;
}
.idleWarningIconA309{
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  margin:0 auto 14px;
  border-radius:16px;
  background:#fff7ed;
  color:#ea580c;
  font-size:27px;
  font-weight:900;
}
.idleWarningCardA309 h2{
  margin:0;
  color:#0f172a;
  font-size:23px;
  line-height:1.4;
}
.idleWarningCardA309>p{
  margin:12px 0 18px;
  color:#475569;
  font-size:14px;
  line-height:1.75;
}
.idleWarningCountdownA309{
  display:grid;
  gap:4px;
  margin-bottom:18px;
  padding:14px;
  border-radius:14px;
  background:#fef2f2;
  color:#b91c1c;
}
.idleWarningCountdownA309 span{font-size:12px;font-weight:800}
.idleWarningCountdownA309 strong{font-size:34px;line-height:1.1}
.idleWarningActionsA309{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.idleWarningActionsA309 button{
  min-height:46px;
  border:0;
  border-radius:12px;
  background:#0f766e;
  color:#fff;
  font-weight:900;
  cursor:pointer;
}
.idleWarningActionsA309 button.sub{background:#334155}
.idleWarningActionsA309 button:focus-visible{
  outline:3px solid #38bdf8;
  outline-offset:3px;
}
@media(max-width:520px){
  .idleWarningCardA309{padding:22px 18px}
  .idleWarningActionsA309{grid-template-columns:1fr}
}

#machineList .machineCard:active{
  cursor:grabbing !important;
}

#machineList .machineCard .dragHandle{
  pointer-events:none !important;
  position:static !important;
  width:28px !important;
  height:28px !important;
  min-width:28px !important;
  min-height:28px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#eaf1f8 !important;
  border:0 !important;
  border-radius:999px !important;
  box-shadow:none !important;
  color:#64748b !important;
  font-weight:900 !important;
  font-size:16px !important;
  padding:0 !important;
}

#machineList .machineActions,
#machineList .machineActions button{
  cursor:auto !important;
  touch-action:auto !important;
}

#machineList .machineCard.draggingMachineCard{
  opacity:.6 !important;
  transform:scale(.985) !important;
  box-shadow:0 16px 32px rgba(15,23,42,.20) !important;
}

#machineList .machineCard.dragOverMachineCard{
  outline:4px dashed #2563eb !important;
  outline-offset:-8px !important;
}

/* 上へ下へボタンは完全非表示 */
.machineOrderBtns,
.machineTitleRow .machineOrderBtns{
  display:none !important;
}


/* 各種登録：重機・車両カードに枠を追加 */
#machineList .machineCard{
  border:2px solid #cbd5e1 !important;
  background:#ffffff !important;
  box-shadow:0 8px 22px rgba(15,23,42,.08) !important;
}

#machineList .machineCard:hover{
  border-color:#2563eb !important;
  box-shadow:0 12px 28px rgba(37,99,235,.16) !important;
}

#machineList .machineCard.draggingMachineCard{
  border-color:#f97316 !important;
  box-shadow:0 18px 36px rgba(249,115,22,.22) !important;
}

#machineList .machineCard.dragOverMachineCard{
  border-color:#2563eb !important;
  outline:4px dashed #2563eb !important;
  outline-offset:-8px !important;
}


/* 要確認一覧 */
.alertListBox{
  display:grid;
  gap:10px;
}
.alertItem{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border:1px solid #e2e8f0;
  border-radius:14px;
  padding:12px;
  background:#fff;
}
.alertItem b{
  display:block;
  color:#0f172a;
  font-size:15px;
  margin-bottom:4px;
}
.alertItem span{
  display:block;
  color:#475569;
  font-size:13px;
  line-height:1.4;
}
.alertItem.warn{
  border-color:#fde68a;
  background:#fffbeb;
}
.alertItem.danger{
  border-color:#fecaca;
  background:#fef2f2;
}
.alertItem button{
  border:0;
  border-radius:999px;
  background:#2563eb;
  color:white;
  padding:8px 12px;
  font-weight:900;
  cursor:pointer;
  white-space:nowrap;
}
.emptyAlertBox{
  padding:18px;
  border-radius:14px;
  background:#f8fafc;
  color:#64748b;
  font-weight:800;
  text-align:center;
}
@media(max-width:700px){
  .alertItem{
    display:grid;
  }
  .alertItem button{
    width:100%;
  }
}


/* 管理者専用：作業員一覧 */
.workerAdminForm{
  margin-bottom:18px;
}
.workerAdminActions{
  display:flex;
  gap:10px;
  align-items:center;
}
.workerAdminActions .sub{
  background:#e2e8f0;
  color:#0f172a;
}
.workerAdminListHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:12px 0;
}
.workerAdminListHead h3{
  margin:0;
}
.workerAdminListHead span{
  background:#e0f2fe;
  color:#075985;
  border-radius:999px;
  padding:6px 12px;
  font-weight:900;
}
.workerAdminList{
  display:grid;
  gap:12px;
}
.workerAdminCard{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  border:2px solid #cbd5e1;
  border-radius:16px;
  background:#fff;
  padding:14px;
  box-shadow:0 8px 22px rgba(15,23,42,.06);
}
.workerAdminMain{
  display:grid;
  gap:4px;
}
.workerAdminMain strong{
  font-size:18px;
  color:#0f172a;
}
.workerAdminMain span{
  color:#2563eb;
  font-weight:900;
}
.workerAdminMain small{
  color:#475569;
  line-height:1.35;
}
.workerAdminMain p{
  margin:6px 0 0;
  color:#334155;
  background:#f8fafc;
  border-radius:10px;
  padding:8px;
}
.workerAdminCardActions{
  display:flex;
  gap:8px;
  flex:0 0 auto;
}
.workerAdminCardActions button{
  border:0;
  border-radius:999px;
  background:#dbeafe;
  color:#1d4ed8;
  padding:8px 12px;
  font-weight:900;
  cursor:pointer;
}
.workerAdminCardActions .danger{
  background:#fee2e2;
  color:#b91c1c;
}
.adminDisabledCard{
  opacity:.55;
  filter:grayscale(.35);
}
@media(max-width:700px){
  .workerAdminCard{
    display:grid;
  }
  .workerAdminCardActions{
    width:100%;
  }
  .workerAdminCardActions button{
    flex:1;
  }
}


/* 作業員書類データ管理 */
.workerDocUploadGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  grid-column:1/-1;
}
.workerDocUploadGrid label{
  border:1px solid #dbe5f0;
  background:#f8fafc;
  border-radius:14px;
  padding:10px;
  color:#dc2626;
  font-weight:900;
}
.workerCurrentDocs{
  grid-column:1/-1;
}
.workerDocPreviewRow,
.workerDocList{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.workerDocPreviewRow > div,
.workerDocList > div{
  border:1px solid #dbe5f0;
  border-radius:12px;
  background:#fff;
  padding:8px;
  display:grid;
  gap:6px;
  min-height:72px;
}
.workerDocPreviewRow b,
.workerDocList b{
  font-size:12px;
  color:#0f172a;
}
.workerDocPreviewRow img,
.workerDocList img{
  width:100%;
  height:82px;
  object-fit:cover;
  border-radius:10px;
}
.workerDocNone,
.workerDocRegistered{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  border-radius:10px;
  background:#eef2f7;
  color:#64748b;
  font-size:12px;
  font-weight:900;
}
.workerDocRegistered{
  background:#dcfce7;
  color:#166534;
}
.workerAdminMain p{
  display:none !important;
}
@media(max-width:700px){
  .workerDocUploadGrid,
  .workerDocPreviewRow,
  .workerDocList{
    grid-template-columns:1fr;
  }
}


/* 作業員：健康診断期限表示 */
.workerMedicalBadge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:2px 8px;
  background:#e2e8f0;
  color:#334155;
  font-weight:900;
  font-style:normal;
}
.workerMedicalBadge.ok{
  background:#dcfce7;
  color:#166534;
}
.workerMedicalBadge.warn{
  background:#fef3c7;
  color:#92400e;
}
.workerMedicalBadge.danger{
  background:#fee2e2;
  color:#b91c1c;
}
.workerDocUploadGrid{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}
@media(max-width:900px){
  .workerDocUploadGrid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media(max-width:700px){
  .workerDocUploadGrid{
    grid-template-columns:1fr !important;
  }
}


/* 作業員詳細表示 */
.workerClickableCard{
  cursor:pointer;
}
.workerClickableCard:hover{
  border-color:#2563eb;
  box-shadow:0 12px 28px rgba(37,99,235,.15);
}
.workerTapHint{
  color:#2563eb !important;
  font-weight:900;
}
.workerDetailBox{
  margin:14px 0;
}
.workerDetailCard{
  border:2px solid #2563eb;
  border-radius:18px;
  background:#eff6ff;
  padding:14px;
  display:grid;
  gap:12px;
}
.workerDetailHead{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.workerDetailHead h3{
  margin:0;
  font-size:22px;
  color:#0f172a;
}
.workerDetailHead span{
  color:#2563eb;
  font-weight:900;
}
.workerDetailHead button{
  border:0;
  border-radius:999px;
  background:#0f172a;
  color:white;
  padding:8px 12px;
  font-weight:900;
  cursor:pointer;
}
.workerDetailGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.workerDetailGrid > div{
  background:#fff;
  border:1px solid #dbe5f0;
  border-radius:12px;
  padding:10px;
  display:grid;
  gap:4px;
}
.workerDetailGrid .wide{
  grid-column:1/-1;
}
.workerDetailGrid b{
  font-size:12px;
  color:#64748b;
}
.workerDetailGrid span{
  color:#0f172a;
  font-weight:800;
}
.workerDetailDocs{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.workerDetailDoc{
  background:#fff;
  border:1px solid #dbe5f0;
  border-radius:14px;
  padding:10px;
  display:grid;
  gap:8px;
}
.workerDetailDoc b{
  color:#0f172a;
}
.workerDetailDoc img{
  width:100%;
  height:160px;
  object-fit:contain;
  border-radius:10px;
  background:#f8fafc;
}
.workerDetailDoc button{
  border:0;
  border-radius:999px;
  background:#2563eb;
  color:#fff;
  padding:9px 12px;
  font-weight:900;
  cursor:pointer;
}
.workerDocListTwo,
.workerDocPreviewRowTwo{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.workerDocPreviewRowTwo > div:last-child{
  grid-column:1/-1;
}
@media(max-width:700px){
  .workerDetailGrid,
  .workerDetailDocs,
  .workerDocListTwo,
  .workerDocPreviewRowTwo{
    grid-template-columns:1fr;
  }
}


/* 作業員：フォルダ管理と健康診断写真 */
.workerDocUploadGrid{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}
.workerDocUploadGrid small{
  display:block;
  margin-top:4px;
  color:#64748b;
  font-size:11px;
  line-height:1.35;
}
.workerDocListThree,
.workerDocPreviewRowThree,
.workerDetailDocsThree{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
}
.workerFileList{
  display:grid;
  gap:6px;
}
.workerFileList button{
  border:0;
  border-radius:10px;
  background:#dbeafe;
  color:#1d4ed8;
  padding:8px 10px;
  font-weight:900;
  cursor:pointer;
  text-align:left;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.workerFileEmpty{
  background:#f1f5f9;
  color:#64748b;
  border-radius:10px;
  padding:10px;
  font-weight:900;
  text-align:center;
}
.workerDetailDoc img{
  width:100%;
  height:160px;
  object-fit:contain;
  border-radius:10px;
  background:#f8fafc;
}
@media(max-width:1000px){
  .workerDocUploadGrid,
  .workerDocListThree,
  .workerDocPreviewRowThree,
  .workerDetailDocsThree{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media(max-width:700px){
  .workerDocUploadGrid,
  .workerDocListThree,
  .workerDocPreviewRowThree,
  .workerDetailDocsThree{
    grid-template-columns:1fr !important;
  }
}


/* 健康診断書：画像・PDF対応 */
.workerDetailDoc .filePreview,
.workerDocPreviewRow .filePreview{
  max-width:100%;
}


/* 最終版：作業員アプリ内フォルダUI */
.workerDocUploadGrid{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:12px !important;
  grid-column:1/-1 !important;
}

.appFolderUpload,
.healthLimitLabel{
  display:grid !important;
  gap:8px !important;
  border:2px dashed #94a3b8 !important;
  border-radius:16px !important;
  background:#f8fafc !important;
  padding:12px !important;
  color:#0f172a !important;
}

.appFolderTitle{
  font-size:15px !important;
  font-weight:1000 !important;
  color:#1d4ed8 !important;
}

.appFolderUpload p{
  margin:0 !important;
  font-size:12px !important;
  color:#64748b !important;
  line-height:1.35 !important;
}

.appFolderUpload input,
.healthLimitLabel input{
  width:100% !important;
}

.workerCurrentFolderSummary{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:10px !important;
  margin-top:10px !important;
}

.workerCurrentFolderSummary > div{
  border:1px solid #dbe5f0 !important;
  border-radius:14px !important;
  background:#fff !important;
  padding:10px !important;
  display:grid !important;
  gap:7px !important;
}

.workerFolderMiniGrid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:8px !important;
  margin-top:6px !important;
}

.workerFolderMiniGrid > div{
  border:1px solid #dbe5f0 !important;
  border-radius:12px !important;
  background:#f8fafc !important;
  padding:8px !important;
  display:grid !important;
  gap:4px !important;
}

.workerFolderMiniGrid b{
  font-size:12px !important;
  color:#0f172a !important;
}

.workerFolderMiniGrid span{
  font-weight:900 !important;
  color:#2563eb !important;
}

.workerFolderArea{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:12px !important;
}

.appInternalFolder{
  border:2px solid #cbd5e1 !important;
  border-radius:18px !important;
  background:#ffffff !important;
  overflow:hidden !important;
  box-shadow:0 8px 22px rgba(15,23,42,.08) !important;
}

.appInternalFolderHead{
  display:flex !important;
  justify-content:space-between !important;
  align-items:center !important;
  gap:10px !important;
  padding:12px 14px !important;
  background:#e0f2fe !important;
  border-bottom:1px solid #bae6fd !important;
}

.appInternalFolderHead strong{
  color:#075985 !important;
  font-size:16px !important;
}

.appInternalFolderHead span{
  background:#fff !important;
  color:#075985 !important;
  border-radius:999px !important;
  padding:4px 10px !important;
  font-weight:1000 !important;
}

.appInternalFolderBody{
  display:grid !important;
  gap:8px !important;
  padding:12px !important;
}

.folderFileButton{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  width:100% !important;
  border:1px solid #dbe5f0 !important;
  border-radius:12px !important;
  background:#f8fafc !important;
  color:#0f172a !important;
  padding:10px !important;
  cursor:pointer !important;
  font-weight:900 !important;
  text-align:left !important;
}

.folderFileButton:hover{
  border-color:#2563eb !important;
  background:#eff6ff !important;
}

.folderFileButton em{
  font-style:normal !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}

.workerHealthArea{
  display:grid !important;
}

.workerHealthArea .workerDetailDoc{
  border:2px solid #bbf7d0 !important;
  background:#f0fdf4 !important;
}

.workerFileEmpty{
  background:#f1f5f9 !important;
  color:#64748b !important;
  border-radius:12px !important;
  padding:12px !important;
  text-align:center !important;
  font-weight:900 !important;
}

.workerMedicalBadge{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:999px !important;
  padding:3px 9px !important;
  background:#e2e8f0 !important;
  color:#334155 !important;
  font-weight:900 !important;
  font-style:normal !important;
}

.workerMedicalBadge.ok{
  background:#dcfce7 !important;
  color:#166534 !important;
}
.workerMedicalBadge.warn{
  background:#fef3c7 !important;
  color:#92400e !important;
}
.workerMedicalBadge.danger{
  background:#fee2e2 !important;
  color:#b91c1c !important;
}

.workerDocRegistered{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:999px !important;
  padding:5px 10px !important;
  background:#dcfce7 !important;
  color:#166534 !important;
  font-weight:1000 !important;
}

.workerDocNone{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:999px !important;
  padding:5px 10px !important;
  background:#e2e8f0 !important;
  color:#64748b !important;
  font-weight:900 !important;
}

@media(max-width:1000px){
  .workerDocUploadGrid,
  .workerCurrentFolderSummary,
  .workerFolderMiniGrid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media(max-width:700px){
  .workerDocUploadGrid,
  .workerCurrentFolderSummary,
  .workerFolderMiniGrid,
  .workerFolderArea{
    grid-template-columns:1fr !important;
  }
}


/* フォルダごとコピー・ドラッグ追加 */
.folderDropZone{
  position:relative !important;
  transition:.15s ease !important;
}

.folderDropZone.folderDropActive{
  border-color:#2563eb !important;
  background:#eff6ff !important;
  transform:scale(1.01) !important;
  box-shadow:0 12px 28px rgba(37,99,235,.18) !important;
}

.folderDropStatus{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:999px !important;
  background:#e0f2fe !important;
  color:#075985 !important;
  padding:4px 8px !important;
  font-weight:900 !important;
  margin-top:4px !important;
}


/* 最終版2：ファイル保存は登録作業員の詳細内だけ */
.workerFormSummaryOnly{
  opacity:.95 !important;
}
.workerDetailSaveNotice{
  display:block !important;
  margin-top:8px !important;
  color:#2563eb !important;
  font-weight:900 !important;
}

.detailFolderSaveBox{
  display:grid !important;
  gap:8px !important;
  margin:12px !important;
  padding:12px !important;
  border:2px dashed #60a5fa !important;
  border-radius:14px !important;
  background:#eff6ff !important;
}

.detailFolderSaveBox b{
  color:#1d4ed8 !important;
}

.detailFolderSaveBox button,
.detailHealthSaveBox button{
  border:0 !important;
  border-radius:999px !important;
  background:#2563eb !important;
  color:white !important;
  padding:9px 12px !important;
  font-weight:900 !important;
  cursor:pointer !important;
}

.detailFolderSaveBox small{
  color:#64748b !important;
  font-weight:800 !important;
}

.detailHealthSaveBox{
  display:grid !important;
  grid-template-columns:1fr 220px auto !important;
  gap:10px !important;
  align-items:end !important;
  padding:12px !important;
  border:2px dashed #86efac !important;
  background:#f0fdf4 !important;
  border-radius:14px !important;
  margin-bottom:10px !important;
}

.detailHealthSaveBox label{
  display:grid !important;
  gap:6px !important;
  color:#166534 !important;
  font-weight:900 !important;
}

@media(max-width:800px){
  .detailHealthSaveBox{
    grid-template-columns:1fr !important;
  }
}


/* ファイル表示モーダルの読み込み改善 */
#fileModal iframe,
#fileModal img{
  background:#fff;
}


/* 作業員一覧：カード掴んでグイーン並び替え */
.workerAdminCard{
  cursor:grab !important;
  user-select:none !important;
  touch-action:none !important;
  position:relative !important;
}

.workerAdminCard:active{
  cursor:grabbing !important;
}

.workerAdminCard::before{
  content:"↕";
  position:absolute;
  left:12px;
  top:12px;
  width:28px;
  height:28px;
  border-radius:999px;
  background:#eaf1f8;
  color:#64748b;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:1000;
  z-index:2;
  pointer-events:none;
}

.workerAdminCard .workerAdminMain{
  padding-left:38px !important;
}

.workerAdminCardActions,
.workerAdminCardActions button{
  cursor:auto !important;
  touch-action:auto !important;
}

.workerAdminCard.workerDraggingCard{
  opacity:.62 !important;
  transform:scale(.985) !important;
  border-color:#f97316 !important;
  box-shadow:0 18px 36px rgba(249,115,22,.22) !important;
}

.workerAdminCard.workerDragOverCard{
  border-color:#2563eb !important;
  outline:4px dashed #2563eb !important;
  outline-offset:-8px !important;
}


/* 作業員詳細フォルダ：フォルダごと追加の見た目 */
.detailFolderDropZone{
  transition:.15s ease !important;
}

.detailFolderDropZone.folderDropActive{
  border-color:#2563eb !important;
  background:#dbeafe !important;
  transform:scale(1.01) !important;
  box-shadow:0 12px 28px rgba(37,99,235,.18) !important;
}

.folderSelectButton{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:999px !important;
  background:#0f172a !important;
  color:#fff !important;
  padding:9px 12px !important;
  font-weight:900 !important;
  cursor:pointer !important;
  text-align:center !important;
}

.folderSelectButton input{
  display:none !important;
}

.detailFolderStatus{
  display:block !important;
  color:#1d4ed8 !important;
  font-weight:900 !important;
}


/* フォルダ投入時のページ遷移防止＋見た目 */
.detailFolderDropZone.folderDropActive{
  border-color:#16a34a !important;
  background:#dcfce7 !important;
  box-shadow:0 12px 28px rgba(22,163,74,.20) !important;
}


/* 作業員詳細の保存操作をフォームと分離 */
#workerDetailBox{
  display:block !important;
}

#workerDetailBox button{
  cursor:pointer !important;
}


/* 作業員詳細フォルダ保存 最終修正 */
.detailFolderDropZoneFinal{
  transition:.15s ease !important;
}

.detailFolderDropZoneFinal.folderDropActive{
  border-color:#16a34a !important;
  background:#dcfce7 !important;
  box-shadow:0 12px 28px rgba(22,163,74,.20) !important;
}

.detailFolderSaveButton{
  background:#2563eb !important;
  color:#fff !important;
}

.detailFolderStatusFinal{
  display:block !important;
  color:#1d4ed8 !important;
  font-weight:900 !important;
}


/* 作業員フォルダ：アップロード確実化 */
.uploadReliableBox{
  border-color:#2563eb !important;
  background:#eff6ff !important;
}

.uploadChoiceGrid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:8px !important;
}

.fileSelectButton{
  background:#16a34a !important;
}

.detailFolderSaveButton:disabled{
  opacity:.65 !important;
  cursor:wait !important;
}

@media(max-width:700px){
  .uploadChoiceGrid{
    grid-template-columns:1fr !important;
  }
}


/* 作業員フォルダ保存：フォーム誤作動防止 */
#workerDetailBox .detailFolderSaveButton{
  background:#2563eb !important;
  color:#fff !important;
  font-weight:900 !important;
}

#workerDetailBox .detailFolderSaveButton:disabled{
  opacity:.65 !important;
  cursor:wait !important;
}


/* 作業員：編集専用保存ボタン */
.workerEditOnlyForm{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:10px !important;
  background:#fff !important;
  border:1px solid #dbe5f0 !important;
  border-radius:16px !important;
  padding:12px !important;
}

.workerEditOnlyForm label{
  display:grid !important;
  gap:6px !important;
  color:#dc2626 !important;
  font-weight:900 !important;
}

.workerEditOnlyForm .wide{
  grid-column:1/-1 !important;
}

.editOnlySaveBtn{
  grid-column:1/-1 !important;
  border:0 !important;
  border-radius:999px !important;
  background:#16a34a !important;
  color:white !important;
  padding:11px 14px !important;
  font-weight:1000 !important;
  cursor:pointer !important;
}

.editOnlyFolderSaveBtn{
  border:0 !important;
  border-radius:999px !important;
  background:#2563eb !important;
  color:#fff !important;
  padding:10px 12px !important;
  font-weight:1000 !important;
  cursor:pointer !important;
}

.editOnlyDetailCard{
  border-color:#16a34a !important;
}

@media(max-width:700px){
  .workerEditOnlyForm{
    grid-template-columns:1fr !important;
  }
}


/* 作業員詳細保存時のブラウザrequired回避 */
#workerAdminForm[novalidate] input:invalid{
  box-shadow:none !important;
}


/* 作業員フォルダ：選んだら自動保存 */
.autoUploadBox{
  border-color:#16a34a !important;
  background:#f0fdf4 !important;
}

.autoUploadBox .folderSelectButton{
  background:#0f172a !important;
}

.autoUploadBox .fileSelectButton{
  background:#16a34a !important;
}


/* 作業員フォルダ：シンプルな複数ファイル追加 */
.simpleFileAddBox{
  display:grid !important;
  gap:8px !important;
  margin:12px !important;
  padding:12px !important;
  border:2px dashed #2563eb !important;
  border-radius:14px !important;
  background:#eff6ff !important;
}

.simpleFileAddBox b{
  color:#1d4ed8 !important;
}

.simpleFileAddButton{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:999px !important;
  background:#0f172a !important;
  color:#fff !important;
  padding:10px 12px !important;
  font-weight:1000 !important;
  cursor:pointer !important;
}

.simpleFileAddButton input{
  display:none !important;
}

.simpleFileSaveButton{
  border:0 !important;
  border-radius:999px !important;
  background:#16a34a !important;
  color:#fff !important;
  padding:10px 12px !important;
  font-weight:1000 !important;
  cursor:pointer !important;
}

.simpleFileSaveButton:disabled{
  opacity:.65 !important;
  cursor:wait !important;
}

.simpleFileAddBox small{
  color:#1d4ed8 !important;
  font-weight:900 !important;
}


/* 作業員フォルダ：ファイル削除 */
.folderFileRow{
  display:grid !important;
  grid-template-columns:1fr auto !important;
  gap:8px !important;
  align-items:center !important;
}

.folderFileRow .folderFileButton{
  min-width:0 !important;
}

.folderFileDeleteButton{
  border:0 !important;
  border-radius:999px !important;
  background:#fee2e2 !important;
  color:#b91c1c !important;
  padding:8px 12px !important;
  font-weight:1000 !important;
  cursor:pointer !important;
  white-space:nowrap !important;
}

.folderFileDeleteButton:hover{
  background:#fecaca !important;
}


/* 作業員フォルダ：ドラッグ追加 */
.workerDropFolder{
  transition:.15s ease !important;
}

.workerDropFolder.workerDropActive{
  border-color:#16a34a !important;
  background:#dcfce7 !important;
  transform:scale(1.01) !important;
  box-shadow:0 14px 30px rgba(22,163,74,.22) !important;
}

.workerDragAddBox{
  border-color:#16a34a !important;
  background:#f0fdf4 !important;
}


/* トップページ：作業員一覧カードを見やすい色に変更 */
.menuCard.workersAdminOnly{
  background:linear-gradient(135deg,#7c3aed,#4f46e5) !important;
  color:#ffffff !important;
  border:2px solid #c4b5fd !important;
  box-shadow:0 12px 28px rgba(79,70,229,.28) !important;
}

.menuCard.workersAdminOnly .icon{
  background:rgba(255,255,255,.20) !important;
  color:#ffffff !important;
}

.menuCard.workersAdminOnly strong,
.menuCard.workersAdminOnly small{
  color:#ffffff !important;
}

.menuCard.workersAdminOnly small{
  opacity:.95 !important;
}

.menuCard.workersAdminOnly:hover{
  transform:translateY(-3px) !important;
  box-shadow:0 16px 34px rgba(79,70,229,.36) !important;
}

.menuCard.workersAdminOnly.adminDisabledCard{
  opacity:.65 !important;
  filter:none !important;
  background:linear-gradient(135deg,#94a3b8,#64748b) !important;
}


/* PDF表示：重いPDFを開きやすくする */
.filePreviewModal{
  position:fixed !important;
  inset:0 !important;
  z-index:9999 !important;
  display:none !important;
  align-items:center !important;
  justify-content:center !important;
  background:rgba(15,23,42,.72) !important;
  padding:14px !important;
}

.filePreviewModal.show{
  display:flex !important;
}

.filePreviewPanel.pdfFastPanel{
  width:min(980px,96vw) !important;
  height:min(88vh,900px) !important;
  background:#fff !important;
  border-radius:18px !important;
  overflow:hidden !important;
  box-shadow:0 24px 70px rgba(0,0,0,.35) !important;
  display:flex !important;
  flex-direction:column !important;
}

.filePreviewHead{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  padding:12px 14px !important;
  border-bottom:1px solid #e2e8f0 !important;
  background:#f8fafc !important;
}

.filePreviewHead b{
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}

.filePreviewHead button{
  border:0 !important;
  border-radius:999px !important;
  background:#0f172a !important;
  color:#fff !important;
  padding:8px 12px !important;
  font-weight:900 !important;
  cursor:pointer !important;
}

.pdfFastActions{
  display:flex !important;
  gap:8px !important;
  flex-wrap:wrap !important;
  padding:10px 12px !important;
  background:#eff6ff !important;
  border-bottom:1px solid #dbeafe !important;
}

.pdfFastActions button,
.pdfFastActions a{
  border:0 !important;
  border-radius:999px !important;
  background:#2563eb !important;
  color:#fff !important;
  text-decoration:none !important;
  padding:9px 12px !important;
  font-weight:1000 !important;
  cursor:pointer !important;
  display:inline-flex !important;
  align-items:center !important;
}

.pdfFastActions a{
  background:#16a34a !important;
}

.pdfFastFrame{
  flex:1 !important;
  width:100% !important;
  border:0 !important;
  background:#fff !important;
}

.pdfFastHint{
  padding:8px 12px !important;
  background:#fff7ed !important;
  color:#9a3412 !important;
  font-weight:900 !important;
}

.pdfFastLoading,
.pdfFastError{
  flex:1 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:20px !important;
  color:#334155 !important;
  font-weight:900 !important;
  text-align:center !important;
}

.filePreviewImage{
  max-width:100% !important;
  max-height:100% !important;
  object-fit:contain !important;
  margin:auto !important;
  display:block !important;
}


/* 車両管理：車検証・保険証PDFクリック表示 */
.vehicleDocOpenArea{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  margin-top:10px !important;
  padding-top:10px !important;
  border-top:1px solid #e2e8f0 !important;
}

.vehicleDocOpenButton{
  border:0 !important;
  border-radius:999px !important;
  background:#2563eb !important;
  color:#fff !important;
  padding:8px 11px !important;
  font-size:12px !important;
  font-weight:1000 !important;
  cursor:pointer !important;
  box-shadow:0 6px 14px rgba(37,99,235,.18) !important;
}

.vehicleDocOpenButton:hover{
  background:#1d4ed8 !important;
  transform:translateY(-1px) !important;
}

.vehicleDocOpenButton:nth-child(2){
  background:#16a34a !important;
}

.vehicleDocOpenButton:nth-child(3){
  background:#f97316 !important;
}


/* 車両管理：PDF/画像アイコンを押したら開く */
.vehicleDocs .docThumb.vehicleDocThumbButton{
  border:0 !important;
  padding:0 !important;
  background:transparent !important;
  cursor:pointer !important;
  width:auto !important;
  min-width:44px !important;
}

.vehicleDocs .docThumb.vehicleDocThumbButton:disabled{
  cursor:default !important;
}

.vehicleDocs .docRowClickable .pdfBadge,
.vehicleDocs .docRowClickable img{
  cursor:pointer !important;
}

.vehicleDocs .docRowClickable:hover .pdfBadge{
  transform:translateY(-1px) !important;
  box-shadow:0 6px 14px rgba(239,68,68,.18) !important;
}

.vehicleInlineOpenLink{
  margin-top:4px !important;
  width:max-content !important;
  padding:5px 10px !important;
  font-size:11px !important;
}


/* 車両管理：赤いPDFアイコンを確実にクリック可能にする */
.vehicleDocIconClickable,
.vehicleDocRowCanOpen .pdfBadge{
  cursor:pointer !important;
  pointer-events:auto !important;
}

.vehicleDocRowCanOpen .pdfBadge{
  outline:2px solid rgba(37,99,235,.22) !important;
  outline-offset:2px !important;
}

.vehicleDocRowCanOpen:hover .pdfBadge{
  transform:translateY(-1px) !important;
  box-shadow:0 8px 18px rgba(239,68,68,.22) !important;
}

.vehicleDocRealOpenBtn{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin-top:5px !important;
  border:0 !important;
  border-radius:999px !important;
  background:#2563eb !important;
  color:white !important;
  padding:5px 10px !important;
  font-size:11px !important;
  font-weight:1000 !important;
  cursor:pointer !important;
}


/* トップページ：カードをグイーンと掴んで並び替え */
.homeDragSortGrid > .menuCard{
  touch-action:none !important;
  cursor:grab !important;
  user-select:none !important;
  position:relative !important;
}

.homeDragSortGrid > .menuCard::before{
  content:"↕" !important;
  position:absolute !important;
  top:10px !important;
  right:10px !important;
  width:26px !important;
  height:26px !important;
  border-radius:999px !important;
  display:grid !important;
  place-items:center !important;
  background:rgba(15,23,42,.12) !important;
  color:inherit !important;
  font-weight:1000 !important;
  opacity:.75 !important;
  pointer-events:none !important;
}

.homeDragSortGrid > .menuCard.homeCardDraggingReady{
  outline:2px dashed rgba(37,99,235,.35) !important;
}

.homeDragSortGrid > .menuCard.homeCardDragging{
  cursor:grabbing !important;
  transform:scale(1.04) rotate(-1deg) !important;
  z-index:50 !important;
  box-shadow:0 20px 45px rgba(15,23,42,.25) !important;
  opacity:.92 !important;
}

.homeDragSortGrid.homeDragActive > .menuCard:not(.homeCardDragging){
  transition:transform .12s ease, opacity .12s ease !important;
}

.homeDragSortGrid.homeDragActive > .menuCard:not(.homeCardDragging):hover{
  transform:none !important;
}


/* トップページ：移動できるドラッグ並び替え修正 */
.homeDragSortGrid > .menuCard{
  touch-action:none !important;
  cursor:grab !important;
  user-select:none !important;
  position:relative !important;
  transition:transform .12s ease, box-shadow .12s ease, opacity .12s ease !important;
}

.homeDragSortGrid > .menuCard::before{
  content:"↕" !important;
  position:absolute !important;
  top:10px !important;
  right:10px !important;
  width:26px !important;
  height:26px !important;
  border-radius:999px !important;
  display:grid !important;
  place-items:center !important;
  background:rgba(15,23,42,.14) !important;
  color:inherit !important;
  font-weight:1000 !important;
  opacity:.8 !important;
  pointer-events:none !important;
}

.homeDragSortGrid > .menuCard.homeCardDraggingReady{
  outline:2px dashed rgba(37,99,235,.45) !important;
}

.homeDragSortGrid > .menuCard.homeCardDragging{
  cursor:grabbing !important;
  transform:scale(1.045) rotate(-1deg) !important;
  z-index:99 !important;
  opacity:.88 !important;
  box-shadow:0 22px 48px rgba(15,23,42,.32) !important;
}

.homeDragSortGrid.homeDragActive > .menuCard:not(.homeCardDragging){
  transform:scale(.98) !important;
}


/* トップページ：HTMLドラッグ方式 */
.homeHtmlDragGrid > .menuCard{
  cursor:grab !important;
  user-select:none !important;
  position:relative !important;
}

.homeHtmlDragGrid > .menuCard:active{
  cursor:grabbing !important;
}

.homeHtmlDragGrid > .menuCard::before{
  content:"↕" !important;
  position:absolute !important;
  top:10px !important;
  right:10px !important;
  width:26px !important;
  height:26px !important;
  border-radius:999px !important;
  display:grid !important;
  place-items:center !important;
  background:rgba(15,23,42,.16) !important;
  color:inherit !important;
  font-weight:1000 !important;
  opacity:.85 !important;
  pointer-events:none !important;
}

.homeHtmlDragging{
  outline:3px solid rgba(37,99,235,.45) !important;
  transform:scale(1.03) !important;
  box-shadow:0 20px 45px rgba(15,23,42,.25) !important;
}

.homeHtmlDraggingHide{
  opacity:.45 !important;
}


/* トップページ：最新の日報 日報一覧ボタン */
.latestReportPanelWithButton{
  position:relative !important;
}

.latestReportHeadRow{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  margin-bottom:14px !important;
}

.latestReportHeadRow h2,
.latestReportHeadRow h3,
.latestReportHeadRow strong,
.latestReportHeadRow b{
  margin:0 !important;
}

.latestReportListButton{
  border:0 !important;
  border-radius:999px !important;
  background:#0f172a !important;
  color:#fff !important;
  padding:10px 14px !important;
  font-size:13px !important;
  font-weight:1000 !important;
  cursor:pointer !important;
  box-shadow:0 8px 18px rgba(15,23,42,.18) !important;
  white-space:nowrap !important;
}

.latestReportListButton::after{
  content:"へ" !important;
}

.latestReportListButton:hover{
  transform:translateY(-1px) !important;
  box-shadow:0 12px 24px rgba(15,23,42,.24) !important;
}

@media(max-width:700px){
  .latestReportHeadRow{
    align-items:flex-start !important;
  }

  .latestReportListButton{
    padding:8px 11px !important;
    font-size:12px !important;
  }
}


/* 作業員一覧：管理者限定表示 */
.menuCard.adminLockedWorkerCard,
.homeHtmlDraggableCard.adminLockedWorkerCard{
  filter:grayscale(.15) !important;
  opacity:.72 !important;
  position:relative !important;
}

.menuCard.adminLockedWorkerCard::after,
.homeHtmlDraggableCard.adminLockedWorkerCard::after{
  content:"管理者のみ" !important;
  position:absolute !important;
  right:10px !important;
  bottom:10px !important;
  border-radius:999px !important;
  background:#111827 !important;
  color:#fff !important;
  padding:5px 9px !important;
  font-size:11px !important;
  font-weight:1000 !important;
}


/* アカウント管理：初期admin削除対応 */
.accountRow button:disabled,
.userRow button:disabled{
  opacity:.6;
}

.accountAdminHint{
  color:#475569;
  font-size:12px;
}


/* アカウント管理：初期admin削除ボタン */
.initialAdminDeleteButton{
  margin-left:auto !important;
  border:0 !important;
  border-radius:12px !important;
  background:#fee2e2 !important;
  color:#dc2626 !important;
  padding:9px 12px !important;
  font-weight:1000 !important;
  cursor:pointer !important;
  float:right !important;
}

.initialAdminDeleteButton:hover{
  background:#fecaca !important;
}


/* アカウント管理：初期admin削除ボタンを確実に表示 */
.initialAdminRowForceDelete{
  padding-right:84px !important;
}

.initialAdminDeleteForceButton{
  position:absolute !important;
  right:12px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  z-index:5 !important;
  border:0 !important;
  border-radius:12px !important;
  background:#fee2e2 !important;
  color:#dc2626 !important;
  padding:9px 12px !important;
  font-weight:1000 !important;
  cursor:pointer !important;
}

.initialAdminDeleteForceButton:hover{
  background:#fecaca !important;
}


/* 車両管理：車検証・保険証PDFを直接開く */
.vehicleDocRowFinal{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
}

.vehiclePdfIconOpenFinal{
  border:0 !important;
  background:transparent !important;
  padding:0 !important;
  min-width:44px !important;
  cursor:pointer !important;
}

.vehiclePdfIconOpenFinal:disabled{
  cursor:default !important;
}

.vehicleDocCanOpenFinal .pdfBadge{
  cursor:pointer !important;
  outline:2px solid rgba(37,99,235,.25) !important;
  outline-offset:2px !important;
}

.vehicleDocCanOpenFinal:hover .pdfBadge{
  transform:translateY(-1px) !important;
  box-shadow:0 8px 18px rgba(239,68,68,.22) !important;
}

.vehiclePdfOpenButtonFinal{
  margin-top:5px !important;
  border:0 !important;
  border-radius:999px !important;
  background:#2563eb !important;
  color:#fff !important;
  padding:5px 10px !important;
  font-size:11px !important;
  font-weight:1000 !important;
  cursor:pointer !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}

.vehiclePdfOpenButtonFinal.mini{
  margin-top:3px !important;
  padding:4px 9px !important;
}

.compactDocThumbButton{
  border:0 !important;
  background:transparent !important;
  padding:0 !important;
  cursor:pointer !important;
}

.noDocThumb{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:44px !important;
  min-height:44px !important;
  border-radius:10px !important;
  background:#e2e8f0 !important;
  color:#64748b !important;
  font-size:11px !important;
  font-weight:900 !important;
}

/* クラウド保存：保存中・完了・失敗表示 */
.cloudSaveStatusText{
  margin-top:14px !important;
  font-size:15px !important;
  font-weight:1000 !important;
  color:#64748b !important;
}
.cloudSaveStatusText.saving{ color:#2563eb !important; }
.cloudSaveStatusText.ok{ color:#16a34a !important; }
.cloudSaveStatusText.error{ color:#dc2626 !important; }
button:disabled{
  opacity:.68 !important;
  cursor:wait !important;
}


/* Supabase Authログイン */
.supabaseAuthOverlay{
  position:fixed !important;
  inset:0 !important;
  z-index:20000 !important;
  display:none !important;
  align-items:center !important;
  justify-content:center !important;
  background:rgba(15,23,42,.72) !important;
  padding:20px !important;
}

.supabaseAuthOverlay.show{
  display:flex !important;
}

.supabaseAuthCard{
  width:min(460px,96vw) !important;
  background:#fff !important;
  border-radius:22px !important;
  padding:24px !important;
  box-shadow:0 24px 80px rgba(0,0,0,.35) !important;
  display:grid !important;
  gap:14px !important;
}

.supabaseAuthCard h1{
  margin:0 !important;
  font-size:24px !important;
  color:#0f172a !important;
}

.supabaseAuthCard p{
  margin:0 !important;
  color:#64748b !important;
  font-weight:800 !important;
}

.supabaseAuthCard label{
  display:grid !important;
  gap:6px !important;
  font-weight:900 !important;
  color:#dc2626 !important;
}

.supabaseAuthCard input{
  border:1px solid #cbd5e1 !important;
  border-radius:14px !important;
  padding:13px !important;
  font-size:16px !important;
}

.supabaseAuthCard button{
  border:0 !important;
  border-radius:999px !important;
  background:#0f766e !important;
  color:#fff !important;
  padding:13px 16px !important;
  font-weight:1000 !important;
  font-size:16px !important;
  cursor:pointer !important;
}

.authLoginStatus{
  color:#2563eb !important;
  font-weight:900 !important;
  min-height:22px !important;
}

.supabaseAuthCard small{
  color:#64748b !important;
  line-height:1.6 !important;
}

.authUserBar{
  display:none !important;
  position:sticky !important;
  top:0 !important;
  z-index:15000 !important;
  align-items:center !important;
  gap:10px !important;
  padding:9px 14px !important;
  background:#0f172a !important;
  color:#fff !important;
  box-shadow:0 8px 18px rgba(15,23,42,.16) !important;
}

.authUserBar.show{
  display:flex !important;
}

.authUserBar span{
  font-weight:800 !important;
}

.authUserBar em{
  font-style:normal !important;
  background:#16a34a !important;
  color:#fff !important;
  border-radius:999px !important;
  padding:4px 9px !important;
  font-size:12px !important;
  font-weight:1000 !important;
}

.authUserBar button{
  margin-left:auto !important;
  border:0 !important;
  border-radius:999px !important;
  background:#fee2e2 !important;
  color:#b91c1c !important;
  padding:7px 11px !important;
  font-weight:1000 !important;
  cursor:pointer !important;
}


/* Supabase Auth：プロフィール取得補強 */
.authUserBar em.adminRole{
  background:#2563eb !important;
}

.authReloadProfileBtn{
  margin-left:auto !important;
  border:0 !important;
  border-radius:999px !important;
  background:#dbeafe !important;
  color:#1d4ed8 !important;
  padding:7px 11px !important;
  font-weight:1000 !important;
  cursor:pointer !important;
}

.authUserBar .authReloadProfileBtn + button{
  margin-left:6px !important;
}


/* Supabase Auth：権限取得強制修正 */
.authUserBar em.adminRole{
  background:#2563eb !important;
}

.authReloadProfileBtn{
  border:0 !important;
  border-radius:999px !important;
  background:#dbeafe !important;
  color:#1d4ed8 !important;
  padding:7px 11px !important;
  font-weight:1000 !important;
  cursor:pointer !important;
}


/* 管理者のみバッジ */
.hasAdminOnlyBadge{
  position: relative !important;
}

.adminOnlyBadge{
  position: absolute !important;
  right: 16px !important;
  bottom: 16px !important;
  z-index: 10 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 7px 12px !important;
  border-radius: 999px !important;
  background: rgba(31,41,55,.78) !important;
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  box-shadow: 0 6px 16px rgba(15,23,42,.22) !important;
  pointer-events: none !important;
}

@media (max-width: 640px){
  .adminOnlyBadge{
    right: 12px !important;
    bottom: 12px !important;
    font-size: 11px !important;
    padding: 6px 10px !important;
  }
}


/* 管理者のみバッジ：作業員一覧・アカウント管理 共通 */
.hasAdminOnlyBadge{
  position: relative !important;
}

.adminOnlyBadge{
  position: absolute !important;
  right: 16px !important;
  bottom: 16px !important;
  z-index: 999 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 7px 12px !important;
  border-radius: 999px !important;
  background: rgba(31,41,55,.78) !important;
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  box-shadow: 0 6px 16px rgba(15,23,42,.22) !important;
  pointer-events: none !important;
}

@media (max-width: 640px){
  .adminOnlyBadge{
    right: 12px !important;
    bottom: 12px !important;
    font-size: 11px !important;
    padding: 6px 10px !important;
  }
}


/* 親カード探索バッジ完全修正 */
.hasAdminOnlyBadgeForce{
  position: relative !important;
}

.adminOnlyBadgeForce{
  position: absolute !important;
  right: 16px !important;
  bottom: 16px !important;
  z-index: 99999 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 7px 12px !important;
  border-radius: 999px !important;
  background: rgba(31,41,55,.78) !important;
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  box-shadow: 0 6px 16px rgba(15,23,42,.22) !important;
  pointer-events: none !important;
  white-space: nowrap !important;
}

@media (max-width: 640px){
  .adminOnlyBadgeForce{
    right: 12px !important;
    bottom: 12px !important;
    font-size: 11px !important;
    padding: 6px 10px !important;
  }
}


/* 管理者のみバッジ：対象カード限定 */
.targetAdminBadgeCard{
  position: relative !important;
}

.targetAdminOnlyBadge{
  position: absolute !important;
  right: 16px !important;
  bottom: 16px !important;
  z-index: 99999 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 7px 12px !important;
  border-radius: 999px !important;
  background: rgba(31,41,55,.78) !important;
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  box-shadow: 0 6px 16px rgba(15,23,42,.22) !important;
  pointer-events: none !important;
  white-space: nowrap !important;
}

@media (max-width: 640px){
  .targetAdminOnlyBadge{
    right: 12px !important;
    bottom: 12px !important;
    font-size: 11px !important;
    padding: 6px 10px !important;
  }
}


/* 古いバッジ処理を完全非表示 */
.adminOnlyBadge,
.adminOnlyBadgeForce,
.targetAdminOnlyBadge{
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* 管理者のみバッジ：最終版 */
.finalAdminBadgeCard{
  position: relative !important;
}

.finalAdminOnlyBadge{
  position: absolute !important;
  right: 16px !important;
  bottom: 16px !important;
  z-index: 999999 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 7px 12px !important;
  border-radius: 999px !important;
  background: rgba(31,41,55,.82) !important;
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  box-shadow: 0 6px 16px rgba(15,23,42,.22) !important;
  pointer-events: none !important;
  white-space: nowrap !important;
}

@media (max-width: 640px){
  .finalAdminOnlyBadge{
    right: 12px !important;
    bottom: 12px !important;
    font-size: 11px !important;
    padding: 6px 10px !important;
  }
}


/* A07 管理者のみバッジ最終維持 */
.adminOnlyBadge,
.adminOnlyBadgeForce,
.targetAdminOnlyBadge{
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}


.storageSavedNoteA08{
  margin-top: 6px !important;
  color: #166534 !important;
  background: #dcfce7 !important;
  border: 1px solid #86efac !important;
  border-radius: 10px !important;
  padding: 6px 9px !important;
  font-size: 12px !important;
  font-weight: 900 !important;
}
.storageSavedNoteA08.error{
  color: #991b1b !important;
  background: #fee2e2 !important;
  border-color: #fecaca !important;
}


.vehicleDocDeleteBtnA09,
.vehicleInputDeleteBtnA09{
  margin-top: 7px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #fee2e2 !important;
  color: #991b1b !important;
  padding: 6px 10px !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  cursor: pointer !important;
  box-shadow: 0 4px 10px rgba(153,27,27,.12) !important;
}

.vehicleDocDeleteBtnA09:hover,
.vehicleInputDeleteBtnA09:hover{
  background: #fecaca !important;
}

.docDeletedMsgA09{
  margin-top: 6px !important;
  color: #991b1b !important;
  background: #fee2e2 !important;
  border: 1px solid #fecaca !important;
  border-radius: 10px !important;
  padding: 6px 9px !important;
  font-size: 12px !important;
  font-weight: 900 !important;
}

.docDeletedA09{
  opacity: .78 !important;
}


.vehicleDocClearPanelA10{
  margin-top: 8px !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  align-items: center !important;
}

.vehicleDocClearPanelA10 button{
  border: 0 !important;
  border-radius: 999px !important;
  background: #fee2e2 !important;
  color: #991b1b !important;
  padding: 6px 9px !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  cursor: pointer !important;
  box-shadow: 0 4px 10px rgba(153,27,27,.12) !important;
}

.vehicleDocClearPanelA10 button:hover{
  background: #fecaca !important;
}

.vehicleDocClearMsgA10{
  margin-top: 6px !important;
  color: #991b1b !important;
  background: #fee2e2 !important;
  border: 1px solid #fecaca !important;
  border-radius: 10px !important;
  padding: 6px 9px !important;
  font-size: 12px !important;
  font-weight: 900 !important;
}


.vehicleSaveButtonA11{
  background: #0f766e !important;
  color: #fff !important;
  font-weight: 1000 !important;
}

.vehicleSaveStatusA11{
  margin-top: 10px !important;
  border-radius: 12px !important;
  padding: 9px 12px !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  background: #e0f2fe !important;
  color: #075985 !important;
  border: 1px solid #bae6fd !important;
}
.vehicleSaveStatusA11.saving{
  background: #fef3c7 !important;
  color: #92400e !important;
  border-color: #fde68a !important;
}
.vehicleSaveStatusA11.done{
  background: #dcfce7 !important;
  color: #166534 !important;
  border-color: #86efac !important;
}
.vehicleSaveStatusA11.error{
  background: #fee2e2 !important;
  color: #991b1b !important;
  border-color: #fecaca !important;
}


.globalSaveToastA12{
  position: fixed !important;
  top: 82px !important;
  right: 22px !important;
  z-index: 2147483647 !important;
  min-width: 150px !important;
  max-width: 320px !important;
  padding: 12px 16px !important;
  border-radius: 999px !important;
  font-size: 14px !important;
  font-weight: 1000 !important;
  box-shadow: 0 14px 34px rgba(15,23,42,.25) !important;
  opacity: 0 !important;
  transform: translateY(-8px) !important;
  pointer-events: none !important;
  transition: opacity .18s ease, transform .18s ease !important;
  text-align: center !important;
}

.globalSaveToastA12.show{
  opacity: 1 !important;
  transform: translateY(0) !important;
}

.globalSaveToastA12.saving{
  background: #fef3c7 !important;
  color: #92400e !important;
  border: 1px solid #fde68a !important;
}

.globalSaveToastA12.done{
  background: #dcfce7 !important;
  color: #166534 !important;
  border: 1px solid #86efac !important;
}

.globalSaveToastA12.error{
  background: #fee2e2 !important;
  color: #991b1b !important;
  border: 1px solid #fecaca !important;
}

.globalSaveToastA12.info{
  background: #e0f2fe !important;
  color: #075985 !important;
  border: 1px solid #bae6fd !important;
}

@media (max-width: 640px){
  .globalSaveToastA12{
    top: 76px !important;
    left: 12px !important;
    right: 12px !important;
    max-width: none !important;
  }
}


/* A14 車両書類削除ボタン整理 */
.vehicleDocDeleteBtnA14{
  margin-top: 7px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #fee2e2 !important;
  color: #991b1b !important;
  padding: 6px 10px !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  cursor: pointer !important;
  box-shadow: 0 4px 10px rgba(153,27,27,.12) !important;
}

.vehicleDocDeleteBtnA14:hover{
  background: #fecaca !important;
}

.photoDeleteA14{
  display: block !important;
  margin: 8px auto 0 !important;
}

.vehicleDocRowA14 .docInfo{
  gap: 5px !important;
}

/* 古い増殖ボタンは完全非表示 */
.vehicleDocDeleteBtnA09,
.vehicleInputDeleteBtnA09,
.vehicleDocClearPanelA10,
.vehicleDocClearMsgA10,
.docDeletedMsgA09{
  display: none !important;
}


/* A15 写真削除ボタン位置調整 */
.vehiclePhoto{
  position: relative !important;
  overflow: visible !important;
}

.vehiclePhotoHasDeleteA15{
  padding-bottom: 42px !important;
}

.vehiclePhoto .photoDeleteA14{
  position: absolute !important;
  left: 50% !important;
  bottom: 6px !important;
  transform: translateX(-50%) !important;
  margin: 0 !important;
  z-index: 20 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: nowrap !important;
  background: #fee2e2 !important;
  color: #991b1b !important;
  border-radius: 999px !important;
  padding: 6px 12px !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  box-shadow: 0 6px 16px rgba(153,27,27,.18) !important;
}

.vehiclePhoto .photoDeleteA14:hover{
  background: #fecaca !important;
}


.uploadStatusA16{
  margin-top: 6px !important;
  border-radius: 10px !important;
  padding: 6px 9px !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  background: #dcfce7 !important;
  color: #166534 !important;
  border: 1px solid #86efac !important;
}

.uploadStatusA16.saving{
  background: #fef3c7 !important;
  color: #92400e !important;
  border-color: #fde68a !important;
}

.uploadStatusA16.error{
  background: #fee2e2 !important;
  color: #991b1b !important;
  border-color: #fecaca !important;
}

.uploadStatusA16.info{
  background: #e0f2fe !important;
  color: #075985 !important;
  border-color: #bae6fd !important;
}


.workerUploadStatusA17{
  margin-top: 6px !important;
  border-radius: 10px !important;
  padding: 6px 9px !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  background: #dcfce7 !important;
  color: #166534 !important;
  border: 1px solid #86efac !important;
}
.workerUploadStatusA17.saving{
  background: #fef3c7 !important;
  color: #92400e !important;
  border-color: #fde68a !important;
}
.workerUploadStatusA17.error{
  background: #fee2e2 !important;
  color: #991b1b !important;
  border-color: #fecaca !important;
}
.workerUploadStatusA17.info{
  background: #e0f2fe !important;
  color: #075985 !important;
  border-color: #bae6fd !important;
}

.workerDocsPanelA17{
  margin-top: 12px !important;
  display: grid !important;
  gap: 10px !important;
}
.workerDocGroupA17{
  border: 1px solid #dbe6f3 !important;
  border-radius: 14px !important;
  background: #f8fafc !important;
  padding: 10px !important;
}
.workerDocGroupA17 > strong{
  display: block !important;
  color: #0f172a !important;
  margin-bottom: 6px !important;
}
.workerDocItemA17{
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 6px !important;
  padding: 6px 0 !important;
  border-top: 1px dashed #dbe6f3 !important;
}
.workerDocItemA17 span{
  flex: 1 !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  font-size: 12px !important;
}
.workerDocItemA17 button{
  border: 0 !important;
  border-radius: 999px !important;
  background: #dbeafe !important;
  color: #1d4ed8 !important;
  padding: 5px 9px !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  cursor: pointer !important;
}
.workerDocItemA17 button.danger{
  background: #fee2e2 !important;
  color: #991b1b !important;
}

.workerFileStatusA22{margin-top:6px!important;border-radius:10px!important;padding:6px 9px!important;font-size:12px!important;font-weight:900!important;background:#dcfce7!important;color:#166534!important;border:1px solid #86efac!important}
.workerFileStatusA22.saving{background:#fef3c7!important;color:#92400e!important;border-color:#fde68a!important}
.workerFileStatusA22.error{background:#fee2e2!important;color:#991b1b!important;border-color:#fecaca!important}
.workerFileStatusA22.info{background:#e0f2fe!important;color:#075985!important;border-color:#bae6fd!important}
.workerDocsPanelA22Wrap{margin-top:14px!important}
.workerDocsPanelA22{display:grid!important;gap:10px!important}
.workerDocGroupA22{border:1px solid #dbe6f3!important;border-radius:14px!important;background:#f8fafc!important;padding:10px!important}
.workerDocGroupA22>strong{display:block!important;color:#0f172a!important;margin-bottom:6px!important}
.workerDocItemA22{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:6px!important;padding:6px 0!important;border-top:1px dashed #dbe6f3!important}
.workerDocItemA22 span{flex:1!important;min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:12px!important}
.workerDocItemA22 button{border:0!important;border-radius:999px!important;background:#dbeafe!important;color:#1d4ed8!important;padding:5px 9px!important;font-size:11px!important;font-weight:900!important;cursor:pointer!important}
.workerDocItemA22 button.danger{background:#fee2e2!important;color:#991b1b!important}


.cloudDeleteNoteA25{
  display: inline-flex !important;
  align-items: center !important;
  border-radius: 999px !important;
  background: #dcfce7 !important;
  color: #166534 !important;
  padding: 3px 7px !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  white-space: nowrap !important;
}


.workerDocsPanelA26Wrap{
  margin-top: 14px !important;
}

.workerDocsPanelA26{
  display: grid !important;
  gap: 10px !important;
}

.workerDocGroupA26{
  border: 1px solid #dbe6f3 !important;
  border-radius: 14px !important;
  background: #f8fafc !important;
  padding: 10px !important;
}

.workerDocGroupA26 > strong{
  display: block !important;
  color: #0f172a !important;
  margin-bottom: 6px !important;
}

.workerDocItemA26{
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 6px !important;
  padding: 6px 0 !important;
  border-top: 1px dashed #dbe6f3 !important;
}

.workerDocItemA26 span{
  flex: 1 !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  font-size: 12px !important;
}

.workerDocItemA26 button{
  border: 0 !important;
  border-radius: 999px !important;
  background: #dbeafe !important;
  color: #1d4ed8 !important;
  padding: 5px 9px !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  cursor: pointer !important;
}

.workerDocItemA26 button.danger{
  background: #fee2e2 !important;
  color: #991b1b !important;
}

.workerDocsPanelA17,
.workerDocsPanelA22{
  display: none !important;
}


.workerDocsPanelA27Wrap{
  margin-top: 16px !important;
  padding: 12px !important;
  border: 2px solid #bfdbfe !important;
  border-radius: 18px !important;
  background: #eff6ff !important;
}

.workerDocsPanelA27 h3{
  margin: 0 0 10px !important;
  font-size: 16px !important;
  font-weight: 1000 !important;
  color: #1e3a8a !important;
}

.workerDocsPanelA27{
  display: grid !important;
  gap: 10px !important;
}

.workerDocGroupA27{
  border: 1px solid #dbe6f3 !important;
  border-radius: 14px !important;
  background: #fff !important;
  padding: 10px !important;
}

.workerDocGroupA27 > strong{
  display: block !important;
  color: #0f172a !important;
  margin-bottom: 6px !important;
}

.workerDocItemA27{
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 6px !important;
  padding: 7px 0 !important;
  border-top: 1px dashed #dbe6f3 !important;
}

.workerDocItemA27 span{
  flex: 1 !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  font-size: 12px !important;
  color: #0f172a !important;
}

.workerDocItemA27 button{
  border: 0 !important;
  border-radius: 999px !important;
  background: #dbeafe !important;
  color: #1d4ed8 !important;
  padding: 6px 10px !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  cursor: pointer !important;
}

.workerDocItemA27 button.danger{
  background: #fee2e2 !important;
  color: #991b1b !important;
}

.workerDocEmptyA27{
  color: #64748b !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  padding-top: 4px !important;
}

/* 古いパネルは隠す */
.workerDocsPanelA17,
.workerDocsPanelA22{
  display: none !important;
}


.a28CloudDeleteBtn{
  background: #fee2e2 !important;
  color: #991b1b !important;
  border: 1px solid #fecaca !important;
  box-shadow: 0 0 0 2px rgba(239,68,68,.08) !important;
}
.a28CloudDeleteBtn::after{
  content: "＋Cloud" !important;
  margin-left: 4px !important;
  font-size: 10px !important;
  font-weight: 900 !important;
}


.a29CloudDeleteBtn{
  background: #fee2e2 !important;
  color: #7f1d1d !important;
  border: 2px solid #f87171 !important;
}
.a29CloudDeleteBtn::after{
  content: " 実Cloud" !important;
  margin-left: 4px !important;
  font-size: 10px !important;
  font-weight: 1000 !important;
}


/* A30_テストボタン整理＋画面すっきり版 */
[data-a30-hidden-test-button="1"]{
  display: none !important;
}

.a30CleanTopBar{
  gap: 8px !important;
  flex-wrap: wrap !important;
}

.a30CleanTopBar button,
.a30CleanTopBar a{
  white-space: nowrap !important;
}

/* 実Cloudなどテスト目印は実運用では消す */
.a29CloudDeleteBtn::after,
.a28CloudDeleteBtn::after{
  content: "" !important;
  display: none !important;
}


/* A38_作業員画面カクつき停止_安定版 */
#workerDocsPanelA27Wrap,
.workerDocsPanelA27Wrap,
.workerDocsPanelA27,
.workerDocsPanelA26Wrap,
.workerDocsPanelA26,
.workerDocsPanelA22,
.workerDocsPanelA17,
.workerFileStatusA22,
.cloudDeleteNoteA25{
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
}

.a38HealthStatus{
  margin-top: 10px !important;
  border-radius: 999px !important;
  padding: 9px 12px !important;
  font-size: 13px !important;
  font-weight: 1000 !important;
  text-align: center !important;
}

.a38HealthStatus.registered{
  background: #dcfce7 !important;
  color: #166534 !important;
}

.a38HealthStatus.expiryOnly{
  background: #fef3c7 !important;
  color: #92400e !important;
}

.a38HealthStatus.unregistered{
  background: #e2e8f0 !important;
  color: #475569 !important;
}

.a38HealthDeleteBtn{
  width: 100% !important;
  margin-top: 10px !important;
  border: 1px solid #fecaca !important;
  border-radius: 999px !important;
  background: #fee2e2 !important;
  color: #991b1b !important;
  padding: 9px 12px !important;
  font-weight: 1000 !important;
  cursor: pointer !important;
}


/* A39_健康診断重複表示削除＋カード表示優先 */
.a38HealthStatus,
.a36HealthStatus{
  display: none !important;
}

.a39HealthDeleteBtn{
  width: 100% !important;
  margin-top: 10px !important;
  border: 1px solid #fecaca !important;
  border-radius: 999px !important;
  background: #fee2e2 !important;
  color: #991b1b !important;
  padding: 9px 12px !important;
  font-weight: 1000 !important;
  cursor: pointer !important;
}


/* A40_健康診断カード表示同期 */
.a40HealthOk{
  color: #1d4ed8 !important;
  font-weight: 1000 !important;
}

.a40HealthNg{
  color: #1d4ed8 !important;
  font-weight: 1000 !important;
}


/* A41_健康診断書閲覧対応 */
.a41HealthOpenPanel{
  margin-top: 10px !important;
  padding: 10px !important;
  border-radius: 14px !important;
  border: 1px solid #bbf7d0 !important;
  background: #f0fdf4 !important;
}

.a41HealthOpenPanel > strong{
  display: block !important;
  margin-bottom: 6px !important;
  color: #166534 !important;
  font-size: 13px !important;
}

.a41HealthFileRow{
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 8px !important;
  padding: 6px 0 !important;
  border-top: 1px dashed #bbf7d0 !important;
}

.a41HealthFileRow span{
  flex: 1 !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  color: #064e3b !important;
}

.a41HealthFileRow button{
  border: 0 !important;
  border-radius: 999px !important;
  background: #dbeafe !important;
  color: #1d4ed8 !important;
  padding: 6px 11px !important;
  font-weight: 1000 !important;
  cursor: pointer !important;
}


/* A42_健康診断書保存反映修正 */
button[data-a42-hooked="1"]{
  box-shadow: 0 0 0 2px rgba(34,197,94,.15) !important;
}


/* A43_健康診断PDFアプリ内表示＋Cloud保存固定 */
button[data-a43-hooked="1"]{
  box-shadow: 0 0 0 2px rgba(34,197,94,.18) !important;
}

.a43CloudNotice{
  background: #dcfce7 !important;
  color: #166534 !important;
  font-weight: 1000 !important;
}

.a43PdfModal{
  position: fixed !important;
  inset: 0 !important;
  z-index: 999999 !important;
  background: rgba(15,23,42,.68) !important;
  display: none;
  align-items: center !important;
  justify-content: center !important;
  padding: 22px !important;
}

.a43PdfDialog{
  width: min(980px, 96vw) !important;
  height: min(820px, 92vh) !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  background: #fff !important;
  box-shadow: 0 24px 80px rgba(0,0,0,.35) !important;
  display: flex !important;
  flex-direction: column !important;
}

.a43PdfHead{
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  padding: 12px 16px !important;
  background: #f8fafc !important;
  border-bottom: 1px solid #e2e8f0 !important;
}

.a43PdfHead strong{
  color: #0f172a !important;
  font-size: 15px !important;
}

.a43PdfHead button{
  border: 0 !important;
  border-radius: 999px !important;
  background: #0f172a !important;
  color: #fff !important;
  padding: 8px 14px !important;
  font-weight: 1000 !important;
  cursor: pointer !important;
}

.a43PdfActions{
  padding: 10px 16px !important;
  background: #eff6ff !important;
  border-bottom: 1px solid #dbeafe !important;
}

.a43PdfActions button{
  border: 0 !important;
  border-radius: 999px !important;
  background: #16a34a !important;
  color: #fff !important;
  padding: 8px 14px !important;
  font-weight: 1000 !important;
  cursor: pointer !important;
}

#a43PdfFrame{
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
  flex: 1 !important;
  background: #111827 !important;
}


/* A44_作業員カード書類状況の仕上げ */
.a44Summary{
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
  margin: 8px 0 12px !important;
  padding: 10px 12px !important;
  border-radius: 16px !important;
  background: #eff6ff !important;
  border: 1px solid #bfdbfe !important;
  color: #1e3a8a !important;
  font-weight: 1000 !important;
}

.a44Summary span{
  border-radius: 999px !important;
  padding: 4px 9px !important;
  background: #fff !important;
  color: #334155 !important;
  font-size: 12px !important;
}

.a44Summary span.ok{
  background: #dcfce7 !important;
  color: #166534 !important;
}

.a44Summary span.need{
  background: #fef3c7 !important;
  color: #92400e !important;
}

.a44WorkerCard{
  position: relative !important;
}

.a44NeedCard{
  box-shadow: 0 0 0 2px rgba(245,158,11,.16) !important;
}

.a44StatusBox{
  margin-top: 10px !important;
  padding: 10px !important;
  border-radius: 14px !important;
  border: 1px solid #e2e8f0 !important;
  background: #f8fafc !important;
}

.a44Head{
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 8px !important;
}

.a44Head strong{
  color: #0f172a !important;
  font-size: 13px !important;
}

.a44Head span{
  border-radius: 999px !important;
  padding: 4px 8px !important;
  font-size: 11px !important;
  font-weight: 1000 !important;
}

.a44Head span.ok{
  background: #dcfce7 !important;
  color: #166534 !important;
}

.a44Head span.need{
  background: #fef3c7 !important;
  color: #92400e !important;
}

.a44Pills{
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
}

.a44Pill{
  display: inline-flex !important;
  gap: 5px !important;
  align-items: center !important;
  border-radius: 999px !important;
  padding: 5px 9px !important;
  font-size: 11px !important;
  font-weight: 900 !important;
}

.a44Pill b{
  font-weight: 1000 !important;
}

.a44Pill.ok{
  background: #dcfce7 !important;
  color: #166534 !important;
}

.a44Pill.ng{
  background: #fee2e2 !important;
  color: #991b1b !important;
}

.a44Pill.warn{
  background: #fef3c7 !important;
  color: #92400e !important;
}

.a44Pill.danger{
  background: #fee2e2 !important;
  color: #7f1d1d !important;
}


/* A45_日報出勤者テーブル入力 */
.a45ReportWorkersBox{
  grid-column: 1 / -1 !important;
  margin: 8px 0 14px !important;
}

.a45ReportWorkers{
  width: 100% !important;
}

.a45Title{
  display: block !important;
  color: #ef4444 !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  margin-bottom: 8px !important;
}

.a45TableWrap{
  overflow-x: auto !important;
  border: 1px solid #dbe6f3 !important;
  border-radius: 14px !important;
  background: #fff !important;
}

.a45WorkerTable{
  width: 100% !important;
  min-width: 720px !important;
  border-collapse: collapse !important;
  background: #fff !important;
}

.a45WorkerTable th,
.a45WorkerTable td{
  border: 1px solid #dbe6f3 !important;
  padding: 8px !important;
  text-align: left !important;
  vertical-align: middle !important;
}

.a45WorkerTable th{
  background: #f8fafc !important;
  color: #0f172a !important;
  font-weight: 900 !important;
  font-size: 14px !important;
}

.a45WorkerTable select{
  width: 100% !important;
  min-height: 38px !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 8px !important;
  padding: 6px 10px !important;
  background: #fff !important;
  font-size: 14px !important;
}

.a45DragCol{
  width: 44px !important;
}

.a45ActCol{
  width: 190px !important;
}

.a45Drag button,
.a45Acts button{
  border: 0 !important;
  border-radius: 999px !important;
  padding: 6px 9px !important;
  font-weight: 1000 !important;
  cursor: pointer !important;
  margin: 2px !important;
}

.a45Drag button{
  background: #e2e8f0 !important;
  color: #334155 !important;
}

.a45Add{
  background: #dbeafe !important;
  color: #1d4ed8 !important;
}

.a45Copy{
  background: #e0f2fe !important;
  color: #0369a1 !important;
}

.a45Del{
  background: #fee2e2 !important;
  color: #991b1b !important;
}

[data-a45-hidden-worker-checkboxes="1"]{
  display: none !important;
}

@media (max-width: 700px){
  .a45WorkerTable{
    min-width: 640px !important;
  }
  .a45ActCol{
    width: 160px !important;
  }
}


/* A46_日報出勤者テーブル強制表示 */
[data-a46-hidden-workers="1"]{
  display: none !important;
}

#a46ReportWorkerRows{
  grid-column: 1 / -1 !important;
  width: 100% !important;
  margin: 6px 0 16px !important;
}

.a46Box{
  width: 100% !important;
}

.a46Label{
  display: block !important;
  color: #ef4444 !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  margin-bottom: 8px !important;
}

.a46Scroll{
  width: 100% !important;
  overflow-x: auto !important;
  border: 1px solid #dbe6f3 !important;
  border-radius: 14px !important;
  background: #fff !important;
}

.a46Table{
  width: 100% !important;
  min-width: 760px !important;
  border-collapse: collapse !important;
}

.a46Table th,
.a46Table td{
  border: 1px solid #dbe6f3 !important;
  padding: 8px !important;
  vertical-align: middle !important;
}

.a46Table th{
  background: #f8fafc !important;
  color: #0f172a !important;
  font-weight: 900 !important;
  font-size: 14px !important;
}

.a46Table .handle{
  width: 42px !important;
  text-align: center !important;
  color: #475569 !important;
  font-weight: 1000 !important;
}

.a46Table .actions{
  width: 190px !important;
}

.a46Table select{
  width: 100% !important;
  min-height: 38px !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 8px !important;
  padding: 6px 10px !important;
  background: #fff !important;
  font-size: 14px !important;
}

.a46Actions{
  white-space: nowrap !important;
}

.a46Actions button{
  border: 0 !important;
  border-radius: 999px !important;
  padding: 6px 9px !important;
  font-weight: 1000 !important;
  cursor: pointer !important;
  margin: 2px !important;
  background: #dbeafe !important;
  color: #1d4ed8 !important;
}

.a46Actions button.del{
  background: #fee2e2 !important;
  color: #991b1b !important;
}


/* A47_日報出勤者テーブル直接差替え */
[data-a47-hidden-original-workers="1"]{
  display: none !important;
}

#a47ReportWorkersBox{
  grid-column: 1 / -1 !important;
  width: 100% !important;
  margin: 0 0 14px !important;
}

.a47Box{
  width: 100% !important;
}

.a47Label{
  display: block !important;
  color: #ef4444 !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  margin-bottom: 8px !important;
}

.a47TableWrap{
  width: 100% !important;
  overflow-x: auto !important;
  border: 1px solid #dbe6f3 !important;
  border-radius: 14px !important;
  background: #fff !important;
}

.a47Table{
  width: 100% !important;
  min-width: 760px !important;
  border-collapse: collapse !important;
}

.a47Table th,
.a47Table td{
  border: 1px solid #dbe6f3 !important;
  padding: 8px !important;
  vertical-align: middle !important;
}

.a47Table th{
  background: #f8fafc !important;
  color: #0f172a !important;
  font-weight: 900 !important;
  font-size: 14px !important;
}

.a47Handle{
  width: 44px !important;
  text-align: center !important;
  color: #475569 !important;
  font-weight: 1000 !important;
}

.a47ActionsHead{
  width: 190px !important;
}

.a47Table select{
  width: 100% !important;
  min-height: 38px !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 8px !important;
  padding: 6px 10px !important;
  background: #fff !important;
  font-size: 14px !important;
}

.a47Actions{
  white-space: nowrap !important;
}

.a47Actions button{
  border: 0 !important;
  border-radius: 999px !important;
  padding: 6px 9px !important;
  font-weight: 1000 !important;
  cursor: pointer !important;
  margin: 2px !important;
  background: #dbeafe !important;
  color: #1d4ed8 !important;
}

.a47Actions button.danger{
  background: #fee2e2 !important;
  color: #991b1b !important;
}


/* A48_日報フォーム配置整理 */
#a48TopRow{
  grid-column: 1 / -1 !important;
  display: grid !important;
  grid-template-columns: minmax(180px, 1fr) minmax(220px, 1fr) minmax(220px, 1fr) !important;
  gap: 14px !important;
  align-items: end !important;
  width: 100% !important;
  margin-bottom: 14px !important;
}

#a48TopRow .a48TopField{
  width: 100% !important;
  margin: 0 !important;
}

#a48TopRow input,
#a48TopRow select{
  width: 100% !important;
}

[data-a48-hidden-field="1"]{
  display: none !important;
}

#a48WorkerTotals{
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-top: 8px !important;
}

#a48WorkerTotals span{
  display: inline-flex !important;
  align-items: center !important;
  border-radius: 999px !important;
  padding: 5px 10px !important;
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  font-size: 12px !important;
  font-weight: 1000 !important;
}

@media (max-width: 760px){
  #a48TopRow{
    grid-template-columns: 1fr !important;
  }
}


/* A49_日報出勤者テーブル1本化＋3枠固定＋カクつき停止 */
[data-a49-hidden-original="1"],
[data-a49-hidden-old-table="1"],
#a45ReportWorkersBox,
#a46ReportWorkerRows,
#a47ReportWorkersBox,
.a45ReportWorkersBox,
.a46Box,
.a47ReportWorkersBox{
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  margin: 0 !important;
}

#a49ReportWorkersBox{
  grid-column: 1 / -1 !important;
  width: 100% !important;
  margin: 0 0 14px !important;
}

.a49Box{
  width: 100% !important;
}

.a49Label{
  display: block !important;
  color: #ef4444 !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  margin-bottom: 8px !important;
}

.a49Scroll{
  width: 100% !important;
  overflow-x: auto !important;
  border: 1px solid #dbe6f3 !important;
  border-radius: 14px !important;
  background: #fff !important;
}

.a49Table{
  width: 100% !important;
  min-width: 760px !important;
  border-collapse: collapse !important;
}

.a49Table th,
.a49Table td{
  border: 1px solid #dbe6f3 !important;
  padding: 8px !important;
  vertical-align: middle !important;
}

.a49Table th{
  background: #f8fafc !important;
  color: #0f172a !important;
  font-weight: 900 !important;
  font-size: 14px !important;
}

.a49Handle{
  width: 44px !important;
  text-align: center !important;
  color: #475569 !important;
  font-weight: 1000 !important;
}

.a49Handle button{
  border: 0 !important;
  background: #e2e8f0 !important;
  color: #334155 !important;
  border-radius: 999px !important;
  padding: 6px 9px !important;
  font-weight: 1000 !important;
  cursor: pointer !important;
}

.a49ActionHead{
  width: 190px !important;
}

.a49Table select{
  width: 100% !important;
  min-height: 38px !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 8px !important;
  padding: 6px 10px !important;
  background: #fff !important;
  font-size: 14px !important;
}

.a49Actions{
  white-space: nowrap !important;
}

.a49Actions button{
  border: 0 !important;
  border-radius: 999px !important;
  padding: 6px 9px !important;
  font-weight: 1000 !important;
  cursor: pointer !important;
  margin: 2px !important;
  background: #dbeafe !important;
  color: #1d4ed8 !important;
}

.a49Actions button.danger{
  background: #fee2e2 !important;
  color: #991b1b !important;
}

.a49Totals{
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-top: 8px !important;
}

.a49Totals span{
  display: inline-flex !important;
  align-items: center !important;
  border-radius: 999px !important;
  padding: 5px 10px !important;
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  font-size: 12px !important;
  font-weight: 1000 !important;
}


/* A50_日報フォーム配置追加整理 */
#a50WorkPeopleMemoRow{
  grid-column: 1 / -1 !important;
  display: grid !important;
  grid-template-columns: 2fr 1fr 2fr !important;
  gap: 14px !important;
  align-items: start !important;
  width: 100% !important;
  margin: 12px 0 14px !important;
}

#a50WorkPeopleMemoRow .a50WorkField{
  width: 100% !important;
  margin: 0 !important;
}

#a50WorkPeopleMemoRow textarea,
#a50WorkPeopleMemoRow input,
#a50WorkPeopleMemoRow select{
  width: 100% !important;
}

#a50MachineRow{
  grid-column: 1 / -1 !important;
  width: 100% !important;
  margin: 0 0 14px !important;
}

#a50MachineRow .a50MachineField{
  width: 100% !important;
  margin: 0 !important;
}

[data-a50-hidden-field="1"]{
  display: none !important;
}

@media (max-width: 820px){
  #a50WorkPeopleMemoRow{
    grid-template-columns: 1fr !important;
  }
}


/* A51_日報ドロップダウン選択修正 */
.a51DropdownStable{
  pointer-events: auto !important;
  position: relative !important;
  z-index: 5 !important;
}


/* A52_日報出勤者ボタン簡略化 */
.a52ActionHead{
  width: 110px !important;
}

.a52Actions{
  white-space: nowrap !important;
  text-align: center !important;
}

.a52Actions button,
.a52Plus,
.a52Minus{
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  padding: 0 !important;
  border-radius: 999px !important;
  font-size: 18px !important;
  line-height: 1 !important;
  font-weight: 1000 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.a52Plus{
  background: #dbeafe !important;
  color: #1d4ed8 !important;
}

.a52Minus{
  background: #fee2e2 !important;
  color: #991b1b !important;
}


/* A53_日報ラベル赤文字復旧 */
#reportForm label.a53RedLabel,
#reportForm .a53RedLabel,
#reportForm .a49Label,
#reportForm .a47Label,
#reportForm .a46Label,
#reportForm .a45Title{
  color: #ef4444 !important;
  font-weight: 900 !important;
}

/* テーブル内の列見出しは見やすさ優先で黒 */
#reportForm .a49Table th,
#reportForm .a47Table th,
#reportForm .a46Table th,
#reportForm .a45WorkerTable th{
  color: #0f172a !important;
  font-weight: 900 !important;
}


/* A54_日報ラベル赤文字強制版 */
#reportForm .a54ReportRedLabel,
#reportForm label.a54ReportRedLabel,
#reportForm span.a54ReportRedLabel,
#reportForm div.a54ReportRedLabel,
#reportForm p.a54ReportRedLabel,
#reportForm small.a54ReportRedLabel{
  color: #ef4444 !important;
  font-weight: 900 !important;
}

/* よくあるフォームラベル系クラスも赤固定 */
#reportForm .form-label,
#reportForm .field-label,
#reportForm .label,
#reportForm .input-label{
  color: #ef4444 !important;
  font-weight: 900 !important;
}

/* 日報の上段・作業内容行・機械行の小見出しを赤寄せ */
#reportForm #a48TopRow > * > :first-child,
#reportForm #a50WorkPeopleMemoRow > * > :first-child,
#reportForm #a50MachineRow > * > :first-child{
  color: #ef4444 !important;
  font-weight: 900 !important;
}

/* 出勤者テーブル内の見出しは黒 */
#reportForm .a49Table th,
#reportForm .a47Table th,
#reportForm .a46Table th{
  color: #0f172a !important;
  font-weight: 900 !important;
}


/* A55_日報出力に出勤者テーブル反映 */
.a55ReportWorkersOut{
  margin: 12px 0 !important;
  padding: 10px !important;
  border: 1px solid #dbeafe !important;
  border-radius: 14px !important;
  background: #f8fafc !important;
}

.a55OutHead{
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 8px !important;
}

.a55OutHead strong{
  color: #0f172a !important;
  font-size: 14px !important;
}

.a55OutHead span{
  display: inline-flex !important;
  border-radius: 999px !important;
  padding: 4px 8px !important;
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  font-weight: 1000 !important;
  font-size: 12px !important;
}

.a55OutTableWrap{
  overflow-x: auto !important;
}

.a55OutTable{
  width: 100% !important;
  border-collapse: collapse !important;
  background: #fff !important;
}

.a55OutTable th,
.a55OutTable td{
  border: 1px solid #dbe6f3 !important;
  padding: 7px 8px !important;
  text-align: left !important;
  font-size: 13px !important;
}

.a55OutTable th{
  background: #f1f5f9 !important;
  color: #0f172a !important;
  font-weight: 900 !important;
}

.a55CsvBtn{
  border: 0 !important;
  border-radius: 999px !important;
  background: #dbeafe !important;
  color: #1d4ed8 !important;
  padding: 8px 12px !important;
  font-weight: 1000 !important;
  cursor: pointer !important;
  margin: 4px !important;
}


/* A56_日報ラベルだけ赤文字修正 */

/* 入力値は必ず黒 */
#reportForm input,
#reportForm select,
#reportForm textarea,
#reportForm option{
  color: #0f172a !important;
  font-weight: 400 !important;
}

/* ラベルだけ赤 */
#reportForm .a56LabelRed,
#reportForm label.a56LabelRed{
  color: #ef4444 !important;
  font-weight: 900 !important;
}

/* A54/A53が入力欄へ効かないように上書き */
#reportForm input.a54ReportRedLabel,
#reportForm select.a54ReportRedLabel,
#reportForm textarea.a54ReportRedLabel,
#reportForm input.a53RedLabel,
#reportForm select.a53RedLabel,
#reportForm textarea.a53RedLabel{
  color: #0f172a !important;
  font-weight: 400 !important;
}

/* selectの選択文字 */
#reportForm select{
  color: #0f172a !important;
  font-weight: 500 !important;
}

/* テーブル列見出しは黒 */
#reportForm .a49Table th,
#reportForm .a47Table th,
#reportForm .a46Table th,
#reportForm .a55OutTable th{
  color: #0f172a !important;
  font-weight: 900 !important;
}


/* A57_日報一覧内訳一本化＋編集下の内訳非表示 */
.a55ReportWorkersOut{
  display: none !important;
}

.a57ReportWorkersOut{
  margin: 12px 0 !important;
  padding: 10px !important;
  border: 1px solid #dbeafe !important;
  border-radius: 14px !important;
  background: #f8fafc !important;
}

.a57OutHead{
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 8px !important;
}

.a57OutHead strong{
  color: #0f172a !important;
  font-size: 14px !important;
}

.a57OutHead span{
  display: inline-flex !important;
  border-radius: 999px !important;
  padding: 4px 8px !important;
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  font-weight: 1000 !important;
  font-size: 12px !important;
}

.a57TableWrap{
  overflow-x: auto !important;
}

.a57Table{
  width: 100% !important;
  border-collapse: collapse !important;
  background: #fff !important;
}

.a57Table th,
.a57Table td{
  border: 1px solid #dbe6f3 !important;
  padding: 7px 8px !important;
  text-align: left !important;
  font-size: 13px !important;
}

.a57Table th{
  background: #f1f5f9 !important;
  color: #0f172a !important;
  font-weight: 900 !important;
}


/* A58_日報編集時出勤者テーブル読込修正 */
#a49ReportWorkersBox{
  transition: none !important;
}


/* A59_カード内ラベル以外黒文字修正 */

/* カード内の基本文字は黒 */
.card,
.worker-card,
.member-card,
.vehicle-card,
.machine-card,
.report-card,
.list-card,
article,
section{
  color: #0f172a !important;
}

/* 入力値・選択値は黒 */
input,
select,
textarea,
option{
  color: #0f172a !important;
  font-weight: 400 !important;
}

/* ボタンは各ボタンの色を優先。赤ラベル化しない */
button.a54ReportRedLabel,
button.a53RedLabel,
button.a56LabelRed,
a.a54ReportRedLabel,
a.a53RedLabel,
a.a56LabelRed{
  color: inherit !important;
}

/* A54/A53/A56が通常文字へ効きすぎないように抑える */
.card .a54ReportRedLabel:not(label):not(.a59TrueLabelRed),
.card .a53RedLabel:not(label):not(.a59TrueLabelRed),
.card .a56LabelRed:not(label):not(.a59TrueLabelRed),
.worker-card .a54ReportRedLabel:not(label):not(.a59TrueLabelRed),
.worker-card .a53RedLabel:not(label):not(.a59TrueLabelRed),
.worker-card .a56LabelRed:not(label):not(.a59TrueLabelRed),
.member-card .a54ReportRedLabel:not(label):not(.a59TrueLabelRed),
.member-card .a53RedLabel:not(label):not(.a59TrueLabelRed),
.member-card .a56LabelRed:not(label):not(.a59TrueLabelRed),
.report-card .a54ReportRedLabel:not(label):not(.a59TrueLabelRed),
.report-card .a53RedLabel:not(label):not(.a59TrueLabelRed),
.report-card .a56LabelRed:not(label):not(.a59TrueLabelRed){
  color: #0f172a !important;
  font-weight: 400 !important;
}

/* 本当にラベルとして残すものだけ赤 */
.a59TrueLabelRed,
#reportForm label.a56LabelRed,
#reportForm label.a54ReportRedLabel,
#reportForm label.a53RedLabel{
  color: #ef4444 !important;
  font-weight: 900 !important;
}

/* 日報テーブルの見出しは黒 */
#reportForm .a49Table th,
#reportForm .a47Table th,
#reportForm .a46Table th,
#reportForm .a57Table th,
#reportForm .a55OutTable th{
  color: #0f172a !important;
  font-weight: 900 !important;
}


/* A60_日報保存チェックを出勤者テーブル対応 */
#reportForm button[data-a60-click-installed="1"]{
  box-shadow: 0 0 0 2px rgba(34,197,94,.16) !important;
}


/* A61_日報入力画面の出勤者内訳非表示＋保存後だけ表示 */

/* 日報入力/編集フォーム内では出力用内訳を出さない */
#reportForm .a55ReportWorkersOut,
#reportForm .a57ReportWorkersOut,
#reportForm .a61ReportWorkersOut{
  display: none !important;
}

.a55ReportWorkersOut,
.a57ReportWorkersOut{
  display: none !important;
}

.a61ReportWorkersOut{
  margin: 12px 0 !important;
  padding: 10px !important;
  border: 1px solid #dbeafe !important;
  border-radius: 14px !important;
  background: #f8fafc !important;
}

.a61OutHead{
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  align-items: center !important;
  margin-bottom: 8px !important;
}

.a61OutHead strong{
  color: #0f172a !important;
  font-size: 14px !important;
}

.a61OutHead span{
  display: inline-flex !important;
  border-radius: 999px !important;
  padding: 4px 8px !important;
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  font-weight: 1000 !important;
  font-size: 12px !important;
}

.a61TableWrap{
  overflow-x: auto !important;
}

.a61Table{
  width: 100% !important;
  border-collapse: collapse !important;
  background: #fff !important;
}

.a61Table th,
.a61Table td{
  border: 1px solid #dbe6f3 !important;
  padding: 7px 8px !important;
  text-align: left !important;
  font-size: 13px !important;
  color: #0f172a !important;
}

.a61Table th{
  background: #f1f5f9 !important;
  font-weight: 900 !important;
}


/* A62_日報編集保存アラート完全修正 */
#reportForm button[data-a62-installed="1"]{
  box-shadow: 0 0 0 2px rgba(34,197,94,.18) !important;
}


/* A63_固定出勤者内訳削除 */

/* 入力・編集フォーム内では出力用内訳を絶対に出さない */
#reportForm .a55ReportWorkersOut,
#reportForm .a57ReportWorkersOut,
#reportForm .a61ReportWorkersOut{
  display: none !important;
}

/* 紐づきがない固定内訳はJSで削除。念のため余計なA55/A57は非表示 */
.a55ReportWorkersOut,
.a57ReportWorkersOut{
  display: none !important;
}

/* A61は日報カードに紐づいたものだけ表示 */
.a61ReportWorkersOut{
  margin: 12px 0 !important;
}

:not(.a63LinkedReportCard) > .a61ReportWorkersOut{
  display: none !important;
}


/* A64_日報編集対象ID固定修正 */


/* A65_日報編集保存を追加ではなく上書き固定 */
#reportForm button[data-a65-installed="1"]{
  box-shadow: 0 0 0 2px rgba(34,197,94,.18) !important;
}


/* A66_日報詳細に出勤者内訳表示 */
.a66DetailWorkerRows{
  margin: 12px 0 !important;
  padding: 10px !important;
  border: 1px solid #dbeafe !important;
  border-radius: 14px !important;
  background: #f8fafc !important;
}

.a66DetailHead{
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 8px !important;
}

.a66DetailHead strong{
  color: #0f172a !important;
  font-size: 14px !important;
}

.a66DetailHead span{
  display: inline-flex !important;
  border-radius: 999px !important;
  padding: 4px 8px !important;
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  font-weight: 1000 !important;
  font-size: 12px !important;
}

.a66TableWrap{
  overflow-x: auto !important;
}

.a66Table{
  width: 100% !important;
  border-collapse: collapse !important;
  background: #fff !important;
}

.a66Table th,
.a66Table td{
  border: 1px solid #dbe6f3 !important;
  padding: 7px 8px !important;
  text-align: left !important;
  font-size: 13px !important;
  color: #0f172a !important;
}

.a66Table th{
  background: #f1f5f9 !important;
  font-weight: 900 !important;
}

.a66OldSummaryHidden{
  display: none !important;
}


/* A67_日報詳細出勤者内訳1個固定 */

/* 古い内訳は非表示 */
.a55ReportWorkersOut,
.a57ReportWorkersOut,
.a61ReportWorkersOut{
  display: none !important;
}

/* 入力フォーム内には出さない */
#reportForm .a66DetailWorkerRows,
#reportForm .a67DetailWorkerRows{
  display: none !important;
}

/* A67で残す1個だけ通常表示 */
.a67DetailWorkerRows{
  display: block !important;
}


/* A68_日報詳細内訳の増殖停止 */
.a55ReportWorkersOut,
.a57ReportWorkersOut,
.a61ReportWorkersOut{
  display: none !important;
}

#reportForm .a66DetailWorkerRows,
#reportForm .a67DetailWorkerRows,
#reportForm .a68DetailWorkerRows{
  display: none !important;
}

.a68DetailWorkerRows{
  display: block !important;
}


/* A69_日報詳細内訳1個だけ再表示 */
.a55ReportWorkersOut,
.a57ReportWorkersOut,
.a61ReportWorkersOut,
.a66DetailWorkerRows,
.a67DetailWorkerRows,
.a68DetailWorkerRows{
  display: none !important;
}

#reportForm .a69DetailWorkerRows{
  display: none !important;
}

.a69DetailWorkerRows{
  display: block !important;
  margin: 12px 0 !important;
  padding: 10px !important;
  border: 1px solid #dbeafe !important;
  border-radius: 14px !important;
  background: #f8fafc !important;
}

.a69Head{
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  align-items: center !important;
  margin-bottom: 8px !important;
}

.a69Head strong{
  color: #0f172a !important;
  font-size: 14px !important;
}

.a69Head span{
  display: inline-flex !important;
  border-radius: 999px !important;
  padding: 4px 8px !important;
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  font-weight: 1000 !important;
  font-size: 12px !important;
}

.a69TableWrap{
  overflow-x: auto !important;
}

.a69Table{
  width: 100% !important;
  border-collapse: collapse !important;
  background: #fff !important;
}

.a69Table th,
.a69Table td{
  border: 1px solid #dbe6f3 !important;
  padding: 7px 8px !important;
  text-align: left !important;
  font-size: 13px !important;
  color: #0f172a !important;
}

.a69Table th{
  background: #f1f5f9 !important;
  font-weight: 900 !important;
}


/* A70_日報詳細内訳を選択日報に同期 */
.a55ReportWorkersOut,
.a57ReportWorkersOut,
.a61ReportWorkersOut,
.a66DetailWorkerRows,
.a67DetailWorkerRows,
.a68DetailWorkerRows,
.a69DetailWorkerRows{
  display: none !important;
}

#reportForm .a70DetailWorkerRows{
  display: none !important;
}

.a70DetailWorkerRows{
  display: block !important;
  margin: 12px 0 !important;
  padding: 10px !important;
  border: 1px solid #dbeafe !important;
  border-radius: 14px !important;
  background: #f8fafc !important;
}

.a70Head{
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  align-items: center !important;
  margin-bottom: 8px !important;
}

.a70Head strong{
  color: #0f172a !important;
  font-size: 14px !important;
}

.a70Head span{
  display: inline-flex !important;
  border-radius: 999px !important;
  padding: 4px 8px !important;
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  font-weight: 1000 !important;
  font-size: 12px !important;
}

.a70TableWrap{
  overflow-x: auto !important;
}

.a70Table{
  width: 100% !important;
  border-collapse: collapse !important;
  background: #fff !important;
}

.a70Table th,
.a70Table td{
  border: 1px solid #dbe6f3 !important;
  padding: 7px 8px !important;
  text-align: left !important;
  font-size: 13px !important;
  color: #0f172a !important;
}

.a70Table th{
  background: #f1f5f9 !important;
  font-weight: 900 !important;
}


/* A71_日報詳細表示整理 */

/* 日報詳細の明日の予定を非表示 */
.a71HiddenNext{
  display: none !important;
}

/* 日報詳細の作業員まとめを小さめに */
.a71WorkerSummaryCompact{
  display: inline-flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  width: fit-content !important;
  max-width: 100% !important;
  min-height: 0 !important;
  padding: 8px 10px !important;
  margin: 6px 0 8px !important;
  border-radius: 12px !important;
  background: #f8fafc !important;
  border: 1px solid #dbe6f3 !important;
}

.a71WorkerSummaryCompact *{
  line-height: 1.4 !important;
}

.a71WorkerSummaryCompact .a71WorkerNames{
  display: inline-flex !important;
  align-items: center !important;
  width: auto !important;
  max-width: 100% !important;
  padding: 2px 6px !important;
  border-radius: 999px !important;
  background: #eff6ff !important;
  color: #0f172a !important;
  font-weight: 800 !important;
}

/* 詳細画面の作業員欄が大きいカードになりすぎるのを抑える */
.report-detail .a71WorkerSummaryCompact,
.daily-report-detail .a71WorkerSummaryCompact,
.card .a71WorkerSummaryCompact{
  flex: 0 1 auto !important;
}


/* A72_日報詳細レイアウト整理 */
#a72DetailGrid{
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  width: 100% !important;
  margin: 10px 0 12px !important;
}

.a72TopArea{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
}

.a72MidArea{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
}

.a72BottomArea{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
  margin-top: 2px !important;
}

.a72Field{
  min-height: 0 !important;
  margin: 0 !important;
  padding: 10px !important;
  border-radius: 12px !important;
  border: 1px solid #dbe6f3 !important;
  background: #f8fafc !important;
  color: #0f172a !important;
}

.a72WideField{
  min-height: 76px !important;
}

.a72BottomField{
  min-height: 72px !important;
}

.a72Full{
  width: 100% !important;
  margin: 0 !important;
}

.a72WorkerRows{
  order: 2 !important;
}

.a72HideWorkerSummary,
.a72Hidden,
.a72OldFieldHidden{
  display: none !important;
}

.a72EditArea{
  margin-top: 10px !important;
}

@media (max-width: 760px){
  .a72TopArea,
  .a72MidArea,
  .a72BottomArea{
    grid-template-columns: 1fr !important;
  }
}


/* A73_日報詳細上部内訳削除＋本体全幅化 */
.a73DetailRoot{
  max-width: 980px !important;
  width: min(980px, 96vw) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

#a72DetailGrid.a73FullDetailGrid{
  width: 100% !important;
  max-width: 100% !important;
  margin: 10px auto 12px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}

/* 余計な上部内訳は非表示 */
.a73DetailRoot > .a55ReportWorkersOut,
.a73DetailRoot > .a57ReportWorkersOut,
.a73DetailRoot > .a61ReportWorkersOut,
.a73DetailRoot > .a66DetailWorkerRows,
.a73DetailRoot > .a67DetailWorkerRows,
.a73DetailRoot > .a68DetailWorkerRows,
.a73DetailRoot > .a69DetailWorkerRows,
.a73DetailRoot > .a70DetailWorkerRows{
  display: none !important;
}

/* 詳細の基本情報を横いっぱい */
.a73FullDetailGrid .a72TopArea,
.a73FullDetailGrid .a72MidArea,
.a73FullDetailGrid .a72BottomArea{
  width: 100% !important;
  max-width: 100% !important;
}

.a73FullDetailGrid .a72TopArea{
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.a73FullDetailGrid .a72MidArea{
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.a73FullDetailGrid .a72BottomArea{
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.a73FullDetailGrid .a70DetailWorkerRows,
.a73FullDetailGrid .a69DetailWorkerRows,
.a73FullDetailGrid .a66DetailWorkerRows,
.a73FullDetailGrid .a72WorkerRows{
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
}

.a73DetailTitle{
  writing-mode: horizontal-tb !important;
  display: block !important;
  color: #ef4444 !important;
  font-weight: 900 !important;
  margin-bottom: 8px !important;
  letter-spacing: normal !important;
}

@media (max-width: 760px){
  .a73FullDetailGrid .a72TopArea,
  .a73FullDetailGrid .a72MidArea,
  .a73FullDetailGrid .a72BottomArea{
    grid-template-columns: 1fr !important;
  }
}


/* A74_日報詳細レイアウト作り直し */
.a74Root{
  width: min(1040px, 96vw) !important;
  max-width: 1040px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.a74Title{
  writing-mode: horizontal-tb !important;
  display: block !important;
  color: #ef4444 !important;
  font-weight: 900 !important;
  margin: 0 0 10px !important;
  letter-spacing: normal !important;
}

#a74DetailLayout{
  width: 100% !important;
  max-width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  margin: 10px 0 12px !important;
}

.a74TopGrid,
.a74MidGrid,
.a74BottomGrid{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
  width: 100% !important;
}

.a74Field{
  border: 1px solid #dbe6f3 !important;
  border-radius: 12px !important;
  background: #f8fafc !important;
  padding: 10px !important;
  min-height: 62px !important;
  color: #0f172a !important;
}

.a74WideField{
  min-height: 84px !important;
}

.a74Label{
  color: #ef4444 !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  margin-bottom: 6px !important;
}

.a74Value{
  color: #0f172a !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
  white-space: pre-wrap !important;
  word-break: break-word !important;
}

.a74WorkerRows{
  width: 100% !important;
  border: 1px solid #dbeafe !important;
  border-radius: 14px !important;
  background: #f8fafc !important;
  padding: 10px !important;
  margin: 0 !important;
}

.a74WorkerHead{
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  align-items: center !important;
  margin-bottom: 8px !important;
}

.a74WorkerHead strong{
  color: #0f172a !important;
  font-size: 14px !important;
}

.a74WorkerHead span{
  border-radius: 999px !important;
  padding: 4px 8px !important;
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  font-weight: 1000 !important;
  font-size: 12px !important;
}

.a74TableWrap{
  overflow-x: auto !important;
}

.a74Table{
  width: 100% !important;
  border-collapse: collapse !important;
  background: #fff !important;
}

.a74Table th,
.a74Table td{
  border: 1px solid #dbe6f3 !important;
  padding: 7px 8px !important;
  text-align: left !important;
  font-size: 13px !important;
  color: #0f172a !important;
}

.a74Table th{
  background: #f1f5f9 !important;
  font-weight: 900 !important;
}

.a74OldHidden{
  display: none !important;
}

#reportForm #a74DetailLayout{
  display: none !important;
}

@media (max-width: 760px){
  .a74TopGrid,
  .a74MidGrid,
  .a74BottomGrid{
    grid-template-columns: 1fr !important;
  }
}



/* A75_日報詳細前回表示リセット */
.a75Root{width:min(1040px,96vw)!important;max-width:1040px!important;margin-left:auto!important;margin-right:auto!important;}
.a75Title{writing-mode:horizontal-tb!important;display:block!important;color:#ef4444!important;font-weight:900!important;margin:0 0 10px!important;letter-spacing:normal!important;}
#a75DetailLayout{width:100%!important;max-width:100%!important;display:flex!important;flex-direction:column!important;gap:10px!important;margin:10px 0 12px!important;}
.a75TopGrid,.a75MidGrid,.a75BottomGrid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;width:100%!important;}
.a75Field{border:1px solid #dbe6f3!important;border-radius:12px!important;background:#f8fafc!important;padding:10px!important;min-height:62px!important;color:#0f172a!important;}
.a75Wide{min-height:84px!important;}
.a75Label{color:#ef4444!important;font-size:12px!important;font-weight:900!important;margin-bottom:6px!important;}
.a75Value{color:#0f172a!important;font-size:15px!important;font-weight:800!important;line-height:1.45!important;white-space:pre-wrap!important;word-break:break-word!important;}
.a75WorkerRows{width:100%!important;border:1px solid #dbeafe!important;border-radius:14px!important;background:#f8fafc!important;padding:10px!important;margin:0!important;}
.a75WorkerHead{display:flex!important;flex-wrap:wrap!important;gap:8px!important;align-items:center!important;margin-bottom:8px!important;}
.a75WorkerHead strong{color:#0f172a!important;font-size:14px!important;}
.a75WorkerHead span{border-radius:999px!important;padding:4px 8px!important;background:#eff6ff!important;color:#1d4ed8!important;font-weight:1000!important;font-size:12px!important;}
.a75TableWrap{overflow-x:auto!important;}
.a75Table{width:100%!important;border-collapse:collapse!important;background:#fff!important;}
.a75Table th,.a75Table td{border:1px solid #dbe6f3!important;padding:7px 8px!important;text-align:left!important;font-size:13px!important;color:#0f172a!important;}
.a75Table th{background:#f1f5f9!important;font-weight:900!important;}
.a75OldHidden,#reportForm #a75DetailLayout{display:none!important;}
#a72DetailGrid,#a74DetailLayout,.a70DetailWorkerRows,.a69DetailWorkerRows,.a66DetailWorkerRows,.a67DetailWorkerRows,.a68DetailWorkerRows{display:none!important;}
@media(max-width:760px){.a75TopGrid,.a75MidGrid,.a75BottomGrid{grid-template-columns:1fr!important;}}



/* A77_日報詳細は新表示だけ残す修正 */
#a75DetailLayout.a77KeepNewDetail{
  display: flex !important;
  width: 100% !important;
  visibility: visible !important;
}

.a77KeepEdit{
  display: block !important;
  visibility: visible !important;
}

.a77OldDetailHidden{
  display: none !important;
}

.a77CleanDetailRoot #a75DetailLayout{
  margin-bottom: 12px !important;
}



/* A84_日報詳細表示を安定版へ戻す */

/* A78〜A83の強制非表示を日報一覧カードには効かせない */
.report-card.a78HideBlock,
.report-card.a79HideDetailSummary,
.report-card.a80HideOldDetailCard,
.report-card.a81HideOldBottom,
.report-card.a82HideBelowNewDetail,
.report-card.a83HideOldDetail,
.daily-report-card.a78HideBlock,
.daily-report-card.a79HideDetailSummary,
.daily-report-card.a80HideOldDetailCard,
.daily-report-card.a81HideOldBottom,
.daily-report-card.a82HideBelowNewDetail,
.daily-report-card.a83HideOldDetail{
  display: block !important;
}

.report-card .a78HideBlock,
.report-card .a79HideDetailSummary,
.report-card .a80HideOldDetailCard,
.report-card .a81HideOldBottom,
.report-card .a82HideBelowNewDetail,
.report-card .a83HideOldDetail,
.daily-report-card .a78HideBlock,
.daily-report-card .a79HideDetailSummary,
.daily-report-card .a80HideOldDetailCard,
.daily-report-card .a81HideOldBottom,
.daily-report-card .a82HideBelowNewDetail,
.daily-report-card .a83HideOldDetail{
  display: revert !important;
}

/* 詳細本体はA77/A75の安定表示を優先 */
#a75DetailLayout.a84StableDetail,
#a75DetailLayout{
  display: flex !important;
  visibility: visible !important;
}

/* A82/A83で複製した編集ボタン置き場は消す */
#a82EditHolder,
#a83EditHolder{
  display: none !important;
}

/* タイトル縦書き防止 */
.a75Title,
.a74Title{
  writing-mode: horizontal-tb !important;
  letter-spacing: normal !important;
}



/* A85_日報詳細に出勤者内訳を安全表示 */
.a85WorkerRows{
  width: 100% !important;
  border: 1px solid #dbeafe !important;
  border-radius: 14px !important;
  background: #f8fafc !important;
  padding: 10px !important;
  margin: 10px 0 !important;
  box-sizing: border-box !important;
}

.a85WorkerHead{
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  align-items: center !important;
  margin-bottom: 8px !important;
}

.a85WorkerHead strong{
  color: #0f172a !important;
  font-size: 14px !important;
}

.a85WorkerHead span{
  border-radius: 999px !important;
  padding: 4px 8px !important;
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  font-weight: 1000 !important;
  font-size: 12px !important;
}

.a85TableWrap{
  overflow-x: auto !important;
}

.a85Table{
  width: 100% !important;
  border-collapse: collapse !important;
  background: #fff !important;
}

.a85Table th,
.a85Table td{
  border: 1px solid #dbe6f3 !important;
  padding: 7px 8px !important;
  text-align: left !important;
  font-size: 13px !important;
  color: #0f172a !important;
}

.a85Table th{
  background: #f1f5f9 !important;
  font-weight: 900 !important;
}

#reportForm .a85WorkerRows{
  display: none !important;
}



/* A88_A85安定版へ復旧 */
.report-card,
.daily-report-card,
#reportsPage,
#reportList,
.reports-list,
.daily-report-list{
  display: block !important;
}

.report-card .a86HideLowerOldTable,
.report-card .a87HideLowerOldCard,
.report-card .a82HideBelowNewDetail,
.report-card .a83HideOldDetail,
.report-card .a81HideOldBottom,
.report-card .a80HideOldDetailCard,
.report-card .a79HideDetailSummary,
.report-card .a78HideBlock,
.daily-report-card .a86HideLowerOldTable,
.daily-report-card .a87HideLowerOldCard,
.daily-report-card .a82HideBelowNewDetail,
.daily-report-card .a83HideOldDetail,
.daily-report-card .a81HideOldBottom,
.daily-report-card .a80HideOldDetailCard,
.daily-report-card .a79HideDetailSummary,
.daily-report-card .a78HideBlock{
  display: revert !important;
}

.a88KeepA85Rows{
  display: block !important;
  visibility: visible !important;
}

#a87EditHolder,
#a83EditHolder,
#a82EditHolder{
  display: none !important;
}



/* A90_日報一覧の中身表示を作り直し */
.a90DetailCard{
  width: min(1040px, 96vw) !important;
  max-width: 1040px !important;
  margin: 0 auto 14px !important;
  padding: 14px !important;
  border-radius: 16px !important;
  background: #fff !important;
  border: 1px solid #dbe6f3 !important;
  box-sizing: border-box !important;
}

.a90DetailTitleRow{
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 10px !important;
  margin-bottom: 10px !important;
}

.a90DetailTitleRow strong{
  color: #ef4444 !important;
  font-size: 16px !important;
}

.a90DetailTitleRow span{
  color: #64748b !important;
  font-size: 12px !important;
}

.a90TopGrid,
.a90MidGrid,
.a90BottomGrid{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
  width: 100% !important;
  margin-bottom: 10px !important;
}

.a90Field{
  border: 1px solid #dbe6f3 !important;
  border-radius: 12px !important;
  background: #f8fafc !important;
  padding: 10px !important;
  min-height: 62px !important;
  box-sizing: border-box !important;
}

.a90Wide{
  min-height: 84px !important;
}

.a90Label{
  color: #ef4444 !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  margin-bottom: 6px !important;
}

.a90Value{
  color: #0f172a !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
  white-space: pre-wrap !important;
  word-break: break-word !important;
}

.a90WorkerRows{
  width: 100% !important;
  border: 1px solid #dbeafe !important;
  border-radius: 14px !important;
  background: #f8fafc !important;
  padding: 10px !important;
  margin: 0 0 10px !important;
  box-sizing: border-box !important;
}

.a90WorkerHead{
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  align-items: center !important;
  margin-bottom: 8px !important;
}

.a90WorkerHead strong{
  color: #0f172a !important;
  font-size: 14px !important;
}

.a90WorkerHead span{
  border-radius: 999px !important;
  padding: 4px 8px !important;
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  font-weight: 1000 !important;
  font-size: 12px !important;
}

.a90TableWrap{
  overflow-x: auto !important;
}

.a90Table{
  width: 100% !important;
  border-collapse: collapse !important;
  background: #fff !important;
}

.a90Table th,
.a90Table td{
  border: 1px solid #dbe6f3 !important;
  padding: 7px 8px !important;
  text-align: left !important;
  font-size: 13px !important;
  color: #0f172a !important;
}

.a90Table th{
  background: #f1f5f9 !important;
  font-weight: 900 !important;
}

.a90Actions{
  margin-top: 10px !important;
}

@media (max-width: 760px){
  .a90TopGrid,
  .a90MidGrid,
  .a90BottomGrid{
    grid-template-columns: 1fr !important;
  }
}



/* A91_日報詳細の重複表示を1個に固定 */
.a91HideDuplicateDetail{
  display: none !important;
}

.a90DetailCard{
  display: block !important;
  visibility: visible !important;
}



/* A92_日報詳細表示エリアを丸ごと1個に作り直し */
.a92DetailHostInner{
  width: 100% !important;
}

.a92OnlyDetail{
  width: min(1040px, 96vw) !important;
  max-width: 1040px !important;
  margin: 0 auto 14px !important;
  padding: 14px !important;
  border-radius: 16px !important;
  background: #fff !important;
  border: 1px solid #dbe6f3 !important;
  box-sizing: border-box !important;
}

.a92TitleRow{
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 10px !important;
  margin-bottom: 10px !important;
}

.a92TitleRow strong{
  color: #ef4444 !important;
  font-size: 16px !important;
}

.a92TitleRow span{
  color: #64748b !important;
  font-size: 12px !important;
}

.a92TopGrid,
.a92MidGrid,
.a92BottomGrid{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
  width: 100% !important;
  margin-bottom: 10px !important;
}

.a92Field{
  border: 1px solid #dbe6f3 !important;
  border-radius: 12px !important;
  background: #f8fafc !important;
  padding: 10px !important;
  min-height: 62px !important;
  box-sizing: border-box !important;
}

.a92Wide{
  min-height: 84px !important;
}

.a92Label{
  color: #ef4444 !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  margin-bottom: 6px !important;
}

.a92Value{
  color: #0f172a !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
  white-space: pre-wrap !important;
  word-break: break-word !important;
}

.a92WorkerRows{
  width: 100% !important;
  border: 1px solid #dbeafe !important;
  border-radius: 14px !important;
  background: #f8fafc !important;
  padding: 10px !important;
  margin: 0 0 10px !important;
  box-sizing: border-box !important;
}

.a92WorkerHead{
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  align-items: center !important;
  margin-bottom: 8px !important;
}

.a92WorkerHead strong{
  color: #0f172a !important;
  font-size: 14px !important;
}

.a92WorkerHead span{
  border-radius: 999px !important;
  padding: 4px 8px !important;
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  font-weight: 1000 !important;
  font-size: 12px !important;
}

.a92TableWrap{
  overflow-x: auto !important;
}

.a92Table{
  width: 100% !important;
  border-collapse: collapse !important;
  background: #fff !important;
}

.a92Table th,
.a92Table td{
  border: 1px solid #dbe6f3 !important;
  padding: 7px 8px !important;
  text-align: left !important;
  font-size: 13px !important;
  color: #0f172a !important;
}

.a92Table th{
  background: #f1f5f9 !important;
  font-weight: 900 !important;
}

.a92Actions{
  margin-top: 10px !important;
}

.a92HideOldDetail{
  display: none !important;
}

@media (max-width: 760px){
  .a92TopGrid,
  .a92MidGrid,
  .a92BottomGrid{
    grid-template-columns: 1fr !important;
  }
}



/* A93_日報詳細を1個だけ残して他を削除 */
.a93KeepDetail{
  display: block !important;
  visibility: visible !important;
}



/* A104_現在ページbody固定 */
body[data-current-page] .page{
  display: none !important;
}

body[data-current-page="home"] #home,
body[data-current-page="attendance"] #attendance,
body[data-current-page="vehicles"] #vehicles,
body[data-current-page="reports"] #reports,
body[data-current-page="members"] #members,
body[data-current-page="settings"] #settings,
body[data-current-page="monthlySummary"] #monthlySummary,
body[data-current-page="reportList"] #reportList,
body[data-current-page="users"] #users,
body[data-current-page="dashboard"] #dashboard,
body[data-current-page="companyManagement"] #companyManagement,
body[data-current-page="workerAdmin"] #workerAdmin,
body[data-current-page="vehicleDetail"] #vehicleDetail,
body[data-current-page="alertList"] #alertList{
  display: block !important;
}

/* bodyがreportList以外なら、古い処理でactiveが残っても日報一覧は絶対に出さない */
body:not([data-current-page="reportList"]) #reportList{
  display: none !important;
}



/* A117_安全な1件編集保存 */
.a117EditBanner{
  max-width: 760px;
  margin: 8px auto 10px;
  padding: 8px 12px;
  border-radius: 12px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  color: #c2410c;
  font-weight: 900;
  font-size: 13px;
}


/* A129 作業員情報管理は各種登録内、作業員一覧は閲覧専用 */
.workerManageSettingsPanelA126,
.workerManageMasterPanelA127,
#workerManageMasterPanelA128{
  display:none!important;
}
.workerManageMembersPanelA129{
  margin:0 0 18px;
  border:1px solid #d7e3f0;
  background:#fff;
  border-radius:18px;
}
.workerManageMembersPanelA129 .sectionTitle strong::after{
  content:"（登録・編集）";
  font-size:12px;
  color:#64748b;
  margin-left:6px;
}
.workerViewOnlyNoticeA129{
  margin:10px 0 14px;
  padding:10px 14px;
  border-radius:14px;
  border:1px solid #bfdbfe;
  background:#eff6ff;
  color:#1e3a8a;
  font-size:13px;
  font-weight:700;
}
#workerAdmin #workerAdminForm{
  display:none!important;
}
#workerAdmin #workerAdminList,
#workerAdmin #workerAdminCount,
#workerAdmin #workerAdminContent{
  display:block!important;
}
#home #workerAdminForm{
  display:none!important;
}


/* A130 各種登録の登録済みチップ文字を黒へ */
#members .pill,
#members .chip,
#members .tag,
#members .item,
#members .dragItem,
#members .masterItem,
#members .sortable > *,
#members .masterList > *,
#members .memberList > *,
#members .siteList > *,
#members .primeList > *,
#members .placeList > * {
  color: #111827 !important;
}

#members .pill span,
#members .chip span,
#members .tag span,
#members .item span,
#members .dragItem span,
#members .masterItem span {
  color: #111827 !important;
}

#members button.delete,
#members .delete,
#members .remove,
#members button[aria-label*="削除"] {
  color: #ef4444 !important;
}

/* ボタン内で「削除」以外の名前部分が赤くならないよう補強 */
#members .sortable button:not(.delete):not(.remove),
#members .masterList button:not(.delete):not(.remove),
#members .memberList button:not(.delete):not(.remove),
#members .siteList button:not(.delete):not(.remove),
#members .primeList button:not(.delete):not(.remove),
#members .placeList button:not(.delete):not(.remove) {
  color: #111827 !important;
}


/* A134 車両追加フォーム：固定レイアウトで復旧 */
.vehicleMasterForm .vehicleTopGridA134{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:12px;
  align-items:end;
  margin-bottom:14px;
}

.vehicleRowsA134{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin:8px 0 14px;
}

.vehiclePairA134{
  display:grid;
  grid-template-columns:minmax(280px,1fr) minmax(260px,1fr);
  gap:16px;
  align-items:stretch;
  width:100%;
}

.vehiclePairA134 > label,
.vehicleSingleA134 > label{
  width:100%;
  min-width:0;
  margin:0 !important;
  box-sizing:border-box;
}

.vehicleSingleA134{
  display:grid;
  grid-template-columns:minmax(260px,1fr) minmax(260px,1fr);
  gap:16px;
  width:100%;
}

.vehicleSingleA134 > label{
  grid-column:1 / 2;
}

.vehiclePairA134 input[type="date"],
.vehicleSingleA134 input[type="date"]{
  width:100%;
  min-height:54px;
}

.vehiclePairA134 input[type="file"]{
  width:100%;
}

/* A131-A133の崩れ防止 */
.vehiclePairA131,
.vehiclePairA132,
.vehiclePhotoOneDatePairA132,
.vehiclePhotoPairA131,
.vehicleRowA133,
.vehicleSingleDateRowA133{
  display:initial !important;
}

@media (max-width:760px){
  .vehicleMasterForm .vehicleTopGridA134,
  .vehiclePairA134,
  .vehicleSingleA134{
    grid-template-columns:1fr;
  }
  .vehicleSingleA134 > label{
    grid-column:auto;
  }
}


/* A135 車両追加フォーム：2個×2段レイアウト */
#machineForm.vehicleMasterForm,
#machineForm.vehicleMasterFormA135{
  display:block !important;
}

.vehicleTopGridA135{
  display:grid !important;
  grid-template-columns:1fr 1fr 1fr;
  gap:12px;
  align-items:end;
  margin-bottom:14px;
  width:100%;
}

.vehicleFileDateGridA135{
  display:grid !important;
  grid-template-columns:1fr 1fr;
  gap:14px 16px;
  width:100%;
  margin:10px 0 14px;
}

.vehiclePairCardA135{
  display:grid !important;
  grid-template-columns:minmax(220px,1.15fr) minmax(160px,.85fr);
  gap:10px;
  align-items:stretch;
  padding:10px;
  border:1px solid #dbe7f3;
  border-radius:14px;
  background:#ffffff;
  box-sizing:border-box;
}

.vehiclePairCardA135 > label{
  width:100% !important;
  min-width:0;
  margin:0 !important;
  box-sizing:border-box;
}

.vehiclePairCardA135 input[type="file"],
.vehiclePairCardA135 input[type="date"]{
  width:100%;
  min-height:48px;
  box-sizing:border-box;
}

.vehicleInspectionSingleA135{
  display:grid !important;
  grid-template-columns:1fr 1fr;
  gap:16px;
  width:100%;
  margin:4px 0 14px;
}

.vehicleInspectionSingleA135 > label{
  grid-column:1 / 2;
  width:100% !important;
  margin:0 !important;
}

.vehicleInspectionSingleA135 input[type="date"]{
  width:100%;
  min-height:48px;
  box-sizing:border-box;
}

.vehicleSubmitRowA135{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  align-items:center;
  margin-top:12px;
}

.vehicleSubmitRowA135 button{
  width:100%;
}

/* A131-A134の崩れ防止 */
.vehiclePairA131,
.vehiclePairA132,
.vehiclePhotoOneDatePairA132,
.vehiclePhotoPairA131,
.vehicleRowA133,
.vehicleSingleDateRowA133,
.vehicleRowsA134,
.vehiclePairA134,
.vehicleSingleA134{
  display:initial !important;
}

@media (max-width:900px){
  .vehicleFileDateGridA135{
    grid-template-columns:1fr !important;
  }
}

@media (max-width:760px){
  .vehicleTopGridA135,
  .vehiclePairCardA135,
  .vehicleInspectionSingleA135,
  .vehicleSubmitRowA135{
    grid-template-columns:1fr !important;
  }

  .vehicleInspectionSingleA135 > label{
    grid-column:auto;
  }
}


/* A136 メモ上の車検・特定自主検査期限を非表示 */
.vehicleInspectionSingleA135{
  display:none!important;
}
#machineInspectionLimit{
  display:none!important;
}


/* A137 会社別データ分離：会社IDバッジ */
.companyBadgeA137{
  background:#0f766e!important;
  color:#fff!important;
  border-radius:999px;
  padding:4px 8px;
  font-style:normal;
  font-size:12px;
  font-weight:700;
  margin-left:6px;
  white-space:nowrap;
}

/* A144_会社管理カード・会社管理ページ */
.menuCard.companyManagementCardA144{
  border-color: rgba(37, 99, 235, .28);
}
.menuCard.companyManagementCardA144 .icon{
  font-size: 1.85rem;
}
.companyManagePanelA144{
  margin-bottom: 16px;
}
.companyCurrentInfoA144{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0 14px;
}
.companyPillA144{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(15, 23, 42, .06);
  font-size: 13px;
  line-height: 1.4;
}
.companyListA144{
  display: grid;
  gap: 10px;
}
.companyItemA144{
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  padding: 12px;
  border: 1px solid rgba(148, 163, 184, .35);
  border-radius: 14px;
  background: rgba(255,255,255,.72);
}
.companyItemA144 strong{
  display:block;
  font-size: 15px;
  margin-bottom: 3px;
}
.companyItemA144 span,
.companyItemA144 small{
  display:block;
  color: #64748b;
  font-size: 12px;
}
.companyBadgeCurrentA144{
  white-space: nowrap;
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(22, 163, 74, .12);
  color: #166534;
  font-size: 12px;
  font-weight: 700;
}
.companyFormA144{
  display: grid;
  gap: 10px;
}
.companyFormActionsA144{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
@media (max-width: 720px){
  .companyItemA144{
    flex-direction: column;
  }
}


/* A145_ヘッダーにトップページへ戻るボタン追加 */
.topHomeBtnA145{
  background:#fff7ed !important;
  color:#9a3412 !important;
  border:1px solid rgba(249,115,22,.35) !important;
  font-weight:800 !important;
}
.topHomeBtnA145:hover{
  filter:brightness(.98);
}
@media (max-width: 720px){
  .topHomeBtnA145{
    width:100%;
  }
}


/* A147_会社管理ページ見出し＋マーカー競合修正 */
.companyPageHeadA147{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}
.companyPageHeadA147 .backBtn{
  flex:0 0 auto;
}
.companyPageHeadA147 h2{
  margin:0;
  color:#ff2d2d;
  font-size:1.35rem;
  line-height:1.2;
}


/* A147_会社管理ページ見出し＋A144マーカー競合修正 */
.companyPageHeadA147{
  display:flex;
  align-items:center;
  gap:16px;
  justify-content:flex-start;
  margin:18px 0 14px;
}
.companyPageHeadA147 .backBtn{
  margin:0;
  white-space:nowrap;
}
.companyPageHeadA147 h2{
  margin:0;
  color:#ef4444;
  font-size:24px;
  font-weight:900;
}
@media (max-width:640px){
  .companyPageHeadA147{gap:10px; flex-wrap:wrap;}
  .companyPageHeadA147 h2{font-size:20px;}
}


/* A149 company management page head */
.companyPageHeadA149{
  display:flex;
  align-items:center;
  gap:16px;
  margin:18px 0 16px;
}
.companyPageHeadA149 h2{
  margin:0;
  color:#ef4444;
  font-size:24px;
  font-weight:800;
}
.companyPageHeadA149 .backBtn{
  border:0;
  border-radius:999px;
  padding:10px 16px;
  background:#0f172a;
  color:#fff;
  font-weight:800;
  cursor:pointer;
}


/* A151_会社管理ページ表示修正 */
body[data-current-page="companyManagement"] #companyManagement{
  display:block !important;
}
body[data-current-page="companyManagement"] #home{
  display:none !important;
}
.companyPageHeadA149 h2,.companyPageHeadA147 h2,.companyPageHeadA146 h2{
  color:#ef4444;
}


/* A224: トップカードのドラッグ表示を停止 */
.topGrid.homeHtmlDragGrid > .menuCard::before,
.topGrid.homeDragSortGrid > .menuCard::before,
.topGrid > .menuCard.homeHtmlDraggableCard::before {
  content: none !important;
  display: none !important;
}
.topGrid > .menuCard {
  cursor: pointer !important;
}


/* A237 CSV出力 対象月ピッカー見た目改善 */
.exportMonthControlsA237{
  display:flex;
  gap:12px;
  align-items:stretch;
  flex-wrap:wrap;
  margin:10px 0 14px;
}
.hiddenMonthInputA237{
  position:absolute !important;
  opacity:0 !important;
  pointer-events:none !important;
  width:1px !important;
  height:1px !important;
}
.monthPickerCardA237{
  width:min(100%, 760px);
  border:1px solid #bfdbfe;
  border-radius:18px;
  padding:14px;
  background:linear-gradient(135deg,#eff6ff,#ffffff 58%,#ecfeff);
  box-shadow:0 14px 28px rgba(37,99,235,.10);
}
.monthPickerLabelA237{
  display:block;
  color:#1e40af;
  font-size:13px;
  font-weight:900;
  margin-bottom:9px;
}
.monthPickerRowA237{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.monthSelectA237{
  min-width:120px;
  border:1px solid #93c5fd;
  border-radius:14px;
  padding:12px 38px 12px 14px;
  background:#fff;
  color:#0f172a;
  font-size:15px;
  font-weight:900;
  box-shadow:0 7px 16px rgba(15,23,42,.07);
}
.monthNavBtnA237,
.monthTodayBtnA237{
  border:0;
  border-radius:999px;
  padding:11px 15px;
  font-weight:900;
  cursor:pointer;
  white-space:nowrap;
}
.monthNavBtnA237{
  background:#e0f2fe;
  color:#075985;
}
.monthTodayBtnA237{
  background:#1d4ed8;
  color:#fff;
  box-shadow:0 10px 22px rgba(29,78,216,.18);
}
.monthPreviewA237{
  display:inline-flex;
  align-items:center;
  margin-top:10px;
  padding:7px 12px;
  border-radius:999px;
  background:#0f172a;
  color:#fff;
  font-size:13px;
  font-weight:900;
}
@media(max-width:700px){
  .monthPickerCardA237,
  .monthPickerRowA237,
  .monthSelectA237,
  .monthNavBtnA237,
  .monthTodayBtnA237{
    width:100%;
  }
}

/* A238 worker export month picker */
.workerExportMonthControlsA238 {
  margin: 10px 0 12px;
}
.workerMonthPickerCardA238 {
  border-color: rgba(16,185,129,.22);
  background: linear-gradient(135deg, rgba(240,253,250,.96), rgba(255,255,255,.98));
}
.workerCsvControlsA238 {
  align-items: end;
}

/* A239 月選択UI 小型化・出力ボタン横配置 */
.exportActionRowA239,
.workerExportActionRowA239{
  display:flex;
  align-items:flex-end;
  gap:14px;
  flex-wrap:wrap;
  margin:8px 0 12px;
}
.compactMonthControlsA239{
  margin:0 !important;
  flex:0 1 auto;
}
.compactMonthPickerA239{
  width:auto !important;
  max-width:100%;
  padding:9px 10px !important;
  border-radius:14px !important;
  box-shadow:0 8px 18px rgba(37,99,235,.08) !important;
}
.compactMonthPickerA239 .monthPickerLabelA237{
  font-size:12px;
  margin-bottom:6px;
}
.compactMonthPickerA239 .monthPickerRowA237{
  gap:6px;
}
.compactMonthPickerA239 .monthSelectA237{
  min-width:88px;
  height:34px;
  padding:7px 30px 7px 10px;
  border-radius:10px;
  font-size:13px;
}
.compactMonthPickerA239 .monthNavBtnA237,
.compactMonthPickerA239 .monthTodayBtnA237{
  padding:8px 10px;
  font-size:12px;
}
.compactMonthPickerA239 .monthPreviewA237{
  margin-top:7px;
  padding:5px 9px;
  font-size:12px;
}
.exportButtonsA239,
.workerCsvControlsInlineA239{
  margin:0 !important;
  display:flex;
  align-items:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
.workerCsvControlsInlineA239 label{
  margin:0;
}
.workerCsvControlsInlineA239 select{
  min-width:180px;
}
@media(max-width:760px){
  .exportActionRowA239,
  .workerExportActionRowA239{
    display:block;
  }
  .compactMonthPickerA239,
  .compactMonthPickerA239 .monthPickerRowA237,
  .compactMonthPickerA239 .monthSelectA237,
  .compactMonthPickerA239 .monthNavBtnA237,
  .compactMonthPickerA239 .monthTodayBtnA237,
  .exportButtonsA239,
  .workerCsvControlsInlineA239{
    width:100%;
  }
  .exportButtonsA239,
  .workerCsvControlsInlineA239{
    margin-top:10px !important;
  }
}

/* A240 月選択UI：ボタン左・カレンダー右、小型化、黒プレビュー/今月ボタン非表示 */
.monthInlineReverseA240{
  align-items:center !important;
  gap:12px !important;
}
.compactMonthPickerA240{
  padding:7px 9px !important;
  border-radius:12px !important;
  box-shadow:0 5px 14px rgba(37,99,235,.07) !important;
}
.compactMonthPickerA240 .monthPickerLabelA237{
  font-size:11px !important;
  margin-bottom:4px !important;
}
.compactMonthPickerA240 .monthPickerRowA237{
  gap:5px !important;
}
.compactMonthPickerA240 .monthSelectA237{
  min-width:76px !important;
  height:30px !important;
  padding:5px 26px 5px 8px !important;
  border-radius:9px !important;
  font-size:12px !important;
}
.compactMonthPickerA240 .monthNavBtnA237{
  padding:7px 9px !important;
  font-size:11px !important;
}
.compactMonthPickerA240 .monthTodayBtnA237,
.compactMonthPickerA240 .monthPreviewA237{
  display:none !important;
}
.exportButtonsA239,
.workerCsvControlsInlineA239{
  order:1;
}
.compactMonthControlsA239{
  order:2;
}
@media(max-width:760px){
  .exportButtonsA239,
  .workerCsvControlsInlineA239,
  .compactMonthControlsA239{
    order:initial;
  }
}

/* A249 company id badge */
.companyIdBadgeA249{
  display:inline-flex; align-items:center; justify-content:center; gap:4px;
  padding:5px 9px; border-radius:999px;
  background:#0f766e; color:#fff; font-size:12px; font-weight:800;
  box-shadow:0 2px 8px rgba(15,118,110,.18);
  white-space:nowrap;
}
.loginCompanyIdBadgeA249{
  margin-top:12px; width:100%; box-sizing:border-box;
  background:#eef6f5; color:#0f766e; border:1px solid #b7e1dc;
  box-shadow:none;
}
.headerCompanyIdBadgeA249{ margin-left:6px; }
#supabaseAuthOverlay, .supabaseAuthOverlay, #authUserBar{ display:none !important; visibility:hidden !important; opacity:0 !important; pointer-events:none !important; }

/* A289 バックアップ・復元 */
.backupActionsA289{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}
.backupActionsA289 button{min-height:42px}
.backupStatusA289{padding:12px 14px;border:1px solid #cbd5e1;border-radius:10px;background:#f8fafc;color:#334155;line-height:1.6}
.backupStatusA289.ok{border-color:#86efac;background:#f0fdf4;color:#166534}
.backupStatusA289.warn{border-color:#fcd34d;background:#fffbeb;color:#92400e}
.backupStatusA289.bad{border-color:#fca5a5;background:#fef2f2;color:#991b1b}
@media(max-width:640px){.backupActionsA289{display:grid;grid-template-columns:1fr}.backupActionsA289 button{width:100%}}
/* A290 Supabase Auth */
.authStatusA290 {
  min-height: 1.5em;
  margin-top: 10px;
  padding: 8px 10px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
}
.authStatusA290:empty { display: none; }
.authStatusA290.ok { background: #ecfdf5; color: #166534; }
.authStatusA290.warn { background: #fffbeb; color: #92400e; }
.authStatusA290.bad { background: #fef2f2; color: #b91c1c; }
.loginGuardStatusA310 {
  display: none;
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid #fdba74;
  border-radius: 12px;
  background: #fff7ed;
  color: #9a3412;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.55;
}
.loginGuardStatusA310.blocked { display: block; }
#loginForm button[type="submit"][data-a310-blocked="1"] {
  cursor: not-allowed;
  background: #64748b;
  opacity: .9;
}
.a290AccountItem.inactive { opacity: .65; background: #f8fafc; }
.a290CurrentAccount {
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  border-radius: 999px;
  background: #ecfdf5;
  color: #166534;
  font-size: 12px;
  font-weight: 800;
}
.a290AccountLoading { padding: 14px; color: #475569; font-weight: 700; }

/* A298 販売先会社の新規開通 */
.companyDirectoryListA298{display:grid;gap:10px;margin-top:12px}
.a298CompanyItem{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid #cbd5e1;border-radius:12px;background:#fff}
.a298CompanyItem.inactive{opacity:.65;background:#f8fafc}
.a298CompanyMain{display:grid;gap:4px;min-width:0}
.a298CompanyMain strong{font-size:15px;color:#0f172a}
.a298CompanyMain span,.a298CompanyMain small{color:#475569;overflow-wrap:anywhere}
.a298CompanyState{flex:0 0 auto;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800;font-style:normal}
.a298CompanyState.active{background:#dcfce7;color:#166534}
.a298CompanyState.inactive{background:#e2e8f0;color:#475569}
.a298Loading{padding:14px;color:#475569;font-weight:700}
.companyProvisionStatusA298{min-height:1.5em;margin-top:12px;padding:10px 12px;border-radius:10px;font-weight:700;line-height:1.5}
.companyProvisionStatusA298:empty{display:none}
.companyProvisionStatusA298.ok{background:#ecfdf5;color:#166534}
.companyProvisionStatusA298.warn{background:#fffbeb;color:#92400e}
.companyProvisionStatusA298.bad{background:#fef2f2;color:#b91c1c}
.a298ConfirmLabel{display:flex!important;align-items:center;gap:9px;padding:12px;border:1px solid #cbd5e1;border-radius:10px;background:#f8fafc}
.a298ConfirmLabel input{width:auto!important;margin:0}
@media(max-width:700px){.a298CompanyItem{align-items:flex-start}.a298CompanyState{margin-top:2px}}

/* A299 パスワード再設定 */
.forgotPasswordBtnA299{
  border:0!important;
  background:transparent!important;
  color:#0f766e!important;
  box-shadow:none!important;
  text-decoration:underline;
  font-weight:800;
  padding:8px!important;
}
.passwordRecoveryOverlayA299{
  position:fixed;
  inset:0;
  z-index:2147483000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(15,23,42,.72);
  backdrop-filter:blur(5px);
}
.passwordRecoveryOverlayA299.hidden{display:none!important}
.a304AuthLinkActive #appRoot,
.a304AuthLinkActive #loginScreen{
  visibility:hidden!important;
  pointer-events:none!important;
}
.passwordRecoveryCardA299{
  position:relative;
  width:min(440px,100%);
  max-height:calc(100vh - 36px);
  overflow:auto;
  box-sizing:border-box;
  padding:30px;
  border-radius:20px;
  background:#fff;
  box-shadow:0 24px 70px rgba(15,23,42,.32);
}
.passwordRecoveryCardA299 .loginLogo{margin:0 auto 12px}
.passwordRecoveryCardA299 h1{text-align:center;margin:0 0 10px;color:#0f172a}
.passwordRecoveryCardA299>div>p{text-align:center;color:#475569;line-height:1.7;margin:0 0 18px}
#authLinkErrorActionsA304 .authStatusA290{
  display:block;
  margin:0;
  line-height:1.7;
  text-align:left;
}
#authLinkReturnLoginA304{
  margin-top:14px;
}
.passwordRecoveryCloseA299{
  position:absolute;
  top:12px;
  right:12px;
  width:38px;
  height:38px;
  padding:0!important;
  border:0!important;
  border-radius:999px!important;
  background:#e2e8f0!important;
  color:#334155!important;
  font-size:24px!important;
  line-height:1!important;
}
@media(max-width:520px){
  .passwordRecoveryOverlayA299{align-items:flex-end;padding:0}
  .passwordRecoveryCardA299{width:100%;max-height:92vh;border-radius:22px 22px 0 0;padding:28px 20px calc(24px + env(safe-area-inset-bottom))}
}

/* A300 販売先会社の契約停止・再開 */
.a298CompanySide{display:flex;flex-direction:column;align-items:flex-end;gap:9px;flex:0 0 auto}
.a300CompanyEditButton{width:auto!important;min-width:104px;padding:8px 12px!important;font-size:13px!important}
.companyContractOverlayA300{
  position:fixed;inset:0;z-index:2147482900;display:flex;align-items:center;justify-content:center;
  padding:18px;background:rgba(15,23,42,.72);backdrop-filter:blur(5px)
}
.companyContractOverlayA300.hidden{display:none!important}
.companyContractCardA300{
  position:relative;width:min(520px,100%);max-width:100%;max-height:calc(100vh - 36px);overflow-y:auto;overflow-x:hidden;box-sizing:border-box;
  padding:30px;border-radius:20px;background:#fff;box-shadow:0 24px 70px rgba(15,23,42,.32)
}
.companyContractCardA300 h1{margin:0 0 8px;color:#0f172a;font-size:23px}
.companyContractCardA300>p{margin:0 0 20px;color:#475569;line-height:1.7}
.companyContractCloseA300{
  position:absolute;top:12px;right:12px;width:38px!important;height:38px;padding:0!important;border:0!important;
  border-radius:999px!important;background:#e2e8f0!important;color:#334155!important;font-size:24px!important;line-height:1!important
}
.companyContractFormA300{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:14px;width:100%;min-width:0}
.companyContractFormA300>*{min-width:0;grid-column:auto!important}
.companyContractFormA300 label{display:grid;gap:6px;color:#334155;font-size:13px;font-weight:800}
.companyContractFormA300 input,.companyContractFormA300 select,.companyContractFormA300 textarea{width:100%;box-sizing:border-box}
.companyContractFormA300 input[readonly]{background:#f1f5f9;color:#64748b}
.companyContractCurrentStateA300{padding:10px 12px;border-radius:10px;background:#ecfdf5;color:#047857;font-weight:900}
.companyContractCurrentStateA300.inactive{background:#fff7ed;color:#c2410c}
.companyContractActionsA300{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:10px;width:100%;min-width:0}
.companyContractActionsA300 .sub{grid-column:1/-1}
.companyContractActionsA300 .danger{background:#dc2626!important;color:#fff!important}
.companyContractActionsA300 .reactivate{background:#059669!important;color:#fff!important}
.companyContractStatusA300{display:none;padding:10px 12px;border-radius:10px;font-weight:800;line-height:1.6}
.companyContractStatusA300.ok{display:block;background:#ecfdf5;color:#047857}
.companyContractStatusA300.warn{display:block;background:#fffbeb;color:#92400e}
.companyContractStatusA300.bad{display:block;background:#fef2f2;color:#b91c1c}
@media(max-width:700px){.a298CompanySide{align-items:flex-start}.a300CompanyEditButton{min-width:0}.a298CompanyItem{flex-wrap:wrap}}
@media(max-width:520px){
  .companyContractOverlayA300{align-items:flex-end;padding:0}
  .companyContractCardA300{width:100%;max-height:94vh;border-radius:22px 22px 0 0;padding:28px 20px calc(24px + env(safe-area-inset-bottom))}
}

/* A301 会社管理はSupabase会社台帳だけを表示する */
#companyManagement #companyListA144,
#companyManagement .companyItemA144,
#companyManagement .companySwitchBtnA177,
#companyManagement [data-company-switch]{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

/* A306 管理操作履歴 */
.a306AuditTitle{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:14px;
}
.a306AuditTitle>div{display:grid;gap:4px}
.a306AuditTitle #adminAuditRefreshA306{
  width:auto!important;
  min-width:76px;
  padding:8px 14px!important;
}
.a306AuditStatus{
  margin:12px 0;
  padding:10px 12px;
  border-radius:10px;
  font-weight:800;
  line-height:1.6;
  background:#f1f5f9;
  color:#475569;
}
.a306AuditStatus.ok{background:#ecfdf5;color:#047857}
.a306AuditStatus.warn{background:#fffbeb;color:#92400e}
.a306AuditStatus.bad{background:#fef2f2;color:#b91c1c}
.a306AuditList{display:grid;gap:10px}
.a306AuditItem{
  padding:14px;
  border:1px solid #cbd5e1;
  border-radius:12px;
  background:#fff;
}
.a306AuditHead{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.a306AuditHead strong{color:#0f172a}
.a306AuditHead time{color:#64748b;font-size:12px;white-space:nowrap}
.a306AuditGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px 14px;
  margin-top:9px;
  color:#334155;
  font-size:13px;
}
.a306AuditGrid span{min-width:0;overflow-wrap:anywhere}
.a306AuditGrid b{display:block;margin-bottom:2px;color:#64748b;font-size:11px}
.a306AuditItem p{
  margin:9px 0 0;
  color:#475569;
  font-size:12px;
  line-height:1.6;
}
.a306AuditEmpty{
  padding:18px;
  border-radius:10px;
  background:#f8fafc;
  color:#64748b;
  text-align:center;
}
@media(max-width:700px){
  .a306AuditHead{display:grid}
  .a306AuditGrid{grid-template-columns:minmax(0,1fr)}
  .a306AuditHead time{white-space:normal}
}
.unsavedReportBannerA311 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 14px;
  padding: 11px 13px;
  border: 1px solid #f59e0b;
  border-radius: 12px;
  background: #fffbeb;
  color: #92400e;
  font-size: 13px;
  line-height: 1.5;
}

.unsavedReportBannerA311 strong {
  flex: 0 0 auto;
  color: #b45309;
}

.unsavedReportBannerA311.hidden,
.unsavedReportModalA311.hidden {
  display: none !important;
}

.unsavedReportModalA311 {
  position: fixed;
  inset: 0;
  z-index: 1000010;
  display: grid;
  place-items: center;
  padding: 18px;
}

.unsavedReportBackdropA311 {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.66);
  backdrop-filter: blur(3px);
}

.unsavedReportDialogA311 {
  position: relative;
  width: min(440px, calc(100vw - 36px));
  padding: 24px;
  border-radius: 18px;
  background: #fff;
  color: #172033;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.35);
}

.unsavedReportIconA311 {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  margin-bottom: 12px;
  border-radius: 50%;
  background: #fef3c7;
  color: #b45309;
  font-size: 24px;
  font-weight: 900;
}

.unsavedReportDialogA311 h2 {
  margin: 0 0 8px;
  font-size: 20px;
  line-height: 1.4;
}

.unsavedReportDialogA311 p {
  margin: 0;
  color: #526079;
  font-size: 14px;
  line-height: 1.7;
}

.unsavedReportActionsA311 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 20px;
}

.unsavedReportActionsA311 button {
  min-height: 44px;
  border: 0;
  border-radius: 11px;
  font-weight: 800;
  cursor: pointer;
}

#continueEditingA311 {
  background: #0f766e;
  color: #fff;
}

#discardReportA311 {
  background: #fee2e2;
  color: #b91c1c;
}

body.unsavedModalVisibleA311 {
  overflow: hidden;
}

@media (max-width: 560px) {
  .unsavedReportBannerA311 {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
  }

  .unsavedReportActionsA311 {
    grid-template-columns: 1fr;
  }

  .unsavedReportDialogA311 {
    padding: 20px;
  }
}

/* A312: daily-report save progress and duplicate-submit protection */
.reportSaveStatusA312 {
  grid-column: 1 / -1;
  margin: 4px 0 10px;
  padding: 11px 13px;
  border: 1px solid #bae6fd;
  border-radius: 10px;
  background: #f0f9ff;
  color: #0c4a6e;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.5;
}

.reportSaveStatusA312.hidden {
  display: none !important;
}

.reportSaveStatusA312.saving {
  border-color: #fcd34d;
  background: #fffbeb;
  color: #92400e;
}

.reportSaveStatusA312.success {
  border-color: #86efac;
  background: #f0fdf4;
  color: #166534;
}

.reportSaveStatusA312.duplicate {
  border-color: #93c5fd;
  background: #eff6ff;
  color: #1e40af;
}

.reportSaveStatusA312.error {
  border-color: #fca5a5;
  background: #fef2f2;
  color: #991b1b;
}

#reportForm.reportSavingA312 {
  position: relative;
}

#reportForm.reportSavingA312 button[type="submit"] {
  cursor: wait;
  opacity: .72;
  box-shadow: none;
}

#reportForm.reportSavingA312 button[type="submit"]::after {
  content: "";
  display: inline-block;
  width: 13px;
  height: 13px;
  margin-left: 8px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  vertical-align: -2px;
  animation: a312SaveSpin .75s linear infinite;
}

@keyframes a312SaveSpin {
  to { transform: rotate(360deg); }
}

/* A313: monthly daily-report trash and recovery */
.reportTrashA313 {
  margin-top: 18px;
}

#reportListPageMonthly .topReportItem {
  grid-template-columns: minmax(0, 1fr) auto auto;
}

.reportTrashA313.hidden {
  display: none !important;
}

.reportTrashDetailsA313 {
  overflow: hidden;
  border: 1px solid #fecaca;
  border-radius: 14px;
  background: #fff7f7;
}

.reportTrashDetailsA313 > summary {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 48px;
  padding: 10px 13px;
  color: #991b1b;
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.reportTrashDetailsA313 > summary::-webkit-details-marker {
  display: none;
}

.reportTrashDetailsA313 > summary strong {
  flex: 1;
  font-size: 14px;
}

.reportTrashDetailsA313 > summary em {
  min-width: 38px;
  padding: 4px 9px;
  border-radius: 999px;
  background: #fee2e2;
  color: #991b1b;
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
  text-align: center;
}

.reportTrashBodyA313 {
  display: grid;
  gap: 9px;
  padding: 0 12px 12px;
}

.reportTrashBodyA313 > p {
  margin: 0;
  color: #7f1d1d;
  font-size: 12px;
  line-height: 1.6;
}

.reportTrashItemA313 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 11px;
  border: 1px solid #fecaca;
  border-radius: 12px;
  background: #fff;
}

.reportTrashItemA313 strong,
.reportTrashItemA313 span {
  display: block;
}

.reportTrashItemA313 strong {
  color: #451a03;
  font-size: 14px;
}

.reportTrashItemA313 span {
  margin-top: 3px;
  color: #78716c;
  font-size: 12px;
}

.reportTrashItemA313 button,
.topReportItem .deleteReportA313 {
  min-height: 38px;
  border: 0;
  border-radius: 999px;
  padding: 8px 13px;
  color: #fff;
  font-weight: 900;
  cursor: pointer;
}

.reportTrashItemA313 .restoreReportA313 {
  background: #059669;
}

.topReportItem .deleteReportA313 {
  background: #dc2626;
}

.reportTrashItemA313 button:disabled,
.topReportItem .deleteReportA313:disabled {
  cursor: wait;
  opacity: .58;
}

.reportTrashEmptyA313 {
  padding: 13px;
  border-radius: 10px;
  background: #fff;
  color: #78716c;
  font-size: 13px;
  text-align: center;
}

.reportTrashStatusA313 {
  padding: 10px 12px;
  border: 1px solid #bfdbfe;
  border-radius: 10px;
  background: #eff6ff;
  color: #1e40af;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.5;
}

.reportTrashStatusA313.hidden {
  display: none !important;
}

.reportTrashStatusA313.success {
  border-color: #86efac;
  background: #f0fdf4;
  color: #166534;
}

.reportTrashStatusA313.error {
  border-color: #fca5a5;
  background: #fef2f2;
  color: #991b1b;
}

@media (max-width: 700px) {
  #reportListPageMonthly .topReportItem {
    grid-template-columns: 1fr;
  }

  .reportTrashItemA313 {
    grid-template-columns: 1fr;
  }

  .reportTrashItemA313 button {
    width: 100%;
  }
}
