@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.06d3mdzz5bre_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.11.cyxs5p-0z~.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_da832ead-module__aN_Ytq__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_da832ead-module__aN_Ytq__variable{--font-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0q3udbd2bu5yp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.0gw~uztddq1df.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_31187869-module__YeGXRW__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_31187869-module__YeGXRW__variable{--font-mono:"Geist Mono", "Geist Mono Fallback"}
.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#777;--xy-background-pattern-lines-color-default:#777;--xy-background-pattern-cross-color-default:#777;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#090b10;--bg-elevated:#0d1119;--bg-muted:#111622;--surface:transparent;--surface-strong:#1116206b;--surface-soft:transparent;--text:#edf2ff;--text-muted:#8f9ab3;--text-soft:#657089;--line:#657dad33;--line-strong:#7995d261;--accent:#7ca4ff;--accent-strong:#9ab7ff;--accent-soft:#7ca4ff1f;--success:#55d19a;--error:#ff6e72;--shadow:#0000;--interactive-text:#c4cee6;--interactive-hover-text:#edf2ff;--interactive-hover-bg:#7ca4ff14;--card-hover-bg:#7ca4ff0d;--action-bg:#7ca4ff;--action-hover-bg:#9ab7ff;--action-text:#08111f}html[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f6fa;--bg-elevated:#fff;--bg-muted:#edf1f7;--surface:transparent;--surface-strong:#ffffffb8;--surface-soft:transparent;--text:#11141d;--text-muted:#5d667c;--text-soft:#788198;--line:#333f5b24;--line-strong:#526ebc47;--accent:#496fe0;--accent-strong:#3858b5;--accent-soft:#496fe014;--success:#1f8c5b;--error:#c24a4f;--shadow:#11172500;--interactive-text:#4c5770;--interactive-hover-text:#11141d;--interactive-hover-bg:#244bb814;--card-hover-bg:#244bb80a;--action-bg:#244bb8;--action-hover-bg:#1d3f9d;--action-text:#f7f9ff}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-mono), monospace;text-rendering:optimizelegibility}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}.app-frame{grid-template-rows:auto 1fr auto;gap:24px;max-width:1440px;min-height:100vh;margin:0 auto;padding:20px 24px 28px;display:grid;position:relative}.app-frame-viewer{background:var(--bg);grid-template-rows:1fr;gap:0;max-width:none;padding:0}.upload-progress-shell{z-index:90;pointer-events:none;opacity:0;height:3px;transition:opacity .16s;position:fixed;top:0;left:0;right:0}.upload-progress-shell.is-active{opacity:1}.upload-progress-bar{transform-origin:0;background:var(--accent);width:100%;height:100%;box-shadow:0 0 16px var(--accent);display:block;transform:scaleX(0)}@supports (color:color-mix(in lab, red, red)){.upload-progress-bar{box-shadow:0 0 16px color-mix(in srgb, var(--accent) 55%, transparent)}}.upload-progress-bar{transition:transform .14s}.shell-chrome,.panel,.route-card,.secondary-card,.resource-card,.brand-chip,.nav-link,.theme-button,.account-chip,.ghost-button,.action-button,.google-button,.ghost-link,.status-pill,.attachment-pill,.input,.select,.textarea,.identity-avatar{border:1px solid var(--line);border-radius:0}.shell-chrome,.panel,.route-card,.secondary-card,.resource-card{background:var(--bg-elevated);box-shadow:none}.shell-chrome{justify-content:space-between;align-items:center;gap:16px;min-height:64px;padding:12px 14px;display:flex}.shell-header{z-index:50;background:var(--bg-elevated);will-change:transform;grid-template-columns:minmax(0,1fr) minmax(240px,320px) auto;align-items:center;gap:14px;min-height:78px;padding:10px 14px;transition:transform .18s,background-color .14s,border-color .14s;display:grid;position:sticky;top:0}.footer-chrome{min-height:56px;padding:12px 14px}.shell-row{align-items:center;gap:10px;min-width:0;display:flex}.shell-row-primary{justify-content:flex-start;min-width:0}.shell-inline-title{min-width:0;color:var(--text);font-family:var(--font-mono), monospace;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;margin-left:4px;font-size:.98rem;font-weight:700;line-height:1}.shell-inline-action{letter-spacing:.12em;text-transform:uppercase;flex:none;min-height:40px;padding-inline:14px;font-size:.78rem;font-weight:700}.shell-row-center{justify-content:center;min-width:0;padding-inline:0}.shell-row-secondary{justify-content:flex-end;min-width:0}.shell-row-context{border-top:1px solid var(--line);grid-column:1/-1;justify-content:space-between;min-height:48px;padding-top:6px}.nav-strip-mobile{display:none}.shell-context-title{color:var(--text);font-family:var(--font-mono), monospace;letter-spacing:-.03em;text-transform:uppercase;margin:0;font-size:clamp(1.2rem,2.8vw,1.85rem);font-weight:700;line-height:1}.shell-context-action{letter-spacing:.12em;text-transform:uppercase;flex:none;min-height:48px;padding-inline:18px;font-size:.82rem;font-weight:700}.shell-context-action-icon{flex:none}.brand-chip,.nav-link,.theme-button,.account-chip,.ghost-button,.action-button,.google-button,.ghost-link,.attachment-pill{align-items:center;gap:8px;min-height:40px;padding:0 14px;transition:background-color .14s,border-color .14s,color .14s,transform .14s;display:inline-flex}.brand-chip,.account-chip,.theme-button,.nav-link,.ghost-button,.ghost-link{color:var(--interactive-text);background:0 0}.brand-chip{color:var(--text);font-family:var(--font-mono), monospace;letter-spacing:.16em;text-transform:uppercase;font-size:.84rem;font-weight:700}.brand-mark{object-fit:contain;flex:none;width:18px;height:18px}.shell-path{color:var(--text-soft);font-family:var(--font-mono), monospace;letter-spacing:.08em;font-size:.72rem}.header-path{white-space:nowrap;flex:auto;min-width:0;padding-left:6px}.command-trigger{border:1px solid var(--line);width:min(100%,460px);min-height:44px;color:var(--interactive-text);background:0 0;border-radius:0;justify-content:space-between;align-items:center;gap:16px;padding:0 14px;transition:border-color .14s,background-color .14s,color .14s;display:inline-flex}.command-trigger:hover{border-color:var(--line-strong);background:var(--interactive-hover-bg);color:var(--interactive-hover-text)}.command-trigger-main,.command-trigger-hint{font-family:var(--font-mono), monospace;letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:8px;font-size:.74rem;font-weight:600;display:inline-flex}.command-trigger-hint{color:var(--text-soft);font-size:.68rem}.command-dialog-overlay{z-index:119;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#090b1085;position:fixed;inset:0}.command-dialog{z-index:120;border:1px solid var(--line-strong);background:var(--bg-elevated);border-radius:0;width:min(760px,100vw - 32px);position:fixed;top:14vh;left:50%;transform:translate(-50%)}@supports (color:color-mix(in lab, red, red)){.command-dialog{background:color-mix(in srgb, var(--bg-elevated) 96%, transparent)}}.command-dialog{box-shadow:0 24px 100px #00000047}.command-dialog-shell{gap:0;max-height:min(72vh,720px);display:grid;overflow:hidden}.command-input-row{border-bottom:1px solid var(--line);min-height:58px;color:var(--text-soft);align-items:center;gap:12px;padding:0 16px;display:flex}.command-input{width:100%;color:var(--text);font-family:var(--font-mono), monospace;background:0 0;border:0;outline:0;padding:0;font-size:1rem}.command-input::placeholder{color:var(--text-soft)}.command-close-button{border:1px solid var(--line);width:34px;min-height:34px;color:var(--interactive-text);background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}.command-close-button:hover{border-color:var(--line-strong);background:var(--interactive-hover-bg);color:var(--interactive-hover-text)}.command-list{max-height:min(60vh,640px);overflow:auto}.command-results{display:grid}.command-item{border-bottom:1px solid var(--line);color:var(--text);cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:12px;padding:12px 16px;display:grid}.command-item:last-child{border-bottom:0}.command-item[data-selected=true]{background:var(--interactive-hover-bg)}.command-item-icon{border:1px solid var(--line);width:28px;height:28px;color:var(--accent);place-items:center;display:inline-grid}.command-item-copy{gap:4px;min-width:0;display:grid}.command-item-title,.command-item-kind{font-family:var(--font-mono), monospace;letter-spacing:.1em;text-transform:uppercase;font-size:.76rem;font-weight:700}.command-item-subtitle,.command-item-context{color:var(--text-muted);font-size:.82rem;line-height:1.45}.command-item-kind{color:var(--text-soft);white-space:nowrap}.command-empty{color:var(--text-soft);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;padding:22px 16px;font-size:.76rem}.auth-panel{gap:14px}.auth-panel-compact{gap:10px}.auth-mode-tabs{width:fit-content}.auth-provider-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.auth-provider-grid-compact{grid-template-columns:repeat(2,minmax(0,max-content));justify-content:start}.auth-email-section{gap:10px;display:grid}.auth-email-toggle{min-height:40px;padding-inline:14px}.auth-provider-button{color:#1f1f1f;width:fit-content;max-width:100%;min-height:46px;font-family:var(--font-sans), sans-serif;letter-spacing:0;text-transform:none;background:#fff;border:1px solid #dadce0;border-radius:0;justify-content:flex-start;align-items:center;gap:12px;padding:0 14px;font-size:.9rem;font-weight:500;line-height:1;transition:border-color .14s,background-color .14s,color .14s,box-shadow .14s;display:inline-flex}.auth-provider-button-google{color:#1f1f1f;white-space:nowrap;background:#fff;border:2px solid #c4c7c5;border-radius:999px;justify-self:start;min-height:52px;padding:0 26px 0 20px;font-size:.92rem;font-weight:500}.auth-provider-button-google:hover{color:#1f1f1f;background:#fff;border-color:#aeb3b0;box-shadow:0 1px 2px #3c40432e}.auth-provider-button-google:focus-visible{outline-offset:2px;outline:3px solid #1a73e857}.auth-provider-button:hover{color:#1f1f1f;background:#f8f9fa;border-color:#c7cbd1}.auth-provider-button:focus-visible{outline-offset:2px;outline:2px solid #1a73e8}.auth-provider-button-apple{color:#fff;background:#111;border-color:#111}.auth-provider-button-apple:hover{color:#fff;background:#000;border-color:#000}.auth-provider-button-apple:focus-visible{outline-color:#6ea8fe}.auth-provider-button svg{flex:none}.auth-provider-mark{color:#111;flex:0 0 18px;place-items:center;width:18px;height:18px;display:inline-grid}.auth-provider-button-apple .auth-provider-mark{color:#fff}.auth-provider-mark svg{width:18px;height:18px}.auth-provider-label{white-space:nowrap;align-items:center;display:inline-flex}[data-theme=dark] .auth-provider-button-google{color:#f3f4f6;background:#171717;border-color:#8a8d91}[data-theme=dark] .auth-provider-button-google:hover{color:#f3f4f6;background:#171717;border-color:#a4a7ab;box-shadow:0 1px 2px #00000059}.auth-form-grid{border:1px solid var(--line);background:var(--bg);gap:12px;padding:14px}.auth-panel-compact .auth-provider-button{min-height:38px;padding-inline:12px}.auth-panel-compact .auth-provider-button-google{min-height:42px;padding:0 20px 0 16px}.auth-panel-compact .auth-provider-label{font-size:.84rem}.auth-panel-compact .segment-tab{min-height:38px;padding-inline:12px}.auth-panel-compact .auth-form-grid{gap:10px;padding:12px}.auth-email-header{color:var(--text-muted);font-family:var(--font-sans), sans-serif;align-items:center;gap:8px;font-size:.85rem;font-weight:600;display:inline-flex}.auth-submit-button{width:fit-content}.auth-inline-reset{flex-wrap:wrap;align-items:center;gap:10px;display:inline-flex}.auth-inline-reset-copy{color:var(--text-muted);font-family:var(--font-sans), sans-serif;font-size:.92rem}.auth-action-panel{max-width:560px;margin:8vh auto 0}.nav-strip{flex-wrap:nowrap;align-items:center;gap:6px;display:flex}@media (max-width:1320px){.shell-header{grid-template-columns:minmax(0,1fr) auto}.shell-row-center{grid-column:1/-1;justify-content:stretch}}@media (max-width:640px){.auth-provider-grid{grid-template-columns:1fr}.auth-provider-button{width:100%}.auth-provider-button-google{justify-content:center}.auth-submit-button{width:100%}.auth-inline-reset{flex-direction:column;align-items:stretch}}.nav-link,.theme-button,.ghost-button,.ghost-link,.account-chip,.status-pill,.eyebrow,.field-label{font-family:var(--font-mono), monospace;letter-spacing:.1em;text-transform:uppercase}.nav-link,.theme-button,.account-chip,.ghost-button,.action-button,.google-button,.ghost-link{font-size:.72rem;font-weight:600}.nav-link:hover,.theme-button:hover,.account-chip:hover,.ghost-button:hover,.google-button:hover,.ghost-link:hover{border-color:var(--line-strong);background:var(--interactive-hover-bg);color:var(--interactive-hover-text)}.route-card:hover,.secondary-card:hover,.resource-card:hover{border-color:var(--line-strong);background:var(--card-hover-bg)}.nav-link.is-active,.theme-button.is-active,.action-button{background:var(--action-bg);border-color:var(--action-hover-bg);color:var(--action-text)}.nav-link.is-active:hover,.theme-button.is-active:hover,.action-button:hover{background:var(--action-hover-bg);border-color:var(--action-hover-bg);color:var(--action-text)}.danger-button{color:var(--error);border-color:var(--error)}@supports (color:color-mix(in lab, red, red)){.danger-button{border-color:color-mix(in srgb, var(--error) 40%, var(--line))}}.danger-button:hover{border-color:var(--error)}@supports (color:color-mix(in lab, red, red)){.danger-button:hover{border-color:color-mix(in srgb, var(--error) 55%, var(--line))}}.danger-button:hover{background:var(--error)}@supports (color:color-mix(in lab, red, red)){.danger-button:hover{background:color-mix(in srgb, var(--error) 8%, transparent)}}.danger-button:hover{color:var(--error)}.theme-strip{align-items:center;display:inline-flex}.theme-strip .theme-button+.theme-button{border-left:0}.account-chip{min-width:0;color:var(--text);justify-content:center;align-items:center;line-height:1}.account-theme-tabs{width:fit-content}.shell-content{min-height:0}.shell-content-viewer{min-height:100dvh}.page-grid{grid-template-columns:minmax(0,2.1fr) minmax(320px,.9fr);align-items:start;gap:18px;display:grid}.home-header-row{grid-template-columns:minmax(0,1fr) minmax(280px,420px);align-items:end;gap:18px;display:grid}.course-grid{grid-template-columns:minmax(0,1.65fr) minmax(320px,.95fr)}.files-grid{grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr)}.course-page-layout,.office-hours-layout{gap:16px;display:grid}.library-grid{grid-template-columns:1fr}.panel{gap:18px;min-height:0;padding:18px;display:grid}.panel-muted,.panel-hero{background:var(--bg-elevated)}.side-panel{align-content:start}.eyebrow{color:var(--text-soft);font-size:.68rem;font-weight:700}.page-title{letter-spacing:-.04em;font-size:clamp(2.6rem,8vw,5.5rem);font-weight:700;line-height:.92;font-family:var(--font-mono), monospace;text-transform:uppercase;margin:0}.course-page-title{font-size:clamp(2.35rem,5.8vw,4.1rem)}.account-title{font-size:clamp(1.8rem,4vw,3rem)}.section-title{letter-spacing:.04em;font-size:1rem;font-weight:700;font-family:var(--font-mono), monospace;text-transform:uppercase}.muted-copy,.meta-row{color:var(--text-muted)}.muted-copy{font-size:.92rem;line-height:1.6;font-family:var(--font-mono), monospace}.meta-row{font-size:.82rem;font-family:var(--font-mono), monospace;flex-wrap:wrap;gap:8px 14px;display:flex}.hero-grid,.compact-grid{gap:14px;display:grid}.hero-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.route-card,.secondary-card,.resource-card{box-shadow:none;gap:14px;padding:16px;display:grid;position:relative}.office-hours-post-card-expiring{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.office-hours-post-card-expiring{border-color:color-mix(in srgb, var(--accent) 50%, var(--line))}}.office-hours-post-card-expiring{box-shadow:inset 0 0 0 1px var(--accent)}@supports (color:color-mix(in lab, red, red)){.office-hours-post-card-expiring{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 24%, transparent)}}.office-hours-post-card-review{border-color:var(--error)}@supports (color:color-mix(in lab, red, red)){.office-hours-post-card-review{border-color:color-mix(in srgb, var(--error) 54%, var(--line))}}.office-hours-post-card-review{box-shadow:inset 0 0 0 1px var(--error)}@supports (color:color-mix(in lab, red, red)){.office-hours-post-card-review{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--error) 28%, transparent)}}.route-card{align-content:start;min-height:0}.home-course-card{gap:18px}.home-course-card-primary{gap:18px;width:100%;min-height:0;padding:0;display:grid}.home-course-card-header{align-items:center;gap:10px;display:inline-flex}.home-course-card-code{color:var(--text-soft);font-family:var(--font-mono), monospace;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;font-size:.76rem;font-weight:700}.route-card-header,.resource-card-header,.inline-row,.toolbar-row,.badge-row,.filter-row,.action-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.route-icon{border:1px solid var(--line);width:34px;height:34px;color:var(--accent);background:0 0;place-items:center;display:inline-grid}.route-icon-link{border-color:var(--accent-strong);width:52px;height:52px}@supports (color:color-mix(in lab, red, red)){.route-icon-link{border-color:color-mix(in srgb, var(--accent-strong) 38%, var(--line))}}.route-icon-link{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.route-icon-link{background:color-mix(in srgb, var(--accent) 6%, transparent)}}.route-icon-link{transition:border-color .14s,background-color .14s,color .14s,transform .14s}.route-icon-link:hover,.route-icon-link:focus-visible{border-color:var(--accent-strong);background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.route-icon-link:hover,.route-icon-link:focus-visible{background:color-mix(in srgb, var(--accent) 12%, transparent)}}.route-icon-link:hover,.route-icon-link:focus-visible{color:var(--accent-strong);transform:translateY(-1px)}.route-card-title{letter-spacing:-.03em;font-size:clamp(1.6rem,4vw,2.5rem);font-weight:700;line-height:1;font-family:var(--font-mono), monospace;text-transform:uppercase}.route-card-title-compact{font-size:clamp(1.45rem,3.2vw,2.15rem)}.route-card-primary-link{width:fit-content;color:var(--text);text-decoration:none;transition:color .14s;display:inline-flex}.home-course-card-primary.route-card-primary-link{width:100%;display:grid}.route-card-primary-link:hover,.route-card-primary-link:focus-visible{color:var(--accent-strong)}.route-card-actions{justify-content:flex-start;align-items:center;width:100%;display:flex}.route-card-secondary-action{letter-spacing:.1em;text-transform:uppercase;justify-content:center;width:100%;min-height:42px;padding-inline:14px;font-size:.76rem;font-weight:700}.route-card-secondary-action-prominent{min-height:64px;padding-inline:18px;position:relative;overflow:hidden}.route-card-secondary-action-prominent:after{content:"";border:1px solid var(--accent-strong);position:absolute;inset:4px}@supports (color:color-mix(in lab, red, red)){.route-card-secondary-action-prominent:after{border:1px solid color-mix(in srgb, var(--accent-strong) 28%, transparent)}}.route-card-secondary-action-prominent:after{opacity:.65;pointer-events:none;animation:3.8s linear infinite hours-toggle-orbit}.inline-action{color:var(--text-muted);font-size:.84rem;font-weight:500;font-family:var(--font-mono), monospace;text-transform:lowercase;align-items:center;gap:8px;display:inline-flex}.stack{gap:14px;display:grid}.identity-panel{align-items:center;gap:16px;display:flex}.identity-avatar{background:var(--bg-muted);width:72px;height:72px;color:var(--accent);place-items:center;display:grid;overflow:hidden}.identity-avatar img{object-fit:cover;width:100%;height:100%}.account-chip-avatar{background:var(--bg-muted);width:22px;height:22px;color:var(--text-muted);place-items:center;display:inline-grid;overflow:hidden}.account-chip-avatar img{object-fit:cover;width:100%;height:100%}.badge-row,.filter-row{align-items:center}.content-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.course-hero-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;display:grid}.course-action-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.course-action-grid-single{grid-template-columns:1fr}.course-action-card{align-content:space-between;min-height:180px}.course-action-inline{justify-content:flex-start;align-items:center;gap:14px}.course-action-inline .route-card-title{margin:0}.course-action-card .route-card-title{font-size:clamp(1.8rem,4vw,2.9rem)}.course-action-button{white-space:nowrap;justify-content:flex-start;align-items:center;gap:10px;min-height:52px;padding-inline:12px 16px;display:inline-flex}.course-action-button-icon{width:auto;min-width:0;height:auto;box-shadow:none;color:var(--text-soft);background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.course-action-button .route-icon{background:0 0;border:0;width:auto;min-width:0;height:auto;padding:0}.toolbar-row{align-items:center}.toolbar-row .page-title{font-size:clamp(1.8rem,5vw,3.5rem)}.segment-tabs{border:1px solid var(--line);grid-auto-flow:column;gap:0;display:inline-grid}.segment-tab{border:0;border-right:1px solid var(--line);min-height:42px;color:var(--text-soft);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;background:0 0;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:.78rem;font-weight:700;display:inline-flex}.segment-tab:last-child{border-right:0}.segment-tab[data-state=active],.segment-tab.is-active-manual{background:var(--action-bg);color:var(--action-text)}.segment-tab-count{color:inherit;opacity:.72}.office-hours-compose-panel{gap:10px}.office-hours-compose-form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.office-hours-compose-question,.office-hours-compose-files,.office-hours-compose-tags{grid-column:1/-1}.office-hours-compose-submit,.office-hours-compose-paste{width:fit-content}.office-hours-sign-in-row{max-width:420px}.office-hours-locked-panel{border:1px solid var(--line);background:var(--bg);grid-template-columns:minmax(0,1fr) minmax(320px,420px);align-items:center;gap:12px;padding:10px 14px;display:grid}.office-hours-locked-copy{gap:4px;display:grid}.office-hours-locked-title{color:var(--muted);font-size:.95rem;line-height:1.35}.office-hours-locked-auth{justify-self:end;width:100%;min-width:0;max-width:420px}.office-hours-auth-trigger,.office-hours-auth-trigger-secondary{min-height:36px;padding-inline:12px}.office-hours-auth-trigger{justify-self:end}.office-hours-auth-trigger-secondary{width:fit-content}.private-office-hours-list,.private-office-hours-card{gap:12px;display:grid}.private-office-hours-group{gap:8px;display:grid}.private-office-hours-group-header{align-items:baseline;gap:10px;display:flex}.private-office-hours-group-list{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.private-office-hours-tile{border:1px solid var(--line);background:var(--bg);min-height:72px;color:var(--text);text-align:left;gap:6px;padding:12px 14px;display:grid}.private-office-hours-tile:hover,.private-office-hours-tile:focus-visible{border-color:var(--line-strong);background:var(--interactive-hover-bg);color:var(--interactive-hover-text)}.private-office-hours-tile.state-open{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.private-office-hours-tile.state-open{border-color:color-mix(in srgb, var(--success) 55%, var(--line))}}.private-office-hours-tile.state-open{background:var(--success)}@supports (color:color-mix(in lab, red, red)){.private-office-hours-tile.state-open{background:color-mix(in srgb, var(--success) 10%, var(--bg))}}.private-office-hours-tile-name{min-width:0;font-family:var(--font-mono), monospace;letter-spacing:.06em;text-transform:uppercase;font-size:.82rem;font-weight:700}.private-office-hours-tile-summary{min-width:0;color:var(--text-muted);font-size:.8rem;line-height:1.25}.private-office-hours-tile-delta{color:var(--text-soft);font-family:var(--font-mono), monospace;letter-spacing:.05em;text-transform:uppercase;font-size:.72rem;font-weight:700}.private-office-hours-tile.state-open .private-office-hours-tile-delta{color:var(--success)}@supports (color:color-mix(in lab, red, red)){.private-office-hours-tile.state-open .private-office-hours-tile-delta{color:color-mix(in srgb, var(--success) 72%, var(--text))}}.private-office-hours-meta{gap:6px;display:grid}.private-office-hours-row{min-height:18px;color:var(--text-muted);align-items:center;gap:8px;display:inline-flex}.lineage-route-panel,.lineage-header-panel,.lineage-tree-panel,.lineage-editor-panel{gap:12px}.lineage-shell{gap:14px}.lineage-route-head,.lineage-header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.lineage-route-copy{gap:4px}.lineage-route-status,.lineage-access-pill{flex:none}.lineage-title{font-size:clamp(1.4rem,3vw,2rem)}.lineage-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.lineage-stat-card{grid-template-columns:auto 1fr;align-items:center;gap:12px;min-height:0}.lineage-stat-value{font-size:1.2rem}.lineage-select-stack{min-width:180px}.lineage-workspace-grid{grid-template-columns:minmax(0,1.28fr) minmax(340px,.88fr);gap:14px;display:grid}.lineage-tree-toolbar{flex-wrap:wrap;justify-content:flex-end;gap:10px}.lineage-editor-panel>.stack,.lineage-field{min-width:0}.lineage-status{letter-spacing:.08em;text-transform:uppercase;min-height:28px;padding-inline:10px;font-size:.66rem}.lineage-status-active,.lineage-status-pure{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.lineage-status-active,.lineage-status-pure{border-color:color-mix(in srgb, var(--success) 42%, var(--line))}}.lineage-status-active,.lineage-status-pure{color:var(--success)}@supports (color:color-mix(in lab, red, red)){.lineage-status-active,.lineage-status-pure{color:color-mix(in srgb, var(--success) 76%, var(--text))}}.lineage-status-pending{border-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.lineage-status-pending{border-color:color-mix(in srgb, var(--warning) 44%, var(--line))}}.lineage-status-pending{color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.lineage-status-pending{color:color-mix(in srgb, var(--warning) 74%, var(--text))}}.lineage-status-invalid,.lineage-status-discarded,.lineage-status-not-pure{border-color:var(--error)}@supports (color:color-mix(in lab, red, red)){.lineage-status-invalid,.lineage-status-discarded,.lineage-status-not-pure{border-color:color-mix(in srgb, var(--error) 44%, var(--line))}}.lineage-status-invalid,.lineage-status-discarded,.lineage-status-not-pure{color:var(--error)}@supports (color:color-mix(in lab, red, red)){.lineage-status-invalid,.lineage-status-discarded,.lineage-status-not-pure{color:color-mix(in srgb, var(--error) 74%, var(--text))}}.lineage-image-frame{border:1px solid var(--line);background:var(--bg-muted);place-items:center;min-height:300px;display:grid;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.lineage-image-frame{background:color-mix(in srgb, var(--bg-muted) 55%, transparent)}}.lineage-image-frame img{object-fit:contain;width:100%;height:auto;display:block}.lineage-image-placeholder{color:var(--text-muted);text-align:center;place-items:center;gap:8px;display:grid}.lineage-field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;display:grid}.lineage-editor-actions{flex-wrap:wrap;gap:10px}.lineage-upload-button{position:relative;overflow:hidden}.lineage-hidden-input{opacity:0;cursor:pointer;position:absolute;inset:0}.lineage-empty-state{align-items:center;gap:8px;display:flex}.lineage-flow-shell{border:1px solid var(--line);background:linear-gradient(180deg, var(--bg-muted), var(--bg));height:min(52svh,640px);min-height:420px;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.lineage-flow-shell{background:linear-gradient(180deg, color-mix(in srgb, var(--bg-muted) 72%, transparent), color-mix(in srgb, var(--bg) 82%, transparent))}}.lineage-flow-shell .react-flow{background:0 0}.lineage-flow-shell .react-flow__renderer{cursor:grab}.lineage-flow-shell .react-flow__renderer:active{cursor:grabbing}.lineage-flow-shell .react-flow__pane{cursor:grab}.lineage-flow-shell .react-flow__pane:active{cursor:grabbing}.lineage-flow-shell .react-flow__edge-path{stroke:var(--accent)}@supports (color:color-mix(in lab, red, red)){.lineage-flow-shell .react-flow__edge-path{stroke:color-mix(in srgb, var(--accent) 30%, var(--line))}}.lineage-flow-shell .react-flow__edge-path{stroke-width:1.5px}.lineage-flow-shell .react-flow__edge.selected .react-flow__edge-path{stroke:var(--accent)}@supports (color:color-mix(in lab, red, red)){.lineage-flow-shell .react-flow__edge.selected .react-flow__edge-path{stroke:color-mix(in srgb, var(--accent) 70%, var(--text))}}.lineage-flow-shell .react-flow__controls{border:1px solid var(--line);box-shadow:none;border-radius:0;overflow:hidden}.lineage-flow-shell .react-flow__controls-button{background:var(--bg-elevated);border-bottom-color:var(--line);width:34px;height:34px;color:var(--text-muted)}.lineage-flow-shell .react-flow__controls-button:hover{background:var(--interactive-hover-bg);color:var(--text)}.lineage-flow-shell .react-flow__attribution{display:none}.lineage-flow-background{opacity:.4}.lineage-flow-node{border:1px solid var(--line);background:var(--bg-elevated);grid-template-rows:auto auto 1fr auto;gap:10px;width:280px;min-height:150px;padding:14px;display:grid}@supports (color:color-mix(in lab, red, red)){.lineage-flow-node{background:color-mix(in srgb, var(--bg-elevated) 94%, transparent)}}.lineage-flow-node{box-shadow:none}.lineage-flow-node.is-selected{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.lineage-flow-node.is-selected{border-color:color-mix(in srgb, var(--accent) 62%, var(--line))}}.lineage-flow-node.is-selected{box-shadow:inset 0 0 0 1px var(--accent)}@supports (color:color-mix(in lab, red, red)){.lineage-flow-node.is-selected{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 18%, transparent)}}.lineage-flow-node-top,.lineage-flow-node-meta,.lineage-flow-node-facts,.lineage-flow-node-foot,.lineage-flow-node-notes{min-width:0}.lineage-flow-node-meta{gap:6px 12px;font-size:.72rem}.lineage-flow-node-title{margin-top:4px;font-size:.96rem;line-height:1.28}.lineage-flow-node-facts{color:var(--text-muted);gap:6px 10px;font-size:.74rem}.lineage-flow-node-notes{color:var(--text-soft);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.78rem;line-height:1.42;display:-webkit-box;overflow:hidden}.lineage-flow-node-foot{justify-content:space-between;align-items:center;gap:10px;display:flex}.lineage-flow-node-image-flag{color:var(--text-muted);gap:6px;font-size:.72rem}.lineage-fullscreen-modal{width:min(1400px,100vw - 32px)}.lineage-fullscreen-shell,.lineage-fullscreen-body{min-height:0}.lineage-fullscreen-body .lineage-flow-shell{min-height:min(82svh,82vh)}.lineage-node-modal{width:min(720px,100vw - 32px)}.lineage-node-modal-body{grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:16px;display:grid}.lineage-node-modal-image{min-height:340px}.lineage-node-modal-meta{align-content:start;gap:10px;display:grid}.lineage-dropdowns-modal{width:min(980px,100vw - 32px)}.lineage-dropdowns-modal-body,.lineage-dropdown-category-stack{gap:14px}.lineage-dropdown-create-grid{grid-template-columns:minmax(220px,.8fr) minmax(0,1fr);gap:12px;display:grid}.lineage-dropdown-category-card{gap:12px;display:grid}.lineage-dropdown-category-actions{flex-wrap:wrap;gap:8px}.lineage-dropdown-option-stack{gap:8px}.lineage-dropdown-option-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto;gap:8px;display:grid}.lineage-dropdown-option-create{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.private-office-hours-link{justify-content:space-between;width:100%}.private-office-hours-modal{width:min(640px,100%)}.private-office-hours-modal-body{gap:16px}.private-office-hours-modal-meta{gap:8px;display:grid}.private-office-hours-slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.list-grid{gap:14px;display:grid}.office-hours-board-toolbar{flex-wrap:wrap;align-items:center;gap:12px}.office-hours-board-search{flex:320px;min-width:180px}.office-hours-grid-controls{align-items:center;gap:8px;margin-left:auto;display:inline-flex}.office-hours-post-trigger{min-height:34px;padding-inline:12px}.office-hours-compose-modal{width:min(760px,100%)}.office-hours-compose-actions{justify-content:flex-start}.office-hours-grid-label{border:1px solid var(--line);min-height:34px;color:var(--text-muted);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;padding:0 10px;font-size:.8rem;display:inline-flex}.compact-icon-button{justify-content:center;align-items:center;width:34px;min-width:34px;padding:0;display:inline-flex}.office-hours-post-grid{grid-template-columns:repeat(var(--office-hours-grid-columns,1), minmax(0, 1fr));align-items:start}.office-hours-tag-picker{gap:8px;display:grid}.office-hours-tag-list{flex-wrap:wrap;gap:8px;display:flex}.office-hours-tag-list-static{margin-top:10px}.office-hours-tag-chip{border:1px solid var(--line);background:var(--panel);min-height:30px;color:var(--text-muted);font-family:var(--font-mono), monospace;letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:6px;padding:0 10px;font-size:.72rem;display:inline-flex}.office-hours-tag-chip-static{min-height:26px;padding:0 8px}.office-hours-tag-chip:not(.office-hours-tag-chip-static){cursor:pointer}.office-hours-tag-link{text-decoration:none}.office-hours-tag-combobox{align-items:center;display:flex}.office-hours-tag-input{width:100%}.office-hours-tag-suggestions{flex-wrap:wrap;gap:8px;display:flex}.office-hours-tag-suggestion{border:1px solid var(--line);background:var(--panel);min-height:30px;color:var(--text-muted);font-family:var(--font-mono), monospace;letter-spacing:.06em;text-transform:uppercase;text-align:left;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:.72rem;display:inline-flex}.office-hours-tag-suggestion.is-active,.office-hours-tag-suggestion:hover{background:var(--surface);color:var(--text)}.office-hours-tag-suggestion-main{align-items:center;gap:6px;display:inline-flex}.schedule-title{font-size:1.15rem}.schedule-heading-copy{gap:8px;min-width:0;display:grid}.schedule-toolbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.schedule-panel-action{letter-spacing:.1em;text-transform:uppercase;min-height:38px;padding-inline:14px;font-size:.74rem;font-weight:700}.schedule-panel-action-prominent{letter-spacing:.12em;justify-self:start;min-width:220px;min-height:88px;padding-inline:26px;font-size:.92rem;position:relative;overflow:hidden}.schedule-panel-action-prominent:after{content:"";border:1px solid var(--accent-strong);position:absolute;inset:6px}@supports (color:color-mix(in lab, red, red)){.schedule-panel-action-prominent:after{border:1px solid color-mix(in srgb, var(--accent-strong) 28%, transparent)}}.schedule-panel-action-prominent:after{opacity:.65;pointer-events:none;animation:3.8s linear infinite hours-toggle-orbit}.schedule-view-tabs{width:fit-content}.schedule-note-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.schedule-note-card{min-height:0;color:var(--text-muted);align-content:start;font-size:.84rem;line-height:1.55}.course-links-panel{gap:14px;display:grid}.course-links-priority-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.course-link-card{gap:12px;min-height:0}.course-link-title{line-height:1.3}.course-links-grid{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:start;gap:12px;display:grid}.course-links-section{grid-auto-rows:max-content;align-content:start;gap:12px}.course-links-list{gap:8px;display:grid}.course-link-row{border:1px solid var(--line);background:var(--bg);min-height:46px;color:var(--text);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.course-link-row:hover{background:var(--interactive-hover-bg);color:var(--interactive-hover-text)}.course-calendar-panel{gap:14px;display:grid}.calendar-next-row{gap:12px;display:grid}.calendar-heading-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.calendar-next-actions{flex-wrap:wrap;align-items:stretch;gap:10px;display:flex}.calendar-next-chip{border:1px solid var(--line);background:var(--surface-subtle);flex:240px;gap:6px;min-width:220px;min-height:0;padding:12px 14px;display:grid}.calendar-next-chip-primary{border-color:var(--text)}@supports (color:color-mix(in lab, red, red)){.calendar-next-chip-primary{border-color:color-mix(in srgb, var(--text) 12%, var(--line))}}.calendar-midterm-chip{border-color:var(--accent-green)}@supports (color:color-mix(in lab, red, red)){.calendar-midterm-chip{border-color:color-mix(in srgb, var(--accent-green) 40%, var(--line))}}.calendar-final-chip{border-color:var(--action-bg)}@supports (color:color-mix(in lab, red, red)){.calendar-final-chip{border-color:color-mix(in srgb, var(--action-bg) 28%, var(--line))}}.calendar-now-chip{border:1px solid var(--line);background:var(--surface-subtle);min-height:34px;color:var(--text-soft);font-family:var(--font-mono), monospace;letter-spacing:.06em;text-transform:uppercase;align-items:center;padding:0 12px;font-size:.74rem;font-weight:700;display:inline-flex}.calendar-next-date{color:var(--text-soft);letter-spacing:.06em;text-transform:uppercase;font-size:.74rem;font-weight:700}.calendar-next-topic{color:var(--text);font-size:.84rem;font-weight:700;line-height:1.5}.calendar-next-lecturer{color:var(--text-muted);font-size:.76rem}.calendar-toggle-button{align-self:stretch}.calendar-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.calendar-week{border:1px solid var(--line);background:var(--surface)}.calendar-week.is-current{border-color:var(--accent-green)}@supports (color:color-mix(in lab, red, red)){.calendar-week.is-current{border-color:color-mix(in srgb, var(--accent-green) 58%, var(--line))}}.calendar-week.is-current{background:var(--accent-green)}@supports (color:color-mix(in lab, red, red)){.calendar-week.is-current{background:color-mix(in srgb, var(--accent-green) 8%, var(--surface))}}.calendar-final{border-color:var(--action-bg)}@supports (color:color-mix(in lab, red, red)){.calendar-final{border-color:color-mix(in srgb, var(--action-bg) 28%, var(--line))}}.calendar-week-title{border-bottom:1px solid var(--line);color:var(--text-soft);letter-spacing:.08em;text-transform:uppercase;margin:0;padding:10px 12px;font-size:.76rem;font-weight:800}.calendar-week-list{margin:0;padding:0;list-style:none}.calendar-lecture-row{border-top:1px solid var(--line);gap:8px;padding:12px;display:grid}.calendar-lecture-row:first-child{border-top:0}.calendar-lecture-date{color:var(--text-soft);letter-spacing:.06em;text-transform:uppercase;font-size:.72rem;font-weight:700}.calendar-lecture-topic{color:var(--text);font-size:.84rem;font-weight:700;line-height:1.55}.calendar-lecture-lecturer{color:var(--text-muted);align-items:center;gap:8px;font-size:.76rem;display:inline-flex}.schedule-week-grid{gap:14px;display:grid}.schedule-calendar-panel{gap:14px}.schedule-calendar-scroller{overflow-x:auto}.schedule-calendar-grid{border:1px solid var(--line);grid-template-columns:84px repeat(10,minmax(152px,1fr));min-width:1240px;display:grid}.schedule-calendar-corner,.schedule-calendar-track,.schedule-calendar-week,.schedule-calendar-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.schedule-calendar-corner,.schedule-calendar-track{color:var(--text-soft);background:var(--surface-subtle);justify-content:center;align-items:center;padding:14px 10px;display:flex}.schedule-calendar-week{text-align:left;background:var(--surface);color:var(--text);gap:4px;padding:12px 10px;display:grid}.schedule-calendar-week.is-selected{background:var(--surface-subtle)}.schedule-calendar-week.is-current{box-shadow:inset 0 0 0 1px var(--success)}@supports (color:color-mix(in lab, red, red)){.schedule-calendar-week.is-current{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--success) 58%, transparent)}}.schedule-calendar-week span:last-child{color:var(--text-muted);font-size:.76rem}.schedule-calendar-cell{align-content:start;gap:8px;min-height:156px;padding:10px;display:grid}.schedule-calendar-cell.is-selected-week{background:var(--surface-subtle)}@supports (color:color-mix(in lab, red, red)){.schedule-calendar-cell.is-selected-week{background:color-mix(in srgb, var(--surface-subtle) 62%, transparent)}}.schedule-calendar-item{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text-muted);text-align:left;padding:8px 9px;font-size:.74rem;line-height:1.45;display:block}.schedule-calendar-item:hover,.schedule-calendar-item:focus-visible,.schedule-calendar-item.is-active{color:var(--text);border-color:var(--action-bg);background:var(--action-bg)}@supports (color:color-mix(in lab, red, red)){.schedule-calendar-item:hover,.schedule-calendar-item:focus-visible,.schedule-calendar-item.is-active{background:color-mix(in srgb, var(--action-bg) 12%, var(--surface))}}.schedule-calendar-empty{color:var(--text-soft);font-size:.78rem}.schedule-calendar-detail{gap:12px}.schedule-calendar-detail-text{min-height:52px;color:var(--text-muted);font-size:.94rem;line-height:1.6}.schedule-selector-row{gap:10px;display:grid}.schedule-selector-label{color:var(--text-soft)}.schedule-week-tabs{scrollbar-width:none;grid-auto-columns:minmax(44px,1fr);grid-auto-flow:column;gap:8px;display:grid;overflow-x:auto}.schedule-week-tabs::-webkit-scrollbar{display:none}.schedule-week-tab{justify-content:center;align-items:center;gap:0;min-height:44px;padding:0}.schedule-week-tab.is-current{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.schedule-week-tab.is-current{border-color:color-mix(in srgb, var(--success) 58%, var(--line))}}.schedule-week-tab.is-current{box-shadow:inset 0 0 0 1px var(--success)}@supports (color:color-mix(in lab, red, red)){.schedule-week-tab.is-current{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--success) 42%, transparent)}}.schedule-week-tab.is-current.is-active{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.schedule-week-tab.is-current.is-active{border-color:color-mix(in srgb, var(--success) 64%, var(--action-hover-bg))}}.schedule-week-tab.is-current.is-active{box-shadow:inset 0 0 0 1px var(--success)}@supports (color:color-mix(in lab, red, red)){.schedule-week-tab.is-current.is-active{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--success) 54%, transparent)}}.schedule-week-card{gap:14px;padding-top:14px}.schedule-week-card.is-current{border-top-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.schedule-week-card.is-current{border-top-color:color-mix(in srgb, var(--success) 58%, var(--line))}}.schedule-active-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.schedule-date-row{align-items:center;margin-top:0}.schedule-track-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.schedule-track{gap:10px;min-height:0;display:grid}.schedule-track-list{color:var(--text-muted);gap:8px;margin:0;padding-left:18px;font-size:.84rem;line-height:1.5;display:grid}.mini-list{color:var(--text-muted);line-height:1.55;font-family:var(--font-mono), monospace;gap:10px;margin:0;padding-left:18px;display:grid}.mini-list li::marker{color:var(--accent)}.form-grid,.field-stack{gap:10px;display:grid}.global-search{min-width:0;position:relative}.global-search .search-shell{min-height:74px;padding:0 18px}.global-search .search-input{font-size:1.2rem}.global-search .search-input::placeholder{letter-spacing:.02em}.search-shell{border:1px solid var(--line);min-height:48px;color:var(--interactive-text);font-family:var(--font-mono), monospace;background:0 0;align-items:center;gap:10px;padding:0 14px;display:flex}.library-search-shell{width:100%;max-width:none;min-height:42px}.library-sections,.library-section-block{gap:12px;display:grid}.library-panel{gap:12px;padding-top:12px}.library-toolbar{align-items:end}.library-header-stack{gap:6px;display:grid}.library-toolbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.hours-sort-toggle{border:1px solid var(--line);cursor:pointer;gap:8px;min-height:36px;padding:0 12px;transition:border-color .14s,background-color .14s,color .14s;position:relative;overflow:hidden}.hours-sort-toggle:hover{border-color:var(--line-strong);background:var(--interactive-hover-bg);color:var(--interactive-hover-text)}.hours-sort-toggle:after{content:"";border:1px solid var(--accent-strong);position:absolute;inset:3px}@supports (color:color-mix(in lab, red, red)){.hours-sort-toggle:after{border:1px solid color-mix(in srgb, var(--accent-strong) 28%, transparent)}}.hours-sort-toggle:after{opacity:.65;pointer-events:none;animation:3.8s linear infinite hours-toggle-orbit}.hours-sort-toggle.is-active{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.hours-sort-toggle.is-active{border-color:color-mix(in srgb, var(--success) 45%, var(--line))}}.hours-sort-toggle.is-active{color:var(--success)}.hours-sort-toggle.is-active:after{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.hours-sort-toggle.is-active:after{border-color:color-mix(in srgb, var(--success) 42%, transparent)}}.hours-sort-toggle.is-active:after{opacity:.75}.hours-sort-toggle-icon{justify-content:center;align-items:center;display:inline-flex}@keyframes hours-toggle-orbit{0%{clip-path:inset(0 82% 82% 0)}25%{clip-path:inset(0 0 82% 82%)}50%{clip-path:inset(82% 0 0 82%)}75%{clip-path:inset(82% 82% 0 0)}to{clip-path:inset(0 82% 82% 0)}}.library-list-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.search-shell:focus-within{border-color:var(--line-strong);color:var(--interactive-hover-text)}.search-input{width:100%;color:var(--text);background:0 0;border:0;outline:0;padding:0}.search-input::placeholder{color:var(--text-soft)}.search-results{z-index:20;border:1px solid var(--line);background:var(--bg-elevated);gap:0;max-height:min(480px,65vh);display:grid;position:absolute;top:calc(100% + 10px);left:0;right:0;overflow:auto}.search-result{border-bottom:1px solid var(--line);gap:6px;padding:12px 14px;transition:background-color .14s,color .14s,border-color .14s;display:grid}.search-result:last-child{border-bottom:0}.search-result:hover{background:var(--interactive-hover-bg)}.search-result-title-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.search-result-title{letter-spacing:.03em;font-weight:600;font-family:var(--font-mono), monospace;text-transform:uppercase}.search-result-kind{color:var(--text-soft);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;font-size:.68rem}.search-result-subtitle,.search-result-context{color:var(--text-muted);font-size:.82rem;line-height:1.45;font-family:var(--font-mono), monospace}.facility-card.state-open{border-top-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.facility-card.state-open{border-top-color:color-mix(in srgb, var(--success) 55%, var(--line))}}.facility-card.state-open{background:var(--success)}@supports (color:color-mix(in lab, red, red)){.facility-card.state-open{background:color-mix(in srgb, var(--success) 7%, transparent)}}.facility-card.state-open:before{color:var(--success)}.facility-card.state-closed{border-top-color:var(--error)}@supports (color:color-mix(in lab, red, red)){.facility-card.state-closed{border-top-color:color-mix(in srgb, var(--error) 55%, var(--line))}}.facility-card.state-closed{background:var(--error)}@supports (color:color-mix(in lab, red, red)){.facility-card.state-closed{background:color-mix(in srgb, var(--error) 7%, transparent)}}.facility-card.state-closed:before{color:var(--error)}.facility-card{gap:10px;min-height:0;padding:10px 4%}.facility-card .resource-card-header{align-items:start;gap:10px}.facility-card .section-title{font-size:.88rem;line-height:1.15}.facility-title-link{color:inherit;align-items:center;gap:6px;text-decoration:none;transition:color .14s,opacity .14s;display:inline-flex}.facility-title-link svg{color:var(--text-soft);opacity:.68;transition:color .14s,opacity .14s,transform .14s}.facility-title-link:hover,.facility-title-link:focus-visible{color:var(--accent)}.facility-title-link:hover svg,.facility-title-link:focus-visible svg{color:currentColor;opacity:1;transform:translate(1px)}.facility-title-link:focus-visible{outline:none}.facility-card .meta-row{gap:6px 12px;font-size:.78rem}.facility-card .status-pill{flex:none}.facility-card .action-row{gap:8px}.facility-card .ghost-link{min-height:34px;padding:0 12px}.field-label{color:var(--text-soft);font-size:.64rem;font-weight:700}.input,.select,.textarea{background:var(--bg-elevated);width:100%;color:var(--text);font-family:var(--font-mono), monospace;padding:11px 12px}.input::placeholder,.textarea::placeholder{color:var(--text-soft)}.textarea{resize:vertical;min-height:120px}.file-input{padding:8px 10px}.dropzone-stack{gap:10px;display:grid}.file-dropzone{border:1px dashed var(--line-strong);background:0 0;min-height:110px;padding:14px;transition:border-color .14s,background-color .14s,color .14s;display:grid}.file-dropzone:hover,.file-dropzone:focus-visible,.file-dropzone.is-dragging{border-color:var(--accent-strong);background:var(--interactive-hover-bg)}.file-dropzone:focus-visible{outline:none}.file-dropzone-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.file-dropzone-body{align-items:center;gap:12px;min-height:100%;display:flex}.file-dropzone-icon{border:1px solid var(--line);width:32px;height:32px;color:var(--accent);flex:none;place-items:center;display:inline-grid}.file-dropzone-copy{min-width:0;color:var(--text);font-family:var(--font-mono), monospace;letter-spacing:.05em;text-transform:uppercase;gap:6px;font-size:.82rem;display:grid}.file-dropzone-subtle{color:var(--text-soft);font-size:.7rem}.dropzone-file-list{gap:6px;display:grid}.dropzone-file-row{border:1px solid var(--line);color:var(--text-muted);font-family:var(--font-mono), monospace;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;font-size:.76rem;display:flex}.dropzone-file-actions{align-items:center;gap:8px;display:inline-flex}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent-strong);box-shadow:inset 0 0 0 1px var(--accent-strong);outline:none}.compact-select,.compact-input{min-height:40px}.checkbox-row{align-items:center;gap:8px;font-size:.84rem;display:inline-flex}.checkbox-row input{margin:0}.status-pill{min-height:30px;color:var(--text-muted);background:0 0;align-items:center;padding:0 8px;font-size:.66rem;font-weight:700;display:inline-flex}.status-default{color:var(--text-muted)}.status-success{color:var(--success);border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.status-success{border-color:color-mix(in srgb, var(--success) 45%, var(--line))}}.status-error{color:var(--error);border-color:var(--error)}@supports (color:color-mix(in lab, red, red)){.status-error{border-color:color-mix(in srgb, var(--error) 45%, var(--line))}}.ghost-link{min-height:34px;padding:0 12px}.danger-link{color:var(--error)}.action-button,.google-button{justify-content:center;min-height:42px;padding:0 16px}.google-button{background:var(--bg-muted);color:var(--text)}.google-button-shell{width:100%}.google-button-render{min-height:42px}.google-button-render.is-busy{opacity:.7;pointer-events:none}.google-button-render>div,.google-button-render iframe{width:100%!important}.google-button svg{width:16px;height:16px}.action-button:disabled,.ghost-button:disabled,.google-button:disabled{cursor:default;opacity:.7}.secondary-card{grid-template-columns:auto 1fr;align-items:center}.empty-state{color:var(--text-soft);padding:4px 0;font-size:.9rem}.resource-branch-empty-state{border-left:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line);margin-left:18px;padding:12px 0 12px 20px}.attachment-pill{min-height:34px;color:var(--text-muted)}.attachment-stack{gap:10px;display:grid}.attachment-preview-card{gap:8px;display:grid}.attachment-image-link{border:1px solid var(--line);background:var(--bg-elevated);min-height:180px;display:block;position:relative;overflow:hidden}.attachment-image-link--loading .attachment-image,.attachment-image-link--error .attachment-image{opacity:0}.attachment-image-link--loaded .attachment-image-loading{opacity:0;pointer-events:none}.attachment-image-loading{background:linear-gradient(180deg, var(--bg-elevated), var(--bg-elevated));place-items:end start;display:grid;position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.attachment-image-loading{background:linear-gradient(180deg, color-mix(in srgb, var(--bg-elevated) 78%, transparent), var(--bg-elevated))}}.attachment-image-loading-bar{background:linear-gradient(90deg, transparent 0%, var(--accent) 28%, transparent 64%);background-size:240px 100%;width:100%;height:3px;animation:1.25s linear infinite attachment-image-loading;display:block}.attachment-image-loading-label{color:var(--text-muted);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;padding:0 12px 12px;font-size:12px}.attachment-image{object-fit:contain;background:var(--bg-elevated);width:100%;max-height:420px;transition:opacity .14s;display:block}.attachment-meta-link{width:fit-content;min-height:34px;color:var(--text-muted);font-family:var(--font-mono), monospace;align-items:center;gap:12px;display:inline-flex}@keyframes attachment-image-loading{0%{background-position:-240px 0}to{background-position:240px 0}}.office-document-viewer{gap:16px;min-height:calc(100dvh - 132px);display:grid}.native-pdf-viewer{background:var(--bg);min-height:100dvh}.native-pdf-viewer-frame{background:var(--bg);border:0;width:100%;height:100dvh;display:block}.office-document-toolbar{align-items:start}.office-document-heading{gap:8px;display:grid}.office-document-meta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.office-document-frame-shell{border:1px solid var(--line);background:var(--bg);height:calc(100dvh - 188px);min-height:min(82dvh,960px);padding:16px}.office-document-browser-shell,.office-document-nutrient-shell{height:100%;min-height:0;padding:0;overflow:hidden}.office-document-browser-frame{background:var(--bg);border:0;width:100%;height:100%;display:block}.office-document-browser-shell,.office-document-nutrient-shell{position:relative}.office-document-nutrient-frame{width:100%;height:100%}.office-document-loading{z-index:2;background:var(--bg-elevated);gap:10px;padding:14px 16px 12px;display:grid;position:absolute;top:0;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.office-document-loading{background:color-mix(in srgb, var(--bg-elevated) 94%, transparent)}}.office-document-loading{color:var(--text-soft);font-family:var(--font-mono), monospace;letter-spacing:.06em;text-transform:uppercase;font-size:.72rem;font-weight:700}.office-document-loading-copy{align-items:center;gap:8px;display:inline-flex}.office-document-loading-bar{background:var(--line);width:100%;height:4px;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.office-document-loading-bar{background:color-mix(in srgb, var(--line) 72%, transparent)}}.office-document-loading-bar-fill{background:var(--accent);height:100%;transition:width .18s}.office-document-loading-bar-fill-indeterminate{width:36%;animation:1.2s ease-in-out infinite office-document-progress}@keyframes office-document-progress{0%{transform:translate(-110%)}to{transform:translate(310%)}}.office-document-page-list{gap:18px;display:grid}.office-document-page{gap:10px;display:grid}.office-document-page-label{color:var(--text-soft);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:700}.office-document-page-frame{border:1px solid var(--line);background:var(--bg-elevated);justify-content:center;padding:14px;display:flex;overflow:auto}.office-document-canvas{background:var(--bg);border:0;max-width:100%;height:auto;display:block}.office-document-message{gap:8px;display:grid}.post-title-link{color:inherit}.post-title-link:hover{color:var(--interactive-hover-text)}.office-hours-detail-grid{grid-template-columns:minmax(0,1fr)}.answer-card{border:1px solid var(--line);background:var(--bg);gap:12px;padding:14px;display:grid}.module-list{gap:14px;display:grid}.module-block{border:2px solid var(--line);background:var(--bg-elevated)}.module-header-row{background:var(--bg);grid-template-columns:minmax(0,1fr) auto;align-items:stretch;display:grid}.module-heading{margin:0}.module-toggle{width:100%;min-height:52px;color:var(--text);text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:0 16px;display:flex}.module-toggle-icon{transition:transform .14s}.module-toggle[data-state=open] .module-toggle-icon{transform:rotate(0)}.module-toggle[data-state=closed] .module-toggle-icon{transform:rotate(-90deg)}.module-toggle:hover{color:var(--interactive-hover-text)}.resource-count-pill{margin-left:auto}.module-add-btn{border:0;border-left:2px solid var(--line);width:52px;min-height:52px;color:var(--interactive-text);background:0 0;justify-content:center;align-items:center;display:inline-flex}.module-add-btn:hover{background:var(--interactive-hover-bg);color:var(--interactive-hover-text)}.module-content{background:var(--bg-elevated);gap:10px;padding:12px 14px 14px;display:grid;overflow:hidden}.submodule-block{border:2px solid var(--line);background:var(--bg);margin-left:16px}.submodule-title{letter-spacing:.08em;text-transform:uppercase;margin:0;padding:12px 16px 8px;font-size:.86rem;font-weight:700}.attachment-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.attachment-list-depth-1{padding-left:16px}.attachment-list-depth-2{padding:0 12px 12px 16px}.attachment-item{border:2px solid var(--line);background:var(--bg);transition:border-color .12s,background-color .12s,opacity .12s}.attachment-row-wrap{align-items:stretch;min-height:52px;display:flex}.attachment-row{min-height:52px;color:var(--text);align-items:center;gap:10px;padding:12px 16px;display:flex}.attachment-row-main{flex:auto;min-width:0}.attachment-row:hover{color:var(--interactive-hover-text)}.attachment-row-content{gap:4px;min-width:0;display:grid}.attachment-row-content .meta-row{font-size:.74rem}.attachment-item.is-dragging{opacity:.42}.attachment-item.is-drop-before{border-top-color:var(--success)}.attachment-item.is-drop-after{border-bottom-color:var(--success)}.attachment-icon{color:var(--text-soft);flex:none}.attachment-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.file-drag-handle{width:38px;color:var(--text-soft);opacity:.22;cursor:grab;-webkit-user-select:none;user-select:none;flex:0 0 38px;justify-content:center;align-items:center;display:inline-flex}.attachment-item:hover .file-drag-handle,.attachment-item.is-dragging .file-drag-handle{opacity:.78}.attachment-item.is-dragging .file-drag-handle{cursor:grabbing}.attachment-action-btn,.icon-button{border:1px solid var(--line);width:40px;min-height:40px;color:var(--interactive-text);background:0 0;justify-content:center;align-items:center;display:inline-flex}.attachment-action-btn:hover,.icon-button:hover{border-color:var(--line-strong);background:var(--interactive-hover-bg);color:var(--interactive-hover-text)}.admin-delete-btn{color:var(--error)}.admin-delete-btn:hover{border-color:var(--error)}@supports (color:color-mix(in lab, red, red)){.admin-delete-btn:hover{border-color:color-mix(in srgb, var(--error) 45%, var(--line))}}.admin-delete-btn:hover{background:var(--error)}@supports (color:color-mix(in lab, red, red)){.admin-delete-btn:hover{background:color-mix(in srgb, var(--error) 8%, transparent)}}.admin-delete-btn:hover{color:var(--error)}.resource-edit-form{gap:12px;width:100%;padding:14px 16px;display:grid}.resource-edit-grid,.resource-location-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.resource-edit-span{grid-column:1/-1}.resource-upload-list{gap:8px;display:grid}.resource-upload-item{border:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.resource-upload-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.resource-hint{border:1px solid var(--line);min-height:44px;color:var(--text-soft);align-items:center;padding:0 12px;display:flex}.modal-backdrop{z-index:80;background:var(--bg);place-items:center;padding:24px;display:grid;position:fixed;inset:0}@supports (color:color-mix(in lab, red, red)){.modal-backdrop{background:color-mix(in srgb, var(--bg) 88%, transparent)}}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal-panel{z-index:81;border:1px solid var(--line);background:var(--bg-elevated);width:min(780px,100%);max-height:min(88vh,900px);position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.resource-modal{gap:0;display:grid}.resource-modal-header,.resource-modal-footer{justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.resource-modal-header{border-bottom:1px solid var(--line)}.resource-modal-body{gap:14px;padding:16px;display:grid}.resource-modal-footer{border-top:1px solid var(--line)}.signout-modal{width:min(420px,100%)}.signout-copy{margin:0}.signout-modal-footer{justify-content:flex-end}@media (max-width:1180px){.page-grid,.course-grid,.files-grid{grid-template-columns:1fr}.library-list-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-header-row,.hero-grid,.course-hero-row,.course-action-grid,.compact-grid,.content-columns,.office-hours-compose-form,.schedule-track-grid,.schedule-note-grid,.course-links-priority-grid,.course-links-grid{grid-template-columns:1fr}.calendar-next-actions{flex-direction:column}.schedule-calendar-grid{grid-template-columns:72px repeat(10,minmax(136px,1fr));min-width:1140px}.resource-edit-grid,.resource-location-grid{grid-template-columns:1fr}}@media (max-width:820px){.app-frame{gap:10px;padding:8px 8px 14px}.shell-header{min-height:auto;top:max(0px, env(safe-area-inset-top,0px));grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;padding:8px 10px 10px;display:grid}.shell-header.is-mobile-hidden{transform:translateY(calc(-100% - 10px))}.shell-row{flex-wrap:nowrap;gap:6px;min-width:0}.shell-row-primary{grid-area:1/1;min-width:0}.shell-inline-title{text-overflow:ellipsis;letter-spacing:.08em;flex:auto;min-width:0;margin-left:2px;font-size:.74rem;display:block;overflow:hidden}.shell-inline-action{min-width:38px;min-height:38px;padding-inline:10px;font-size:.68rem}.shell-inline-action span{display:none}.shell-row-secondary{grid-area:1/2;justify-content:flex-end;min-width:0}.shell-row-center{grid-area:2/1/auto/-1;grid-template-columns:auto minmax(0,1fr);justify-content:stretch;align-items:center;gap:8px;min-width:0;display:grid}.shell-row-context{display:none}.command-trigger{gap:10px;width:100%;min-height:38px;padding-inline:12px}.command-dialog{top:calc(env(safe-area-inset-top,0px) + 90px);width:auto;left:8px;right:8px;transform:none}.command-dialog-overlay{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0}.command-dialog-shell{max-height:min(58vh,520px)}.command-input-row{min-height:50px;padding:0 12px}.command-input{font-size:16px}.command-item{grid-template-columns:auto minmax(0,1fr);gap:10px;padding:12px}.command-item-kind{display:none}.header-path{width:100%;padding-left:0}.nav-strip{display:none}.nav-strip-mobile{scrollbar-width:none;align-items:center;gap:6px;min-width:0;display:inline-flex;overflow-x:auto}.nav-strip-mobile::-webkit-scrollbar{display:none}.nav-link,.theme-button,.account-chip,.ghost-button,.action-button,.google-button,.ghost-link{justify-content:center;min-height:38px;padding-inline:8px;font-size:.68rem}.theme-strip{flex:auto}.theme-button{flex:1 1 0}.brand-chip{letter-spacing:.1em;min-height:38px;padding-inline:8px;font-size:.72rem}.brand-mark{width:14px;height:14px}.nav-link{gap:5px;padding-inline:7px;font-size:.64rem}.command-trigger-main{font-size:.7rem}.command-trigger-hint{display:none}.account-chip{flex:0 0 38px;width:38px;min-width:38px;padding:0}.account-chip-label{display:none}.account-chip-avatar{width:18px;height:18px}.page-grid,.stack,.hero-grid,.compact-grid,.library-sections,.library-section-block{gap:10px}.panel,.route-card,.secondary-card,.resource-card{gap:10px;padding:12px}.toolbar-row,.filter-row,.badge-row{flex-direction:column;align-items:stretch}.schedule-toolbar-actions{flex-direction:column;align-items:stretch;width:100%}.schedule-view-tabs,.office-hours-status-tabs{width:100%}.office-hours-board-toolbar{align-items:stretch;gap:8px}.office-hours-board-search{width:100%;min-width:0}.office-hours-grid-controls{justify-content:space-between;width:100%;margin-left:0}.schedule-week-tabs{grid-auto-flow:unset;grid-auto-columns:unset;grid-template-columns:repeat(10,minmax(0,1fr));gap:4px;overflow-x:visible}.schedule-week-tab{letter-spacing:.06em;min-height:36px;font-size:.7rem}.schedule-calendar-detail-text{font-size:.88rem}.segment-tabs{grid-auto-flow:row}.segment-tab{border-right:0;border-bottom:1px solid var(--line);justify-content:space-between}.segment-tab:last-child{border-bottom:0}.library-list-grid,.office-hours-post-grid{grid-template-columns:1fr}.page-title{font-size:clamp(2rem,16vw,4rem)}.course-page-title{font-size:clamp(1.9rem,11vw,3rem)}.route-card-title{font-size:clamp(1.3rem,8vw,1.9rem)}.route-icon-link{width:44px;height:44px}.route-card-secondary-action{justify-content:center;width:100%;min-height:38px;font-size:.68rem}.course-action-button{justify-content:center;width:100%}.calendar-heading-row{flex-direction:column;align-items:stretch}.calendar-now-chip{width:fit-content}.course-link-row{min-height:44px;padding:10px}.office-hours-compose-panel .toolbar-row{gap:14px}.office-hours-compose-panel .filter-row{gap:10px}.private-office-hours-slot-grid,.office-hours-locked-panel{grid-template-columns:1fr}.office-hours-locked-auth,.office-hours-auth-trigger{justify-self:start}.private-office-hours-group-list{grid-template-columns:1fr}.private-office-hours-tile{min-height:64px;padding:10px 12px}.private-office-hours-tile-summary{white-space:normal}.lineage-route-head,.lineage-header{flex-direction:column;align-items:stretch}.lineage-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lineage-workspace-grid{grid-template-columns:1fr}.lineage-flow-shell{height:auto;min-height:60svh}.lineage-node-modal-body,.lineage-dropdown-create-grid,.lineage-dropdown-option-row,.lineage-dropdown-option-create{grid-template-columns:1fr}.lineage-fullscreen-modal,.lineage-node-modal,.lineage-dropdowns-modal{width:100%}.lineage-field-grid{grid-template-columns:1fr}.input,.select,.textarea{min-height:44px}.textarea{min-height:140px}.resource-modal-header,.resource-modal-footer,.resource-modal-body{padding-inline:14px}.resource-modal-footer{background:var(--bg-elevated);position:sticky;bottom:0}.resource-modal-footer>*{flex:1 1 0;justify-content:center}.modal-backdrop{align-items:end;padding:0}.modal-panel{border-bottom:0;border-left:0;border-right:0;width:100%;max-height:min(92svh,92vh);inset:auto 0 0;transform:none}.resource-location-grid,.office-hours-compose-form,.course-hero-row,.page-grid{gap:10px}.dropzone-file-row{grid-template-columns:1fr;gap:4px}}@media (max-width:560px){.shell-header{padding:8px 8px 9px}.brand-chip{min-width:0}.shell-inline-title{font-size:.68rem}.route-card-title{font-size:clamp(1.18rem,8vw,1.6rem)}.route-card-title-compact{font-size:clamp(1.08rem,7vw,1.38rem)}}.field-label-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.markdown-editor{gap:8px}.markdown-toolbar{gap:6px;display:inline-flex}.markdown-tabs{gap:10px;display:grid}.markdown-tabs-header{justify-content:flex-end;align-items:center;display:flex}.markdown-textarea{white-space:pre-wrap;min-height:180px}.markdown-preview{background:var(--bg-elevated);border:1px solid var(--line-soft);min-height:180px;padding:16px}.markdown-body{color:var(--copy-strong);gap:12px;line-height:1.55;display:grid}.markdown-body p,.markdown-body ul,.markdown-body ol,.markdown-body blockquote,.markdown-body pre,.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{margin:0}.markdown-body ul,.markdown-body ol{padding-left:20px}.markdown-body a{color:var(--accent-strong);text-decoration:underline}.markdown-body blockquote{border-left:2px solid var(--line-strong);color:var(--copy-muted);padding-left:12px}.markdown-body code{background:var(--bg-elevated);padding:0 4px}.markdown-body pre{background:var(--bg-elevated);padding:12px;overflow-x:auto}.markdown-body pre code{background:0 0;padding:0}.office-hours-discussion{border-top:1px solid var(--line-soft);gap:14px;margin-top:16px;padding-top:16px;display:grid}.office-hours-discussion-thread{gap:14px;display:grid}.office-hours-discussion-node{border-left:1px solid var(--line-soft);gap:10px;padding-left:14px;display:grid}.office-hours-discussion-meta{color:var(--copy-muted)}.office-hours-discussion-children{gap:14px;margin-left:6px;display:grid}.office-hours-discussion-reply-box{gap:10px;display:grid}
