.ggpb-wrap { max-width: 1400px; }

.ggpb-root{
  display:grid;
  grid-template-columns: repeat(3, 400px);
  gap: 24px;
  margin-top: 16px;
  align-items: start;
}

.ggpb-loading{
  padding: 16px;
  background:#fff;
  border:1px solid #ddd;
  border-radius:12px;
}

/* Column card */
.ggpb-col{
  background:#fff;
  border:1px solid #e5e5e5;
  border-radius:16px;
  padding:14px;
  box-shadow:0 2px 10px rgba(0,0,0,.04);
}

.ggpb-col-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}

.ggpb-name{
  font-size:18px;
  font-weight:700;
}

.ggpb-slack{
  border:0;
  background:#f28b22;
  color:#fff;
  padding:8px 12px;
  border-radius:999px;
  font-weight:700;
  cursor:pointer;
  white-space: nowrap;
}
.ggpb-slack:disabled{ opacity:.6; cursor:not-allowed; }

/* Backlog box */
.ggpb-backlog-wrap{
  position:relative;
  border:3px solid #111;
  border-radius:18px;
  padding:14px 14px 12px;
  min-height:96px;
  margin-bottom:14px;
}

.ggpb-plus{
  position:absolute;
  right:-10px;
  top:-10px;
  width:34px;
  height:34px;
  border-radius:50%;
  border:0;
  background:#666;
  color:#fff;
  font-size:22px;
  line-height:34px;
  cursor:pointer;
}

.ggpb-backlog-list{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.ggpb-item{
  position:relative;
  border:2px solid #111;
  border-radius:14px;
  padding:10px 44px 10px 12px; /* 右にカラーピッカー余白 */
  font-weight:700;
  background:#fff;
  cursor:grab;
  user-select:none;
  overflow:hidden;
}
.ggpb-item:active{ cursor:grabbing; }
.ggpb-item small{ font-weight:600; opacity:.8; }
.ggpb-item .ggpb-due{
  display:block;
  margin-top:4px;
  font-size:12px;
  opacity:.85;
}

/* Card color picker */
.ggpb-color{
  position:absolute;
  right:10px;
  top:50%;
  transform:translateY(-50%);
  width:26px;
  height:26px;
  border-radius:999px;
  border:2px solid rgba(0,0,0,.55);
  padding:0;
  background:transparent;
  cursor:pointer;
}

/* Priorities */
.ggpb-priorities{
  display:grid;
  grid-template-columns:44px 1fr;
  row-gap:14px;
  column-gap:12px;
  align-items:center;
}

.ggpb-num{
  width:44px;
  height:44px;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-weight:900;
  color:#0b2b55;
  background:#e8f0ff;
  border:2px solid rgba(0,0,0,.05);
}

.ggpb-slot{
  position:relative;
  height:48px;
  border-radius:999px;
  display:flex;
  align-items:center;
  padding:0 92px 0 18px; /* 右に×＆color */
  font-weight:900;
  letter-spacing:.02em;
  border:0;
  outline:none;
  overflow:hidden;
}

.ggpb-slot[data-color="1"] { background:#0a57a8; color:#fff; }
.ggpb-slot[data-color="2"] { background:#4f6ef0; color:#fff; }
.ggpb-slot[data-color="3"] { background:#3aa6ff; color:#083050; }
.ggpb-slot[data-color="4"] { background:#63e3e6; color:#05373a; }
.ggpb-slot[data-color="5"] { background:#15c2da; color:#05373a; }

.ggpb-slot.empty{
  opacity:.55;
  font-weight:800;
}

.ggpb-slot.dragover{
  outline:4px dashed rgba(0,0,0,.2);
  outline-offset:4px;
}

.ggpb-slot-label{
  display:flex;
  flex-direction:column;
  line-height:1.1;
}
.ggpb-slot-label .ggpb-due{
  font-size:12px;
  opacity:.85;
  font-weight:800;
  margin-top:2px;
}

.ggpb-x{
  position:absolute;
  right:54px;
  top:50%;
  transform:translateY(-50%);
  border:0;
  background:transparent;
  font-size:22px;
  font-weight:900;
  cursor:pointer;
  color:rgba(0,0,0,.75);
}
.ggpb-slot[data-color="1"] .ggpb-x,
.ggpb-slot[data-color="2"] .ggpb-x{ color:rgba(255,255,255,.85); }

.ggpb-slot .ggpb-color{
  right:14px;
  top:50%;
  transform:translateY(-50%);
  width:26px;
  height:26px;
  border:2px solid rgba(0,0,0,.55);
}

.ggpb-hint{
  font-size:12px;
  opacity:.75;
  margin-top:8px;
}

/* ===== Modal ===== */
.ggpb-modal-overlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.35);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:99999;
}
.ggpb-modal-overlay.is-open{ display:flex; }

.ggpb-modal{
  width:min(620px, 92vw);
  background:#fff;
  border-radius:18px;
  border:3px solid #111;
  overflow:hidden;
}

.ggpb-modal-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:12px 14px;
  border-bottom:2px solid #111;
}
.ggpb-modal-title{ font-weight:900; font-size:16px; }

.ggpb-modal-close{
  width:34px;
  height:34px;
  border-radius:10px;
  border:2px solid #111;
  background:#fff;
  font-size:18px;
  cursor:pointer;
}

.ggpb-modal-body{ padding:14px; }
.ggpb-field{ margin-bottom:14px; }
.ggpb-field label{ display:block; font-weight:900; margin-bottom:6px; }

.ggpb-project-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
  align-items:center;
}

#ggpb-project-select, #ggpb-project-new-input{
  width:100%;
  height:40px;
  border-radius:999px;
  border:2px solid #111;
  padding:0 12px;
  font-weight:800;
}

.ggpb-hidden{ display:none; }

/* Issue row: title / due / color / del */
.ggpb-issue-row{
  display:grid;
  grid-template-columns: 1fr 160px 70px 44px;
  gap:8px;
  align-items:center;
  margin-bottom:8px;
}

.ggpb-issue-row input[type="text"]{
  height:40px;
  border-radius:999px;
  border:2px solid #111;
  padding:0 12px;
  font-weight:800;
}
.ggpb-issue-row input[type="date"]{
  height:40px;
  border-radius:999px;
  border:2px solid #111;
  padding:0 12px;
  font-weight:800;
}
.ggpb-issue-row input[type="color"]{
  height:40px;
  width:70px;
  border-radius:999px;
  border:2px solid #111;
  padding:0;
  background:transparent;
  cursor:pointer;
}

.ggpb-issue-del{
  width:44px;
  height:44px;
  border-radius:999px;
  border:2px solid #111;
  background:#fff;
  cursor:pointer;
  font-weight:900;
  font-size:18px;
}

.ggpb-modal-footer{
  padding:12px 14px;
  border-top:2px solid #111;
  display:flex;
  justify-content:flex-end;
}

@media (max-width: 980px){
  .ggpb-root{ grid-template-columns: 1fr; }
}