/* ============================================================
   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-btn-help{background:linear-gradient(135deg,#334155,#0f172a)!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-mode-state{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;clip-path:inset(50%)!important}
.zp-app .zp-mode-btn{min-height:36px!important;padding:7px 13px!important;font-weight:900!important;letter-spacing:.01em!important;border-width:2px!important;box-shadow:0 2px 5px rgba(0,0,0,.12)!important}
.zp-app .zp-mode-btn-pin{border-color:#2563eb!important;color:#1d4ed8!important;-webkit-text-fill-color:#1d4ed8!important;background:#eff6ff!important}
.zp-app .zp-mode-btn-arrow{border-color:#ea580c!important;color:#c2410c!important;-webkit-text-fill-color:#c2410c!important;background:#fff7ed!important}
.zp-app .zp-mode-btn.is-active{color:#fff!important;-webkit-text-fill-color:#fff!important;box-shadow:0 0 0 3px rgba(245,158,11,.28),0 3px 8px rgba(0,0,0,.18)!important}
.zp-app .zp-mode-btn-pin.is-active{background:#2563eb!important;border-color:#1d4ed8!important}
.zp-app .zp-mode-btn-arrow.is-active{background:#ea580c!important;border-color:#c2410c!important}
.zp-app .zp-mode-btn:disabled{opacity:.48!important;cursor:not-allowed!important;box-shadow:none!important}
.zp-app .zp-placement-guide{display:none!important;align-items:center!important;gap:8px!important;margin:7px 0 8px!important;padding:9px 12px!important;border:1px solid #f59e0b!important;border-left:5px solid #ea580c!important;border-radius:9px!important;background:#fffbeb!important;color:#92400e!important;-webkit-text-fill-color:#92400e!important;font-size:calc(var(--fs) - 1px)!important;font-weight:800!important}
.zp-app .zp-placement-guide.show{display:flex!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{max-width:none!important}
.zp-app .zp-pdf-frame{width:100%!important;height:100%!important;border:0!important;background:#fff!important;pointer-events:none!important;position:relative!important;z-index:1!important}
.zp-app .zp-pin-layer{z-index:2!important}
.zp-app .zp-pdf-openbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:7px 0;padding:8px 10px;border:1px solid #f59e0b;border-radius:8px;background:#fffbeb;color:#92400e;font-weight:700;font-size:calc(var(--fs) - 1px)}
.zp-app .zp-pdf-openbar a{color:#1d4ed8!important;-webkit-text-fill-color:#1d4ed8!important;text-decoration:underline!important;font-weight:800!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{width:54px!important;height:72px!important;display:block!important;cursor:grab!important;touch-action:none!important;-webkit-user-select:none!important;user-select:none!important;--zp-arrow-color:#ef1b1b;--zp-arrow-rotation:0deg}
.zp-app .zp-pin:active{cursor:grabbing!important}
.zp-app .zp-pin-no-arrow{width:40px!important;height:42px!important}
.zp-app .zp-pin-no-arrow .zp-pin-no{top:auto!important;bottom:0!important}
.zp-app .zp-pin-no-arrow .zp-pin-label{bottom:32px!important}
.zp-app .zp-pin-no-arrow .zp-pin-badge{top:-8px!important;right:-4px!important}
.zp-app .zp-pin-arrow{position:absolute!important;left:50%!important;bottom:0!important;width:46px!important;height:58px!important;transform:translateX(-50%) rotate(var(--zp-arrow-rotation)) scale(calc(.72 * var(--zp-arrow-scale,1)))!important;transform-origin:50% 100%!important;filter:drop-shadow(0 2px 2px rgba(0,0,0,.55))!important;pointer-events:auto!important}
.zp-app .zp-pin-rot{position:absolute!important;left:50%!important;top:-16px!important;width:28px!important;height:28px!important;transform:translateX(-50%)!important;border-radius:50%!important;background:#fff!important;border:3px solid var(--zp-arrow-color,#ef1b1b)!important;box-shadow:0 2px 6px rgba(0,0,0,.45)!important;cursor:grab!important;display:none!important;z-index:7!important;pointer-events:auto!important;touch-action:none!important}
.zp-app .zp-pin-rot::after{content:"\21BB"!important;position:absolute!important;inset:0!important;display:grid!important;place-items:center!important;font-size:16px!important;font-weight:900!important;color:#111827!important;-webkit-text-fill-color:#111827!important}
.zp-app .zp-pin-selected .zp-pin-rot{display:block!important}
.zp-app .zp-pin-rot.zp-rot-active{cursor:grabbing!important;border-color:#f59e0b!important;box-shadow:0 0 0 4px rgba(245,158,11,.3),0 2px 6px rgba(0,0,0,.45)!important}
.zp-app .zp-pin-arrow-shaft{position:absolute!important;left:15px!important;top:0!important;width:16px!important;height:32px!important;background:var(--zp-arrow-color)!important;border:2px solid #111!important;box-sizing:border-box!important}
.zp-app .zp-pin-arrow-head{position:absolute!important;left:0!important;bottom:0!important;width:0!important;height:0!important;border-left:23px solid transparent!important;border-right:23px solid transparent!important;border-top:28px solid #111!important}
.zp-app .zp-pin-arrow-head::after{content:""!important;position:absolute!important;left:-19px!important;top:-26px!important;width:0!important;height:0!important;border-left:19px solid transparent!important;border-right:19px solid transparent!important;border-top:23px solid var(--zp-arrow-color)!important}
.zp-app .zp-pin .zp-pin-no{position:absolute!important;left:50%!important;top:-31px!important;transform:translateX(-50%)!important;z-index:4!important;margin:0!important}
.zp-app .zp-pin .zp-pin-label{position:absolute!important;left:50%!important;bottom:61px!important;transform:translateX(-50%)!important;z-index:4!important;margin:0!important}
.zp-app .zp-pin .zp-pin-badge{z-index:5!important}
.zp-app .zp-pin-selected .zp-pin-arrow{filter:drop-shadow(0 0 5px #fbbf24) drop-shadow(0 2px 2px rgba(0,0,0,.55))!important}
.zp-app .zp-pin-added .zp-pin-arrow{animation:zp-arrow-added-pulse 1s ease-in-out infinite!important}
.zp-app .zp-rotation-row{display:grid!important;grid-template-columns:auto minmax(120px,1fr) auto!important;gap:8px!important;align-items:center!important}
.zp-app .zp-rotation-row input[type="range"]{width:100%!important;padding:0!important}
.zp-app .zp-arrow-preview{position:relative!important;width:110px!important;height:92px!important;margin:8px auto 0!important;border:1px dashed var(--c-border)!important;border-radius:10px!important;background:var(--c-bg)!important;--zp-arrow-color:#ef1b1b;--zp-arrow-rotation:0deg}
.zp-app .zp-arrow-preview .zp-pin-arrow{left:50%!important;bottom:12px!important}
@keyframes zp-arrow-added-pulse{0%,100%{filter:drop-shadow(0 0 2px #fbbf24) drop-shadow(0 2px 2px rgba(0,0,0,.55))}50%{filter:drop-shadow(0 0 10px #f59e0b) drop-shadow(0 2px 2px rgba(0,0,0,.55))}}
.zp-app .zp-pin-no{order:-3!important;display:grid!important;place-items:center!important;min-width:28px!important;height:28px!important;padding:0 6px!important;border-radius:999px!important;background:#fff!important;color:#111827!important;-webkit-text-fill-color:#111827!important;border:3px solid #111827!important;font-size:15px!important;font-weight:900!important;line-height:1!important;margin-bottom:3px!important;box-shadow:0 2px 8px rgba(0,0,0,.35)!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-pin-selected .zp-pin-dot{outline:3px solid #fbbf24!important;outline-offset:3px!important;box-shadow:0 0 0 7px rgba(251,191,36,.25),0 1px 4px rgba(0,0,0,.5)!important}
.zp-app .zp-pin-selected .zp-pin-no{border-color:#f59e0b!important}
.zp-app .zp-pin-added{z-index:6!important}
.zp-app .zp-pin-added::before,.zp-app .zp-pin-added::after{content:""!important;position:absolute!important;left:50%!important;bottom:-5px!important;border:3px solid rgba(245,158,11,.9)!important;border-radius:999px!important;transform:translate(-50%,50%)!important;pointer-events:none!important;animation:zp-pin-radar 1.45s ease-out infinite!important}
.zp-app .zp-pin-added::before{width:44px!important;height:44px!important}
.zp-app .zp-pin-added::after{width:68px!important;height:68px!important;animation-delay:.34s!important}
.zp-app .zp-pin-added .zp-pin-dot{outline:4px solid #fbbf24!important;outline-offset:4px!important;box-shadow:0 0 0 9px rgba(251,191,36,.35),0 1px 4px rgba(0,0,0,.5)!important;animation:zp-pin-added-pulse 1s ease-in-out infinite!important}
.zp-app .zp-pin-added .zp-pin-no{background:#f59e0b!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border-color:#fff!important;box-shadow:0 0 0 4px rgba(251,191,36,.4),0 2px 8px rgba(0,0,0,.35)!important}
.zp-app .zp-pin-added-label{order:-2;background:#f59e0b!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border:1px solid #fff!important;border-radius:999px!important;padding:2px 7px!important;font-size:11px!important;font-weight:900!important;line-height:1.2!important;white-space:nowrap!important;margin-bottom:3px!important;box-shadow:0 2px 8px rgba(0,0,0,.28)!important}
.zp-app .zp-pin-notice{display:none!important;align-items:center!important;gap:8px!important;background:#fffbeb!important;border:1px solid #fbbf24!important;border-left:5px solid #f59e0b!important;color:#92400e!important;-webkit-text-fill-color:#92400e!important;border-radius:10px!important;padding:10px 12px!important;margin:0 0 8px!important;font-weight:800!important;box-shadow:0 2px 10px rgba(146,64,14,.12)!important}
.zp-app .zp-pin-notice.show{display:flex!important}
@keyframes zp-pin-added-pulse{
  0%,100%{box-shadow:0 0 0 7px rgba(251,191,36,.25),0 1px 4px rgba(0,0,0,.5)}
  50%{box-shadow:0 0 0 14px rgba(251,191,36,.45),0 1px 4px rgba(0,0,0,.5)}
}
@keyframes zp-pin-radar{
  0%{opacity:.95;transform:translate(-50%,50%) scale(.55)}
  80%{opacity:.12}
  100%{opacity:0;transform:translate(-50%,50%) scale(1.35)}
}
.zp-app .zp-pin-list{display:none!important;margin-top:8px!important;background:var(--c-card)!important;border:1px solid var(--c-border)!important;border-radius:var(--radius)!important;padding:10px!important;box-shadow:var(--shadow)!important}
.zp-app .zp-pin-list.show{display:block!important}
.zp-app .zp-pin-list-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;margin-bottom:8px!important}
.zp-app .zp-pin-list-head b{font-size:calc(var(--fs) + 1px)!important;color:var(--c-text)!important}
.zp-app .zp-pin-list-head span{font-size:calc(var(--fs) - 2px)!important;color:var(--c-text2)!important}
.zp-app .zp-pin-list-items{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))!important;gap:8px!important}
.zp-app .zp-pin-list-item{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto!important;align-items:center!important;gap:8px!important;min-height:48px!important;background:var(--c-bg)!important;color:var(--c-text)!important;-webkit-text-fill-color:var(--c-text)!important;border:1px solid var(--c-border)!important;border-radius:9px!important;padding:7px 9px!important;text-align:left!important;cursor:pointer!important;font:inherit!important}
.zp-app .zp-pin-list-item.selected{border-color:#f59e0b!important;box-shadow:0 0 0 2px rgba(245,158,11,.18)!important}
.zp-app .zp-pin-list-item.added{background:#fffbeb!important;border-color:#f59e0b!important;animation:zp-pin-list-flash 1.1s ease-in-out infinite!important}
.zp-app .zp-pin-list-no{display:grid!important;place-items:center!important;min-width:30px!important;height:30px!important;border-radius:999px!important;background:#fff!important;color:#111827!important;-webkit-text-fill-color:#111827!important;border:3px solid #111827!important;font-size:15px!important;font-weight:900!important;line-height:1!important}
.zp-app .zp-pin-list-main{min-width:0!important;display:grid!important;gap:1px!important}
.zp-app .zp-pin-list-main b{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:calc(var(--fs) - 1px)!important}
.zp-app .zp-pin-list-main small{color:var(--c-text2)!important;-webkit-text-fill-color:var(--c-text2)!important;font-size:calc(var(--fs) - 3px)!important;font-weight:700!important}
.zp-app .zp-pin-list-added{background:#f59e0b!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border-radius:999px!important;padding:2px 7px!important;font-size:11px!important;font-weight:900!important;white-space:nowrap!important}
@keyframes zp-pin-list-flash{
  0%,100%{box-shadow:0 0 0 2px rgba(245,158,11,.18)}
  50%{box-shadow:0 0 0 5px rgba(245,158,11,.32)}
}

/* ハンドバー（日報写真ピン留めモード） */
.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-arrow-target-fg{background:rgba(14,165,233,.08)!important;border:1px solid rgba(14,165,233,.35)!important;border-radius:10px!important;padding:9px 10px!important}
.zp-app .zp-arrow-target-fg small{display:block!important;margin-top:6px!important;color:var(--c-text2)!important;-webkit-text-fill-color:var(--c-text2)!important;font-size:calc(var(--fs) - 2px)!important;line-height:1.45!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}
.zp-app .zp-checkline{display:flex!important;align-items:center!important;gap:8px!important;font-weight:700!important}
.zp-app .zp-checkline input{margin:0!important}
.zp-app .zp-arrow-settings{display:grid!important;gap:10px!important;padding:10px!important;border:1px solid var(--c-border)!important;border-radius:10px!important;background:var(--c-bg)!important}
.zp-app .zp-arrow-settings.is-disabled{opacity:.55!important}
.zp-app .zp-help-box{max-width:820px!important}
.zp-app .zp-help{display:grid!important;gap:12px!important}
.zp-app .zp-help-lead{background:var(--c-bg)!important;border:1px solid var(--c-border)!important;border-radius:10px!important;padding:10px 12px!important;font-weight:800!important;color:var(--c-text)!important;-webkit-text-fill-color:var(--c-text)!important}
.zp-app .zp-help-steps{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
.zp-app .zp-help-step{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;column-gap:9px!important;row-gap:2px!important;align-items:start!important;background:var(--c-bg)!important;border:1px solid var(--c-border)!important;border-radius:10px!important;padding:10px!important}
.zp-app .zp-help-step b{grid-row:1/3!important;display:grid!important;place-items:center!important;width:28px!important;height:28px!important;border-radius:999px!important;background:#0f766e!important;color:#fff!important;-webkit-text-fill-color:#fff!important;font-weight:900!important}
.zp-app .zp-help-step strong{color:var(--c-text)!important;-webkit-text-fill-color:var(--c-text)!important;font-size:var(--fs)!important}
.zp-app .zp-help-step span{color:var(--c-text2)!important;-webkit-text-fill-color:var(--c-text2)!important;font-size:calc(var(--fs) - 2px)!important;line-height:1.5!important}
.zp-app .zp-help-tips{display:grid!important;gap:8px!important}
.zp-app .zp-help-tips div{display:grid!important;grid-template-columns:86px minmax(0,1fr)!important;gap:8px!important;align-items:start!important;background:#fffbeb!important;border:1px solid #fbbf24!important;border-radius:10px!important;padding:9px 10px!important}
.zp-app .zp-help-tips strong{color:#92400e!important;-webkit-text-fill-color:#92400e!important;font-size:calc(var(--fs) - 1px)!important}
.zp-app .zp-help-tips span{color:#78350f!important;-webkit-text-fill-color:#78350f!important;font-size:calc(var(--fs) - 2px)!important;line-height:1.5!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:190px;display:none}
.zp-hover img{width:178px;height:132px;object-fit:cover;border-radius:7px;display:block}
.zp-hover .zp-hover-noimg{width:178px;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-mode-btn{flex:1 1 175px!important;justify-content:center!important}
  .zp-app .zp-stage{height:54vh!important;min-height:380px!important}
  .zp-app .zp-help-steps{grid-template-columns:1fr!important}
  .zp-app .zp-help-tips div{grid-template-columns:1fr!important}
}

/* 独立矢印：番号ピンと関係なく図面上へ自由配置 */
.zp-app .zp-arrow-layer{position:absolute!important;inset:0!important;z-index:3!important;pointer-events:none!important}
/* left/top は矢印の中央（=回転の芯）。向き・大きさを変えてもこの位置は変わらない。 */
.zp-app .zp-free-arrow{position:absolute!important;width:1px!important;height:1px!important;transform:translate(-50%,-50%) scale(var(--zp-inv,1))!important;transform-origin:50% 50%!important;touch-action:none!important;-webkit-user-select:none!important;user-select:none!important;pointer-events:none!important;z-index:4!important;--zp-arrow-color:#ef1b1b;--zp-arrow-rotation:0deg;--zp-arrow-scale:1}
.zp-app .zp-free-arrow-shape{position:absolute!important;left:-23px!important;top:-29px!important;width:46px!important;height:58px!important;transform:rotate(var(--zp-arrow-rotation)) scale(calc(.72 * var(--zp-arrow-scale,1)))!important;transform-origin:50% 50%!important;filter:drop-shadow(0 2px 2px rgba(0,0,0,.55))!important;pointer-events:auto!important;cursor:grab!important;touch-action:none!important}
.zp-app .zp-free-arrow-shape:active{cursor:grabbing!important}
.zp-app .zp-free-arrow-shaft{position:absolute!important;left:15px!important;top:0!important;width:16px!important;height:32px!important;background:var(--zp-arrow-color)!important;border:2px solid #111!important;box-sizing:border-box!important}
.zp-app .zp-free-arrow-head{position:absolute!important;left:0!important;bottom:0!important;width:0!important;height:0!important;border-left:23px solid transparent!important;border-right:23px solid transparent!important;border-top:28px solid #111!important}
.zp-app .zp-free-arrow-head::after{content:""!important;position:absolute!important;left:-19px!important;top:-26px!important;width:0!important;height:0!important;border-left:19px solid transparent!important;border-right:19px solid transparent!important;border-top:23px solid var(--zp-arrow-color)!important}
/* 回転ハンドルも矢印本体の中に置く。矢印と同じ座標系で動くため、芯からずれない。 */
.zp-app .zp-free-arrow-rot{display:none!important;position:absolute!important;left:50%!important;top:-18px!important;width:28px!important;height:28px!important;transform:translateX(-50%)!important;border-radius:50%!important;background:#fff!important;border:3px solid var(--zp-arrow-color)!important;box-shadow:0 2px 6px rgba(0,0,0,.45)!important;cursor:grab!important;z-index:7!important;pointer-events:auto!important;touch-action:none!important}
.zp-app .zp-free-arrow-rot::after{content:"\21BB"!important;position:absolute!important;inset:0!important;display:grid!important;place-items:center!important;font-size:16px!important;font-weight:900!important;color:#111827!important;-webkit-text-fill-color:#111827!important}
.zp-app .zp-free-arrow-selected .zp-free-arrow-rot{display:block!important}
.zp-app .zp-free-arrow-rot.zp-rot-active{cursor:grabbing!important;border-color:#f59e0b!important;box-shadow:0 0 0 4px rgba(245,158,11,.3),0 2px 6px rgba(0,0,0,.45)!important}
.zp-app .zp-free-arrow-selected .zp-free-arrow-shape{filter:drop-shadow(0 0 6px #fbbf24) drop-shadow(0 2px 2px rgba(0,0,0,.55))!important}
.zp-app .zp-free-arrow-label{position:absolute!important;left:0!important;top:-72px!important;transform:translateX(-50%)!important;transform-origin:bottom center!important;background:rgba(0,0,0,.78)!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border-radius:5px!important;padding:2px 6px!important;font-size:11px!important;font-weight:700!important;white-space:nowrap!important;max-width:130px!important;overflow:hidden!important;text-overflow:ellipsis!important;pointer-events:none!important;line-height:1.2!important}
.zp-app .zp-arrow-preview{--zp-arrow-color:#ef1b1b;--zp-arrow-rotation:0deg;--zp-arrow-scale:1}
.zp-app .zp-arrow-preview .zp-free-arrow-shape{position:absolute!important;left:50%!important;top:50%!important;bottom:auto!important;width:46px!important;height:58px!important;transform:translate(-50%,-50%) rotate(var(--zp-arrow-rotation)) scale(calc(.72 * var(--zp-arrow-scale,1)))!important;transform-origin:50% 50%!important;filter:drop-shadow(0 2px 2px rgba(0,0,0,.55))!important;pointer-events:none!important;cursor:default!important}
.zp-app .zp-arrow-preview .zp-free-arrow-shaft{position:absolute!important;left:15px!important;top:0!important;width:16px!important;height:32px!important;background:var(--zp-arrow-color)!important;border:2px solid #111!important;box-sizing:border-box!important}
.zp-app .zp-arrow-preview .zp-free-arrow-head{position:absolute!important;left:0!important;bottom:0!important;width:0!important;height:0!important;border-left:23px solid transparent!important;border-right:23px solid transparent!important;border-top:28px solid #111!important}
.zp-app .zp-arrow-preview .zp-free-arrow-head::after{content:""!important;position:absolute!important;left:-19px!important;top:-26px!important;width:0!important;height:0!important;border-left:19px solid transparent!important;border-right:19px solid transparent!important;border-top:23px solid var(--zp-arrow-color)!important}
.zp-app .zp-arrowmode{border-color:#f59e0b!important}
