.app-form-dialog{color:#203d36;background:#fff;border:1px solid #d4decf;border-radius:18px;width:min(440px,100vw - 32px);max-height:85dvh;margin:auto;padding:24px;font-family:inherit;position:fixed;inset:0;overflow:auto;box-shadow:0 24px 80px #102d3340}.app-form-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#163d3466}.app-form-dialog header{justify-content:space-between;align-items:center;gap:16px;display:flex}.app-form-dialog h2{margin:0;font-size:22px}.app-form-dialog header button{background:0 0;border:0;font-size:25px}.app-form-dialog p{color:#65766e;font-size:13px;line-height:1.6}.app-form-dialog label{gap:9px;margin:20px 0;font-size:13px;font-weight:600;display:grid}.app-form-dialog input,.app-form-dialog textarea{width:100%;font:inherit;resize:vertical;border:1px solid #bacab2;border-radius:9px;padding:12px;font-size:16px}.app-form-dialog footer{justify-content:flex-end;gap:10px;margin-top:24px;padding:16px 0 0;display:flex}.app-form-dialog button{color:#203d36;background:#fff;border:1px solid #d4decf;border-radius:9px;min-height:42px;padding:9px 16px}.app-form-dialog .app-dialog-submit{color:#fff;background:#214e40}.app-form-dialog .app-dialog-danger{color:#fff;background:#ad3830}.app-form-dialog button:disabled{opacity:.45}.app-form-dialog :focus-visible{outline-offset:3px;outline:3px solid #80a75b}
.ibvlaa_lab{color:#e4edf0;--border:#444f57;--teal:#a8dbcf;background:#23292e;flex-direction:column;height:100dvh;font:12px system-ui,sans-serif;display:flex;overflow:hidden}.ibvlaa_lab *{box-sizing:border-box}.ibvlaa_lab button,.ibvlaa_lab select,.ibvlaa_lab input{font:inherit}.ibvlaa_lab button,.ibvlaa_lab select{color:inherit;background:#303a42;border:1px solid #53616a;border-radius:5px;padding:7px 10px}.ibvlaa_lab button{cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;display:inline-flex}.ibvlaa_lab button:disabled,.ibvlaa_lab select:disabled{opacity:.42;cursor:default}.ibvlaa_lab button:not(:disabled):hover{background:#45535e}.ibvlaa_lab button:focus-visible,.ibvlaa_lab select:focus-visible,.ibvlaa_lab input:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.ibvlaa_header{border-bottom:1px solid var(--border);background:#1b2227;align-items:center;gap:25px;min-height:64px;padding:10px 20px;display:flex}.ibvlaa_brand{color:#9aafb9;white-space:nowrap;letter-spacing:1px;align-items:center;gap:14px;font-size:10px;text-decoration:none;display:flex}.ibvlaa_brand img{background:#fff;border-radius:4px;width:76px;padding:4px 6px}.ibvlaa_brand b{color:#f5d6a3}.ibvlaa_sourcePicker{align-items:center;gap:9px;min-width:0;display:flex}.ibvlaa_sourcePicker label{color:#adbdc6;font-size:10px}.ibvlaa_sourcePicker select{max-width:330px}.ibvlaa_import{margin-left:auto}.ibvlaa_back{color:#c7d8df;align-items:center;gap:6px;text-decoration:none;display:flex}.ibvlaa_toolbar{background:#30373e;border-bottom:1px solid #465058;flex-wrap:wrap;align-items:center;gap:10px;min-height:48px;padding:8px 16px;display:flex}.ibvlaa_live{color:#c7d8d5;align-items:center;gap:7px;min-width:95px;display:flex}.ibvlaa_live i{background:#80939a;border-radius:50%;width:7px;height:7px}.ibvlaa_live i[data-running=true]{background:#a4e6bb;box-shadow:0 0 0 4px #a4e6bb18}.ibvlaa_timer{color:#f2d29e;font-variant-numeric:tabular-nums;min-width:102px}.ibvlaa_timer small{color:#a5b4bd;font-size:9px}.ibvlaa_runButtons{gap:5px;margin-right:auto;display:flex}.ibvlaa_lab .ibvlaa_run{color:#1a3e34;background:#b6dece;border-color:#b6dece;font-weight:700}.ibvlaa_workspace{flex:1;grid-template-columns:minmax(470px,1fr) minmax(390px,1fr);min-height:0;display:grid}.ibvlaa_codePane,.ibvlaa_playgroundPane{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.ibvlaa_codePane{border-right:1px solid #121d24}.ibvlaa_paneTitle{background:#263139;border-bottom:1px solid #46525a;flex:none;justify-content:space-between;align-items:center;gap:10px;height:42px;padding:8px 15px;display:flex}.ibvlaa_paneTitle>span{letter-spacing:1.2px;color:#c1d1d6;font-size:10px}.ibvlaa_paneTitle small{color:#99adb7;font-size:9px}.ibvlaa_paneTitle select{padding:4px 7px;font-size:11px}.ibvlaa_codePane>iframe{background:#fff;border:0;flex:1;width:100%;min-height:0}.ibvlaa_loading{color:#355751;z-index:2;background:#e8eeed;place-items:center;display:grid;position:absolute;inset:42px 0 0}.ibvlaa_viewport{background:#e9eff0;flex:1;min-height:240px;position:relative}.ibvlaa_viewport>iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.ibvlaa_viewTools{color:#355750;background:#ffffffeb;border:1px solid #d2dcd8;border-radius:6px;align-items:center;gap:8px;padding:5px;font-size:10px;display:flex;position:absolute;top:12px;left:12px}.ibvlaa_viewTools select{color:#355750;background:#f4f7f4;border-color:#b4c6bf;padding:5px;font-size:10px}.ibvlaa_viewTools label{align-items:center;gap:5px;display:flex}.ibvlaa_viewTools input{accent-color:#507f71}.ibvlaa_telemetry{background:#263238;border-top:1px solid #4c5d60;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:16px;display:grid}.ibvlaa_telemetry>div{flex-direction:column;gap:7px;display:flex}.ibvlaa_telemetry span{color:#98adb4;font-size:9px}.ibvlaa_telemetry strong{font-variant-numeric:tabular-nums;color:#d6e9e0;white-space:nowrap;font-size:15px;font-weight:600}.ibvlaa_telemetry small{color:#9eb1b8;font-size:9px}.ibvlaa_telemetry [data-hit=true]{color:#ffc69d}.ibvlaa_console{color:#b4c8cb;background:#1f2a30;border-top:1px solid #3e5056;padding:10px 15px;font-size:10px}.ibvlaa_console summary{cursor:pointer}.ibvlaa_console pre{white-space:pre-wrap;overflow-wrap:anywhere;color:#d2e9d8;max-height:110px;font:11px ui-monospace,monospace;overflow:auto}.ibvlaa_limit{color:#93a9b1;background:#1b252b;margin:0;padding:8px 14px;font-size:9px;line-height:1.5}.ibvlaa_notice{color:#ffe1b6;background:#59442d;border-bottom:1px solid #966d3e;justify-content:space-between;align-items:center;gap:12px;margin:0;padding:9px 18px;font-size:11px;line-height:1.5;display:flex}.ibvlaa_goal{color:#20583b;background:#c1e8c4;border:1px solid #5b9c6b;border-radius:6px;padding:10px 14px;font-weight:700;position:absolute;top:16px;right:16px}.ibvlaa_modelLoading{color:#345349;background:#fffffff0;border-radius:7px;padding:12px 16px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ibvlaa_settings{z-index:10;color:#d3e3e8;background:#26323b;border:1px solid #758c98;border-radius:9px;width:min(365px,100vw - 24px);padding:20px;position:absolute;top:120px;bottom:14px;right:12px;overflow:auto;box-shadow:0 15px 55px #0007}.ibvlaa_settings form{gap:15px;display:grid}.ibvlaa_settings header{justify-content:space-between;align-items:center;display:flex}.ibvlaa_settings header span{letter-spacing:1px;color:#9ab5bd;font-size:9px}.ibvlaa_settings h2{margin:5px 0;font-size:20px}.ibvlaa_settings label{gap:6px;font-size:11px;display:grid}.ibvlaa_settings input{color:#eef5ef;background:#1b272f;border:1px solid #647c88;border-radius:5px;width:100%;padding:9px}.ibvlaa_settings p{color:#a9c0c8;margin:0;font-size:10px;line-height:1.7}.ibvlaa_settings dl{gap:5px;margin:0;font-size:10px;line-height:1.6;display:grid}.ibvlaa_settings dt{color:#95adb8}.ibvlaa_settings dd{color:#d6e4e7;margin:0 0 7px}.ibvlaa_lab .ibvlaa_apply{color:#1a3e34;background:#b6dece;border-color:#b6dece;padding:11px;font-weight:700}@media (max-width:1100px){.ibvlaa_header{gap:12px;padding:8px 12px}.ibvlaa_brand>span,.ibvlaa_sourcePicker label,.ibvlaa_paneTitle small{display:none}.ibvlaa_sourcePicker select{max-width:240px}.ibvlaa_telemetry{gap:5px;padding:12px 9px}.ibvlaa_telemetry strong{font-size:12px}.ibvlaa_toolbar{gap:6px}.ibvlaa_workspace{grid-template-columns:minmax(420px,1.05fr) minmax(340px,1fr)}}@media (max-width:780px){.ibvlaa_lab{height:auto;min-height:100dvh;overflow:visible}.ibvlaa_header{flex-wrap:wrap;gap:10px}.ibvlaa_sourcePicker{flex:1}.ibvlaa_sourcePicker select{width:100%;max-width:none}.ibvlaa_import{margin-left:0;font-size:10px}.ibvlaa_back{margin-left:auto}.ibvlaa_toolbar{z-index:5;position:sticky;top:0}.ibvlaa_toolbar>button{font-size:10px}.ibvlaa_live{min-width:80px}.ibvlaa_timer small{display:none}.ibvlaa_timer{min-width:50px}.ibvlaa_workspace{flex-direction:column;display:flex}.ibvlaa_codePane{height:58dvh;min-height:400px}.ibvlaa_playgroundPane{height:68dvh;min-height:470px}.ibvlaa_runButtons{order:1;width:100%}.ibvlaa_telemetry strong{font-size:13px}.ibvlaa_settings{position:fixed;top:15px;bottom:15px}.ibvlaa_viewport{min-height:300px}}.ibvlaa_challenge{color:#d9eee1;background:#21352f;border-bottom:1px solid #466758;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;display:flex}.ibvlaa_challenge p{max-width:560px;margin:6px 0;font-size:11px;line-height:1.6}.ibvlaa_challenge small{color:#a5d6b7;font-variant-numeric:tabular-nums;font-size:10px}.ibvlaa_challengeActions{flex:none;gap:8px;display:grid}.ibvlaa_challengeActions button{font-size:10px!important}.ibvlaa_challengeActions label{align-items:center;gap:6px;font-size:10px;display:flex}.ibvlaa_challengeActions input{accent-color:#b6dece}.ibvlaa_editHint{color:#ffe1b5;background:#5b482d;margin:0;padding:8px 14px;font-size:11px;line-height:1.5}.ibvlaa_limit a{color:#b4e7cf;text-decoration:underline}@media (max-width:1100px){.ibvlaa_challenge{align-items:flex-start;padding:10px}.ibvlaa_challenge p{font-size:10px}.ibvlaa_challengeActions{max-width:125px}}.ibvlaa_lesson{color:#bfd4d1;background:#26353a;border-bottom:1px solid #465a60;padding:9px 15px;font-size:11px}.ibvlaa_lesson>summary{cursor:pointer}.ibvlaa_lesson>div{max-height:32dvh;padding:8px 4px;line-height:1.7;overflow:auto}.ibvlaa_lesson h3{color:#dcf0e6;margin:14px 0 5px;font-size:12px}.ibvlaa_lesson ul,.ibvlaa_lesson ol{padding-left:20px}.ibvlaa_lesson dl>div{gap:10px;margin:7px 0;display:flex}.ibvlaa_lesson dt{font-weight:700}.ibvlaa_lesson dd{margin:0}.ibvlaa_lesson a{color:#b9e5cb}.ibvlaa_lesson button{margin-left:10px;font-size:10px}.ibvlaa_playgroundPane{overflow-y:auto}.ibvlaa_viewTools{flex-wrap:wrap;max-width:calc(100% - 24px)}.ibvlaa_viewTools button{color:#355750;background:#f4f7f4;border-color:#b4c6bf;padding:5px 7px;font-size:10px}.ibvlaa_viewTools button svg{width:13px;height:13px}.ibvlaa_lab .ibvlaa_viewTools button:not(:disabled):hover{color:#264b3c;background:#e0ece6}.ibvlaa_lab{grid-template-rows:44px auto minmax(0,1fr);grid-template-columns:minmax(300px,1fr) auto;display:grid}.ibvlaa_header{border-bottom:1px solid var(--border);grid-area:1/1;gap:10px;height:44px;min-height:0;padding:5px 10px;overflow:hidden}.ibvlaa_brand{letter-spacing:.7px;gap:7px;font-size:9px}.ibvlaa_brand img{width:53px;padding:3px 4px}.ibvlaa_sourcePicker{flex:1;gap:5px}.ibvlaa_sourcePicker label{display:none}.ibvlaa_sourcePicker select{width:100%;min-width:80px;max-width:260px;height:30px;padding:3px 6px;font-size:11px}.ibvlaa_header .ibvlaa_import{margin-left:auto;padding:5px}.ibvlaa_back{flex:none;gap:4px}.ibvlaa_toolbar{background:#1b2227;flex-wrap:nowrap;grid-area:1/2;gap:6px;height:44px;min-height:0;padding:5px 10px 5px 6px}.ibvlaa_toolbar button{height:30px;padding:4px 7px;font-size:11px}.ibvlaa_runButtons{flex:none;order:0;gap:4px;width:auto;margin-right:5px}.ibvlaa_live{white-space:nowrap;text-overflow:ellipsis;min-width:0;max-width:145px;font-size:10px;display:block;overflow:hidden}.ibvlaa_live i{margin-right:5px;display:inline-block}.ibvlaa_timer{white-space:nowrap;min-width:45px;font-size:11px}.ibvlaa_timer small{display:none}.ibvlaa_notice{grid-area:2/1/auto/-1;margin:0;padding:6px 12px;font-size:11px;line-height:1.4}.ibvlaa_notice button{padding:3px 7px;font-size:10px}.ibvlaa_workspace{grid-area:3/1/auto/-1}.ibvlaa_paneTitle{height:28px;padding:3px 10px}.ibvlaa_paneTitle small{display:none}.ibvlaa_paneTitle select{max-width:230px;padding:2px 6px;font-size:10px}.ibvlaa_loading{inset:28px 0 0}.ibvlaa_challenge{align-items:center;gap:10px;padding:8px 12px}.ibvlaa_challenge>div:first-child{flex:1;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;min-width:0;display:grid}.ibvlaa_challenge strong{font-size:12px}.ibvlaa_challengeInfo{grid-area:1/2;font-size:10px}.ibvlaa_challengeInfo summary{color:#b8d8c9;cursor:pointer;white-space:nowrap}.ibvlaa_challengeInfo[open]{grid-area:3/1/auto/-1}.ibvlaa_challengeInfo p{margin:6px 0 0;font-size:11px;line-height:1.6}.ibvlaa_challenge small{grid-area:2/1/auto/-1;font-size:10px}.ibvlaa_challengeActions{align-items:center;gap:10px;max-width:none;display:flex}.ibvlaa_challengeActions button{padding:4px 6px}.ibvlaa_challengeActions label{white-space:nowrap}.ibvlaa_lesson{padding:6px 12px;font-size:10px}.ibvlaa_telemetry{gap:7px;padding:9px 12px}.ibvlaa_telemetry>div{gap:3px}.ibvlaa_telemetry strong{font-size:13px}.ibvlaa_console{padding:6px 12px}.ibvlaa_limit{padding:6px 12px;font-size:9px}@media (max-width:1550px){.ibvlaa_utilityLabel,.ibvlaa_brand>span{display:none}.ibvlaa_sourcePicker select{max-width:230px}.ibvlaa_toolbar .ibvlaa_live{max-width:130px}.ibvlaa_header .ibvlaa_import,.ibvlaa_header .ibvlaa_back{flex:none}.ibvlaa_header button,.ibvlaa_header .ibvlaa_back{justify-content:center;width:30px;min-width:30px}.ibvlaa_toolbar .ibvlaa_runButtons button:not(:first-child){min-width:30px}.ibvlaa_toolbar button[aria-label="Cấu hình robot"]{width:30px}}@media (max-width:1100px){.ibvlaa_challenge>div:first-child{display:block}.ibvlaa_challengeInfo{margin:3px 0}.ibvlaa_challenge small{display:block}.ibvlaa_challengeActions{gap:5px;display:grid}.ibvlaa_toolbar .ibvlaa_live{max-width:95px}.ibvlaa_toolbar button{padding:4px 5px}.ibvlaa_sourcePicker select{max-width:190px}}@media (max-width:1000px){.ibvlaa_lab{grid-template-rows:40px 38px auto minmax(0,1fr);grid-template-columns:1fr}.ibvlaa_header{flex-wrap:nowrap;grid-area:1/1;height:40px}.ibvlaa_toolbar{grid-area:2/1;justify-content:flex-start;height:38px;padding:3px 10px;overflow-x:auto}.ibvlaa_toolbar .ibvlaa_live{max-width:150px}.ibvlaa_runButtons{margin-right:auto}.ibvlaa_notice{grid-row:3}.ibvlaa_workspace{grid-row:4}.ibvlaa_sourcePicker select{max-width:320px}.ibvlaa_brand>span,.ibvlaa_toolbar .ibvlaa_utilityLabel{display:inline}.ibvlaa_toolbar button[aria-label="Cấu hình robot"]{width:auto}}@media (max-width:780px){.ibvlaa_lab{grid-template-rows:40px 38px auto auto;height:auto;min-height:100dvh;overflow:visible}.ibvlaa_header{gap:8px;padding:4px 8px}.ibvlaa_brand>span{display:none}.ibvlaa_toolbar{z-index:5;gap:5px;position:sticky;top:0}.ibvlaa_toolbar .ibvlaa_utilityLabel{display:none}.ibvlaa_toolbar .ibvlaa_live{flex-shrink:0;max-width:100px}.ibvlaa_runButtons{order:0;width:auto}.ibvlaa_workspace{display:flex}.ibvlaa_codePane{height:58dvh;min-height:350px}.ibvlaa_playgroundPane{height:72dvh;min-height:480px}.ibvlaa_challengeInfo summary{font-size:10px}.ibvlaa_telemetry strong{font-size:12px}}
