/* === SEGMENT TOOL CARDS === */
.cab-tools-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
  gap: 24px;
  margin-top: 4px;
}

.cab-tool-card {
  background: #fff;
  border-radius: 20px;
  padding: 28px;
  border: 1px solid var(--border-color);
  box-shadow: 0 2px 12px rgba(0,0,0,0.04);
  display: flex;
  flex-direction: column;
  gap: 20px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.cab-tool-card:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(0,0,0,0.07); }

.cab-tool__head { display: flex; align-items: flex-start; gap: 14px; }
.cab-tool__icon { font-size: 2rem; line-height: 1; flex-shrink: 0; margin-top: 2px; }
.cab-tool__head h3 { font-size: 1.1rem; font-weight: 700; color: var(--text-main); margin: 0 0 4px; }
.cab-tool__sub { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-muted); }

/* Shared input */
.tool-input {
  width: 100%; padding: 12px 16px;
  border: 1.5px solid var(--border-color);
  border-radius: 12px; font: inherit; font-size: 0.9rem;
  color: var(--text-main); outline: none;
  transition: border-color 0.15s;
}
.tool-input:focus { border-color: var(--primary); }
.tool-textarea {
  width: 100%; min-height: 120px; padding: 14px 16px;
  border: 1.5px solid var(--border-color); border-radius: 14px;
  font: inherit; font-size: 0.9rem; resize: vertical; outline: none;
  transition: border-color 0.15s; color: var(--text-main);
}
.tool-textarea:focus { border-color: var(--primary); }

