/* ============================================================
   pdf-workspace.css — PDF図面から拾い出し（β）専用スタイル
   既存デザイン踏襲：白背景・青(#155e9e)・トラ柄・カード型
   状態色：候補=青／要確認=橙／確認済み=緑／対象外=灰／エラー=赤
   ============================================================ */
#pwRoot{position:fixed;inset:0;z-index:1000;display:none;flex-direction:column;background:#f4f6f9;
  padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);}
#pwRoot.on{display:flex;}
#pwRoot *{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}

.pwHead{background:#155e9e;color:#fff;padding:10px 12px;display:flex;align-items:center;gap:8px;flex:0 0 auto;}
.pwHead .t{font-weight:900;font-size:15px;flex:1;min-width:0;}
.pwHead .t small{display:block;font-weight:500;font-size:10.5px;opacity:.85;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pwHead button{min-height:44px;min-width:44px;border:0;border-radius:10px;background:rgba(255,255,255,.16);
  color:#fff;font-weight:700;font-size:13px;padding:0 12px;}
.pwStripe{height:6px;background:repeating-linear-gradient(45deg,#f7b500 0 12px,#222 12px 24px);flex:0 0 auto;}

.pwStats{display:flex;gap:6px;flex-wrap:wrap;padding:8px 10px;background:#fff;border-bottom:1px solid #dfe6ee;flex:0 0 auto;font-size:11.5px;}
.pwStats span{padding:4px 9px;border-radius:999px;font-weight:700;border:1.5px solid;}
.pwStats .stC{color:#155e9e;border-color:#155e9e;background:#eaf2fb;}
.pwStats .stR{color:#b25b00;border-color:#e08c2b;background:#fdf3e4;}
.pwStats .stO{color:#1c7a3a;border-color:#2f9e57;background:#e9f7ee;}
.pwStats .stX{color:#666;border-color:#aaa;background:#f0f0f0;}
.pwStats .stE{color:#b3261e;border-color:#b3261e;background:#fdecea;}

.pwBody{flex:1 1 auto;position:relative;overflow:hidden;background:#dfe4ea;}
#pwStage{position:absolute;inset:0;overflow:hidden;touch-action:none;}
#pwCanvasWrap{position:absolute;left:0;top:0;transform-origin:0 0;box-shadow:0 4px 18px rgba(0,0,0,.25);background:#fff;}
#pwCanvas{display:block;}
#pwOverlay{position:absolute;inset:0;}
#pwOverlay svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;}

.pwBox{position:absolute;border:2px solid #155e9e;background:rgba(21,94,158,.10);border-radius:3px;min-width:12px;min-height:12px;}
.pwBox.confirmed{border-color:#2f9e57;background:rgba(47,158,87,.14);}
.pwBox.rejected{border-color:#aaa;background:rgba(120,120,120,.10);border-style:dashed;}
.pwBox.sel{outline:3px solid #f7b500;}
.pwMark{position:absolute;transform:translate(-50%,-50%);font-size:11px;font-weight:900;color:#fff;
  min-width:26px;min-height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.4);}
.pwMark.mOut{background:#155e9e;} .pwMark.mIn{background:#0e7490;}
.pwMark.mOpen{background:#6b7280;} .pwMark.mChk{background:#e08c2b;} .pwMark.mNote{background:#7c3aed;border-radius:8px;}
.pwLine{stroke-width:3;fill:none;} .pwLine.draft{stroke:#155e9e;}
.pwLine.needs-review{stroke:#e08c2b;} .pwLine.confirmed{stroke:#2f9e57;}
.pwLine.excluded{stroke:#9aa2ab;stroke-dasharray:7 5;}
.pwLine.measure{stroke:#7c3aed;stroke-dasharray:4 4;}
.pwLine.calib{stroke:#b3261e;stroke-dasharray:2 4;}
.pwLine.sel{stroke:#f7b500;stroke-width:5;}
.pwLbl{font-size:11px;font-weight:800;paint-order:stroke;stroke:#fff;stroke-width:3px;}

.pwSpin{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);background:rgba(255,255,255,.95);
  border:1.5px solid #c9d4e0;border-radius:12px;padding:12px 16px;font-size:13px;font-weight:700;color:#155e9e;
  display:none;align-items:center;gap:10px;z-index:5;}
.pwSpin.on{display:flex;}
.pwSpin button{min-height:36px;border:1.5px solid #b3261e;color:#b3261e;background:#fff;border-radius:8px;font-weight:700;}
.pwNoText{position:absolute;left:10px;right:10px;top:10px;background:#fdf3e4;border:1.5px solid #e08c2b;color:#7a4a00;
  border-radius:10px;padding:9px 12px;font-size:12px;line-height:1.55;z-index:4;display:none;}
.pwNoText.on{display:block;}
.pwVendorMiss{margin:14px;background:#fdecea;border:1.5px solid #b3261e;color:#7a1712;border-radius:12px;
  padding:12px 14px;font-size:12.5px;line-height:1.6;}

.pwZoomBar{position:absolute;right:8px;top:8px;display:flex;flex-direction:column;gap:6px;z-index:4;}
.pwZoomBar button{min-width:44px;min-height:44px;border-radius:12px;border:1.5px solid #c9d4e0;background:#fff;
  font-size:17px;font-weight:900;color:#155e9e;}
#pwZoomPct{position:absolute;left:8px;top:8px;background:rgba(255,255,255,.92);border:1.5px solid #c9d4e0;
  border-radius:8px;padding:5px 9px;font-size:11.5px;font-weight:700;color:#334;z-index:4;}

.pwTools{display:flex;gap:6px;overflow-x:auto;padding:8px 10px;background:#fff;border-top:1px solid #dfe6ee;flex:0 0 auto;
  -webkit-overflow-scrolling:touch;}
.pwTools button{flex:0 0 auto;min-height:44px;border-radius:10px;border:1.5px solid #c9d4e0;background:#fff;
  padding:0 12px;font-size:12px;font-weight:700;color:#334;}
.pwTools button.on{background:#155e9e;border-color:#155e9e;color:#fff;}
.pwTools button:disabled{opacity:.4;}

.pwNav{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#fff;border-top:1px solid #dfe6ee;flex:0 0 auto;}
.pwNav button{min-height:44px;min-width:44px;border-radius:10px;border:1.5px solid #c9d4e0;background:#fff;font-weight:900;color:#155e9e;}
/* ID specificity prevents the host app's input[type=number]{width:100%} from stretching this field. */
#pwRoot #pwPageIn{flex:0 0 56px;width:56px;min-width:56px;max-width:56px;height:44px;min-height:44px;padding:4px;border:1.5px solid #c9d4e0;border-radius:10px;text-align:center;font-size:16px;font-weight:700;}
#pwRoot .pwPages{display:flex;align-items:center;flex:0 0 auto;flex-wrap:nowrap;gap:6px;}
#pwRoot .pwPages button{flex:0 0 44px;width:44px;min-width:44px;height:44px;padding:0;}
#pwRoot .pwPages .pc{min-width:38px;white-space:nowrap;text-align:center;}
#pwRoot .pwActions{display:flex;align-items:center;justify-content:flex-end;flex:1 1 280px;flex-wrap:wrap;gap:6px;}
#pwRoot .pwActions button{flex:0 0 auto;max-width:100%;min-height:44px;padding:8px 10px;font-size:13px;line-height:1.35;white-space:normal;}
.pwNav .pc{font-size:12px;color:#556;}


#pwThumbs{display:none;gap:8px;overflow-x:auto;padding:8px 10px;background:#eef2f7;border-top:1px solid #dfe6ee;flex:0 0 auto;}
#pwThumbs.on{display:flex;}
#pwThumbs .th{flex:0 0 auto;border:2px solid #c9d4e0;border-radius:8px;background:#fff;padding:3px;min-width:64px;min-height:64px;}
#pwThumbs .th.cur{border-color:#155e9e;}
#pwThumbs canvas{display:block;border-radius:5px;}
#pwThumbs .pn{text-align:center;font-size:10.5px;font-weight:700;color:#556;}

.pwPanel{position:absolute;left:0;right:0;bottom:0;max-height:62%;overflow:auto;background:#fff;
  border-top:2px solid #155e9e;border-radius:16px 16px 0 0;box-shadow:0 -6px 22px rgba(0,0,0,.22);
  padding:12px 14px calc(14px + env(safe-area-inset-bottom));display:none;z-index:6;}
.pwPanel.on{display:block;}
.pwPanel h4{margin:2px 0 8px;font-size:14px;color:#155e9e;}
.pwPanel .f{margin-bottom:9px;}
.pwPanel label{display:block;font-size:11px;font-weight:800;color:#455;margin-bottom:3px;}
.pwPanel input,.pwPanel select,.pwPanel textarea{width:100%;min-height:44px;border:1.5px solid #c9d4e0;border-radius:10px;
  padding:8px 10px;font-size:15px;}
.pwPanel .grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.pwPanel .btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;}
.pwPanel .btns button{min-height:44px;border-radius:10px;border:1.5px solid #c9d4e0;background:#fff;
  padding:0 12px;font-weight:800;font-size:12.5px;color:#334;flex:1 1 auto;}
.pwPanel .btns .prim{background:#155e9e;border-color:#155e9e;color:#fff;}
.pwPanel .btns .ok{background:#2f9e57;border-color:#2f9e57;color:#fff;}
.pwPanel .btns .warn{background:#fff;border-color:#e08c2b;color:#b25b00;}
.pwPanel .btns .gray{background:#f0f0f0;color:#556;}
.pwPanel .btns .danger{background:#fff;border-color:#b3261e;color:#b3261e;}
.pwPanel .meta{font-size:11px;color:#667;line-height:1.6;}
.pwPanel .vals{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin:6px 0;}
.pwPanel .vals div{background:#f2f6fb;border:1px solid #dfe6ee;border-radius:8px;padding:6px;text-align:center;}
.pwPanel .vals b{display:block;font-size:14px;}
.pwPanel .vals span{font-size:9.5px;color:#667;}
.pwPanel .stBadge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:800;}
.stBadge.draft{background:#eaf2fb;color:#155e9e;} .stBadge.needs-review{background:#fdf3e4;color:#b25b00;}
.stBadge.confirmed{background:#e9f7ee;color:#1c7a3a;} .stBadge.excluded{background:#f0f0f0;color:#666;}

.pwHome{padding:14px;overflow:auto;flex:1;}
.pwHome .card{background:#fff;border:1.5px solid #dfe6ee;border-radius:14px;padding:13px 14px;margin-bottom:12px;}
.pwHome .card h3{margin:0 0 8px;font-size:13.5px;color:#155e9e;}
.pwHome .priv{font-size:11.5px;color:#1c7a3a;background:#e9f7ee;border:1px solid #bfe6cc;border-radius:10px;padding:8px 11px;line-height:1.6;}
.pwHome .est{font-size:11px;color:#667;margin-top:6px;}
.pwHome .fileBtn{display:block;width:100%;min-height:52px;border-radius:12px;border:2px dashed #155e9e;background:#f2f7fc;
  color:#155e9e;font-weight:900;font-size:14px;}
.pwFileRow{display:flex;align-items:center;gap:8px;border:1px solid #dfe6ee;border-radius:10px;padding:8px 10px;margin-top:8px;}
.pwFileRow .nm{flex:1;min-width:0;font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pwFileRow .sub{display:block;font-size:10.5px;color:#667;font-weight:500;}
.pwFileRow button{min-height:40px;border-radius:9px;border:1.5px solid #c9d4e0;background:#fff;font-size:12px;font-weight:700;padding:0 10px;}
.pwFileRow .del{border-color:#b3261e;color:#b3261e;}

@media (min-width:760px){
  .pwPanel{left:auto;width:420px;border-radius:16px 0 0 0;}
}

/* 1.1 図面参照と安全な更新取込。狭い画面でも操作・差分を省略しない。 */
.pwPanel .pwSourceBox{border:1px solid #b9cfdf;border-radius:12px;padding:12px;margin:12px 0;background:#f0f7fb;}
.pwPanel .pwSourceBox h5,.pwPanel .pwImportRow h5{font-size:14px;margin:0 0 8px;overflow-wrap:anywhere;}
.pwPanel .pwSourceBox select{width:100%;min-height:44px;}
.pwPanel .pwImportRow{padding:12px;margin:10px 0;border:1px solid #d1dbe4;border-radius:12px;overflow-wrap:anywhere;}
.pwPanel .pwImportRow.conflict,.pwPanel .pwImportRow.remove,.pwPanel .pwImportRow.blocked{border-color:#cd8424;background:#fff8ec;}
.pwPanel .pwImportRow p{margin:7px 0;}
.pwPanel .pwReview{color:#8c4100;font-size:12px;line-height:1.65;}
.pwPanel .pwDelta{display:flex;justify-content:space-between;gap:12px;font-size:12px;}
.pwPanel .pwValueDiff{overflow-wrap:anywhere;white-space:pre-wrap;}
.pwPanel details summary{padding:10px 0;min-height:44px;cursor:pointer;font-weight:700;}
.pwPanel button:disabled{opacity:.55;cursor:not-allowed;}
.pwNav{flex-wrap:wrap;}
#pwOcrBtn{font-weight:700;min-height:44px;}
@media(max-width:480px){#pwRoot .pwActions{justify-content:flex-start;flex-basis:100%;}.pwPanel .pwDelta{flex-wrap:wrap;gap:4px;}.pwNav button{padding:8px;}.pwPanel .pwImportRow{padding:10px;}}
