:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#e6edf3;background-color:#0d1117;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#0d1117}a{color:#58a6ff;text-decoration:none}.tutor-hole-line{background:#ffd70012!important;border-left:3px solid #ffd700!important}.tutor-bug-line{background:#f8514912!important;border-left:3px solid #f85149!important}.auth-overlay{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#0d1117}.auth-card{background:#161b22;border:1px solid #30363d;border-radius:12px;padding:48px 40px;width:360px;display:flex;flex-direction:column;align-items:center;gap:12px}.auth-logo{font-size:36px;font-weight:800;color:#58a6ff;font-family:monospace;margin-bottom:4px}.auth-title{font-size:24px;font-weight:700;color:#e6edf3;margin:0}.auth-subtitle{font-size:14px;color:#8b949e;margin:0 0 16px;text-align:center}.auth-features{display:flex;flex-direction:column;gap:8px;width:100%;margin-bottom:8px}.auth-feature{display:flex;align-items:center;gap:10px;font-size:13px;color:#8b949e}.feature-icon{font-size:16px}.auth-google-btn{margin-top:8px;width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 20px;background:#fff;color:#1f2328;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s}.auth-google-btn:hover{opacity:.9}.google-icon{flex-shrink:0}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d1117d9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:200;padding:2rem}.settings-container{display:flex;width:100%;max-width:900px;height:80vh;min-height:600px;background:#161b22;border-radius:12px;border:1px solid #30363d;box-shadow:0 24px 48px #00000080;overflow:hidden}.settings-sidebar{width:240px;background:#0d1117;border-right:1px solid #30363d;display:flex;flex-direction:column;padding:1.5rem 0}.settings-sidebar-header{padding:0 1.5rem;margin-bottom:1.5rem}.settings-sidebar-header h2{font-size:1.25rem;font-weight:600;color:#e6edf3}.settings-nav{display:flex;flex-direction:column}.settings-nav-item{padding:.75rem 1.5rem;color:#8b949e;cursor:pointer;transition:all .2s;font-weight:500;font-size:.95rem;display:flex;align-items:center;gap:12px}.settings-nav-item:hover{background:#8b949e1a;color:#e6edf3}.settings-nav-item.active{background:#58a6ff1a;color:#58a6ff;border-right:3px solid #58a6ff}.settings-main{flex:1;display:flex;flex-direction:column;background:#161b22}.settings-content{flex:1;padding:2.5rem;overflow-y:auto}.settings-content h3{font-size:1.5rem;font-weight:600;margin-bottom:2rem;color:#e6edf3;border-bottom:1px solid #30363d;padding-bottom:1rem}.settings-section{margin-bottom:2.5rem}.settings-label{display:block;font-size:1rem;font-weight:600;margin-bottom:.5rem;color:#e6edf3}.settings-hint{font-size:.85rem;color:#8b949e;margin-bottom:1rem}.settings-input{width:100%;max-width:400px;background:#0d1117;border:1px solid #30363d;color:#e6edf3;padding:.75rem 1rem;border-radius:6px;font-size:.95rem;transition:border-color .2s}.settings-input:focus{outline:none;border-color:#58a6ff}.options-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.option-card{background:#0d1117;border:1px solid #30363d;border-radius:8px;padding:1rem;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;gap:.5rem}.option-card:hover{border-color:#8b949e}.option-card.active{border-color:#58a6ff;background:#58a6ff0d}.option-card strong{color:#e6edf3;font-size:1rem}.option-card p{color:#8b949e;font-size:.8rem;margin:0}.option-icon{font-size:1.5rem;margin-bottom:.5rem}.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;border-bottom:1px solid #21262d}.toggle-info strong{display:block;font-size:.95rem;color:#e6edf3}.toggle-info p{font-size:.85rem;color:#8b949e;margin-top:.25rem}.switch{position:relative;display:inline-block;width:44px;height:24px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#30363d;transition:.2s;border-radius:24px}.slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#e6edf3;transition:.2s;border-radius:50%}input:checked+.slider{background-color:#238636}input:checked+.slider:before{transform:translate(20px)}.settings-footer{padding:1.5rem 2.5rem;border-top:1px solid #30363d;display:flex;justify-content:flex-end;align-items:center;gap:1rem;background:#0d1117}.settings-error{color:#f85149;font-size:.9rem;margin-right:auto}.dashboard-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#fbfbfd;display:flex;color:#1d1d1f;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Inter,sans-serif;overflow:hidden;z-index:100}.dashboard-container{display:flex;width:100%;height:100%;min-width:0}.dashboard-sidebar{width:250px;flex-shrink:0;background:#ffffffa6;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border-right:1px solid rgba(0,0,0,.06);display:flex;flex-direction:column;padding:2rem 1.25rem 1.5rem;overflow:hidden;box-shadow:2px 0 20px #00000005;position:relative;z-index:20}.dashboard-logo-area{display:flex;align-items:center;gap:12px;margin-bottom:2rem;padding:0 .5rem;flex-shrink:0}.dashboard-logo{font-size:1.85rem;line-height:1;flex-shrink:0;filter:drop-shadow(0 2px 8px rgba(0,102,204,.15))}.dashboard-title{font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:#1d1d1f;white-space:nowrap}.dashboard-subtitle{font-size:.75rem;color:#86868b;margin-top:2px;white-space:nowrap;font-weight:500}.dashboard-nav{display:flex;flex-direction:column;gap:.25rem;flex-shrink:0}.nav-item{display:flex;align-items:center;gap:12px;padding:.75rem 1rem;border-radius:12px;color:#86868b;cursor:pointer;transition:all .2s cubic-bezier(.25,1,.5,1);font-weight:500;font-size:.9rem;white-space:nowrap;border:1px solid transparent}.nav-item:hover{background:#00000008;color:#1d1d1f}.nav-item.active{background:#fff;color:#06c;border:1px solid rgba(0,0,0,.04);font-weight:600;box-shadow:0 2px 10px #00000008}.sidebar-date-panel{flex:1;display:flex;flex-direction:column;min-height:0;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid rgba(0,0,0,.06)}.sidebar-date-title{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;font-weight:600;color:#1d1d1f;margin-bottom:1rem;flex-shrink:0;padding:0 .25rem}.sidebar-date-count{font-size:.7rem;color:#86868b;font-weight:600;background:#0000000a;padding:.2rem .5rem;border-radius:12px}.sidebar-no-missions{font-size:.8rem;color:#98989d;text-align:center;padding:2rem 0;margin:0;font-weight:500}.sidebar-mission-list{display:flex;flex-direction:column;gap:.6rem;overflow-y:auto;flex:1;min-height:0;padding:0 .25rem}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#00000040}.sidebar-mission-item{display:flex;flex-direction:column;gap:.4rem;padding:.875rem;background:#fffc;border:1px solid rgba(0,0,0,.04);border-radius:14px;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);flex-shrink:0;box-shadow:0 2px 8px #00000005}.sidebar-mission-item:hover{background:#fff;border-color:#0066cc26;transform:translateY(-2px);box-shadow:0 6px 16px #0000000f}.sidebar-mission-topic{font-size:.8rem;font-weight:600;color:#1d1d1f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-mission-meta{font-size:.75rem;color:#86868b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.sidebar-settings-btn{flex-shrink:0;padding-top:1rem;border-top:1px solid rgba(0,0,0,.06);margin-top:1rem;display:flex;flex-direction:column;gap:.25rem}.dashboard-main{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;padding:2.5rem 3rem 0;overflow-y:auto;overflow-x:hidden;position:relative;transition:padding-bottom .5s cubic-bezier(.32,.72,0,1);background:radial-gradient(circle at 10% 0%,#fff,#fff0 60%),radial-gradient(circle at 90% 100%,#fff,#fff0 50%),#f2f2f7}.calendar-content{width:100%;max-width:900px;display:flex;flex-direction:column;position:relative;padding-bottom:3rem;margin:auto 0;z-index:10}.calendar-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem;flex-shrink:0;padding:0 .5rem}.calendar-month-label{font-size:2rem;font-weight:700;letter-spacing:-.03em;color:#1d1d1f}.calendar-month-label span{font-size:1.25rem;font-weight:500;color:#86868b;margin-left:.5rem}.cal-nav-group{display:flex;gap:.5rem}.cal-nav-btn{background:#fff;border:1px solid rgba(0,0,0,.06);color:#1d1d1f;width:40px;height:40px;border-radius:12px;cursor:pointer;font-size:1.25rem;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.16,1,.3,1);flex-shrink:0;box-shadow:0 2px 8px #00000005}.cal-nav-btn:hover{background:#fafafa;color:#06c;box-shadow:0 4px 12px #0000000f;transform:scale(1.02)}.calendar-wrapper{display:block}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;margin-bottom:12px}.calendar-weekday{text-align:center;font-size:.75rem;font-weight:600;color:#86868b;padding:.5rem 0;letter-spacing:.05em;text-transform:uppercase}.calendar-weekday:first-child{color:#ff3b30}.calendar-weekday:last-child{color:#06c}.calendar-days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:12px}.calendar-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:16px;cursor:pointer;position:relative;transition:all .3s cubic-bezier(.16,1,.3,1);background:#ffffffa6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.4);box-shadow:0 4px 16px #00000008;overflow:hidden}.calendar-day.empty{cursor:default;background:transparent;border:none;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}.calendar-day:not(.empty):hover{background:#fff;border-color:#0000000f;transform:translateY(-4px) scale(1.02);box-shadow:0 12px 30px #00000014;z-index:2}.calendar-day.activity-1{background:#fffbf0;border-color:#fef3c7}.calendar-day.activity-2{background:#fef3c7;border-color:#fde68a}.calendar-day.activity-3{background:#fde68a;border-color:#fbbf24;box-shadow:0 4px 16px #fbbf242e}.calendar-day.has-completed{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border-color:#6ee7b7;box-shadow:0 4px 16px #34c75933}.calendar-day.has-completed:hover{background:linear-gradient(135deg,#a7f3d0,#6ee7b7);border-color:#34d399;box-shadow:0 12px 30px #34c75947}.calendar-day.selected:not(.today){border-color:#06c;background:#f0f8ff;box-shadow:inset 0 0 0 1px #06c,0 8px 20px #0066cc1a}.calendar-day.today{background:linear-gradient(135deg,#007aff,#05c);border-color:transparent;box-shadow:0 8px 24px #0066cc4d;transform:scale(1.05);z-index:3}.calendar-day.today:hover{transform:scale(1.08) translateY(-4px);box-shadow:0 12px 32px #06c6}.calendar-day.today.panel-open{box-shadow:0 0 0 4px #007aff4d,0 12px 32px #06c6}.day-number{font-size:clamp(.75rem,1.2vw,1rem);font-weight:600;color:#1d1d1f;line-height:1}.calendar-day.activity-1 .day-number,.calendar-day.activity-2 .day-number,.calendar-day.activity-3 .day-number{color:#92400e;font-weight:700}.calendar-day.has-completed .day-number{color:#065f46;font-weight:700}.calendar-day.selected:not(.today) .day-number{color:#05c;font-weight:700}.calendar-day.today .day-number{color:#fff;font-size:clamp(.85rem,1.4vw,1.15rem);font-weight:700;text-shadow:0 2px 6px rgba(0,0,0,.2)}.day-dot{width:5px;height:5px;border-radius:50%;background:#34c759;margin-top:6px;flex-shrink:0}.calendar-day.today .day-dot{background:#fff;opacity:.9}.today-panel{position:fixed;bottom:0;left:50%;transform:translate(calc(-50% + 125px)) translateY(100%);width:min(900px,calc(100vw - 250px - 6rem));background:#ffffffd9;backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%);border-top:1px solid rgba(255,255,255,.5);border-left:1px solid rgba(255,255,255,.3);border-right:1px solid rgba(255,255,255,.3);border-radius:32px 32px 0 0;padding:2rem 3rem 2.5rem;transition:transform .5s cubic-bezier(.22,1,.36,1);z-index:40;max-height:75%;overflow-y:auto;box-shadow:0 -12px 48px #00000014,0 -2px 12px #00000008}.today-panel.visible{transform:translate(calc(-50% + 125px)) translateY(0)}.today-panel-handle{width:60px;height:6px;background:#0000001a;border-radius:3px;margin:0 auto 1.5rem}.today-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem}.today-panel-title{font-size:1.25rem;font-weight:700;color:#1d1d1f;letter-spacing:-.02em;display:flex;align-items:center;gap:.6rem}.today-panel-close{background:#0000000a;border:1px solid transparent;color:#1d1d1f;width:36px;height:36px;border-radius:10px;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.today-panel-close:hover{background:#ff3b301a;color:#ff3b30}.topic-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-bottom:2rem}.topic-card{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:16px;padding:1.25rem;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column;gap:.8rem;min-width:0;box-shadow:0 4px 12px #00000005}.topic-card:hover{transform:translateY(-4px);border-color:#06c3;box-shadow:0 12px 28px #00000014}.topic-card.diff-low{border-top:4px solid #34c759}.topic-card.diff-mid{border-top:4px solid #ff9f0a}.topic-card.diff-high{border-top:4px solid #ff3b30}.topic-card-name{font-size:.95rem;font-weight:600;color:#1d1d1f;line-height:1.4;flex:1;word-break:keep-all}.topic-card-btn{background:#00000008;border:none;color:#1d1d1f;padding:.5rem .8rem;border-radius:10px;font-size:.8rem;cursor:pointer;transition:all .2s;text-align:center;font-weight:600}.topic-card:hover .topic-card-btn{background:#06c;color:#fff;box-shadow:0 4px 12px #06c3}.custom-topic-row{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;background:#00000005;padding:1rem;border-radius:16px;border:1px solid rgba(0,0,0,.04)}.topic-input{flex:1;min-width:0;background:#fff;border:1px solid rgba(0,0,0,.08);color:#1d1d1f;padding:.7rem 1.1rem;border-radius:10px;font-size:.9rem;transition:all .2s;box-shadow:0 2px 6px #00000005}.topic-input:hover:not(:focus){border-color:#06c}.topic-input:focus{outline:none;border-color:#06c;box-shadow:0 0 0 4px #0066cc26}.topic-input::placeholder{color:#98989d}.btn{padding:.7rem 1.4rem;border-radius:10px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);border:none;font-size:.9rem;white-space:nowrap;flex-shrink:0;min-width:80px}.btn-primary{background:#06c;color:#fff;box-shadow:0 4px 14px #06c3}.btn-primary:hover:not(:disabled){transform:translateY(-2px);background:#007aff;box-shadow:0 6px 20px #0066cc4d}.btn-primary:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(1)}.difficulty-badge{display:inline-flex;align-items:center;padding:.25rem .6rem;border-radius:20px;font-size:.7rem;font-weight:600;width:fit-content;flex-shrink:0}.difficulty-badge.diff-low{background:#e8f5e9;color:#2e7d32}.difficulty-badge.diff-mid{background:#fff8e1;color:#f57f17}.difficulty-badge.diff-high{background:#ffebee;color:#c62828}.project-status{font-size:.65rem;font-weight:600;padding:.2rem .6rem;border-radius:20px;background:#0000000a;color:#86868b;border:1px solid rgba(0,0,0,.06);white-space:nowrap;width:fit-content}.project-status.completed{background:#e8f5e9;color:#2e7d32;border-color:#c8e6c9}.error-banner{display:flex;align-items:center;gap:.75rem;margin-top:1.25rem;flex-wrap:wrap;background:#fff0f0;border:1px solid #ffd6d6;padding:1rem 1.25rem;border-radius:12px}.error-message{color:#d32f2f;font-size:.85rem;margin:0;font-weight:500}.error-banner .btn{font-size:.8rem;padding:.4rem .8rrem;min-width:unset;background:#ffebee;color:#c62828;box-shadow:none}.error-banner .btn:hover{background:#ffcdd2}.rehab-loading{display:flex;flex-direction:column;align-items:center;gap:1.5rem;color:#1d1d1f;font-weight:600}.loading-pill{font-size:4rem;filter:drop-shadow(0 4px 16px rgba(0,0,0,.1));animation:pulse-soft 2s ease-in-out infinite}@keyframes pulse-soft{0%,to{opacity:.8;transform:scale(1);filter:drop-shadow(0 4px 16px rgba(0,0,0,.1))}50%{opacity:1;transform:scale(1.05);filter:drop-shadow(0 12px 24px rgba(0,0,0,.15))}}.vn-intro{position:fixed;top:0;left:250px;right:0;bottom:0;z-index:50;cursor:pointer;overflow:hidden;background:#ffffffb3;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%)}.vn-fade-in{animation:vn-in .5s ease forwards}.vn-fade-out{animation:vn-out .42s ease forwards}@keyframes vn-in{0%{opacity:0}to{opacity:1}}@keyframes vn-out{0%{opacity:1}to{opacity:0}}.vn-character{position:absolute;left:2%;bottom:160px;height:85%;max-height:720px;display:flex;align-items:flex-end;animation:char-in .6s cubic-bezier(.22,1,.36,1) .1s both;pointer-events:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 12px 40px rgba(0,0,0,.15))}@keyframes char-in{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.vn-character img{height:100%;width:auto;object-fit:contain;object-position:bottom center;position:relative;z-index:1;animation:char-in .35s cubic-bezier(.22,1,.36,1) both}.vn-character-placeholder{font-size:min(50vh,360px);line-height:1;position:absolute;bottom:0;right:0;filter:drop-shadow(0 8px 32px rgba(0,0,0,.1));animation:char-in .6s cubic-bezier(.22,1,.36,1) .1s both}.vn-character img:not([style*="display: none"])+.vn-character-placeholder{display:none}.vn-dialogue{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);width:calc(100% - 20px);min-height:130px;padding:2rem 3rem 2.5rem;background:#ffffffd9;backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%);border:1px solid rgba(255,255,255,.6);border-radius:24px;box-shadow:0 16px 48px #00000014,0 4px 12px #0000000a;animation:dialogue-in .5s cubic-bezier(.34,1.56,.64,1) .25s both}@keyframes dialogue-in{0%{opacity:0;transform:translate(-50%,100px) scale(.95)}to{opacity:1;transform:translate(-50%) scale(1)}}.vn-name-tag{display:inline-block;background:#06c;color:#fff;font-size:.9rem;font-weight:700;letter-spacing:.02em;padding:.35rem 1.25rem;border-radius:20px;position:absolute;top:-1.2rem;left:3rem;box-shadow:0 4px 12px #0066cc4d}.vn-dialogue-text{font-size:1.25rem;color:#1d1d1f;line-height:1.6;margin:0;word-break:keep-all;animation:text-in .3s ease both;font-weight:500;letter-spacing:-.01em}@keyframes text-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.vn-continue-hint{position:absolute;bottom:1.5rem;right:2.5rem;font-size:.85rem;color:#86868b;display:flex;align-items:center;gap:.4rem;-webkit-user-select:none;user-select:none;font-weight:600}.vn-arrow{animation:bounce-down 1.2s ease-in-out infinite}@keyframes bounce-down{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}.vn-topic-dialogue{min-width:480px;max-width:640px}.vn-topic-options{display:flex;flex-direction:column;gap:8px;margin:12px 0 8px}.vn-topic-option{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#ffffff80;border:1.5px solid rgba(0,0,0,.08);border-radius:12px;cursor:pointer;text-align:left;transition:all .15s cubic-bezier(.16,1,.3,1);font-family:inherit}.vn-topic-option:hover{background:#ffffffd9;border-color:#0066cc40;transform:translate(4px)}.vn-topic-option.selected{background:#0066cc14;border-color:#06c;box-shadow:0 0 0 2px #0066cc26;transform:translate(4px)}.vn-topic-option.custom.selected{background:#5856d614;border-color:#5856d6;box-shadow:0 0 0 2px #5856d626}.vn-topic-num{font-size:.9rem;font-weight:700;color:#06c;min-width:20px;flex-shrink:0}.vn-topic-option.custom .vn-topic-num{color:#5856d6}.vn-topic-name{flex:1;font-size:.9rem;font-weight:600;color:#1d1d1f;line-height:1.3}.vn-topic-diff{font-size:.72rem;font-weight:700;padding:2px 7px;border-radius:6px;flex-shrink:0}.vn-topic-diff.diff-high{background:#fef2f2;color:#ef4444}.vn-topic-diff.diff-mid{background:#fffbeb;color:#f59e0b}.vn-topic-diff.diff-low{background:#f0fdf4;color:#22c55e}.vn-key-hint{font-size:.75rem;color:#86868b;text-align:center;margin-top:4px;letter-spacing:.02em}@media (max-width: 768px){.dashboard-sidebar{width:72px;padding:1.5rem .5rem}.dashboard-sidebar .dashboard-logo-area{justify-content:center;margin-bottom:2rem}.dashboard-sidebar .dashboard-title,.dashboard-sidebar .dashboard-subtitle,.sidebar-date-panel,.sidebar-settings-btn span:not(:first-child){display:none}.nav-item{justify-content:center;padding:.75rem;font-size:1.3rem}.nav-item span:not(:first-child){display:none}.dashboard-main{padding:1.5rem 1rem 0}.calendar-content{max-width:100%}.calendar-month-label{font-size:1.5rem}.vn-intro{left:72px}.vn-character{left:-3%;height:60%;bottom:180px}.vn-dialogue{bottom:1rem;width:calc(100% - 2rem);padding:1.5rem 1.5rem 2rem;border-radius:20px}.vn-name-tag{left:1.5rem}.vn-dialogue-text{font-size:1.1rem}.vn-continue-hint{right:1.5rem;bottom:1rem}.topic-cards{grid-template-columns:1fr}.today-panel{transform:translate(calc(-50% + 36px)) translateY(100%);width:calc(100vw - 72px - 2rem);padding:1.5rem 1.5rem 2rem}.today-panel.visible{transform:translate(calc(-50% + 36px)) translateY(0)}}.sidebar-mission-item{position:relative}.mission-delete-btn{position:absolute;top:6px;right:6px;background:none;border:none;font-size:14px;cursor:pointer;padding:2px 4px;border-radius:4px;opacity:0;pointer-events:none;transition:opacity .15s,background .15s;line-height:1}.sidebar-mission-item:hover .mission-delete-btn{opacity:.7;pointer-events:auto}.mission-delete-btn:hover{opacity:1!important;background:#ff3b301f}.nurse-chat-overlay{cursor:default;display:flex;align-items:flex-end;padding-bottom:0}.nurse-chat-char{height:70%;max-height:560px;bottom:0;left:1%;position:absolute}.nurse-chat-panel{position:absolute;right:2rem;top:50%;transform:translateY(-50%);width:min(520px,calc(100% - 340px));background:#ffffffeb;backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%);border:1px solid rgba(255,255,255,.6);border-radius:28px;box-shadow:0 20px 60px #0000001a,0 4px 16px #0000000d;display:flex;flex-direction:column;max-height:calc(100vh - 6rem);animation:dialogue-in .5s cubic-bezier(.34,1.56,.64,1) .2s both;overflow:hidden}.nurse-chat-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem .75rem;border-bottom:1px solid rgba(0,0,0,.06);flex-shrink:0}.nurse-chat-skip{background:none;border:1px solid rgba(0,0,0,.1);color:#86868b;font-size:.78rem;padding:.35rem .8rem;border-radius:20px;cursor:pointer;transition:all .2s;font-weight:500}.nurse-chat-skip:hover{border-color:#06c;color:#06c;background:#0066cc0d}.nurse-chat-messages{flex:1;overflow-y:auto;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem;min-height:180px;max-height:340px}.nurse-chat-msg{display:flex;align-items:flex-end;gap:.5rem;animation:text-in .25s ease both}.nurse-chat-msg--user{flex-direction:row-reverse}.nurse-chat-avatar{font-size:1.4rem;flex-shrink:0;line-height:1;margin-bottom:2px}.nurse-chat-bubble{max-width:85%;padding:.7rem 1rem;border-radius:18px;font-size:.92rem;line-height:1.55;font-weight:500;word-break:keep-all}.nurse-chat-msg--nurse .nurse-chat-bubble{background:#0066cc12;color:#1d1d1f;border-bottom-left-radius:6px}.nurse-chat-msg--user .nurse-chat-bubble{background:#06c;color:#fff;border-bottom-right-radius:6px}.nurse-chat-typing{display:flex;align-items:center;gap:5px;padding:.75rem 1rem}.nurse-chat-typing span{width:7px;height:7px;background:#86868b;border-radius:50%;animation:typing-dot 1.2s ease-in-out infinite}.nurse-chat-typing span:nth-child(2){animation-delay:.2s}.nurse-chat-typing span:nth-child(3){animation-delay:.4s}@keyframes typing-dot{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-5px);opacity:1}}.nurse-chat-topics{padding:.75rem 1.25rem;border-top:1px solid rgba(0,0,0,.06);display:flex;flex-direction:column;gap:.5rem;flex-shrink:0}.nurse-chat-topics-label{font-size:.72rem;font-weight:700;color:#86868b;letter-spacing:.06em;text-transform:uppercase;margin-bottom:.2rem}.nurse-chat-topic-btn{display:flex;align-items:center;gap:.65rem;padding:.75rem 1rem;background:#ffffffb3;border:1.5px solid rgba(0,0,0,.08);border-radius:14px;cursor:pointer;text-align:left;transition:all .2s cubic-bezier(.16,1,.3,1);font-family:inherit}.nurse-chat-topic-btn:hover,.nurse-chat-topic-btn.selected{background:#fff;border-color:#0066cc4d;transform:translate(3px);box-shadow:0 4px 12px #0000000f}.nurse-chat-topic-btn.selected{border-color:#06c;box-shadow:0 0 0 2px #0066cc26,0 4px 12px #0000000f}.nurse-chat-diff{font-size:.68rem;font-weight:700;padding:2px 7px;border-radius:6px;flex-shrink:0}.nurse-chat-diff.diff-high{background:#fef2f2;color:#ef4444}.nurse-chat-diff.diff-mid{background:#fffbeb;color:#f59e0b}.nurse-chat-diff.diff-low{background:#f0fdf4;color:#22c55e}.nurse-chat-topic-name{flex:1;font-size:.9rem;font-weight:600;color:#1d1d1f}.nurse-chat-topic-arrow{color:#86868b;font-size:.9rem;flex-shrink:0}.nurse-chat-input-row{display:flex;gap:.6rem;padding:.75rem 1.25rem 1.25rem;border-top:1px solid rgba(0,0,0,.06);flex-shrink:0}.nurse-chat-input{flex:1;background:#00000008;border:1.5px solid rgba(0,0,0,.08);color:#1d1d1f;padding:.7rem 1rem;border-radius:14px;font-size:.9rem;font-family:inherit;transition:all .2s}.nurse-chat-input:focus{outline:none;border-color:#06c;background:#fff;box-shadow:0 0 0 3px #0066cc1f}.nurse-chat-input::placeholder{color:#98989d}.nurse-chat-input:disabled{opacity:.5}.nurse-chat-send{background:#06c;color:#fff;border:none;border-radius:14px;padding:.7rem 1.2rem;font-size:.88rem;font-weight:700;cursor:pointer;transition:all .2s;flex-shrink:0}.nurse-chat-send:hover:not(:disabled){background:#007aff;transform:translateY(-1px);box-shadow:0 4px 12px #0066cc4d}.nurse-chat-send:disabled{opacity:.4;cursor:not-allowed}.creation-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:800;display:flex;align-items:center;justify-content:center}.creation-modal{background:#161b22;border:1px solid #30363d;border-radius:12px;padding:32px 48px;display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}.creation-spinner{width:40px;height:40px;border:3px solid #30363d;border-top-color:#58a6ff;border-radius:50%;animation:spin .8s linear infinite}.creation-stage{font-size:32px}.creation-message{color:#8b949e;font-size:14px;max-width:280px}.filetree{display:flex;flex-direction:column;height:100%;overflow:hidden}.filetree-header{padding:8px 12px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#8b949e;border-bottom:1px solid #21262d;flex-shrink:0}.filetree-content{flex:1;overflow-y:auto;padding:4px 0}.filetree-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#484f58;font-size:13px}.tree-item{display:flex;align-items:center;gap:4px;padding:3px 8px;cursor:pointer;border-radius:4px;margin:1px 4px;font-size:13px;color:#8b949e;transition:background .1s;-webkit-user-select:none;user-select:none}.tree-item:hover{background:#21262d;color:#e6edf3}.tree-item.active{background:#1f6feb33;color:#58a6ff}.tree-icon{width:10px;font-size:10px;color:#484f58}.tree-file-icon{font-size:13px}.tree-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.changed-dot{width:6px;height:6px;border-radius:50%;background:#f0883e;flex-shrink:0}.filetree-ctx-menu{position:fixed;z-index:500;background:#1c2128;border:1px solid #30363d;border-radius:6px;box-shadow:0 8px 24px #00000080;padding:4px 0;min-width:140px}.ctx-menu-item{display:block;width:100%;text-align:left;background:none;border:none;color:#e6edf3;font-size:13px;padding:7px 14px;cursor:pointer}.ctx-menu-item:hover{background:#21262d}.ctx-menu-item.ctx-menu-danger{color:#f85149}.ctx-menu-item.ctx-menu-danger:hover{background:#f851491a}.filetree-rename-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:600;display:flex;align-items:center;justify-content:center}.filetree-rename-box{background:#161b22;border:1px solid #30363d;border-radius:8px;padding:16px;min-width:320px;box-shadow:0 12px 32px #0009;display:flex;flex-direction:column;gap:10px}.filetree-rename-label{font-size:13px;font-weight:600;color:#8b949e}.filetree-rename-input{background:#0d1117;border:1px solid #30363d;border-radius:6px;color:#e6edf3;font-size:13px;padding:6px 10px;outline:none;width:100%}.filetree-rename-input:focus{border-color:#58a6ff}.filetree-rename-actions{display:flex;gap:8px;justify-content:flex-end}.filetree-rename-ok{background:#1f6feb;border:none;border-radius:6px;color:#fff;font-size:12px;padding:5px 14px;cursor:pointer}.filetree-rename-ok:hover{background:#388bfd}.filetree-rename-cancel{background:none;border:1px solid #30363d;border-radius:6px;color:#8b949e;font-size:12px;padding:5px 14px;cursor:pointer}.filetree-rename-cancel:hover{color:#e6edf3;border-color:#6e7681}.editor-container{display:flex;flex-direction:column;flex:1;height:100%;min-height:0;overflow:hidden}.editor-tab{height:36px;background:#1e1e1e;border-bottom:1px solid #252526;display:flex;align-items:center;padding:0 12px 0 16px;flex-shrink:0;gap:8px}.editor-tabs-bar{display:flex;align-items:center;background:#1e1e1e;border-bottom:1px solid #252526;flex-shrink:0;min-height:36px;overflow:hidden}.editor-tabs-list{display:flex;align-items:stretch;overflow-x:auto;flex:1;min-width:0;scrollbar-width:none}.editor-tabs-list::-webkit-scrollbar{display:none}.editor-tab-item{display:flex;align-items:center;gap:4px;padding:0 10px;height:36px;border-right:1px solid #252526;color:#8b949e;font-size:12px;font-family:Consolas,monospace;cursor:pointer;white-space:nowrap;flex-shrink:0;border-bottom:2px solid transparent;-webkit-user-select:none;user-select:none;max-width:180px}.editor-tab-item:hover{background:#2d2d2d;color:#e6edf3}.editor-tab-item.active{background:#1f2428;color:#e6edf3;border-bottom-color:#58a6ff}.tab-unsaved{color:#f0883e;font-size:10px;flex-shrink:0}.editor-tab-name{font-size:13px;color:inherit;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.tab-close-btn{background:none;border:none;color:transparent;font-size:11px;cursor:pointer;padding:0 2px;border-radius:2px;line-height:1;flex-shrink:0}.editor-tab-item:hover .tab-close-btn,.editor-tab-item.active .tab-close-btn{color:#8b949e}.tab-close-btn:hover{background:#444d56;color:#e6edf3!important}.editor-tab-actions{display:flex;align-items:center;gap:6px}.run-btn{display:flex;align-items:center;gap:5px;padding:3px 10px;background:#238636;border:1px solid #2ea043;border-radius:5px;color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap}.run-btn:hover:not(:disabled){background:#2ea043}.run-btn:disabled{opacity:.7;cursor:not-allowed}.run-btn.running{background:#1a3a1a;border-color:#238636}.run-btn.test-btn{background:#1f6feb;border-color:#388bfd}.run-btn.test-btn:hover:not(:disabled){background:#388bfd}.run-btn.test-btn.running{background:#0d2f5e;border-color:#1f6feb}.run-spinner{display:inline-block;width:10px;height:10px;border:2px solid #3fb950;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.lsp-status{font-size:11px;font-weight:600;padding:2px 7px;border-radius:10px;cursor:default;-webkit-user-select:none;user-select:none;transition:color .3s}.lsp-ready{color:#3fb950}.lsp-off{color:#484f58}.concept-btn{padding:3px 8px;background:transparent;border:1px solid #30363d;border-radius:5px;color:#8b949e;font-size:12px;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.concept-btn:hover{border-color:#58a6ff;color:#58a6ff}.concept-btn.active{border-color:#58a6ff;color:#58a6ff;background:#58a6ff1a}.run-output-toggle{padding:3px 8px;background:transparent;border:1px solid #30363d;border-radius:5px;color:#8b949e;font-size:11px;cursor:pointer;transition:border-color .15s,color .15s}.run-output-toggle:hover{border-color:#58a6ff;color:#58a6ff}.run-output-panel{flex-shrink:0;height:180px;display:flex;flex-direction:column;background:#0d1117;border-top:1px solid #21262d}.run-output-header{display:flex;align-items:center;gap:8px;padding:4px 12px;background:#161b22;border-bottom:1px solid #21262d;font-size:12px;color:#8b949e;flex-shrink:0}.run-output-running{color:#3fb950;font-size:11px}.run-output-close{margin-left:auto;background:none;border:none;color:#6e7681;cursor:pointer;font-size:13px;padding:0 2px;line-height:1}.run-output-close:hover{color:#e6edf3}.run-output-body{flex:1;overflow-y:auto;padding:8px 12px;font-family:Consolas,Courier New,monospace;font-size:12px;line-height:1.6}.run-output-waiting{color:#484f58;font-style:italic}.run-output-line{white-space:pre-wrap;word-break:break-all;color:#e6edf3}.run-output-line .run-stderr{color:#f85149}.run-output-line .run-success{color:#3fb950}.editor-monaco-wrapper{position:relative;flex:1;min-height:0;overflow:hidden}.editor-empty{display:flex;align-items:center;justify-content:center;height:100%;background:#1e1e1e}.editor-empty-content{text-align:center;color:#858585}.editor-empty-icon{font-size:48px;display:block;margin-bottom:16px;opacity:.3}.editor-empty-content p{font-size:14px;margin:8px 0}.editor-hint{font-size:12px;margin-top:16px!important}.hint-yellow{color:gold}.hint-red{color:#f85149}:global(.tutor-hole-line){background:#ffd70014!important;border-left:3px solid #ffd700!important}:global(.tutor-bug-line){background:#f8514914!important;border-left:3px solid #f85149!important;text-decoration:underline wavy #f85149}:global(.tutor-hole-text-blurred){filter:blur(4px);-webkit-user-select:none;user-select:none;pointer-events:none}:global(.tutor-hole-line-locked){background:#6e76810f!important;border-left:3px solid #484f58!important}.concept-panel{position:absolute;top:0;right:0;width:400px;max-width:55%;height:100%;background:#0d1117;border-left:1px solid #21262d;z-index:20;display:flex;flex-direction:column;animation:slideInRight .2s ease}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.concept-panel-header{display:flex;align-items:center;padding:10px 14px;background:#161b22;border-bottom:1px solid #21262d;flex-shrink:0}.concept-panel-title{font-size:13px;font-weight:600;color:#e6edf3;flex:1}.concept-panel-close{background:none;border:none;color:#6e7681;cursor:pointer;font-size:14px;padding:0 2px;line-height:1;transition:color .15s}.concept-panel-close:hover{color:#e6edf3}.concept-panel-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:20px}.concept-section{display:flex;flex-direction:column;gap:8px}.concept-section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#58a6ff;padding-bottom:6px;border-bottom:1px solid #21262d}.concept-md{font-size:12px;line-height:1.7;color:#c9d1d9}.concept-md p{margin:0 0 8px}.concept-md p:last-child{margin-bottom:0}.concept-md code{background:#161b22;border:1px solid #30363d;border-radius:3px;padding:1px 5px;font-family:Consolas,monospace;font-size:11px;color:#79c0ff}.concept-md pre{background:#161b22;border:1px solid #30363d;border-radius:6px;padding:10px 12px;overflow-x:auto;margin:8px 0}.concept-md pre code{background:none;border:none;padding:0;font-size:12px}.concept-md strong{color:#e6edf3}.concept-md ul,.concept-md ol{margin:4px 0 8px;padding-left:18px}.concept-md li{margin-bottom:3px}.concept-empty{color:#484f58;font-size:13px;text-align:center;margin-top:40px}.quiz-overlay{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;overflow:hidden;z-index:20}.quiz-glyph-btn{position:absolute;left:4px;width:14px;height:14px;border-radius:3px;border:none;cursor:pointer;pointer-events:auto;padding:0;opacity:.85;transition:opacity .12s,transform .12s}.quiz-glyph-btn:hover:not(.locked){opacity:1;transform:scale(1.15)}.quiz-glyph-btn.hole{background:#b8860b}.quiz-glyph-btn.bug{background:#b91c1c}.quiz-glyph-btn.locked{background:#30363d;cursor:default;opacity:.4}.quiz-glyph-btn.open{opacity:1;box-shadow:0 0 0 2px #fff3}.quiz-content{position:absolute;left:60px;max-width:420px;min-width:200px;pointer-events:auto;display:inline-flex;flex-direction:column}.quiz-content-header{display:flex;align-items:center;height:28px;padding:0 6px 0 8px;border-radius:4px 4px 0 0;flex-shrink:0;gap:6px}.quiz-content-header.hole{background:#b8860b}.quiz-content-header.bug{background:#b91c1c}.quiz-content-title{font-size:11px;font-weight:700;color:#fff;flex:1}.quiz-content-close{background:none;border:none;color:#ffffffb3;cursor:pointer;font-size:11px;padding:0 2px;line-height:1;transition:color .1s}.quiz-content-close:hover{color:#fff}.quiz-body{background:#161b22;border:1px solid #30363d;border-top:none;border-radius:0 0 4px 4px;padding:8px 10px;max-height:440px;overflow-y:auto;overflow-x:hidden}.quiz-content.shake{animation:shake .4s ease}.quiz-question{font-size:12px;color:#c9d1d9;margin-bottom:8px;font-weight:600;line-height:1.4}.quiz-options{display:flex;flex-direction:column;gap:4px}.quiz-option{display:flex;align-items:flex-start;gap:8px;padding:6px 8px;background:#21262d;border:1px solid #30363d;border-radius:4px;color:#c9d1d9;font-size:12px;cursor:pointer;text-align:left;transition:background .12s,border-color .12s}.quiz-option:hover{background:#2d333b;border-color:#58a6ff}.quiz-option code{font-family:Consolas,Courier New,monospace;font-size:12px;color:#79c0ff}.quiz-option-code{margin:0;padding:0;background:none;border:none;font-family:Consolas,Courier New,monospace;font-size:12px;color:#79c0ff;white-space:pre-wrap;word-break:break-all;flex:1;line-height:1.5}.quiz-option-num{color:#484f58;font-weight:700;min-width:14px}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.hint-section{margin-bottom:10px;border-bottom:1px solid #2a2a4a;padding-bottom:8px}.hint-list{display:flex;flex-direction:column;gap:5px;margin-bottom:6px}.hint-item{display:flex;gap:6px;align-items:flex-start;font-size:11px;line-height:1.5}.hint-label{background:#2d333b;color:#8b949e;border-radius:3px;padding:1px 5px;font-size:10px;font-weight:700;white-space:nowrap;flex-shrink:0;margin-top:1px}.hint-text{color:#c0c0e8;font-family:Consolas,monospace}.hint-reveal-btn{display:flex;align-items:center;gap:6px;padding:4px 10px;background:#21262d;border:1px dashed #444c56;border-radius:4px;color:#8b949e;font-size:11px;cursor:pointer;width:100%;transition:background .12s,border-color .12s,color .12s}.hint-reveal-btn:hover{background:#2d333b;border-color:#58a6ff;color:#c9d1d9}.hint-cost{margin-left:auto;opacity:.5;font-size:10px}.hint-exhausted{font-size:11px;color:#56d364;opacity:.8;padding:3px 0}.quiz-explanation{margin-top:8px;padding:8px 10px;background:#0d1117;border:1px solid #30363d;border-radius:4px}.quiz-explanation-label{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#58a6ff;margin-bottom:5px}.quiz-explanation-text{font-size:11px;line-height:1.6;color:#c9d1d9;margin:0;white-space:pre-wrap}.quiz-explanation-cursor{display:inline-block;width:2px;height:12px;background:#58a6ff;margin-left:1px;vertical-align:text-bottom;animation:blink .8s step-end infinite}@keyframes blink{50%{opacity:0}}@keyframes wrongFlash{0%,to{background:#252545;border-color:#3a3a6a}50%{background:#f8514938;border-color:#f85149}}.quiz-option.wrong-flash{animation:wrongFlash .55s ease}.quiz-mode-tabs{display:flex;gap:2px;flex:1}.quiz-mode-tab{background:#00000040;border:none;border-radius:3px;color:#ffffff8c;font-size:10px;font-weight:600;padding:2px 7px;cursor:pointer;transition:background .12s,color .12s;white-space:nowrap}.quiz-mode-tab:hover{color:#ffffffd9}.quiz-mode-tab.active{background:#ffffff2e;color:#fff}.write-mode{display:flex;flex-direction:column;gap:8px}.write-guideline{display:flex;flex-direction:column;gap:4px;background:#58a6ff12;border:1px solid rgba(88,166,255,.2);border-radius:4px;padding:7px 9px}.guideline-label{font-size:10px;font-weight:700;color:#58a6ff;text-transform:uppercase;letter-spacing:.05em}.guideline-text{font-size:11px;color:#c9d1d9;line-height:1.5;font-family:Consolas,monospace}.write-input-area{display:flex;flex-direction:column;gap:3px}.write-textarea{width:100%;background:#0d1117;border:1px solid #30363d;border-radius:4px;color:#e6edf3;font-family:Consolas,Courier New,monospace;font-size:12px;line-height:1.5;padding:7px 9px;resize:vertical;outline:none;box-sizing:border-box;transition:border-color .12s;min-height:60px}.write-textarea:focus{border-color:#58a6ff}.write-textarea.write-error-input{border-color:#f85149;animation:writeErrorFlash .5s ease}@keyframes writeErrorFlash{0%,to{border-color:#f85149}50%{border-color:#f851494d}}.write-input-hint{font-size:10px;color:#484f58;text-align:right}.write-submit-btn{background:#238636;border:none;border-radius:4px;color:#fff;font-size:12px;font-weight:700;padding:6px 14px;cursor:pointer;align-self:flex-end;transition:opacity .12s}.write-submit-btn:hover:not(:disabled){opacity:.85}.write-submit-btn:disabled{opacity:.4;cursor:not-allowed}.nurse-explanation-overlay{position:fixed;bottom:80px;right:10px;z-index:200;display:flex;align-items:flex-end;gap:10px;max-width:380px;pointer-events:auto;animation:nurseSlideIn .3s ease}@keyframes nurseSlideIn{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.nurse-overlay-character{flex-shrink:0;width:120px;display:flex;align-items:flex-end}.nurse-overlay-character img{width:120px;object-fit:contain;filter:drop-shadow(0 4px 16px rgba(0,0,0,.5))}.nurse-vn-dialogue{flex:1;min-width:0}.nurse-dialogue-text{max-height:140px;overflow-y:auto;white-space:pre-wrap}.nurse-close-btn{margin-top:8px;background:#ffffff1f;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#e6edf3;font-size:11px;padding:4px 10px;cursor:pointer;transition:background .15s}.nurse-close-btn:hover{background:#ffffff38}.git-added-gutter{border-left:3px solid #3fb950;margin-left:3px}.panel-tabs{display:flex;align-items:center;border-bottom:1px solid #21262d;flex-shrink:0;background:#161b22;padding:0 4px;gap:2px}.panel-tab{background:none;border:none;border-bottom:2px solid transparent;color:#8b949e;font-size:12px;padding:7px 12px;cursor:pointer;display:flex;align-items:center;gap:6px;transition:color .15s;white-space:nowrap}.panel-tab:hover{color:#e6edf3}.panel-tab.active{color:#e6edf3;border-bottom-color:#58a6ff}.tab-dot{width:6px;height:6px;border-radius:50%;background:#f0883e;animation:pulse 1s ease-in-out infinite}.panel-sync{margin-left:auto;font-size:11px;color:#484f58;padding-right:8px}.tasks-panel{display:flex;flex-direction:column;gap:0}.tasks-section{padding:14px 14px 12px;border-bottom:1px solid #21262d}.tasks-section:last-child{border-bottom:none}.tasks-section-title{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8b949e;margin:0 0 10px}.tasks-goal{font-size:13px;color:#e6edf3;line-height:1.6;margin:0 0 10px}.tasks-meta{display:flex;gap:6px}.tasks-badge{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:600}.tasks-badge.lang{background:#0d2137;color:#58a6ff}.tasks-badge.step{background:#0d2116;color:#3fb950}.tasks-concept{font-size:13px;color:#c9d1d9;line-height:1.7}.tasks-concept p{margin:0 0 8px}.tasks-concept code{background:#21262d;padding:1px 5px;border-radius:3px;font-family:Consolas,monospace;font-size:12px;color:#79c0ff}.tasks-concept pre{background:#161b22;border:1px solid #30363d;border-radius:6px;padding:10px 12px;overflow-x:auto;margin:8px 0}.tasks-concept pre code{background:none;padding:0;color:#e6edf3}.tasks-list{font-size:13px;color:#c9d1d9;line-height:1.7}.tasks-list h3{font-size:12px;color:#e6edf3;margin:10px 0 6px}.tasks-list ul,.tasks-list ol{padding-left:18px;margin:4px 0}.tasks-list li{margin:4px 0}.tasks-list strong{color:#f0f6fc}.tasks-list code{background:#21262d;padding:1px 5px;border-radius:3px;font-family:Consolas,monospace;font-size:12px;color:#79c0ff}.tasks-list p{margin:4px 0}.feedback-panel{display:flex;flex-direction:column;height:100%;background:#0d1117;overflow:hidden}.feedback-title{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#8b949e}.feedback-sync{font-size:11px;color:#484f58}.project-complete-banner{background:linear-gradient(135deg,#0d2137,#0d1f0d);border-bottom:1px solid #3fb950;padding:16px 12px;display:flex;align-items:center;gap:12px;flex-shrink:0}.project-complete-icon{font-size:32px;flex-shrink:0}.project-complete-text{flex:1;color:#3fb950}.project-complete-text strong{display:block;font-size:14px;margin-bottom:4px}.project-complete-text p{margin:0;font-size:12px;color:#8b949e}.step-complete-banner{background:#0d2137;border-bottom:1px solid #1f6feb;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;font-size:13px;color:#58a6ff;flex-shrink:0}.step-incomplete-banner{background:#1c1107;border-bottom:1px solid #9e6a03;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;font-size:13px;color:#f0883e;flex-shrink:0;gap:8px}.test-summary{font-size:11px;color:#8b949e;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.step-complete-actions{display:flex;gap:6px;align-items:center}.next-step-btn{background:#1f6feb;border:none;border-radius:4px;color:#fff;font-size:12px;padding:3px 10px;cursor:pointer}.next-step-btn:disabled{opacity:.6;cursor:not-allowed}.dismiss-btn{background:none;border:1px solid #1f6feb;border-radius:4px;color:#58a6ff;font-size:12px;padding:2px 8px;cursor:pointer}.snapshot-dropdown{position:relative}.snapshot-btn{background:none;border:1px solid #9e6a03;border-radius:4px;color:#f0883e;font-size:12px;padding:3px 8px;cursor:pointer}.snapshot-btn:disabled{opacity:.6;cursor:not-allowed}.snapshot-menu{position:absolute;bottom:calc(100% + 4px);right:0;background:#161b22;border:1px solid #30363d;border-radius:4px;min-width:140px;z-index:100}.snapshot-menu-item{display:block;width:100%;background:none;border:none;color:#c9d1d9;font-size:12px;padding:6px 12px;text-align:left;cursor:pointer}.snapshot-menu-item:hover{background:#21262d}.feedback-content{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:16px}.feedback-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#484f58;font-size:14px;text-align:center;gap:4px}.feedback-empty-hint{font-size:12px;color:#30363d}.feedback-message{border-left:2px solid #21262d;padding-left:12px}.feedback-message.streaming{border-left-color:#58a6ff}.feedback-message-time{font-size:11px;color:#484f58;margin-bottom:6px;display:flex;align-items:center;gap:6px}.streaming-dot{width:6px;height:6px;border-radius:50%;background:#58a6ff;display:inline-block;animation:pulse 1s ease-in-out infinite}.feedback-message-content{font-size:13px;line-height:1.6;color:#e6edf3}.feedback-message-content h1,.feedback-message-content h2,.feedback-message-content h3{color:#e6edf3;margin:12px 0 6px;font-size:14px}.feedback-message-content code{background:#21262d;padding:1px 5px;border-radius:3px;font-family:Consolas,monospace;font-size:12px;color:#79c0ff}.feedback-message-content pre{background:#161b22;border:1px solid #30363d;border-radius:6px;padding:12px;overflow-x:auto;margin:8px 0}.feedback-message-content pre code{background:none;padding:0;color:#e6edf3}.feedback-message-content ul,.feedback-message-content ol{padding-left:20px}.feedback-message-content li{margin:4px 0}.feedback-message-content strong{color:#f0f6fc}.feedback-message-content p{margin:6px 0}.chat-panel{display:flex;flex-direction:column;flex:1;overflow:hidden}.chat-messages{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px}.chat-msg{max-width:88%;padding:8px 12px;border-radius:8px;font-size:13px;line-height:1.6;word-break:break-word}.chat-msg-user{align-self:flex-end;background:#1f6feb;color:#fff}.chat-msg-ai{align-self:flex-start;background:#161b22;border-left:2px solid #21262d;color:#e6edf3}.chat-input-area{flex-shrink:0;border-top:1px solid #21262d;padding:8px;display:flex;gap:6px;align-items:flex-end;background:#0d1117}.chat-textarea{flex:1;background:#161b22;border:1px solid #30363d;border-radius:6px;color:#e6edf3;font-size:13px;line-height:1.5;padding:6px 10px;resize:none;font-family:inherit;outline:none}.chat-textarea:focus{border-color:#58a6ff}.chat-textarea:disabled{opacity:.6}.chat-textarea::placeholder{color:#484f58}.chat-send-btn{background:#1f6feb;border:none;border-radius:6px;color:#fff;font-size:13px;padding:6px 14px;cursor:pointer;white-space:nowrap;align-self:flex-end}.chat-send-btn:disabled{opacity:.5;cursor:not-allowed}.feedback-footer{padding:8px 12px;border-top:1px solid #21262d;flex-shrink:0}.project-info{display:flex;align-items:center;justify-content:space-between}.project-step{font-size:12px;color:#8b949e}.project-lang{font-size:11px;color:#484f58;background:#21262d;padding:2px 8px;border-radius:10px}.tasks-progress-section{padding-bottom:4px}.tasks-progress-header{display:flex;justify-content:space-between;margin-bottom:6px}.tasks-progress-label{font-size:12px;font-weight:600;color:#58a6ff}.tasks-progress-pct{font-size:11px;color:#6e7681}.tasks-progress-bar{height:6px;background:#21262d;border-radius:3px;overflow:hidden}.tasks-progress-fill{height:100%;background:linear-gradient(90deg,#1f6feb,#58a6ff);border-radius:3px;transition:width .4s ease}/**
 * Copyright (c) 2014 The xterm.js authors. All rights reserved.
 * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
 * https://github.com/chjj/term.js
 * @license MIT
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * Originally forked from (with the author's permission):
 *   Fabrice Bellard's javascript vt100 for jslinux:
 *   http://bellard.org/jslinux/
 *   Copyright (c) 2011 Fabrice Bellard
 *   The original design remains. The terminal itself
 *   has been extended to include xterm CSI codes, among
 *   other features.
 */.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{font-family:monospace;-webkit-user-select:text;user-select:text;white-space:pre}.xterm .xterm-accessibility-tree>div{transform-origin:left;width:fit-content}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{position:absolute;display:none}.xterm .xterm-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow, #000) 0 6px 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.terminal-panel{display:flex;flex-direction:column;height:100%;background:#0d1117}.terminal-header{display:flex;align-items:center;justify-content:space-between;padding:4px 12px;background:#161b22;border-bottom:1px solid #21262d;flex-shrink:0;height:30px}.terminal-title{font-size:12px;color:#8b949e;font-weight:600}.terminal-dir{font-weight:400;color:#484f58;font-family:Consolas,monospace}.terminal-close{background:none;border:none;color:#484f58;cursor:pointer;font-size:14px;padding:2px 6px;border-radius:4px;line-height:1}.terminal-close:hover{color:#e6edf3;background:#21262d}.terminal-body{flex:1;overflow:hidden;padding:4px 8px}.terminal-body .xterm{height:100%}.terminal-body .xterm-viewport{background:#0d1117!important}.problems-panel{display:flex;flex-direction:column;height:100%;background:#1c2128;font-size:12px}.problems-header{display:flex;align-items:center;gap:8px;padding:4px 12px;border-bottom:1px solid #30363d;flex-shrink:0;background:#161b22;height:28px}.problems-title{color:#e6edf3;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em}.problems-empty-label{color:#484f58;font-size:11px}.problems-count{font-size:11px;padding:0 5px;border-radius:10px;font-weight:600}.problems-count.sev-error{color:#f85149;background:#f8514926}.problems-count.sev-warning{color:#f0883e;background:#f0883e26}.problems-list{flex:1;overflow-y:auto}.problem-item{display:flex;align-items:center;gap:6px;padding:4px 12px;cursor:pointer;border-bottom:1px solid #21262d}.problem-item:hover{background:#21262d}.problem-icon{flex-shrink:0;font-size:12px}.problem-message{flex:1;color:#c9d1d9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.problem-location{flex-shrink:0;color:#484f58;font-family:Consolas,monospace}.problem-item.sev-error .problem-message{color:#ffa198}.problem-item.sev-warning .problem-message{color:#ffa657}.toast-container{position:fixed;bottom:36px;right:16px;z-index:2000;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:8px;font-size:13px;color:#e6edf3;box-shadow:0 4px 16px #0006;pointer-events:all;animation:toast-in .2s ease;min-width:240px;max-width:400px}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast-error{background:#2d1b1b;border:1px solid #f85149}.toast-success{background:#0d2116;border:1px solid #3fb950}.toast-info{background:#161b22;border:1px solid #30363d}.toast-icon{font-size:14px;flex-shrink:0}.toast-message{flex:1}.toast-close{background:none;border:none;color:#6e7681;cursor:pointer;font-size:11px;padding:0 2px;flex-shrink:0}.toast-close:hover{color:#e6edf3}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#0d1117;color:#e6edf3}.app{display:flex;flex-direction:column;height:100vh;width:100vw;background:#0d1117}.app-main{display:flex;flex:1;min-height:0;overflow:hidden}.app-sidebar{flex-shrink:0;overflow:hidden}.app-editor{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.app-monaco{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.app-terminal{flex-shrink:0;overflow:hidden}.app-problems{flex-shrink:0;overflow:hidden;border-top:1px solid #30363d}.app-feedback{flex-shrink:0;overflow:hidden}.app-statusbar{flex-shrink:0;border-top:1px solid #21262d}.resizer{flex-shrink:0;background:#21262d;position:relative;z-index:10;transition:background .15s}.resizer:hover,.resizer:active{background:#58a6ff}.resizer-horizontal{width:4px;cursor:col-resize;display:flex;align-items:center;justify-content:center}.resizer-vertical{height:4px;cursor:row-resize;display:flex;align-items:center;justify-content:center}.resizer-grip{pointer-events:none;border-radius:2px;background:#444d56;transition:background .15s}.resizer-horizontal .resizer-grip{width:2px;height:24px}.resizer-vertical .resizer-grip{width:24px;height:2px}.resizer:hover .resizer-grip,.resizer:active .resizer-grip{background:#58a6ff}.statusbar{height:100%;display:flex;align-items:center;gap:16px;padding:0 12px;background:#161b22;-webkit-user-select:none;user-select:none}.statusbar-item{font-size:12px;color:#8b949e}.statusbar-item.lang{color:#58a6ff;font-weight:600}.statusbar-item.syncing{color:#f0883e}.statusbar-item.sync-time{color:#3fb950}.statusbar-item.skill-badge{font-weight:600;padding:0 6px;border-radius:4px;font-size:11px}.statusbar-item.skill-newbie{color:#56d364;background:#56d3641f}.statusbar-item.skill-normal{color:#f0883e;background:#f0883e1f}.statusbar-item.skill-experienced{color:#f85149;background:#f851491f}.statusbar-right{margin-left:auto;display:flex;align-items:center;gap:8px}.statusbar-item.user-email{font-size:11px;color:#6e7681}.statusbar-lobby-btn{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:#8b949e;font-size:12px;font-weight:600;cursor:pointer;padding:3px 10px;border-radius:6px;transition:all .15s;white-space:nowrap;flex-shrink:0}.statusbar-lobby-btn:hover{background:#ffffff1f;color:#e6edf3;border-color:#fff3}.statusbar-icon-btn{background:none;border:none;color:#8b949e;font-size:14px;cursor:pointer;padding:2px 4px;transition:color .15s}.statusbar-icon-btn:hover{color:#e6edf3}.statusbar-terminal-btn{background:none;border:1px solid #30363d;border-radius:4px;color:#8b949e;font-size:11px;padding:2px 8px;cursor:pointer;transition:all .15s}.statusbar-terminal-btn:hover{border-color:#58a6ff;color:#58a6ff}.statusbar-terminal-btn.active{border-color:#3fb950;color:#3fb950;background:#0d2116}.statusbar-problems-btn{background:none;border:none;display:flex;align-items:center;gap:6px;padding:2px 6px;cursor:pointer;border-radius:4px}.statusbar-problems-btn:hover{background:#21262d}.statusbar-problems-btn.active{background:#1c2128}.sb-err{color:#f85149;font-size:11px}.sb-warn{color:#f0883e;font-size:11px}.app-search-panel{flex-shrink:0;width:300px;border-right:1px solid #21262d;overflow:hidden;display:flex;flex-direction:column}.search-panel{display:flex;flex-direction:column;height:100%;background:#161b22;color:#e6edf3;font-size:13px}.search-panel-header{padding:8px;border-bottom:1px solid #21262d;flex-shrink:0}.search-panel-input-row{display:flex;align-items:center;gap:6px;background:#0d1117;border:1px solid #30363d;border-radius:6px;padding:4px 8px}.search-panel-icon{font-size:12px;flex-shrink:0}.search-panel-input{flex:1;background:none;border:none;outline:none;color:#e6edf3;font-size:13px}.search-panel-close{background:none;border:none;color:#6e7681;cursor:pointer;font-size:12px;padding:0 2px}.search-panel-close:hover{color:#e6edf3}.search-panel-summary{font-size:11px;color:#6e7681;margin-top:4px;padding:0 2px}.search-panel-results{flex:1;overflow-y:auto}.search-panel-loading,.search-panel-empty{padding:12px;color:#6e7681;font-size:12px}.search-group{border-bottom:1px solid #1c2128}.search-group-header{display:flex;align-items:center;gap:4px;padding:6px 8px;cursor:pointer;background:#0d1117;-webkit-user-select:none;user-select:none}.search-group-header:hover{background:#161b22}.search-group-toggle{font-size:10px;color:#6e7681;flex-shrink:0}.search-group-filename{font-weight:600;color:#e6edf3;font-size:12px}.search-group-dir{font-size:11px;color:#6e7681;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-group-count{font-size:11px;color:#6e7681;margin-left:auto;flex-shrink:0}.search-result-item{display:flex;align-items:baseline;gap:8px;padding:3px 8px 3px 24px;cursor:pointer;font-family:SF Mono,Fira Code,monospace}.search-result-item:hover{background:#1c2128}.search-result-linenum{font-size:11px;color:#6e7681;flex-shrink:0;min-width:28px;text-align:right}.search-result-content{font-size:12px;color:#8b949e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-content mark{background:#ffd5004d;color:#ffd500;border-radius:2px}.quick-open-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:1000;display:flex;justify-content:center;padding-top:80px}.quick-open-panel{background:#161b22;border:1px solid #30363d;border-radius:8px;width:560px;max-height:400px;display:flex;flex-direction:column;box-shadow:0 16px 40px #0009;overflow:hidden}.quick-open-input-row{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid #21262d}.quick-open-icon{font-size:14px;flex-shrink:0}.quick-open-input{flex:1;background:none;border:none;outline:none;color:#e6edf3;font-size:14px}.quick-open-results{flex:1;overflow-y:auto}.quick-open-empty{padding:16px;color:#6e7681;font-size:13px;text-align:center}.quick-open-item{display:flex;align-items:center;gap:8px;padding:7px 14px;cursor:pointer}.quick-open-item:hover,.quick-open-item.selected{background:#1f2937}.quick-open-item-icon{font-size:13px;flex-shrink:0}.quick-open-item-name{font-size:13px;color:#e6edf3;flex:1}.quick-open-item-name mark{background:#ffd5004d;color:#ffd500;border-radius:2px}.quick-open-item-dir{font-size:11px;color:#6e7681;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.loading-screen{height:100vh;display:flex;align-items:center;justify-content:center;color:#8b949e;font-size:14px;background:#0d1117}.ws-reconnect-banner{position:fixed;top:0;left:0;right:0;z-index:900;background:#2d1f00;border-bottom:1px solid #f0883e;color:#f0883e;font-size:12px;font-weight:600;text-align:center;padding:4px;display:flex;align-items:center;justify-content:center;gap:6px}.ws-reconnect-dot{width:6px;height:6px;border-radius:50%;background:#f0883e;animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}