/* Progress bar */
.tool-progress { display: flex; flex-direction: column; gap: 8px; }
.tool-progress__track { height: 8px; background: #eef0f6; border-radius: 99px; overflow: hidden; }
.tool-progress__fill { height: 100%; border-radius: 99px; background: linear-gradient(90deg, var(--primary), #6c47ff); width: var(--fill, 0%); transition: width 1.1s cubic-bezier(0.22,1,0.36,1); }
.tool-progress__label { font-size: 0.8rem; color: var(--text-muted); font-weight: 600; }

/* Task block */
.tool-task { background: #f7f8fc; border-radius: 16px; padding: 18px 20px; display: flex; flex-direction: column; gap: 14px; border: 1px solid #e8eaf2; }
.tool-task p { font-size: 0.95rem; color: var(--text-main); line-height: 1.6; margin: 0; font-weight: 500; }
.tool-task--done { background: rgba(52,168,83,0.07); border-color: rgba(52,168,83,0.22); }
.tool-task--done p { color: #2c7a47; }
.tool-task__week { font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-muted); }

/* Envelopes */
.tool-envelopes__input { display: flex; flex-direction: column; gap: 6px; }
.tool-envelopes__input label { font-size: 0.8rem; font-weight: 600; color: var(--text-muted); }
.tool-envelopes__buckets { display: grid; gap: 14px; }
.envelope-bucket { padding: 16px; border-radius: 14px; border: 1.5px solid #e8eaf2; background: #fafbff; }
.envelope-bucket__top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.envelope-bucket__top strong { font-size: 0.95rem; color: var(--text-main); }
.envelope-bucket__pct { font-size: 1.1rem; font-weight: 800; color: var(--env-color, var(--primary)); }
.env-slider { width: 100%; accent-color: var(--env-color, var(--primary)); margin: 8px 0; cursor: pointer; }
.envelope-bucket__amount { font-size: 1.25rem; font-weight: 800; color: var(--env-color, var(--primary)); margin: 4px 0; }
.envelope-bucket small { font-size: 0.78rem; color: var(--text-muted); }
.tool-envelopes__total { text-align: center; font-weight: 700; font-size: 0.9rem; padding: 10px; border-radius: 10px; background: #f0f2fa; color: var(--text-muted); }

/* Time machine */
.tm-form { display: grid; gap: 10px; }
.tm-hint { font-size: 0.8rem; color: var(--text-muted); padding: 10px 14px; background: #fff8e8; border-radius: 10px; border: 1px solid rgba(245,158,11,0.2); }
.tm-entries { display: flex; flex-direction: column; gap: 10px; }
.tm-entry { display: grid; grid-template-columns: 1fr auto auto; gap: 12px; align-items: center; padding: 12px 14px; background: #f7f8fc; border-radius: 12px; font-size: 0.88rem; }
.tm-entry__saved { color: #e53e3e; font-weight: 700; white-space: nowrap; }
.tm-entry__future { color: #2c9a51; font-weight: 800; white-space: nowrap; }
.tm-empty { color: var(--text-muted); font-size: 0.9rem; text-align: center; padding: 16px; }

/* Hypothesis */
.hyp-form { display: grid; gap: 10px; }
.hyp-list { display: flex; flex-direction: column; gap: 12px; }
.hyp-item { padding: 14px 16px; background: #f7f8fc; border-radius: 14px; border: 1px solid #e8eaf2; }
.hyp-item p { font-size: 0.92rem; color: var(--text-main); margin: 0 0 10px; font-weight: 500; line-height: 1.5; }
.hyp-item__meta { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; font-size: 0.8rem; color: var(--text-muted); }
.hyp-status { padding: 6px 10px; border: 1px solid #d1d5db; border-radius: 8px; font: inherit; font-size: 0.8rem; background: #fff; cursor: pointer; }

/* Black swan */
.bs-scenario { padding: 16px 18px; border-radius: 14px; background: linear-gradient(135deg, rgba(15,23,42,0.04), rgba(108,71,255,0.05)); border: 1px solid rgba(108,71,255,0.15); }
.bs-scenario__label { font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--primary); display: block; margin-bottom: 8px; }
.bs-scenario p { margin: 0; color: var(--text-main); font-weight: 600; line-height: 1.6; font-size: 0.95rem; }
.bs-saved-note { font-size: 0.8rem; color: #2c9a51; font-weight: 600; }

/* Snowball */
.sb-form { display: grid; gap: 10px; }
.sb-action { padding: 18px 20px; border-radius: 16px; background: #f7f8fc; border: 1px solid #e8eaf2; display: flex; flex-direction: column; gap: 12px; }
.sb-action--done { background: rgba(52,168,83,0.07); border-color: rgba(52,168,83,0.22); }
.sb-action__label { font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-muted); }
.sb-action p { font-size: 0.97rem; color: var(--text-main); font-weight: 600; margin: 0; line-height: 1.55; }
.sb-btn-reset { align-self: flex-start; margin-top: -8px; }

/* Anchor */
.anchor-streak { display: flex; align-items: baseline; gap: 8px; }
.anchor-streak__num { font-family: var(--font-display); font-size: 3rem; font-weight: 900; color: var(--primary); line-height: 1; }
.anchor-streak span:last-child { font-size: 0.88rem; color: var(--text-muted); font-weight: 600; }
.anchor-tip { padding: 16px 18px; border-radius: 14px; background: rgba(26,38,128,0.04); border: 1px solid rgba(26,38,128,0.12); }
.anchor-tip__law { display: inline-block; margin-bottom: 8px; padding: 3px 10px; border-radius: 6px; background: var(--primary); color: #fff; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.anchor-tip p { margin: 0; color: var(--text-main); font-size: 0.93rem; line-height: 1.65; font-weight: 500; }

/* Tab tools section header */
.cab-tools-header { margin-bottom: 28px; }
.cab-tools-header h2 { font-size: 1.55rem; font-weight: 700; color: var(--text-main); font-family: var(--font-display); letter-spacing: -0.02em; margin-bottom: 6px; }
.cab-tools-no-segment { text-align: center; padding: 40px 24px; color: var(--text-muted); }
.cab-tools-no-segment a { color: var(--primary); font-weight: 600; }

@media (max-width: 720px) {
  .cab-tools-grid { grid-template-columns: 1fr; }
  .tm-entry { grid-template-columns: 1fr; gap: 4px; }
  .cab-tool-card { padding: 22px 18px; }
}
