@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url("./media/fa-solid-900-OJHVZ65I.woff2") format("woff2")}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url("./media/fa-brands-400-NQZ7WI26.woff2") format("woff2")}.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-regular,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-brands:before,.fa-regular:before,.fa-solid:before,.fa:before,.fab:before,.far:before,.fas:before{content:var(--fa)}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{animation-name:fa-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{animation-name:fa-beat-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-name:fa-shake;animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{animation-name:fa-spin;animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,steps(8))}@media(prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{animation-delay:-1ms;animation-duration:1ms;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0)}}@keyframes fa-spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}.fa-brands,.fab{font-weight:400}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}.fa-solid,.fas{font-weight:900}.fa-trash-alt,.fa-trash-can{--fa:"\f2ed"}.fa-file-alt,.fa-file-lines,.fa-file-text{--fa:"\f15c"}.fa-wave-square{--fa:"\f83e"}.fa-right-from-bracket,.fa-sign-out-alt{--fa:"\f2f5"}.fa-laptop{--fa:"\f109"}.fa-user-check{--fa:"\f4fc"}.fa-archive,.fa-box-archive{--fa:"\f187"}.fa-tablet-alt,.fa-tablet-screen-button{--fa:"\f3fa"}.fa-cloud{--fa:"\f0c2"}.fa-table{--fa:"\f0ce"}.fa-laptop-code{--fa:"\f5fc"}.fa-bars,.fa-navicon{--fa:"\f0c9"}.fa-arrow-right-from-bracket,.fa-sign-out{--fa:"\f08b"}.fa-sitemap{--fa:"\f0e8"}.fa-memory{--fa:"\f538"}.fa-flag{--fa:"\f024"}.fa-compress{--fa:"\f066"}.fa-list,.fa-list-squares{--fa:"\f03a"}.fa-lock{--fa:"\f023"}.fa-share-alt,.fa-share-nodes{--fa:"\f1e0"}.fa-plug{--fa:"\f1e6"}.fa-bullseye{--fa:"\f140"}.fa-folder,.fa-folder-blank{--fa:"\f07b"}.fa-user{--fa:"\f007"}.fa-key{--fa:"\f084"}.fa-bullhorn{--fa:"\f0a1"}.fa-globe{--fa:"\f0ac"}.fa-repeat{--fa:"\f363"}.fa-box{--fa:"\f466"}.fa-shapes,.fa-triangle-circle-square{--fa:"\f61f"}.fa-random,.fa-shuffle{--fa:"\f074"}.fa-person-running,.fa-running{--fa:"\f70c"}.fa-arrow-right-to-bracket,.fa-sign-in{--fa:"\f090"}.fa-server{--fa:"\f233"}.fa-right-to-bracket,.fa-sign-in-alt{--fa:"\f2f6"}.fa-microchip{--fa:"\f2db"}.fa-crown{--fa:"\f521"}.fa-map-location-dot,.fa-map-marked-alt{--fa:"\f5a0"}.fa-rotate-back,.fa-rotate-backward,.fa-rotate-left,.fa-undo-alt{--fa:"\f2ea"}.fa-gem{--fa:"\f3a5"}.fa-circle-play,.fa-play-circle{--fa:"\f144"}.fa-circle-stop,.fa-stop-circle{--fa:"\f28d"}.fa-compass-drafting,.fa-drafting-compass{--fa:"\f568"}.fa-box-open{--fa:"\f49e"}.fa-shield-alt,.fa-shield-halved{--fa:"\f3ed"}.fa-layer-group{--fa:"\f5fd"}.fa-list-1-2,.fa-list-numeric,.fa-list-ol{--fa:"\f0cb"}.fa-filter{--fa:"\f0b0"}.fa-arrows-alt,.fa-up-down-left-right{--fa:"\f0b2"}.fa-puzzle-piece{--fa:"\f12e"}.fa-code{--fa:"\f121"}.fa-cubes-stacked{--fa:"\e4e6"}.fa-leaf{--fa:"\f06c"}.fa-chart-line,.fa-line-chart{--fa:"\f201"}.fa-cube{--fa:"\f1b2"}.fa-mobile-alt,.fa-mobile-screen-button{--fa:"\f3cd"}.fa-code-branch{--fa:"\f126"}.fa-route{--fa:"\f4d7"}.fa-terminal{--fa:"\f120"}.fa-file-code{--fa:"\f1c9"}.fa-window-maximize{--fa:"\f2d0"}.fa-diamond{--fa:"\f219"}.fa-cubes{--fa:"\f1b3"}.fa-table-cells,.fa-th{--fa:"\f00a"}.fa-table-cells-large,.fa-th-large{--fa:"\f009"}.fa-tag{--fa:"\f02b"}.fa-circle-nodes{--fa:"\e4e2"}.fa-hard-drive,.fa-hdd{--fa:"\f0a0"}.fa-clock,.fa-clock-four{--fa:"\f017"}.fa-timeline{--fa:"\e29c"}.fa-sliders,.fa-sliders-h{--fa:"\f1de"}.fa-folder-tree{--fa:"\f802"}.fa-network-wired{--fa:"\f6ff"}.fa-ellipsis-v,.fa-ellipsis-vertical{--fa:"\f142"}.fa-bolt,.fa-zap{--fa:"\f0e7"}.fa-sun{--fa:"\f185"}.fa-arrow-down-short-wide,.fa-sort-amount-desc,.fa-sort-amount-down-alt{--fa:"\f884"}.fa-user-lock{--fa:"\f502"}.fa-location-dot,.fa-map-marker-alt{--fa:"\f3c5"}.fa-droplet,.fa-tint{--fa:"\f043"}.fa-earth,.fa-earth-america,.fa-earth-americas,.fa-globe-americas{--fa:"\f57d"}.fa-dharmachakra{--fa:"\f655"}.fa-boxes,.fa-boxes-alt,.fa-boxes-stacked{--fa:"\f468"}.fa-chain,.fa-link{--fa:"\f0c1"}.fa-magnifying-glass,.fa-search{--fa:"\f002"}.fa-list-check,.fa-tasks{--fa:"\f0ae"}.fa-user-shield{--fa:"\f505"}.fa-diagram-project,.fa-project-diagram{--fa:"\f542"}.fa-expand{--fa:"\f065"}.fa-close,.fa-multiply,.fa-remove,.fa-times,.fa-xmark{--fa:"\f00d"}.fa-map{--fa:"\f279"}.fa-rocket{--fa:"\f135"}.fa-chevron-left{--fa:"\f053"}.fa-display{--fa:"\e163"}.fa-rotate,.fa-sync-alt{--fa:"\f2f1"}.fa-cogs,.fa-gears{--fa:"\f085"}.fa-building{--fa:"\f1ad"}.fa-shield,.fa-shield-blank{--fa:"\f132"}.fa-moon{--fa:"\f186"}.fa-chart-column{--fa:"\e0e3"}.fa-shoe-prints{--fa:"\f54b"}.fa-balance-scale,.fa-scale-balanced{--fa:"\f24e"}.fa-desktop,.fa-desktop-alt{--fa:"\f390"}.fa-briefcase{--fa:"\f0b1"}.fa-database{--fa:"\f1c0"}.fa-exchange-alt,.fa-right-left{--fa:"\f362"}.fa-brain{--fa:"\f5dc"}.fa-id-card-alt,.fa-id-card-clip{--fa:"\f47f"}.fa-aws{--fa:"\f375"}.fa-microsoft{--fa:"\f3ca"}.fa-java{--fa:"\f4e4"}.fa-markdown{--fa:"\f60f"}.fa-google{--fa:"\f1a0"}.fa-git-alt{--fa:"\f841"}.fa-golang{--fa:"\e40f"}.fa-docker{--fa:"\f395"}.fa-rust{--fa:"\e07a"}.fa-python{--fa:"\f3e2"}.fa-js{--fa:"\f3b8"}.fa-node-js{--fa:"\f3d3"}:root{color:#111827;background:#f7f4ed;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh;height:100vh;height:100dvh;overflow:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-rows:64px minmax(0,1fr);min-height:100vh;min-height:100dvh;height:100vh;height:100dvh;overflow:hidden}.topbar{display:grid;grid-template-columns:260px minmax(180px,1fr) auto;align-items:center;gap:16px;padding:0 18px;border-bottom:2px solid #111827;background:#fffaf0;position:relative;z-index:12;overflow:visible}.brand-lockup{display:flex;align-items:center;gap:12px;grid-column:1}.brand-logo{width:36px;height:36px;border-radius:10px;flex:0 0 auto}.brand-lockup strong{display:block;font-family:Georgia,Times New Roman,serif;font-size:22px}.brand-lockup span,.panel-heading small,.file-item span,.muted-copy{color:#6b7280;font-size:12px}.title-input{grid-column:2;width:100%;border:0;border-bottom:2px dashed #111827;background:transparent;color:#111827;font-size:20px;font-weight:700;outline:none;padding:8px 4px}.toolbar{grid-column:3;justify-self:end;display:flex;gap:8px;overflow:visible}.icon-button,.toolbar-action,.primary-action,.danger-action,.secondary-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;border:2px solid #111827;border-radius:7px;background:#fff;color:#111827;box-shadow:2px 2px #111827;transition:transform .14s ease,box-shadow .14s ease,background .14s ease}.icon-button{width:40px}.toolbar-action{padding:0 10px;white-space:nowrap;font-size:12px;font-weight:700}.toolbar-action--lang{min-width:48px;padding-inline:8px;justify-content:center}.toolbar-dropdown{position:relative;z-index:24}.toolbar-dropdown__trigger{list-style:none}.toolbar-dropdown__trigger::-webkit-details-marker{display:none}.toolbar-dropdown[open]>.toolbar-dropdown__trigger{background:#fde68a}.toolbar-dropdown__menu{position:absolute;top:calc(100% + 6px);left:0;z-index:30;min-width:156px;display:grid;gap:6px;padding:8px;border:2px solid #111827;border-radius:8px;background:#fff;box-shadow:3px 3px #111827}.toolbar-dropdown--tutorial .toolbar-dropdown__menu{min-width:250px}.toolbar-dropdown__item{display:inline-flex;align-items:center;justify-content:flex-start;min-height:34px;padding:0 10px;border:2px solid #111827;border-radius:7px;background:#f8fafc;color:#111827;font-size:12px;font-weight:700;white-space:nowrap;box-shadow:2px 2px #111827}.toolbar-dropdown__item:hover{transform:translate(-1px,-1px) rotate(-.2deg);box-shadow:3px 3px #111827}.toolbar-auth-action{min-height:40px;padding:0 12px;max-width:220px}.toolbar-auth-action span{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tutorial-panel{position:absolute;top:86px;right:16px;z-index:335;width:min(440px,calc(100vw - 28px));border:2px solid #111827;border-radius:8px;background:#fffaf0;box-shadow:3px 3px #111827;padding:12px;max-height:calc(100dvh - 112px);overflow:auto}.tutorial-panel__header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.tutorial-panel__header strong{display:block;font-size:14px;line-height:1.2}.tutorial-panel__header small{color:#4b5563;font-size:11px;font-weight:700}.tutorial-panel__close{min-height:34px;padding:0 10px;font-size:12px;font-weight:700;flex-shrink:0}.tutorial-panel__description{margin:10px 0 0;color:#1f2937;font-size:12px;line-height:1.45}.tutorial-panel__progress{margin:10px 0 0;color:#6b7280;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.tutorial-panel__step{margin:8px 0 0;color:#111827;font-size:13px;line-height:1.4;font-weight:700}.tutorial-panel__pending{margin:8px 0 0;color:#7c2d12;font-size:12px;font-weight:700}.tutorial-panel__actions{margin:12px 0 0;display:flex;justify-content:flex-end;gap:8px}.tutorial-panel__actions .primary-action,.tutorial-panel__actions .secondary-action{justify-content:center;min-width:96px}.tutorial-spotlight{position:fixed;z-index:334;border-radius:10px;border:2px solid #f59e0b;box-shadow:0 0 0 9999px #0206178f,0 0 0 4px #f59e0b3d,0 10px 28px #0f172a57;pointer-events:none;animation:tutorial-spotlight-pulse 1.35s ease-in-out infinite}@keyframes tutorial-spotlight-pulse{0%{transform:scale(1)}50%{transform:scale(1.01)}to{transform:scale(1)}}.app-shell--tutorial-lock .topbar,.app-shell--tutorial-lock .workspace{pointer-events:none}.app-shell--tutorial-lock .tutorial-panel,.app-shell--tutorial-lock .tutorial-panel *,.app-shell--tutorial-lock [data-tutorial-active-target=true],.app-shell--tutorial-lock [data-tutorial-active-target=true] *{pointer-events:auto}.icon-button i{font-size:16px;pointer-events:none}.icon-button:hover,.toolbar-action:hover,.primary-action:hover,.danger-action:hover,.secondary-action:hover,.palette-item:hover,.file-item:hover{transform:translate(-1px,-1px) rotate(-.2deg);box-shadow:3px 3px #111827}.primary-action{padding:0 12px;background:#facc15}.primary-action:disabled,.primary-action.is-disabled{cursor:not-allowed;background:#e5e7eb;color:#6b7280;box-shadow:none;transform:none}.danger-action{justify-content:flex-start;padding:0 12px;background:#fee2e2}.secondary-action{justify-content:flex-start;padding:0 12px;background:#dbeafe}.workspace{display:grid;grid-template-columns:minmax(172px,214px) minmax(160px,180px) minmax(0,1fr);width:100%;max-width:100vw;min-height:0;overflow:hidden;position:relative;isolation:isolate}.workspace--left-panels-hidden{grid-template-columns:minmax(0,1fr)}.workspace--left-panels-hidden .sidebar,.workspace--left-panels-hidden .palette{display:none}.auth-screen{display:grid;grid-template-rows:64px minmax(0,1fr);min-height:100vh;min-height:100dvh;background:radial-gradient(circle at 16% 18%,#facc1542 0,#facc1500 44%),radial-gradient(circle at 84% 14%,#3b82f62e 0,#3b82f600 38%),#f7f4ed}.auth-screen__topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 18px;border-bottom:2px solid #111827;background:#fffaf0}.auth-card{align-self:center;justify-self:center;width:min(540px,calc(100vw - 32px));border:2px solid #111827;border-radius:12px;background:#fffef8;box-shadow:6px 6px #111827;padding:30px 26px;display:grid;gap:14px}.auth-kicker{margin:0;letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:800;color:#6b7280}.auth-card h1{margin:0;font-size:clamp(26px,3.3vw,38px);line-height:1.1;font-family:Georgia,Times New Roman,serif}.auth-copy{margin:0;color:#374151}.auth-login-button{justify-content:center;min-height:44px;text-decoration:none}.auth-login-button i{font-size:16px}.sidebar,.palette,.inspector,.mermaid-panel{min-width:0;min-height:0;border-right:2px solid #111827;background:#fffaf0}.sidebar{display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;position:relative;z-index:40}.sidebar-footer{padding:10px 12px 12px;border-top:1px dashed #9ca3af;background:#fffaf0}.palette{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden;position:relative;z-index:40}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px;border-bottom:1px dashed #9ca3af}.panel-heading span{display:block;font-weight:800}.file-list,.palette-list,.property-stack{display:grid;gap:10px;padding:12px 12px 20px;align-content:start}.file-list,.palette-list{max-height:none;min-height:0;overflow-y:auto;overflow-x:hidden}.palette-list{grid-auto-rows:max-content}.file-item-row{display:grid;grid-template-columns:minmax(0,1fr) 34px;align-items:stretch;gap:8px}.file-item,.palette-item{width:100%;border:2px solid #111827;border-radius:7px;background:#fff;color:#111827;box-shadow:2px 2px #111827;text-align:left;transition:transform .14s ease,box-shadow .14s ease,background .14s ease}.file-item{display:grid;gap:4px;padding:10px}.file-item strong,.file-item span{min-width:0;overflow:hidden;overflow-wrap:anywhere;word-break:break-word;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical}.file-item strong{line-height:1.3;-webkit-line-clamp:2}.file-item span{line-height:1.25;-webkit-line-clamp:2}.file-item-row.is-active .file-item{background:#fef3c7}.file-delete-button{width:34px;min-height:100%;border:2px solid #111827;border-radius:7px;background:#fff;color:#dc2626;box-shadow:2px 2px #111827;transition:transform .14s ease,box-shadow .14s ease,background .14s ease}.file-delete-button:hover{transform:translate(-1px,-1px) rotate(-.2deg);box-shadow:3px 3px #111827;background:#fee2e2}.palette-item{display:grid;grid-template-columns:1fr;justify-items:center;align-items:start;align-self:start;gap:6px;padding:8px;overflow:hidden;text-align:center}.palette-group{display:grid;gap:8px;align-content:start}.palette-search{display:block;padding:10px 12px 6px}.palette-search input{width:100%;height:36px;border:2px solid #111827;border-radius:7px;padding:0 10px;background:#fff;color:#111827;font-size:13px;font-weight:600;outline:none}.palette-search input:focus{box-shadow:0 0 0 2px #facc15}.palette-group h3{position:sticky;top:-12px;z-index:1;margin:0;padding:6px 2px;background:#fffaf0;color:#374151;font-size:11px;font-weight:900;text-transform:uppercase}.palette-item__icon{display:inline-flex;align-items:center;justify-content:center;width:54px;min-width:54px;height:54px;--node-icon-size: 54px;--node-icon-font-size: 25px;border:0;border-radius:0;background:transparent;box-shadow:none}.palette-item__label{width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:normal;line-height:1.2}.palette-item b{display:none}.canvas-shell{position:relative;z-index:1;min-width:0;min-height:0;overflow:hidden;contain:paint;background:linear-gradient(rgba(17,24,39,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(17,24,39,.03) 1px,transparent 1px),#f7f4ed;background-size:24px 24px;cursor:grab}.canvas-shell--grabbing,.canvas-shell--grabbing *{cursor:grabbing!important}.workspace-menu-toggle{position:absolute;top:12px;left:12px;z-index:42;width:38px;height:38px;border:2px solid #111827;border-radius:8px;background:#fff;color:#111827;box-shadow:2px 2px #111827;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.workspace-menu-toggle:hover{background:#fef3c7}.workspace-menu-toggle:active{transform:translateY(1px);box-shadow:1px 1px #111827}.canvas-viewport{position:absolute;inset:0;transform-origin:0 0;will-change:transform;contain:layout style}.canvas-marquee{position:absolute;border:2px dashed #2563eb;background:transparent;border-radius:6px;pointer-events:none;z-index:18}.remote-cursor{position:absolute;z-index:220;pointer-events:none;transform:translate(-1px,-1px)}.remote-cursor__pointer{position:absolute;width:0;height:0;border-top:12px solid var(--cursor-color, #f97316);border-right:8px solid transparent;border-left:2px solid transparent;transform:rotate(-20deg);filter:drop-shadow(1px 1px 0 #111827)}.remote-cursor__label{position:absolute;left:10px;top:12px;border:2px solid #111827;border-radius:6px;background:var(--cursor-color, #f97316);color:#111827;font-size:11px;font-weight:800;line-height:1;white-space:nowrap;padding:5px 8px 4px;box-shadow:2px 2px #111827}.architecture-node{position:absolute;width:100%;height:100%;min-width:190px;min-height:92px;padding:12px;border:0;background:transparent;color:var(--node-text-color, #111827);--node-transform: rotate(-.35deg);transform:translate3d(var(--node-x, 0),var(--node-y, 0),0) var(--node-transform);-webkit-user-select:none;user-select:none;touch-action:none;isolation:isolate;overflow:visible;contain:layout style}.architecture-node:before{content:"";position:absolute;z-index:-1;inset:0;border:2px solid #111827;border-radius:8px 7px 9px 6px;background:var(--node-bg, #ffffff);box-shadow:3px 3px #111827}.architecture-node>:not(.resize-control):not(.node-port){position:relative;z-index:1}.app-shell--perf-lite .architecture-node:before{box-shadow:none}.app-shell--perf-lite .architecture-node--container:before{background-image:none}.app-shell--perf-lite .architecture-node--container:after{display:none}.architecture-node--container{min-width:260px;min-height:180px;--node-transform: rotate(-.12deg)}.architecture-node--container:before{border-style:dashed;border-width:2.4px;background-color:var(--node-bg, #ffffff);background-image:linear-gradient(rgba(17,24,39,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(17,24,39,.035) 1px,transparent 1px);background-size:22px 22px;box-shadow:4px 4px #111827b8}.architecture-node--container:after{content:"";position:absolute;inset:36px 12px 12px;border:1px dashed rgba(17,24,39,.18);border-radius:7px;pointer-events:none}.architecture-node--aws:before{border-color:#7c2d12;box-shadow:3px 3px #7c2d12}.architecture-node--code:before{border-style:dashed}.architecture-node--algorithm:before{border-radius:999px}.architecture-node--flow:before{border-style:solid;box-shadow:3px 3px #065f46}.architecture-node--flow-start:before,.architecture-node--flow-end:before,.architecture-node--queue:before,.architecture-node--aws-sqs:before,.architecture-node--algorithm-start:before{border-radius:999px}.architecture-node--flow-decision:before,.architecture-node--algorithm-condition:before{inset:9px 36px;border-radius:5px;transform:rotate(45deg)}.architecture-node--flow-decision,.architecture-node--algorithm-condition{padding-inline:36px;text-align:center}.architecture-node--flow-input:before,.architecture-node--flow-output:before,.architecture-node--flow-data:before{inset-inline:10px;transform:skew(-10deg)}.architecture-node--flow-document:before{border-radius:8px 8px 28px}.architecture-node--flow-start,.architecture-node--flow-end{min-width:170px}.architecture-node--system:before{box-shadow:inset 0 0 0 3px #11182714,3px 3px #111827}.architecture-node--service:before,.architecture-node--compute:before,.architecture-node--aws-ec2:before,.architecture-node--aws-ecs:before,.architecture-node--aws-eks:before,.architecture-node--aws-fargate:before,.architecture-node--code-component:before{border-radius:16px 6px}.architecture-node--api-gateway:before,.architecture-node--aws-api-gateway:before,.architecture-node--aws-internet-gateway:before,.architecture-node--aws-nat-gateway:before,.architecture-node--code-pipeline:before{inset-inline:12px;transform:skew(-12deg)}.architecture-node--load-balancer:before,.architecture-node--aws-alb:before,.architecture-node--aws-nlb:before{clip-path:polygon(18% 0,82% 0,100% 50%,82% 100%,18% 100%,0 50%)}.architecture-node--database:before,.architecture-node--object-storage:before,.architecture-node--block-storage:before,.architecture-node--aws-s3:before,.architecture-node--aws-ebs:before,.architecture-node--aws-efs:before,.architecture-node--aws-rds:before,.architecture-node--aws-aurora:before,.architecture-node--aws-dynamodb:before,.architecture-node--aws-elasticache:before,.architecture-node--aws-redshift:before,.architecture-node--aws-opensearch:before{border-radius:26px 26px 10px 10px/18px 18px 10px 10px;box-shadow:inset 0 13px #ffffff94,inset 0 16px #11182729,3px 3px #111827}.architecture-node--aws-s3:before,.architecture-node--object-storage:before{background-image:linear-gradient(90deg,rgba(22,101,52,.1) 0 33%,transparent 33% 66%,rgba(22,101,52,.1) 66%),linear-gradient(var(--node-bg, #ffffff),var(--node-bg, #ffffff))}.architecture-node--queue:before,.architecture-node--aws-sqs:before,.architecture-node--aws-sns:before,.architecture-node--aws-eventbridge:before,.architecture-node--aws-kinesis:before{border-radius:999px;box-shadow:inset 18px 0 #1118270f,inset -18px 0 #1118270f,3px 3px #111827}.architecture-node--external:before,.architecture-node--aws-security-group:before,.architecture-node--aws-waf:before,.architecture-node--aws-shield:before,.architecture-node--firewall:before{clip-path:polygon(12% 0,88% 0,100% 50%,88% 100%,12% 100%,0 50%)}.architecture-node--serverless:before,.architecture-node--aws-lambda:before,.architecture-node--aws-step-functions:before,.architecture-node--algorithm-graph:before{clip-path:polygon(24% 0,76% 0,100% 50%,76% 100%,24% 100%,0 50%)}.architecture-node--aws-lambda:before,.architecture-node--serverless:before{background-image:linear-gradient(115deg,transparent 0 38%,rgba(146,64,14,.2) 38% 46%,transparent 46%),linear-gradient(var(--node-bg, #ffffff),var(--node-bg, #ffffff))}.architecture-node--cache:before,.architecture-node--aws-elasticache:before,.architecture-node--algorithm-stack:before,.architecture-node--algorithm-queue:before{border-radius:16px 16px 6px 6px;box-shadow:inset 0 -12px #1118270f,3px 3px #111827}.architecture-node--code-file:after{content:"";position:absolute;top:0;right:0;width:24px;height:24px;border-left:2px solid #111827;border-bottom:2px solid #111827;background:#ffffffb3;border-radius:0 6px 0 4px}.architecture-node--logging:before,.architecture-node--monitoring:before,.architecture-node--aws-cloudwatch:before,.architecture-node--aws-cloudtrail:before,.architecture-node--flow-document:before{border-radius:8px 8px 26px}.architecture-node--code-folder:before,.architecture-node--code-package:before,.architecture-node--code-module:before,.architecture-node--code-workspace:before{border-radius:4px 8px 8px}.architecture-node--cloud:not(.architecture-node--container):before,.architecture-node--cloud-provider:before{border-radius:10px 8px 12px}.architecture-node--cloud-provider:before,.architecture-node--cdn:before,.architecture-node--aws-cloudfront:before,.architecture-node--aws-route53:before{border-radius:36px 32px 18px 22px;box-shadow:inset 22px 0 #0e749014,inset -18px 0 #0e749014,3px 3px #111827}.architecture-node--identity:before,.architecture-node--secrets:before,.architecture-node--aws-iam:before,.architecture-node--aws-cognito:before,.architecture-node--aws-secrets-manager:before,.architecture-node--aws-kms:before{border-radius:24px 10px}.architecture-node--code-class:before,.architecture-node--code-interface:before,.architecture-node--code-type:before,.architecture-node--code-enum:before,.architecture-node--code-schema:before,.architecture-node--code-entity:before,.architecture-node--code-value-object:before{border-style:double;border-width:4px}.architecture-node--code-function:before,.architecture-node--code-method:before,.architecture-node--code-hook:before,.architecture-node--algorithm-search:before,.architecture-node--algorithm-sort:before{border-radius:999px}.architecture-node--code-port:before,.architecture-node--code-adapter:before,.architecture-node--algorithm-tree:before,.architecture-node--algorithm-hash-table:before,.architecture-node--algorithm-linked-list:before{clip-path:polygon(0 0,86% 0,100% 50%,86% 100%,0 100%)}.architecture-node:not(.architecture-node--container):before{inset:0;clip-path:none;border:2px solid #111827;border-radius:8px 7px 9px 6px;background-color:var(--node-bg, #ffffff);background-image:none;box-shadow:3px 3px #111827;transform:none}.architecture-node--aws:not(.architecture-node--container):before{border-color:#7c2d12;box-shadow:3px 3px #7c2d12}.architecture-node--code:not(.architecture-node--container):before{border-style:dashed}.architecture-node--flow:not(.architecture-node--container):before{box-shadow:3px 3px #065f46}.architecture-node[class*=architecture-node--flow-]:not(.architecture-node--code-snippet){display:flex;align-items:stretch;justify-content:stretch;padding:4px;text-align:center;--node-transform: rotate(0deg)}.architecture-node[class*=architecture-node--flow-]:not(.architecture-node--code-snippet) .architecture-node__header{display:none}.architecture-node[class*=architecture-node--flow-]:not(.architecture-node--code-snippet):before,.architecture-node[class*=architecture-node--flow-]:not(.architecture-node--code-snippet):after{content:none}app-flow-start-node,app-flow-end-node,app-flow-process-node,app-flow-decision-node,app-flow-input-node,app-flow-output-node,app-flow-loop-node,app-flow-subroutine-node,app-flow-data-node,app-flow-document-node{display:block;width:100%;height:100%}.flow-shape{position:relative;width:100%;height:100%;min-height:56px;display:flex;align-items:center;justify-content:center;padding:12px 18px;color:var(--node-text-color, #065f46);border:2px solid #065f46;background-color:var(--node-bg, #ffffff);box-shadow:3px 3px #065f46;overflow:hidden}.flow-shape span{margin:0;max-width:100%;font-size:var(--node-label-font-size, 28px);font-weight:700;line-height:1.2;text-align:center;white-space:pre-wrap;overflow-wrap:anywhere}.flow-shape--process{border-radius:6px}.flow-shape--start,.flow-shape--end{border-radius:999px}.flow-shape--end:after{content:"";position:absolute;z-index:1;inset:8px;border:2px solid #065f46;border-radius:999px;pointer-events:none}.flow-shape--decision{margin-inline:auto;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.flow-shape--input{clip-path:polygon(0 18%,100% 0,100% 100%,0 100%)}.flow-shape--output{clip-path:polygon(8% 0,100% 0,92% 100%,0 100%)}.flow-shape--data{border-radius:999px/18%;box-shadow:inset 0 11px #ffffff8c,inset 0 13px #065f462e,3px 3px #065f46}.flow-shape--loop{clip-path:polygon(20% 0,80% 0,100% 50%,80% 100%,20% 100%,0 50%)}.flow-shape--subroutine{border-radius:6px}.flow-shape--subroutine:after{content:"";position:absolute;z-index:1;inset:10px 14px;border-left:2px solid #065f46;border-right:2px solid #065f46;pointer-events:none}.flow-shape--document{clip-path:polygon(0 0,100% 0,100% 82%,88% 92%,72% 82%,56% 92%,40% 82%,24% 92%,8% 82%,0 90%)}.architecture-node--leaf{display:grid;grid-template-rows:auto minmax(0,1fr);align-items:start;justify-items:center;gap:6px;min-width:max(108px,calc(var(--leaf-node-icon-size, 70px) + (var(--node-port-edge-offset, 22px) * 2) + 12px));min-height:114px;padding:4px 10px;--node-port-edge-offset: 22px;--node-transform: rotate(0deg)}.architecture-node--leaf:before,.architecture-node--leaf:after{content:none}.architecture-node--leaf .architecture-node__header{position:relative;width:100%;margin:0;padding:0;display:flex;align-items:center;justify-content:center;justify-self:center}.architecture-node--leaf .architecture-node__kind-label{display:none}.architecture-node--code-snippet{min-width:560px;min-height:420px;--node-transform: rotate(0deg);padding-inline:14px;text-align:left;display:flex;flex-direction:column;overflow:visible}.architecture-node--code-snippet:before{inset:0;clip-path:none;border:2px solid #111827;border-radius:8px 7px 9px 6px;background-color:var(--node-bg, #ffffff);background-image:none;box-shadow:3px 3px #111827;transform:none}.architecture-node--code-snippet-collapsed .architecture-node__header{justify-content:center}.architecture-node--leaf .node-collapse-toggle{position:absolute;top:0;right:0;margin-left:0}.architecture-node--leaf .node-icon{--icon-base: var(--icon-color, #111827);display:inline-flex;align-items:center;justify-content:center;width:var(--leaf-node-icon-size, 70px);min-width:var(--leaf-node-icon-size, 70px);height:var(--leaf-node-icon-size, 70px);margin-inline:auto;color:var(--icon-base);border-radius:14px;background:color-mix(in srgb,var(--icon-base) 14%,#ffffff 86%);border:2px solid color-mix(in srgb,var(--icon-base) 38%,#ffffff 62%);box-shadow:2px 2px #11182773}.architecture-node--leaf .node-icon i{font-size:var(--leaf-node-icon-font-size, 34px)}.architecture-node--leaf .node-code-language-badge{position:absolute;right:-8px;bottom:-8px;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;box-sizing:border-box;color:var(--code-language-badge-color, #111827);background:color-mix(in srgb,var(--code-language-badge-bg, #f8fafc) 88%,#ffffff 12%);border:2px solid #ffffff;border-radius:999px;box-shadow:1px 1px #11182773;pointer-events:none}.architecture-node--leaf .node-code-language-badge i{font-size:12px;line-height:1}.architecture-node--leaf .node-code-language-badge__text{position:absolute;right:-4px;bottom:-2px;display:inline-flex;align-items:center;justify-content:center;min-width:14px;height:10px;padding:0 2px;box-sizing:border-box;color:#fff;background:var(--code-language-badge-color, #111827);border-radius:999px;font-size:6px;font-weight:800;line-height:1;letter-spacing:0}.architecture-node--leaf strong{display:block;margin:0;width:fit-content;max-width:none;box-sizing:border-box;padding:3px 8px;font-size:var(--node-label-font-size, 28px);font-weight:700;line-height:1.15;text-align:center;white-space:nowrap;overflow:visible!important;text-overflow:clip!important;word-break:normal;overflow-wrap:normal}.node-inline-label-input{width:100%;min-width:92px;min-height:56px;border:2px solid #111827;border-radius:6px;background:#fff;color:#111827;font-size:var(--node-label-font-size, 28px);font-weight:700;line-height:1.2;text-align:center;padding:2px 6px;outline:none;resize:none}.node-inline-label-input:focus{box-shadow:0 0 0 2px #facc15}.architecture-node.is-selected{outline:none}.node-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--node-icon-size, 34px);min-width:var(--node-icon-size, 34px);height:var(--node-icon-size, 34px);color:var(--icon-color, #111827);border:0;border-radius:0;background:transparent;box-shadow:none}.node-icon:after{content:none}.palette-item__icon{width:54px;min-width:54px;height:54px}.palette-item__icon:after{content:none}.node-icon i{font-size:var(--node-icon-font-size, 14px);line-height:1;pointer-events:none}.node-icon--aws-lambda i:before{content:"\3bb";font-family:Times New Roman,Times,serif;font-style:italic;font-weight:700}.node-icon__label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.node-icon__glyph,.node-icon__glyph:before,.node-icon__glyph:after{box-sizing:border-box}.node-icon__glyph{position:relative;display:block;width:23px;height:23px}.node-icon__glyph:before,.node-icon__glyph:after{content:"";position:absolute;border:2px solid currentColor}.node-icon__glyph:before{inset:4px;border-radius:5px 4px 6px;background:#ffffffb8}.node-icon__glyph:after{right:4px;bottom:4px;width:6px;height:6px;border-top:0;border-left:0}.node-icon--aws-s3,.node-icon--object-storage{color:#166534}.node-icon--aws-s3 .node-icon__glyph:before,.node-icon--object-storage .node-icon__glyph:before,.node-icon--database .node-icon__glyph:before,.node-icon--aws-rds .node-icon__glyph:before,.node-icon--aws-aurora .node-icon__glyph:before{left:4px;top:4px;width:15px;height:17px;border-radius:50%/18%;background:linear-gradient(90deg,rgba(22,101,52,.18) 0 28%,transparent 28% 40%,rgba(22,101,52,.12) 40% 68%,transparent 68%),#ffffffbd}.node-icon--aws-s3 .node-icon__glyph:after,.node-icon--object-storage .node-icon__glyph:after,.node-icon--database .node-icon__glyph:after,.node-icon--aws-rds .node-icon__glyph:after,.node-icon--aws-aurora .node-icon__glyph:after{left:4px;top:4px;width:15px;height:6px;border-radius:50%;border-bottom:2px solid currentColor;background:#ffffffc7}.node-icon--aws-lambda,.node-icon--serverless,.node-icon--aws-step-functions{color:#92400e}.node-icon--aws-lambda .node-icon__glyph:before,.node-icon--serverless .node-icon__glyph:before{left:8px;top:3px;width:7px;height:18px;border-right:0;border-top-left-radius:5px;transform:skew(-15deg);background:#fef3c7b8}.node-icon--aws-lambda .node-icon__glyph:after,.node-icon--serverless .node-icon__glyph:after{left:12px;top:10px;width:8px;height:10px;border-left:0;border-bottom:0;transform:skew(-18deg)}.node-icon--aws-step-functions .node-icon__glyph:before,.node-icon--code-pipeline .node-icon__glyph:before{left:2px;top:9px;width:19px;height:5px;border-radius:999px;background:currentColor}.node-icon--aws-step-functions .node-icon__glyph:after,.node-icon--code-pipeline .node-icon__glyph:after{right:1px;top:6px;width:8px;height:8px;border-left:0;border-bottom:0;transform:rotate(45deg)}.node-icon--aws-ec2,.node-icon--compute,.node-icon--aws-ecs,.node-icon--aws-eks,.node-icon--aws-fargate,.node-icon--aws-ecr,.node-icon--kubernetes,.node-icon--container{color:#9a3412}.node-icon--aws-ec2 .node-icon__glyph:before,.node-icon--compute .node-icon__glyph:before,.node-icon--aws-ecs .node-icon__glyph:before,.node-icon--aws-eks .node-icon__glyph:before,.node-icon--aws-fargate .node-icon__glyph:before,.node-icon--aws-ecr .node-icon__glyph:before,.node-icon--kubernetes .node-icon__glyph:before,.node-icon--container .node-icon__glyph:before{inset:4px;border-radius:3px;background:linear-gradient(90deg,transparent 0 34%,currentColor 34% 44%,transparent 44% 64%,currentColor 64% 74%,transparent 74%),#ffedd5c7}.node-icon--aws-ec2 .node-icon__glyph:after,.node-icon--compute .node-icon__glyph:after,.node-icon--aws-ecs .node-icon__glyph:after,.node-icon--aws-eks .node-icon__glyph:after,.node-icon--aws-fargate .node-icon__glyph:after,.node-icon--aws-ecr .node-icon__glyph:after,.node-icon--kubernetes .node-icon__glyph:after,.node-icon--container .node-icon__glyph:after{left:7px;top:1px;width:12px;height:7px;border-bottom:0;border-radius:5px 5px 0 0}.node-icon--aws-dynamodb,.node-icon--aws-redshift,.node-icon--aws-opensearch,.node-icon--aws-elasticache,.node-icon--cache{color:#1d4ed8}.node-icon--aws-dynamodb .node-icon__glyph:before,.node-icon--aws-redshift .node-icon__glyph:before{inset:4px;border-radius:4px;background:linear-gradient(currentColor 0 0) 50% 0 / 2px 100% no-repeat,linear-gradient(currentColor 0 0) 0 50% / 100% 2px no-repeat,#dbeafec7}.node-icon--aws-dynamodb .node-icon__glyph:after,.node-icon--aws-redshift .node-icon__glyph:after,.node-icon--aws-elasticache .node-icon__glyph:after,.node-icon--cache .node-icon__glyph:after{left:6px;bottom:3px;width:13px;height:5px;border-radius:999px;background:#ffffffb3}.node-icon--aws-opensearch .node-icon__glyph:before,.node-icon--algorithm-search .node-icon__glyph:before{left:4px;top:4px;width:12px;height:12px;border-radius:999px}.node-icon--aws-opensearch .node-icon__glyph:after,.node-icon--algorithm-search .node-icon__glyph:after{right:2px;bottom:3px;width:9px;height:2px;border-width:2px 0 0;transform:rotate(45deg)}.node-icon--aws-sqs,.node-icon--aws-sns,.node-icon--aws-eventbridge,.node-icon--aws-kinesis,.node-icon--queue,.node-icon--algorithm-queue{color:#047857}.node-icon--aws-sqs .node-icon__glyph:before,.node-icon--aws-sns .node-icon__glyph:before,.node-icon--aws-eventbridge .node-icon__glyph:before,.node-icon--aws-kinesis .node-icon__glyph:before,.node-icon--queue .node-icon__glyph:before,.node-icon--algorithm-queue .node-icon__glyph:before{left:3px;top:5px;width:17px;height:4px;border-radius:999px;box-shadow:0 6px #04785747,0 12px #04785738}.node-icon--aws-sqs .node-icon__glyph:after,.node-icon--aws-sns .node-icon__glyph:after,.node-icon--aws-eventbridge .node-icon__glyph:after,.node-icon--aws-kinesis .node-icon__glyph:after,.node-icon--queue .node-icon__glyph:after,.node-icon--algorithm-queue .node-icon__glyph:after{right:2px;top:7px;width:7px;height:7px;border-left:0;border-bottom:0;transform:rotate(45deg)}.node-icon--api-gateway,.node-icon--aws-api-gateway,.node-icon--aws-internet-gateway,.node-icon--aws-nat-gateway,.node-icon--load-balancer,.node-icon--aws-alb,.node-icon--aws-nlb{color:#0e7490}.node-icon--api-gateway .node-icon__glyph:before,.node-icon--aws-api-gateway .node-icon__glyph:before,.node-icon--aws-internet-gateway .node-icon__glyph:before,.node-icon--aws-nat-gateway .node-icon__glyph:before,.node-icon--load-balancer .node-icon__glyph:before,.node-icon--aws-alb .node-icon__glyph:before,.node-icon--aws-nlb .node-icon__glyph:before{left:3px;top:8px;width:17px;height:8px;border-radius:3px;transform:skew(-12deg)}.node-icon--api-gateway .node-icon__glyph:after,.node-icon--aws-api-gateway .node-icon__glyph:after,.node-icon--aws-internet-gateway .node-icon__glyph:after,.node-icon--aws-nat-gateway .node-icon__glyph:after,.node-icon--load-balancer .node-icon__glyph:after,.node-icon--aws-alb .node-icon__glyph:after,.node-icon--aws-nlb .node-icon__glyph:after{left:6px;top:2px;width:11px;height:19px;border-top:0;border-bottom:0}.node-icon--cloud-provider,.node-icon--cdn,.node-icon--aws-cloudfront,.node-icon--aws-route53{color:#0369a1}.node-icon--cloud-provider .node-icon__glyph:before,.node-icon--cdn .node-icon__glyph:before,.node-icon--aws-cloudfront .node-icon__glyph:before,.node-icon--aws-route53 .node-icon__glyph:before{left:3px;top:9px;width:18px;height:9px;border-radius:999px}.node-icon--cloud-provider .node-icon__glyph:after,.node-icon--cdn .node-icon__glyph:after,.node-icon--aws-cloudfront .node-icon__glyph:after,.node-icon--aws-route53 .node-icon__glyph:after{left:7px;top:4px;width:10px;height:10px;border-radius:999px;background:#ffffffd1}.node-icon--group-container,.node-icon--group-container-plus,.node-icon--cloud-region,.node-icon--cloud-vpc,.node-icon--subnet,.node-icon--aws-account,.node-icon--aws-region,.node-icon--aws-availability-zone,.node-icon--aws-vpc,.node-icon--aws-subnet,.node-icon--code-workspace,.node-icon--code-package,.node-icon--code-module{color:#4d7c0f}.node-icon--group-container .node-icon__glyph:before,.node-icon--group-container-plus .node-icon__glyph:before,.node-icon--cloud-region .node-icon__glyph:before,.node-icon--cloud-vpc .node-icon__glyph:before,.node-icon--subnet .node-icon__glyph:before,.node-icon--aws-account .node-icon__glyph:before,.node-icon--aws-region .node-icon__glyph:before,.node-icon--aws-availability-zone .node-icon__glyph:before,.node-icon--aws-vpc .node-icon__glyph:before,.node-icon--aws-subnet .node-icon__glyph:before,.node-icon--code-workspace .node-icon__glyph:before,.node-icon--code-package .node-icon__glyph:before,.node-icon--code-module .node-icon__glyph:before{inset:3px;border-style:dashed;border-radius:5px}.node-icon--group-container .node-icon__glyph:after,.node-icon--group-container-plus .node-icon__glyph:after,.node-icon--cloud-region .node-icon__glyph:after,.node-icon--cloud-vpc .node-icon__glyph:after,.node-icon--subnet .node-icon__glyph:after,.node-icon--aws-account .node-icon__glyph:after,.node-icon--aws-region .node-icon__glyph:after,.node-icon--aws-availability-zone .node-icon__glyph:after,.node-icon--aws-vpc .node-icon__glyph:after,.node-icon--aws-subnet .node-icon__glyph:after,.node-icon--code-workspace .node-icon__glyph:after,.node-icon--code-package .node-icon__glyph:after,.node-icon--code-module .node-icon__glyph:after{inset:8px;border-radius:3px;background:#ecfccbad}.node-icon--identity,.node-icon--secrets,.node-icon--firewall,.node-icon--aws-iam,.node-icon--aws-cognito,.node-icon--aws-secrets-manager,.node-icon--aws-kms,.node-icon--aws-waf,.node-icon--aws-shield,.node-icon--aws-security-group{color:#991b1b}.node-icon--aws-kms .node-icon__glyph:before,.node-icon--secrets .node-icon__glyph:before,.node-icon--aws-secrets-manager .node-icon__glyph:before{left:4px;top:9px;width:16px;height:9px;border-radius:3px;background:#fef9c3b3}.node-icon--aws-kms .node-icon__glyph:after,.node-icon--secrets .node-icon__glyph:after,.node-icon--aws-secrets-manager .node-icon__glyph:after{left:8px;top:4px;width:8px;height:8px;border-bottom:0;border-radius:999px 999px 0 0}.node-icon--firewall .node-icon__glyph:before,.node-icon--aws-waf .node-icon__glyph:before,.node-icon--aws-shield .node-icon__glyph:before,.node-icon--aws-security-group .node-icon__glyph:before{left:5px;top:3px;width:14px;height:18px;border-radius:8px 8px 10px 10px;clip-path:polygon(50% 0,100% 18%,88% 76%,50% 100%,12% 76%,0 18%);background:#fecaca9e}.node-icon--identity .node-icon__glyph:before,.node-icon--aws-iam .node-icon__glyph:before,.node-icon--aws-cognito .node-icon__glyph:before{left:8px;top:3px;width:8px;height:8px;border-radius:999px}.node-icon--identity .node-icon__glyph:after,.node-icon--aws-iam .node-icon__glyph:after,.node-icon--aws-cognito .node-icon__glyph:after{left:5px;top:13px;width:14px;height:8px;border-radius:999px 999px 4px 4px;background:#fae8ffb3}.node-icon--monitoring,.node-icon--logging,.node-icon--aws-cloudwatch,.node-icon--aws-cloudtrail{color:#047857}.node-icon--monitoring .node-icon__glyph:before,.node-icon--aws-cloudwatch .node-icon__glyph:before{left:4px;top:4px;width:16px;height:16px;border-radius:999px;background:conic-gradient(from 20deg,rgba(4,120,87,.2) 0 35%,transparent 35% 100%)}.node-icon--logging .node-icon__glyph:before,.node-icon--aws-cloudtrail .node-icon__glyph:before,.node-icon--flow-document .node-icon__glyph:before,.node-icon--code-file .node-icon__glyph:before{left:5px;top:3px;width:14px;height:18px;border-radius:3px 8px 3px 3px;background:linear-gradient(currentColor 0 0) 4px 6px / 8px 2px no-repeat,linear-gradient(currentColor 0 0) 4px 11px / 7px 2px no-repeat,#ffffffb8}.node-icon--code-file,.node-icon--code-class,.node-icon--code-interface,.node-icon--code-function,.node-icon--code-method,.node-icon--code-use-case,.node-icon--code-entity,.node-icon--code-value-object,.node-icon--code-port,.node-icon--code-adapter,.node-icon--code-schema,.node-icon--code-component,.node-icon--code-controller,.node-icon--code-middleware,.node-icon--code-hook,.node-icon--code-repository,.node-icon--code-folder,.node-icon--code-variable,.node-icon--code-enum,.node-icon--code-type{color:#4338ca}.node-icon--code-function .node-icon__glyph:before,.node-icon--code-method .node-icon__glyph:before,.node-icon--code-hook .node-icon__glyph:before{left:5px;top:6px;width:14px;height:12px;border-radius:999px}.node-icon--code-function .node-icon__glyph:after,.node-icon--code-method .node-icon__glyph:after,.node-icon--code-hook .node-icon__glyph:after{content:"fn";left:5px;top:6px;width:14px;height:12px;border:0;color:currentColor;font-size:8px;font-weight:900;line-height:12px;text-align:center}.node-icon--code-class .node-icon__glyph:before,.node-icon--code-interface .node-icon__glyph:before,.node-icon--code-type .node-icon__glyph:before,.node-icon--code-enum .node-icon__glyph:before,.node-icon--code-schema .node-icon__glyph:before,.node-icon--code-entity .node-icon__glyph:before,.node-icon--code-value-object .node-icon__glyph:before{left:4px;top:5px;width:16px;height:13px;border-style:double;border-width:4px}.node-icon--code-repository .node-icon__glyph:before,.node-icon--code-folder .node-icon__glyph:before{left:3px;top:8px;width:18px;height:11px;border-radius:3px;background:#fef9c3b8}.node-icon--code-repository .node-icon__glyph:after,.node-icon--code-folder .node-icon__glyph:after{left:5px;top:5px;width:8px;height:5px;border-bottom:0;border-radius:3px 3px 0 0}.node-icon--flow-start,.node-icon--flow-end,.node-icon--flow-process,.node-icon--flow-decision,.node-icon--flow-input,.node-icon--flow-output,.node-icon--flow-loop,.node-icon--flow-subroutine,.node-icon--flow-data{color:#065f46}.node-icon--flow-start .node-icon__glyph:before,.node-icon--flow-end .node-icon__glyph:before{left:3px;top:7px;width:18px;height:10px;border-radius:999px;background:#dcfce7b3}.node-icon--flow-decision .node-icon__glyph:before,.node-icon--algorithm-condition .node-icon__glyph:before{left:6px;top:5px;width:13px;height:13px;border-radius:3px;transform:rotate(45deg);background:#fde68a9e}.node-icon--flow-input .node-icon__glyph:before,.node-icon--flow-output .node-icon__glyph:before,.node-icon--flow-data .node-icon__glyph:before{left:4px;top:7px;width:16px;height:10px;border-radius:3px;transform:skew(-12deg)}.node-icon--algorithm,.node-icon--algorithm-condition,.node-icon--algorithm-loop,.node-icon--algorithm-recursion,.node-icon--algorithm-sort,.node-icon--algorithm-search,.node-icon--algorithm-graph,.node-icon--algorithm-tree,.node-icon--algorithm-hash-table,.node-icon--algorithm-stack,.node-icon--algorithm-linked-list{color:#6d28d9}.node-icon--algorithm-graph .node-icon__glyph:before{left:4px;top:4px;width:5px;height:5px;border-radius:999px;box-shadow:11px 2px 0 -1px #fff,11px 2px 0 1px currentColor,5px 12px 0 -1px #fff,5px 12px 0 1px currentColor}.node-icon--algorithm-graph .node-icon__glyph:after,.node-icon--algorithm-tree .node-icon__glyph:after,.node-icon--algorithm-linked-list .node-icon__glyph:after{left:6px;top:8px;width:12px;height:8px;border-left:0;border-right:0;border-bottom:0;transform:rotate(24deg)}.node-icon--algorithm-stack .node-icon__glyph:before,.node-icon--algorithm-hash-table .node-icon__glyph:before{left:4px;top:5px;width:16px;height:4px;border-radius:2px;box-shadow:0 6px #6d28d938,0 12px #6d28d929}.node-icon{border:0;background:transparent;box-shadow:none}.node-icon__glyph{width:24px;height:24px}.node-icon[class*=node-icon--aws-] .node-icon__glyph:before,.node-icon[class*=node-icon--aws-] .node-icon__glyph:after{border-width:2px;border-color:currentColor}.node-icon--aws-s3 .node-icon__glyph:before,.node-icon--aws-ebs .node-icon__glyph:before,.node-icon--aws-rds .node-icon__glyph:before,.node-icon--aws-aurora .node-icon__glyph:before{left:4px;top:4px;width:16px;height:17px;border-radius:50%/18%;background:linear-gradient(90deg,rgba(122,161,22,.26) 0 28%,transparent 28% 40%,rgba(122,161,22,.16) 40% 68%,transparent 68%),#ffffffbf}.node-icon--aws-s3 .node-icon__glyph:after,.node-icon--aws-ebs .node-icon__glyph:after,.node-icon--aws-rds .node-icon__glyph:after,.node-icon--aws-aurora .node-icon__glyph:after{left:4px;top:4px;width:16px;height:6px;border-radius:50%;border-bottom:2px solid currentColor;background:#ffffffc7}.node-icon--aws-efs .node-icon__glyph:before{left:3px;top:8px;width:18px;height:12px;border-radius:3px;background:#e0f2fec2}.node-icon--aws-efs .node-icon__glyph:after{left:5px;top:4px;width:9px;height:6px;border-bottom:0;border-radius:3px 3px 0 0}.node-icon--aws-ec2 .node-icon__glyph:before,.node-icon--aws-ecs .node-icon__glyph:before,.node-icon--aws-eks .node-icon__glyph:before,.node-icon--aws-fargate .node-icon__glyph:before,.node-icon--aws-ecr .node-icon__glyph:before{left:4px;top:7px;width:16px;height:12px;border-radius:3px;background:linear-gradient(90deg,transparent 0 30%,currentColor 30% 38%,transparent 38% 58%,currentColor 58% 66%,transparent 66%),#ffedd5bf}.node-icon--aws-ec2 .node-icon__glyph:after,.node-icon--aws-ecs .node-icon__glyph:after,.node-icon--aws-eks .node-icon__glyph:after,.node-icon--aws-fargate .node-icon__glyph:after,.node-icon--aws-ecr .node-icon__glyph:after{left:8px;top:3px;width:8px;height:5px;border-bottom:0;border-radius:3px 3px 0 0}.node-icon--aws-ecs .node-icon__glyph:before{left:4px;top:6px;width:16px;height:4px;border-radius:3px;box-shadow:0 6px #9a34123d,0 12px #9a341229;background:#ffedd5d6}.node-icon--aws-ecs .node-icon__glyph:after{left:7px;top:2px;width:10px;height:3px;border-radius:2px}.node-icon--aws-eks .node-icon__glyph:before{left:5px;top:4px;width:14px;height:14px;border-radius:4px;transform:rotate(45deg);background:#dbeafe85}.node-icon--aws-eks .node-icon__glyph:after{left:10px;top:1px;width:2px;height:20px;border:0;background:radial-gradient(circle at 50% 2px,currentColor 2px,transparent 2.2px),radial-gradient(circle at 50% 10px,currentColor 2px,transparent 2.2px),radial-gradient(circle at 50% 18px,currentColor 2px,transparent 2.2px)}.node-icon--aws-fargate .node-icon__glyph:before{left:4px;top:8px;width:16px;height:10px;border-radius:3px;clip-path:polygon(0 0,100% 0,84% 100%,16% 100%);background:#fef3c7b8}.node-icon--aws-fargate .node-icon__glyph:after{left:8px;top:3px;width:8px;height:5px;border-bottom:0;border-radius:2px 2px 0 0}.node-icon--aws-ecr .node-icon__glyph:before{left:4px;top:8px;width:16px;height:10px;border-radius:3px;background:#e0e7ffc2}.node-icon--aws-ecr .node-icon__glyph:after{left:7px;top:3px;width:10px;height:4px;border-bottom:0;border-radius:2px 2px 0 0;box-shadow:0 9px 0 -3px currentColor}.node-icon--aws-lambda .node-icon__glyph:before{left:7px;top:3px;width:8px;height:18px;border-right:0;border-top-left-radius:5px;transform:skew(-16deg);background:#ed710026}.node-icon--aws-lambda .node-icon__glyph:after{left:12px;top:10px;width:8px;height:10px;border-left:0;border-bottom:0;transform:skew(-18deg)}.node-icon--aws-api-gateway .node-icon__glyph:before,.node-icon--aws-internet-gateway .node-icon__glyph:before,.node-icon--aws-nat-gateway .node-icon__glyph:before{left:4px;top:8px;width:16px;height:10px;border-radius:3px;transform:skew(-12deg);background:#0e749029}.node-icon--aws-api-gateway .node-icon__glyph:after,.node-icon--aws-internet-gateway .node-icon__glyph:after,.node-icon--aws-nat-gateway .node-icon__glyph:after{left:8px;top:2px;width:8px;height:20px;border-top:0;border-bottom:0}.node-icon--aws-alb .node-icon__glyph:before,.node-icon--aws-nlb .node-icon__glyph:before{left:4px;top:10px;width:16px;height:5px;border-radius:999px;background:currentColor}.node-icon--aws-alb .node-icon__glyph:after,.node-icon--aws-nlb .node-icon__glyph:after{right:3px;top:7px;width:8px;height:8px;border-left:0;border-bottom:0;transform:rotate(45deg)}.node-icon--aws-route53 .node-icon__glyph:before{left:4px;top:3px;width:16px;height:18px;border-radius:8px 8px 10px 10px;clip-path:polygon(50% 0,100% 18%,88% 76%,50% 100%,12% 76%,0 18%);background:#7e22ce24}.node-icon--aws-route53 .node-icon__glyph:after{content:"53";left:0;top:7px;width:24px;border:0;color:currentColor;font-size:8px;font-weight:900;text-align:center}.node-icon--aws-cloudfront .node-icon__glyph:before{left:3px;top:10px;width:18px;height:8px;border-radius:999px}.node-icon--aws-cloudfront .node-icon__glyph:after{left:7px;top:4px;width:10px;height:10px;border-radius:999px;background:#dbeafecc}.node-icon--aws-dynamodb .node-icon__glyph:before,.node-icon--aws-redshift .node-icon__glyph:before{left:4px;top:5px;width:16px;height:13px;border-radius:3px;background:linear-gradient(currentColor 0 0) 50% 0 / 2px 100% no-repeat,linear-gradient(currentColor 0 0) 0 50% / 100% 2px no-repeat,#fae8ffb3}.node-icon--aws-dynamodb .node-icon__glyph:after,.node-icon--aws-redshift .node-icon__glyph:after{left:7px;bottom:3px;width:10px;height:3px;border-radius:999px;background:#ffffffbd}.node-icon--aws-opensearch .node-icon__glyph:before{left:4px;top:4px;width:12px;height:12px;border-radius:999px}.node-icon--aws-opensearch .node-icon__glyph:after{right:2px;bottom:3px;width:9px;height:2px;border-width:2px 0 0;transform:rotate(45deg)}.node-icon--aws-sqs .node-icon__glyph:before,.node-icon--aws-kinesis .node-icon__glyph:before{left:3px;top:5px;width:18px;height:4px;border-radius:999px;box-shadow:0 6px #04785747,0 12px #04785738}.node-icon--aws-sqs .node-icon__glyph:after,.node-icon--aws-kinesis .node-icon__glyph:after{right:3px;top:7px;width:7px;height:7px;border-left:0;border-bottom:0;transform:rotate(45deg)}.node-icon--aws-kinesis .node-icon__glyph:before{left:3px;top:8px;width:18px;height:9px;border-left:0;border-right:0;border-radius:999px;box-shadow:none;transform:skew(-14deg)}.node-icon--aws-kinesis .node-icon__glyph:after{left:9px;top:3px;width:6px;height:18px;border-top:0;border-bottom:0;border-left:2px solid currentColor;border-right:2px solid currentColor;transform:none}.node-icon--aws-sns .node-icon__glyph:before{left:4px;top:8px;width:9px;height:7px;border-radius:2px 0 0 2px;border-right:0}.node-icon--aws-sns .node-icon__glyph:after{left:12px;top:7px;width:8px;height:9px;border-left:0;clip-path:polygon(0 12%,100% 0,100% 100%,0 88%)}.node-icon--aws-eventbridge .node-icon__glyph:before{left:3px;top:6px;width:18px;height:12px;border-radius:999px}.node-icon--aws-eventbridge .node-icon__glyph:after{left:9px;top:4px;width:6px;height:16px;border-right:0;border-left:0}.node-icon--aws-step-functions .node-icon__glyph:before{left:4px;top:10px;width:16px;height:4px;border-radius:999px;background:currentColor}.node-icon--aws-step-functions .node-icon__glyph:after{right:3px;top:7px;width:8px;height:8px;border-left:0;border-bottom:0;transform:rotate(45deg)}.node-icon--aws-iam .node-icon__glyph:before,.node-icon--aws-cognito .node-icon__glyph:before{left:8px;top:3px;width:8px;height:8px;border-radius:999px}.node-icon--aws-iam .node-icon__glyph:after,.node-icon--aws-cognito .node-icon__glyph:after{left:5px;top:13px;width:14px;height:8px;border-radius:999px 999px 4px 4px;background:#fae8ffb3}.node-icon--aws-secrets-manager .node-icon__glyph:before,.node-icon--aws-kms .node-icon__glyph:before{left:4px;top:9px;width:16px;height:9px;border-radius:3px;background:#fef9c3b3}.node-icon--aws-secrets-manager .node-icon__glyph:after,.node-icon--aws-kms .node-icon__glyph:after{left:8px;top:4px;width:8px;height:8px;border-bottom:0;border-radius:999px 999px 0 0}.node-icon--aws-waf .node-icon__glyph:before,.node-icon--aws-shield .node-icon__glyph:before,.node-icon--aws-security-group .node-icon__glyph:before{left:5px;top:3px;width:14px;height:18px;border-radius:8px 8px 10px 10px;clip-path:polygon(50% 0,100% 18%,88% 76%,50% 100%,12% 76%,0 18%);background:#fecaca9e}.node-icon--aws-waf .node-icon__glyph:after,.node-icon--aws-shield .node-icon__glyph:after,.node-icon--aws-security-group .node-icon__glyph:after{content:"";left:9px;top:7px;width:6px;height:8px;border-left:0;border-top:0;transform:skew(-10deg)}.node-icon--aws-cloudwatch .node-icon__glyph:before{left:4px;top:4px;width:16px;height:16px;border-radius:999px}.node-icon--aws-cloudwatch .node-icon__glyph:after{left:11px;top:7px;width:2px;height:6px;border-right:0;border-bottom:0;transform:rotate(35deg)}.node-icon--aws-cloudtrail .node-icon__glyph:before{left:3px;top:10px;width:18px;height:4px;border-left:0;border-right:0;border-bottom:0;transform:rotate(-8deg)}.node-icon--aws-cloudtrail .node-icon__glyph:after{left:14px;top:8px;width:4px;height:4px;border-radius:999px;background:currentColor}.canvas-shell:not(.canvas-shell--grabbing) .architecture-node--leaf:hover{z-index:940!important}.node-port{position:absolute;z-index:24;top:var(--node-port-hit-inset, 20px);bottom:var(--node-port-hit-inset, 20px);width:var(--node-port-hit-width, 22px);min-height:var(--node-port-hit-min-height, 30px);border:0;border-radius:0;background:transparent;box-shadow:none;cursor:crosshair;touch-action:none;visibility:visible;opacity:1;pointer-events:auto}.node-port:before{content:"";position:absolute;top:50%;width:var(--node-port-dot-size, 18px);height:var(--node-port-dot-size, 18px);border:2px solid #111827;border-radius:999px;background:#fff;box-shadow:1px 1px #111827;transform:translateY(-50%)}.node-port:after{content:"";position:absolute;top:var(--node-port-lane-inset, 11px);bottom:var(--node-port-lane-inset, 11px);width:var(--node-port-lane-width, 4px);border-radius:999px;background:transparent;opacity:0;transition:none}.node-port:hover:after,.node-port:focus-visible:after{opacity:0}.architecture-node.is-selected:not(.architecture-node--leaf) .node-port:after{opacity:0;background:transparent}.architecture-node--leaf .node-port:after,.architecture-node--leaf .node-port:hover:after,.architecture-node--leaf .node-port:focus-visible:after,.architecture-node--leaf.is-selected .node-port:after{background:transparent;opacity:0}.node-port.is-connection-target:before{border-color:#f59e0b;background:#fffbeb;box-shadow:0 0 0 2px #f59e0b38,1px 1px #111827}.node-port.is-connection-target:after{opacity:1;background:#f59e0b73}.architecture-node--code-snippet .node-port,.architecture-node--code-snippet .node-port:before{visibility:visible;opacity:1}.architecture-node--code-snippet .node-port{z-index:40}.architecture-node--code-snippet .node-port--target{left:0}.architecture-node--code-snippet .node-port--target:before{left:4px}.architecture-node--code-snippet .node-port--target:after{left:calc(var(--node-port-dot-size, 14px) / 2 + 5px)}.architecture-node--code-snippet .node-port--source{right:0}.architecture-node--code-snippet .node-port--source:before{right:4px}.architecture-node--code-snippet .node-port--source:after{right:calc(var(--node-port-dot-size, 14px) / 2 + 5px)}.node-port--target{left:calc(-1 * var(--node-port-edge-offset, 15px))}.node-port--target:before{left:0}.node-port--target:after{left:calc(var(--node-port-dot-size, 14px) / 2 + 1px)}.node-port--source{right:calc(-1 * var(--node-port-edge-offset, 15px))}.node-port--source:before{right:0}.node-port--source:after{right:calc(var(--node-port-dot-size, 14px) / 2 + 1px)}.node-port--omni{width:var(--node-port-omni-size, 28px);height:var(--node-port-omni-size, 28px);min-height:var(--node-port-omni-size, 28px);top:auto;bottom:auto}.node-port--omni:before{left:50%;top:50%;transform:translate(-50%,-50%)}.node-port--omni:after{left:50%;top:50%;bottom:auto;width:var(--node-port-omni-halo-size, 16px);height:var(--node-port-omni-halo-size, 16px);border-radius:999px;transform:translate(-50%,-50%)}.node-port--omni-top{top:calc(-1 * var(--node-port-omni-offset, 15px));left:calc(50% - var(--node-port-omni-size, 28px) / 2)}.node-port--omni-right{top:calc(50% - var(--node-port-omni-size, 28px) / 2);right:calc(-1 * var(--node-port-omni-offset, 15px))}.node-port--omni-bottom{bottom:calc(-1 * var(--node-port-omni-offset, 15px));left:calc(50% - var(--node-port-omni-size, 28px) / 2)}.node-port--omni-left{top:calc(50% - var(--node-port-omni-size, 28px) / 2);left:calc(-1 * var(--node-port-omni-offset, 15px))}.canvas-edge-layer{position:absolute;inset:0;z-index:150;width:100%;height:100%;pointer-events:none;overflow:visible}.canvas-edge-layer--elevated{z-index:160}.canvas-edge-hit{fill:none;stroke:transparent;stroke-width:18;pointer-events:stroke}.canvas-edge{fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;pointer-events:stroke}.canvas-edge.is-selected{stroke-width:4}.canvas-edge-label{overflow:visible;pointer-events:none}.canvas-edge-label-knockout{fill:transparent;pointer-events:none}.canvas-node-label-knockout{pointer-events:none}.canvas-edge-label-box{box-sizing:border-box;width:100%;height:100%;border:0;border-radius:8px;background:#f8fafc14;-webkit-backdrop-filter:blur(18px) saturate(1.6);backdrop-filter:blur(18px) saturate(1.6);color:#111827;font-size:12px;font-weight:700;line-height:1.2;display:flex;align-items:center;justify-content:center;text-align:center;direction:ltr;padding:8px 20px;white-space:nowrap;overflow:visible;text-overflow:clip;text-shadow:0 1px 2px rgba(248,250,252,.9),0 -1px 2px rgba(248,250,252,.72)}.app-shell--perf-lite .canvas-edge-label-box{-webkit-backdrop-filter:none;backdrop-filter:none;text-shadow:none}.canvas-edge-label-editor{overflow:visible;pointer-events:all}.canvas-edge-label-editor textarea{width:180px;height:32px;border:2px solid #111827;border-radius:6px;background:#fff;color:#111827;font-size:12px;font-weight:700;line-height:1.2;padding:4px 8px;outline:none;resize:none;overflow:hidden}.canvas-edge-label-editor textarea:focus{box-shadow:0 0 0 2px #facc15}.canvas-edge-preview{stroke:#2563eb;stroke-dasharray:8 6;opacity:.9;animation:edge-flow-dash .22s linear infinite}.canvas-edge.is-live{animation:edge-flow-dash .22s linear infinite}.canvas-edge-context-overlay{pointer-events:none}.canvas-edge.is-bidirectional{animation:edge-flow-ping-pong 2.6s ease-in-out infinite reverse}.canvas-edge-proximity-indicator{position:absolute;border:2px dashed rgba(245,158,11,.85);border-radius:999px;background:#f59e0b1f;box-shadow:inset 0 0 0 1px #11182740;pointer-events:none;z-index:151}.canvas-edge-group--muted .canvas-edge-hit,.canvas-edge-group--muted .canvas-edge,.canvas-edge-group--muted .canvas-edge-label-knockout,.canvas-edge-group--muted .canvas-edge-label,.canvas-edge-group--muted .canvas-edge-label-box,.canvas-edge-group--muted .canvas-edge-label-editor{opacity:0;pointer-events:none}@keyframes edge-flow-dash{0%{stroke-dashoffset:0}to{stroke-dashoffset:-14}}@keyframes edge-flow-ping-pong{0%{stroke-dashoffset:0}50%{stroke-dashoffset:-28}to{stroke-dashoffset:0}}.canvas-viewport--interaction-lite .canvas-edge.is-live,.canvas-viewport--interaction-lite .canvas-edge.is-bidirectional,.app-shell--perf-lite .canvas-edge.is-live,.app-shell--perf-lite .canvas-edge.is-bidirectional{animation:none;stroke-dashoffset:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.resize-control{display:none;position:absolute;z-index:5;border:2px solid #111827;border-radius:4px;background:#facc15;box-shadow:1px 1px #111827}.architecture-node.is-selected .resize-control{display:block}.resize-control--n,.resize-control--s{left:50%;width:34px;height:12px;transform:translate(-50%);cursor:ns-resize}.resize-control--e,.resize-control--w{top:50%;width:12px;height:34px;transform:translateY(-50%);cursor:ew-resize}.resize-control--n{top:-8px}.resize-control--s{bottom:-8px}.resize-control--e{right:-8px}.resize-control--w{left:-8px}.resize-control--ne,.resize-control--nw,.resize-control--se,.resize-control--sw{width:14px;height:14px}.resize-control--ne{top:-8px;right:-8px;cursor:nesw-resize}.resize-control--nw{top:-8px;left:-8px;cursor:nwse-resize}.resize-control--se{right:-8px;bottom:-8px;cursor:nwse-resize}.resize-control--sw{left:-8px;bottom:-8px;cursor:nesw-resize}.architecture-node__header{display:flex;align-items:center;gap:7px;margin-bottom:10px;color:var(--node-text-color, #4b5563);font-size:24px;font-weight:800;text-transform:uppercase}.architecture-node:not(.architecture-node--leaf) .architecture-node__header .node-icon{width:88px;min-width:88px;height:88px}.architecture-node:not(.architecture-node--leaf) .architecture-node__header .node-icon i{font-size:40px}.architecture-node--group-container-plus .architecture-node__kind-label{font-size:24px;font-weight:900}.architecture-node--group-container-plus .node-icon{width:88px;min-width:88px;height:88px}.architecture-node--group-container-plus .node-icon i{font-size:40px}.node-collapse-toggle{margin-left:auto;flex-shrink:0;width:44px;height:44px;border:2px solid #111827;border-radius:999px;background:#fef3c7;color:#111827;box-shadow:2px 2px #111827;display:inline-flex;align-items:center;justify-content:center;z-index:6;cursor:pointer}.node-collapse-toggle i{font-size:18px;pointer-events:none}.architecture-node:not(.architecture-node--leaf) strong{display:block;max-width:100%;font-size:var(--node-label-font-size, 28px);line-height:1.15;overflow:hidden;overflow-wrap:normal;text-overflow:ellipsis;word-break:normal}.code-snippet-content{display:grid;grid-template-rows:auto minmax(0,1fr);gap:8px;flex:1 1 auto;min-height:0}.code-snippet-content__meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.code-snippet-content__meta strong{font-size:var(--node-label-font-size, 28px);max-width:100%}.code-snippet-content__meta span{flex-shrink:0;border:1px solid #111827;border-radius:999px;background:#fff;color:#374151;font-size:10px;font-weight:700;line-height:1;text-transform:uppercase;padding:4px 8px}.code-snippet-inline-editor{margin:0;height:100%;min-height:94px;border:2px solid #111827;border-radius:6px;background:#0f172a;overflow:hidden}.code-snippet-inline-editor:focus-within{box-shadow:0 0 0 2px #f59e0b}.code-snippet-inline-editor .code-editor-host{width:100%;height:100%;min-height:94px}.code-snippet-inline-editor .cm-editor{height:100%}.architecture-node__kind-label{min-width:0;font-size:24px;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-map{position:absolute;right:14px;bottom:14px;z-index:320;width:174px;border:2px solid #111827;border-radius:8px;background:#fffaf0;box-shadow:3px 3px #111827;padding:10px}.mini-map{position:relative;width:150px;height:96px;overflow:hidden;border:1px dashed #9ca3af;border-radius:6px;cursor:pointer;background:linear-gradient(rgba(17,24,39,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(17,24,39,.04) 1px,transparent 1px),#fff;background-size:12px 12px}.mini-map-node{position:absolute;border:1px solid #111827;border-radius:3px}.mini-map-node--container{border-style:dashed}.mini-map-viewport{position:absolute;border:2px solid #f59e0b;border-radius:4px;background:#f59e0b29;box-shadow:0 0 0 1px #11182759,inset 0 0 0 1px #ffffff9e;pointer-events:auto;cursor:grab}.mini-map-viewport.is-dragging{cursor:grabbing}.mini-map-legend{margin:8px 0 0;font-size:11px;font-weight:700;color:#4b5563;text-align:center}.zoom-controls{display:grid;grid-template-columns:40px 1fr 40px;gap:8px;margin-top:10px}.context-properties-popup{position:absolute;z-index:330;width:min(360px,calc(100vw - 16px));max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);border:2px solid #111827;border-radius:8px;background:#fffaf0;box-shadow:3px 3px #111827;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.context-properties-popup .panel-heading{position:sticky;top:0;z-index:1;background:#fffaf0}.context-properties-popup__heading-content{display:grid;gap:2px}.context-properties-popup__close{min-height:30px;padding:0 10px;border:2px solid #111827;border-radius:7px;background:#dbeafe;color:#111827;font-size:12px;font-weight:700;box-shadow:2px 2px #111827}.context-properties-popup__close:hover{transform:translate(-1px,-1px) rotate(-.2deg);box-shadow:3px 3px #111827}.zoom-value{min-height:38px;border:2px solid #111827;border-radius:7px;background:#fff;color:#111827;font-size:12px;font-weight:900;box-shadow:2px 2px #111827}.property-stack .property-field,.property-stack label{display:grid;gap:7px;font-size:12px;font-weight:800}.property-stack input,.property-stack select,.mermaid-panel textarea{width:100%;border:2px solid #111827;border-radius:7px;background:#fff;color:#111827;outline:none;box-sizing:border-box}.property-stack input,.property-stack select{min-height:40px;height:40px;padding:0 11px;line-height:1.25}.property-stack .property-textarea{min-height:96px;padding:9px 11px;resize:vertical}.property-stack .property-code-textarea{min-height:180px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;line-height:1.45;white-space:pre}.property-stack .property-color-input{padding:4px;height:40px;min-height:40px}.mermaid-panel{display:grid;grid-template-rows:auto 210px minmax(0,1fr);min-height:0}.mermaid-panel textarea{resize:none;border-width:0 0 2px;border-radius:0;padding:12px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;line-height:1.5;tab-size:2;white-space:pre}.mermaid-preview{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;overflow:auto;padding:12px;background:#fff}.mermaid-preview__diagram{min-height:160px;overflow:auto}.mermaid-preview__diagram svg{max-width:100%;height:auto;display:block}.lint-text{margin:0 0 8px;color:#166534;font-size:12px;font-weight:800}.muted-copy{margin:12px;line-height:1.5}.error-text{color:#991b1b;font-size:12px;line-height:1.4}.toast{position:fixed;right:18px;top:74px;bottom:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;max-width:420px;border:2px solid #991b1b;border-radius:7px;background:#fee2e2;padding:12px;box-shadow:3px 3px #111827;overflow-wrap:anywhere;z-index:340}.toast--success{border-color:#166534;background:#dcfce7;color:#14532d}.toast--error{top:74px}.toast--success+.toast--error{top:140px}.toast-close{width:24px;height:24px;border:2px solid #111827;border-radius:6px;background:#fff;color:#991b1b;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.toast--success .toast-close{color:#166534}.canvas-usage-hint{position:fixed;right:20px;bottom:86px;z-index:339;max-width:min(420px,calc(100vw - 24px))}.canvas-usage-hint__content{display:grid;gap:10px;width:fit-content;border:2px solid #111827;border-radius:8px;background:#fffbeb;color:#111827;font-size:14px;line-height:1.45;padding:16px;box-shadow:3px 3px #111827;overflow-wrap:anywhere}.canvas-usage-hint__content strong{font-size:15px;font-weight:900}.canvas-usage-hint__content p{margin:0;font-weight:700}.icon-button.is-active,.toolbar-action.is-active{background:#fde68a}.app-shell.theme-dark{color:#e5e7eb}.auth-screen.theme-dark{background:radial-gradient(circle at 16% 18%,#facc1533 0,#facc1500 44%),radial-gradient(circle at 84% 14%,#60a5fa29 0,#60a5fa00 38%),#111827}.auth-screen.theme-dark .auth-screen__topbar{background:#151c2d;border-bottom-color:#f8fafc}.auth-screen.theme-dark .brand-lockup strong{color:#f8fafc}.auth-screen.theme-dark .brand-lockup span{color:#9ca3af}.auth-screen.theme-dark .auth-card{background:#1f2937;border-color:#f8fafc;box-shadow:6px 6px #0b1220;color:#f8fafc}.auth-screen.theme-dark .auth-kicker,.auth-screen.theme-dark .auth-copy{color:#cbd5e1}.app-shell.theme-dark .topbar,.app-shell.theme-dark .sidebar,.app-shell.theme-dark .palette,.app-shell.theme-dark .mermaid-panel,.app-shell.theme-dark .canvas-map,.app-shell.theme-dark .context-properties-popup{background:#111827;border-color:#374151}.app-shell.theme-dark .panel-heading span,.app-shell.theme-dark .brand-lockup strong,.app-shell.theme-dark .title-input,.app-shell.theme-dark .file-item strong,.app-shell.theme-dark .palette-item__label,.app-shell.theme-dark .zoom-value,.app-shell.theme-dark .property-stack label,.app-shell.theme-dark .property-stack .property-field{color:#e5e7eb}.app-shell.theme-dark .brand-lockup span,.app-shell.theme-dark .panel-heading small,.app-shell.theme-dark .file-item span,.app-shell.theme-dark .muted-copy,.app-shell.theme-dark .palette-group h3{color:#9ca3af}.app-shell.theme-dark .palette-list{background:#111827}.app-shell.theme-dark .sidebar-footer{background:#111827;border-top-color:#374151}.app-shell.theme-dark .palette-group h3{background:#111827;color:#cbd5e1;border-bottom:1px dashed #374151}.app-shell.theme-dark .palette-item__label,.app-shell.theme-dark .palette-item .node-icon,.app-shell.theme-dark .palette-item .node-icon i,.app-shell.theme-dark .palette-item .node-icon__label{color:#f8fafc}.app-shell.theme-dark .node-code-language-badge{border-color:#111827;box-shadow:1px 1px #020617}.app-shell.theme-dark .title-input{border-bottom-color:#e5e7eb}.app-shell.theme-dark .icon-button,.app-shell.theme-dark .toolbar-action,.app-shell.theme-dark .toolbar-dropdown__item,.app-shell.theme-dark .primary-action,.app-shell.theme-dark .danger-action,.app-shell.theme-dark .secondary-action,.app-shell.theme-dark .file-item,.app-shell.theme-dark .palette-item,.app-shell.theme-dark .file-delete-button,.app-shell.theme-dark .zoom-value,.app-shell.theme-dark .toast-close{background:#1f2937;color:#e5e7eb;border-color:#4b5563;box-shadow:2px 2px #0b1220}.app-shell.theme-dark .file-item-row.is-active .file-item,.app-shell.theme-dark .icon-button.is-active,.app-shell.theme-dark .toolbar-action.is-active{background:#374151}.app-shell.theme-dark .toolbar-dropdown[open]>.toolbar-dropdown__trigger{background:#374151}.app-shell.theme-dark .toolbar-dropdown__menu{border-color:#4b5563;background:#1f2937;box-shadow:2px 2px #0b1220}.app-shell.theme-dark .tutorial-panel{border-color:#4b5563;background:#111827;box-shadow:2px 2px #0b1220}.app-shell.theme-dark .tutorial-panel__header small{color:#94a3b8}.app-shell.theme-dark .tutorial-panel__description,.app-shell.theme-dark .tutorial-panel__step{color:#e5e7eb}.app-shell.theme-dark .tutorial-panel__progress{color:#94a3b8}.app-shell.theme-dark .tutorial-panel__pending{color:#fdba74}.app-shell.theme-dark .file-delete-button{color:#fca5a5}.app-shell.theme-dark .file-delete-button:hover{background:#3f1d27}.app-shell.theme-dark .palette-search input,.app-shell.theme-dark .node-inline-label-input,.app-shell.theme-dark .canvas-edge-label-editor textarea,.app-shell.theme-dark .property-stack input,.app-shell.theme-dark .property-stack select,.app-shell.theme-dark .mermaid-panel textarea{background:#0f172a;color:#e5e7eb;border-color:#f59e0b}.app-shell.theme-dark .palette-search input:focus,.app-shell.theme-dark .node-inline-label-input:focus,.app-shell.theme-dark .canvas-edge-label-editor textarea:focus{box-shadow:0 0 0 2px #f59e0b}.app-shell.theme-dark .canvas-shell{background:linear-gradient(rgba(148,163,184,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.1) 1px,transparent 1px),#020617;background-size:24px 24px}.app-shell.theme-dark .workspace-menu-toggle{background:#1f2937;color:#e5e7eb;border-color:#4b5563;box-shadow:2px 2px #0b1220}.app-shell.theme-dark .workspace-menu-toggle:hover{background:#374151}.app-shell.theme-dark .mini-map{border-color:#4b5563;background:linear-gradient(rgba(148,163,184,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.1) 1px,transparent 1px),#0f172a}.app-shell.theme-dark .mini-map-viewport{border-color:#fbbf24;background:#fbbf2433;box-shadow:0 0 0 1px #f8fafc4d,inset 0 0 0 1px #0f172a80}.app-shell.theme-dark .mini-map-legend{color:#cbd5e1}.app-shell.theme-dark .canvas-edge-label{color:#f9fafb}.app-shell.theme-dark .canvas-edge-label-box{border-color:transparent;background:#0f172a29;color:#f9fafb;text-shadow:0 1px 3px rgba(2,6,23,.95),0 -1px 3px rgba(2,6,23,.8)}.app-shell.theme-dark.app-shell--perf-lite .canvas-edge-label-box{text-shadow:none}.app-shell.theme-dark .node-port:before{border-color:#9ca3af;background:#1f2937;box-shadow:1px 1px #0b1220}.app-shell.theme-dark .node-port:after{background:transparent;opacity:0}.app-shell.theme-dark .architecture-node.is-selected:not(.architecture-node--leaf) .node-port:after{opacity:0;background:transparent}.app-shell.theme-dark .architecture-node--leaf .node-port:after,.app-shell.theme-dark .architecture-node--leaf .node-port:hover:after,.app-shell.theme-dark .architecture-node--leaf .node-port:focus-visible:after,.app-shell.theme-dark .architecture-node--leaf.is-selected .node-port:after{background:transparent;opacity:0}.app-shell.theme-dark .node-port.is-connection-target:before{border-color:#f59e0b;background:#422006;box-shadow:0 0 0 2px #f59e0b47,1px 1px #0b1220}.app-shell.theme-dark .node-collapse-toggle,.app-shell.theme-dark .resize-control{border-color:#9ca3af;color:#e5e7eb;box-shadow:1px 1px #0b1220}.app-shell.theme-dark .node-collapse-toggle{background:#334155}.app-shell.theme-dark .resize-control{background:#f59e0b;color:#111827}.app-shell.theme-dark .context-properties-popup .panel-heading{background:#111827}.app-shell.theme-dark .context-properties-popup__close{background:#1f2937;border-color:#4b5563;color:#e5e7eb;box-shadow:2px 2px #0b1220}.app-shell.theme-dark .mermaid-preview{background:#020617}.app-shell.theme-dark .mermaid-preview__diagram .edgePath .path,.app-shell.theme-dark .mermaid-preview__diagram .flowchart-link,.app-shell.theme-dark .mermaid-preview__diagram .relationshipLine,.app-shell.theme-dark .mermaid-preview__diagram .relation,.app-shell.theme-dark .mermaid-preview__diagram .messageLine0,.app-shell.theme-dark .mermaid-preview__diagram .messageLine1{stroke:#f8fafc!important}.app-shell.theme-dark .mermaid-preview__diagram .arrowheadPath,.app-shell.theme-dark .mermaid-preview__diagram marker path{fill:#f8fafc!important;stroke:#f8fafc!important}.app-shell.theme-dark .error-text{color:#fecaca}.app-shell.theme-dark .lint-text{color:#86efac}.app-shell.theme-dark .toast{border-color:#fca5a5;background:#3f1d27;box-shadow:3px 3px #0b1220}.app-shell.theme-dark .toast--success{border-color:#4ade80;background:#133a2a;color:#bbf7d0}.app-shell.theme-dark .toast--success .toast-close{color:#86efac}.app-shell.theme-dark .canvas-usage-hint__content{border-color:#4b5563;background:#1f2937;color:#e5e7eb;box-shadow:3px 3px #0b1220}@media(max-width:1180px){.app-shell{grid-template-rows:auto 1fr}.topbar{grid-template-columns:1fr;padding:12px}.workspace{grid-template-columns:1fr;grid-template-rows:auto auto minmax(0,1fr)}.workspace--left-panels-hidden{grid-template-rows:minmax(0,1fr)}.sidebar,.palette{border-right:0;border-bottom:2px solid #111827}}.left-drawer{display:contents}.mobile-scrim,.topbar-actions-toggle{display:none}@media(max-width:768px){:root{--topbar-h: 52px}.app-shell{grid-template-rows:var(--topbar-h) minmax(0,1fr)}.topbar{grid-template-columns:auto minmax(0,1fr) auto;gap:10px;padding:0 10px;height:var(--topbar-h)}.brand-lockup{grid-column:1;gap:8px}.brand-lockup strong{font-size:14px}.brand-lockup div span{display:none}.brand-logo{width:28px;height:28px}.title-input{grid-column:2;min-width:0}.topbar-actions-toggle{grid-column:3;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:2px solid #111827;border-radius:8px;background:#fff;color:#111827;box-shadow:2px 2px #111827;cursor:pointer}.topbar-actions-toggle.is-active{background:#fef3c7}.toolbar{position:fixed;top:var(--topbar-h);right:0;width:min(86vw,320px);max-height:calc(100dvh - var(--topbar-h));flex-direction:column;align-items:stretch;gap:6px;padding:10px;overflow-y:auto;overscroll-behavior:contain;border-left:2px solid #111827;border-bottom:2px solid #111827;border-bottom-left-radius:12px;background:#fffaf0;box-shadow:-4px 4px #111827;transform:translate(110%);transition:transform .25s ease;z-index:345}.toolbar.toolbar--mobile-open{transform:translate(0)}.toolbar .toolbar-action,.toolbar .toolbar-dropdown,.toolbar .secondary-action,.toolbar .toolbar-dropdown__trigger{width:100%;justify-content:flex-start}.toolbar .toolbar-dropdown__menu{position:static;border:0;box-shadow:none;padding:2px 0 2px 12px}.left-drawer{position:fixed;top:var(--topbar-h);left:0;bottom:0;width:min(86vw,330px);display:flex;flex-direction:column;overflow:hidden;background:#fffaf0;border-right:2px solid #111827;box-shadow:4px 0 #111827;transform:translate(-110%);transition:transform .25s ease;z-index:340}.workspace:not(.workspace--left-panels-hidden) .left-drawer{transform:translate(0)}.left-drawer .sidebar{flex:0 0 auto;max-height:46%;width:100%;border-right:0;border-bottom:2px solid #111827;overflow:auto}.left-drawer app-palette,.left-drawer .palette{flex:1 1 auto;min-height:0;width:100%;border-right:0;overflow:hidden}.workspace,.workspace--left-panels-hidden{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.context-properties-popup{inset:auto 0 0!important;width:100%!important;max-width:100%!important;max-height:72dvh!important;border-radius:14px 14px 0 0;box-shadow:0 -3px #111827}.canvas-map{width:auto;right:10px;bottom:10px;padding:6px}.canvas-map .mini-map,.canvas-map .mini-map-legend{display:none}.mobile-scrim{position:fixed;inset:var(--topbar-h) 0 0 0;background:#11182761;z-index:335}.mobile-scrim.mobile-scrim--active{display:block}}.architecture-node--leaf{grid-template-columns:minmax(0,1fr)}
