/* Planning workspace: explicit, theme-aware colors independent of utility overrides. */
.crm-plan {
  --plan-bg:#0f172a; --plan-panel:#152034; --plan-soft:#1c2a40; --plan-border:#34445c;
  --plan-text:#eef3fc; --plan-muted:#adbbcf; --plan-blue:#93c5fd; --plan-blue-bg:#173663;
  --plan-red:#fda4af; --plan-red-bg:#422333; --plan-green:#6ee7b7; --plan-green-bg:#123d36;
  --plan-amber:#fcd34d; --plan-amber-bg:#453819;
  color:var(--plan-text); font-size:14px; line-height:1.5; min-width:0; display:grid; gap:20px;
}
:root[data-theme="light"] .crm-plan {
  --plan-bg:#fff; --plan-panel:#fff; --plan-soft:#f1f5fa; --plan-border:#d1dce9;
  --plan-text:#172a43; --plan-muted:#52647b; --plan-blue:#174d9e; --plan-blue-bg:#eaf2ff;
  --plan-red:#a91537; --plan-red-bg:#fff0f2; --plan-green:#086747; --plan-green-bg:#e7f6ef;
  --plan-amber:#805400; --plan-amber-bg:#fff5d9;
}
.crm-plan h2,.crm-plan h3,.crm-plan p {margin:0}
.crm-plan h2 {font-size:24px; font-weight:750; line-height:1.25}
.crm-plan h3 {font-size:15px; font-weight:700}
.crm-plan .plan-heading {display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.crm-plan .plan-heading p:not(.plan-eyebrow) {color:var(--plan-muted);margin-top:6px}
.crm-plan .plan-eyebrow {color:var(--plan-blue);font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:750;margin:0 0 7px}
.crm-plan .plan-period-label {font-size:13px;font-weight:600;color:var(--plan-muted);border-left:3px solid var(--plan-blue);padding:6px 12px}
.crm-plan button,.crm-plan input,.crm-plan select {font:inherit}
#app .crm-plan button,.crm-plan.plan-detail button {
  background:var(--plan-bg);color:var(--plan-text);border:1px solid var(--plan-border);border-radius:7px;
  padding:8px 12px;box-shadow:none;background-image:none;transform:none;cursor:pointer;line-height:1.4;
}
#app .crm-plan button:hover,.crm-plan.plan-detail button:hover {background:var(--plan-soft);border-color:var(--plan-blue);box-shadow:none}
#app .crm-plan button[aria-pressed="true"] {background:var(--plan-blue-bg);border-color:var(--plan-blue);color:var(--plan-blue)}
.crm-plan :is(button,input,select):focus-visible {outline:3px solid var(--plan-blue);outline-offset:3px}
.crm-plan .plan-filters,.crm-plan .plan-progress-panel,.crm-plan .plan-calendar,.crm-plan .plan-worklist {
  background:var(--plan-panel);border:1px solid var(--plan-border);border-radius:10px;padding:18px;min-width:0;
}
.crm-plan .plan-field {display:flex;flex-direction:column;gap:5px;min-width:0;color:var(--plan-muted);font-size:12px;font-weight:600}
.crm-plan .plan-field input,.crm-plan .plan-field select {width:100%;min-width:0;height:40px;padding:8px 10px;background:var(--plan-bg);color:var(--plan-text);border:1px solid var(--plan-border);border-radius:6px;font-size:13px;font-weight:400}
.crm-plan .plan-period {display:flex;align-items:end;flex-wrap:wrap;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--plan-border)}
.crm-plan .plan-presets {display:flex;gap:5px;flex-wrap:wrap;align-self:end;margin-right:auto}
.crm-plan .plan-presets button {min-height:40px;font-size:12px;white-space:nowrap}
.crm-plan .plan-period>.plan-field {min-width:130px}
.crm-plan .plan-filter-grid {display:grid;grid-template-columns:minmax(180px,1.4fr) repeat(3,minmax(140px,1fr));gap:12px;align-items:end;margin:16px 0 12px}
.crm-plan .plan-reset {height:40px;justify-self:start;font-size:12px!important}
.crm-plan .plan-note {color:var(--plan-muted);font-size:12px;line-height:1.55}
.crm-plan .plan-metrics {display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
#app .crm-plan .plan-metric {display:flex;flex-direction:column;text-align:left;padding:15px 16px;gap:5px;border-radius:10px;min-width:0;background:var(--plan-panel)}
#app .crm-plan .plan-metric[aria-pressed="true"] {background:var(--plan-blue-bg)}
.crm-plan .plan-metric>span {font-size:12px;font-weight:600}
.crm-plan .plan-metric>strong {font-size:30px;line-height:1.25;font-variant-numeric:tabular-nums}
.crm-plan .plan-metric small {font-size:11px;color:var(--plan-muted)}
#app .crm-plan .plan-danger,.crm-plan .plan-danger {color:var(--plan-red)}
#app .crm-plan .plan-warning,.crm-plan .plan-warning {color:var(--plan-amber)}
#app .crm-plan .plan-good,.crm-plan .plan-good {color:var(--plan-green)}
.crm-plan .plan-progress-panel {display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.45fr);gap:24px;align-items:center}
.crm-plan .plan-progress-panel h3 {display:flex;justify-content:space-between;gap:12px}
.crm-plan .plan-progress-panel h3 strong {color:var(--plan-green)}
.crm-plan .plan-status-track {height:10px;display:flex;overflow:hidden;border-radius:3px;background:var(--plan-soft);margin:12px 0}
.crm-plan .plan-status-part {height:100%}
.crm-plan .plan-tone-pending {background:#718096}
.crm-plan .plan-tone-in_progress {background:#3b82f6}
.crm-plan .plan-tone-review {background:#d49a24}
.crm-plan .plan-tone-done {background:#13976d}
.crm-plan .plan-legend {display:flex;gap:8px 18px;flex-wrap:wrap;color:var(--plan-muted);font-size:12px}
.crm-plan .plan-legend>span {display:inline-flex;align-items:center;gap:5px}
.crm-plan .plan-dot {width:7px;height:7px;border-radius:50%;display:inline-block}
.crm-plan .plan-effort {display:flex;flex-direction:column;border-left:1px solid var(--plan-border);padding-left:24px;color:var(--plan-muted);font-size:11px}
.crm-plan .plan-effort>strong {font-size:25px;color:var(--plan-text);font-variant-numeric:tabular-nums}
.crm-plan .plan-effort small {font-size:15px;color:var(--plan-muted)}
.crm-plan .plan-section-heading {display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin-bottom:14px}
.crm-plan .plan-section-heading>span {font-size:12px;color:var(--plan-muted)}
.crm-plan .plan-deadlines {display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:12px;margin:15px 0}
.crm-plan .plan-bucket {display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;color:var(--plan-muted);text-align:center}
.crm-plan .plan-bucket>b {color:var(--plan-text);font-size:13px}
.crm-plan .plan-bucket>small {font-size:10px}
.crm-plan .plan-bucket-track {width:100%;height:56px;display:flex;align-items:end;border-bottom:1px solid var(--plan-border);background:var(--plan-soft);border-radius:3px}
.crm-plan .plan-bucket-track>span {display:flex;align-items:end;background:#3b82f6;width:100%;border-radius:3px 3px 0 0;overflow:hidden}
.crm-plan .plan-bucket-track i {display:block;background:#dc4564;width:100%}
.crm-plan .plan-view-controls {display:flex;gap:12px}
.crm-plan .plan-focuses {display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 16px}
.crm-plan .plan-focuses button {font-size:12px!important}
.crm-plan .plan-focuses b {margin-left:5px;font-variant-numeric:tabular-nums}
.crm-plan .plan-worklist>.plan-note {margin:-2px 0 14px}
.crm-plan .plan-table-scroll {overflow:auto;max-height:70vh;border:1px solid var(--plan-border);border-radius:8px;scrollbar-gutter:stable}
.crm-plan .plan-table {border-collapse:separate;border-spacing:0;width:100%;min-width:920px;table-layout:fixed;text-align:left}
.crm-plan .plan-table th:first-child {width:32%}
.crm-plan .plan-table th:nth-child(2) {width:16%}
.crm-plan .plan-table th:nth-child(3) {width:21%}
.crm-plan .plan-table th:nth-child(4) {width:17%}
.crm-plan .plan-table th:nth-child(5) {width:14%}
.crm-plan .plan-table thead {position:sticky;top:0;z-index:2}
.crm-plan .plan-table thead th {background:var(--plan-soft);padding:12px;font-size:11px;color:var(--plan-muted);border-bottom:1px solid var(--plan-border)}
#app .crm-plan .plan-table tr {background:var(--plan-panel);box-shadow:none;transform:none}
#app .crm-plan .plan-table tr:hover {background:var(--plan-soft);box-shadow:none}
.crm-plan .plan-table td {padding:14px 12px;border-bottom:1px solid var(--plan-border);vertical-align:top;font-size:12px;overflow-wrap:anywhere}
.crm-plan .plan-table td small,.crm-plan .plan-table td>strong {display:block}
.crm-plan .plan-table td small {font-size:11px;color:var(--plan-muted);margin-top:5px}
#app .crm-plan .plan-table td small.plan-danger {color:var(--plan-red)}
#app .crm-plan .plan-table td small.plan-warning {color:var(--plan-amber)}
#app .crm-plan .plan-table td small.plan-good {color:var(--plan-green)}
#app .crm-plan .plan-task-title {border:0;background:transparent;color:var(--plan-blue);font-weight:650;font-size:13px;line-height:1.5;padding:0;text-align:left;border-radius:2px;overflow-wrap:anywhere;white-space:normal}
#app .crm-plan .plan-task-title:hover {text-decoration:underline;background:transparent}
.crm-plan .plan-task-meta {color:var(--plan-muted);font-size:10px;display:block;margin-top:6px}
.crm-plan .plan-badge {display:inline-block;border-radius:4px;padding:3px 7px;font-size:11px;font-weight:600;background:var(--plan-soft);color:var(--plan-text)}
.crm-plan .plan-badge-in_progress {background:var(--plan-blue-bg);color:var(--plan-blue)}
.crm-plan .plan-badge-review {background:var(--plan-amber-bg);color:var(--plan-amber)}
.crm-plan .plan-badge-done {background:var(--plan-green-bg);color:var(--plan-green)}
.crm-plan .plan-group th {padding:0;border-bottom:1px solid var(--plan-border)}
#app .crm-plan .plan-group button {width:100%;display:flex;justify-content:space-between;gap:12px;border:0;border-radius:0;background:var(--plan-blue-bg);color:var(--plan-blue);text-align:left;padding:12px}
.crm-plan .plan-group button>span:first-child {font-weight:700;overflow-wrap:anywhere}
.crm-plan .plan-group button>span:last-child {font-weight:400;font-size:11px;white-space:nowrap}
.crm-plan .plan-empty {padding:35px 16px;text-align:center;border:1px dashed var(--plan-border);border-radius:8px}
.crm-plan .plan-empty p {margin:8px 0 16px;color:var(--plan-muted)}
.crm-plan.plan-detail {display:block;width:min(620px,calc(100% - 32px));max-height:85vh;overflow:auto;margin:auto;background:var(--plan-panel);border:1px solid var(--plan-border);padding:24px;border-radius:12px}
.crm-plan.plan-detail::backdrop {background:rgba(2,6,23,.75)}
.crm-plan.plan-detail .plan-detail-close {float:right;font-size:20px;padding:4px 12px}
.crm-plan.plan-detail h2 {padding-right:45px;margin-bottom:8px;overflow-wrap:anywhere}
.crm-plan.plan-detail dl {display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;margin-top:22px}
.crm-plan.plan-detail dt {color:var(--plan-muted);font-size:12px}
.crm-plan.plan-detail dd {margin:0;overflow-wrap:anywhere}
.crm-plan.plan-detail dd small {display:block;font-size:12px}
.crm-plan .plan-description {white-space:pre-wrap}
@media(max-width:1100px) {
 .crm-plan .plan-filter-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
 .crm-plan .plan-metrics {gap:8px}
 #app .crm-plan .plan-metric {padding:12px}
 .crm-plan .plan-metric>strong {font-size:25px}
}
@media(max-width:680px) {
 .crm-plan {gap:14px}
 .crm-plan .plan-filters,.crm-plan .plan-progress-panel,.crm-plan .plan-calendar,.crm-plan .plan-worklist {padding:12px}
 .crm-plan .plan-period {display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .crm-plan .plan-presets {grid-column:1/-1}
 .crm-plan .plan-period>.plan-field:last-child {grid-column:1/-1}
 .crm-plan .plan-filter-grid {grid-template-columns:1fr}
 .crm-plan .plan-metrics {grid-template-columns:repeat(2,minmax(0,1fr))}
 #app .crm-plan .plan-metric:first-child {grid-column:1/-1;display:grid;grid-template-columns:1fr auto;align-items:center}
 .crm-plan .plan-metric:first-child strong {grid-column:2;grid-row:1/3}
 .crm-plan .plan-progress-panel {grid-template-columns:1fr;gap:14px}
 .crm-plan .plan-effort {border-left:0;border-top:1px solid var(--plan-border);padding:12px 0 0}
 .crm-plan .plan-deadlines {gap:5px}
 .crm-plan .plan-bucket {font-size:9px}
 .crm-plan .plan-bucket>small {font-size:9px}
 .crm-plan .plan-view-controls {width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .crm-plan .plan-table-scroll {max-height:none;border:0;overflow:visible}
 .crm-plan .plan-table {display:block;min-width:0}
 .crm-plan .plan-table thead {display:none}
 .crm-plan .plan-table tbody {display:block}
 #app .crm-plan .plan-table tr {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border:1px solid var(--plan-border);border-radius:8px;margin-bottom:10px;overflow:hidden}
 .crm-plan .plan-table td {padding:10px;border:0}
 .crm-plan .plan-table td:first-child {grid-column:1/-1;border-bottom:1px solid var(--plan-border)}
 .crm-plan .plan-table td:not(:first-child)::before {content:attr(data-label);display:block;color:var(--plan-muted);font-size:10px;margin-bottom:5px}
 #app .crm-plan .plan-table tr.plan-group {display:block;border:0}
 .crm-plan .plan-group th {display:block;width:100%!important;border:0}
 #app .crm-plan .plan-group button {flex-direction:column;gap:5px}
 .crm-plan .plan-table td>strong {font-size:12px}
 .crm-plan.plan-detail dl {grid-template-columns:1fr;gap:4px}
 .crm-plan.plan-detail dd {margin-bottom:10px}
}
