.planning-canvas-lede{margin:0 0 var(--space-10);max-width:var(--measure-prose);color:var(--ink-soft);font-size:var(--text-sm)}.planning-canvas-task{justify-content:space-between;align-items:center;gap:var(--space-6) var(--space-12);margin:0 0 var(--space-8);flex-wrap:wrap;display:flex}.planning-canvas-task p{color:var(--ink);font-size:var(--text-sm);font-weight:var(--weight-semibold);margin:0}.planning-canvas-task .text-link{gap:var(--space-4);font-size:var(--text-xs);padding:0}.planning-canvas-task .text-link[aria-expanded=true] svg{transform:rotate(180deg)}.planning-canvas-heading-actions{align-items:center;gap:var(--space-8);display:flex}.planning-canvas-readout{gap:var(--space-8);margin:0 0 var(--space-10);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.planning-canvas-readout>div{gap:var(--space-2);border:var(--hairline);border-radius:var(--radius-md);min-height:5.25rem;padding:var(--space-10) var(--space-12);background:var(--surface-subtle);align-content:center;display:grid}.planning-canvas-readout span{align-items:center;gap:var(--space-4);color:var(--muted);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;display:inline-flex}.planning-canvas-readout strong{color:var(--ink);font-size:var(--text-xl);font-variant-numeric:var(--font-numeric)}.planning-canvas-readout small{color:var(--ink-soft);font-size:var(--text-2xs)}.planning-preview-status{align-items:center;gap:var(--space-6);min-height:var(--control-height);margin-bottom:var(--space-10);border-left:var(--border-width-rail) solid var(--brand-700);padding:var(--space-6) var(--space-10);background:var(--brand-50);color:var(--brand-950);font-size:var(--text-xs);font-variant-numeric:var(--font-numeric);flex-wrap:wrap;display:flex}.planning-preview-status.is-error{border-left-color:var(--status-warning);background:var(--status-warning-soft);color:var(--ink)}.planning-preview-status small{color:var(--ink-soft);flex-basis:100%}.planning-preview-spinner{animation:1s linear infinite spin}.planning-canvas-controls{gap:var(--space-10);padding-block:var(--space-12);border-block:var(--border-width-hairline) solid var(--border-light);margin-block-end:var(--space-14);display:grid}.planning-canvas-controls .search-field-wrapper{width:min(100%,36rem)}.planning-canvas-controls .table-controls{margin:0}.planning-canvas-grid{gap:var(--space-14);grid-template-columns:minmax(0,1fr) minmax(17rem,20rem);align-items:start;display:grid}.planning-canvas-scroll{border:var(--border-width-hairline) solid var(--border);border-radius:var(--radius-md);background:var(--surface);scroll-padding:var(--space-24);overflow-x:auto}.planning-canvas-frame{min-width:calc(3.6rem + var(--pc-days,2) * 10.5rem);grid-template-columns:3.6rem minmax(0,1fr);display:grid}.planning-canvas-ruler{border-right:var(--border-width-hairline) solid var(--border);background:var(--surface-subtle)}.planning-canvas-ruler-head{border-bottom:var(--border-width-hairline) solid var(--border);block-size:3.25rem;display:block}.planning-canvas-ruler-track{block-size:34rem;position:relative}.planning-canvas-tick{color:var(--muted);font-size:var(--text-2xs);font-variant-numeric:var(--font-numeric);position:absolute;inset-block-start:var(--tick-offset);inset-inline-start:var(--space-8);transform:translateY(-50%)}.planning-canvas-tracks{grid-template-columns:repeat(var(--pc-days,2), minmax(10.5rem, 1fr));display:grid}.planning-canvas-day{border-right:var(--border-width-hairline) solid var(--border-light)}.planning-canvas-day:last-child{border-right:0}.planning-canvas-day-head{gap:var(--space-2);padding:var(--space-8) var(--space-10);border-bottom:var(--border-width-hairline) solid var(--border);background:var(--surface-subtle);flex-direction:column;block-size:3.25rem;display:flex}.planning-canvas-day-head strong{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.planning-canvas-track{block-size:34rem;position:relative}.planning-canvas-hourline{border-top:var(--border-width-hairline) solid var(--border-light);position:absolute;inset-block-start:var(--tick-offset);inset-inline:0}.planning-canvas-blocks{margin:0;padding:0;list-style:none;position:absolute;inset:0}.planning-canvas-slot{block-size:var(--block-height);inset-block-start:var(--block-top);inset-inline:var(--space-2);position:absolute}.planning-canvas-block{gap:var(--space-4);block-size:100%;inline-size:100%;padding:var(--space-6) var(--space-8);border:var(--border-width-hairline) solid var(--border-accent-subtle);border-left:var(--border-width-rail) solid var(--brand-700);border-radius:var(--radius-sm);background:var(--brand-50);color:var(--ink);text-align:left;font-size:var(--text-2xs);line-height:var(--leading-snug);touch-action:none;cursor:grab;transition:box-shadow var(--duration-fast) var(--ease-out);flex-direction:column;display:flex;overflow:hidden}.planning-canvas-block:active{cursor:grabbing}.planning-canvas-block:hover{box-shadow:var(--raise-sm)}.planning-canvas-block[data-selected=true]{outline:var(--border-width-thick) solid var(--focus);outline-offset:1px;box-shadow:var(--elevation-1)}.planning-canvas-block[data-moved=true]{border-style:dashed;border-color:var(--brand-700)}.planning-canvas-block[data-hard=true]{border-left-color:var(--red)}.pc-block-head{justify-content:space-between;gap:var(--space-6);align-items:baseline;display:flex}.pc-block-course{font-weight:var(--weight-semibold);font-size:var(--text-xs)}.pc-block-time{color:var(--ink-soft);font-variant-numeric:var(--font-numeric);white-space:nowrap}.pc-block-meta{align-items:center;gap:var(--space-4) var(--space-8);color:var(--ink-soft);flex-wrap:wrap;display:flex}.pc-block-tag{border:var(--border-width-hairline) dashed var(--brand-700);border-radius:var(--radius-xs);padding:0 var(--space-4);color:var(--brand-700);font-weight:var(--weight-semibold);align-items:center;display:inline-flex}.pc-block-tag-hard{border-style:solid;border-color:var(--red);color:var(--red)}.planning-canvas-quality-line{align-items:center;gap:var(--space-6);margin:0 0 var(--space-12);color:var(--ink-soft);font-size:var(--text-xs);font-variant-numeric:var(--font-numeric);flex-wrap:wrap;display:flex}.planning-canvas-grid-guide{border-top:var(--border-width-hairline) dashed var(--border);pointer-events:none;position:absolute;inset-block-start:var(--tick-offset);inset-inline:0}.planning-canvas-slot-band{block-size:var(--block-height);inset-block-start:var(--block-top);inset-inline:var(--space-2);border-left:var(--border-width-accent) solid transparent;border-radius:var(--radius-sm);pointer-events:none;position:absolute}.pc-band-safe{background:var(--status-success-soft);border-left-color:var(--status-success)}.pc-band-tradeoff{background:var(--status-warning-soft);border-left-color:var(--status-warning)}.pc-band-collision{background:var(--status-danger-soft);border-left-color:var(--status-danger)}.pc-slot-guidance{margin-bottom:var(--space-6)}.pc-slot-guidance p{color:var(--ink-soft);font-size:var(--text-xs);margin:0}.planning-canvas-aside{top:var(--space-12);border:var(--border-width-hairline) solid var(--border);border-radius:var(--radius-md);padding:var(--space-12) var(--space-14);background:var(--surface);position:sticky}.pc-placement-compare{align-items:center;gap:var(--space-8);margin-bottom:var(--space-12);border-radius:var(--radius-md);padding:var(--space-10);background:var(--brand-50);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);display:grid}.pc-placement-compare>div{gap:var(--space-2);display:grid}.pc-placement-compare>div:last-child{text-align:right}.pc-placement-compare span{color:var(--muted);font-size:var(--text-3xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase}.pc-placement-compare strong{font-size:var(--text-xs);font-variant-numeric:var(--font-numeric)}.planning-canvas-aside h3{margin:0 0 var(--space-8);color:var(--ink);font-size:var(--text-md);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-normal);text-transform:none}.planning-canvas-aside h4{margin:var(--space-12) 0 var(--space-6);color:var(--muted);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase}.pc-empty-aside p{color:var(--ink-soft);font-size:var(--text-sm);margin:0}.pc-facts{margin:0 0 var(--space-12);gap:var(--space-6);font-size:var(--text-xs);display:grid}.pc-facts>div{justify-content:space-between;gap:var(--space-10);display:flex}.pc-facts dt{color:var(--muted)}.pc-facts dd{text-align:right;font-variant-numeric:var(--font-numeric);margin:0}.pc-move-controls{gap:var(--space-8);margin-bottom:var(--space-6);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.pc-move-button{min-height:var(--control-height);justify-content:center}.pc-findings ul{gap:var(--space-8);margin:0;padding:0;list-style:none;display:grid}.pc-findings li{gap:var(--space-4);font-size:var(--text-xs);color:var(--ink-soft);display:grid}.pc-none{color:var(--muted);font-size:var(--text-xs);margin:0}.planning-canvas-sessionbar{align-items:center;gap:var(--space-8) var(--space-12);margin-top:var(--space-14);border-top:var(--border-width-hairline) solid var(--border);padding-top:var(--space-12);flex-wrap:wrap;display:flex}.planning-canvas-sessionbar small{max-width:56ch}.planning-canvas-records{margin-top:var(--space-12);border-top:var(--border-width-hairline) solid var(--border);padding-top:var(--space-8)}.planning-canvas-records>summary{justify-content:space-between;align-items:center;gap:var(--space-8);min-height:var(--control-height);padding:var(--space-6) var(--space-8);border-radius:var(--radius-sm);color:var(--ink-soft);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;display:flex}.planning-canvas-records>summary>span{align-items:center;gap:var(--space-8);display:inline-flex}@media (prefers-reduced-motion:reduce){.planning-canvas-block,.planning-preview-spinner{transition:none;animation:none}}.planning-canvas:fullscreen{max-width:none;height:100dvh;padding:var(--space-16);background:var(--surface);border:0;border-radius:0;overflow:auto}.planning-canvas:fullscreen .planning-canvas-ruler-track,.planning-canvas:fullscreen .planning-canvas-track{block-size:max(34rem,100dvh - 25rem)}.planning-canvas{container:canvas/inline-size}@container canvas (max-width:720px){.planning-canvas-readout{grid-template-columns:repeat(2,minmax(0,1fr))}.planning-canvas-grid{grid-template-columns:1fr}.planning-canvas-aside{position:static}}
