/* beindie tool — discount window planner */

#dpRoot .split > .stack{min-width:0;grid-template-columns:minmax(0,1fr)}
#dpRoot .panel{min-width:0}

.dp-head{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}

.dp-rows{display:grid;gap:12px}
.dp-row{
  display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.8fr) minmax(0,.8fr) auto;
  gap:14px;align-items:end;
  padding:14px;border:1px solid var(--line);background:var(--paper-3);
}
.dp-row .field{gap:5px}
.dp-del{
  background:transparent;border:1px solid var(--line-strong);color:var(--muted);
  padding:10px 12px;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;
  cursor:pointer;height:43px;
}
.dp-del:hover{border-color:var(--red);color:var(--red)}
@media (max-width:620px){
  .dp-row{grid-template-columns:1fr 1fr;}
  .dp-row .field:first-child{grid-column:1/-1}
  .dp-del{grid-column:1/-1;height:auto}
}

.dp-chart{width:100%;overflow-x:auto;border:1px solid var(--line);background:var(--paper-2)}
.dp-chart svg{display:block;max-width:none;height:210px}

.dp-legend{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:13px;color:var(--muted)}
.dp-legend span{display:inline-flex;align-items:center;gap:8px}
.dp-legend .sw{width:13px;height:13px;display:block;border:1px solid var(--ink)}
.sw--launch{background:var(--ink)}
.sw--disc{background:var(--accent)}
.sw--cool{background:var(--red);opacity:.35;border-color:var(--line-strong)}
.sw--sale{background:var(--green);opacity:.45;border-color:var(--line-strong)}
.sw--fest{background:var(--blue);opacity:.4;border-color:var(--line-strong)}

.dp-issues{list-style:none;padding:0;margin:0;display:grid;gap:1px;background:var(--line)}
.dp-issue{
  display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:baseline;
  padding:14px 16px;background:var(--paper-3);font-size:15px;line-height:1.5;color:var(--ink-soft);
}
.dp-issue__tag{
  font-family:var(--pixel);font-size:9px;letter-spacing:.05em;text-transform:uppercase;
  padding:5px 7px;border:1px solid var(--ink);white-space:nowrap;
}
.dp-issue.is-fail .dp-issue__tag{background:var(--red);color:#141414}
.dp-issue.is-warn .dp-issue__tag{background:var(--orange);color:#141414}
.dp-issue.is-ok .dp-issue__tag{background:var(--green);color:#141414}

.dp-rules{list-style:none;padding:0;margin:0;display:grid;gap:12px;font-size:15px;color:var(--muted);line-height:1.5}
.dp-rules li{padding-left:18px;position:relative}
.dp-rules li::before{content:"";position:absolute;left:0;top:9px;width:7px;height:7px;background:var(--accent);border:1px solid var(--ink)}
.dp-rules b{color:var(--ink);font-weight:600}

/* v4: the shareable-link bar above the tool */
.tool-share{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:20px}
.tool-share .hint{max-width:62ch}

/* "Copy as text" reuses the .copy behaviour in site.js but must still read as a
   button next to "Export .ics" — .copy in site.css would otherwise flatten it. */
.result__foot .btn.copy{
  margin-top:0;justify-self:auto;
  border:2px solid var(--ink);padding:9px 15px;font-size:12px;font-weight:600;
  letter-spacing:.04em;color:var(--ink);background:transparent;
}
.result__foot .btn.copy:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.result__foot .btn.copy.is-copied{background:var(--yellow);color:#141414;border-color:var(--ink)}

/* A row whose date has been cleared is not in the model any more: it has no
   bar on the chart, no line in the export and nothing holding the cooldown
   open. It used to look exactly like a row that was fine. */
.dp-row.is-nodate{border-color:var(--red);box-shadow:inset 3px 0 0 var(--red)}
.dp-issue.is-todo .dp-issue__tag{background:var(--blue);color:#141414}
.dp-issue.is-todo{border-left:3px solid var(--blue)}
