.planning{padding:var(--sp-11) var(--sp-10) var(--sp-12)}.planning__head{align-items:flex-end;gap:var(--sp-8);margin-bottom:var(--sp-10);flex-wrap:wrap;display:flex}.planning__headings{flex:1;min-width:20rem}.planning__title{font-size:var(--t-2xl);letter-spacing:var(--tr-tight);text-wrap:balance}.planning__sub{max-width:64ch;margin:var(--sp-2) 0 0;color:var(--ink-mut);line-height:var(--lh-body)}.planning__actions{align-items:center;gap:var(--sp-6);flex-wrap:wrap;display:flex}.planning__soon{margin-left:var(--sp-2);padding:0 var(--sp-3);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink-faint);font-family:var(--f-mono);font-size:var(--t-2xs);letter-spacing:var(--tr-wide);text-transform:uppercase}.planning__grid{gap:var(--sp-8);grid-template-columns:repeat(12,1fr);display:grid}.planning__generator{flex-direction:column;grid-column:span 7;display:flex}.planning__side{gap:var(--sp-8);flex-direction:column;grid-column:span 5;display:flex}.planning__roadmap{grid-column:span 12}.planning__region{flex:1}@media (max-width:68.75rem){.planning__generator,.planning__side{grid-column:span 12}}@media (max-width:40rem){.planning{padding-inline:var(--sp-6)}}.planning-create{gap:var(--sp-8);flex-direction:column;display:flex}.planning-create__months{gap:var(--sp-8);grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));display:grid}.planning-create__failure{color:var(--err);font-size:var(--t-sm);line-height:var(--lh-body);margin:0}.planning-create__state{color:var(--ink-mut);font-size:var(--t-xs);line-height:var(--lh-body);margin:0}.planning-create__actions{gap:var(--sp-4);flex-wrap:wrap;display:flex}.planning-gen{gap:var(--sp-6);flex-direction:column;flex:1;display:flex}.planning-gen__notice{color:var(--warn);font-size:var(--t-xs);line-height:var(--lh-body);margin:0}.planning-gen__disclosure{align-self:flex-start;align-items:center;gap:var(--sp-3);padding:var(--sp-2) 0;color:var(--ink-mut);font-family:var(--f-ui);font-size:var(--t-xs);cursor:pointer;background:0 0;border:none;font-weight:600;display:inline-flex}.planning-gen__disclosure:hover{color:var(--ink-dim)}.planning-gen__caret{color:var(--ink-faint)}.planning-gen__outline{padding-left:var(--sp-7)}.planning-gen__guidance{align-items:center;gap:var(--sp-4) var(--sp-6);padding:var(--sp-5) var(--sp-6);border:1px solid var(--model-line);border-radius:var(--r-md);background:var(--model-tint);flex-wrap:wrap;display:flex}.planning-gen__notes{min-width:16rem;color:var(--ink-dim);font-size:var(--t-sm);line-height:var(--lh-body);flex:1;margin:0;padding:0;list-style:none}.planning-gen__controls{align-items:center;gap:var(--sp-6);flex-wrap:wrap;display:flex}.planning-gen__milestone{gap:var(--sp-4);flex-direction:column;min-width:12rem;display:flex}.planning-gen__switch{align-items:center;gap:var(--sp-4);display:inline-flex}.planning-gen__switch-label{color:var(--ink-mut);font-size:var(--t-xs)}.planning-gen__draft{margin-left:auto}.planning-gen__note{color:var(--ink-faint);font-size:var(--t-xs);line-height:var(--lh-body);margin:0}.planning-gen__divider{margin:var(--sp-2) 0;border:none;border-top:1px solid var(--line)}.planning-gen__drafts{flex-direction:column;display:flex}.planning-gen__drafts-head{justify-content:space-between;align-items:center;gap:var(--sp-6);margin-bottom:var(--sp-2);display:flex}.planning-gen__drafts-title{font-family:var(--f-disp);font-size:var(--t-sm);letter-spacing:var(--tr-wide);text-transform:uppercase;margin:0;font-weight:600}.planning-gen__rows{margin:0;padding:0;list-style:none}.planning-gen__footer{align-items:center;gap:var(--sp-4);margin-top:var(--sp-6);flex-wrap:wrap;display:flex}.planning-gen__total{min-width:14rem;color:var(--ink-mut);font-family:var(--f-mono);font-size:var(--t-xs);flex:1}.planning-gen__failure{color:var(--err);font-size:var(--t-sm);line-height:var(--lh-body);margin:0}.planning-gen__state{color:var(--ink-mut);font-size:var(--t-xs);margin:0}.planning-gen__outcome{color:var(--ink-dim);font-size:var(--t-xs);line-height:var(--lh-body);margin:0;padding:0;list-style:none}.planning-seg{border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--inset);flex-wrap:wrap;display:inline-flex;overflow:hidden}.planning-seg__option{align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-6);border:none;border-right:1px solid var(--line);color:var(--ink-mut);font-family:var(--f-ui);font-size:var(--t-xs);white-space:nowrap;cursor:pointer;background:0 0;font-weight:600;display:inline-flex}.planning-seg__option:last-child{border-right:none}.planning-seg__option:hover{color:var(--ink-dim)}.planning-seg__option[aria-disabled=true]{color:var(--ink-faint);cursor:not-allowed}.planning-seg__option--selected{background:var(--accent-tint);box-shadow:inset 0 0 0 1px var(--accent-line);color:var(--accent)}.planning-mgram{border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--raised);width:1.25rem;height:1.25rem;color:var(--ink-dim);font-family:var(--f-disp);font-size:var(--t-2xs);letter-spacing:var(--tr-wide);flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.planning-mgram--gh{border-color:var(--accent-line);background:var(--accent-tint);color:var(--accent)}.planning-mgram--ji{border-color:var(--model-line);background:var(--model-tint);color:var(--model)}.planning-mgram--ln{border-color:var(--ok-line);background:var(--ok-tint);color:var(--ok)}.planning-draft{border-bottom:1px solid var(--line)}.planning-draft:last-child{border-bottom:none}.planning-draft__line{align-items:center;gap:var(--sp-5);min-width:0;padding:var(--sp-5) var(--sp-1);flex-wrap:wrap;display:flex}.planning-draft__check{width:.9375rem;height:.9375rem;accent-color:var(--accent-deep);cursor:pointer;flex:none}.planning-draft__key{width:3.25rem;color:var(--ink-faint);font-family:var(--f-mono);font-size:var(--t-xs);flex:none}.planning-draft__title{min-width:10rem;color:var(--ink);font-size:var(--t-sm);flex:1}.planning-draft__dep,.planning-draft__sizing,.planning-draft__pushing{color:var(--ink-faint);font-family:var(--f-mono);font-size:var(--t-2xs);white-space:nowrap}.planning-draft__pushed{color:var(--ok);font-family:var(--f-mono);font-size:var(--t-2xs);white-space:nowrap}.planning-draft__failed{color:var(--err);font-family:var(--f-mono);font-size:var(--t-2xs)}.planning-draft__editor{gap:var(--sp-6);padding:0 var(--sp-1) var(--sp-6) 1.5rem;flex-direction:column;display:flex}.planning-draft__editor-actions{gap:var(--sp-4);display:flex}.planning-gantt{gap:var(--sp-5);flex-direction:column;display:flex}.planning-gantt__scroll{padding-bottom:var(--sp-2);overflow-x:auto}.planning-gantt__grid{grid-template-columns:12.5rem repeat(var(--planning-gantt-months), minmax(6.5rem, 1fr));grid-template-rows:1.875rem repeat(var(--planning-gantt-lanes), 3.25rem);align-items:center;width:max-content;min-width:53.75rem;display:grid;position:relative}.planning-gantt__lane{display:contents}.planning-gantt__month{grid-row:1;grid-column:var(--planning-gantt-start);padding:0 0 var(--sp-4) var(--sp-5);color:var(--ink-faint);font-family:var(--f-mono);font-size:var(--t-2xs);letter-spacing:var(--tr-wider);text-transform:uppercase;white-space:nowrap;align-self:end}.planning-gantt__rule{grid-row:1/-1;grid-column:var(--planning-gantt-start);border-left:1px solid var(--line);pointer-events:none;align-self:stretch}.planning-gantt__label{grid-row:var(--planning-gantt-row);padding-right:var(--sp-8);color:var(--ink-dim);font-size:var(--t-sm);text-overflow:ellipsis;white-space:nowrap;grid-column:1;font-weight:600;overflow:hidden}.planning-gantt__affix{margin-left:var(--sp-3);color:var(--ink-faint);font-size:var(--t-xs);font-weight:400}.planning-gantt__bar{z-index:1;grid-row:var(--planning-gantt-row);grid-column:var(--planning-gantt-start) / var(--planning-gantt-end);align-items:center;gap:var(--sp-4);min-width:0;height:2.25rem;margin:0 var(--sp-4) 0 var(--sp-2);padding:0 var(--sp-5);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font:inherit;text-align:left;white-space:nowrap;cursor:pointer;transform:translateX(var(--planning-gantt-residual));touch-action:pan-y;display:flex;position:relative;overflow:hidden}.planning-gantt__bar--editable{cursor:grab}.planning-gantt__bar--dragging{z-index:3;cursor:grabbing;border-style:solid}.planning-gantt__bar--saving{border-style:dotted}.planning-gantt__bar--accent{border-color:var(--accent-line);background:var(--accent-wash)}.planning-gantt__bar--model{border-color:var(--model-line);background:var(--model-tint)}.planning-gantt__bar--warn{border-color:var(--warn-line);background:var(--warn-tint)}.planning-gantt__bar--ok{border-color:var(--ok-line);background:var(--ok-tint)}.planning-gantt__bar--neutral{border:1px dashed var(--line-strong);background:var(--raised)}.planning-gantt__bar--neutral .planning-gantt__name{color:var(--ink-mut)}.planning-gantt__bar--unscoped{border-style:dashed}.planning-gantt__fill{z-index:0;width:var(--planning-gantt-fill);border-right:1px solid var(--line-strong);background:var(--raised);pointer-events:none;position:absolute;inset:0}.planning-gantt__bar--accent .planning-gantt__fill{border-right-color:var(--accent-line);background:var(--accent-tint)}.planning-gantt__bar--model .planning-gantt__fill{border-right-color:var(--model-line);background:var(--model-tint)}.planning-gantt__bar--warn .planning-gantt__fill{border-right-color:var(--warn-line);background:var(--warn-tint)}.planning-gantt__bar--ok .planning-gantt__fill{border-right-color:var(--ok-line);background:var(--ok-tint)}.planning-gantt__edge{z-index:2;width:var(--sp-3);cursor:ew-resize;position:absolute;top:0;bottom:0}.planning-gantt__edge--start{border-left:1px solid #0000;left:0}.planning-gantt__edge--end{border-right:1px solid #0000;right:0}.planning-gantt__bar:hover .planning-gantt__edge--start{border-left-color:var(--line-control)}.planning-gantt__bar:hover .planning-gantt__edge--end{border-right-color:var(--line-control)}.planning-gantt__name{z-index:1;font-size:var(--t-xs);text-overflow:ellipsis;font-weight:600;position:relative;overflow:hidden}.planning-gantt__chip{z-index:1;padding:0 var(--sp-3);border:1px solid var(--line-strong);border-radius:var(--r-xs);background:var(--scrim);color:var(--ink-dim);font-family:var(--f-mono);font-size:var(--t-2xs);margin-left:auto;position:relative}.planning-gantt__today{z-index:2;grid-row:1/-1;grid-column:var(--planning-gantt-today-column);pointer-events:none;align-self:stretch;position:relative}.planning-gantt__today:before{top:var(--sp-2);bottom:0;left:var(--planning-gantt-today-offset);width:var(--sp-1);border-radius:var(--r-xs);background:var(--accent);box-shadow:0 0 var(--sp-5) 1px var(--accent-glow);content:"";position:absolute}.planning-gantt__today-label{top:calc(-1 * var(--sp-2));left:var(--planning-gantt-today-offset);width:0;color:var(--accent);font-family:var(--f-mono);font-size:var(--t-2xs);letter-spacing:var(--tr-wider);white-space:nowrap;justify-content:center;display:flex;position:absolute}.planning-gantt__steppers{z-index:3;grid-row:var(--planning-gantt-row);justify-self:end;gap:var(--sp-3);padding:var(--sp-1) var(--sp-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);opacity:0;pointer-events:none;grid-column:1;display:flex}.planning-gantt__lane:focus-within .planning-gantt__steppers,.planning-gantt__lane:hover .planning-gantt__steppers{opacity:1;pointer-events:auto}.planning-gantt__step-group{align-items:center;gap:var(--sp-1);display:flex}.planning-gantt__step-label{color:var(--ink-faint);font-family:var(--f-mono);font-size:var(--t-2xs)}.planning-gantt__steppers .planning-gantt__step{min-width:0;padding:0 var(--sp-3)}.planning-gantt__note,.planning-gantt__hint{color:var(--ink-mut);font-size:var(--t-xs);line-height:var(--lh-body);margin:0}.planning-gantt__hint{color:var(--ink-faint)}.planning-gantt__failure{color:var(--err);font-size:var(--t-sm);line-height:var(--lh-body);margin:0}.planning-gantt__foot{align-items:center;gap:var(--sp-4) var(--sp-8);flex-wrap:wrap;display:flex}.planning-gantt__foot .planning-gantt__hint{flex:1}@media (prefers-reduced-motion:no-preference){.planning-gantt__bar{transition:border-color .15s}.planning-gantt__steppers{transition:opacity .15s}}.planning-epic__section{gap:var(--sp-4);flex-direction:column;display:flex}.planning-epic__heading{color:var(--ink-dim);font-size:var(--t-sm);letter-spacing:var(--tr-wide);text-transform:uppercase}.planning-epic__note{color:var(--ink-mut);font-size:var(--t-xs);line-height:var(--lh-body);margin:0}.planning-epic__tickets,.planning-epic__mirrors{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.planning-epic__ticket{align-items:center;gap:var(--sp-4);min-width:0;padding:var(--sp-3) 0;border-bottom:1px solid var(--line);display:flex}.planning-epic__key{color:var(--accent);font-family:var(--f-mono);font-size:var(--t-xs);flex:none}.planning-epic__title{min-width:0;color:var(--ink);font-size:var(--t-sm);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.planning-epic__state{color:var(--ink-faint);font-family:var(--f-mono);font-size:var(--t-2xs);flex:none}.planning-epic__state--done{color:var(--ok)}.planning-epic__mirror{padding:var(--sp-3) 0;border-bottom:1px solid var(--line);color:var(--ink-dim);font-family:var(--f-mono);font-size:var(--t-xs)}.planning-sync{margin:0;padding:0;list-style:none}.planning-sync__row{align-items:center;gap:var(--sp-5);padding:var(--sp-5) 0;border-bottom:1px solid var(--line);display:flex}.planning-sync__row:last-child{border-bottom:none}.planning-sync__text{gap:var(--sp-1);flex-direction:column;flex:1;min-width:0;display:flex}.planning-sync__name{color:var(--ink);font-size:var(--t-sm);font-weight:600;line-height:var(--lh-tight);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.planning-sync__sub{color:var(--ink-mut);font-family:var(--f-mono);font-size:var(--t-2xs)}.planning-sync__sub--absent{color:var(--ink-faint)}.planning-health{gap:var(--sp-6);flex-direction:column;flex:1;display:flex}.planning-health__meters{gap:var(--sp-6);flex-direction:column;display:flex}.planning-health__meter{gap:var(--sp-3);flex-direction:column;display:flex}.planning-health__row{justify-content:space-between;align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;display:flex}.planning-health__label{color:var(--ink-mut);font-size:var(--t-xs)}.planning-health__value{font-family:var(--f-mono);font-size:var(--t-xs)}.planning-health__value--ok{color:var(--ok)}.planning-health__value--warn{color:var(--warn)}.planning-health__value--err{color:var(--err)}.planning-health__note{color:var(--ink-faint);font-size:var(--t-2xs);line-height:var(--lh-body);margin:0}.planning-health__soon{margin-top:var(--sp-2);display:block}.planning-health__run{align-items:baseline;gap:var(--sp-3);color:var(--ink-mut);font-family:var(--f-mono);font-size:var(--t-2xs);margin:auto 0 0;display:flex}.planning-health__info{color:var(--ink-faint)}.planning-banner{margin-bottom:var(--sp-8)}.planning-gen__guidance{margin-bottom:var(--sp-6)}.planning-gen__sweep{margin:0 0 var(--sp-5);color:var(--ink-faint);font-size:var(--t-2xs);line-height:var(--lh-body)}.planning-skeleton__bar{height:var(--sp-6);border-radius:var(--r-sm);background:var(--raised);display:block}.planning-skeleton__bar--title{width:18ch;height:var(--sp-7)}.planning-skeleton__bar--short{width:26ch}.planning-skeleton__head{margin-bottom:var(--sp-7)}.planning-skeleton__stack{gap:var(--sp-6);flex-direction:column;display:flex}.planning-skeleton__row{align-items:center;gap:var(--sp-5);display:flex}.planning-skeleton__prompt{border-radius:var(--r-md);background:var(--raised);height:6rem;display:block}.planning-skeleton__seg{height:var(--sp-9);border-radius:var(--r-md);background:var(--raised);flex:1;display:block}.planning-skeleton__button{width:7rem;height:var(--sp-9);border-radius:var(--r-md);background:var(--raised);display:block}.planning-skeleton__monogram{border-radius:var(--r-sm);background:var(--raised);flex:none;width:1.25rem;height:1.25rem;display:block}.planning-skeleton__list{margin:0;padding:0;list-style:none}.planning-skeleton__meter{height:var(--sp-4);border-radius:var(--r-pill);background:var(--raised);display:block}.planning-skeleton__lane{align-items:center;gap:var(--sp-7);display:flex}.planning-skeleton__lane-bar{height:var(--sp-10);border-radius:var(--r-md);background:var(--raised);flex:1;display:block}
