.cmsl-home-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:16px;align-items:start}@media(max-width:1080px){.cmsl-home-grid{grid-template-columns:1fr}}.vue-flow{position:relative;width:100%;height:100%;overflow:hidden;z-index:0;direction:ltr}.vue-flow__container{position:absolute;height:100%;width:100%;left:0;top:0}.vue-flow__pane{z-index:1}.vue-flow__pane.draggable{cursor:grab}.vue-flow__pane.selection{cursor:pointer}.vue-flow__pane.dragging{cursor:grabbing}.vue-flow__transformationpane{transform-origin:0 0;z-index:2;pointer-events:none}.vue-flow__viewport{z-index:4;overflow:clip}.vue-flow__selection{z-index:6}.vue-flow__edge-labels{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible{outline:none}.vue-flow .vue-flow__edges{pointer-events:none;overflow:visible}.vue-flow__edge-path,.vue-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.vue-flow__edge{pointer-events:visibleStroke;cursor:pointer}.vue-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__edge.animated path.vue-flow__edge-interaction{stroke-dasharray:none;animation:none}.vue-flow__edge.inactive{pointer-events:none}.vue-flow__edge.selected,.vue-flow__edge:focus,.vue-flow__edge:focus-visible{outline:none}.vue-flow__edge.selected .vue-flow__edge-path,.vue-flow__edge:focus .vue-flow__edge-path,.vue-flow__edge:focus-visible .vue-flow__edge-path{stroke:#555}.vue-flow__edge-textwrapper{pointer-events:all}.vue-flow__edge-textbg{fill:#fff}.vue-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__connection{pointer-events:none}.vue-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__connectionline{z-index:1001}.vue-flow__nodes{pointer-events:none;transform-origin:0 0}.vue-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.vue-flow__node.draggable{cursor:grab;pointer-events:all}.vue-flow__node.draggable.dragging{cursor:grabbing}.vue-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.vue-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.vue-flow__nodesselection-rect.dragging{cursor:grabbing}.vue-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px}.vue-flow__handle.connectable{pointer-events:all;cursor:crosshair}.vue-flow__handle-bottom{left:50%;bottom:0;transform:translate(-50%,50%)}.vue-flow__handle-top{left:50%;top:0;transform:translate(-50%,-50%)}.vue-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.vue-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.vue-flow__edgeupdater{cursor:move;pointer-events:all}.vue-flow__panel{position:absolute;z-index:5;margin:15px}.vue-flow__panel.top{top:0}.vue-flow__panel.bottom{bottom:0}.vue-flow__panel.left{left:0}.vue-flow__panel.right{right:0}.vue-flow__panel.center{left:50%;transform:translate(-50%)}@keyframes dashdraw{0%{stroke-dashoffset:10}}.crystal-node__edit{position:absolute;top:6px;right:6px;border:0;background:transparent;cursor:pointer;color:var(--crystal-text-tertiary);opacity:0;transition:opacity .12s ease;padding:3px}.crystal-node:hover .crystal-node__edit{opacity:1}.crystal-node__foot{display:flex;gap:5px;margin-top:5px;align-items:center}.crystal-node--home{box-shadow:inset 0 0 0 1.5px var(--crystal-interactive),var(--crystal-shadow-sm)}.crystal-canvas__toolbar{position:absolute;left:14px;bottom:14px;z-index:10;display:flex;gap:2px;padding:3px;border-radius:var(--crystal-radius-md);background:var(--crystal-surface-raised);box-shadow:inset 0 0 0 1px var(--crystal-border),var(--crystal-shadow-sm)}.crystal-canvas__legend{position:absolute;right:14px;bottom:14px;z-index:10;display:flex;gap:14px;align-items:center;padding:6px 10px;border-radius:var(--crystal-radius-md);background:var(--crystal-surface-raised);box-shadow:inset 0 0 0 1px var(--crystal-border)}.cmsl-items{border:1px dashed var(--crystal-border-subtle, rgba(0,0,0,.15));border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px}.cmsl-editor__preview iframe,.crystal-live iframe{width:100%;height:100%;border:0;background:#fff}.crystal-saved{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--crystal-success)}.cmsl-doc-thumb{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--crystal-warning)}.crystal-assets{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.crystal-asset{padding:0;border:1px solid var(--crystal-border-subtle, rgba(0,0,0,.08));border-radius:10px;overflow:hidden;background:var(--crystal-surface-raised, rgba(255,255,255,.8));cursor:pointer;text-align:left;display:flex;flex-direction:column;transition:box-shadow .15s ease,transform .15s ease}.crystal-asset:hover{transform:translateY(-2px);box-shadow:var(--crystal-shadow-md)}.crystal-asset__thumb{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--crystal-surface-sunken, rgba(240,241,246,.55))}.crystal-asset__thumb img{width:100%;height:100%;object-fit:cover;display:block}.crystal-asset__flag{position:absolute;left:8px;top:8px}.crystal-asset__meta{padding:8px 10px;display:flex;flex-direction:column;gap:3px}.crystal-asset__name{font-size:.82rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crystal-asset__facts{font-family:var(--crystal-font-mono);font-size:.68rem;color:var(--crystal-text-tertiary)}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-500-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-500-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/sora-400-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Sora;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/sora-400-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/sora-500-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Sora;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/sora-500-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/sora-600-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Sora;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/sora-600-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/sora-700-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Sora;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/sora-700-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--crystal-font-sans: "Sora", system-ui, sans-serif;--crystal-font-display: "Sora", system-ui, sans-serif;--crystal-font-mono: "JetBrains Mono", ui-monospace, Menlo, monospace}.h-header{display:flex;align-items:center;justify-content:space-between;background:#101010;height:var(--crystal-header-height, 50px);padding:0 20px;position:relative;z-index:2;font-family:var(--crystal-font-sans)}.h-header__brand{font-family:Fira Sans,sans-serif;font-weight:900;font-size:13px;letter-spacing:.06em;color:#fff;opacity:.62;-webkit-user-select:none;user-select:none}.h-header__right{display:flex;align-items:center;gap:14px}.h-header__locale{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:99px;border:1px solid rgba(255,255,255,.14);color:#ffffffb8;font-size:11px;background:transparent;cursor:pointer;position:relative;min-height:26px}.h-header__locale svg{width:13px;height:13px}.h-header__locale select{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%}.h-header__trio{display:inline-flex;gap:2px;padding:3px;border-radius:99px;border:1px solid rgba(255,255,255,.14)}.h-header__trio button{width:24px;height:24px;border-radius:99px;border:0;display:inline-flex;align-items:center;justify-content:center;background:transparent;color:#ffffff8c;cursor:pointer;transition:background .15s ease,color .15s ease}.h-header__trio button svg{width:13px;height:13px}.h-header__trio button[aria-pressed=true]{background:#ffffff1f;color:#fff}.h-header__trio button:hover{color:#fff}.h-header__wordmark{font-family:Fira Sans,sans-serif;font-weight:900;font-size:14px;letter-spacing:.08em;color:#fff;-webkit-user-select:none;user-select:none}.cmsl-shell{height:100vh;display:flex;flex-direction:column}.cmsl-shell>.crystal-app{flex:1 1 auto;min-height:0}.crystal-app--solo{grid-template-columns:1fr}.crystal-rail__label{letter-spacing:.01em}.cmsl-auth{width:100%;min-height:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(16px,2.5vw,40px);align-items:center;justify-items:center;padding:clamp(20px,3vw,40px);overflow-y:auto}.cmsl-auth .crystal-card{width:100%;max-width:400px}.crystal-canvas{position:relative;overflow:hidden;background-color:#f0f1f6cc;background-image:radial-gradient(rgba(38,34,28,.1) 1px,transparent 1px);background-size:22px 22px;box-shadow:inset 0 0 0 1px var(--crystal-border);border-radius:var(--crystal-radius-lg)}[data-crystal-theme=dark] .crystal-canvas{background-color:#0a0a0e80;background-image:radial-gradient(rgba(255,255,255,.08) 1px,transparent 1px)}.cmsl-shell{height:100vh;background:var(--crystal-canvas);color:var(--crystal-text-primary);display:flex;flex-direction:column}.cmsl-main{flex:1;min-width:0;padding:20px 24px;box-sizing:border-box;overflow-y:auto}.h-header{display:flex;align-items:center;justify-content:space-between;background:#101010;height:50px;padding:0 25px;position:relative;z-index:2}.h-header__logo{width:150px;height:100%;display:flex;align-items:center}.h-header__logo img{max-width:100%;height:auto}.h-header__right{display:flex;align-items:center;gap:16px}.h-header__software-title{color:#fff;font-size:16px;line-height:1;text-transform:uppercase;font-family:Fira Sans,sans-serif;font-weight:900;letter-spacing:.8px}.h-header__theme{display:flex;gap:6px}.h-header__theme button{min-height:30px;padding:4px 10px;border-radius:99px;border:1px solid #3a3a3a;background:transparent;color:#cfcfcf;font:600 12px Fira Sans,sans-serif;letter-spacing:.4px;cursor:pointer;text-transform:uppercase;transition:background .15s ease,color .15s ease,border-color .15s ease}.h-header__theme button[aria-pressed=true]{background:#fff;color:#101010;border-color:#fff}@media(hover:hover){.h-header__theme button:hover{border-color:#8a8a8a}}.cmsl-section-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:4px}.cmsl-section-head__icon{width:38px;height:38px;border-radius:11px;flex:none;display:flex;align-items:center;justify-content:center;background:var(--crystal-surface-raised, rgba(255,255,255,.82));border:1px solid var(--crystal-border-subtle, rgba(0,0,0,.07));color:var(--crystal-interactive)}.cmsl-section-head__titles{flex:1;min-width:200px}.cmsl-section-head__titles h1{margin:0}.cmsl-section-head__sub{margin:2px 0 0;color:var(--crystal-text-secondary);font-size:.9rem}.cmsl-section-head__actions{display:flex;gap:8px;align-items:center}.cmsl-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.cmsl-stat{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;background:var(--crystal-surface-raised, rgba(255,255,255,.82));border:1px solid var(--crystal-border-subtle, rgba(0,0,0,.07))}.cmsl-stat__icon{color:var(--crystal-interactive);flex:none}.cmsl-stat__value{font:700 1.45rem/1.1 var(--crystal-font-display, inherit)}.cmsl-stat__label{color:var(--crystal-text-secondary);font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.crystal-table td,.crystal-table th{padding-top:8px;padding-bottom:8px}.cmsl-row-actions{opacity:0;transition:opacity .12s ease}@media(hover:hover){tr:hover .cmsl-row-actions{opacity:1}}.cmsl-row-actions{text-align:right;white-space:nowrap}.cmsl-path-child{padding-left:22px;position:relative}.cmsl-path-child:before{content:"";position:absolute;left:8px;top:50%;width:8px;height:1.5px;background:var(--crystal-text-tertiary)}.cmsl-flow-wrap{background-image:radial-gradient(var(--crystal-border-subtle, rgba(0,0,0,.14)) 1px,transparent 1px);background-size:22px 22px}.cmsl-node{min-width:200px;font-size:.92rem}.cmsl-node__path{font-size:.68rem;color:var(--crystal-text-tertiary);font-family:var(--crystal-font-mono)}.cmsl-node__edit{opacity:0;transition:opacity .12s ease}@media(hover:hover){.cmsl-node:hover .cmsl-node__edit{opacity:1}}[data-cmsl-spectral=on] .h-header{border-bottom:2px solid transparent;border-image:linear-gradient(90deg,#8b5cf6,#6366f1,#06b6d4,#10b981) 1}[data-cmsl-spectral=on] .h-header__software-title,[data-cmsl-spectral=on] .crystal-headline--section{background:linear-gradient(135deg,#8b5cf6,#6366f1 25%,#06b6d4 55%,#f43f5e);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}[data-cmsl-spectral=on] .crystal-card--elevated,[data-cmsl-spectral=on] .crystal-card--interactive{box-shadow:var(--crystal-shadow-spectrum)}[data-cmsl-spectral=on] .crystal-btn--primary{background:linear-gradient(135deg,#6d28d9,#4f46e5 60%,#0e7490);border-color:transparent;color:#fff}@media(hover:hover){[data-cmsl-spectral=on] .crystal-btn--primary:hover{background:linear-gradient(135deg,#5b21b6,#4338ca 60%,#155e75)}}[data-cmsl-spectral=on] .crystal-badge__dot{background:linear-gradient(135deg,#8b5cf6,#06b6d4)}[data-cmsl-spectral=on] :focus-visible{outline:3px solid rgba(139,92,246,.55);outline-offset:2px}@media(prefers-reduced-motion:no-preference){[data-cmsl-spectral=on] .h-header__software-title,[data-cmsl-spectral=on] .crystal-headline--section{background-size:200% 100%;animation:cmsl-shimmer 6s ease-in-out infinite}@keyframes cmsl-shimmer{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}}
