:root{--accent: #0071e3;--accent-strong: #0059b8;--accent-soft: #d8eaff;--success: #1f9d5b;--warning: #c58814;--danger: #d64b4b;--text: #111827;--text-muted: #667085;--surface: rgba(255, 255, 255, .82);--surface-strong: #ffffff;--surface-muted: #f5f8ff;--border: rgba(15, 23, 42, .1);--radius-lg: 1.35rem;--radius-md: 1rem;--radius-sm: .75rem;--shadow-soft: 0 18px 45px rgba(31, 41, 55, .08);--shadow-tight: 0 8px 20px rgba(15, 23, 42, .08)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:SF Pro Text,SF Pro Display,Avenir Next,Helvetica Neue,sans-serif;background:radial-gradient(circle at 18% -8%,#dbeafe 0,rgba(219,234,254,0) 32%),radial-gradient(circle at 88% 0%,#e0e7ff 0,rgba(224,231,255,0) 36%),linear-gradient(180deg,#f9fbff 0%,#eef3fb 100%);color:var(--text);line-height:1.45}.app-container{min-height:100vh;display:flex;flex-direction:column;position:relative}.app-container:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:radial-gradient(rgba(15,23,42,.05) .5px,transparent .5px);background-size:24px 24px;opacity:.35;z-index:-1}.app-header{margin:1rem 1.2rem 0;padding:1rem 1.3rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;border:1px solid var(--border);border-radius:var(--radius-lg);background:linear-gradient(120deg,rgba(240,248,255,.82) 0%,rgba(232,240,255,.88) 100%);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:var(--shadow-soft)}.header-left h1{color:#0b1530;font-weight:700}.app-subtitle{color:var(--text-muted);font-size:.95rem;letter-spacing:-.01em}.header-stats{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;justify-content:flex-end}.stat-item{display:flex;align-items:center;gap:.5rem;padding:.6rem .95rem;border-radius:999px;color:#0f2147;font-weight:600;font-size:.87rem;border:1px solid rgba(15,23,42,.08);background:rgba(255,255,255,.72)}.welcome-pill{display:flex;align-items:center;gap:.45rem;padding:.52rem 1rem;min-height:2.1rem;border-radius:999px;border:1px solid rgba(15,23,42,.08);background:rgba(255,255,255,.72);color:#304265;font-weight:600;font-size:.9rem;white-space:nowrap}.admin-status-pill{display:flex;align-items:center;padding:.52rem .9rem;min-height:2.1rem;border-radius:999px;border:1px solid rgba(15,23,42,.08);background:rgba(255,255,255,.72);font-weight:700;font-size:.79rem;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.admin-status-pill.enabled{color:#1f9d5b;background:#e9f9f0;border-color:#1f9d5b40}.admin-status-pill.disabled{color:#b64045;background:#fdebec;border-color:#b6404538}.app-nav{margin:.9rem 1.2rem 0;padding:.5rem;display:flex;gap:.4rem;border-radius:999px;border:1px solid var(--border);background:rgba(255,255,255,.7);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);width:-moz-fit-content;width:fit-content}.app-nav .nav-btn{display:flex;align-items:center;gap:.45rem;padding:.52rem 1rem;border:none;border-radius:999px;background:transparent;color:#304265;cursor:pointer;font-weight:600;font-size:.9rem;transition:background .18s ease,color .18s ease,transform .18s ease}.app-nav .nav-btn:hover{background:rgba(0,113,227,.12);color:#0f3a7a;transform:translateY(-1px)}.app-nav .nav-btn.active{background:var(--accent);color:#fff;box-shadow:0 6px 14px #0071e342}.app-main{flex:1;width:min(1320px,100% - 2.4rem);margin:1rem auto 1.15rem}.app-footer{margin:0 1.2rem 1rem;padding:.95rem 1.15rem;text-align:center;color:var(--text-muted);font-size:.85rem;border-radius:999px;border:1px solid var(--border);background:rgba(255,255,255,.66);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.app-main>*{animation:rise-in .36s ease-out}@media (max-width: 900px){.app-header{margin:.8rem .7rem 0;padding:.95rem}.app-nav{margin:.75rem .7rem 0;width:calc(100% - 1.4rem);justify-content:space-between;border-radius:1rem}.app-nav .nav-btn{justify-content:center;flex:1}.app-main{width:calc(100% - 1.4rem);margin-top:.85rem}.app-footer{margin:0 .7rem .7rem;border-radius:1rem}}@media (prefers-reduced-motion: reduce){.app-main>*{animation:none}}.dashboard{display:flex;flex-direction:column;gap:1.35rem}.dashboard-grid{display:grid;grid-template-columns:1.25fr .9fr .9fr;gap:1rem}.card{border-radius:var(--radius-lg);padding:1.15rem;border:1px solid var(--border);background:var(--surface);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:var(--shadow-tight);transition:transform .18s ease,box-shadow .18s ease}.card:hover{transform:translateY(-2px);box-shadow:0 12px 28px #0f172a1c}.card h2,.section-title{display:flex;align-items:center;gap:.55rem;margin-bottom:.95rem;font-size:1.06rem;letter-spacing:-.01em;color:#12213f}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.stat{padding:.75rem;border-radius:var(--radius-md);background:linear-gradient(155deg,#ffffff 0%,#f4f8ff 100%);border:1px solid rgba(15,23,42,.08)}.stat-value{display:block;font-size:1.45rem;font-weight:700;letter-spacing:-.02em;color:#0f3269}.stat-label{margin-top:.15rem;font-size:.76rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.progress-section{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.progress-label{display:flex;justify-content:space-between;margin-bottom:.5rem;color:#1e3159;font-size:.86rem;font-weight:600}.progress-bar{height:.44rem;border-radius:999px;background:rgba(15,23,42,.08);overflow:hidden}.progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#0071e3 0%,#5b9bff 100%);transition:width .28s ease}.progress-info{margin-top:.45rem;color:var(--text-muted);font-size:.78rem}.badges-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(94px,1fr));gap:.7rem}.badge{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.7rem;border-radius:var(--radius-md);text-align:center;border:1px solid rgba(15,23,42,.08);background:linear-gradient(145deg,#fff7db 0%,#ffecba 100%)}.badge-emoji{font-size:1.4rem}.badge-name{margin-top:.2rem;font-size:.72rem;font-weight:600;color:#7d4c00}.empty-state{color:var(--text-muted);font-size:.88rem;text-align:center;grid-column:1 / -1;padding:.8rem}.stats-list{display:grid;gap:.55rem}.leaderboard-list{display:grid;gap:.45rem}.leaderboard-row{display:grid;grid-template-columns:2.3rem minmax(0,1fr) auto auto auto;align-items:center;gap:.45rem;border-radius:.8rem;padding:.62rem .65rem;font-size:.8rem;background:#f8faff;border:1px solid rgba(15,23,42,.06)}.leaderboard-rank{font-weight:700;color:#1a4f95}.leaderboard-user{font-weight:600;color:#1b2d4f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-meta{display:inline-flex;align-items:center;gap:.25rem;color:#395a89;font-weight:600;letter-spacing:-.01em}.leaderboard-meta svg{flex-shrink:0}.stat-row{display:flex;justify-content:space-between;align-items:center;border-radius:.8rem;padding:.68rem .75rem;font-size:.86rem;background:#f8faff;border:1px solid rgba(15,23,42,.06)}.stat-row .stat-value{font-size:.9rem;color:#0f3269}.stat-row .stat-value.alert{color:var(--warning)}.lessons-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.95rem}.lesson-card{padding:1rem;border-radius:var(--radius-lg);border:1px solid var(--border);background:linear-gradient(155deg,rgba(255,255,255,.92) 0%,rgba(245,249,255,.92) 100%);box-shadow:var(--shadow-tight);cursor:pointer;display:flex;flex-direction:column;gap:.55rem;transition:transform .18s ease,box-shadow .18s ease}.lesson-card:hover{transform:translateY(-3px);box-shadow:0 14px 26px #0f172a1f}.lesson-card.completed{background:linear-gradient(145deg,rgba(236,253,245,.9) 0%,rgba(219,252,235,.9) 100%);border-color:#10b98166}.lesson-header{display:flex;justify-content:space-between;align-items:center}.lesson-number{font-size:.73rem;font-weight:700;text-transform:uppercase;color:var(--text-muted);letter-spacing:.08em}.completed-badge{width:1.3rem;height:1.3rem;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--success);font-size:.78rem;font-weight:700}.lesson-card h3{font-size:1.05rem;color:#12213f}.lesson-card p{color:var(--text-muted);font-size:.86rem;flex:1}.lesson-meta{display:flex;align-items:center;justify-content:space-between;gap:.45rem}.difficulty{padding:.27rem .65rem;border-radius:999px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.difficulty[data-level=Beginner]{background:#e8f7ed;color:#207348}.difficulty[data-level=Intermediate]{background:#fff4db;color:#9b6208}.difficulty[data-level=Advanced]{background:#fdebec;color:#b64045}.challenges{font-size:.78rem;font-weight:600;color:#28568f}.start-btn{margin-top:.2rem;padding:.56rem .9rem;border:none;border-radius:.8rem;color:#fff;background:var(--accent);font-weight:600;cursor:pointer;transition:background .16s ease,transform .16s ease}.start-btn:hover{background:var(--accent-strong);transform:translateY(-1px)}.admin-card{margin-top:.2rem}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.admin-note{margin-bottom:.75rem;color:var(--text-muted);font-size:.86rem}.admin-controls-grid{display:grid;gap:.8rem}.admin-user-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.5rem;border-radius:.8rem;border:1px solid rgba(15,23,42,.08);background:#f8faff;padding:.75rem;font-size:.82rem;color:#23406d}.admin-field{display:grid;gap:.3rem}.admin-field span{color:#2f4061;font-size:.78rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.admin-field select,.admin-field input{width:100%;border:1px solid rgba(15,23,42,.12);border-radius:.7rem;background:#fff;color:#14284d;padding:.52rem .62rem;font:inherit}.admin-field select:focus,.admin-field input:focus{outline:none;border-color:#0071e380;box-shadow:0 0 0 3px #0071e324}.admin-stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}.admin-actions-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.55rem}.admin-btn{border:1px solid transparent;border-radius:.75rem;background:var(--accent);color:#fff;padding:.55rem .82rem;font-weight:600;cursor:pointer;transition:background .15s ease,transform .15s ease}.admin-btn:hover:not(:disabled){transform:translateY(-1px);background:var(--accent-strong)}.admin-btn.secondary{background:#eef4ff;color:#1a4f95;border-color:#0f172a14}.admin-btn.secondary:hover:not(:disabled){background:#dde9ff}.admin-btn.warning{background:#fff4db;color:#915904;border-color:#c588143d}.admin-btn.warning:hover:not(:disabled){background:#ffe7af}.admin-btn.danger{background:#fdebec;color:#b64045;border-color:#d64b4b3d}.admin-btn.danger:hover:not(:disabled){background:#f9d8da}.admin-btn:disabled{opacity:.65;cursor:not-allowed}@media (max-width: 1120px){.dashboard-grid{grid-template-columns:1fr}}@media (max-width: 768px){.dashboard{gap:1rem}.stats-grid{grid-template-columns:1fr 1fr}.leaderboard-row{grid-template-columns:2rem minmax(0,1fr) auto auto auto;font-size:.75rem}.admin-stats-grid{grid-template-columns:1fr}}.python-editor{display:flex;flex-direction:column;gap:0;background:#fff;border-radius:var(--radius-md);overflow:hidden;border:1px solid rgba(15,23,42,.1)}.editor-header{display:flex;justify-content:space-between;align-items:center;padding:.58rem .82rem;background:linear-gradient(160deg,#f8fbff 0%,#f0f6ff 100%);border-bottom:1px solid rgba(15,23,42,.08);color:#fff;font-size:.82rem}.editor-title{font-weight:600;color:#112041}.editor-hint{font-size:.74rem;color:#5f7290}.editor-wrapper{position:relative;height:320px;font-family:SF Mono,JetBrains Mono,Menlo,monospace;font-size:.9rem;line-height:1.45;background:#0f1728;color:#d1d5db;overflow:hidden}.editor-textarea{position:absolute;top:0;left:0;width:100%;height:100%;padding:.85rem;background:transparent;color:#e8eef9;border:none;outline:none;resize:none;font-family:SF Mono,JetBrains Mono,Menlo,monospace;font-size:.9rem;line-height:1.45;z-index:2;white-space:pre;word-wrap:normal;overflow:auto}.editor-highlight{position:absolute;top:0;left:0;width:100%;height:100%;padding:.85rem;pointer-events:none;white-space:pre;word-wrap:normal;overflow:auto;z-index:1;color:transparent;background:#0f1728}.editor-textarea::-webkit-scrollbar{width:8px;height:8px}.editor-textarea::-webkit-scrollbar-track{background:#0f1728}.editor-textarea::-webkit-scrollbar-thumb{background:#4f617f;border-radius:4px}.editor-textarea::-webkit-scrollbar-thumb:hover{background:#60759a}.editor-textarea:focus{outline:none}.python-editor:focus-within{border-color:#0071e380;box-shadow:0 0 0 3px #0071e326}@media (max-width: 768px){.editor-wrapper{height:260px}.editor-textarea,.editor-highlight{font-size:.82rem;padding:.72rem}}.code-challenge{display:flex;flex-direction:column;gap:.95rem;border-radius:var(--radius-md);padding:.85rem;background:rgba(248,251,255,.85);border:1px solid var(--border)}.challenge-description{background:#ffffff;border-radius:var(--radius-md);padding:1rem;border:1px solid rgba(15,23,42,.08)}.challenge-title{color:#10213f;margin-bottom:.45rem;font-size:1.2rem;letter-spacing:-.01em}.challenge-text{color:var(--text-muted);font-size:.94rem;line-height:1.5;margin-bottom:.8rem}.expected-output-section{background:#eefaf2;border-radius:.8rem;padding:.78rem;margin-bottom:.7rem;border:1px solid rgba(31,157,91,.24)}.expected-output-section h4{color:#1f9d5b;margin-bottom:.35rem;font-size:.86rem}.expected-output-item+.expected-output-item{margin-top:.45rem}.expected-output-label{display:inline-block;color:#1f9d5b;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:.2rem}.expected-output-code{margin:0;background:#0f1728;color:#72e6b1;padding:.7rem;border-radius:.7rem;overflow-x:auto;font-family:SF Mono,JetBrains Mono,Menlo,monospace;font-size:.78rem;line-height:1.35}.hints-section{background:#fff8e5;border-radius:.8rem;padding:.78rem;margin-bottom:.7rem;border:1px solid rgba(197,136,20,.2)}.hints-section h4{color:#8f5e09;margin-bottom:.3rem;font-size:.86rem}.hints-section ul{list-style:none;padding:0}.hints-section li{color:#7c5008;padding:.2rem 0;font-size:.84rem}.hints-section li:before{content:"• ";font-weight:700;margin-right:.3rem}.example-section{background:#edf5ff;border-radius:.8rem;padding:.78rem;border:1px solid rgba(0,113,227,.16)}.example-section h4{color:#1a4f95;margin-bottom:.35rem;font-size:.86rem}.example-code{background:#111827;color:#82f6c2;padding:.8rem;border-radius:.7rem;overflow-x:auto;font-family:SF Mono,JetBrains Mono,Menlo,monospace;font-size:.8rem;line-height:1.4}.editor-section{display:flex;flex-direction:column;gap:.8rem}.output-panel{background:#ffffff;border-radius:var(--radius-md);padding:.82rem;border:1px solid rgba(31,157,91,.24)}.output-panel h3{color:var(--success);margin-bottom:.35rem;font-size:.86rem}.output-code{background:#0f1728;color:#72e6b1;padding:.8rem;border-radius:.7rem;overflow-x:auto;font-family:SF Mono,JetBrains Mono,Menlo,monospace;font-size:.8rem;line-height:1.4;margin:0}.test-results{background:#ffffff;border-radius:var(--radius-md);padding:.82rem;border:1px solid rgba(214,75,75,.26)}.test-results.success{border-color:#1f9d5b4d}.test-header{display:flex;align-items:center;gap:.55rem;font-weight:600;margin-bottom:.65rem;font-size:.92rem}.test-results.success .test-header{color:var(--success)}.test-results.failed .test-header{color:var(--danger)}.test-items{display:flex;flex-direction:column;gap:.45rem}.test-item{display:flex;align-items:flex-start;gap:.45rem;padding:.6rem;background:#f6f9ff;border-radius:.75rem;font-size:.84rem}.test-item.passed{background:#e9f9f0;border:1px solid rgba(31,157,91,.22)}.test-item.failed{background:#fdeff0;border:1px solid rgba(214,75,75,.2)}.test-icon{font-weight:700;font-size:.96rem;min-width:1rem}.test-item.passed .test-icon{color:var(--success)}.test-item.failed .test-icon{color:var(--danger)}.test-name{font-weight:600;flex:1}.test-error,.test-mismatch{color:var(--danger);font-family:SF Mono,JetBrains Mono,Menlo,monospace;font-size:.72rem;padding-top:.25rem}.test-item.passed .test-mismatch{color:var(--success)}.challenge-actions{display:flex;align-items:center;gap:.85rem;padding-top:.75rem;border-top:1px solid var(--border)}.run-btn{display:flex;align-items:center;gap:.45rem;padding:.58rem 1rem;background:var(--accent);color:#fff;border:1px solid transparent;border-radius:.8rem;cursor:pointer;font-weight:600;font-size:.9rem;transition:background .16s ease,transform .16s ease}.run-btn:hover:not(:disabled){transform:translateY(-1px);background:var(--accent-strong)}.run-btn:disabled{opacity:.72;cursor:not-allowed}.completed-message{display:flex;align-items:center;gap:.45rem;color:var(--success);font-weight:600;font-size:.86rem}@media (max-width: 768px){.code-challenge{padding:.72rem;gap:.75rem}.challenge-description{padding:.8rem}.example-code,.output-code{font-size:.73rem}.run-btn{width:100%;justify-content:center}}.lesson-view{display:flex;flex-direction:column;gap:1.1rem;background:rgba(255,255,255,.78);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.2rem;box-shadow:var(--shadow-soft);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.lesson-header-section{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.lesson-title{font-size:clamp(1.55rem,2.1vw,2rem);color:#111f3d;margin-bottom:.2rem;letter-spacing:-.02em}.lesson-description{color:var(--text-muted);font-size:.92rem}.lesson-info{display:flex;gap:.5rem;flex-wrap:wrap}.info-badge{padding:.35rem .72rem;border-radius:999px;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.info-badge.difficulty{background:#fff4db;color:#9b6208}.info-badge.challenges{background:#ddeeff;color:#1d4c90}.lesson-progress{background:#f8fbff;padding:.8rem;border-radius:var(--radius-md);border:1px solid rgba(15,23,42,.06)}.progress-text{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem;font-size:.82rem;font-weight:600}.progress-percent{color:var(--accent)}.progress-bar{background:rgba(15,23,42,.08);border-radius:999px;height:.4rem;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#0071e3 0%,#5b9bff 100%);height:100%;border-radius:inherit;transition:width .24s ease}.lesson-content{display:grid;grid-template-columns:250px 1fr;gap:1rem}.challenges-list{background:rgba(250,252,255,.92);border-radius:var(--radius-md);padding:.75rem;border:1px solid var(--border);height:-moz-fit-content;height:fit-content;position:sticky;top:.85rem}.challenges-list h3{margin-bottom:.7rem;text-transform:uppercase;font-size:.72rem;color:var(--text-muted);letter-spacing:.08em}.challenges{display:flex;flex-direction:column;gap:.45rem}.challenge-item{display:flex;align-items:center;gap:.6rem;padding:.62rem;border-radius:.82rem;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease;background:white;border:1px solid rgba(15,23,42,.08)}.challenge-item:hover{transform:translate(2px)}.challenge-item.active{background:var(--accent);color:#fff;border-color:transparent}.challenge-item.completed{border-color:#1f9d5b73}.challenge-icon{display:flex;align-items:center;justify-content:center;width:1.45rem;min-width:1.45rem;height:1.45rem;border-radius:50%;background:rgba(0,113,227,.15);color:#0f3269;font-size:.72rem;font-weight:700}.challenge-item.active .challenge-icon{background:white;color:var(--accent)}.challenge-item.completed .challenge-icon{background:var(--success);color:#fff}.challenge-title{font-size:.84rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.challenge-main{display:flex;flex-direction:column;gap:.85rem}.lesson-nav{display:flex;justify-content:space-between;align-items:center;padding-top:.95rem;border-top:1px solid var(--border);gap:1rem}.lesson-nav-btn{padding:.58rem .95rem;background:var(--accent);color:#fff;border:1px solid transparent;border-radius:.78rem;cursor:pointer;font-weight:600;transition:background .16s ease,transform .16s ease}.lesson-nav-btn:hover:not(:disabled){background:var(--accent-strong);transform:translateY(-1px)}.lesson-nav-btn:disabled{background:#eef2f8;color:#93a0b6;border-color:#0f172a0f;cursor:not-allowed}.nav-status{color:var(--text-muted);font-weight:600;font-size:.88rem}.error-message{background:#fdebec;color:#b64045;padding:1rem;border-radius:var(--radius-md);border:1px solid rgba(182,64,69,.2);text-align:center}@media (max-width: 768px){.lesson-view{padding:.85rem}.lesson-header-section{flex-direction:column}.lesson-title{font-size:1.35rem}.lesson-content{grid-template-columns:1fr;gap:.75rem}.challenges-list{position:static;height:auto;padding:.7rem}.challenges{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.45rem}.challenge-item{padding:.52rem}.challenge-title{font-size:.78rem}.lesson-nav{flex-direction:column}.lesson-nav-btn{width:100%}}.code-editor{display:grid;grid-template-columns:1fr 290px;gap:1rem}.editor-container{background:rgba(255,255,255,.82);border-radius:var(--radius-lg);padding:1rem;border:1px solid var(--border);box-shadow:var(--shadow-soft);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.editor-container h2{color:#132247;margin-bottom:.25rem;font-size:1.35rem;letter-spacing:-.02em}.editor-container p{color:var(--text-muted);margin-bottom:.95rem;font-size:.92rem}.editor-buttons{display:flex;gap:.6rem;margin-top:.9rem}.run-button,.reset-button{display:flex;align-items:center;gap:.4rem;padding:.58rem .95rem;border:1px solid transparent;border-radius:.8rem;cursor:pointer;font-weight:600;transition:transform .15s ease,background .15s ease;font-size:.86rem}.run-button{background:var(--accent);color:#fff}.run-button:hover:not(:disabled){transform:translateY(-1px);background:var(--accent-strong)}.run-button:disabled{opacity:.7;cursor:not-allowed}.reset-button{background:#f3f6fc;color:#253f69;border-color:#0f172a14}.reset-button:hover{background:#e8eef8;transform:translateY(-1px)}.output-section{margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--border)}.output-section h3{color:var(--success);margin-bottom:.45rem;font-size:.86rem}.output-box{background:#0f1728;color:#72e6b1;padding:.85rem;border-radius:.75rem;font-family:SF Mono,JetBrains Mono,Menlo,monospace;font-size:.82rem;max-height:300px;overflow-y:auto}.output-box pre{margin:0;white-space:pre-wrap;word-break:break-word}.quick-tips{background:rgba(255,255,255,.84);border-radius:var(--radius-lg);padding:1rem;border:1px solid var(--border);box-shadow:var(--shadow-tight);height:-moz-fit-content;height:fit-content;position:sticky;top:.85rem}.quick-tips h3{color:#122247;margin-bottom:.7rem;font-size:.95rem}.quick-tips ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:.45rem}.quick-tips li{color:#33527f;font-size:.82rem;padding:.52rem .62rem;background:#f5f9ff;border-radius:.7rem;border:1px solid rgba(15,23,42,.06)}.quick-tips li code{background:rgba(0,113,227,.12);padding:.1rem .35rem;border-radius:.35rem;font-family:SF Mono,JetBrains Mono,Menlo,monospace;font-size:.74rem}.output-box::-webkit-scrollbar{width:6px}.output-box::-webkit-scrollbar-track{background:transparent}.output-box::-webkit-scrollbar-thumb{background:#4d617f;border-radius:3px}@media (max-width: 1024px){.code-editor{grid-template-columns:1fr}.quick-tips{position:static}}@media (max-width: 768px){.code-editor{gap:.75rem}.editor-container{padding:.85rem}.editor-buttons{flex-direction:column}.run-button,.reset-button{width:100%;justify-content:center}}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:1.25rem}.auth-card{width:min(460px,100%);background:rgba(255,255,255,.86);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:1.25rem}.auth-brand{width:2.8rem;height:2.8rem;border-radius:.8rem;display:grid;place-items:center;font-weight:700;color:#0b1f3b;background:linear-gradient(145deg,#f2f8ff 0%,#dce9ff 60%,#cadfff 100%);margin-bottom:.8rem}.auth-card h1{color:#112041;letter-spacing:-.02em}.auth-subtitle{color:var(--text-muted);margin-top:.3rem;margin-bottom:1rem}.auth-warning{background:#fff8e5;border:1px solid rgba(197,136,20,.3);color:#7c5008;border-radius:var(--radius-sm);padding:.65rem;font-size:.82rem;margin-bottom:.9rem}.auth-form{display:grid;gap:.75rem}.auth-form label{display:grid;gap:.35rem}.auth-form label span{font-size:.82rem;color:#2f4061;font-weight:600}.auth-input-wrap{display:flex;align-items:center;gap:.5rem;border:1px solid rgba(15,23,42,.1);border-radius:.75rem;background:#fff;padding:.55rem .65rem;color:#5f7290}.auth-input-wrap:focus-within{border-color:#0071e373;box-shadow:0 0 0 3px #0071e324}.auth-input-wrap input{width:100%;border:0;outline:0;font:inherit;color:#112041}.auth-recaptcha{margin-top:.1rem;display:flex;justify-content:center}.auth-error{background:#fdebec;border:1px solid rgba(182,64,69,.22);color:#b64045;border-radius:.75rem;padding:.55rem .65rem;font-size:.82rem}.auth-status{border-radius:.7rem;padding:.45rem .6rem;font-size:.78rem;font-weight:600}.auth-status.checking{background:#edf5ff;border:1px solid rgba(0,113,227,.2);color:#1a4f95}.auth-status.available{background:#e9f9f0;border:1px solid rgba(31,157,91,.24);color:#1f9d5b}.auth-status.taken,.auth-status.invalid{background:#fdebec;border:1px solid rgba(182,64,69,.22);color:#b64045}.auth-submit{margin-top:.35rem;border:0;border-radius:.8rem;background:var(--accent);color:#fff;font-weight:600;padding:.6rem .9rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.4rem}.auth-submit:disabled{opacity:.72;cursor:not-allowed}.auth-switch{margin-top:.85rem;border:0;background:transparent;color:#1a4f95;font-weight:600;cursor:pointer}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.header-left{display:flex;align-items:center;gap:1rem}.brand-mark{width:2.75rem;height:2.75rem;border-radius:.9rem;display:grid;place-items:center;font-size:.95rem;font-weight:700;letter-spacing:.04em;color:#0b1f3b;background:linear-gradient(145deg,#f2f8ff 0%,#dce9ff 60%,#cadfff 100%);box-shadow:inset 0 1px #ffffffe6,0 8px 18px #2563eb33}.brand-logo{width:100%;height:100%;display:block;-o-object-fit:cover;object-fit:cover;border-radius:inherit}.app-title{font-size:clamp(1.45rem,2.4vw,2rem);line-height:1.1;letter-spacing:-.02em}.app-subtitle{margin-top:.35rem}.signout-btn{cursor:pointer;border:1px solid rgba(15,23,42,.08);font:inherit}.signout-btn:hover{background:rgba(214,75,75,.1);color:#8c2632}@media (max-width: 900px){.header-left{width:100%}}@media (max-width: 520px){.brand-mark{width:2.45rem;height:2.45rem;font-size:.82rem;border-radius:.75rem}}
