@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Noto+Sans+KR:wght@400;500;600;700&display=swap";:root{font-family:Noto Sans KR,system-ui,sans-serif;color:#e9edf5;background:#101217;font-synthesis:none;--line: #2b303a;--panel: #191c23;--panel-2: #20242c;--muted: #8d95a6;--blue: #4c8dff;--orange: #ff9f1a}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow:hidden}button,select,textarea{font:inherit}button{color:inherit;cursor:pointer}.app-shell{height:100vh;display:grid;grid-template-rows:64px 52px 1fr 28px;background:radial-gradient(circle at 45% -20%,#232a3a 0,#111318 35%)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:0 22px 0 18px;border-bottom:1px solid #252933;background:#111318eb}.brand,.top-actions,.toolbar,.brand>div:last-child,.save-state,.account-button,.toolbar button,.example-select,.device-button,.workspace-heading,.panel-title,.panel-title>div,footer{display:flex;align-items:center}.brand{gap:12px}.brand-mark{width:37px;height:37px;border-radius:12px;display:grid;place-items:center;color:#121212;font-weight:900;font-style:italic;background:linear-gradient(135deg,#ffba25,#ff8514);box-shadow:0 0 24px #ff9f1a2b}.brand-mark span{font-size:19px;transform:skew(-8deg)}.brand>div:last-child{align-items:flex-start;flex-direction:column;gap:1px}.brand strong{font-size:16px;letter-spacing:-.3px}.brand small{color:var(--muted);font-size:11px}.top-actions{gap:8px}.save-state{gap:7px;margin-right:10px;color:#8f98aa;font-size:12px}.icon-button,.more-button,.panel-title button{border:0;background:transparent;padding:8px;color:#9da5b5}.account-button{gap:8px;border:1px solid #303747;border-radius:9px;background:#232832;padding:8px 13px;font-size:12px}.account-button span{color:#8fb5ff}.toolbar{gap:4px;padding:7px 16px 7px 76px;border-bottom:1px solid #2a2e37;background:#181b20}.toolbar button{gap:7px;height:36px;border:0;border-radius:7px;background:transparent;padding:0 12px;font-size:12px;color:#b9c0cd}.toolbar button:hover{background:#292e38;color:#fff}.toolbar .run-button{color:#fff;background:#2f73e8;padding:0 18px}.toolbar .run-button:hover{background:#4286f4}.toolbar button:disabled{opacity:.45;cursor:not-allowed}.toolbar-divider{width:1px;height:22px;margin:0 8px;background:#343943}.example-select{gap:9px;color:var(--muted);font-size:12px}.example-select select{color:#d9dee8;border:1px solid #343a46;background:#20242b;border-radius:7px;padding:7px 30px 7px 10px}.toolbar-spacer{flex:1}.toolbar .device-button{border:1px solid #3d4656;background:#20242b}.toolbar .import-button{border:1px solid #343b47}.file-input{display:none}.status-dot{width:7px;height:7px;border-radius:50%;background:#6d7482}.toolbar .device-button.requesting .status-dot,.toolbar .device-button.connecting .status-dot{background:#e9a83e;box-shadow:0 0 8px #e9a83e;animation:pulse 1s infinite}.toolbar .device-button.connected .status-dot{background:#46c28a;box-shadow:0 0 8px #46c28a}.toolbar .device-button.error .status-dot{background:#ef6666}.toolbar .save-button{color:#131418;background:#f5f7fa;font-weight:600}main{display:grid;grid-template-columns:60px minmax(0,1fr) 355px;min-height:0}main.has-side-panel{grid-template-columns:60px 255px minmax(0,1fr) 355px}.rail{padding:12px 8px;border-right:1px solid #292d36;background:#16191e;display:flex;align-items:center;flex-direction:column;gap:7px}.rail button{width:42px;height:42px;border:0;border-radius:10px;display:grid;place-items:center;color:#7e8798;background:transparent}.rail button:hover,.rail button.active{color:#dbe7ff;background:#252b36}.rail button.active{box-shadow:inset 3px 0 #4c8dff}.rail-spacer{flex:1}.project-panel{min-width:0;padding:20px 12px 14px;border-right:1px solid #292e37;background:#181b21;display:flex;flex-direction:column}.project-panel-header{padding:0 7px 16px;display:flex;justify-content:space-between;align-items:center}.project-panel-header>div{display:flex;flex-direction:column;gap:3px}.project-panel-header span{color:#657188;font-size:8px;letter-spacing:1.6px;font-weight:700}.project-panel-header strong{font-size:13px}.project-panel-header button{width:28px;height:28px;border:1px solid #3b4351;border-radius:7px;color:#bfc8d7;background:#242932;font-size:19px;line-height:1}.project-list{display:flex;flex-direction:column;gap:4px;overflow-y:auto}.project-item{min-width:0;display:flex;align-items:center;gap:9px;padding:9px 7px;border:1px solid transparent;border-radius:8px;cursor:pointer}.project-item:hover{background:#20252d}.project-item.active{border-color:#36435a;background:#252c37}.project-file-icon{flex:0 0 auto;width:29px;height:29px;display:grid;place-items:center;border-radius:7px;color:#8fb5ff;background:#26344a;font:9px DM Mono}.project-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px}.project-copy strong{overflow:hidden;color:#cbd2df;font-size:11px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.project-copy small{color:#697386;font-size:8px}.project-copy input{width:100%;min-width:0;outline:0;border:1px solid #4c8dff;border-radius:4px;color:#e6ebf4;background:#191d24;padding:3px 5px;font-size:10px}.project-actions{display:none;gap:1px}.project-item:hover .project-actions{display:flex}.project-actions button{width:22px;height:22px;border:0;border-radius:5px;color:#858fa0;background:transparent;font-size:13px}.project-actions button:hover{color:#fff;background:#363d49}.project-files{margin-top:18px;padding-top:13px;border-top:1px solid #2b3039}.project-files-header{padding:0 5px 8px;display:flex;justify-content:space-between;align-items:center}.project-files-header strong{color:#909bad;font-size:9px;font-weight:500}.project-files-header button{border:0;color:#7fa9ef;background:transparent;font-size:8px}.project-files>input{display:none}.project-files>p{margin:5px;color:#626d7e;font-size:7px;line-height:1.5}.project-file{display:grid;grid-template-columns:minmax(0,1fr) auto 18px;gap:5px;align-items:center;padding:6px 5px;border-radius:5px}.project-file:hover{background:#222832}.project-file-name{min-width:0;overflow:hidden;border:0;color:#aab5c5;background:transparent;padding:0;font:8px DM Mono;text-align:left;text-overflow:ellipsis;white-space:nowrap}.project-file small{color:#5f6b7d;font-size:7px}.project-file-delete{border:0;color:#687386;background:transparent}.project-storage-note{margin:auto 5px 0;color:#626c7d;font-size:8px;line-height:1.5}.device-panel{min-width:0;padding:22px 16px 16px;border-right:1px solid #292e37;background:#181b21;display:flex;flex-direction:column}.learning-panel,.package-panel{min-width:0;padding:22px 12px 16px;border-right:1px solid #292e37;background:#181b21;overflow-y:auto}.package-panel-header{padding:0 6px 15px}.package-panel-header span{color:#657188;font-size:8px;letter-spacing:1.5px;font-weight:700}.package-panel-header strong{display:block;margin-top:3px;font-size:13px}.package-panel-header p{margin:7px 0 0;color:#747f91;font-size:8px;line-height:1.5}.package-list{display:flex;flex-direction:column;gap:5px}.package-card{position:relative;display:grid;grid-template-columns:30px 1fr auto;gap:8px;align-items:center;padding:9px 7px;border:1px solid #303642;border-radius:8px;background:#1e2229}.package-logo{width:30px;height:30px;display:grid;place-items:center;border-radius:7px;color:#8eb4fa;background:#26344a;font:8px DM Mono}.package-card>div{min-width:0}.package-card strong,.package-card small{display:block}.package-card strong{color:#ced5e1;font-size:9px}.package-card small{margin-top:2px;color:#6d788a;font-size:7px}.package-card button{border:1px solid #3d4757;border-radius:5px;color:#98a4b6;background:#292f39;padding:5px 7px;font-size:7px}.package-card button.installed{border-color:#335f4f;color:#6fc49b;background:#24362f}.package-card button.error{color:#e09393}.package-card>p{grid-column:2 / 4;margin:-2px 0 0;color:#c37b7b;font-size:7px;line-height:1.4}.custom-package{margin-top:16px;padding:11px 9px;border:1px solid #303642;border-radius:8px;background:#1d2128}.custom-package label{color:#9ca7b8;font-size:8px}.custom-package>div{margin-top:7px;display:flex;gap:5px}.custom-package input{min-width:0;flex:1;outline:0;border:1px solid #394352;border-radius:5px;color:#dce2ec;background:#171b21;padding:6px;font:8px DM Mono}.custom-package button{border:0;border-radius:5px;color:#fff;background:#356fc8;padding:0 7px;font-size:7px}.custom-package p{margin:7px 0 0;color:#626d7f;font-size:7px;line-height:1.45}.learning-panel-header{padding:0 6px 16px}.learning-panel-header>span{color:#657188;font-size:8px;letter-spacing:1.6px;font-weight:700}.learning-panel-header strong{display:block;margin-top:3px;font-size:13px}.learning-panel-header p{margin:8px 0 0;color:#747f91;font-size:9px;line-height:1.55}.lesson-list{display:flex;flex-direction:column;gap:7px}.lesson-card{width:100%;display:grid;grid-template-columns:31px 1fr 10px;gap:9px;align-items:start;border:1px solid #303642;border-radius:9px;color:inherit;background:#1e2229;padding:11px 9px;text-align:left}.lesson-card:hover{border-color:#465774;background:#232934;transform:translateY(-1px)}.lesson-number{width:29px;height:29px;display:grid;place-items:center;border-radius:7px;color:#8eb4fa;background:#26344a;font:9px DM Mono}.lesson-number.level-로봇{color:#e9ad61;background:#483725}.lesson-card div{min-width:0}.lesson-card small{display:block;color:#657187;font-size:7px}.lesson-card strong{display:block;margin-top:2px;color:#cfd6e2;font-size:10px}.lesson-card p{margin:4px 0 0;color:#747f91;font-size:8px;line-height:1.45}.lesson-card>i{color:#687487;font-style:normal;align-self:center}.device-panel-header{padding:0 4px 18px;display:flex;flex-direction:column;gap:3px}.device-panel-header span{color:#657188;font-size:8px;letter-spacing:1.6px;font-weight:700}.device-panel-header strong{font-size:13px}.device-status-card{padding:22px 10px 16px;display:flex;align-items:center;flex-direction:column;border:1px solid #303744;border-radius:12px;background:#1e222a;text-align:center}.device-status-card.connected{border-color:#356854;background:linear-gradient(145deg,#1d2b28,#1e242b)}.device-illustration{position:relative;width:66px;height:66px;margin-bottom:13px;display:grid;place-items:center;border:1px solid #3d4758;border-radius:20px;color:#8baef1;background:linear-gradient(145deg,#2c3441,#1d222a);font:700 24px DM Mono;box-shadow:0 12px 24px #0004}.device-illustration i{position:absolute;right:-2px;bottom:4px;width:12px;height:12px;border:3px solid #1e222a;border-radius:50%;background:#6f7784}.device-status-card.connected .device-illustration i{background:#49c68f}.device-status-card strong{max-width:100%;overflow:hidden;color:#d8deea;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.device-status-card p{margin:4px 0;color:#778296;font-size:9px}.device-status-card small{color:#596477;font:8px DM Mono}.device-connect,.device-disconnect{width:100%;margin-top:12px;border:0;border-radius:8px;padding:10px;font-size:10px;font-weight:600}.device-connect{color:#fff;background:#3474da}.device-disconnect{color:#bbc3d0;background:#2b3039}.device-connect:disabled{opacity:.6;cursor:wait}.device-error{margin:10px 2px 0;padding:8px;border-radius:7px;color:#e69a9a;background:#552b2b55;font-size:9px;line-height:1.5}.device-guide,.device-protocol-note{margin-top:12px;color:#717c8e;font-size:9px;line-height:1.55}.device-steps{margin:20px 0 0;padding-left:21px;color:#8a94a5;font-size:9px;line-height:2}.device-protocol-note{margin-top:auto;padding:10px;border:1px solid #303744;border-radius:7px;background:#1d2128}.workspace{min-width:0;padding:28px 30px;overflow:auto}.workspace-heading{justify-content:space-between;margin:0 5px 19px}.eyebrow{display:block;color:#7083a5;font-size:9px;letter-spacing:1.8px;font-weight:700;margin-bottom:3px}h1{margin:0;font-size:18px;font-weight:600}.cells-list{display:flex;flex-direction:column;gap:18px;padding-bottom:30px}.code-card{position:relative;min-height:260px;display:grid;grid-template-columns:54px 1fr;border:1px solid #343b48;border-radius:13px;background:#1b1e24;box-shadow:0 10px 35px #0002;overflow:hidden}.code-card.active,.code-card:focus-within{border-color:#548de6;box-shadow:0 0 0 1px #548de644,0 14px 50px #0003}.cell-gutter{padding:16px 8px;border-right:1px solid #2c313a;background:#181b21;display:flex;align-items:center;flex-direction:column;gap:16px}.cell-gutter span{font-family:DM Mono;font-size:10px;color:#6f7785}.cell-gutter button{width:30px;height:30px;display:grid;place-items:center;border:1px solid #3d4654;border-radius:50%;color:#cdd4df;background:#282d36;padding-left:6px}.editor-wrap{display:flex;flex-direction:column;min-width:0}.cell-toolbar{padding:0 18px;display:flex;align-items:center;justify-content:space-between;color:#788294;font-size:11px;border-bottom:1px solid #292e37}.cell-toolbar-actions{display:flex;align-items:center;gap:3px}.cell-toolbar-actions button{width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:6px;color:#747e8f;background:transparent}.cell-toolbar-actions button:hover{color:#e4e9f2;background:#303640}.cell-toolbar-actions button:disabled{opacity:.25;cursor:default}.cell-toolbar-actions .cell-status{margin-right:7px}.cell-toolbar kbd{margin-left:8px;padding:2px 6px;border:1px solid #39404d;border-radius:4px;color:#697384;background:#1a1d23;font:9px DM Mono}.cell-status{display:flex;align-items:center;gap:6px}.cell-status i{width:6px;height:6px;border-radius:50%;background:#707888}.cell-status.loading i{background:#e7a940;box-shadow:0 0 8px #e7a940;animation:pulse 1s infinite}.cell-status.ready i{background:#47bf88;box-shadow:0 0 8px #47bf88}.cell-status.error i{background:#f26565;box-shadow:0 0 8px #f26565}.cm-editor{height:100%;background:#20242b!important;font:13px/1.75 DM Mono,monospace}.cm-editor.cm-focused{outline:none}.cm-editor .cm-scroller{min-height:210px;overflow:auto}.cm-editor .cm-content{padding:18px 0 60px;caret-color:#77a9ff}.cm-editor .cm-line{padding:0 18px 0 8px}.cm-editor .cm-gutters{padding-top:18px;border-right:1px solid #2b3039;color:#596273;background:#1c2026}.cm-editor .cm-activeLine,.cm-editor .cm-activeLineGutter{background:#29303b80}.cm-editor .cm-selectionBackground,.cm-editor ::selection{background:#3c68a966!important}.cm-editor .cm-cursor{border-left-color:#77a9ff}.cell-output{border-top:1px solid #303641;background:#191d23}.cell-output-header{height:31px;padding:0 12px 0 18px;display:flex;align-items:center;justify-content:space-between;color:#788396;font-size:9px}.cell-output.success .cell-output-header{color:#61b58b}.cell-output.error .cell-output-header{color:#e37f7f}.cell-output.stopped .cell-output-header{color:#d2a258}.cell-output-header button{border:0;color:#667184;background:transparent;font-size:8px}.cell-output-header button:hover{color:#dbe2ed}.cell-output pre{max-height:190px;margin:0;padding:2px 18px 16px;overflow:auto;white-space:pre-wrap;color:#b3bccb;font:11px/1.65 DM Mono,monospace}.cell-output-images{display:grid;gap:10px;padding:0 18px 18px}.cell-output-images figure{position:relative;margin:0;overflow:hidden;border:1px solid #343b47;border-radius:8px;background:#fff}.cell-output-images img{display:block;max-width:100%;height:auto;margin:0 auto}.cell-output-images button{position:absolute;right:7px;top:7px;border:1px solid #cbd1da;border-radius:5px;color:#3d4757;background:#fffffff0;padding:5px 7px;font-size:8px;opacity:0;transition:opacity .15s}.cell-output-images figure:hover button{opacity:1}.cell-output-files{display:flex;flex-wrap:wrap;gap:7px;padding:0 18px 16px}.cell-output-files>button{min-width:190px;display:grid;grid-template-columns:25px 1fr auto;align-items:center;gap:8px;border:1px solid #35404f;border-radius:7px;color:inherit;background:#202630;padding:8px;text-align:left}.cell-output-files>button:hover{border-color:#4b6f9f;background:#242d3a}.cell-output-files>button>span{width:25px;height:25px;display:grid;place-items:center;border-radius:5px;color:#80aef3;background:#293a52}.cell-output-files div{min-width:0}.cell-output-files strong,.cell-output-files small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-output-files strong{color:#bcc6d5;font:8px DM Mono}.cell-output-files small{margin-top:2px;color:#657184;font-size:7px}.cell-output-files i{color:#71829a;font-size:7px;font-style:normal}.add-cell-button{align-self:center;display:flex;align-items:center;gap:7px;border:1px solid #3b4555;border-radius:9px;color:#aeb8c8;background:#20252d;padding:9px 16px;font-size:11px}.add-cell-button:hover{border-color:#4c77ba;color:#fff;background:#252d39}.right-panel{min-width:0;padding:23px 20px;border-left:1px solid #2b3039;background:#171a20;display:flex;flex-direction:column}.panel-title{justify-content:space-between;padding-bottom:17px;border-bottom:1px solid #2a2f38}.panel-title>div{gap:9px;font-size:13px}.panel-title .console-actions{display:flex;gap:1px}.terminal-icon{color:#71a3ff;display:flex}.right-panel pre{flex:1;margin:0;padding:20px 4px;white-space:pre-wrap;color:#9ea7b7;font:12px/1.65 DM Mono,monospace;overflow:auto}.console-input{margin:0 0 12px;display:flex;align-items:center;gap:8px;padding:8px 9px;border:1px solid #4c79bf;border-radius:8px;background:#202733;box-shadow:0 0 0 2px #4c8dff18}.console-input span{color:#75a6f8;font:14px DM Mono}.console-input input{min-width:0;flex:1;outline:0;border:0;color:#e7edf8;background:transparent;font:11px DM Mono}.console-input input::placeholder{color:#5f6a7d}.console-input button{border:0;border-radius:5px;color:#dce9ff;background:#315f9f;padding:5px 8px;font-size:9px}.tip-card{display:flex;gap:11px;padding:14px;border:1px solid #343c4c;border-radius:10px;background:linear-gradient(135deg,#222b3a,#1d222a)}.tip-card>span{color:#74a6ff}.tip-card strong{font-size:11px;color:#cbd8ef}.tip-card p{margin:5px 0 0;color:#8893a7;font-size:10px;line-height:1.55}footer{justify-content:flex-end;gap:22px;padding:0 18px;border-top:1px solid #2b3039;color:#70798a;background:#16191e;font-size:10px}footer span:first-child{margin-right:auto;display:flex;align-items:center;gap:7px}footer i{width:6px;height:6px;border-radius:50%;background:#e7a940}@keyframes pulse{50%{opacity:.35}}@media(max-width:900px){main{grid-template-columns:55px 1fr}main.has-side-panel{grid-template-columns:55px 220px 1fr}.right-panel,.save-state{display:none}.toolbar{padding-left:10px}}@media(max-width:620px){main.has-side-panel{grid-template-columns:55px 1fr}main.has-side-panel .workspace{display:none}.project-panel{border-right:0}.device-button,.toolbar>button:nth-of-type(2),.toolbar>button:nth-of-type(3),.toolbar-divider,.example-select{display:none!important}.workspace{padding:20px 14px}.topbar{padding:0 12px}.brand small{display:none}.app-shell{grid-template-rows:58px 50px 1fr 26px}}
