/* Scheduling and summary specimens share the v1.1 surfaces, controls, status colors and type scale. */
.planning-intro{max-width:82ch;margin:0 0 var(--space-5);color:var(--color-text-secondary)}
.planning-stack{display:grid;gap:var(--space-6)}
.planning-panel{min-width:0;padding:var(--space-5);background:var(--glass-reflection),var(--surface-glass-strong);box-shadow:var(--shadow-1)}
.planning-panel__head{margin-bottom:var(--space-4)}
.planning-panel__head--split{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}
.planning-panel__head h3{margin:0;font-size:var(--text-h3);line-height:var(--line-h3)}
.planning-panel__head h3 span{display:block;margin-top:var(--space-1);font-size:var(--text-body-small);line-height:var(--line-body-small);font-weight:var(--weight-regular);color:var(--color-text-tertiary)}
.planning-panel__head p{margin:var(--space-1) 0 0;color:var(--color-text-tertiary);font-size:var(--text-body-small)}
.planning-panel>.note{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--color-border)}
.planning-board__scroll{overflow-x:auto;scrollbar-gutter:stable;padding:var(--space-2);border:1px solid var(--glass-border);border-radius:var(--radius-lg);background:var(--glass-reflection),var(--surface-inset);box-shadow:inset 0 1px 0 rgb(255 255 255 / 48%),inset 0 4px 12px rgb(35 62 86 / 6%)}
.planning-board__scroll:focus-visible{outline:2px solid var(--color-primary);outline-offset:var(--space-1);border-radius:var(--radius-xs)}
.planning-board{min-width:780px}
.planning-board--gantt{min-width:840px}
.planning-board__head,.planning-board__row{display:grid;grid-template-columns:148px minmax(0,1fr);gap:var(--space-1)}
.planning-board__head{min-height:52px;font-size:var(--text-caption);color:var(--color-text-tertiary)}
.planning-board__head>span{position:sticky;left:0;z-index:3;display:flex;align-items:center;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:rgb(247 250 252 / 90%);font-weight:var(--weight-medium)}
.planning-board__days{display:grid;grid-template-columns:repeat(var(--planning-columns),minmax(0,1fr))}
.planning-board__days time{display:grid;align-content:center;justify-items:center;gap:2px;margin:0 2px;padding:var(--space-1);border-radius:var(--radius-sm)}
.planning-board__days time strong{font-size:var(--text-body-small);color:var(--color-text-primary)}
.planning-board__days time[aria-current=date]{color:var(--color-primary);background:rgb(222 233 251 / 76%);box-shadow:inset 0 1px 0 rgb(255 255 255 / 68%)}
.planning-board__days time[aria-current=date] strong{color:var(--color-primary)}
.planning-board__row{min-height:70px;margin-top:var(--space-2);border:1px solid rgb(255 255 255 / 53%);border-radius:var(--radius-md);background:rgb(247 251 255 / 27%);box-shadow:inset 0 1px 0 rgb(255 255 255 / 38%)}
.planning-board__name{position:sticky;left:0;z-index:2;display:grid;align-content:center;gap:2px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md) var(--radius-xs) var(--radius-xs) var(--radius-md);background:rgb(247 250 252 / 87%);box-shadow:1px 0 0 rgb(255 255 255 / 57%)}
.planning-board__name strong{font-size:var(--text-body-small);font-weight:var(--weight-semibold)}
.planning-board__name small{font-size:var(--text-caption);color:var(--color-text-tertiary)}
.planning-board__track{display:grid;grid-template-columns:repeat(var(--planning-columns),minmax(0,1fr));grid-template-rows:minmax(68px,auto);position:relative;min-width:0}
.planning-board__cells{grid-column:1/-1;grid-row:1;display:grid;grid-template-columns:repeat(var(--planning-columns),minmax(0,1fr));pointer-events:none}
.planning-board__cells i+ i{border-left:1px dashed rgb(51 79 105 / 17%)}
.planning-board__cells i[data-today]{background:rgb(24 90 219 / 5%)}
.planning-board__bar.btn{position:relative;z-index:1;grid-row:1;align-self:center;justify-content:center;height:38px;min-width:0;margin:0 var(--space-1);padding:0 var(--space-2);overflow:hidden;cursor:default;pointer-events:none;font-size:var(--text-caption);color:var(--btn-fg)}
.planning-board__bar:not(.planning-board__bar--gantt)::before{content:"";position:relative;z-index:1;flex:none;width:7px;height:7px;border-radius:50%;background:rgb(255 255 255 / 94%);box-shadow:0 0 0 3px rgb(255 255 255 / 22%)}
.planning-board__bar-fill{position:absolute;z-index:0;left:3px;top:3px;bottom:3px;border-radius:var(--radius-full);background:linear-gradient(180deg,rgb(14 67 169 / 90%),rgb(12 54 145 / 85%));box-shadow:inset 0 1px 1px rgb(255 255 255 / 16%)}
.planning-board__bar-label{position:relative;z-index:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 var(--space-1);font-variant-numeric:tabular-nums}
.planning-board__details{margin-top:var(--space-3);font-size:var(--text-body-small)}
.planning-board__details summary{cursor:pointer;font-weight:var(--weight-medium)}
.planning-board__details summary:focus-visible{outline:2px solid var(--color-primary);outline-offset:var(--space-1)}



