/* ============================================================
   DVTV-112 工事写真図面管理 スタイル（パインズ準拠・自己完結）
   ============================================================ */
.zp-app{max-width:1100px!important;margin:0 auto 10px!important;padding:10px!important;
  --fs:14px;--c-bg:#f4f4fb;--c-card:#fff;--c-border:#e2e2f0;--c-text:#16162a;--c-text2:#5a5a7a;
  --c-accent:#6c63ff;--c-accent2:#a259ff;--radius:12px;--shadow:0 2px 10px rgba(0,0,0,.08);
  --c-head-bg:linear-gradient(135deg,#0f0c29,#302b63,#24243e);--c-head-text:#eee;
  --c-input-bg:#fff;--c-input-border:#ccc;
  color:var(--c-text)!important;background:var(--c-bg)!important;font-size:var(--fs)!important;
  border-radius:12px!important;box-sizing:border-box!important}
.zp-app[data-fs="xs"]{--fs:12px}.zp-app[data-fs="sm"]{--fs:13px}.zp-app[data-fs="md"]{--fs:14px}.zp-app[data-fs="lg"]{--fs:16px}.zp-app[data-fs="xl"]{--fs:18px}
.zp-app[data-theme="dark"]{--c-bg:#0d0d1a;--c-card:#1a1a2e;--c-border:#2a2a44;--c-text:#e0e0f0;--c-text2:#9090b5;--c-input-bg:#22223a;--c-input-border:#3a3a55;--shadow:0 2px 12px rgba(0,0,0,.35)}
.zp-app *{box-sizing:border-box!important;-webkit-text-fill-color:currentColor!important;text-shadow:none!important}
.zp-app h1,.zp-app h2,.zp-app h3,.zp-app .zp-h2{background:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;-webkit-text-fill-color:var(--c-text)!important;color:var(--c-text)!important}
html.zp-dark,body.zp-dark{background:#0d0d1a!important}
body.zp-dark #content,body.zp-dark main,body.zp-dark .entry-content,body.zp-dark .site-content{background-color:#0d0d1a!important}

/* ツールバー */
.zp-toolbar-wrap{padding:0!important;margin-bottom:8px!important;background:transparent!important}
.zp-app .zp-toolbar{display:flex!important;align-items:center!important;justify-content:space-between!important;background:var(--c-head-bg)!important;color:var(--c-head-text)!important;padding:8px 12px!important;border-radius:10px!important}
.zp-app .zp-tb-title{font-weight:700!important;letter-spacing:.5px!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
.zp-app .zp-tb-right{display:flex!important;gap:6px!important}
.zp-app .zp-tb-btn{background:rgba(255,255,255,.15)!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border:none!important;border-radius:7px!important;padding:5px 10px!important;cursor:pointer!important}

/* 見出し */
.zp-app .zp-head-row{display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:wrap!important;margin-bottom:8px!important}
.zp-app .zp-h2{font-size:calc(var(--fs) + 5px)!important;font-weight:800!important;margin:0!important}
.zp-app .zp-head-btns{margin-left:auto!important;display:flex!important;gap:6px!important;flex-wrap:wrap!important}
.zp-app .zp-empty{color:var(--c-text2)!important;padding:16px!important;text-align:center!important}
.zp-app .zp-hint{color:var(--c-text2)!important;font-size:calc(var(--fs) - 2px)!important;margin:4px 0!important}

/* ボタン（全色付き） */
.zp-app .zp-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:4px!important;background:linear-gradient(135deg,var(--c-accent),var(--c-accent2))!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border:1px solid transparent!important;border-radius:9px!important;padding:9px 14px!important;cursor:pointer!important;font-size:var(--fs)!important;font-weight:700!important;text-decoration:none!important;transition:.15s!important}
.zp-app .zp-btn:hover{filter:brightness(1.06)!important}
.zp-app .zp-btn:disabled{opacity:.5!important;cursor:not-allowed!important}
.zp-app .zp-btn-sm{padding:6px 10px!important;font-size:calc(var(--fs) - 1px)!important}
.zp-app .zp-btn-back2{background:linear-gradient(135deg,#64748b,#475569)!important}
.zp-app .zp-btn-nippo2{background:linear-gradient(135deg,#6c63ff,#0ea5e9)!important;box-shadow:0 3px 10px rgba(108,99,255,.4)!important}
.zp-app .zp-btn-add{background:linear-gradient(135deg,#10b981,#059669)!important}
.zp-app .zp-btn-pdf{background:linear-gradient(135deg,#475569,#1e293b)!important}
.zp-app .zp-btn-tmpl{background:linear-gradient(135deg,#0ea5e9,#0284c7)!important}
.zp-app .zp-btn-nippo{background:linear-gradient(135deg,#f59e0b,#d97706)!important}
.zp-app .zp-btn-del{background:linear-gradient(135deg,#ef4444,#b91c1c)!important}
.zp-app .zp-btn-seed{background:linear-gradient(135deg,#14b8a6,#0d9488)!important}

/* フィルタ・現場一覧 */
.zp-app .zp-filter{display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:wrap!important;margin-bottom:10px!important}
.zp-app .zp-filter input{flex:1 1 220px!important;background:var(--c-input-bg)!important;color:var(--c-text)!important;border:1px solid var(--c-input-border)!important;border-radius:9px!important;padding:11px 12px!important;font-size:var(--fs)!important}
.zp-app .zp-site-tabs{display:flex!important;gap:6px!important;flex-wrap:wrap!important}
.zp-app .zp-stab{display:inline-flex!important;align-items:center!important;gap:6px!important;background:var(--c-card)!important;color:var(--c-text)!important;border:1px solid var(--c-border)!important;border-radius:999px!important;padding:6px 13px!important;cursor:pointer!important;font-weight:700!important;font-size:calc(var(--fs) - 1px)!important}
.zp-app .zp-stab-c{background:rgba(0,0,0,.1)!important;border-radius:999px!important;padding:0 7px!important;font-size:calc(var(--fs) - 3px)!important}
.zp-app .zp-stab-on{background:linear-gradient(135deg,var(--c-accent),var(--c-accent2))!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border-color:transparent!important}
.zp-app .zp-stab-on .zp-stab-c{background:rgba(255,255,255,.28)!important}
.zp-app .zp-stab.zp-stt-done{border-color:#10b981!important}.zp-app .zp-stab.zp-stt-prog{border-color:#0ea5e9!important}
.zp-app .zp-stab-on.zp-stt-done{background:linear-gradient(135deg,#10b981,#059669)!important}
.zp-app .zp-stab-on.zp-stt-prog{background:linear-gradient(135deg,#0ea5e9,#0284c7)!important}
.zp-app .zp-sites{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))!important;gap:10px!important}
.zp-app .zp-site-card{display:block!important;background:var(--c-card)!important;border:1px solid var(--c-border)!important;border-radius:var(--radius)!important;padding:14px!important;box-shadow:var(--shadow)!important;text-decoration:none!important;color:var(--c-text)!important;transition:.15s!important}
.zp-app .zp-site-card:hover{transform:translateY(-2px)!important;border-color:var(--c-accent)!important}
.zp-app .zp-site-top{display:flex!important;align-items:center!important;gap:6px!important;flex-wrap:wrap!important;margin-bottom:4px!important}
.zp-app .zp-site-name{font-weight:800!important;font-size:calc(var(--fs) + 1px)!important}
.zp-app .zp-stt{border-radius:6px!important;padding:1px 8px!important;font-size:calc(var(--fs) - 3px)!important;font-weight:800!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
.zp-app .zp-stt.zp-stt-done{background:#10b981!important}.zp-app .zp-stt.zp-stt-prog{background:#0ea5e9!important}
.zp-app .zp-stt.zp-stt-none{background:#94a3b8!important}.zp-app .zp-stt.zp-stt-other{background:#8b5cf6!important}
.zp-app .zp-site-addr{color:var(--c-text2)!important;font-size:calc(var(--fs) - 2px)!important;margin-bottom:6px!important}
.zp-app .zp-site-draws{background:#eef2ff!important;color:#4338ca!important;border-radius:999px!important;padding:2px 10px!important;font-size:calc(var(--fs) - 2px)!important;font-weight:700!important}
.zp-app[data-theme="dark"] .zp-site-draws{background:#312e81!important;color:#c7d2fe!important}
/* ページャー */
.zp-app .zp-pager{display:flex!important;align-items:center!important;gap:5px!important;flex-wrap:wrap!important;justify-content:center!important;margin-top:14px!important}
.zp-app .zp-pg{min-width:34px!important;background:var(--c-card)!important;color:var(--c-text)!important;border:1px solid var(--c-border)!important;border-radius:8px!important;padding:6px 10px!important;cursor:pointer!important;font-weight:700!important;font-size:calc(var(--fs) - 1px)!important}
.zp-app .zp-pg-on{background:linear-gradient(135deg,var(--c-accent),var(--c-accent2))!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border-color:transparent!important}
.zp-app .zp-pg:disabled{opacity:.4!important;cursor:not-allowed!important}
.zp-app .zp-pg-dot{color:var(--c-text2)!important;padding:0 2px!important}
.zp-app .zp-pg-info{width:100%!important;text-align:center!important;color:var(--c-text2)!important;font-size:calc(var(--fs) - 2px)!important;margin-top:6px!important}

/* 図面タブ */
.zp-app .zp-draw-tabs{display:flex!important;gap:6px!important;flex-wrap:wrap!important;margin-bottom:8px!important}
.zp-app .zp-draw-tab{display:inline-flex!important;align-items:center!important;gap:6px!important;background:var(--c-card)!important;color:var(--c-text)!important;border:1px solid var(--c-border)!important;border-radius:9px!important;padding:7px 12px!important;cursor:pointer!important;font-weight:700!important;font-size:calc(var(--fs) - 1px)!important}
.zp-app .zp-draw-tab-on{background:linear-gradient(135deg,var(--c-accent),var(--c-accent2))!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border-color:transparent!important}
.zp-app .zp-dt-pins{background:rgba(0,0,0,.12)!important;border-radius:999px!important;padding:0 7px!important;font-size:calc(var(--fs) - 3px)!important}
.zp-app .zp-draw-tab-on .zp-dt-pins{background:rgba(255,255,255,.25)!important}
.zp-app .zp-dt-del{opacity:.7!important;font-weight:800!important;margin-left:2px!important}
.zp-app .zp-draw-add{display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:wrap!important;margin-bottom:8px!important}
.zp-app .zp-draw-tools{display:flex!important;align-items:center!important;gap:6px!important;margin-left:auto!important}
.zp-app .zp-pinmode{display:flex!important;align-items:center!important;gap:5px!important;background:var(--c-card)!important;border:1px solid var(--c-border)!important;border-radius:8px!important;padding:5px 10px!important;font-weight:700!important;font-size:calc(var(--fs) - 1px)!important}

/* ビューア */
.zp-app .zp-stage{position:relative!important;background:#5b5b6e!important;border:1px solid var(--c-border)!important;border-radius:var(--radius)!important;overflow:hidden!important;min-height:520px!important;height:60vh!important;touch-action:none!important}
.zp-app[data-theme="dark"] .zp-stage{background:#000!important}
.zp-app .zp-canvas-wrap{position:absolute!important;top:0!important;left:0!important;transform-origin:top left!important;display:inline-block!important;line-height:0!important}
.zp-app #zp-base-img,.zp-app #zp-base-canvas{display:block!important;max-width:none!important}
.zp-app .zp-pin-layer{position:absolute!important;inset:0!important}
.zp-app .zp-pin{position:absolute!important;transform:translate(-50%,-100%) scale(var(--zp-inv,1))!important;transform-origin:bottom center!important;cursor:pointer!important;z-index:3!important;display:flex!important;flex-direction:column!important;align-items:center!important}
.zp-app .zp-pin-dot{width:18px!important;height:18px!important;border-radius:50% 50% 50% 0!important;transform:rotate(-45deg)!important;background:#e11d48!important;border:2px solid #fff!important;box-shadow:0 1px 4px rgba(0,0,0,.5)!important}
.zp-app .zp-pin-label{order:-1;background:rgba(0,0,0,.75)!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border-radius:5px!important;padding:1px 6px!important;font-size:11px!important;font-weight:700!important;white-space:nowrap!important;margin-bottom:2px!important}
.zp-app .zp-pin-badge{position:absolute!important;top:-6px!important;right:-8px!important;background:var(--c-accent)!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border-radius:999px!important;min-width:16px!important;height:16px!important;font-size:10px!important;line-height:16px!important;text-align:center!important;border:1px solid #fff!important}

/* ハンドバー（日報写真ピン留めモード） */
.zp-app .zp-handbar{background:linear-gradient(135deg,#fff7ed,#ffedd5)!important;border:1px solid #fdba74!important;border-left:5px solid #f59e0b!important;color:#9a3412!important;-webkit-text-fill-color:#9a3412!important;border-radius:10px!important;padding:10px 12px!important;margin-bottom:8px!important;display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:wrap!important}
.zp-app[data-theme="dark"] .zp-handbar{background:#3a2410!important;color:#fdba74!important;-webkit-text-fill-color:#fdba74!important}
.zp-app .zp-hand-cancel{margin-left:auto!important;background:linear-gradient(135deg,#ef4444,#b91c1c)!important}

/* PDFバー */
.zp-app .zp-pdf-bar{display:flex!important;align-items:center!important;gap:8px!important;margin-top:10px!important;flex-wrap:wrap!important}
.zp-app .zp-pdf-bar select{flex:0 0 auto!important;width:auto!important;min-width:110px!important;max-width:150px!important;background:var(--c-input-bg)!important;color:var(--c-text)!important;border:1px solid var(--c-input-border)!important;border-radius:8px!important;padding:8px 10px!important;font-size:var(--fs)!important}
.zp-app .zp-pdf-bar .zp-btn-pdf{flex:0 0 auto!important;white-space:nowrap!important}

/* フォーム */
.zp-app .zp-fg{margin-bottom:10px!important}
.zp-app .zp-fg label{display:block!important;font-weight:700!important;margin-bottom:4px!important;font-size:calc(var(--fs) - 1px)!important}
.zp-app .zp-fg input,.zp-app .zp-fg select,.zp-app .zp-fg textarea{width:100%!important;background:var(--c-input-bg)!important;color:var(--c-text)!important;border:1px solid var(--c-input-border)!important;border-radius:8px!important;padding:9px 10px!important;font-size:var(--fs)!important}
.zp-app .zp-row2{display:flex!important;gap:10px!important;flex-wrap:wrap!important}
.zp-app .zp-row2 .zp-fg{flex:1 1 140px!important}

/* モーダル */
.zp-app .zp-modal{display:none!important;position:fixed!important;inset:0!important;background:rgba(0,0,0,.5)!important;z-index:99999!important;align-items:flex-start!important;justify-content:center!important;padding:20px 12px!important;overflow:auto!important}
.zp-app .zp-modal.show{display:flex!important}
.zp-app .zp-modal-box{background:var(--c-card)!important;color:var(--c-text)!important;border-radius:14px!important;width:100%!important;max-width:560px!important;max-height:86vh!important;overflow:auto!important;padding:14px!important;box-shadow:0 10px 40px rgba(0,0,0,.4)!important}
.zp-app .zp-modal-wide{max-width:760px!important}
.zp-app .zp-np-filter{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important;margin-bottom:10px!important}
.zp-app .zp-np-filter select,.zp-app .zp-np-filter input{background:var(--c-input-bg)!important;color:var(--c-text)!important;border:1px solid var(--c-input-border)!important;border-radius:8px!important;padding:8px 10px!important;font-size:calc(var(--fs) - 1px)!important}
.zp-app .zp-np-filter input{flex:1 1 160px!important}
.zp-app .zp-np-count{margin-left:auto!important;color:var(--c-text2)!important;font-weight:700!important;font-size:calc(var(--fs) - 1px)!important}
.zp-app .zp-modal-head{display:flex!important;align-items:center!important;justify-content:space-between!important;font-weight:800!important;font-size:calc(var(--fs) + 1px)!important;margin-bottom:10px!important}
.zp-app .zp-modal-x{background:transparent!important;border:none!important;font-size:18px!important;cursor:pointer!important;color:var(--c-text2)!important}
.zp-app .zp-pin-acts,.zp-app .zp-ph-add{display:flex!important;gap:8px!important;flex-wrap:wrap!important;margin-top:6px!important}

/* セクション2 */
.zp-app .zp-sec2{margin-top:12px!important;border-top:1px dashed var(--c-border)!important;padding-top:10px!important}
.zp-app .zp-sec2-h{font-weight:800!important;margin-bottom:8px!important}

/* 写真グリッド */
.zp-app .zp-ph-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(90px,1fr))!important;gap:8px!important}
.zp-app .zp-ph{position:relative!important}
.zp-app .zp-ph-img{width:100%!important;aspect-ratio:1!important;object-fit:cover!important;border-radius:8px!important;border:1px solid var(--c-border)!important;cursor:pointer!important}
.zp-app .zp-ph-d{position:absolute!important;left:3px!important;bottom:3px!important;background:rgba(0,0,0,.65)!important;color:#fff!important;-webkit-text-fill-color:#fff!important;font-size:10px!important;border-radius:4px!important;padding:0 4px!important}
.zp-app .zp-ph-src{position:absolute!important;left:3px!important;top:3px!important;background:#f59e0b!important;color:#fff!important;-webkit-text-fill-color:#fff!important;font-size:10px!important;border-radius:4px!important;padding:0 5px!important;font-weight:700!important}
.zp-app .zp-ph-del{position:absolute!important;top:3px!important;right:3px!important;background:rgba(220,38,38,.9)!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border:none!important;border-radius:50%!important;width:20px!important;height:20px!important;cursor:pointer!important;font-size:11px!important}

/* 検査 */
.zp-app .zp-ins{background:var(--c-bg)!important;border:1px solid var(--c-border)!important;border-radius:8px!important;padding:8px 10px!important;margin-bottom:8px!important}
.zp-app .zp-ins-top{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important}
.zp-app .zp-ins-del{margin-left:auto!important}
.zp-app .zp-ins-st{border-radius:6px!important;padding:1px 8px!important;font-weight:800!important;color:#fff!important;-webkit-text-fill-color:#fff!important;font-size:calc(var(--fs) - 2px)!important}
.zp-app .zp-st-pending{background:#94a3b8!important}.zp-app .zp-st-pass{background:#10b981!important}.zp-app .zp-st-fail{background:#ef4444!important}.zp-app .zp-st-needs_fix{background:#f59e0b!important}
.zp-app .zp-ins-items{list-style:none!important;margin:6px 0 0!important;padding:0!important;font-size:calc(var(--fs) - 1px)!important}
.zp-app .zp-ins-items li{padding:2px 0!important}
.zp-app .zp-it-r{display:inline-block!important;width:18px!important;text-align:center!important;font-weight:800!important}
.zp-app .zp-it-ok{color:#10b981!important}.zp-app .zp-it-ng{color:#ef4444!important}.zp-app .zp-it-na{color:var(--c-text2)!important}
.zp-app .zp-ins-notes{color:var(--c-text2)!important;font-size:calc(var(--fs) - 1px)!important;margin-top:4px!important}

/* 検査フォームの項目行 */
.zp-app .zp-itrow{display:flex!important;gap:6px!important;align-items:center!important;margin-bottom:6px!important}
.zp-app .zp-it-label{flex:1 1 auto!important;background:var(--c-input-bg)!important;color:var(--c-text)!important;border:1px solid var(--c-input-border)!important;border-radius:7px!important;padding:7px 8px!important}
.zp-app .zp-it-res{flex:0 0 64px!important;background:var(--c-input-bg)!important;color:var(--c-text)!important;border:1px solid var(--c-input-border)!important;border-radius:7px!important;padding:7px 4px!important}
.zp-app .zp-it-val{flex:0 0 110px!important;background:var(--c-input-bg)!important;color:var(--c-text)!important;border:1px solid var(--c-input-border)!important;border-radius:7px!important;padding:7px 8px!important}
.zp-app .zp-it-del{flex:0 0 auto!important;background:linear-gradient(135deg,#ef4444,#b91c1c)!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border:none!important;border-radius:7px!important;width:30px!important;height:30px!important;cursor:pointer!important}

/* 日報取り込みグリッド */
.zp-app .zp-nippo-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(110px,1fr))!important;gap:10px!important}
.zp-app .zp-np{cursor:pointer!important;border:1px solid var(--c-border)!important;border-radius:8px!important;overflow:hidden!important;background:var(--c-bg)!important}
.zp-app .zp-np:hover{border-color:var(--c-accent)!important}
.zp-app .zp-np img{width:100%!important;aspect-ratio:4/3!important;object-fit:cover!important;display:block!important}
.zp-app .zp-np-meta{padding:4px 6px!important;font-size:calc(var(--fs) - 3px)!important;color:var(--c-text2)!important}

/* テンプレ */
.zp-app .zp-tmpl-row{display:flex!important;align-items:center!important;gap:8px!important;padding:6px 0!important;border-bottom:1px solid var(--c-border)!important}
.zp-app .zp-tmpl-row .zp-btn{margin-left:auto!important}

/* ピンのホバー写真プレビュー（body直下に出すため独立指定） */
.zp-hover{position:fixed!important;z-index:100001!important;pointer-events:none!important;background:#fff;border:1px solid #e2e2f0;border-radius:10px;box-shadow:0 8px 28px rgba(0,0,0,.28);padding:6px;width:200px;display:none}
.zp-hover img{width:188px;height:140px;object-fit:cover;border-radius:7px;display:block}
.zp-hover .zp-hover-noimg{width:188px;height:80px;display:flex;align-items:center;justify-content:center;color:#9090b5;font-size:13px;background:#f4f4fb;border-radius:7px}
.zp-hover .zp-hover-cap{font-size:13px;font-weight:700;color:#16162a;padding:6px 4px 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zp-hover .zp-hover-meta{font-weight:600;color:#5a5a7a}
.zp-hover .zp-hover-more{font-size:11px;color:#6c63ff;padding:0 4px 4px}
body.zp-dark .zp-hover{background:#1a1a2e;border-color:#2a2a44;box-shadow:0 8px 28px rgba(0,0,0,.5)}
body.zp-dark .zp-hover .zp-hover-cap{color:#e0e0f0}
body.zp-dark .zp-hover .zp-hover-meta{color:#9090b5}
body.zp-dark .zp-hover .zp-hover-noimg{background:#22223a;color:#9090b5}

/* ライトボックス（デイジーちゃんX形式） */
.zp-app .zp-lightbox{display:none!important;position:fixed!important;inset:0!important;background:rgba(0,0,0,.9)!important;z-index:100000!important;align-items:center!important;justify-content:center!important}
.zp-app .zp-lightbox.show{display:flex!important}
.zp-app .zp-lightbox img{max-width:94vw!important;max-height:90vh!important;border-radius:8px!important}
.zp-app .zp-lb-x{position:fixed!important;top:16px!important;right:20px!important;color:#fff!important;-webkit-text-fill-color:#fff!important;font-size:28px!important;cursor:pointer!important}

@media (max-width:600px){
  .zp-app .zp-draw-tools{margin-left:0!important;width:100%!important}
  .zp-app .zp-stage{height:54vh!important;min-height:380px!important}
}
