/* AI Ustoz UZ: «Python va sun’iy intellekt» moduli: kod bloklari, brauzerdagi mashqlar. portal.css ranglari (--panel, --gold...) ishlatiladi. */

/* bosh sahifadagi hafta kartalari: 4 modul */
@media(min-width:1100px){#homeWeeks{grid-template-columns:repeat(4,1fr)}}
@media(min-width:821px) and (max-width:1099px){#homeWeeks{grid-template-columns:repeat(2,1fr)}}

/* dars matnidagi kod */
.lesson code{font:500 .92em/1.4 ui-monospace,Consolas,"Cascadia Mono",monospace;background:rgba(255,212,90,.1);border:1px solid rgba(255,212,90,.22);color:#ffe9a8;padding:1px 6px;border-radius:6px;word-break:break-word}
.lesson pre code{background:none;border:0;padding:0;color:inherit;font-size:inherit;word-break:normal}
.py-code,.py-out,.py-err{margin:14px 0;padding:14px 16px;border-radius:14px;overflow:auto;max-width:100%;font:500 15px/1.6 ui-monospace,Consolas,"Cascadia Mono",monospace;white-space:pre;tab-size:4}
.py-code{background:#050b18;border:1px solid var(--line);color:#e6edff}
.py-out{background:rgba(94,198,220,.07);border:1px solid rgba(94,198,220,.3);color:#d4f3fa;position:relative}
.py-out .py-lbl{display:block;font:700 12.5px/1 var(--f-b);letter-spacing:.08em;text-transform:uppercase;color:var(--cyan);margin-bottom:8px}
.py-err{background:rgba(255,141,141,.08);border:1px solid rgba(255,141,141,.35);color:#ffd6d6}
.py-out i{color:var(--mut)}
.py-code:focus-visible,.py-out:focus-visible,.py-err:focus-visible,.py-ed:focus-visible{outline:3px solid var(--gold);outline-offset:2px}

/* mashq bloki */
.pyx{margin-top:26px;padding-top:22px;border-top:1px solid var(--line);display:grid;gap:22px}
.pyex{background:rgba(0,0,0,.2);border:1px solid var(--line);border-radius:20px;padding:clamp(14px,2.4vw,22px)}
.pyex h3{font-size:1.1rem;margin:0 0 8px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.py-badge{font:700 13px/1 var(--f-b);padding:6px 10px;border-radius:30px;background:rgba(89,209,154,.14);color:#9cf0c8;border:1px solid rgba(89,209,154,.4)}
.py-badge[hidden]{display:none}
.py-task{margin:0 0 12px;font-size:16.5px}
.py-lab{display:block;font:600 14px/1.3 var(--f-b);color:var(--mut);margin-bottom:6px}
.py-ed{display:block;width:100%;min-height:150px;resize:vertical;box-sizing:border-box;background:#050b18;color:#e6edff;border:1.5px solid var(--line);border-radius:14px;padding:14px 16px;font:500 15.5px/1.6 ui-monospace,Consolas,"Cascadia Mono",monospace;tab-size:4;white-space:pre;overflow:auto;caret-color:var(--gold)}
.py-ed:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px rgba(255,212,90,.15)}
.py-keys{margin:6px 0 0;font-size:14px;color:var(--mut)}
.py-bar{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;align-items:center}
.py-bar .btn[hidden]{display:none}
.py-bar .py-sol[aria-disabled="true"]{opacity:.55;cursor:not-allowed}
.py-bar .py-sol[aria-disabled="true"]:hover{transform:none;background:transparent;border-color:var(--line2)}
.py-note{margin:10px 0 0;font-size:14px;color:var(--mut);max-width:80ch}
.py-hbox{margin-top:12px;padding:12px 16px;border-radius:14px;background:rgba(94,198,220,.08);border:1px solid rgba(94,198,220,.28);font-size:15.5px}
.py-hbox[hidden]{display:none}
.py-res{margin-top:14px}
.py-res:empty{display:none}
.py-msg{margin:0 0 8px;padding:10px 14px;border-radius:12px;font-size:15.5px;background:rgba(255,255,255,.05)}
.py-msg.ok{background:rgba(89,209,154,.1);color:#bdf0d7}
.py-msg.bad{background:rgba(255,141,141,.1);color:#ffd0d0}
.py-tip{margin:0 0 8px;color:var(--mut);font-size:14.5px}
.py-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:640px){.py-cols{grid-template-columns:1fr;gap:0}}
.py-col{min-width:0}
.py-col h4{margin:10px 0 0;font:700 14px/1.2 var(--f-b);color:var(--mut)}
.py-col .py-out{margin-top:6px}
.py-prog{display:flex;gap:12px;align-items:center;color:var(--mut);font-size:15px}
.py-prog i{flex:0 0 22px;height:22px;border-radius:50%;border:3px solid rgba(255,212,90,.25);border-top-color:var(--gold);animation:pyspin .9s linear infinite}
@keyframes pyspin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.py-prog i{animation:none;border-top-color:var(--gold);border-right-color:var(--gold)}}

/* Dasturlash yo‘li: daraja holati, yopiq daraja */
.lvl-st{margin:6px 0 0;font:700 14px/1.3 var(--f-b);color:var(--cyan)}
.mod.locked{opacity:.92;border-style:dashed}
.mod.locked .lvl-st{color:var(--mut)}
.locked-l .lk{display:flex;gap:14px;align-items:center;background:rgba(0,0,0,.18);border:1px dashed var(--line);border-radius:16px;padding:14px 16px;color:var(--mut)}
.locked-l .lk .tt{flex:1;font-weight:600}
.locked-l .lk .mn{font-size:14px;white-space:nowrap}
.locked-l .dot{display:inline-flex;width:30px;height:30px;border-radius:50%;align-items:center;justify-content:center;font:700 14px var(--f-b);background:rgba(255,255,255,.08);flex:0 0 30px}
.week-kod{border-color:var(--line2)}