.planning-board__details td{font-variant-numeric:tabular-nums}
.planning-panel--stepper{width:min(100%,920px);margin-inline:auto;padding:0;background:none;box-shadow:none;box-sizing:border-box}
.planning-panel--stepper>.note{width:min(100%,860px);margin-inline:auto}
.planning-stepper-component{padding:var(--space-6);border:1px solid var(--glass-border);border-radius:var(--radius-lg);background:var(--glass-reflection),var(--surface-glass-strong);box-shadow:var(--shadow-1),inset 0 1px 0 rgb(255 255 255 / 55%);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur))}
.planning-stepper{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2);list-style:none;margin:var(--space-2) 0 var(--space-6);padding:0}
.planning-stepper li{position:relative;display:grid;justify-items:center;align-content:start;gap:var(--space-2);min-width:0;text-align:center}
.planning-stepper li:not(:last-child)::after{content:"";position:absolute;left:calc(50% + 30px);top:21px;width:calc(100% - 52px);height:3px;border-radius:var(--radius-full);background:rgb(93 115 132 / 24%)}
.planning-stepper li[data-state=done]::after{background:linear-gradient(90deg,var(--color-success),var(--color-primary))}
.planning-stepper .btn{position:relative;z-index:1;font-size:var(--text-title);font-variant-numeric:tabular-nums}
.planning-stepper__check{position:absolute;right:-4px;bottom:-3px;display:grid;place-items:center;width:19px;height:19px;border:2px solid var(--color-surface);border-radius:50%;background:var(--color-success);color:var(--color-surface);box-shadow:0 2px 5px rgb(17 83 50 / 22%)}
.planning-stepper__check .icon{width:12px;height:12px}
.planning-stepper__label{display:grid;gap:var(--space-1)}
.planning-stepper__label small{color:var(--color-text-tertiary);font-size:var(--text-caption)}
.planning-stepper__label strong{font-size:var(--text-body-small);font-weight:var(--weight-medium)}
.planning-stepper li[data-state=upcoming] .planning-stepper__label{color:var(--color-disabled)}
.planning-stepper__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border)}
.planning-stepper__content{display:grid;gap:var(--space-1)}
.planning-stepper__content strong{font-size:var(--text-body);font-weight:var(--weight-semibold)}
.planning-stepper__content p{margin:0;color:var(--color-text-secondary);font-size:var(--text-body-small)}
.planning-stepper__actions{gap:var(--space-2);flex:none}
.planning-milestones{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:0;padding:var(--space-3) 0 0}
.planning-milestones li{position:relative;display:grid;grid-template-rows:24px 32px auto auto auto;align-content:start;justify-items:center;gap:var(--space-1);padding:0 var(--space-2);text-align:center;min-width:0}
.planning-milestones li:not(:last-child)::after{content:"";position:absolute;top:43px;left:calc(50% + 12px);width:calc(100% - 24px);height:2px;background:var(--color-border-strong)}
.planning-milestones li[data-state=已完成]::after{background:var(--color-primary)}
.planning-milestones time{font-size:var(--text-caption);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}
.planning-milestones__dot{position:relative;z-index:1;align-self:center;width:16px;height:16px;border:2px solid var(--color-border-strong);border-radius:var(--radius-full);background:var(--color-surface)}
.planning-milestones li[data-state=已完成] .planning-milestones__dot{border-color:var(--color-success);background:var(--color-success)}
.planning-milestones li[data-state=进行中] .planning-milestones__dot{border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary-light)}
.planning-milestones li>strong{font-size:var(--text-body);font-weight:var(--weight-semibold)}
.planning-milestones li>p{margin:0;color:var(--color-text-tertiary);font-size:var(--text-body-small)}
.planning-milestones .badge{margin-top:var(--space-1)}
.planning-panel--metrics{padding:0;background:none;box-shadow:none}
.planning-panel--metrics>.note{margin-top:var(--space-4)}
.planning-panel--metrics>.planning-panel__head,.planning-panel--metrics>.note{width:min(100%,860px);margin-inline:auto}
.planning-panel__head--split .row{gap:var(--space-2)}
.planning-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(128px,auto));gap:var(--space-3);width:min(100%,860px);margin-inline:auto}
.planning-metric{display:flex;flex-direction:column;gap:var(--space-2);min-width:0;padding:var(--space-4);background:var(--glass-reflection),rgb(247 251 255 / 79%);border:1px solid rgb(255 255 255 / 72%);box-shadow:var(--shadow-1),inset 0 1px 0 rgb(255 255 255 / 62%)}
.planning-metric[data-kind=success]{grid-column:span 2;grid-row:span 2;gap:var(--space-4);padding:var(--space-5)}
.planning-metric[data-kind=time]{grid-column:span 2}
.planning-metric__head{display:flex;align-items:center;gap:var(--space-2);min-width:0;color:var(--color-text-secondary)}
.planning-metric__icon{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:var(--radius-xs);--icon-surface-tone:var(--color-primary)}
.planning-metric[data-kind=success] .planning-metric__icon{--icon-surface-tone:var(--color-success)}
.planning-metric[data-kind=queue] .planning-metric__icon{--icon-surface-tone:var(--color-warning)}
.planning-metric[data-kind=failure] .planning-metric__icon{--icon-surface-tone:var(--color-error)}
.planning-metric__icon .icon{width:var(--icon-sm);height:var(--icon-sm)}
.planning-metric__head h4{margin:0;font-size:var(--text-body-small);font-weight:var(--weight-medium);white-space:nowrap}
.planning-metric__featured-label{margin-left:auto;color:var(--color-text-tertiary);font-size:var(--text-caption)}
.planning-metric__value{display:flex;align-items:baseline;gap:var(--space-1);margin-top:var(--space-1)}
.planning-metric__value strong{font-size:var(--text-h1);line-height:1.05;font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);font-variant-numeric:tabular-nums}
.planning-metric[data-kind=success] .planning-metric__value strong{font-size:var(--text-display)}
.planning-metric__value span{font-size:var(--text-body-small);color:var(--color-text-secondary)}
.planning-metric__trend{display:grid;gap:var(--space-2);margin-top:auto;color:var(--color-text-tertiary);font-size:var(--text-caption)}
.planning-metric__bars{display:flex;align-items:end;gap:var(--space-2);height:56px;padding:var(--space-1) 0;border-bottom:1px solid var(--color-border)}
.planning-metric__bars i{flex:1;height:var(--metric-bar);min-width:0;border-radius:var(--radius-xs) var(--radius-xs) 0 0;background:linear-gradient(180deg,rgb(47 119 225 / 70%),rgb(24 90 219 / 36%));box-shadow:inset 0 1px 0 rgb(255 255 255 / 44%)}
.planning-metric__bars i[data-latest]{background:linear-gradient(180deg,var(--color-primary),var(--color-primary-hover))}
.planning-metric__foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);flex-wrap:wrap;margin-top:auto;color:var(--color-text-tertiary);font-size:var(--text-caption)}
.planning-metric[data-kind=success] .planning-metric__foot{margin-top:0;padding-top:var(--space-2)}
.planning-metric__delta{display:inline-flex;align-items:center;padding:3px var(--space-2);border-radius:var(--radius-full);font-weight:var(--weight-medium);font-variant-numeric:tabular-nums;white-space:nowrap}
.planning-metric__delta[data-tone=good]{color:var(--color-success);background:var(--color-success-soft)}
.planning-metric__delta[data-tone=bad]{color:var(--color-error);background:var(--color-error-soft)}
@media(max-width:620px){.planning-panel{padding:var(--space-4)}.planning-panel--stepper,.planning-panel--metrics{padding:0}.planning-stepper-component{padding:var(--space-4)}.planning-stepper{grid-template-columns:1fr;gap:var(--space-4)}.planning-stepper li{grid-template-columns:44px minmax(0,1fr);justify-items:start;align-items:center;text-align:left}.planning-stepper li:not(:last-child)::after{left:21px;top:44px;width:3px;height:calc(100% + var(--space-4) - 44px)}.planning-stepper__label{grid-column:2;grid-row:1}.planning-stepper__footer{align-items:flex-start;flex-direction:column}.planning-milestones{grid-template-columns:1fr;gap:var(--space-4)}.planning-milestones li{display:block;text-align:left;padding:0 0 0 var(--space-8);min-height:110px}.planning-milestones__dot{position:absolute;left:0;top:27px}.planning-milestones li:not(:last-child)::after{left:7px;top:43px;width:2px;height:calc(100% + var(--space-4) - 43px)}.planning-milestones li>strong{display:block;margin-top:var(--space-3)}.planning-milestones li>p{margin-top:var(--space-1)}.planning-milestones .badge{margin-top:var(--space-2)}.planning-metrics{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto}.planning-metric[data-kind=success]{grid-row:auto}.planning-metric[data-kind=time]{grid-column:span 2}.planning-metric[data-kind=queue],.planning-metric[data-kind=failure]{min-height:128px}}
@media(max-width:480px){.planning-metrics{grid-template-columns:1fr}.planning-metric[data-kind=success],.planning-metric[data-kind=time]{grid-column:auto}.planning-board__details{overflow-x:auto}}
@media(prefers-reduced-transparency:reduce){.planning-panel,.planning-metric,.planning-stepper-component{background:var(--color-surface);backdrop-filter:none;-webkit-backdrop-filter:none}.planning-panel--stepper{background:none}}
@media(forced-colors:active){.planning-panel,.planning-metric,.planning-stepper-component{border:1px solid CanvasText}.planning-board__bar.btn{border:1px solid CanvasText;background:Highlight;color:HighlightText}.planning-board__bar-fill{background:CanvasText}.planning-board__bar:not(.planning-board__bar--gantt)::before{background:HighlightText;box-shadow:none}.planning-milestones__dot{border-color:CanvasText}.planning-metric__icon{border:1px solid CanvasText}.planning-metric__bars i{background:Highlight}}
