:root{
/* 編集UI（既存） */
.edit-btn{ padding:10px 14px; border:1px solid #ccc; border-radius:999px; background:#fff; cursor:pointer; min-height:40px; }
body.is-editing .grid-item{ border-style:dashed; }
body.is-editing .grid-item.image-box{ border:none !important; box-shadow:none !important; }
.modal-backdrop{ position:fixed; inset:0; background:rgba(0,0,0,.35); z-index:1999; }
.modal-layer{ position:fixed; inset:0; display:none; z-index:2000; }
.modal-layer.show{ display:block; }
.modal-panel{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:min(520px, calc(100% - 32px)); background:#fff; color:#222; border-radius:14px; padding:20px 24px; box-shadow:0 10px 40px rgba(0,0,0,.24); z-index:1; }
.modal-title{ margin:0 0 6px; font-size:1.1rem; }
.modal-desc{ margin:0 0 12px; color:#666; }
.modal-input{ width:100%; height:44px; padding:0 12px; font-size:16px; border:1px solid #ccc; border-radius:10px; }
.modal-actions{ display:flex; justify-content:flex-end; gap:12px; margin-top:14px; }


.edit-actions{ position:fixed; right:20px; bottom:20px; display:none; gap:8px; z-index:1500; }
body.is-editing .edit-actions{ display:flex; }
.btn-primary,.btn-secondary{ padding:10px 14px; border-radius:10px; border:1px solid #ccc; background:#fff; cursor:pointer; }
.btn-primary{ background:var(--accent-color); border-color:var(--accent-color); color:#fff; }


/* 入力など */
.color-dot{ display:inline-block; width:.9em; height:.9em; border-radius:50%; border:1px solid #ccc; vertical-align:-1px; margin-left:.25em; }
.edit-field{ width:100%; padding:10px 12px; font-size:16px; border:1px solid #d0d5dd; border-radius:12px; background:#fff; transition:border-color .15s, box-shadow .15s; box-sizing:border-box; }
.edit-field:focus{ outline:none; border-color:var(--accent-color); box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-color) 30%, transparent); }
.edit-field.textarea{ min-height:120px; line-height:1.6; resize:vertical; }
.edit-field.select{ appearance:none; padding-right:42px; }
.invalid{ border-color:#e74c3c !important; box-shadow:0 0 0 2px rgba(231,76,60,.15); }
.field-error{ margin-top:6px; color:#e74c3c; font-size:.85rem; }


/* サマリーバー */
.summary-bar{ position:sticky; top:0; background:var(--sub-color); border-bottom:1px solid #e0e0e0; z-index:5; }
.summary-inner{ max-width:1200px; margin:0 auto; padding:8px 20px 12px; }
.summary-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:6px; }
.summary-title{ font-weight:700; }
.summary-pills{ display:flex; gap:8px; }
.sum-pill{ display:inline-flex; align-items:center; gap:6px; padding:6px 10px; border-radius:999px; border:1px solid #ccc; background:#fff; cursor:pointer; font-size:.95rem; }
.sum-pill .dot{ width:10px; height:10px; border-radius:50%; }
.dot-done{ background:var(--accent-color); }
.dot-wip{ background:var(--base-color); }
.sum-pill[aria-pressed="true"][data-filter="done"]{ background:var(--accent-color); color:#fff; border-color:var(--accent-color); }
.sum-pill[aria-pressed="true"][data-filter="wip"]{ background:var(--base-color); color:#fff; border-color:var(--base-color); }
.pill-count{ font-weight:700; }
.progressbar{ height:14px; border-radius:8px; overflow:hidden; background:color-mix(in srgb, var(--sub-color) 60%, #ffffff); display:flex; }
.bar-seg{ height:100%; }
.bar-done{ background:var(--accent-color); }
.bar-wip{ background:var(--base-color); }
.summary-numbers{ margin-top:4px; color:#444; font-size:14px; }
.sum-clear{ margin-left:8px; background:none; border:none; padding:0; color:#1565C0; cursor:pointer; font-size:14px; }


/* バージョンピル */
.version-pill{
  position:fixed;
  right:8px; 
  bottom:8px; 
  padding:4px 8px; 
  border-radius:999px; 
  font:12px/1.4 system-ui, sans-serif; color:#555; 
  background:#f2f2f2; 
  border:1px solid #e2e2e2; 
  z-index:3000; 
}
}