.editor-shell{--ed-head:calc(var(--register-table) + 1px);--ed-body:var(--register-table);--ed-small:calc(var(--register-table) - 1px);--ed-micro:calc(var(--register-table) - 3px);display:grid;grid-template-rows:auto auto 1fr auto;height:100vh;background:var(--ink-50);color:var(--ink-900);font-family:var(--font-sans)}.editor-shell button,.editor-shell input,.editor-shell select{color:inherit}.editor-shell__top{display:flex;align-items:center;gap:var(--space-4,16px);padding:8px 16px;background:var(--ink-0);border-bottom:1px solid var(--ink-200)}.editor-shell__title{font-size:var(--ed-head);font-weight:600;margin:0;white-space:nowrap}.editor-shell__back{font-size:var(--ed-small);color:var(--brand-700,inherit);text-decoration:none;white-space:nowrap}.editor-shell__back:hover{text-decoration:underline}.editor-shell__toolhint{font-size:var(--ed-small);color:var(--steel-600,#5A6068);background:var(--steel-50,#F0F1F2);border-radius:4px;padding:3px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40ch}.editor-shell__roofform{display:inline-flex;gap:4px;align-items:center}.editor-shell__roofform input,.editor-shell__roofform select{font-size:var(--ed-small);padding:2px 4px;width:auto}.editor-shell__roofform input[type=number]{width:52px}.editor-shell__roofform button{font-size:var(--ed-small);padding:3px 8px}.tool-palette__tool--chatonly{opacity:.45;cursor:not-allowed}.editor-shell__top-right{margin-left:auto;display:flex;gap:8px;align-items:center}.editor-shell__floors{display:flex;gap:2px}.editor-shell__floors button,.editor-shell__top-right>button{border:1px solid var(--ink-200);background:var(--ink-0);border-radius:6px;padding:4px 10px;font:inherit;font-size:var(--ed-small);cursor:pointer}.editor-shell__floors button[aria-pressed=true]{background:var(--steel-500);color:#fff;border-color:var(--steel-500)}.editor-shell__body{display:grid;grid-template-columns:220px 1fr 260px;min-height:0}.editor-shell__canvas{position:relative;min-width:0;min-height:0;background:var(--canvas-sheet)}.editor-shell__canvas--split{display:grid;grid-template-columns:1fr 1fr}.editor-shell__threed{position:relative;min-width:0;min-height:0;border-left:1px solid var(--ink-200);overflow:hidden}.editor-shell__loading{padding:24px;color:var(--ink-500);font-size:var(--ed-body)}.editor-banner{display:flex;align-items:center;gap:12px;padding:8px 16px;font-size:var(--ed-body);border-bottom:1px solid var(--ink-200)}.editor-banner strong{font-weight:600}.editor-banner span{color:var(--ink-600)}.editor-banner button{margin-left:auto;border:1px solid;background:transparent;border-radius:6px;padding:2px 10px;font:inherit;cursor:pointer}.editor-banner button+button{margin-left:4px}.editor-banner--error{background:var(--error-tint);color:var(--error-700)}.editor-banner--conflict{background:var(--warning-tint);color:var(--warning-700)}.editor-banner--info{background:var(--steel-50);color:var(--steel-700)}.editor-offline{padding:6px 16px;border-bottom:1px solid var(--ink-200);background:var(--warning-tint);color:var(--warning-700)}.editor-batchbar,.editor-offline{display:flex;align-items:center;gap:12px;font-size:var(--ed-body)}.editor-batchbar{position:absolute;top:12px;left:50%;transform:translateX(-50%);padding:6px 14px;background:var(--ink-0);color:var(--steel-700);border:1px solid var(--ink-200);border-radius:6px;box-shadow:0 2px 8px rgba(15,23,42,.1);z-index:5}.editor-alternatives{display:flex;align-items:stretch;gap:12px;padding:10px 16px;font-size:var(--ed-body);border-bottom:1px solid var(--ink-200);background:var(--ink-50,#fafafa);overflow-x:auto}.editor-alternatives__note{color:var(--ink-500)}.editor-alternatives__card{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid var(--ink-200);border-radius:6px;background:var(--ink-0);min-width:200px;max-width:240px}.editor-alternatives__thumb svg{width:100%;height:auto;max-height:140px}.editor-alternatives__meta{display:flex;flex-direction:column;gap:2px}.editor-alternatives__meta em{color:var(--ink-500);font-size:var(--ed-small)}.editor-alternatives__score{color:var(--steel-700);font-weight:600}.editor-brief{display:flex;flex-direction:column;gap:10px;padding:10px 16px;font-size:var(--ed-body);border-bottom:1px solid var(--ink-200);background:var(--ink-50,#fafafa)}.editor-brief__error,.editor-brief__note{color:var(--ink-500)}.editor-brief__error{color:var(--error-700)}.editor-brief__fields{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.editor-brief__fields label{display:flex;flex-direction:column;gap:2px;font-size:var(--ed-small);color:var(--ink-500)}.editor-brief__fields input[type=number]{width:64px}.editor-brief__flag{flex-direction:row!important;align-items:center;gap:6px!important}.editor-brief__preview{display:flex;align-items:flex-start;gap:12px;padding:8px;border:1px solid var(--ink-200);border-radius:6px;background:var(--ink-0)}.editor-brief__thumb{flex:0 0 220px}.editor-brief__thumb svg{width:100%;height:auto;max-height:160px}.editor-brief__consequence{display:flex;flex-direction:column;gap:4px}.editor-brief__refusal{color:var(--warning-700)}.editor-history{display:flex;align-items:center;gap:12px;padding:8px 16px;font-size:var(--ed-body);border-bottom:1px solid var(--ink-200);background:var(--ink-50,#fafafa)}.editor-history input[type=range]{flex:1 1 auto;min-width:120px;max-width:420px}.editor-history__caption{color:var(--ink-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.editor-canvas{position:relative;width:100%;height:100%;overflow:hidden}.editor-canvas__svg{display:block;-webkit-user-select:none;-moz-user-select:none;user-select:none}.editor-canvas__empty{padding:32px;color:var(--ink-500);font-size:var(--ed-body)}.editor-room{fill:var(--ink-0);stroke:var(--ink-300);stroke-width:1}.editor-room--selected{fill:var(--steel-50);stroke:var(--canvas-selection);stroke-width:2}.editor-room--violating{fill:var(--error-tint);stroke:var(--canvas-violation);stroke-width:2}.editor-room--multi{fill:var(--steel-50);stroke:var(--canvas-selection);stroke-width:2;stroke-dasharray:6 3}.editor-room--diff{stroke:var(--canvas-changed);stroke-width:2;stroke-dasharray:3 3}.editor-room__label{font-size:11px;font-weight:600;fill:var(--ink-800);pointer-events:none}.editor-room__area{font-size:10px;fill:var(--ink-500);pointer-events:none}.editor-marquee{fill:rgba(37,99,235,.08);stroke:var(--canvas-selection);stroke-width:1;stroke-dasharray:4 3;pointer-events:none}.editor-copilot{flex-direction:column;padding:10px 16px;font-size:var(--ed-body);border-bottom:1px solid var(--ink-200);background:var(--ink-50,#fafafa)}.editor-copilot,.editor-copilot__ask{display:flex;gap:8px}.editor-copilot__ask input{flex:1 1}.editor-copilot__error{color:var(--error-700)}.editor-copilot__proposal{display:flex;flex-direction:column;gap:6px}.editor-copilot__proposal em{color:var(--ink-500)}.editor-copilot__op{display:flex;gap:8px;align-items:baseline}.editor-copilot__args{color:var(--ink-500);font-size:var(--ed-small);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-copilot__consequence{font-family:IBM Plex Mono,monospace;font-size:var(--ed-small)}.editor-copilot__refusal{display:flex;flex-direction:column;gap:2px;color:var(--warning-700)}.editor-copilot__hint{color:var(--ink-500)}.editor-copilot__actions{display:flex;gap:8px}.editor-copilot__upload{display:flex;gap:6px;align-items:center;color:var(--ink-500);font-size:var(--ed-small);white-space:nowrap}.editor-copilot__upload input{max-width:200px}.editor-pin{pointer-events:none}.editor-pin__bubble{fill:var(--warning-tint);stroke:var(--warning-700);stroke-width:1.5}.editor-pin__count{font-size:10px;font-weight:700;fill:var(--warning-700)}.editor-comments{display:flex;flex-direction:column;gap:10px;padding:10px 16px;font-size:var(--ed-body);border-bottom:1px solid var(--ink-200);background:var(--ink-50,#fafafa);max-height:40vh;overflow-y:auto}.editor-comments__composer{display:flex;gap:8px;align-items:flex-start}.editor-comments__composer textarea{flex:1 1;min-height:40px}.editor-comments__hint{color:var(--ink-500)}.editor-comments__thread{display:flex;flex-direction:column;gap:4px;padding:8px;border:1px solid var(--ink-200);border-radius:6px;background:var(--ink-0)}.editor-comments__thread--resolved{opacity:.65}.editor-comments__thread header{display:flex;gap:8px;align-items:baseline}.editor-comments__thread p{margin:0}.editor-comments__anchor{font-size:var(--ed-small);color:var(--steel-700)}.editor-comments__reply{padding-left:12px;border-left:2px solid var(--ink-200)}.editor-comments__actions{display:flex;gap:6px;align-items:center}.editor-comments__actions input{flex:1 1}.editor-comments__toggle{align-self:flex-start}.editor-peer{pointer-events:none}.editor-peer__halo{fill:none;stroke-width:2.5;stroke-dasharray:5 4;opacity:.85}.editor-peer__halo--wall{stroke-width:5;stroke-linecap:round}.editor-peer__cursor{stroke:var(--ink-0);stroke-width:1}.editor-peer__name{font-size:11px;font-weight:600;paint-order:stroke;stroke:var(--ink-0);stroke-width:3px}.editor-wall{stroke:var(--canvas-linework);stroke-linecap:square}.editor-wall--hover{stroke:var(--steel-400)}.editor-wall--selected{stroke:var(--canvas-selection)}.editor-wall--locked{stroke:var(--ink-400);stroke-dasharray:6 4}.editor-opening__gap{fill:var(--ink-0);stroke:none}.editor-opening__leaf{stroke:var(--canvas-linework);stroke-width:2;stroke-linecap:butt}.editor-opening__swing{fill:none}.editor-opening__glazing,.editor-opening__swing{stroke:var(--canvas-linework);stroke-width:1}.editor-opening__jamb{stroke:var(--canvas-linework);stroke-width:1.5}.editor-opening__threshold{stroke:var(--canvas-linework);stroke-width:.75}.editor-opening__pin{fill:var(--steel-500)}.editor-opening--hover .editor-opening__glazing,.editor-opening--hover .editor-opening__jamb,.editor-opening--hover .editor-opening__leaf,.editor-opening--hover .editor-opening__swing,.editor-opening--hover .editor-opening__threshold{stroke:var(--steel-400)}.editor-opening--selected .editor-opening__glazing,.editor-opening--selected .editor-opening__jamb,.editor-opening--selected .editor-opening__leaf,.editor-opening--selected .editor-opening__swing,.editor-opening--selected .editor-opening__threshold{stroke:var(--canvas-selection)}.editor-opening--selected .editor-opening__leaf{stroke-width:2.5}.editor-opening--selected .editor-opening__swing{stroke-width:1.5}.editor-opening--selected .editor-opening__pin{fill:var(--canvas-selection)}.editor-marker__line{fill:none;stroke:var(--canvas-selection);stroke-width:1.5;stroke-dasharray:14 3 3 3;pointer-events:none}.editor-marker__arrow{stroke:var(--canvas-selection);stroke-width:2;pointer-events:none}.editor-marker__bubble{fill:var(--ink-0);stroke:var(--canvas-selection);stroke-width:1.5;pointer-events:none}.editor-marker__label{font-size:10px;font-weight:700;fill:var(--canvas-selection);pointer-events:none}.editor-marker--selected .editor-marker__arrow,.editor-marker--selected .editor-marker__line{stroke-width:3}.editor-marker__draft{fill:none;stroke:var(--canvas-selection);stroke-width:1.5;stroke-dasharray:4 3;pointer-events:none}.editor-marker__vertex{fill:var(--canvas-selection);pointer-events:none}.editor-clamp__line{stroke:var(--canvas-violation);stroke-width:2;stroke-dasharray:5 3}.editor-clamp__label{font-size:10px;font-weight:600;fill:var(--canvas-violation)}.editor-align__guide{stroke:var(--steel-400);stroke-width:1;stroke-dasharray:3 3}.editor-canvas__readout{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);display:flex;align-items:baseline;gap:8px;background:var(--ink-900);color:var(--ink-0);padding:6px 12px;border-radius:6px;font-size:var(--ed-small);font-family:IBM Plex Mono,monospace;pointer-events:none}.editor-canvas__readout em{font-style:normal;opacity:.7;font-size:var(--ed-micro);text-transform:uppercase}.editor-canvas__readout--tool{bottom:56px;background:var(--steel-700)}.editor-canvas__readout--tool span{opacity:.75;font-size:var(--ed-small)}.editor-canvas__limit{opacity:1!important;border-radius:3px;padding:1px 5px}.editor-canvas__limit--error{background:var(--error-500);color:#fff}.editor-canvas__limit--warning{background:var(--warning-500);color:var(--ink-900)}.editor-canvas__controls{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:4px}.editor-canvas__controls button{width:28px;height:28px;border:1px solid var(--ink-200);background:var(--ink-0);border-radius:6px;cursor:pointer;font:inherit;font-size:var(--ed-small)}.programme-tree{border-right:1px solid var(--ink-200);background:var(--ink-0);overflow-y:auto;padding:12px}.programme-tree__title{text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px}.programme-tree__empty,.programme-tree__title{font-size:var(--ed-small);color:var(--ink-500)}.programme-tree__group{margin-bottom:12px}.programme-tree__group-title{font-size:var(--ed-small);color:var(--ink-500);margin:0 0 4px;display:flex;justify-content:space-between;text-transform:capitalize}.programme-tree ul{list-style:none;margin:0;padding:0}.programme-tree__room{display:flex;justify-content:space-between;gap:8px;width:100%;border:0;background:transparent;text-align:left;padding:4px 6px;border-radius:4px;font:inherit;font-size:var(--ed-small);cursor:pointer}.programme-tree__room:hover{background:var(--ink-100)}.programme-tree__room--selected{background:var(--steel-50);color:var(--steel-700);font-weight:600}.programme-tree__room em{font-style:normal;color:var(--ink-500);font-size:var(--ed-small)}.editor-inspector{border-left:1px solid var(--ink-200);background:var(--ink-0);overflow-y:auto;padding:12px}.editor-inspector__title{font-size:var(--ed-body);margin:0 0 12px}.editor-inspector__empty,.editor-inspector__field,.editor-inspector__hint{font-size:var(--ed-small);color:var(--ink-500)}.editor-inspector__field{display:block;margin-bottom:10px}.editor-inspector__field span{display:block;margin-bottom:3px}.editor-inspector__field input,.editor-inspector__field select{width:100%;padding:5px 8px;border:1px solid var(--ink-200);border-radius:4px;font:inherit;font-size:var(--ed-small);color:var(--ink-900);background:var(--ink-0)}.editor-inspector__facts{display:grid;grid-template-columns:auto 1fr;grid-gap:3px 10px;gap:3px 10px;font-size:var(--ed-small);margin:12px 0}.editor-inspector__facts dt{color:var(--ink-500)}.editor-inspector__facts dd{margin:0;font-family:IBM Plex Mono,monospace;font-size:var(--ed-small)}.editor-inspector__field--row{display:flex;gap:6px;align-items:flex-end}.editor-inspector__field--row .editor-inspector__grow{flex:1 1;min-width:0}.editor-inspector__field--row button{padding:5px 8px;border:1px solid var(--ink-200);background:var(--ink-0);border-radius:4px;font:inherit;font-size:var(--ed-small);cursor:pointer;white-space:nowrap}.editor-inspector__field--row button:disabled{opacity:.5;cursor:default}.editor-inspector__actions{display:flex;gap:6px;margin-top:12px}.editor-inspector__actions button{flex:1 1;padding:5px;border:1px solid var(--ink-200);background:var(--ink-0);border-radius:4px;font:inherit;font-size:var(--ed-small);cursor:pointer}.editor-inspector__check{display:flex;gap:8px;align-items:flex-start;font-size:var(--ed-small);color:var(--ink-600)}.tool-palette{display:flex;gap:12px;align-items:center;overflow-x:auto}.tool-palette__group{display:flex;gap:3px;align-items:center}.tool-palette__group-title{font-size:var(--ed-micro);text-transform:uppercase;color:var(--ink-500);margin:0 4px 0 0;letter-spacing:.05em}.tool-palette__tool{border:1px solid var(--ink-200);background:var(--ink-0);border-radius:5px;padding:3px 8px;font:inherit;font-size:var(--ed-small);cursor:pointer;white-space:nowrap}.tool-palette__tool--active{background:var(--steel-500);color:#fff;border-color:var(--steel-500)}.tool-palette__contract{font-size:var(--ed-micro);color:var(--ink-500);margin:0;white-space:nowrap}.consequence-bar{position:relative;display:flex;align-items:center;gap:24px;padding:8px 16px;background:var(--ink-900);color:var(--ink-0);border-top:2px solid var(--steel-500);font-size:var(--ed-small);--strip-up:#7fd6a0;--strip-down:#f2b8a0;--strip-alert:#f2a69b}@media (prefers-color-scheme:dark){:root:not([data-theme]) .consequence-bar,:root[data-theme=auto] .consequence-bar{--strip-up:#276b46;--strip-down:#a34a24;--strip-alert:#9b3a20}}:root[data-theme=dark] .consequence-bar{--strip-up:#276b46;--strip-down:#a34a24;--strip-alert:#9b3a20}.consequence-bar--rehearsing{border-top-color:var(--warning-500)}.consequence-bar__metric{display:flex;align-items:baseline;gap:6px;border:0;background:transparent;color:inherit;font:inherit;padding:0}.consequence-bar__metric--button{cursor:pointer}.consequence-bar__label{color:var(--ink-300);font-size:var(--ed-micro);text-transform:uppercase;letter-spacing:.05em}.consequence-bar__value{font-weight:600;font-family:IBM Plex Mono,monospace}.consequence-bar__value--error{color:var(--strip-alert)}.consequence-bar__delta{font-size:var(--ed-small);font-family:IBM Plex Mono,monospace}.consequence-bar__delta--up{color:var(--strip-up)}.consequence-bar__delta--down{color:var(--strip-down)}.consequence-bar__preview{margin-left:auto;font-size:var(--ed-micro);text-transform:uppercase;letter-spacing:.08em;color:var(--strip-down);border:1px solid;border-radius:3px;padding:1px 6px}.consequence-popover{position:absolute;bottom:calc(100% + 8px);left:16px;z-index:20;width:460px;max-height:50vh;overflow-y:auto;background:var(--ink-0);color:var(--ink-900);border:1px solid var(--ink-200);border-radius:8px;box-shadow:var(--shadow-3,0 8px 24px rgba(0,0,0,.18));padding:12px}.consequence-popover ul{list-style:none;margin:0;padding:0}.consequence-popover li{display:flex;gap:8px;padding:6px 0;border-bottom:1px solid var(--ink-100);font-size:var(--ed-small)}.consequence-popover li:last-child{border-bottom:0}.consequence-popover__status--pass{color:var(--success-500)}.consequence-popover__status--fail{color:var(--error-500)}.consequence-popover__citation{display:block;font-style:normal;color:var(--steel-600);font-size:var(--ed-small);margin-top:2px}.consequence-popover__measured{display:block;color:var(--ink-500);font-size:var(--ed-small);font-family:IBM Plex Mono,monospace}.consequence-popover__empty{font-size:var(--ed-small);color:var(--ink-500);margin:0}.command-palette__scrim{position:fixed;inset:0;background:rgba(26,25,22,.4);display:grid;place-items:start center;padding-top:12vh;z-index:50}.command-palette{width:min(560px,92vw);background:var(--ink-0);border-radius:10px;box-shadow:var(--shadow-3,0 16px 48px rgba(0,0,0,.3));overflow:hidden}.command-palette__input{width:100%;border:0;border-bottom:1px solid var(--ink-200);padding:14px 16px;font:inherit;font-size:var(--ed-head);outline:none;color:var(--ink-900);background:var(--ink-0)}.command-palette__list{list-style:none;margin:0;padding:4px;max-height:46vh;overflow-y:auto}.command-palette__item{display:flex;justify-content:space-between;gap:12px;width:100%;border:0;background:transparent;text-align:left;padding:8px 12px;border-radius:6px;font:inherit;font-size:var(--ed-body);cursor:pointer;color:var(--ink-900)}.command-palette__item--active{background:var(--steel-50)}.command-palette__item em{font-style:normal;color:var(--ink-500);font-size:var(--ed-small);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:55%}.command-palette__empty{padding:12px;font-size:var(--ed-small);color:var(--ink-500)}@media (max-width:860px){.editor-shell__body{grid-template-columns:1fr}.editor-inspector,.programme-tree{display:none}.editor-shell{height:100dvh;overflow-x:clip}.editor-shell__top{flex-wrap:nowrap;overflow-x:auto}.consequence-bar{overflow-x:auto}}