.plan-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:14px;align-items:start}
.plan-panel{display:flex;flex-direction:column;gap:12px;max-height:calc(calc(100svh / var(--ui-zoom,1)) - 140px);overflow:auto;position:sticky;top:12px}
.plan-panel-section{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px}
.plan-panel-section header{display:flex;justify-content:space-between;align-items:center;gap:8px}
.plan-panel-section h3{margin:0;font-size:14px}
.plan-panel-section h4{margin:14px 0 6px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#587e84}
.plan-panel-section h4 span{background:var(--paper);border-radius:9px;padding:1px 6px;margin-left:4px}
.plan-panel-section .crm-secondary,.plan-bulk .crm-secondary{padding:6px 10px;font-size:12px;min-height:0}
.plan-hint{font-size:11px;color:#6a7e83;margin:6px 0 8px;line-height:1.5}
.plan-bulk{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--line)}
.plan-bulk strong{font-size:13px}.plan-bulk small{display:block;font-size:11px;color:#6a7e83;line-height:1.5}
.plan-bulk-result{font-weight:bold;color:#266045!important}
.plan-bulk-short .plan-bulk-result{color:#a3352b!important}
.plan-calendar{min-width:0}
.plan-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.plan-nav>div{display:flex;gap:6px}.plan-nav .crm-secondary{padding:6px 12px;min-height:0}
.plan-weekend{display:flex;align-items:center;gap:6px;margin:0;font-size:12px;color:var(--ink)}
.plan-weekend input{width:auto;height:auto}
.plan-legend{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 10px;font-size:11px;color:#587e84}
.plan-key{display:inline-flex;align-items:center;gap:6px}
.plan-key::before{content:"";width:14px;height:10px;border-radius:3px;border:1px solid}
.plan-key-planned::before{border-style:dashed;border-color:#7ab8c6;background:#fbfeff}.plan-key-released::before{border-color:#09bbe9;background:#e9f9fd}.plan-key-progress::before{border-color:#f7b03a;background:#fff7e8}.plan-key-done::before{border-color:#8fc6a6;background:#eef8f2}
.workspace-content.planner-active{max-width:none;padding:20px 28px}
.workspace-content.planner-active h1{font-size:28px;margin-bottom:10px}
.plan-steps{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:4px 0 16px}
.plan-steps button{display:flex;align-items:center;gap:8px;background:none;border:0;border-bottom:3px solid transparent;padding:10px 16px;font-family:inherit;font-size:14px;color:#587e84;cursor:pointer}
.plan-steps button[aria-selected=true]{color:var(--ink);font-weight:bold;border-bottom-color:var(--brand-blue)}
.plan-steps .plan-chip{width:10px;height:10px;padding:0;border-radius:50%}
.plan-count{display:inline-block;min-width:18px;padding:1px 6px;border-radius:9px;background:#fde9d2;color:#8a4b08;font-size:11px;font-weight:bold;text-align:center}
.plan-week{display:grid;grid-template-columns:repeat(5,minmax(112px,1fr));gap:6px;height:calc(calc(100svh / var(--ui-zoom,1)) - 168px);min-height:320px;overflow-x:auto}
.plan-col{background:#fff;border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden}
.plan-col.plan-today{border:2px solid var(--brand-blue)}
.plan-col.plan-past .plan-col-head{opacity:.7}
.plan-col-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;padding:10px;border-bottom:1px solid var(--line);background:var(--paper);border-radius:8px 8px 0 0;font-size:12px;color:#587e84}
.plan-col-head strong{font-size:15px;color:var(--ink)}
.plan-today-tag{font-size:10px;color:#087f9c;font-weight:bold}
.plan-released-note{margin-left:auto;font-size:10px}
.plan-release{margin-left:auto;font-family:inherit;font-size:11px;font-weight:bold;border:0;border-radius:10px;padding:4px 10px;background:#087f9c;color:#fff;cursor:pointer}
.plan-release:hover{background:#06657c}
.plan-col-body{flex:1;min-height:0;overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:0}
.plan-col-empty{margin:auto;font-size:11px;color:#a9bcbf}
.plan-bulk[draggable=true]{cursor:grab}
.plan-chip{display:inline-block;flex:none}
.plan-chip-mix{background:#087f9c}.plan-chip-label{background:#7a5aa6}.plan-chip-fill{background:#2f8f6b}.plan-chip-pack{background:#c47f12}
.plan-over{outline:2px dashed var(--brand-blue);outline-offset:-3px;background:#eaf8fc!important}
.plan-card{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;font-family:inherit;font-size:11px;line-height:1.4;color:var(--ink);background:#fff;border:1px solid #9fd3df;border-left-width:4px;border-radius:6px;padding:6px 8px;cursor:pointer;margin-bottom:6px}
.plan-card[draggable=true]{cursor:grab}
.plan-card:hover,.plan-card:focus-visible{box-shadow:0 2px 8px #10343e1f}
.plan-card-top{display:flex;align-items:center;gap:6px}
.plan-card-top strong{font-size:12px;white-space:nowrap}
.plan-state{margin-left:auto;font-size:10px;color:#587e84;white-space:nowrap}
.plan-card-line{color:#405f66;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plan-card-qty{font-weight:bold}.plan-card-qty em{font-style:normal;color:#266045}
.plan-card-note{color:#266045}
.plan-flag{background:#fde2dd;color:#a3352b;border-radius:8px;padding:0 6px;font-size:10px}
.plan-planned{border-style:dashed;border-color:#7ab8c6;background:#fbfeff}
.plan-card.plan-planned{border-left-style:solid;border-left-color:#7ab8c6}
.plan-released{border-color:#09bbe9;background:#e9f9fd}
.plan-progress{border-color:#f7b03a;background:#fff7e8}
.plan-done{border-color:#8fc6a6;background:#eef8f2;opacity:.8}
.plan-dragging{opacity:.4}
@media(max-width:760px){.plan-layout{grid-template-columns:200px minmax(0,1fr)}}

.plan-week.plan-days-7{grid-template-columns:repeat(7,minmax(112px,1fr))}
.plan-dialog-actions{display:flex;gap:8px;margin-right:auto}
.plan-danger{color:#a3352b!important;border-color:#e6b8b2!important}
.plan-danger:hover{background:#fdf0ee!important}
#editor-dialog footer .ops-actions,dialog footer .ops-actions{display:flex;gap:8px;align-items:center;width:100%;justify-content:flex-end}
/* Compact demand cards */
.plan-bulk{display:block;padding:10px 0}
.plan-bulk-name{display:block;margin-bottom:6px}
.plan-bulk-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:0 0 6px}
.plan-bulk-stats div{background:#f3f8f9;border-radius:6px;padding:4px 7px}
.plan-bulk-stats dt{font-size:10px;color:#6a7e83;text-transform:uppercase;letter-spacing:.03em}
.plan-bulk-stats dd{margin:0;font-size:12.5px;font-weight:600;color:#1d4652;white-space:nowrap}
.plan-bulk-foot{display:flex;align-items:center;gap:8px}
.plan-bulk-foot small{flex:1;display:inline!important}
.plan-bulk-foot .plan-bulk-result{font-size:12.5px}
.plan-bulk-name{display:flex!important;justify-content:space-between;align-items:baseline;gap:8px}
.plan-bulk-name small{display:inline!important;white-space:nowrap}
.plan-bulk-foot{justify-content:space-between}
