:root{--color-primary:#2d0f52;--color-primary-light:#5b2fb8;--color-accent:#7c5cff;--color-bg:#f6f5fb;--color-card:#fff;--color-text:#221a35;--color-muted:#6b6580;--color-border:#e4e1f0;--color-success:#1f9d55;--color-warning:#b8860b;--color-danger:#c0392b}*{box-sizing:border-box}html,body{background:var(--color-bg);color:var(--color-text);margin:0;padding:0;font-family:Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}h1,h2,h3{color:var(--color-primary);margin-top:0}a{color:var(--color-accent);text-decoration:none}.logo{object-fit:contain;width:auto;height:44px}.navbar{background:var(--color-card);border-bottom:1px solid var(--color-border);z-index:10;justify-content:space-between;align-items:center;gap:1.5rem;padding:.75rem 2rem;display:flex;position:sticky;top:0}.navbar-brand{color:var(--color-primary);align-items:center;gap:.75rem;font-size:1.1rem;font-weight:700;display:flex}.navbar-links{flex:1;gap:1.5rem;display:flex}.navbar-link{color:var(--color-text);font-weight:500}.navbar-link:hover{color:var(--color-accent)}.navbar-user{align-items:center;gap:1rem;display:flex}.navbar-username{color:var(--color-primary);font-weight:600}.page-content{flex-direction:column;gap:1.5rem;max-width:1000px;margin:0 auto;padding:2rem;display:flex}.page-loading{text-align:center;color:var(--color-muted);padding:3rem}.panel{background:var(--color-card);border:1px solid var(--color-border);border-radius:14px;padding:1.5rem 2rem}.muted{color:var(--color-muted)}.error{color:var(--color-danger);font-weight:600}.back-link{color:var(--color-primary);margin-bottom:.5rem;font-weight:600;display:inline-block}.live-panel .live-content{flex-direction:column;gap:.75rem;display:flex}.live-badge{background:var(--color-danger);color:#fff;letter-spacing:.05em;border-radius:999px;align-self:flex-start;padding:.25rem .75rem;font-size:.75rem;font-weight:700;display:inline-block}.live-title{font-size:1.1rem;font-weight:600}.live-frame-wrapper{background:#000;border-radius:10px;width:100%;padding-top:56.25%;position:relative;overflow:hidden}.live-frame{border:0;width:100%;height:100%;position:absolute;inset:0}.module-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-top:1rem;display:grid}.module-card{background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text);border-radius:12px;padding:1.25rem;transition:transform .15s,box-shadow .15s;display:block}.module-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(45,15,82,.1)}.module-card h3{margin:.5rem 0}.module-card-header{justify-content:space-between;align-items:center;display:flex}.module-language{color:var(--color-accent);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:700}.badge{border-radius:999px;padding:.2rem .6rem;font-size:.7rem;font-weight:700}.badge-neutral{color:var(--color-muted);background:#e4e1f0}.badge-progress{color:var(--color-warning);background:#fff2cc}.badge-done{color:var(--color-success);background:#d9f3e2}.code-block{border:1px solid var(--color-border);border-radius:10px;overflow:hidden}.code-block-header{background:var(--color-primary);color:#fff;text-transform:uppercase;letter-spacing:.04em;padding:.4rem .9rem;font-size:.75rem;font-weight:700}.code-block pre{color:#f1eefc;background:#1c1530;margin:0;padding:1.25rem;font-family:Fira Code,Cascadia Code,monospace;font-size:.85rem;line-height:1.5;overflow-x:auto}.progress-actions{gap:.75rem;margin-top:1rem;display:flex}.btn{border:1px solid var(--color-border);background:var(--color-card);color:var(--color-text);cursor:pointer;border-radius:8px;padding:.6rem 1.2rem;font-weight:600}.btn:hover{border-color:var(--color-accent)}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-light);border-color:var(--color-primary-light)}.btn-ghost{color:var(--color-muted);background:0 0;border-color:transparent}form label{color:var(--color-text);flex-direction:column;gap:.35rem;margin-bottom:1rem;font-weight:600;display:flex}input{border:1px solid var(--color-border);border-radius:8px;padding:.6rem .75rem;font-size:1rem;font-weight:400}input:focus{border-color:var(--color-accent);outline:none}.live-form{flex-direction:column;max-width:480px;margin-top:1rem;display:flex}.live-form-actions{gap:.75rem;display:flex}.btn-spinner{vertical-align:-.1em;border:2px solid;border-right-color:transparent;border-radius:50%;width:.85em;height:.85em;margin-right:.5em;animation:.6s linear infinite btn-spin;display:inline-block}@keyframes btn-spin{to{transform:rotate(360deg)}}.topbar-add-btn{color:#d4d4d4;cursor:pointer;background:#1e1e1e;border:1px solid #3a3a3a;border-radius:4px;width:24px;height:24px;padding:0;font-size:1rem;line-height:1}.topbar-add-btn:hover{color:#fff;border-color:#666}.name-input{width:100%;min-width:110px;padding:.3rem .45rem;font-size:.9rem}.btn-danger{color:#c1392b}.btn-danger:hover{color:#fff;background:#c1392b}.catalog-form{gap:.75rem;max-width:480px;margin:1rem 0;display:flex}.catalog-form input{flex:auto}.catalog-list{max-width:480px;margin:0;padding:0;list-style:none}.catalog-item{border-bottom:1px solid #ececec;justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 0;display:flex}.catalog-item:last-child{border-bottom:0}.slides-upload-form{flex-wrap:wrap;align-items:flex-end;gap:1rem;max-width:640px;margin-top:1rem;display:flex}.slides-upload-form label{color:var(--color-muted);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.slides-admin-controls{align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.slides-preview-wrapper{background:#111;border:1px solid #e2e2e2;border-radius:6px;max-width:480px;overflow:hidden}.slides-preview-img{width:100%;height:auto;display:block}.slides-nav{align-items:center;gap:1rem;margin-top:.75rem;display:flex}.slides-actions{gap:.75rem;margin-top:1rem;display:flex}.slide-editor-toolbar{flex-wrap:wrap;gap:.5rem;margin:.75rem 0;display:flex}.slide-editor-preview{aspect-ratio:16/9;background:#111;border-radius:6px;width:100%;max-width:480px;margin:.5rem 0 1rem;position:relative;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.12);container-type:size}.slide-editor-list{flex-direction:column;gap:.75rem;display:flex}.slide-card{cursor:pointer;background:#fafafa;border:1px solid #e2e2e2;border-radius:8px;padding:.75rem}.slide-card-head{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.slide-card-num{color:#666;font-size:.85rem;font-weight:700}.slide-card-head input[type=color]{cursor:pointer;background:0 0;border:1px solid #ccc;border-radius:4px;width:38px;height:28px;padding:0}.slide-card-move{gap:.25rem;margin-left:auto;display:flex}.slide-card-move .btn{padding:.2rem .5rem;line-height:1}.slide-card-title,.slide-card-body{box-sizing:border-box;width:100%;font:inherit;border:1px solid #d8d8d8;border-radius:6px;margin-bottom:.5rem;padding:.5rem .6rem}.slide-card-title{font-weight:600}.slide-card-body{resize:vertical;margin-bottom:0;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.85rem}.auth-page{background:linear-gradient(135deg, var(--color-primary), var(--color-accent));justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.auth-card{background:var(--color-card);text-align:center;border-radius:16px;width:100%;max-width:420px;padding:2.5rem;box-shadow:0 20px 60px rgba(0,0,0,.25)}.auth-card form{text-align:left;margin-top:1.5rem}.auth-logo{height:64px;margin-bottom:1rem}.auth-switch{color:var(--color-muted);margin-top:1.5rem}.auth-card .btn-primary{width:100%}.checkbox-label{align-items:center;flex-direction:row!important;gap:.5rem!important;font-weight:400!important}.checkbox-label input[type=checkbox]{width:auto}.ide{color:#d4d4d4;background:#1e1e1e;flex-direction:column;height:100vh;font-family:Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;display:flex;overflow:hidden}.ide-topbar{background:#252526;border-bottom:1px solid #1a1a1a;flex:none;justify-content:space-between;align-items:center;gap:1rem;padding:.4rem 1rem;display:flex}.ide-brand{color:#fff;align-items:center;gap:.6rem;font-weight:700;display:flex}.ide-logo{height:28px}.course-status{white-space:nowrap;background:#252526;border:1px solid #333;border-radius:999px;align-items:center;gap:.4rem;padding:.2rem .6rem;font-size:.78rem;display:flex}.course-status-dot{background:#6b6b6b;border-radius:50%;flex:none;width:8px;height:8px}.course-status.live .course-status-dot{background:#3fb950;animation:1.6s ease-in-out infinite live-pulse;box-shadow:0 0 0 3px rgba(63,185,80,.2)}@keyframes live-pulse{50%{box-shadow:0 0 0 5px rgba(63,185,80,0)}}.course-status-name{color:#d4d4d4;text-overflow:ellipsis;max-width:220px;font-weight:600;overflow:hidden}.course-status-state{color:#8a8a8a;text-transform:uppercase;letter-spacing:.04em;font-size:.68rem}.course-status.live .course-status-state{color:#3fb950}.ide-topbar-live{align-items:center;gap:.5rem;display:flex}.topbar-select{color:#d4d4d4;background:#1e1e1e;border:1px solid #3a3a3a;border-radius:4px;padding:.25rem .5rem;font-size:.8rem}.topbar-select:hover{border-color:#555}.topbar-live-badge{letter-spacing:.04em;color:#fff;background:#c1392b;border-radius:3px;padding:.15rem .45rem;font-size:.65rem;font-weight:700}.ide-topbar-right{align-items:center;gap:.75rem;margin-left:auto;display:flex}.ide-editor-area .CodeMirror{font-size:var(--cm-font-size,14px)}.ide-statusbar-right{align-items:center;gap:1rem;display:flex}.zoom-control{align-items:center;gap:.15rem;display:flex}.zoom-btn,.zoom-label{color:#bbb;cursor:pointer;background:0 0;border:1px solid #3a3a3a;border-radius:4px;justify-content:center;align-items:center;height:20px;padding:0 .35rem;font-size:.72rem;display:inline-flex}.zoom-btn{width:22px;padding:0;font-size:.85rem}.zoom-btn:hover,.zoom-label:hover{color:#fff;border-color:#666}.zoom-label{font-variant-numeric:tabular-nums;justify-content:center;min-width:42px}.ide-username{color:#bbb;font-size:.9rem;font-weight:600}.profile-tag{letter-spacing:.03em;text-transform:uppercase;color:#cfcfcf;background:#3a3a3a;border-radius:999px;padding:.12rem .5rem;font-size:.68rem;font-weight:700}.profile-tag-admin{color:#fff;background:#512bd4}.ide-topbar-right .btn{color:#d4d4d4;background:0 0;border-color:#3c3c3c;padding:.35rem .8rem;font-size:.85rem}.ide-topbar-right .btn:hover{border-color:var(--color-accent);color:#fff}.ide-body{flex:auto;min-height:0;display:flex}.ide-sidebar{background:#252526;border-right:1px solid #1a1a1a;flex-direction:column;flex:0 0 400px;display:flex;overflow-y:auto}.ide-roster{background:#1e1e1e;border-right:1px solid #2a2a2a;flex-direction:column;flex:0 0 210px;display:flex;overflow-y:auto}.ide-roster-header{letter-spacing:.05em;color:#9d9d9d;flex-direction:column;gap:.1rem;padding:.6rem .75rem .4rem;font-size:.7rem;font-weight:700;display:flex}.ide-roster-header .inscrits-count{letter-spacing:0;color:#6f9f6f;font-weight:500}.roster-grid-btn{color:#ddd;cursor:pointer;background:#2a2a31;border:1px solid #3a3a44;border-radius:6px;justify-content:center;align-items:center;gap:.4rem;margin:0 .6rem .5rem;padding:.4rem;font-size:.75rem;font-weight:600;display:flex}.roster-grid-btn:hover{background:#33333b}.roster-grid-btn .icon{width:14px;height:14px}.roster-list{flex-direction:column;display:flex}.roster-row{align-items:center;gap:.5rem;padding:.3rem .7rem;display:flex}.roster-row.clickable{cursor:pointer}.roster-row.clickable:hover{background:#2a2d2e}.roster-row.offline{opacity:.45}.roster-row .student-avatar{flex:none;width:26px;height:26px}.roster-name{color:#dcdcdc;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.35rem;min-width:0;font-size:.78rem;display:flex;overflow:hidden}.roster-tag{text-transform:uppercase;color:#fff;background:var(--color-accent,#7c5cff);border-radius:4px;flex:none;padding:.05rem .3rem;font-size:.58rem}.ide-sidebar-footer{background:#1a1a1a;border-top:1px solid #1a1a1a;gap:1px;margin-top:auto;display:flex;position:sticky;bottom:0}.sidebar-tool-btn{color:#bbb;cursor:pointer;background:#2d2d2d;border:none;flex:1 1 0;justify-content:center;align-items:center;gap:.4rem;padding:.55rem;font-size:.78rem;font-weight:600;display:flex}.sidebar-tool-btn:hover{color:#fff;background:#37373d}.tool-panel{border:1px solid var(--color-border);border-radius:8px;margin:.75rem 0;overflow:hidden}.tool-row{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.55rem .75rem;font-size:.85rem;display:flex}.tool-row:last-child{border-bottom:0}.tool-badge{color:var(--color-accent);background:#ede9fb;border-radius:999px;padding:.1rem .5rem;font-size:.68rem;font-weight:700}.tool-soon{color:var(--color-muted);margin:.25rem 0 0;font-size:.75rem;font-style:italic}.ide-sidebar-header{letter-spacing:.05em;color:#9d9d9d;justify-content:space-between;align-items:center;padding:.6rem .75rem;font-size:.7rem;font-weight:700;display:flex}.tree-section-label{letter-spacing:.08em;text-transform:uppercase;color:#8a8a8a;border-top:1px solid #2a2a2a;margin-top:.25rem;padding:.5rem .75rem .3rem;font-size:.62rem;font-weight:700}.tree-section-label:first-child{border-top:none;margin-top:0}.tree-section-cours{color:var(--color-accent,#7c5cff)}.mode-switch{gap:.25rem;padding:.5rem .6rem .25rem;display:flex}.mode-btn{color:#bdbdbd;cursor:pointer;background:#2a2a2a;border:1px solid #333;border-radius:6px;flex:1;padding:.4rem .5rem;font-size:.78rem;font-weight:600;transition:background .15s,color .15s}.mode-btn:hover{background:#333}.mode-btn.active{background:var(--color-accent,#7c5cff);border-color:var(--color-accent,#7c5cff);color:#fff}.distribute-btn{color:#fff;cursor:pointer;background:#16a34a;border:none;border-radius:6px;justify-content:center;align-items:center;gap:.45rem;margin:.1rem .6rem .35rem;padding:.45rem .6rem;font-size:.78rem;font-weight:600;transition:background .15s;display:flex}.distribute-btn:hover{background:#15803d}.distribute-btn .icon{width:15px;height:15px}.ide-sidebar-actions{gap:.25rem;display:flex}.file-tree{flex:1;padding-bottom:1rem;overflow-y:auto}.tree-node{flex-direction:column;display:flex}.tree-row{cursor:pointer;white-space:nowrap;align-items:center;gap:.3rem;padding-top:.3rem;padding-bottom:.3rem;padding-right:.5rem;font-size:.85rem;display:flex}.tree-chevron{color:#8a8a8a;flex:none;justify-content:center;align-items:center;width:.85em;font-size:.7rem;display:inline-flex}.tree-chevron-spacer{visibility:hidden}.tree-type-tag{text-transform:uppercase;letter-spacing:.03em;color:#cbb8ff;background:rgba(124,92,255,.18);border-radius:4px;flex:none;margin-left:.35rem;padding:.03rem .4rem;font-size:.6rem;font-weight:700}.tree-row:hover{background:#2a2d2e}.tree-row.active{background:#37373d}.tree-icon{flex:none;font-size:.85rem}.tree-name{text-overflow:ellipsis;flex:auto;overflow:hidden}.tree-actions{flex:none;gap:.15rem;display:none}.tree-row:hover .tree-actions{display:flex}.tree-row.follow-hovered{box-shadow:inset 2px 0 0 var(--color-accent,#7c5cff);background:rgba(124,92,255,.22)}.tree-row.follow-hovered .tree-actions{display:flex}.tree-action-btn{color:#bbb;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.1rem .25rem;font-size:.95rem;line-height:1}.tree-action-btn:hover{color:#fff;background:#3c3c3c}.new-project-btn{color:#cfcfcf;cursor:pointer;text-align:left;background:0 0;border:1px dashed #4a4a4a;border-radius:6px;margin:.5rem .75rem;padding:.4rem .6rem;font-size:.78rem;font-weight:600}.new-project-btn:hover{border-color:var(--color-accent);color:#fff}.ide-main{flex-direction:column;flex:auto;min-width:0;display:flex}.ide-resizer{cursor:col-resize;background:#1a1a1a;flex:0 0 5px;transition:background .12s}.ide-resizer:hover,.ide-resizer.active{background:var(--color-accent)}.ide.resizing{-webkit-user-select:none;user-select:none;cursor:col-resize}.live-title-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.live-title-row .live-title{margin:0}.ide-preview{background:#fff;border-left:1px solid #1a1a1a;flex-direction:column;flex:0 0 26%;min-width:240px;display:flex}.ide-preview-header{letter-spacing:.05em;color:#9d9d9d;background:#252526;flex:none;padding:.5rem .9rem;font-size:.7rem;font-weight:700}.ide-preview-body{flex:auto;min-height:0}.ide-students{background:#252526;border-right:1px solid #1a1a1a;flex-direction:column;flex:0 0 118px;min-height:0;display:flex;overflow-y:auto}.ide-students-count{color:#6b6b6b;margin:0;padding:.55rem .6rem .3rem;font-size:.68rem}.ide-students-empty{color:#6b6b6b;margin:0;padding:.75rem .9rem;font-size:.8rem}.ide-students-list{margin:0;padding:0 0 .75rem}.ide-students-group{letter-spacing:.03em;text-transform:uppercase;color:#8a8a8a;padding:.5rem .6rem .3rem;font-size:.64rem;font-weight:700}.ide-avatars{flex-wrap:wrap;justify-content:center;gap:.45rem;padding:0 .6rem .6rem;display:flex}.inscrits-count{text-transform:none;letter-spacing:0;color:#6b6b6b;font-weight:400}.inscrits-strip{flex-wrap:wrap;align-content:flex-start;gap:.5rem;max-height:92px;padding:.6rem .9rem;display:flex;overflow-y:auto}.student-avatar{background:hsl(var(--avatar-hue,260), 45%, 45%);color:#fff;-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;justify-content:center;align-items:center;width:38px;height:38px;display:flex;position:relative}.avatar-initials{letter-spacing:-.01em;font-size:.8rem;font-weight:700}.avatar-dot{background:#4a4a4a;border:2px solid #252526;border-radius:50%;width:11px;height:11px;position:absolute;bottom:-1px;right:-1px}.student-avatar:not(.offline) .avatar-dot{background:#3fb950}.student-avatar.offline{filter:grayscale(.7);opacity:.55}.student-avatar.is-admin{box-shadow:0 0 0 2px #7c5cff}.student-avatar.clickable{cursor:pointer}.student-avatar.clickable:hover{box-shadow:0 0 0 2px #fff}.ide-live{background:#1e1e1e;border-bottom:1px solid #1a1a1a;flex:none}.ide-live-header{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:.5rem;display:flex}.live-head-label{letter-spacing:.05em;white-space:nowrap;font-weight:700}.live-course-name{color:#fff;letter-spacing:0;text-transform:none;white-space:nowrap;text-overflow:ellipsis;max-width:40%;font-size:.74rem;font-weight:700;overflow:hidden}.live-head-spacer{flex:auto}.live-header-actions{align-items:center;gap:.4rem;display:flex}.live-toggle-btn{color:#d4d4d4;cursor:pointer;background:#2d2d2d;border:1px solid #3a3a3a;border-radius:999px;align-items:center;gap:.3rem;padding:.15rem .5rem;font-size:.68rem;font-weight:700;display:inline-flex}.live-toggle-btn:hover{border-color:#666}.live-toggle-btn.on{color:#fff;background:#c1392b;border-color:#c1392b}.follow-btn{text-transform:none;letter-spacing:0;color:#cbb8ff;cursor:pointer;background:rgba(124,92,255,.15);border:1px solid rgba(124,92,255,.4);border-radius:999px;align-items:center;gap:.3rem;padding:.15rem .5rem;font-size:.68rem;font-weight:700;display:inline-flex}.follow-btn:hover{background:rgba(124,92,255,.28)}.follow-btn.on{color:#fff;background:#7c5cff;border-color:#7c5cff;box-shadow:0 0 0 3px rgba(124,92,255,.25)}.follow-banner{opacity:0;color:#fff;background:linear-gradient(90deg,#5b2fb8,#7c5cff);flex:none;align-items:center;gap:.5rem;max-height:0;padding:0 1rem;font-size:.82rem;transition:max-height .3s,opacity .3s,padding .3s;display:flex;overflow:hidden}.follow-banner.open{opacity:1;max-height:60px;padding:.5rem 1rem}.follow-overlay{color:#fff;letter-spacing:.02em;opacity:0;pointer-events:none;z-index:3;background:linear-gradient(90deg,rgba(91,47,184,.94),rgba(124,92,255,.94));align-items:center;gap:.4rem;padding:.4rem .7rem;font-size:.72rem;font-weight:600;transition:opacity .25s,transform .25s;display:flex;position:absolute;bottom:0;left:0;right:0;transform:translateY(100%)}.follow-overlay.open{opacity:1;transform:translateY(0)}.follow-overlay .icon{width:14px;height:14px}.follow-highlight{background:rgba(124,92,255,.35);border-radius:2px;box-shadow:0 0 0 1px rgba(124,92,255,.55)}.admin-cursor{z-index:9999;pointer-events:none;clip-path:polygon(0 0,0 75%,28% 55%,45% 95%,62% 88%,45% 48%,78% 45%);filter:drop-shadow(0 1px 2px rgba(0,0,0,.5));background:#7c5cff;width:20px;height:20px;margin:-2px 0 0 -2px;transition:left .1s linear,top .1s linear;position:fixed}.ide-live-body{padding:.75rem .9rem}.ide-live-body .live-title{color:#d4d4d4}.ide-live-empty{text-align:center;color:#6b6b6b;margin:0;padding:.5rem 0;font-size:.85rem}.live-placeholder{aspect-ratio:16/9;text-align:center;color:#6b6b6b;background:#161616;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;padding:1rem;display:flex}.live-placeholder-icon{color:#3a3a3a;font-size:2.2rem;line-height:1}.live-placeholder-title{color:#9d9d9d;margin:.3rem 0 0;font-size:.9rem;font-weight:600}.live-placeholder-sub{max-width:220px;margin:0;font-size:.78rem}.slides-frame-wrapper{aspect-ratio:16/9;background:#111;border-radius:4px;width:100%;margin-top:.5rem;position:relative;overflow:hidden;container-type:size}.slides-frame-wrapper.zoomable{cursor:zoom-in}.slide-render{box-sizing:border-box;color:#fff;text-align:left;flex-direction:column;justify-content:center;gap:3cqh;padding:8% 9%;display:flex;position:absolute;inset:0;overflow:hidden}.slide-render-title{margin:0;font-size:7.5cqmin;font-weight:800;line-height:1.1}.slide-render-body{white-space:pre-wrap;opacity:.96;margin:0;font-size:3.6cqmin;line-height:1.5}.slides-frame-img{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.slides-frame-img.zoomable{cursor:zoom-in}.slide-lightbox{z-index:1000;cursor:zoom-out;opacity:0;visibility:hidden;pointer-events:none;background:rgba(0,0,0,.88);flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:3vh 3vw;transition:opacity .25s,visibility .25s;display:flex;position:fixed;inset:0}.slide-lightbox.open{opacity:1;visibility:visible;pointer-events:auto}.slide-lightbox-img{object-fit:contain;cursor:default;border-radius:6px;max-width:96vw;max-height:82vh;transition:transform .25s;transform:scale(.9);box-shadow:0 10px 40px rgba(0,0,0,.6)}.slide-lightbox.open .slide-lightbox-img{transform:scale(1)}.slide-lightbox-stage{aspect-ratio:16/9;border-radius:6px;width:min(96vw,146vh);max-width:96vw;max-height:82vh;transition:transform .25s;position:relative;overflow:hidden;transform:scale(.9);box-shadow:0 10px 40px rgba(0,0,0,.6);container-type:size}.slide-lightbox.open .slide-lightbox-stage{transform:scale(1)}.slide-lightbox-nav{color:#fff;background:rgba(30,30,30,.9);border-radius:999px;align-items:center;gap:1rem;padding:.5rem 1rem;font-size:.9rem;display:flex}.slide-lightbox-close{color:#fff;cursor:pointer;background:rgba(30,30,30,.9);border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex;position:absolute;top:1.2rem;right:1.2rem}.slide-lightbox-close:hover{background:rgba(60,60,60,.95)}.ide-live .slides-nav{justify-content:center;margin-top:.6rem}.ide-live .slides-nav span{color:#d4d4d4;font-size:.8rem}.preview-frame{background:#fff;border:0;width:100%;height:100%}.ide-preview-header.clickable{cursor:pointer;justify-content:space-between;align-items:center;display:flex}.preview-expand{opacity:.65;display:inline-flex}.preview-expand .icon{width:13px;height:13px}.ide-preview.giant{z-index:1000;border-radius:10px;width:auto;max-width:none;position:fixed;inset:5vh 5vw;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.7),0 0 0 100vmax rgba(0,0,0,.55)}.ide-preview.giant .ide-live,.ide-preview.giant>.ide-preview-header{display:none}.ide-preview.giant .ide-preview-body{flex:auto;min-height:0}.preview-giant-bar{color:#f0f0f0;background:#1b1b1b;border-bottom:1px solid #2a2a2a;flex:none;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex}.preview-giant-title{white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:700;overflow:hidden}.preview-giant-close{color:#fff;cursor:pointer;background:#c1392b;border:none;border-radius:6px;flex:none;align-items:center;gap:.35rem;padding:.35rem .7rem;font-size:.78rem;font-weight:600;display:inline-flex}.preview-giant-close:hover{background:#a93226}.preview-giant-close .icon{width:14px;height:14px}.preview-lightbox{z-index:1000;background:rgba(0,0,0,.9);justify-content:center;align-items:center;padding:2vh 2vw;display:flex;position:fixed;inset:0}.preview-lightbox-frame{background:#fff;border:0;border-radius:8px;width:min(96vw,1400px);height:90vh;box-shadow:0 12px 50px rgba(0,0,0,.6)}.preview-lightbox-close{color:#fff;cursor:pointer;background:rgba(30,30,30,.92);border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex;position:absolute;top:1.2rem;right:1.2rem}.preview-lightbox-close:hover{background:rgba(60,60,60,.95)}.pygame-stage{background:#0d0d10;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.pygame-canvas{background:#000;border-radius:4px;max-width:100%;max-height:100%}.pygame-stop{color:#fff;cursor:pointer;background:#c1392b;border:none;border-radius:6px;align-items:center;gap:.3rem;padding:.3rem .6rem;font-size:.75rem;font-weight:600;display:inline-flex;position:absolute;top:.5rem;right:.5rem}.pygame-stop:hover{background:#a93226}.pygame-stop .icon{width:13px;height:13px}.preview-empty{text-align:center;color:#8a8a8a;background:#1e1e1e;justify-content:center;align-items:center;height:100%;padding:2rem;display:flex}.modal-overlay{z-index:100;background:rgba(0,0,0,.55);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-card);color:var(--color-text);border-radius:12px;width:100%;max-width:380px;padding:1.75rem;box-shadow:0 20px 60px rgba(0,0,0,.35)}.observe-modal{color:#d4d4d4;background:#1e1e1e;border-radius:10px;flex-direction:column;width:90vw;max-width:1100px;height:85vh;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.5)}.observe-header{background:#252526;border-bottom:1px solid #111;align-items:center;gap:.6rem;padding:.6rem 1rem;font-size:.9rem;display:flex}.observe-header .btn{margin-left:auto}.observe-live-dot{background:#3fb950;border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 3px rgba(63,185,80,.2)}.observe-body{flex:auto;grid-template-columns:220px 1fr;min-height:0;display:grid}.observe-tree{background:#252526;border-right:1px solid #111;padding:.4rem 0;overflow-y:auto}.observe-row{cursor:pointer;white-space:nowrap;align-items:center;gap:.35rem;padding:.25rem .6rem .25rem 0;font-size:.82rem;display:flex}.observe-row:hover{background:#2d2d2d}.observe-row.active{color:#fff;background:#094771}.observe-row-icon{flex:none;font-size:.8rem}.observe-row-name{text-overflow:ellipsis;overflow:hidden}.observe-eye{flex:none;margin-left:auto;padding-left:.4rem;font-size:.8rem}.observe-view{background:#1e1e1e;min-width:0;position:relative;overflow:hidden}.observe-cm,.observe-cm .CodeMirror{height:100%}.observe-empty{color:#6b6b6b;justify-content:center;align-items:center;height:100%;display:flex}.icon{vertical-align:-.14em;flex:none;justify-content:center;align-items:center;width:1em;height:1em;display:inline-flex}.icon svg{width:100%;height:100%;display:block}.lang-logo{color:#fff;letter-spacing:-.02em;border-radius:14px;flex:none;justify-content:center;align-items:center;width:54px;height:54px;font-size:1.1rem;font-weight:800;display:flex;box-shadow:inset 0 1px rgba(255,255,255,.25),0 4px 10px rgba(0,0,0,.15)}.lang-web{background:linear-gradient(140deg,#e34f26,#f06529 55%,#1572b6)}.lang-csharp{background:linear-gradient(140deg,#6b3fe0,#512bd4)}.lang-python{color:#1a2b3c;background:linear-gradient(140deg,#3776ab 52%,#ffd43b 52%)}.lang-generic{background:linear-gradient(140deg,#6b6b6b,#444)}.modal-project{max-width:600px}.modal-dark{color:#e6e6e6;background:#1b1b20;border:1px solid #34343c;border-radius:12px;box-shadow:0 24px 70px rgba(0,0,0,.6)}.modal-dark h3{color:#fff;margin:0}.modal-dark-head{border-bottom:1px solid #2c2c33;align-items:center;gap:.75rem;margin-bottom:1.1rem;padding-bottom:.9rem;display:flex}.modal-dark-head .lang-logo{width:40px;height:40px;font-size:.95rem}.modal-dark-sub{color:#9a9aa5;margin:.15rem 0 0;font-size:.8rem}.modal-dark .field-label{color:#b9b9c2}.modal-dark .project-name-row input{color:#f0f0f0;background:#111116;border:1px solid #3a3a44;border-radius:6px;padding:.5rem .6rem}.settings-grid{grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.9rem;display:grid}.dark-select{color:#f0f0f0;width:100%;font:inherit;cursor:pointer;background:#111116;border:1px solid #3a3a44;border-radius:6px;margin-top:.3rem;padding:.5rem .6rem}.settings-toggles{gap:1.25rem;margin-top:.9rem;display:flex}.dark-check{color:#cfcfd6;cursor:pointer;align-items:center;gap:.45rem;font-size:.85rem;display:inline-flex}.dark-check input{width:16px;height:16px;accent-color:var(--color-accent,#7c5cff);cursor:pointer}.modal-dark .modal-actions{margin-top:1.3rem}.modal-dark .btn{color:#e6e6e6;background:#2a2a31;border:1px solid #3a3a44}.modal-dark .btn:hover{background:#33333b}.modal-dark .btn-primary{background:var(--color-accent,#7c5cff);border-color:var(--color-accent,#7c5cff);color:#fff}.modal-dark .btn-primary:disabled{opacity:.5;cursor:not-allowed}.variant-grid{grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.4rem;display:grid}.variant-card{text-align:left;color:#ddd;cursor:pointer;background:#111116;border:1px solid #3a3a44;border-radius:8px;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.6rem .7rem;display:flex}.variant-card:hover{border-color:#55556a}.variant-card.selected{border-color:var(--color-accent,#7c5cff);box-shadow:0 0 0 1px var(--color-accent,#7c5cff);background:rgba(124,92,255,.12)}.variant-name{color:#fff;font-size:.85rem;font-weight:700}.variant-desc{color:#9a9aa5;font-size:.72rem}@media (width<=520px){.settings-grid,.variant-grid{grid-template-columns:1fr}}.project-name-row{gap:.5rem;display:flex}.project-name-row input{flex:auto;min-width:0}.btn-generate{white-space:nowrap;flex:none;align-items:center;gap:.35rem;font-size:.85rem;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary:disabled:hover{background:var(--color-primary);border-color:var(--color-primary)}.field-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted);margin:1.25rem 0 .6rem;font-size:.8rem;font-weight:600;display:block}.template-grid{grid-template-columns:repeat(3,1fr);gap:.85rem;display:grid}.template-card{text-align:center;background:var(--color-card);border:1.5px solid var(--color-border);cursor:pointer;border-radius:14px;flex-direction:column;align-items:center;gap:.6rem;padding:1.4rem .85rem 1.1rem;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex;position:relative}.template-card:hover{border-color:color-mix(in srgb, var(--color-accent) 45%, var(--color-border));transform:translateY(-2px);box-shadow:0 6px 18px rgba(45,15,82,.1)}.template-card.selected{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-accent) 25%, transparent)}.template-card.selected:after{content:"";background:var(--color-accent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;border-radius:50%;width:20px;height:20px;position:absolute;top:.6rem;right:.6rem}.template-card .lang-logo{transition:transform .15s}.template-card:hover .lang-logo{transform:scale(1.06)}.template-name{color:var(--color-text);font-size:1rem;font-weight:700}.template-desc{color:var(--color-muted);font-size:.75rem;line-height:1.35}@media (width<=560px){.template-grid{grid-template-columns:repeat(2,1fr)}}.grid-view-btn{color:#9d9d9d;cursor:pointer;background:0 0;border:1px solid #3a3a3a;border-radius:3px;margin-left:auto;padding:0 .3rem;font-size:.95rem;line-height:1}.grid-view-btn:hover{color:#fff;border-color:#666}.grid-modal{color:#d4d4d4;background:#1e1e1e;border-radius:10px;flex-direction:column;width:92vw;max-width:1400px;height:88vh;display:flex;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.5)}.grid-body{flex:auto;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-content:start;gap:.9rem;min-height:0;padding:.9rem;display:grid;overflow-y:auto}.grid-page{color:#d4d4d4;background:#1e1e1e;flex-direction:column;height:100vh;display:flex}.grid-page-header{background:#252526;border-bottom:1px solid #111;flex:none;align-items:center;gap:.6rem;padding:.7rem 1.1rem;font-size:.95rem;display:flex}.grid-page-title{font-weight:700}.grid-page .grid-body{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.grid-page .grid-tile{height:260px}.grid-empty{text-align:center;color:#6b6b6b;grid-column:1/-1;padding:2rem}.grid-tile{cursor:pointer;background:#252526;border:1px solid #333;border-radius:6px;flex-direction:column;height:220px;transition:border-color .12s;display:flex;overflow:hidden}.grid-tile:hover{border-color:#3fb950}.grid-tile-head{background:#2d2d2d;border-bottom:1px solid #333;align-items:center;gap:.5rem;padding:.4rem .6rem;display:flex}.grid-tile-avatar{flex:none;width:26px;height:26px}.grid-tile-avatar .avatar-initials{font-size:.62rem}.grid-tile-name{color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:600;overflow:hidden}.grid-tile-path{color:#8a8a8a;text-overflow:ellipsis;white-space:nowrap;margin-left:auto;font-size:.7rem;overflow:hidden}.grid-code{color:#cfcfcf;white-space:pre;flex:auto;margin:0;padding:.5rem .6rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.68rem;line-height:1.4;overflow:hidden}.observe-cursor{pointer-events:none;z-index:5;background:rgba(255,90,90,.35);border:2px solid #ff5a5a;border-radius:50%;width:14px;height:14px;margin:-3px 0 0 -3px;transition:left .12s linear,top .12s linear;position:absolute}.modal h3{margin-bottom:1rem}.modal label{flex-direction:column;gap:.35rem;margin-bottom:1rem;font-weight:600;display:flex}.modal select{border:1px solid var(--color-border);color:var(--color-muted);border-radius:8px;padding:.6rem .75rem;font-size:1rem}.modal-actions{justify-content:flex-end;gap:.75rem;margin-top:1.25rem;display:flex}.ide-tabs{background:#252526;border-bottom:1px solid #1a1a1a;flex:none;align-items:center;display:flex;overflow-x:auto}.run-btn{color:#fff;cursor:pointer;background:#16a34a;border:none;border-radius:6px;flex:none;align-items:center;gap:.4rem;margin-left:auto;margin-right:.5rem;padding:.35rem .85rem;font-size:.78rem;font-weight:600;transition:background .15s;display:inline-flex}.run-btn:hover{background:#15803d}.run-btn .icon{width:15px;height:15px}.ide-tab{color:#969696;cursor:pointer;white-space:nowrap;background:#2d2d2d;border-right:1px solid #1a1a1a;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.8rem;display:flex}.ide-tab.active{color:#fff;box-shadow:inset 0 -2px 0 var(--color-accent);background:#1e1e1e}.tab-dirty-dot{background:#fff;border-radius:50%;flex:none;width:8px;height:8px}.tab-close-btn{color:inherit;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.1rem .25rem;font-size:.9rem}.tab-close-btn:hover{color:#fff;background:#3c3c3c}.ide-editor-area{flex:auto;min-height:0;position:relative;overflow:hidden}.editor-lock-overlay{z-index:5;backdrop-filter:blur(2px);cursor:not-allowed;background:rgba(14,14,20,.8);justify-content:center;align-items:flex-start;padding-top:1rem;display:flex;position:absolute;inset:0}.editor-lock-badge{color:#fff;background:rgba(193,57,43,.94);border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .85rem;font-size:.78rem;font-weight:600;display:inline-flex;box-shadow:0 4px 14px rgba(0,0,0,.35)}.editor-lock-badge .icon{width:14px;height:14px}.editor-lock-stop{color:#c1392b;cursor:pointer;background:#fff;border:none;border-radius:999px;align-items:center;gap:.3rem;margin-left:.5rem;padding:.2rem .6rem;font-size:.72rem;font-weight:700;display:inline-flex}.editor-lock-stop:hover{background:#f2f2f2}.editor-lock-stop .icon{width:12px;height:12px}.code-editor-mount,.code-editor-mount>.CodeMirror{height:100%;font-family:Fira Code,Cascadia Code,monospace;font-size:var(--cm-font-size,14px)}.ide-empty{color:#6b6b6b;justify-content:center;align-items:center;height:100%;display:flex}.ide-console{background:#121212;border-top:1px solid #2a2a2a;flex-direction:column;flex:none;min-height:120px;max-height:42%;display:flex}.ide-console-head{letter-spacing:.05em;color:#9d9d9d;background:#1b1b1b;border-bottom:1px solid #2a2a2a;justify-content:space-between;align-items:center;padding:.35rem .75rem;font-size:.68rem;font-weight:700;display:flex}.console-close{color:#9d9d9d;cursor:pointer;background:0 0;border:none;align-items:center;display:inline-flex}.console-close .icon{width:14px;height:14px}.ide-console-body{padding:.5rem .75rem;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.8rem;line-height:1.45;overflow:auto}.console-note{color:#9a9aa5;padding:.15rem 0;font-style:italic}.console-out{white-space:pre-wrap;word-break:break-word;color:#e0e0e0;margin:0}.console-err{white-space:pre-wrap;word-break:break-word;color:#ff8a80;margin:.3rem 0 0}.ide-statusbar{background:var(--color-primary);color:#fff;flex:none;justify-content:space-between;padding:.25rem .9rem;font-size:.75rem;display:flex}.progress-table{border-collapse:collapse;width:100%;margin-top:1rem}.progress-table th,.progress-table td{text-align:left;border-bottom:1px solid var(--color-border);padding:.6rem .75rem}.progress-table th{color:var(--color-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem}.hidden{display:none}.admin-tabs{gap:.5rem;margin-bottom:.5rem;display:flex}.admin-tab-btn{border:1px solid var(--color-border);background:var(--color-card);color:var(--color-muted);cursor:pointer;border-radius:999px;padding:.6rem 1.4rem;font-weight:600}.admin-tab-btn:hover{border-color:var(--color-accent)}.admin-tab-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-top:1rem;display:grid}.stat-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:12px;flex-direction:column;gap:.25rem;padding:1.25rem;display:flex}.stat-value{color:var(--color-primary);font-size:2rem;font-weight:700}.stat-label{color:var(--color-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.8rem}.git-modal{color:#e6e6e6;background:#16161a;border:1px solid #2c2c33;border-radius:12px;flex-direction:column;width:min(1000px,94vw);height:min(680px,90vh);display:flex;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.6)}.git-modal-head{background:#1b1b20;border-bottom:1px solid #2c2c33;flex:none;justify-content:space-between;align-items:center;padding:.7rem 1rem;font-weight:700;display:flex}.git-modal-head .icon{vertical-align:-3px;width:16px;height:16px;margin-right:.3rem}.git-close{color:#9a9aa5;cursor:pointer;background:0 0;border:none;padding:.2rem;display:inline-flex}.git-close .icon{width:16px;height:16px}.git-muted{color:#9a9aa5;font-size:.85rem}.git-btn{color:#e6e6e6;cursor:pointer;background:#2a2a31;border:1px solid #3a3a44;border-radius:7px;padding:.4rem .8rem;font-size:.8rem;font-weight:600}.git-btn:hover{background:#33333b}.git-btn-primary{background:var(--color-accent,#7c5cff);border-color:var(--color-accent,#7c5cff);color:#fff}.git-btn-primary:hover{filter:brightness(1.08)}.git-btn-ghost{background:0 0}.git-wizard{flex-direction:column;align-items:center;gap:1.5rem;padding:2rem;display:flex}.git-stepper{align-items:center;gap:.5rem;display:flex}.git-step{color:#7a7a85;background:#26262c;border:1px solid #3a3a44;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:.85rem;font-weight:700;display:inline-flex}.git-step.on{background:var(--color-accent,#7c5cff);color:#fff;border-color:var(--color-accent,#7c5cff)}.git-step-bar{background:#3a3a44;width:46px;height:2px}.git-wizard-body{text-align:center;flex-direction:column;align-items:center;gap:1rem;max-width:480px;display:flex}.git-wizard-body h4{color:#fff;margin:0;font-size:1.15rem}.git-provider-grid{grid-template-columns:repeat(3,1fr);gap:.75rem;width:100%;display:grid}.git-provider-card{color:#ddd;cursor:pointer;background:#1e1e24;border:1px solid #34343c;border-radius:10px;flex-direction:column;align-items:center;gap:.5rem;padding:1.1rem .6rem;font-weight:600;display:flex}.git-provider-card:hover{border-color:var(--color-accent,#7c5cff)}.git-provider-card.selected{border-color:var(--color-accent,#7c5cff);box-shadow:0 0 0 1px var(--color-accent,#7c5cff)}.git-provider-card .icon{width:26px;height:26px}.git-auth-box{text-align:left;background:#1e1e24;border:1px solid #34343c;border-radius:10px;align-items:center;gap:.75rem;width:100%;padding:.8rem;display:flex}.git-auth-avatar{background:#2c2c33;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.git-auth-avatar .icon{width:20px;height:20px}.git-auth-name{color:#fff;font-weight:700}.git-wizard-actions{gap:.6rem;display:flex}.git-connected{flex-direction:column;flex:auto;min-height:0;display:flex}.git-topbar{background:#1b1b20;border-bottom:1px solid #2c2c33;flex:none;align-items:center;gap:.6rem;padding:.6rem .9rem;display:flex}.git-repo{align-items:center;gap:.35rem;display:inline-flex}.git-repo .icon{width:15px;height:15px}.git-branch-badge{color:#b9a6ff;background:rgba(124,92,255,.18);border-radius:999px;padding:.15rem .55rem;font-size:.75rem;font-weight:700}.git-spacer{flex:auto}.git-provider-badge{color:#8a8a95;font-size:.75rem}.git-toolbar{background:#18181d;border-bottom:1px solid #2c2c33;flex-wrap:wrap;flex:none;gap:.75rem;padding:.6rem .9rem;display:flex}.git-tool-group{align-items:center;gap:.4rem;display:flex}.git-input{color:#f0f0f0;background:#111116;border:1px solid #34343c;border-radius:6px;min-width:180px;padding:.4rem .55rem;font-size:.8rem}.git-input-sm{min-width:120px}select.git-input{cursor:pointer}.git-body{flex:auto;min-height:0;display:flex}.git-graph{border-right:1px solid #2c2c33;flex:55%;padding:.75rem .9rem;overflow-y:auto}.git-commit-row{gap:.7rem;padding:.15rem 0;display:flex;position:relative}.git-commit-row:before{content:"";background:#2c2c33;width:2px;position:absolute;top:0;bottom:0;left:6px}.git-node{z-index:1;background:hsl(var(--h,260), 65%, 58%);border-radius:50%;flex:none;width:14px;height:14px;margin-top:.3rem;position:relative;box-shadow:0 0 0 3px #16161a}.git-node.merge{outline:2px solid hsl(var(--h,260),65%,58%);border:2px solid #16161a}.git-commit-info{flex-direction:column;gap:.15rem;padding-bottom:.3rem;display:flex}.git-commit-line{align-items:baseline;gap:.5rem;display:flex}.git-hash{color:#ffb454;font-family:ui-monospace,Menlo,monospace;font-size:.75rem}.git-cmsg{color:#e0e0e0;font-size:.85rem}.git-tags{flex-wrap:wrap;gap:.3rem;margin-top:.1rem;display:flex}.git-tag{background:hsla(var(--h,260), 60%, 55%, .22);color:hsl(var(--h,260), 70%, 72%);border:1px solid hsla(var(--h,260), 60%, 55%, .5);border-radius:4px;padding:.05rem .4rem;font-size:.66rem;font-weight:700}.git-tag.cur{background:hsl(var(--h,260),65%,55%);color:#fff}.git-console{background:#0f0f12;flex-direction:column;flex:45%;min-height:0;display:flex}.git-console-out{flex:auto;padding:.6rem .75rem;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.78rem;line-height:1.5;overflow-y:auto}.git-line{color:#cfcfd6;white-space:pre-wrap;word-break:break-word}.git-line-cmd{color:#7cc4ff}.git-line-err{color:#ff8a80}.git-console-input{border-top:1px solid #2c2c33;flex:none;align-items:center;gap:.4rem;padding:.5rem .75rem;display:flex}.git-prompt{color:#7cc4ff;font-family:ui-monospace,Menlo,monospace;font-weight:700}.git-cmd-input{color:#f0f0f0;background:0 0;border:none;outline:none;flex:auto;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.8rem}@media (width<=720px){.git-body{flex-direction:column}.git-graph{border-bottom:1px solid #2c2c33;border-right:none}}