/* CHSB onlayn — AdminLTE uslubidagi boshqaruv paneli. Mavzular CSS o'zgaruvchilari orqali (html[data-theme]). */
:root, [data-theme="klassik"] {
  --bg:#f1f5f9; --card:#fff; --text:#0f172a; --muted:#64748b; --line:#e2e8f0; --soft:#f8fafc;
  --brand:#2563eb; --brand-dark:#1d4ed8; --brand-2:#eff6ff; --brand-text:#fff; --brand-grad:linear-gradient(135deg, #2563eb 0%, #4f46e5 100%);
  --ok:#16a34a; --ok-bg:#dcfce7; --err:#dc2626; --err-bg:#fee2e2; --warn:#b45309; --warn-bg:#fef3c7;
  --info:#0891b2; --teal:#0d9488; --purple:#7c3aed; --orange:#ea580c; --indigo:#4f46e5; --pink:#db2777; --gray:#64748b; --amber:#d97706;
  --side-bg:#0f172a; --side-text:#94a3b8; --side-head:#475569; --side-line:#1e293b; --side-hover:rgba(255,255,255,.06);
  --top:rgba(255,255,255,.85); --top-text:#0f172a; --input:#cbd5e1;
  --shadow:0 1px 2px rgba(15,23,42,.05), 0 1px 3px rgba(15,23,42,.07); --shadow-lg:0 12px 32px rgba(15,23,42,.12);
  --radius:10px; --sw:264px;
}
[data-theme="yashil"] { --brand:#059669; --brand-dark:#047857; --brand-2:#ecfdf5; --brand-grad:linear-gradient(135deg, #059669 0%, #0d9488 100%); --side-bg:#052e24; --side-line:#0b3d31; }
[data-theme="binafsha"] { --brand:#7c3aed; --brand-dark:#6d28d9; --brand-2:#f5f3ff; --brand-grad:linear-gradient(135deg, #7c3aed 0%, #db2777 100%); --side-bg:#1e1033; --side-line:#2e1a4d; }
[data-theme="tun"] {
  --bg:#0b1220; --card:#111a2e; --soft:#16213a; --text:#e2e8f0; --muted:#94a3b8; --line:#1f2a44; --input:#334155;
  --brand:#3b82f6; --brand-dark:#2563eb; --brand-2:#172554; --side-bg:#070d1a; --side-line:#131c31; --top:rgba(15,23,42,.85); --top-text:#e2e8f0;
  --ok:#22c55e; --ok-bg:#14301f; --err:#f87171; --err-bg:#3b1717; --warn:#fbbf24; --warn-bg:#3a2c0b;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 1px 3px rgba(0,0,0,.3); --shadow-lg:0 12px 32px rgba(0,0,0,.5); color-scheme:dark;
}
[data-theme="kontrast"] { --bg:#fff; --card:#fff; --soft:#fff; --text:#000; --muted:#222; --line:#000; --input:#000; --brand:#0033cc; --brand-dark:#002299;
  --brand-2:#e6ecff; --brand-grad:#0033cc; --top:#fff; --top-text:#000; --side-bg:#000; --side-text:#fff; --side-head:#fff; --ok:#005a00; --err:#b00000; --shadow:none; }
[data-theme="kontrast"] body { font-size:17px; }
[data-theme="kontrast"] .card, [data-theme="kontrast"] .table-wrap, [data-theme="kontrast"] .stat, [data-theme="kontrast"] .small-box { border:2px solid #000; }

* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; font:400 1rem/1.5 "Source Sans 3", -apple-system, "Segoe UI", Roboto, Arial, sans-serif; background:var(--bg); color:var(--text); }
a { color:var(--brand); text-decoration:none; } a:hover { text-decoration:underline; }
code { font-size:.9em; background:var(--soft); color:#e83e8c; padding:1px 5px; border-radius:3px; border:1px solid var(--line); }
small { font-size:80%; }
.grow { flex:1; }

/* ---------- Yuqori navbar ---------- */
.main-header { position:sticky; top:0; z-index:30; display:flex; flex-wrap:wrap; gap:6px 10px; align-items:center; min-height:57px; padding:6px 12px;
  background:var(--top); color:var(--top-text); border-bottom:1px solid var(--line); }
.main-header a { color:var(--top-text); }
.nav-btn { background:none; color:var(--muted); font-size:1.15rem; min-height:40px; padding:6px 12px; }
.nav-btn:hover { background:var(--soft); color:var(--text); }
.nav-home { color:var(--muted) !important; padding:6px 8px; }
.brand { display:flex; align-items:center; gap:9px; font-weight:300; font-size:1.25rem; white-space:nowrap; }
.brand b, .login-logo b { font-weight:700; }
.logo { display:inline-grid; place-items:center; width:33px; height:33px; border-radius:50%; background:var(--brand); color:#fff; font-size:15px; box-shadow:0 3px 6px rgba(0,0,0,.16); flex:none; }
.prefs { display:flex; gap:6px; margin:0; }
.pref { display:flex; align-items:center; gap:6px; margin:0; color:var(--muted); font-weight:400; }
.pref select { width:auto; margin:0; padding:4px 8px; min-height:34px; font-size:.9rem; background:var(--card); }
.user-menu { position:relative; }
.user-menu summary { display:flex; align-items:center; gap:8px; list-style:none; cursor:pointer; padding:6px 8px; border-radius:var(--radius); }
.user-menu summary::-webkit-details-marker { display:none; }
.user-menu summary:hover { background:var(--soft); }
.user-menu .uname { max-width:180px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.avatar { display:inline-grid; place-items:center; width:33px; height:33px; border-radius:50%; background:var(--brand); color:#fff; font-weight:700; font-size:.85rem; flex:none;
  box-shadow:0 3px 6px rgba(0,0,0,.16); }
.avatar.big { width:80px; height:80px; font-size:1.8rem; border:3px solid rgba(255,255,255,.4); }
.dropdown { position:absolute; right:0; top:calc(100% + 6px); width:280px; background:var(--card); border-radius:var(--radius); box-shadow:0 .5rem 1rem rgba(0,0,0,.18);
  border:1px solid var(--line); overflow:hidden; z-index:50; }
.user-header { display:flex; flex-direction:column; align-items:center; gap:4px; padding:18px 12px; background:var(--brand); color:#fff; text-align:center; }
.user-header small { opacity:.85; }
.user-footer { display:flex; justify-content:space-between; gap:8px; padding:10px; background:var(--soft); }

/* ---------- Yon menyu (qorong'i) ---------- */
.main-sidebar { position:fixed; z-index:40; top:0; bottom:0; left:0; width:var(--sw); display:flex; flex-direction:column; background:var(--side-bg); color:var(--side-text);
  box-shadow:0 14px 28px rgba(0,0,0,.25), 0 10px 10px rgba(0,0,0,.22); transition:width .25s, transform .25s; overflow:hidden; }
.brand-link { display:flex; align-items:center; gap:10px; height:57px; padding:0 14px; border-bottom:1px solid var(--side-line); color:rgba(255,255,255,.85) !important;
  font-size:1.25rem; font-weight:300; white-space:nowrap; text-decoration:none !important; flex:none; }
.brand-link .brand-text { font-weight:400; }
.sidebar { flex:1; overflow-y:auto; overflow-x:hidden; padding:0 8px 20px; }
.user-panel { display:flex; align-items:center; gap:10px; padding:14px 6px; margin-bottom:8px; border-bottom:1px solid var(--side-line); color:var(--side-text) !important;
  text-decoration:none !important; white-space:nowrap; }
.user-panel .info { display:flex; flex-direction:column; min-width:0; }
.user-panel b { font-weight:400; color:#fff; overflow:hidden; text-overflow:ellipsis; }
.user-panel small { font-size:.8rem; } .user-panel small i { color:var(--ok); font-size:.6rem; vertical-align:middle; }
.nav-header { padding:12px 10px 6px; font-size:.8rem; letter-spacing:.04em; text-transform:uppercase; color:var(--side-head); white-space:nowrap; }
.nav-link { display:flex; align-items:center; gap:10px; margin-bottom:3px; padding:8px 10px; border-radius:var(--radius); color:var(--side-text) !important;
  text-decoration:none !important; white-space:nowrap; transition:background .15s; }
.nav-link p { margin:0; flex:1; overflow:hidden; text-overflow:ellipsis; }
.nav-link .nav-icon { width:1.6rem; text-align:center; font-size:1.05rem; flex:none; }
.nav-link:hover { background:var(--side-hover); color:#fff !important; }
.nav-link.on { background:var(--brand); color:#fff !important; box-shadow:0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.24); }
.nav-link .badge { background:var(--err); color:#fff; font-size:.72rem; font-weight:700; padding:2px 7px; border-radius:var(--radius); }
.content-wrapper { min-height:calc(100vh - 57px - 48px); }
.main-footer { display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; padding:14px 20px; background:var(--card); border-top:1px solid var(--line);
  color:var(--muted); font-size:.9rem; }
.main-footer b { color:var(--text); }

@media (min-width:992px) {
  body.has-side .main-header, body.has-side .content-wrapper, body.has-side .main-footer { margin-left:var(--sw); transition:margin-left .25s; }
  body.has-side.sidebar-collapse { --sw:4.6rem; }
  body.sidebar-collapse .main-sidebar:not(:hover) .brand-text, body.sidebar-collapse .main-sidebar:not(:hover) .user-panel .info,
  body.sidebar-collapse .main-sidebar:not(:hover) .nav-link p, body.sidebar-collapse .main-sidebar:not(:hover) .nav-header { display:none; }
  body.sidebar-collapse .main-sidebar:not(:hover) .nav-link .badge { position:absolute; left:42px; padding:0 4px; font-size:.6rem; }
  body.sidebar-collapse .main-sidebar:hover { width:250px; }
}
@media (max-width:991px) {
  .main-sidebar { transform:translateX(-260px); width:250px; }
  body.menu-open .main-sidebar { transform:none; }
  body.menu-open::after { content:""; position:fixed; inset:0; z-index:35; background:rgba(0,0,0,.4); }
  .nav-home, .user-menu .uname { display:none; }
}
@media (max-width:640px) { .prefs { order:5; width:100%; } .pref { flex:1; } .pref select { flex:1; } }

/* ---------- Mehmon (kirish, ro'yxatdan o'tish) ---------- */
body.guest { background:#e9ecef; }
[data-theme="tun"] body.guest { background:var(--bg); }
body.guest .main-header { background:transparent; border:0; position:static; }
body.guest .main-header .brand { display:none; }
.login-logo { display:flex; justify-content:center; align-items:center; gap:12px; margin:10px 0 18px; font-size:2.1rem; font-weight:300; color:var(--text) !important;
  text-decoration:none !important; }
.login-logo .logo { width:48px; height:48px; font-size:22px; }
body.guest main .narrow { margin-top:0; }
body.guest main .narrow { border-top:3px solid var(--brand); }

/* ---------- Asosiy qism ---------- */
main { padding:16px 20px 40px; }
.breadcrumb { display:flex; flex-wrap:wrap; float:right; list-style:none; margin:22px 20px 0 12px; padding:0; font-size:.95rem; }
.breadcrumb li + li::before { content:"/"; padding:0 8px; color:var(--muted); }
.breadcrumb li.on { color:var(--muted); }
h1 { font-size:1.8rem; font-weight:400; line-height:1.2; margin:4px 0 18px; } h2 { font-size:1.4rem; font-weight:400; margin:26px 0 12px; } h3 { font-size:1.15rem; font-weight:600; margin:0 0 8px; }
h1 .muted { font-size:.7em; }
.card { position:relative; background:var(--card); border-radius:var(--radius); padding:18px 20px; margin-bottom:1rem; box-shadow:var(--shadow); word-wrap:break-word; }
.card > h2:first-child, .card > h3:first-child { margin:-18px -20px 16px; padding:12px 20px; border-bottom:1px solid var(--line); font-size:1.1rem; font-weight:400; }
details.card { border-top:3px solid var(--brand); }
details.card > summary { margin:-18px -20px 0; padding:12px 20px; font-size:1.1rem; list-style:none; display:flex; align-items:center; gap:10px; }
details.card > summary::-webkit-details-marker { display:none; }
details.card > summary::before { content:"\f067"; font:900 .8rem "Font Awesome 6 Free"; display:inline-grid; place-items:center; width:24px; height:24px; border-radius:var(--radius);
  background:var(--brand); color:#fff; }
details.card[open] > summary { margin-bottom:16px; border-bottom:1px solid var(--line); } details.card[open] > summary::before { content:"\f068"; }
details.card > summary b { font-weight:400; }
details > summary { cursor:pointer; }
.narrow { max-width:420px; margin:48px auto; } .narrow.wide { max-width:780px; } .center { text-align:center; }
.muted { color:var(--muted); }
.page-hint { display:flex; gap:12px; align-items:flex-start; padding:12px 16px; margin:0 0 16px; border-radius:var(--radius); background:var(--card); color:var(--text);
  border-left:5px solid var(--info); box-shadow:var(--shadow); }
.page-hint > i { color:var(--info); font-size:1.2rem; margin-top:2px; }
.page-hint div { flex:1; } .page-hint .link { font-size:22px; line-height:1; color:var(--muted); }

/* ---------- Formalar ---------- */
label { display:block; margin:0 0 14px; font-weight:700; color:var(--text); }
label small { display:block; font-weight:400; margin-top:4px; color:var(--muted); }
label small[data-optcount] { display:inline; }
input, select, textarea { display:block; width:100%; margin-top:5px; padding:6px 12px; font:inherit; font-weight:400; color:var(--text); border:1px solid var(--input);
  border-radius:var(--radius); background:var(--card); min-height:38px; transition:border-color .15s, box-shadow .15s; }
textarea { min-height:70px; }
input:focus, select:focus, textarea:focus { outline:none; border-color:#80bdff; box-shadow:0 0 0 .2rem rgba(0,123,255,.15); }
button:focus-visible, a:focus-visible { outline:3px solid rgba(0,123,255,.35); outline-offset:1px; }
input[type=checkbox], input[type=radio] { width:17px; height:17px; min-height:0; display:inline-block; margin:0; accent-color:var(--brand); flex:none; }
fieldset { border:1px solid var(--line); border-radius:var(--radius); margin:0 0 16px; padding:12px 16px 4px; }
legend { font-weight:700; padding:0 6px; }
button, .btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:38px; padding:6px 14px; font:inherit; font-weight:400;
  color:var(--brand-text); background:var(--brand); border:1px solid transparent; border-radius:var(--radius); cursor:pointer; text-decoration:none !important;
  transition:background .15s, box-shadow .15s; box-shadow:0 1px 1px rgba(0,0,0,.075); }
button:hover, .btn:hover { background:var(--brand-dark); }
button:disabled { opacity:.6; cursor:not-allowed; }
button.big, .btn.big { min-height:46px; padding:9px 24px; font-size:1.15rem; }
button.secondary, .btn.secondary { background:var(--soft); color:var(--text); border-color:var(--input); }
button.secondary:hover, .btn.secondary:hover { background:var(--line); }
.btn.disabled { background:var(--line); color:var(--muted); cursor:not-allowed; }
button.small { min-height:30px; padding:3px 10px; font-size:.875rem; }
button.link { min-height:0; background:none; color:var(--brand); padding:0; font-weight:400; border:0; box-shadow:none; }
button.link:hover { background:none; text-decoration:underline; }
button.link.danger, .danger { color:var(--err); }
button.inv { color:var(--muted) !important; }
form.inline { display:inline-flex; flex-wrap:wrap; gap:8px; align-items:center; margin:0; }
form.inline input, form.inline select { width:auto; margin:0; }
.filters { display:flex !important; padding:12px 14px; margin:0 0 1rem !important; background:var(--card); border-radius:var(--radius); box-shadow:var(--shadow); }
.filters select, .filters input { min-width:140px; }
.row { display:flex; flex-wrap:wrap; gap:14px; align-items:flex-end; } .row > label, .row > input { flex:1 1 170px; }
.checks { display:flex; flex-wrap:wrap; gap:10px 22px; margin-bottom:12px; }
.grid2 { display:grid; grid-template-columns:repeat(auto-fit, minmax(320px, 1fr)); gap:0 1rem; }
label.check { display:inline-flex; gap:8px; align-items:center; font-weight:400; margin:0 0 6px; cursor:pointer; }
.opt-row { display:flex; gap:10px; align-items:center; margin-bottom:6px; } .opt-row .grow { flex:1; margin:0; }

/* ---------- Jadvallar ---------- */
.table-wrap { overflow-x:auto; margin-bottom:1rem; border-radius:var(--radius); background:var(--card); box-shadow:var(--shadow); }
table { width:100%; border-collapse:collapse; background:var(--card); }
.table-wrap table { margin:0; }
th, td { padding:10px 12px; border-top:1px solid var(--line); text-align:left; vertical-align:middle; }
th { border-top:0; border-bottom:2px solid var(--line); font-weight:700; white-space:nowrap; }
.table-wrap tr:nth-child(odd) td { background:rgba(0,0,0,.025); }
.table-wrap tr:hover td { background:rgba(0,0,0,.055); }
th a.sort { color:inherit; }
tr.dim td { opacity:.55; } tr.hl td { background:var(--ok-bg) !important; }
table.small td, table.small th { font-size:.9rem; padding:6px 9px; }
.nowrap { white-space:nowrap; } td.warn { color:var(--warn); font-weight:700; }

/* ---------- Xabarlar, belgilar ---------- */
.flash { padding:12px 18px; border-radius:var(--radius); margin-bottom:1rem; color:#fff; border:1px solid transparent; }
.flash.ok { background:var(--ok); } .flash.err { background:var(--err); }
.tag { display:inline-block; padding:3px 7px; border-radius:var(--radius); font-size:75%; font-weight:700; line-height:1.2; background:var(--soft); color:var(--muted);
  border:1px solid var(--line); white-space:nowrap; }
.tag.rep { background:var(--info); border-color:var(--info); color:#fff; } .tag.live { background:var(--ok); border-color:var(--ok); color:#fff; }
.tag.wait, .tag.pend { background:#ffc107; border-color:#ffc107; color:#1f2d3d; } .tag.end { background:var(--gray); border-color:var(--gray); color:#fff; }
.tag.pin { background:var(--brand); border-color:var(--brand); color:#fff; letter-spacing:.04em; } .tag.pin:hover { background:var(--brand-dark); text-decoration:none; }
.tag.err { background:var(--err); border-color:var(--err); color:#fff; }
.bulkbar { position:sticky; top:64px; z-index:5; display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:12px; padding:9px 12px;
  background:var(--card); border-radius:var(--radius); box-shadow:var(--shadow); border-left:4px solid var(--line); }
.bulkbar select { width:auto; margin:0; }
.switch { position:relative; width:44px; min-height:0; height:24px; padding:0; border-radius:12px; background:var(--input); border:0; }
.switch:hover { background:var(--muted); }
.switch span { position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:#fff; transition:left .15s; box-shadow:0 1px 2px rgba(0,0,0,.3); }
.switch.on, .switch.on:hover { background:var(--ok); } .switch.on span { left:23px; }
.pager { display:flex; flex-wrap:wrap; gap:0; margin:12px 0; }
.pager a, .pager span { min-width:38px; text-align:center; padding:6px 12px; border:1px solid var(--line); margin-left:-1px; background:var(--card); }
.pager > :first-child { border-radius:var(--radius) 0 0 var(--radius); } .pager > :last-child { border-radius:0 var(--radius) var(--radius) 0; }
.pager a.on { background:var(--brand); color:#fff; border-color:var(--brand); }
.tabs { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:1rem; border-bottom:1px solid var(--line); }
.tabs a { padding:8px 16px; border:1px solid transparent; border-radius:var(--radius) var(--radius) 0 0; margin-bottom:-1px; color:var(--brand); }
.tabs a:hover { border-color:var(--line) var(--line) transparent; text-decoration:none; }
.tabs a.on { background:var(--card); color:var(--text); border-color:var(--line) var(--line) var(--card); }
.review-box { border-left:5px solid var(--brand); }
.mod-actions { margin-top:12px; } .mod-actions input[name=note] { min-width:220px; }

/* ---------- Savollar ---------- */
.question .meta { font-size:.9rem; color:var(--muted); margin-bottom:8px; display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.question .body { font-size:1.1rem; margin-bottom:10px; }
.question.bordered { border-top:1px solid var(--line); padding-top:12px; margin-top:12px; }
.question .actions { display:flex; flex-wrap:wrap; gap:14px; font-size:.9rem; }
.question.ok { border-left:5px solid var(--ok); } .question.part { border-left:5px solid #ffc107; } .question.bad { border-left:5px solid var(--err); }
.qmedia { display:block; max-width:100%; max-height:380px; margin:10px 0; border-radius:var(--radius); }
audio.qmedia { width:100%; max-width:480px; }
.yt { position:relative; width:100%; max-width:640px; aspect-ratio:16/9; } .yt iframe { width:100%; height:100%; border:0; border-radius:var(--radius); }
.opts li.correct, .correct { color:var(--ok); font-weight:600; } .wrong { color:var(--err); text-decoration:line-through; }
ul.review { list-style:none; padding-left:4px; }
table.match td { border:0; padding:5px 8px; background:none !important; } table.match select { margin:0; min-width:190px; }
.pos { width:64px !important; display:inline-block !important; margin:0 !important; min-height:32px; padding:4px 8px; }
.orig { background:var(--soft); padding:10px 12px; border-radius:var(--radius); border-left:4px solid var(--info); }

/* ---------- Imtihon ---------- */
.answer { display:flex; gap:12px; align-items:center; font-size:1.05rem; font-weight:400; padding:11px 14px; border:2px solid var(--line);
  border-radius:var(--radius); margin:8px 0; cursor:pointer; background:var(--card); transition:border-color .12s, background .12s; }
.answer:hover { border-color:var(--brand); }
.answer:has(input:checked) { border-color:var(--brand); background:var(--brand-2); }
.text-answer { max-width:520px; font-size:1.1rem; }
.question.unsaved { box-shadow:0 0 0 3px #ffc107; }
.exam-head { position:sticky; top:64px; z-index:10; display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap;
  background:var(--card); border-radius:var(--radius); border-top:3px solid var(--brand); padding:10px 18px; margin-bottom:12px; box-shadow:var(--shadow); }
.timer { font-size:1.8rem; font-weight:700; font-variant-numeric:tabular-nums; padding:2px 14px; border-radius:var(--radius); background:var(--brand); color:#fff; }
.timer.low { background:var(--err); animation:pulse 1s infinite; }
.qnav { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:14px; }
.qnav a { min-width:38px; text-align:center; padding:6px 7px; border:1px solid var(--input); border-radius:var(--radius); background:var(--card); color:var(--text); font-weight:600; text-decoration:none; }
.qnav a.done { background:var(--ok); color:#fff; border-color:var(--ok); }
.qnav a.unsaved { background:#ffc107; border-color:#ffc107; color:#1f2d3d; }
.submit-bar { position:sticky; bottom:12px; display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap;
  background:var(--card); border-radius:var(--radius); padding:12px 18px; box-shadow:0 .5rem 1rem rgba(0,0,0,.15); }
.save-state { font-size:.9rem; color:var(--muted); } .save-state.err { color:var(--err); font-weight:600; }
.instructions { background:var(--soft); padding:12px 16px; border-radius:var(--radius); border-left:5px solid var(--info); margin:12px 0; }
ul.rules { padding-left:20px; } ul.rules li { margin:6px 0; }
.pin-label { margin-top:18px; font-size:1rem; }
.pin-input { max-width:260px; font-size:30px; font-weight:700; letter-spacing:.35em; text-align:center; padding:10px; font-variant-numeric:tabular-nums; }
.pin-inline { font-size:20px; letter-spacing:.15em; }
.exam-mode .main-sidebar, .exam-mode .prefs, .exam-mode .menu-btn, .exam-mode .page-hint, .exam-mode .breadcrumb, .exam-mode .nav-home, .exam-mode .main-footer { display:none !important; }
.exam-mode .main-header, .exam-mode .content-wrapper { margin-left:0 !important; }
.exam-mode main { max-width:1100px; margin:0 auto; }
.exam-mode .question { user-select:none; -webkit-user-select:none; } .exam-mode input, .exam-mode select, .exam-mode textarea { user-select:text; }
.warn-overlay { position:fixed; inset:0; z-index:100; display:grid; place-items:center; background:rgba(0,0,0,.75); padding:20px; }
.warn-overlay > div { max-width:440px; background:var(--card); color:var(--text); border-radius:var(--radius); border-top:4px solid var(--err); padding:24px; text-align:center; }
.lock-overlay { position:fixed; inset:0; z-index:110; display:grid; place-items:center; background:#1f2d3d; padding:20px; }
.lock-overlay > div { max-width:460px; background:var(--card); color:var(--text); border-radius:var(--radius); border-top:5px solid var(--err); padding:28px 24px; text-align:center; box-shadow:0 10px 40px rgba(0,0,0,.4); }
.lock-overlay .lock-icon { font-size:46px; color:var(--err); }
.lock-overlay h2 { margin:10px 0 6px; }
.lock-form { display:flex; gap:8px; justify-content:center; flex-wrap:wrap; margin:16px 0 6px; }
.lock-form .pin-input { max-width:170px; font-size:24px; }
.lock-msg.err { color:var(--err); }
body.exam-locked #exam, body.exam-locked #qnav, body.exam-locked .exam-tools { visibility:hidden; }
.lock-alert { border-left:5px solid var(--err); }
.lock-alert ul { list-style:none; padding:0; margin:8px 0 0; }
.lock-alert li { display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:6px 0; border-top:1px solid var(--line); }
.lock-alert .unlock-code { font-size:20px; font-weight:700; letter-spacing:.2em; font-variant-numeric:tabular-nums; }
.test-card { display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; border-left:5px solid var(--brand); }
.test-card .right { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.mark { display:inline-block; min-width:32px; padding:2px 9px; border-radius:var(--radius); text-align:center; font-weight:700; color:#fff; background:var(--gray); }
.mark.m5 { background:var(--ok); } .mark.m4 { background:var(--info); } .mark.m3 { background:#ffc107; color:#1f2d3d; } .mark.m2 { background:var(--err); }
.big-mark { font-size:60px; padding:10px 34px; margin:12px 0; }

/* ---------- PIN doskasi ---------- */
body.board main { max-width:none; }
.pin-board { min-height:calc(100vh - 160px); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:8px; }
.pin-board h1 { font-size:clamp(24px, 4vw, 44px); margin:0; }
.pin-sub { font-size:clamp(15px, 2vw, 22px); color:var(--muted); margin:4px 0; }
.pin-label-big { font-size:clamp(16px, 2.2vw, 26px); margin:24px 0 6px; }
.pin-code { display:flex; gap:clamp(6px, 1.2vw, 16px); }
.pin-code span { display:grid; place-items:center; width:clamp(54px, 11vw, 150px); height:clamp(74px, 15vw, 200px); border-radius:12px; background:var(--side-bg); color:#fff;
  font-size:clamp(44px, 10vw, 140px); font-weight:700; font-variant-numeric:tabular-nums; box-shadow:0 10px 30px rgba(0,0,0,.25); }
.pin-none { font-size:20px; }
.pin-stats { display:flex; gap:clamp(16px, 4vw, 60px); margin:30px 0 10px; }
.pin-stats b { display:block; font-size:clamp(26px, 4vw, 48px); } .pin-stats span { color:var(--muted); }

/* ---------- Bosh sahifa: rangli ko'rsatkichlar (small-box) ---------- */
.boxes { display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:1rem; margin-bottom:1rem; }
.small-box { position:relative; display:flex; flex-direction:column; border-radius:var(--radius); box-shadow:var(--shadow); color:#fff; overflow:hidden; background:var(--info); }
.small-box .inner { padding:10px 14px; position:relative; z-index:1; }
.small-box h3 { font-size:2.2rem; font-weight:700; margin:0 0 4px; white-space:nowrap; }
.small-box p { margin:0 0 6px; font-size:1rem; }
.small-box .icon { position:absolute; top:12px; right:14px; font-size:64px; color:rgba(0,0,0,.15); transition:transform .3s; }
.small-box:hover .icon { transform:scale(1.1); }
.small-box .more { display:block; margin-top:auto; padding:4px; text-align:center; background:rgba(0,0,0,.1); color:rgba(255,255,255,.85) !important; font-size:.9rem; }
.small-box .more:hover { background:rgba(0,0,0,.15); color:#fff !important; text-decoration:none; }
.bg-info { background:var(--info); } .bg-success { background:var(--ok); } .bg-primary { background:var(--brand); } .bg-danger { background:var(--err); }
.bg-warning { background:#ffc107; color:#1f2d3d !important; } .bg-warning .more { color:rgba(0,0,0,.6) !important; }
.bg-teal { background:var(--teal); } .bg-purple { background:var(--purple); } .bg-orange { background:var(--orange); } .bg-indigo { background:var(--indigo); }
.bg-pink { background:var(--pink); } .bg-gray { background:var(--gray); }
/* Oddiy ko'rsatkich — info-box ko'rinishida */
.stats { display:grid; grid-template-columns:repeat(auto-fit, minmax(170px, 1fr)); gap:1rem; margin-bottom:1rem; }
.stat { background:var(--card); border-radius:var(--radius); padding:12px 16px; box-shadow:var(--shadow); border-left:5px solid var(--info); }
.stat:nth-child(5n+2) { border-left-color:var(--ok); } .stat:nth-child(5n+3) { border-left-color:#ffc107; } .stat:nth-child(5n+4) { border-left-color:var(--err); } .stat:nth-child(5n+5) { border-left-color:var(--purple); }
.stat b { display:block; font-size:1.6rem; line-height:1.2; } .stat span { font-size:.9rem; color:var(--muted); }
.live-dot b::before { content:""; display:inline-block; width:9px; height:9px; border-radius:50%; background:var(--ok); margin-right:7px; vertical-align:middle; animation:pulse 1.6s infinite; }
.small-box.live-dot h3::before { background:#fff; }
@keyframes pulse { 50% { opacity:.35; } }
.bar { display:inline-block; width:110px; height:8px; background:var(--line); border-radius:4px; vertical-align:middle; overflow:hidden; }
.bar.wide { flex:1; width:auto; } .bar span { display:block; height:100%; background:var(--brand); border-radius:4px; }
.hbar { display:flex; gap:10px; align-items:center; margin:8px 0; } .hbar .lbl { width:150px; font-size:.95rem; }
.chart { display:flex; align-items:flex-end; gap:4px; height:170px; padding-top:6px; }
.chart .col { flex:1; height:100%; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; }
.chart .col span { width:100%; background:var(--brand); border-radius:3px 3px 0 0; min-height:2px; transition:height .4s; opacity:.85; }
.chart .col:hover span { opacity:1; }
.chart .col i { font-style:normal; font-size:10px; color:var(--muted); margin-top:4px; }
.guide ol { padding-left:0; list-style:none; counter-reset:g; }
.guide ol li { counter-increment:g; display:flex; gap:10px; align-items:flex-start; margin:8px 0; }
.guide ol li::before { content:counter(g); flex:none; display:grid; place-items:center; width:26px; height:26px; border-radius:50%; background:var(--brand); color:#fff; font-weight:700; font-size:13px; }
.catalog, .plans { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:1rem; }
.tcard { display:flex; flex-direction:column; border-top:3px solid var(--brand); } .tcard h3 { margin:6px 0; } .tcard form, .tcard .btn { margin-top:auto; }
.plan .price { font-size:1.8rem; font-weight:700; color:var(--brand); }
.cards { display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:10px; }
.cred { border:1px dashed var(--muted); border-radius:var(--radius); padding:12px; background:var(--card); break-inside:avoid; }

@media (max-width:600px) {
  main { padding:12px 10px 40px; } h1 { font-size:1.5rem; }
  .card { padding:14px; } .card > h2:first-child, .card > h3:first-child, details.card > summary { margin-left:-14px; margin-right:-14px; margin-top:-14px; padding:10px 14px; }
  .breadcrumb { display:none; }
  .exam-head { top:60px; padding:8px 12px; } .timer { font-size:1.4rem; }
}
@media print {
  .main-header, .main-sidebar, .main-footer, .breadcrumb, .no-print, .flash, .page-hint, .bulkbar { display:none !important; }
  .content-wrapper, main { margin:0 !important; padding:0; max-width:none; }
  body { background:#fff; } .card, .table-wrap { box-shadow:none; } .cards { grid-template-columns:repeat(3, 1fr); }
}

/* ---------- Jonli interfeys: bildirishnoma, oyna, qadamlar ---------- */
.hide { display:none !important; }
.toasts { position:fixed; right:18px; bottom:18px; z-index:100; display:flex; flex-direction:column; gap:8px; max-width:min(380px, calc(100vw - 32px)); }
.toast { display:flex; align-items:flex-start; gap:10px; padding:11px 12px 11px 14px; border-radius:var(--radius); background:var(--card); color:var(--text);
  border:1px solid var(--line); border-left:4px solid var(--ok); box-shadow:0 8px 24px rgba(16,24,40,.16); animation:toastIn .25s ease; font-size:14px; }
.toast.err { border-left-color:var(--err); }
.toast.hide { display:flex !important; opacity:0; transform:translateY(8px); transition:.3s; }
.toast-ico { display:inline-grid; place-items:center; flex:none; width:22px; height:22px; border-radius:50%; background:var(--ok-bg); color:var(--ok); font-weight:700; font-size:13px; }
.toast.err .toast-ico { background:var(--err-bg); color:var(--err); }
.toast > span:nth-child(2) { flex:1; }
button.toast-x { min-height:0; padding:0 4px; background:none; color:var(--muted); font-size:18px; line-height:1; }
button.toast-x:hover { background:none; color:var(--text); }
@keyframes toastIn { from { opacity:0; transform:translateY(10px); } }

.modal-back { position:fixed; inset:0; z-index:90; display:grid; place-items:center; padding:16px; background:rgba(15,20,30,.45); animation:fadeIn .15s; }
.modal { width:min(440px, 100%); padding:22px; border-radius:14px; background:var(--card); color:var(--text); box-shadow:0 20px 50px rgba(0,0,0,.25); animation:popIn .18s ease; }
.modal h3 { margin:0 0 8px; font-size:18px; }
.modal p { margin:0 0 14px; color:var(--muted); }
.modal input { width:100%; margin-bottom:14px; }
.modal-actions { display:flex; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
button.danger-btn { background:var(--err); color:#fff; }
button.danger-btn:hover { background:var(--err); filter:brightness(.92); }
@keyframes fadeIn { from { opacity:0; } }
@keyframes popIn { from { opacity:0; transform:scale(.96); } }

.topbar-progress { position:fixed; top:0; left:0; z-index:110; height:3px; width:0; background:var(--brand); pointer-events:none; }
.topbar-progress.run { width:75%; transition:width 2.5s cubic-bezier(.1,.7,.3,1); }
.topbar-progress.done { width:100%; opacity:0; transition:width .2s, opacity .4s .2s; }
button.loading { position:relative; color:transparent !important; }
button.loading::after { content:""; position:absolute; width:18px; height:18px; border:2px solid rgba(255,255,255,.5); border-top-color:#fff; border-radius:50%; animation:spin .7s linear infinite; }
button.secondary.loading::after { border-color:var(--line); border-top-color:var(--brand); }
@keyframes spin { to { transform:rotate(360deg); } }

.wiz-steps { display:flex; gap:6px; margin:0 0 18px; padding:0; list-style:none; counter-reset:none; overflow-x:auto; }
.wiz-steps li { flex:1; min-width:110px; display:flex; align-items:center; gap:8px; padding:8px 10px; border-radius:10px; background:var(--soft);
  border:1px solid var(--line); color:var(--muted); font-size:13px; font-weight:600; cursor:pointer; }
.wiz-steps li::before { content:attr(data-n); display:inline-grid; place-items:center; flex:none; width:24px; height:24px; border-radius:50%;
  background:var(--line); color:var(--muted); font-size:12px; }
.wiz-steps li.on { border-color:var(--brand); background:var(--brand-2); color:var(--brand); }
.wiz-steps li.on::before { background:var(--brand); color:#fff; }
.wiz-steps li.done { color:var(--ok); }
.wiz-steps li.done::before { content:"✓"; background:var(--ok); color:#fff; }
.wiz-nav { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:14px 0 6px; }
form[data-wizard] > fieldset { animation:fadeIn .2s; }
.shake { animation:shake .4s; }
@keyframes shake { 20%, 60% { transform:translateX(-6px); } 40%, 80% { transform:translateX(6px); } }

.tsearch { display:flex; align-items:center; gap:10px; margin:0 0 10px; }
.tsearch input { max-width:320px; margin:0; }
.pw-box { display:inline-flex; align-items:center; gap:6px; flex-wrap:wrap; }
code.pw { font-size:14px; font-weight:700; letter-spacing:.5px; background:var(--warn-bg); color:var(--text); padding:2px 8px; }
.row-x { margin-left:6px; font-size:20px !important; line-height:1; }
.flash-up { animation:flashUp 1.2s ease; }
@keyframes flashUp { 0% { background:var(--ok-bg); } 100% { background:transparent; } }
.sel-count { background:var(--brand); color:#fff; }
.bulkbar { transition:box-shadow .2s, border-color .2s; }
.bulkbar.active { border-color:var(--brand); box-shadow:0 4px 14px rgba(29,99,201,.18); }
@media (max-width:640px) { .wiz-steps li { min-width:44px; font-size:0; gap:0; justify-content:center; } .toasts { right:12px; left:12px; bottom:12px; max-width:none; } }
[hidden] { display:none !important; }

/* ---------- Imtihon: bittadan rejim ---------- */
.exam-tools { display:flex; align-items:center; gap:12px; margin-bottom:10px; flex-wrap:wrap; }
.exam-pos { white-space:nowrap; }
.exam-progress { flex:1; min-width:120px; height:8px; border-radius:8px; background:var(--line); overflow:hidden; }
.exam-progress span { display:block; height:100%; width:0; background:var(--ok); transition:width .3s; }
form#exam.one .question { display:none; }
form#exam.one .question.current { display:block; animation:fadeIn .2s; min-height:240px; }
form#exam.one .question.current .body { font-size:18px; }
.question.flagged { border-left:4px solid var(--warn); }
.qnav a.current { outline:2px solid var(--brand); outline-offset:1px; }
.qnav a.flag { position:relative; }
.qnav a.flag::after { content:"⚑"; position:absolute; top:-8px; right:-5px; font-size:12px; color:var(--warn); }
.qstep { display:flex; justify-content:space-between; gap:10px; margin:6px 0 14px; flex-wrap:wrap; }
.qstep button { min-width:130px; }
.flag-btn.on { background:var(--warn-bg); color:var(--warn); }
.exam-mode .answer { cursor:pointer; }
button.pulse { animation:pulse 0.8s 2; }
@keyframes pulse { 50% { box-shadow:0 0 0 8px var(--brand-2); } }

/* ---------- Ro'yxatdan o'tish ---------- */
.role-cards { display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:10px; }
.role-card { margin:0; display:flex; flex-direction:column; gap:4px; padding:12px 14px; border:2px solid var(--line); border-radius:10px; cursor:pointer; font-weight:400; position:relative; }
.role-card input { position:absolute; opacity:0; pointer-events:none; }
.role-card b { color:var(--text); } .role-card small { color:var(--muted); line-height:1.4; }
.role-card:hover { border-color:var(--brand); }
.role-card:has(input:checked) { border-color:var(--brand); background:var(--brand-2); }
.role-card:has(input:focus-visible) { outline:3px solid var(--brand-2); }
.hp { position:absolute !important; left:-9999px; width:1px; height:1px; opacity:0; }
.tag.pend { background:var(--warn-bg); color:var(--warn); }
.notice-bar { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:14px; padding:12px 16px;
  border-radius:var(--radius); background:var(--warn-bg); color:var(--text); border:1px solid var(--warn); }
.btn.small { min-height:32px; padding:5px 13px; font-size:13px; }
details.card:not([open]) { padding-bottom:0; } details.card:not([open]) > summary { margin-bottom:0; }
[data-theme="tun"] main a:not(.btn):not(.more):not(.tag), [data-theme="tun"] .breadcrumb a, [data-theme="tun"] button.link { color:#6cb2ff; }

/* Yaxlit test muharriri */
.qblocks { counter-reset:none; }
.qblock { border-left:4px solid var(--info); padding-top:12px; }
.qblock.has-err { border-left-color:var(--err); }
.qblock-head { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
.qblock-head .qtitle { font-size:1.05rem; margin-right:6px; } .qblock-head .qnum { color:var(--info); }
.qblock-head select { width:auto; margin:0; }
.qblock-head .pts { display:flex; align-items:center; gap:4px; margin:0; font-weight:400; color:var(--muted); }
.qblock-head .pts input { width:72px; margin:0; }
.qblock-tools { margin-left:auto; display:flex; gap:2px; }
.qblock-tools button { padding:4px 8px; }
.qblock textarea { margin-bottom:8px; }
.qblock fieldset { border:0; padding:0; margin:0 0 6px; }
.qblock .opt-row .check { min-width:44px; margin:0; }
.qmedia-edit summary { cursor:pointer; font-size:.9rem; padding:4px 0; }
.builder-bar { position:sticky; bottom:0; z-index:5; display:flex; gap:12px; align-items:center; flex-wrap:wrap; padding:10px 14px; margin:0 -4px;
  background:var(--card); border-top:1px solid var(--line); box-shadow:0 -4px 12px rgba(0,0,0,.06); border-radius:var(--radius); }
.builder-bar [data-qsum] { margin-right:auto; }
.how-cards { grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); }
.how-cards .role-card b i { color:var(--info); margin-right:4px; }
textarea.mono { font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size:.9rem; }
.flash.stay { margin-bottom:14px; }
.qpart { margin:18px 0 8px; }
.qpart-head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:1.25rem; margin:0 0 10px; padding:8px 12px; background:var(--card); border-radius:var(--radius); border-left:4px solid var(--teal, #20c997); }
.qpart-no { display:inline-grid; place-items:center; width:28px; height:28px; border-radius:50%; background:var(--info); color:#fff; font-size:.95rem; }
.qpart-head .muted { font-size:.9rem; font-weight:400; } .qpart-head .bad { color:var(--err); font-weight:600; }
.qpart > [data-add-q] { margin-bottom:6px; }
.parts-edit table { width:auto; } .parts-edit input { width:90px; margin:0; } .parts-edit tr.total td { font-weight:700; }
.flash.warn { background:var(--warn-bg, #fff3cd); color:var(--warn, #856404); border-color:#ffe08a; }

/* =====================================================================
   v4: zamonaviy ko'rinish (yuqoridagi asosiy uslublarni yangilaydi)
   ===================================================================== */
body { font-size:15.5px; letter-spacing:.005em; -webkit-font-smoothing:antialiased; }
h1 { font-size:1.65rem; font-weight:700; letter-spacing:-.01em; margin:2px 0 6px; }
h2 { font-weight:600; } h3 { font-weight:600; }
::selection { background:var(--brand-2); }
.c-blue { --c:var(--brand); } .c-green { --c:var(--ok); } .c-amber { --c:var(--amber); } .c-purple { --c:var(--purple); } .c-red { --c:var(--err); } .c-teal { --c:var(--teal); }

/* Yuqori panel */
.main-header { min-height:64px; padding:10px 22px; gap:10px 14px; background:var(--top); backdrop-filter:saturate(180%) blur(10px); -webkit-backdrop-filter:saturate(180%) blur(10px); border-bottom:1px solid var(--line); }
.brand { font-weight:400; gap:10px; } .brand b { font-weight:700; letter-spacing:-.01em; }
.logo { border-radius:10px; background:var(--brand-grad); width:36px; height:36px; box-shadow:0 4px 12px rgba(37,99,235,.3); }
.icon-btn { position:relative; display:inline-grid; place-items:center; width:40px; height:40px; border-radius:10px; color:var(--muted); cursor:pointer; list-style:none; }
.icon-btn::-webkit-details-marker { display:none; }
.icon-btn:hover { background:var(--soft); color:var(--text); }
.dot-count { position:absolute; top:4px; right:3px; min-width:18px; height:18px; padding:0 5px; border-radius:9px; background:var(--err); color:#fff; font-size:11px; font-weight:700; line-height:18px; text-align:center; border:2px solid var(--card); }
.bell-menu { position:relative; }
.bell-menu .dropdown { width:340px; }
.dd-head { display:flex; justify-content:space-between; align-items:center; padding:12px 14px; border-bottom:1px solid var(--line); }
.dd-item { display:flex; flex-direction:column; gap:2px; padding:10px 14px; border-bottom:1px solid var(--line); color:var(--text) !important; text-decoration:none !important; }
.dd-item:hover { background:var(--soft); }
.dd-item.unread { background:var(--brand-2); }
.dd-item.row-item { flex-direction:row; align-items:center; gap:10px; } .dd-item.row-item i { width:18px; color:var(--muted); }
.dd-empty { padding:16px 14px; margin:0; }
.dd-foot { display:block; padding:10px 14px; text-align:center; font-weight:600; }
.dropdown { border-radius:12px; box-shadow:var(--shadow-lg); }
.user-menu summary { border-radius:10px; padding:4px 8px 4px 4px; }
.user-menu .uname { display:flex; flex-direction:column; line-height:1.15; }
.user-menu .uname b { font-weight:600; font-size:.92rem; } .user-menu .uname small { color:var(--muted); font-size:.75rem; }
.avatar { border-radius:10px; background:var(--brand-grad); box-shadow:none; }
.avatar.sm { width:36px; height:36px; } .avatar.xl { width:72px; height:72px; font-size:1.8rem; border-radius:18px; }
.user-header { background:var(--brand-grad); padding:20px 12px; }
.user-footer { background:transparent; padding:10px 14px; justify-content:flex-end; }
.pref select { border-radius:8px; border-color:var(--line); background:var(--soft); }
.search-trigger { min-height:40px; padding:6px 10px 6px 14px; gap:10px; width:min(360px, 40vw); justify-content:flex-start; background:var(--soft); color:var(--muted);
  border:1px solid var(--line); border-radius:10px; box-shadow:none; font-size:.92rem; }
.search-trigger:hover { background:var(--card); border-color:var(--input); color:var(--text); }
.search-trigger span { flex:1; text-align:left; }
kbd { font:600 .72rem ui-monospace, Menlo, Consolas, monospace; padding:2px 6px; border-radius:6px; border:1px solid var(--line); background:var(--card); color:var(--muted); }
.guest-nav { display:flex; gap:4px; margin-left:16px; }
.guest-nav a { padding:8px 12px; border-radius:8px; color:var(--muted) !important; font-weight:600; }
.guest-nav a:hover { background:var(--soft); color:var(--text) !important; text-decoration:none; }
@media (max-width:900px) { .guest-nav { display:none; } .search-trigger { width:auto; } .search-trigger span, .search-trigger kbd { display:none; } }

/* Yon menyu */
.main-sidebar { box-shadow:none; border-right:1px solid var(--side-line); background:var(--side-bg); }
.brand-link { height:64px; padding:0 18px; border-bottom:1px solid var(--side-line); gap:12px; color:#fff !important; }
.brand-text { display:flex; flex-direction:column; line-height:1.1; } .brand-text b { font-weight:700; font-size:1.1rem; } .brand-text small { font-size:.72rem; color:var(--side-text); }
.sidebar { padding:10px 12px 20px; }
.nav-header { padding:16px 10px 6px; font-size:.7rem; font-weight:700; letter-spacing:.08em; color:var(--side-head); }
.nav-link { padding:9px 12px; border-radius:8px; gap:12px; font-weight:500; color:var(--side-text) !important; margin-bottom:2px; }
.nav-link .nav-icon { font-size:.98rem; width:1.3rem; opacity:.9; }
.nav-link:hover { background:var(--side-hover); color:#fff !important; }
.nav-link.on { background:var(--brand); color:#fff !important; box-shadow:0 4px 14px rgba(37,99,235,.35); }
.nav-link .badge { border-radius:10px; padding:1px 8px; }
.user-panel { margin:0; padding:14px 16px; border-top:1px solid var(--side-line); border-bottom:0; gap:12px; flex:none; }
.user-panel b { font-weight:600; font-size:.92rem; } .user-panel small { font-size:.75rem; } .user-panel > i { margin-left:auto; color:var(--side-head); }
.user-panel:hover { background:var(--side-hover); }
@media (min-width:992px) {
  body.sidebar-collapse .main-sidebar:not(:hover) .brand-text { display:none; }
}

/* Asosiy qism */
main { padding:22px 28px 48px; max-width:1500px; }
.breadcrumb { float:none; margin:18px 28px -8px; font-size:.85rem; color:var(--muted); }
.breadcrumb a { color:var(--muted); } .breadcrumb a:hover { color:var(--brand); }
.page-head { display:flex; justify-content:space-between; align-items:flex-end; gap:12px 20px; flex-wrap:wrap; margin-bottom:18px; }
.page-head p { margin:0; }
.btn-group { display:inline-flex; gap:6px; }
.card { border-radius:14px; border:1px solid var(--line); box-shadow:var(--shadow); padding:20px 22px; }
.card > h2:first-child, .card > h3:first-child { margin:-20px -22px 16px; padding:14px 22px; font-weight:600; font-size:1rem; }
details.card { border-top:1px solid var(--line); }
details.card > summary { margin:-20px -22px 0; padding:14px 22px; font-weight:600; }
details.card > summary::before { border-radius:6px; }
.table-wrap { border-radius:14px; border:1px solid var(--line); }
.table-wrap.flat { border:0; box-shadow:none; border-radius:0; margin:0 -22px -20px; }
th { font-size:.75rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); background:var(--soft); border-bottom:1px solid var(--line); font-weight:700; }
.table-wrap tr:nth-child(odd) td { background:transparent; }
.table-wrap tr:hover td { background:var(--soft); }
th, td { padding:11px 14px; }
input, select, textarea { border-radius:8px; border-color:var(--input); min-height:40px; }
input:focus, select:focus, textarea:focus { border-color:var(--brand); box-shadow:0 0 0 3px var(--brand-2); }
label { font-weight:600; font-size:.93rem; }
button, .btn { border-radius:8px; font-weight:600; min-height:40px; padding:7px 16px; box-shadow:0 1px 2px rgba(15,23,42,.08); }
button.secondary, .btn.secondary { background:var(--card); border-color:var(--line); }
button.secondary:hover, .btn.secondary:hover { background:var(--soft); border-color:var(--input); }
button.block, .btn.block { width:100%; }
button.small, .btn.small { min-height:32px; padding:4px 12px; font-size:.85rem; }
.tag { border-radius:999px; padding:3px 9px; font-weight:600; }
.flash { border-radius:10px; }
.filters { border-radius:14px; border:1px solid var(--line); gap:10px; }
.tabs { gap:2px; border-bottom:1px solid var(--line); }
.tabs a { border:0; border-bottom:2px solid transparent; border-radius:0; padding:10px 16px; color:var(--muted); font-weight:600; }
.tabs a:hover { color:var(--text); border-color:transparent; }
.tabs a.on { background:none; color:var(--brand); border-bottom-color:var(--brand); }
.page-hint { border-radius:12px; border:1px solid var(--line); border-left:4px solid var(--info); }
.main-footer { background:transparent; border-top:1px solid var(--line); padding:16px 28px; font-size:.85rem; }
.foot-links { display:flex; gap:16px; align-items:center; } .foot-links a { color:var(--muted); } .foot-links a:hover { color:var(--brand); }
.muted.small-text, .small-text { font-size:.85rem; }
.mono { font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing:.04em; }
.empty-state { text-align:center; padding:40px 20px; }
.empty-state > i { font-size:42px; color:var(--brand); background:var(--brand-2); width:84px; height:84px; display:inline-grid; place-items:center; border-radius:24px; margin-bottom:12px; }
.empty-state h3 { margin:0 0 4px; }
.layout-aside { display:grid; grid-template-columns:minmax(0, 1fr) 340px; gap:20px; align-items:start; }
.layout-aside > :only-child { grid-column:1 / -1; }
.sticky-card { position:sticky; top:84px; }
@media (max-width:1100px) { .layout-aside { grid-template-columns:1fr; } .sticky-card { position:static; } }
@media (max-width:600px) { main { padding:14px 12px 40px; } .breadcrumb { margin:12px 12px -4px; } .main-header { padding:8px 12px; } }

/* Bosh panel: ko'rsatkich kartalari */
.small-box { background:var(--card) !important; color:var(--text) !important; border:1px solid var(--line); border-radius:14px; flex-direction:column; }
.small-box .inner { padding:18px 20px 10px; }
.small-box h3 { font-size:1.9rem; font-weight:700; letter-spacing:-.02em; color:var(--text); }
.small-box p { color:var(--muted); font-size:.92rem; }
.small-box .icon { top:18px; right:18px; font-size:20px; width:46px; height:46px; display:grid; place-items:center; border-radius:12px; color:var(--c, var(--brand));
  background:color-mix(in srgb, var(--c, var(--brand)) 13%, transparent); }
.small-box:hover .icon { transform:none; }
.small-box .more { background:transparent; border-top:1px solid var(--line); color:var(--c, var(--brand)) !important; text-align:left; padding:9px 20px; font-weight:600; font-size:.85rem; }
.small-box .more:hover { background:var(--soft); }
.small-box.bg-info { --c:var(--info); } .small-box.bg-success { --c:var(--ok); } .small-box.bg-primary { --c:var(--brand); } .small-box.bg-danger { --c:var(--err); }
.small-box.bg-warning { --c:var(--amber); } .small-box.bg-teal { --c:var(--teal); } .small-box.bg-purple { --c:var(--purple); } .small-box.bg-orange { --c:var(--orange); }
.small-box.bg-indigo { --c:var(--indigo); } .small-box.bg-pink { --c:var(--pink); } .small-box.bg-gray { --c:var(--gray); }
.small-box.bg-warning .more { color:var(--amber) !important; }
.small-box.live-dot h3::before { background:var(--ok); }
.welcome { display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; padding:24px 26px; margin-bottom:20px; border-radius:18px; color:#fff;
  background:var(--brand-grad); box-shadow:0 10px 30px rgba(37,99,235,.25); position:relative; overflow:hidden; }
.welcome::after { content:""; position:absolute; right:-60px; top:-60px; width:240px; height:240px; border-radius:50%; background:rgba(255,255,255,.08); }
.welcome h1 { color:#fff; margin:0 0 4px; } .welcome p { margin:0; opacity:.9; }
.welcome .btn { background:#fff; color:var(--brand); position:relative; z-index:1; } .welcome .btn:hover { background:#f1f5f9; }
.welcome .btn.ghost { background:rgba(255,255,255,.15); color:#fff; } .welcome .btn.ghost:hover { background:rgba(255,255,255,.25); }
.welcome-actions { display:flex; gap:8px; flex-wrap:wrap; }
.grid3 { display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:0 1rem; }
.kpis { display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:14px; margin-bottom:18px; }
.kpi { display:flex; align-items:center; gap:14px; padding:16px 18px; background:var(--card); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); }
.kpi > i { font-size:20px; width:46px; height:46px; display:grid; place-items:center; border-radius:12px; color:var(--c); background:color-mix(in srgb, var(--c) 13%, transparent); flex:none; }
.kpi b { display:block; font-size:1.5rem; line-height:1.15; } .kpi span { color:var(--muted); font-size:.88rem; }

/* SVG grafiklar */
.svgchart { width:100%; height:auto; display:block; overflow:visible; }
.svgchart .grid { stroke:var(--line); stroke-width:1; vector-effect:non-scaling-stroke; }
.svgchart .ax { fill:var(--muted); font-size:11px; }
.svgchart .line { fill:none; stroke:var(--brand); stroke-width:2.5; vector-effect:non-scaling-stroke; stroke-linejoin:round; }
.svgchart .area { fill:var(--brand); opacity:.12; }
.svgchart .dot { fill:var(--card); stroke:var(--brand); stroke-width:2; vector-effect:non-scaling-stroke; }
.svgchart .col { fill:var(--brand); opacity:.85; } .svgchart .col:hover { opacity:1; }
.donut { display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.donut svg { width:150px; height:150px; flex:none; transform:rotate(-90deg); }
.donut circle { fill:none; stroke-width:18; } .donut-bg { stroke:var(--line); }
.donut text { transform:rotate(90deg); transform-origin:70px 70px; fill:var(--text); }
.donut-c { font-size:22px; font-weight:700; } .donut-s { font-size:10px; fill:var(--muted) !important; }
.legend { list-style:none; padding:0; margin:0; display:grid; gap:6px; }
.legend li { display:flex; align-items:center; gap:8px; } .legend i { width:10px; height:10px; border-radius:3px; flex:none; }
.bar span.b-ok { background:var(--ok); } .bar span.b-info { background:var(--info); } .bar span.b-warn { background:var(--amber); } .bar span.b-err { background:var(--err); }
.bar { height:8px; border-radius:6px; } .hbar.slim { margin:0; min-width:160px; }
.chart-filter { float:right; margin-top:-48px; } .chart-filter select { min-height:32px; padding:2px 8px; font-size:.85rem; }
.list-plain { list-style:none; margin:0; padding:0; }
.list-plain li { display:flex; gap:12px; align-items:center; padding:10px 0; border-top:1px solid var(--line); }
.list-plain li:first-child { border-top:0; }

/* E'lonlar */
.announce header { display:flex; gap:12px; align-items:flex-start; margin-bottom:10px; }
.announce h3 { margin:0 0 2px; font-size:1.05rem; }
.announce.unread { border-left:4px solid var(--brand); }
.announce.pinned { background:linear-gradient(0deg, var(--card), var(--card)), var(--warn-bg); border-color:color-mix(in srgb, var(--amber) 40%, var(--line)); }
.announce.pinned h3 i { color:var(--amber); }
.announce-body { line-height:1.6; }

/* Kalendar */
.cal-title { display:flex; justify-content:space-between; align-items:center; }
.cal { display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); gap:6px; }
.cal-wd { text-align:center; font-size:.75rem; font-weight:700; text-transform:uppercase; color:var(--muted); padding:4px 0; }
.cal-day { min-height:104px; padding:6px; border-radius:10px; border:1px solid var(--line); background:var(--soft); display:flex; flex-direction:column; gap:3px; overflow:hidden; }
.cal-day.out { background:transparent; border-style:dashed; opacity:.4; }
.cal-day.has { background:var(--card); }
.cal-day.today { border-color:var(--brand); box-shadow:0 0 0 2px var(--brand-2); }
.cal-n { font-weight:700; font-size:.85rem; color:var(--muted); } .cal-day.today .cal-n { color:var(--brand); }
.cal-ev { display:block; padding:2px 6px; border-radius:6px; background:var(--brand-2); color:var(--brand) !important; font-size:.75rem; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cal-ev small { font-weight:400; opacity:.8; } .cal-ev:hover { text-decoration:none; filter:brightness(.95); }
.cal-more { font-size:.75rem; color:var(--muted); }
@media (max-width:700px) { .cal-day { min-height:64px; } .cal-ev small { display:none; } .cal-ev { font-size:.65rem; padding:1px 3px; } }
.timeline { list-style:none; padding:0; margin:0; }
.timeline li { display:flex; gap:12px; padding:10px 0; border-top:1px solid var(--line); } .timeline li:first-child { border-top:0; }
.tl-date { display:flex; flex-direction:column; align-items:center; justify-content:center; width:48px; height:52px; flex:none; border-radius:10px; background:var(--brand-2); color:var(--brand); font-size:.72rem; text-transform:uppercase; font-weight:700; }
.tl-date b { font-size:1.2rem; line-height:1; }

/* Natijalar, reyting, sertifikat */
.profile-hero { display:flex; align-items:center; gap:18px; } .profile-hero h1 { margin:0; }
.podium { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:14px; align-items:end; margin-bottom:18px; }
.podium-item { display:flex; flex-direction:column; align-items:center; text-align:center; gap:2px; padding:20px 14px; background:var(--card); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); }
.podium-item.p1 { padding-top:30px; border-color:#f5c542; box-shadow:0 10px 30px rgba(245,197,66,.25); }
.podium-score { font-size:1.6rem; font-weight:700; color:var(--brand); margin-top:6px; }
.medal { display:inline-grid; place-items:center; width:40px; height:40px; border-radius:50%; font-weight:700; color:#fff; background:#cbd5e1; margin-bottom:6px; }
.p1 .medal, .medal.m1 { background:linear-gradient(135deg, #fde68a, #f59e0b); } .p2 .medal, .medal.m2 { background:linear-gradient(135deg, #e2e8f0, #94a3b8); }
.p3 .medal, .medal.m3 { background:linear-gradient(135deg, #fed7aa, #c2410c); }
.medal.sm { width:28px; height:28px; font-size:.8rem; margin:0; }
@media (max-width:640px) { .podium { grid-template-columns:1fr; } }
body.cert-mode .main-sidebar, body.cert-mode .main-header, body.cert-mode .breadcrumb, body.cert-mode .main-footer { display:none !important; }
body.cert-mode .content-wrapper { margin:0 !important; } body.cert-mode main { max-width:1000px; margin:0 auto; }
.cert-tools { display:flex; justify-content:space-between; margin-bottom:16px; }
.certificate { background:#fff; color:#0f172a; padding:18px; border-radius:6px; box-shadow:var(--shadow-lg); aspect-ratio:1.414; }
.cert-inner { height:100%; border:3px double #1e3a8a; outline:1px solid #c7a24a; outline-offset:-10px; padding:36px 50px; display:flex; flex-direction:column; align-items:center; text-align:center;
  background:radial-gradient(circle at 50% 0, #eff6ff, #fff 60%); }
.cert-logo { display:flex; align-items:center; gap:10px; font-weight:700; color:#1e3a8a; }
.cert-kicker { font-size:2.6rem; font-weight:700; letter-spacing:.3em; color:#1e3a8a; margin:14px 0 4px; }
.cert-lead { margin:6px 0; color:#475569; } .cert-text { max-width:620px; font-size:1.1rem; }
.cert-name { font-size:2.2rem; font-weight:700; color:#0f172a; border-bottom:2px solid #c7a24a; padding:0 30px 4px; margin:6px 0; }
.cert-score { display:flex; gap:40px; margin:12px 0; } .cert-score b { display:block; font-size:1.6rem; color:#1e3a8a; } .cert-score span { color:#64748b; font-size:.85rem; }
.cert-foot { display:flex; justify-content:space-between; align-items:center; width:100%; margin-top:auto; }
.cert-foot > div { display:flex; flex-direction:column; } .cert-foot .muted { color:#64748b; font-size:.8rem; }
.cert-seal { font-size:56px; color:#c7a24a; }
.cert-verify { font-size:.75rem; margin:10px 0 0; color:#64748b; }
@media print { body.cert-mode { background:#fff; } .certificate { box-shadow:none; padding:0; } @page { size:A4 landscape; margin:10mm; } }
.verify-ok, .verify-bad { display:flex; gap:14px; margin-top:16px; padding:16px; border-radius:12px; }
.verify-ok { background:var(--ok-bg); } .verify-ok > i { color:var(--ok); font-size:28px; }
.verify-bad { background:var(--err-bg); } .verify-bad > i { color:var(--err); font-size:28px; }
.verify-ok p, .verify-bad p { margin:4px 0 0; }

/* Baholash mezonlari */
.criteria { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:14px; }
.criteria table { font-size:.92rem; } .criteria td, .criteria th { padding:7px 10px; }
.crit-box { border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.crit-box h4 { margin:0; padding:10px 12px; background:var(--soft); font-size:.9rem; border-bottom:1px solid var(--line); }

/* Tezkor qidiruv (Ctrl+K) */
.cmdk-back { position:fixed; inset:0; z-index:120; background:rgba(15,23,42,.5); display:flex; justify-content:center; align-items:flex-start; padding:10vh 16px 16px; animation:fadeIn .12s; }
.cmdk { width:min(640px, 100%); background:var(--card); border-radius:16px; box-shadow:0 30px 80px rgba(0,0,0,.35); overflow:hidden; border:1px solid var(--line); animation:popIn .15s; }
.cmdk-in { display:flex; align-items:center; gap:12px; padding:14px 18px; border-bottom:1px solid var(--line); }
.cmdk-in i { color:var(--muted); }
.cmdk-in input { border:0; margin:0; box-shadow:none !important; font-size:1.05rem; padding:4px 0; background:transparent; }
.cmdk-list { max-height:min(60vh, 460px); overflow-y:auto; padding:6px; }
.cmdk-group { padding:8px 12px 4px; font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }
.cmdk-item { display:flex; align-items:center; gap:12px; padding:9px 12px; border-radius:10px; color:var(--text) !important; text-decoration:none !important; }
.cmdk-item i { width:32px; height:32px; display:grid; place-items:center; border-radius:8px; background:var(--soft); color:var(--muted); flex:none; }
.cmdk-item span { display:flex; flex-direction:column; min-width:0; } .cmdk-item small { color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cmdk-item.on { background:var(--brand-2); } .cmdk-item.on i { background:var(--brand); color:#fff; }
.cmdk-empty { padding:24px; text-align:center; color:var(--muted); }
.cmdk-foot { display:flex; gap:14px; padding:8px 16px; border-top:1px solid var(--line); font-size:.75rem; color:var(--muted); background:var(--soft); }

/* Mehmon sahifalari: landing va kirish */
body.guest { background:var(--bg); }
body.guest .main-header { position:sticky; background:var(--top); border-bottom:1px solid var(--line); }
body.guest .main-header .brand { display:flex; }
body.guest main { max-width:none; }
body.landing main { padding:0; }
.hero { position:relative; overflow:hidden; padding:72px 28px 80px; background:radial-gradient(1200px 500px at 80% -10%, color-mix(in srgb, var(--brand) 22%, transparent), transparent),
  radial-gradient(800px 400px at -10% 110%, color-mix(in srgb, var(--purple) 16%, transparent), transparent); }
.hero-in { max-width:1180px; margin:0 auto; display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center; }
.eyebrow { display:inline-flex; align-items:center; gap:8px; padding:6px 12px; border-radius:999px; background:var(--brand-2); color:var(--brand); font-weight:700; font-size:.82rem; }
.hero h1 { font-size:clamp(2rem, 4.4vw, 3.4rem); line-height:1.08; letter-spacing:-.03em; margin:18px 0 16px; font-weight:800; }
.hero h1 em { font-style:normal; background:var(--brand-grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero p.lead { font-size:1.15rem; color:var(--muted); max-width:560px; margin:0 0 26px; }
.hero-cta { display:flex; gap:10px; flex-wrap:wrap; }
.hero-cta .btn { min-height:48px; padding:10px 22px; font-size:1rem; }
.hero-trust { display:flex; gap:22px; flex-wrap:wrap; margin-top:26px; color:var(--muted); font-size:.9rem; } .hero-trust i { color:var(--ok); }
.mock { position:relative; background:var(--card); border:1px solid var(--line); border-radius:18px; box-shadow:0 30px 70px rgba(15,23,42,.18); padding:18px; transform:rotate(1.5deg); }
.mock-bar { display:flex; gap:6px; margin-bottom:14px; } .mock-bar i { width:10px; height:10px; border-radius:50%; background:var(--line); }
.mock-q { padding:12px 14px; border:1px solid var(--line); border-radius:12px; margin-bottom:10px; }
.mock-q b { display:block; margin-bottom:8px; }
.mock-opt { display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:8px; border:1px solid var(--line); margin:6px 0; font-size:.9rem; }
.mock-opt.sel { border-color:var(--brand); background:var(--brand-2); }
.mock-opt span { width:22px; height:22px; border-radius:50%; display:grid; place-items:center; background:var(--soft); font-weight:700; font-size:.75rem; }
.mock-opt.sel span { background:var(--brand); color:#fff; }
.mock-timer { position:absolute; top:-18px; right:-14px; background:var(--card); border:1px solid var(--line); border-radius:12px; padding:8px 14px; box-shadow:var(--shadow-lg); font-weight:700; transform:rotate(-1.5deg); }
.mock-timer i { color:var(--err); }
.mock-score { position:absolute; bottom:-22px; left:-22px; background:var(--card); border:1px solid var(--line); border-radius:14px; padding:12px 16px; box-shadow:var(--shadow-lg); display:flex; gap:12px; align-items:center; transform:rotate(-1.5deg); }
.mock-score .mark { font-size:1.4rem; padding:4px 14px; }
.stats-band { max-width:1180px; margin:-36px auto 0; position:relative; z-index:2; display:grid; grid-template-columns:repeat(4, 1fr); gap:0; background:var(--card); border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow-lg); }
.stats-band div { padding:22px; text-align:center; border-left:1px solid var(--line); } .stats-band div:first-child { border-left:0; }
.stats-band b { display:block; font-size:2rem; font-weight:800; letter-spacing:-.02em; } .stats-band span { color:var(--muted); }
.section { max-width:1180px; margin:0 auto; padding:80px 28px 20px; }
.section-head { text-align:center; max-width:700px; margin:0 auto 40px; }
.section-head h2 { font-size:clamp(1.6rem, 3vw, 2.3rem); font-weight:800; letter-spacing:-.02em; margin:12px 0 10px; }
.section-head p { color:var(--muted); font-size:1.05rem; margin:0; }
.features { display:grid; grid-template-columns:repeat(3, 1fr); gap:18px; }
.feature { padding:24px; background:var(--card); border:1px solid var(--line); border-radius:16px; transition:transform .2s, box-shadow .2s; }
.feature:hover { transform:translateY(-3px); box-shadow:var(--shadow-lg); }
.feature > i { width:48px; height:48px; display:grid; place-items:center; border-radius:12px; font-size:20px; color:var(--c); background:color-mix(in srgb, var(--c) 13%, transparent); margin-bottom:14px; }
.feature h3 { font-size:1.1rem; margin:0 0 6px; } .feature p { margin:0; color:var(--muted); }
.steps { display:grid; grid-template-columns:repeat(4, 1fr); gap:18px; counter-reset:st; }
.step { position:relative; padding:24px 20px; background:var(--card); border:1px solid var(--line); border-radius:16px; counter-increment:st; }
.step::before { content:counter(st); display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:var(--brand-grad); color:#fff; font-weight:800; margin-bottom:12px; }
.step h3 { margin:0 0 6px; font-size:1.05rem; } .step p { margin:0; color:var(--muted); font-size:.95rem; }
.roles-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:14px; }
.role-tile { padding:18px; border-radius:14px; background:var(--soft); border:1px solid var(--line); } .role-tile b { display:block; margin-bottom:4px; } .role-tile p { margin:0; color:var(--muted); font-size:.9rem; }
.role-tile i { color:var(--brand); margin-right:6px; }
.cta-band { max-width:1180px; margin:70px auto 60px; padding:40px; border-radius:22px; background:var(--brand-grad); color:#fff; display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; }
.cta-band h2 { margin:0 0 6px; font-weight:800; } .cta-band p { margin:0; opacity:.9; }
.cta-band .btn { background:#fff; color:var(--brand); min-height:48px; padding:10px 24px; }
.faq { max-width:820px; margin:0 auto; } .faq details { background:var(--card); border:1px solid var(--line); border-radius:12px; margin-bottom:10px; padding:0 18px; }
.faq summary { padding:16px 0; font-weight:600; list-style:none; display:flex; justify-content:space-between; } .faq summary::after { content:"+"; font-size:1.3rem; color:var(--muted); }
.faq details[open] summary::after { content:"−"; } .faq details p { margin:0 0 16px; color:var(--muted); }
@media (max-width:980px) { .hero-in { grid-template-columns:1fr; } .mock { display:none; } .features, .steps, .roles-grid { grid-template-columns:repeat(2, 1fr); } .stats-band { grid-template-columns:repeat(2, 1fr); margin:0 16px; } }
@media (max-width:600px) { .features, .steps, .roles-grid { grid-template-columns:1fr; } .hero { padding:44px 16px 60px; } .section { padding:56px 16px 10px; } .cta-band { margin:50px 16px; padding:28px; } }

/* Landing effektlari (index.php, assets/landing.js). Animatsiyalar prefers-reduced-motion da o'chadi (fayl oxiridagi qoida). */
.lp-progress { position:fixed; top:0; left:0; right:0; height:3px; z-index:60; pointer-events:none; }
.lp-progress i { display:block; height:100%; width:100%; background:var(--brand-grad); transform-origin:0 50%; transform:scaleX(var(--p, 0)); }
.lp-hero { padding:84px 28px 108px; isolation:isolate; }
.lp-aurora { position:absolute; inset:0; z-index:-2; overflow:hidden; pointer-events:none; -webkit-mask-image:linear-gradient(#000 60%, transparent); mask-image:linear-gradient(#000 60%, transparent); }
.lp-aurora i { position:absolute; width:46vmax; height:46vmax; border-radius:50%; filter:blur(70px); opacity:.42; mix-blend-mode:normal; animation:lp-float 18s ease-in-out infinite alternate; }
.lp-aurora i:nth-child(1) { background:var(--brand); top:-22vmax; right:-12vmax; }
.lp-aurora i:nth-child(2) { background:var(--purple); bottom:-26vmax; left:-14vmax; opacity:.3; animation-duration:22s; animation-delay:-6s; }
.lp-aurora i:nth-child(3) { background:var(--teal); top:20%; left:38%; width:24vmax; height:24vmax; opacity:.18; animation-duration:26s; animation-delay:-11s; }
@keyframes lp-float { 0% { transform:translate(0, 0) scale(1); } 50% { transform:translate(-4vmax, 3vmax) scale(1.08); } 100% { transform:translate(3vmax, -2vmax) scale(.95); } }
.lp-grid { position:absolute; inset:0; z-index:-1; pointer-events:none; opacity:.5;
  background-image:linear-gradient(color-mix(in srgb, var(--line) 70%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--line) 70%, transparent) 1px, transparent 1px);
  background-size:44px 44px; -webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 40%, #000 30%, transparent 75%); mask-image:radial-gradient(ellipse 70% 60% at 50% 40%, #000 30%, transparent 75%); }
.lp-org { display:inline-flex; align-items:center; gap:12px; margin-bottom:16px; padding:8px 14px 8px 10px; border-radius:14px; background:color-mix(in srgb, var(--card) 70%, transparent);
  border:1px solid var(--line); backdrop-filter:blur(8px); font-size:.8rem; line-height:1.3; color:var(--muted); max-width:560px; }
.lp-org > i { width:34px; height:34px; flex:none; display:grid; place-items:center; border-radius:10px; background:var(--brand-grad); color:#fff; }
.lp-org > span { display:flex; flex-direction:column; } .lp-org > span span:last-child { color:var(--text); font-weight:700; }
.lp-dot { width:8px; height:8px; border-radius:50%; background:var(--ok); box-shadow:0 0 0 0 color-mix(in srgb, var(--ok) 60%, transparent); animation:lp-ping 2s infinite; }
@keyframes lp-ping { 0% { box-shadow:0 0 0 0 color-mix(in srgb, var(--ok) 55%, transparent); } 80%, 100% { box-shadow:0 0 0 9px transparent; } }
.lp-hero h1 em { background:linear-gradient(90deg, var(--brand), var(--purple), var(--teal), var(--brand)); background-size:300% 100%; -webkit-background-clip:text; background-clip:text; animation:lp-hue 8s linear infinite; }
@keyframes lp-hue { to { background-position:300% 0; } }
.lp-rise { animation:lp-rise .8s cubic-bezier(.2,.7,.2,1) both; }
.lp-hero-text > .lp-rise:nth-child(2) { animation-delay:.08s; } .lp-hero-text > .lp-rise:nth-child(3) { animation-delay:.16s; }
.lp-hero-text > .lp-rise:nth-child(4) { animation-delay:.24s; } .lp-hero-text > .lp-rise:nth-child(5) { animation-delay:.32s; } .lp-hero-text > .lp-rise:nth-child(6) { animation-delay:.4s; }
@keyframes lp-rise { from { opacity:0; transform:translateY(22px); filter:blur(4px); } to { opacity:1; transform:none; filter:none; } }
.lp-shine { position:relative; overflow:hidden; box-shadow:0 10px 30px color-mix(in srgb, var(--brand) 35%, transparent); }
.lp-shine::after { content:""; position:absolute; top:0; bottom:0; width:40%; left:-60%; background:linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent); transform:skewX(-20deg); animation:lp-shine 3.6s ease-in-out infinite; }
@keyframes lp-shine { 0%, 55% { left:-60%; } 100% { left:130%; } }
.lp-stage { position:relative; perspective:1200px; animation:lp-rise 1s .2s cubic-bezier(.2,.7,.2,1) both; }
.lp-stage .mock { transform:rotateY(calc(var(--ry, -8) * 1deg)) rotateX(calc(var(--rx, 4) * 1deg)); transform-style:preserve-3d; transition:transform .25s ease-out; animation:lp-bob 6s ease-in-out infinite; padding:20px;
  background:color-mix(in srgb, var(--card) 88%, transparent); backdrop-filter:blur(10px); box-shadow:0 40px 80px -20px color-mix(in srgb, var(--brand) 35%, rgba(15,23,42,.35)); }
@keyframes lp-bob { 50% { translate:0 -10px; } }
.mock-bar { align-items:center; } .lp-mock-prog { flex:1; height:6px; margin-left:10px; border-radius:6px; background:var(--soft); overflow:hidden; }
.lp-mock-prog b { display:block; height:100%; width:68%; background:var(--brand-grad); border-radius:6px; animation:lp-grow 5s ease-in-out infinite alternate; }
@keyframes lp-grow { from { width:58%; } to { width:74%; } }
.mock-opt { transition:background .35s, border-color .35s, transform .35s; } .mock-opt.sel { transform:translateX(4px); }
.mock-opt span { transition:background .35s, color .35s; }
.lp-mock-nav { display:grid; grid-template-columns:repeat(10, 1fr); gap:5px; margin-top:4px; }
.lp-mock-nav i { font-style:normal; font-size:.7rem; font-weight:700; text-align:center; padding:4px 0; border-radius:6px; background:var(--soft); color:var(--muted); }
.lp-mock-nav i.done { background:color-mix(in srgb, var(--ok) 18%, var(--card)); color:var(--ok); } .lp-mock-nav i.cur { background:var(--brand); color:#fff; }
.lp-chip { position:absolute; display:flex; align-items:center; gap:10px; background:var(--card); border:1px solid var(--line); border-radius:14px; padding:10px 14px; box-shadow:var(--shadow-lg); font-weight:700; font-size:.9rem; animation:lp-bob 5s ease-in-out infinite; }
.lp-chip-timer { top:-20px; right:-10px; animation-delay:-1.5s; } .lp-chip-timer i { color:var(--err); } .lp-chip-timer b { font-variant-numeric:tabular-nums; }
.lp-chip-score { bottom:-26px; left:-24px; animation-delay:-3s; } .lp-chip-score .mark { font-size:1.4rem; padding:4px 14px; } .lp-chip-score small { color:var(--muted); font-weight:500; }
.lp-chip-qr { top:44%; right:-34px; font-size:.8rem; color:var(--ok); animation-delay:-.6s; } .lp-chip-qr i { font-size:1.1rem; }
.lp-stats { margin-top:-52px; background:color-mix(in srgb, var(--card) 82%, transparent); backdrop-filter:blur(14px); }
.lp-stats div { position:relative; } .lp-stats div > i { display:block; margin:0 auto 8px; width:38px; height:38px; line-height:38px; border-radius:11px; background:var(--brand-2); color:var(--brand); }
.lp-stats b { font-variant-numeric:tabular-nums; background:var(--brand-grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.lp-marquee { max-width:1180px; margin:38px auto 0; overflow:hidden; -webkit-mask-image:linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image:linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.lp-track { display:flex; gap:14px; width:max-content; animation:lp-marq 38s linear infinite; }
.lp-marquee:hover .lp-track { animation-play-state:paused; }
.lp-track span { display:inline-flex; align-items:center; gap:8px; white-space:nowrap; padding:9px 16px; border-radius:999px; border:1px solid var(--line); background:var(--card); color:var(--muted); font-weight:600; font-size:.9rem; }
.lp-track i { color:var(--brand); }
@keyframes lp-marq { to { transform:translateX(calc(-50% - 7px)); } }
.lp-reveal { opacity:0; transform:translateY(28px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); transition-delay:calc(var(--d, 0) * 90ms); }
.lp-reveal.in, html:not(.lp-js) .lp-reveal { opacity:1; transform:none; }
.lp-spot { position:relative; overflow:hidden; isolation:isolate; }
.lp-spot::before { content:""; position:absolute; inset:0; z-index:-1; opacity:0; transition:opacity .3s;
  background:radial-gradient(320px circle at var(--mx, 50%) var(--my, 50%), color-mix(in srgb, var(--c, var(--brand)) 16%, transparent), transparent 70%); }
.lp-spot:hover::before { opacity:1; }
.feature.lp-reveal.in { transition:opacity .7s, transform .25s, box-shadow .25s, border-color .25s; transition-delay:0s; }
.feature:hover { transform:translateY(-6px); border-color:color-mix(in srgb, var(--c) 45%, var(--line)); box-shadow:0 18px 40px -12px color-mix(in srgb, var(--c) 40%, transparent); }
.feature > i { transition:transform .35s cubic-bezier(.3,1.6,.5,1); } .feature:hover > i { transform:scale(1.12) rotate(-6deg); }
.lp-steps { position:relative; } .lp-steps::before { content:""; position:absolute; top:46px; left:12%; right:12%; height:2px; background:var(--line); z-index:0; }
.lp-steps::after { content:""; position:absolute; top:46px; left:12%; right:12%; height:2px; background:var(--brand-grad); transform-origin:0 50%; transform:scaleX(0); transition:transform 1.4s .2s ease; z-index:0; }
.lp-steps.in::after, html:not(.lp-js) .lp-steps::after { transform:scaleX(1); }
.lp-steps .step { z-index:1; text-align:center; opacity:0; transform:translateY(18px); transition:opacity .6s, transform .6s, box-shadow .25s; transition-delay:calc(var(--d) * 180ms + .2s); }
.lp-steps.in .step, html:not(.lp-js) .lp-steps .step { opacity:1; transform:none; } .lp-steps .step:hover { box-shadow:var(--shadow-lg); }
.lp-steps .step::before { position:absolute; top:12px; right:14px; width:26px; height:26px; margin:0; font-size:.8rem; }
.lp-step-ic { display:grid; place-items:center; width:56px; height:56px; margin:0 auto 14px; border-radius:16px; background:var(--card); border:2px solid var(--brand); color:var(--brand); font-size:1.3rem; box-shadow:0 0 0 6px var(--card); }
.lp-trust { display:grid; grid-template-columns:1.3fr .7fr; gap:40px; align-items:center; padding:40px; border-radius:24px; border:1px solid var(--line);
  background:radial-gradient(600px 300px at 100% 0%, color-mix(in srgb, var(--ok) 12%, transparent), transparent), var(--card); }
.lp-trust h2 { font-size:clamp(1.5rem, 2.6vw, 2.1rem); font-weight:800; letter-spacing:-.02em; margin:12px 0 10px; }
.lp-checks { list-style:none; padding:0; margin:18px 0 22px; display:grid; grid-template-columns:1fr 1fr; gap:10px 18px; }
.lp-checks li { display:flex; gap:10px; align-items:center; font-weight:600; } .lp-checks i { width:30px; height:30px; display:grid; place-items:center; border-radius:9px; background:color-mix(in srgb, var(--ok) 14%, transparent); color:var(--ok); flex:none; }
.lp-qr { display:flex; flex-direction:column; align-items:center; gap:10px; color:var(--muted) !important; text-decoration:none !important; }
.lp-qr-box { position:relative; display:block; padding:16px; border-radius:20px; background:#fff; box-shadow:0 20px 50px -15px rgba(15,23,42,.35); overflow:hidden; transition:transform .3s; }
.lp-qr:hover .lp-qr-box { transform:scale(1.04) rotate(-1deg); } .lp-qr-box svg { display:block; width:168px; height:168px; }
.lp-scan { position:absolute; left:8px; right:8px; height:3px; top:10%; border-radius:3px; background:var(--ok); box-shadow:0 0 14px 3px color-mix(in srgb, var(--ok) 60%, transparent); animation:lp-scan 2.6s ease-in-out infinite alternate; }
@keyframes lp-scan { to { top:88%; } }
.roles-grid .role-tile { background:var(--card); padding:22px; transition:transform .25s, box-shadow .25s, opacity .7s; }
.roles-grid .role-tile:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.lp-role-ic { display:grid; place-items:center; width:46px; height:46px; border-radius:50%; background:var(--brand-grad); margin-bottom:12px; }
.lp-role-ic i { color:#fff !important; margin:0 !important; font-size:1.1rem; }
.faq details { transition:border-color .2s, box-shadow .2s; } .faq details[open] { border-color:color-mix(in srgb, var(--brand) 40%, var(--line)); box-shadow:var(--shadow); }
.faq summary { cursor:pointer; } .faq summary::after { transition:transform .25s; } .faq details[open] summary::after { content:"+"; transform:rotate(45deg); }
.faq details[open] p { animation:lp-rise .4s ease both; }
.lp-cta { position:relative; overflow:hidden; background:linear-gradient(120deg, var(--brand), var(--purple), var(--brand)); background-size:200% 200%; animation:lp-pan 10s ease infinite; }
.lp-cta.lp-reveal { transition-property:opacity, transform; }
.lp-cta::before { content:""; position:absolute; width:340px; height:340px; border-radius:50%; right:-90px; top:-160px; background:rgba(255,255,255,.1); }
.lp-cta > * { position:relative; }
@keyframes lp-pan { 50% { background-position:100% 50%; } }
html[data-theme="kontrast"] :is(.lp-aurora, .lp-grid, .lp-scan) { display:none; }
/* Footer tugmalari (hamma sahifada) va bosh sahifaning kengaytirilgan footeri */
.foot-links { flex-wrap:wrap; gap:8px; }
.foot-links a { display:inline-flex; align-items:center; gap:7px; padding:6px 12px; border-radius:999px; border:1px solid var(--line); background:var(--card); color:var(--muted); text-decoration:none !important; font-weight:600; transition:color .2s, border-color .2s, background .2s, transform .2s; }
.foot-links a i { font-size:.85em; color:var(--brand); }
.foot-links a:hover { color:var(--brand); border-color:color-mix(in srgb, var(--brand) 45%, var(--line)); background:var(--brand-2); transform:translateY(-1px); }
.faq summary { align-items:center; gap:12px; }
.lp-foot { margin-top:20px; border-top:1px solid var(--line); background:radial-gradient(700px 260px at 0% 0%, color-mix(in srgb, var(--brand) 9%, transparent), transparent), var(--card); }
.lp-foot-in { max-width:1180px; margin:0 auto; padding:48px 28px 36px; display:grid; grid-template-columns:1.5fr repeat(3, 1fr); gap:32px; }
.lp-foot-brand { display:flex; flex-direction:column; gap:4px; color:var(--muted); font-size:.88rem; }
.lp-foot-brand b { font-size:1.2rem; color:var(--text); margin-bottom:4px; }
.lp-foot-cta { align-self:flex-start; margin-top:14px; }
.lp-foot h4 { margin:0 0 12px; font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); }
.lp-foot nav { display:flex; flex-direction:column; gap:6px; }
.lp-foot nav a { display:flex; align-items:center; gap:10px; padding:8px 10px; margin-left:-10px; border-radius:10px; color:var(--text) !important; text-decoration:none !important; font-weight:500; transition:background .2s, color .2s, transform .2s; }
.lp-foot nav a i { width:30px; height:30px; flex:none; display:grid; place-items:center; border-radius:9px; background:var(--brand-2); color:var(--brand); font-size:.85rem; transition:background .2s, color .2s; }
.lp-foot nav a:hover { background:var(--soft); color:var(--brand) !important; transform:translateX(3px); }
.lp-foot nav a:hover i { background:var(--brand); color:#fff; }
body.landing .main-footer .foot-links { display:none; }
@media (max-width:980px) { .lp-foot-in { grid-template-columns:1fr 1fr; } }
@media (max-width:600px) { .lp-foot-in { grid-template-columns:1fr; padding:32px 16px 24px; gap:22px; } }
@media (max-width:980px) { .lp-stage { display:none; } .lp-trust { grid-template-columns:1fr; } .lp-steps::before, .lp-steps::after { display:none; } .lp-stats { margin:-40px 16px 0; } }
@media (max-width:600px) { .lp-hero { padding:44px 16px 76px; } .lp-checks { grid-template-columns:1fr; } .lp-trust { padding:24px; } .lp-org { font-size:.74rem; } }
@media (prefers-reduced-motion:reduce) { .lp-reveal, .lp-steps .step { opacity:1 !important; transform:none !important; } .lp-steps::after { transform:scaleX(1); } }

.auth { min-height:calc(100vh - 64px - 56px); display:grid; grid-template-columns:1fr 1fr; }
.auth-side { padding:56px; color:#fff; background:var(--brand-grad); display:flex; flex-direction:column; justify-content:center; position:relative; overflow:hidden; }
.auth-side::after { content:""; position:absolute; width:420px; height:420px; border-radius:50%; right:-140px; bottom:-140px; background:rgba(255,255,255,.08); }
.auth-side h2 { font-size:2rem; font-weight:800; margin:0 0 12px; letter-spacing:-.02em; } .auth-side p { opacity:.9; font-size:1.05rem; max-width:440px; }
.auth-side ul { list-style:none; padding:0; margin:18px 0 0; display:grid; gap:12px; } .auth-side li { display:flex; gap:12px; align-items:center; }
.auth-side li i { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; background:rgba(255,255,255,.15); }
.auth-main { display:flex; align-items:center; justify-content:center; padding:40px 20px; }
.auth-card { width:min(400px, 100%); }
.auth-card h1 { font-size:1.8rem; margin-bottom:4px; } .auth-card > p { color:var(--muted); margin:0 0 24px; }
.input-icon { position:relative; } .input-icon > i { position:absolute; left:13px; top:50%; transform:translateY(-50%); color:var(--muted); pointer-events:none; margin-top:2px; }
.input-icon input { padding-left:38px; min-height:46px; }
.pw-toggle { position:absolute; right:6px; top:50%; transform:translateY(-50%); margin-top:2px; min-height:34px; padding:4px 10px; background:none; color:var(--muted); box-shadow:none; }
.pw-toggle:hover { background:var(--soft); color:var(--text); }
.auth-card button.big { width:100%; }
.auth-foot { margin-top:22px; padding-top:18px; border-top:1px solid var(--line); text-align:center; color:var(--muted); font-size:.92rem; }
body.auth-page main { padding:0; max-width:none; }
@media (max-width:900px) { .auth { grid-template-columns:1fr; } .auth-side { display:none; } }
body.guest main .narrow { border-top:1px solid var(--line); }

/* Test turi belgilari: yopiq / ochiq / aralash */
.tag.t-closed { background:var(--brand-2); color:var(--brand); border-color:transparent; } .tag.t-open { background:var(--ok-bg); color:var(--ok); border-color:transparent; }
.tag.t-mixed { background:var(--warn-bg); color:var(--warn); border-color:transparent; }
.card > h3:first-child a.small-text { float:right; font-weight:600; }
.card h3 .live-dot b::before { margin-right:8px; }

/* CHSB sessiyasi */
.session-box { border:1px solid var(--line); border-radius:12px; padding:12px 14px; margin:10px 0; background:var(--soft); }
.session-head { margin-bottom:8px; } .session-head i { color:var(--brand); }
.session-steps { list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.session-steps li { display:flex; align-items:center; gap:12px; padding:8px 10px; border-radius:10px; background:var(--card); border:1px solid var(--line); }
.session-steps li > div { flex:1; display:flex; flex-direction:column; } .session-steps li small { font-size:.8rem; }
.ss-dot { width:28px; height:28px; border-radius:50%; display:grid; place-items:center; background:var(--line); color:var(--muted); font-weight:700; font-size:.85rem; flex:none; }
.session-steps li.done .ss-dot { background:var(--ok); color:#fff; }
.session-steps li.current { border-color:var(--brand); box-shadow:0 0 0 3px var(--brand-2); } .session-steps li.current .ss-dot { background:var(--brand); color:#fff; }
.session-card .session-box { margin-top:0; }
.session-extra { margin:6px 0 12px; padding:10px 14px; border:1px dashed var(--input); border-radius:12px; }
.session-extra summary { cursor:pointer; } .session-extra summary i { color:var(--brand); margin-right:4px; }
.test-card .grow { flex:1; min-width:260px; }

/* Ochiq javoblar */
textarea.essay-answer { min-height:150px; max-width:none; font-size:1.02rem; line-height:1.55; }
.essay-view { white-space:normal; padding:10px 14px; border-radius:10px; background:var(--soft); border:1px solid var(--line); line-height:1.6; margin:6px 0; }
.feedback { margin:6px 0 0; color:var(--brand); } .feedback i { margin-right:6px; }
.grade-row { padding:14px 0; border-top:1px solid var(--line); } .grade-row:first-of-type { border-top:0; }
.grade-who { display:flex; gap:8px; align-items:center; margin-bottom:4px; }
.grade-inputs { display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap; } .grade-inputs label { margin:0; } .grade-inputs input[type=number] { width:120px; }
.grade-inputs .grow { flex:1; min-width:220px; }
.crit-inline { margin:0 0 14px; } .crit-inline summary { cursor:pointer; padding:4px 0; font-weight:600; } .crit-inline .criteria { margin-top:10px; }

/* Matndan joylash: jonli ko'rinish */
.paste-split { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:16px; align-items:start; }
.paste-split label { margin:0; }
.paste-preview { max-height:520px; overflow:auto; border:1px solid var(--line); border-radius:12px; padding:12px; background:var(--soft); margin-top:27px; }
.pv-head { font-weight:700; margin-bottom:8px; }
.pv-part { margin:12px 0 6px; font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--brand); }
.pv-q { background:var(--card); border:1px solid var(--line); border-left:3px solid var(--ok); border-radius:8px; padding:8px 10px; margin-bottom:8px; font-size:.92rem; }
.pv-q.bad { border-left-color:var(--err); } .pv-q ul { margin:4px 0 0; padding-left:18px; } .pv-q li.correct { color:var(--ok); font-weight:700; }
.pv-err { color:var(--err); font-size:.85rem; margin-top:4px; }
@media (max-width:900px) { .paste-split { grid-template-columns:1fr; } .paste-preview { margin-top:0; } }
.qblock.drop { outline:3px dashed var(--brand); outline-offset:2px; }
[data-media-preview] img { max-height:220px; }
.help-toc { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.help-toc a { padding:6px 12px; border-radius:999px; background:var(--card); border:1px solid var(--line); font-weight:600; font-size:.9rem; }
.help-toc a:hover { border-color:var(--brand); text-decoration:none; }
.help-sec { margin-top:26px; } .help-table td { vertical-align:top; }
@media print { .help-table { font-size:11px; } .help-sec { break-after:avoid; } }

/* Savolga alohida ball */
.qpts { display: inline-flex; align-items: center; gap: 4px; margin: 0; font-weight: 400; }
.qpts input { width: 4.6em; padding: 3px 6px; text-align: center; }
.qpts input[data-own="1"] { border-color: var(--amber, #f59e0b); background: color-mix(in srgb, var(--amber, #f59e0b) 10%, transparent); }

/* Til va dizayn: ochiladigan ro'yxat o'rniga tugmalar */
.lang-switch { display:inline-flex; margin:0; padding:2px; gap:2px; border:1px solid var(--line); border-radius:999px; background:var(--soft); }
.lang-switch button { min-height:28px; padding:2px 10px; border:0; border-radius:999px; background:transparent; color:var(--muted); font-size:.8rem; font-weight:700; box-shadow:none; }
.lang-switch button:hover { color:var(--text); background:var(--card); }
.lang-switch button.on { background:var(--brand); color:#fff; }
.dd-prefs { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:8px 10px; padding:10px 14px; border-top:1px solid var(--line); }
.dd-prefs .muted { font-size:.85rem; white-space:nowrap; }
.theme-dots { display:flex; gap:8px; margin:0; }
.theme-dots button { width:22px; height:22px; min-height:0; padding:0; border-radius:50%; border:2px solid var(--card); box-shadow:0 0 0 1px var(--line); }
.theme-dots button.on { box-shadow:0 0 0 2px var(--brand); }
.theme-dots .dot-klassik { background:linear-gradient(135deg, #2563eb, #4f46e5); }
.theme-dots .dot-yashil { background:linear-gradient(135deg, #059669, #0d9488); }
.theme-dots .dot-binafsha { background:linear-gradient(135deg, #7c3aed, #db2777); }
.theme-dots .dot-tun { background:linear-gradient(135deg, #0f172a, #334155); }
.theme-dots .dot-kontrast { background:linear-gradient(135deg, #000 50%, #fff 50%); }

/* Bir bosishli tanlov tugmalari (select o'rniga) */
select.chips-src { display:none !important; }
.chips { display:flex; flex-wrap:wrap; gap:5px; margin:4px 0 0; }
.chips .chip { min-height:30px; padding:3px 11px; border:1px solid var(--line); border-radius:999px; background:var(--card); color:var(--text); font-weight:500; font-size:.9rem; box-shadow:none; }
.chips .chip:hover:not(:disabled) { border-color:var(--brand); color:var(--brand); background:var(--card); }
.chips .chip.on { background:var(--brand); border-color:var(--brand); color:#fff; }
.chips .chip:disabled { opacity:.45; cursor:not-allowed; }
.filters .chips { margin:0; }
.chips.bad .chip { border-color:var(--red, #dc2626); }

/* Profil rasmi va rollarni almashtirish */
.avatar.has-img { background:var(--soft); overflow:hidden; padding:0; }
.avatar.has-img img { width:100%; height:100%; object-fit:cover; display:block; }
.avatar.xs { width:28px; height:28px; font-size:.7rem; border-radius:8px; }
.who { display:inline-flex; align-items:center; gap:8px; }
.profile-head { display:flex; align-items:flex-start; gap:16px; margin:6px 0 14px; }
.profile-head h1 { margin:0 0 4px; }
.avatar-form { display:flex; align-items:center; gap:10px; margin:10px 0 2px; flex-wrap:wrap; }
.avatar-form label.btn { margin:0; cursor:pointer; display:inline-flex; align-items:center; gap:6px; }
.role-switch { display:flex; flex-direction:column; gap:4px; padding:10px 14px; border-bottom:1px solid var(--line); margin:0; }
.role-switch > .muted { font-size:.85rem; margin-bottom:2px; }
.role-switch button { display:grid; grid-template-columns:1fr auto; text-align:left; gap:0 8px; min-height:0; padding:6px 10px; border:1px solid var(--line);
  border-radius:8px; background:var(--card); color:var(--text); box-shadow:none; font-weight:400; }
.role-switch button b { font-weight:600; font-size:.88rem; } .role-switch button small { grid-column:1; color:var(--muted); font-size:.75rem; }
.role-switch button i { grid-row:1 / span 2; grid-column:2; align-self:center; color:var(--brand); }
.role-switch button:hover:not(:disabled) { border-color:var(--brand); }
.role-switch button.on { border-color:var(--brand); background:var(--soft); opacity:1; cursor:default; }
.role-list { display:flex; flex-direction:column; gap:6px; margin:6px 0 14px; }
.role-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 12px; border:1px solid var(--line); border-radius:8px; }
.role-row.on { border-color:var(--brand); background:var(--soft); }
.role-row form { margin:0; }

/* Sinflarni belgilab yaratish jadvali */
.class-grid { width:auto; border-collapse:separate; border-spacing:4px; }
.class-grid th, .class-grid td { padding:0; border:0; background:none; text-align:center; }
.class-grid th { font-weight:600; padding:0 6px; white-space:nowrap; }
.class-grid th .link { font-weight:600; }
.class-grid .cell { display:inline-flex; margin:0; cursor:pointer; }
.class-grid .cell input { position:absolute; opacity:0; pointer-events:none; }
.class-grid .cell span { display:inline-grid; place-items:center; min-width:52px; height:34px; padding:0 8px; border:1px solid var(--line); border-radius:8px;
  font-size:.85rem; font-weight:600; color:var(--muted); background:var(--card); transition:background .12s, color .12s; }
.class-grid .cell:hover span { border-color:var(--brand); color:var(--text); }
.class-grid .cell input:checked + span { background:var(--brand); border-color:var(--brand); color:#fff; }
.class-grid .cell input:focus-visible + span { outline:2px solid var(--brand); outline-offset:2px; }
.class-grid .cell.have { cursor:default; }
.class-grid .cell.have span, .class-grid .cell.have input:checked + span { background:var(--soft); border-color:var(--line); color:var(--muted); }
.class-grid-form .actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-top:10px; }
.class-grid-form .actions select { width:auto; min-width:220px; }

/* Jadval: № ustuni, sarlavhani bosib saralash, jonli qidiruv */
th.num-col, td.num-col { width:1%; white-space:nowrap; text-align:right; font-variant-numeric:tabular-nums; }
th.csort { cursor:pointer; user-select:none; }
th.csort:hover { color:var(--brand); }
th.csort::after { content:' ⇅'; opacity:.35; font-size:.8em; }
th.csort[data-dir=asc]::after { content:' ▲'; opacity:.8; }
th.csort[data-dir=desc]::after { content:' ▼'; opacity:.8; }
form[data-live] .live-hide { display:none; }
.tag.unlock { background:var(--warn, #f39c12); border-color:var(--warn, #f39c12); color:#fff; letter-spacing:.04em; }
.unlock-reveal { margin:10px auto; max-width:520px; } .unlock-reveal summary { cursor:pointer; color:var(--muted); }
.unlock-reveal .unlock-code { font-size:28px; letter-spacing:.2em; font-variant-numeric:tabular-nums; }
.warn-overlay.fs-gate { background:var(--bg, #1e1e2d); }

/* Matematik formulalar */
.math-pv { margin:-4px 0 10px; padding:8px 12px; border:1px dashed var(--line); border-radius:var(--radius); background:var(--bg, transparent); font-size:1.05rem; overflow-x:auto; }
.math-help table td { padding:4px 10px 4px 0; vertical-align:top; }
.math-help code { white-space:pre-wrap; }
.katex-display { overflow-x:auto; overflow-y:hidden; padding:2px 0; }
/* Imtihon: matn kattaligi va internet holati */
form#exam { zoom:var(--exam-zoom, 1); }
.exam-head-r { display:flex; align-items:center; gap:10px; }
.zoom-tools { display:inline-flex; gap:4px; }
.zoom-tools button { padding:4px 10px; font-weight:700; min-width:42px; }
.zoom-tools button:disabled { opacity:.4; cursor:default; }
.net-banner { position:fixed; top:0; left:0; right:0; z-index:3000; padding:12px 16px; text-align:center; font-weight:600; background:var(--err); color:#fff; box-shadow:0 2px 8px rgba(0,0,0,.25); }
/* Savollar tahlili: variantlar taqsimoti */
.picks { white-space:nowrap; }
.pick { display:inline-block; padding:1px 6px; margin:1px; border-radius:4px; background:var(--line); font-size:.85rem; }
.pick.right { background:var(--ok); color:#fff; }
.forgot-link { text-align:center; margin:10px 0 0; }
.auth.single { grid-template-columns:1fr; }

/* Sinf hisoboti — rasmiy uslub, A4 (ekranda ham varaq ko'rinishida) */
.rep-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:6px; } .rep-actions .grow { flex:1; }
.report-sheet { background:#fff; color:#000; max-width:210mm; margin:10px auto 24px; padding:14mm 12mm; box-shadow:0 2px 12px rgba(15,23,42,.12); border:1px solid var(--line);
  font-family:"Times New Roman", Times, "Liberation Serif", serif; font-size:11pt; line-height:1.3; }
.report-sheet table { width:100%; border-collapse:collapse; }
.rep-head { text-align:center; font-size:10.5pt; }
.rep-title { text-align:center; font-size:13pt; font-weight:700; margin:8px 0 2px; font-family:inherit; letter-spacing:0; }
.rep-sub { text-align:center; margin:0 0 8px; font-size:10.5pt; }
.rep-subject { font-size:11.5pt; margin:10px 0 4px; font-family:inherit; }
.rep-sec + .rep-sec { margin-top:10px; }
.report-sheet th, .report-sheet td { border:1px solid #000; padding:1.5px 4px; text-align:center; font-size:10pt; font-weight:400; color:#000; background:none;
  text-transform:none; letter-spacing:0; }
.report-sheet th { font-weight:700; }
.report-sheet .l { text-align:left; } .rep-table .n { width:7mm; }
.rep-table tfoot td { font-weight:400; }
.rep-sum { margin-top:6px; }
.rep-charts { display:flex; flex-wrap:wrap; gap:14px; margin-top:8px; } .rep-charts figure { margin:0; } .rep-charts figcaption { font-weight:700; font-size:10pt; }
.rep-chart { max-width:100%; height:auto; font-family:Arial, sans-serif; }
.rep-sign { width:auto !important; margin-top:12px; } .rep-sign td { border:0 !important; padding:6px 4px 0; text-align:left; font-size:10.5pt; }
.rep-sign td.line { border-bottom:1px solid #000 !important; min-width:60mm; } .rep-sign td.sig { min-width:35mm; }
.rep-sign tr.cap td { padding-top:0; font-size:8pt; text-align:center; }
.rep-foot { margin-top:8px; font-size:8pt; color:#444; }
@media (max-width:760px) { .report-sheet { padding:14px 10px; font-size:10pt; } .rep-sign td.line { min-width:30mm; } }
@media print {
  @page { size:A4 portrait; margin:10mm 10mm 10mm 15mm; }
  .report-sheet { box-shadow:none; border:0; padding:0; margin:0; max-width:none; }
  .report-sheet:not(.with-charts) .rep-charts { display:none; }
  .rep-charts { page-break-inside:avoid; } .rep-table tr { page-break-inside:avoid; } .rep-sum, .rep-sign { page-break-inside:avoid; }
  .rep-chart rect { -webkit-print-color-adjust:exact; print-color-adjust:exact; }
}
.res-part { color:var(--muted); font-size:.8rem; }
.chips-line { display:flex; flex-wrap:wrap; gap:8px; } .report-sheet .absent-cell { color:#555; }

/* =====================================================================
   v5 DIZAYN — zamonaviy, Windows 11 uslubiga yaqin: yorug' yon menyu, aniq chegaralar,
   bir xil o'lchamdagi tugma va maydonlar, telefonga to'liq moslashuv.
   (Yuqoridagi qoidalarni ustidan yozadi; mavzular CSS o'zgaruvchilari orqali.)
   ===================================================================== */
:root, [data-theme="klassik"] {
  --bg:#f3f5f9; --card:#fff; --text:#0b1324; --muted:#5b6578; --line:#e5e8ef; --soft:#f6f7fb; --input:#cfd5e0;
  --brand:#2f5bea; --brand-dark:#2249c9; --brand-2:#ecf1ff; --brand-grad:linear-gradient(135deg, #2f5bea 0%, #6d4aff 100%);
  --ok:#14915a; --ok-bg:#e3f6ec; --err:#d92d3a; --err-bg:#fdecee; --warn:#a15c00; --warn-bg:#fff4dc; --info:#0e7fa8;
  --shadow:0 1px 2px rgba(16,24,40,.04), 0 1px 3px rgba(16,24,40,.06); --shadow-lg:0 16px 40px rgba(16,24,40,.14);
  --radius:12px; --r-sm:8px; --sw:260px; --top:rgba(255,255,255,.88);
}
[data-theme="yashil"] { --brand:#0f8a5f; --brand-dark:#0b6e4b; --brand-2:#e6f6ef; --brand-grad:linear-gradient(135deg, #0f8a5f 0%, #0d9488 100%); }
[data-theme="binafsha"] { --brand:#6d3fe0; --brand-dark:#5a2fc4; --brand-2:#f1ecff; --brand-grad:linear-gradient(135deg, #6d3fe0 0%, #d63384 100%); }
[data-theme="tun"] { --bg:#0b1120; --card:#121a2c; --soft:#172238; --text:#e6eaf2; --muted:#9aa4b8; --line:#232f47; --input:#344158; --brand:#5b8cff; --brand-dark:#3f73f5; --brand-2:#1b2a4d; --top:rgba(18,26,44,.88); }
/* Yon menyu yorug' (kontrast mavzusidan tashqari) */
html:not([data-theme="kontrast"]) { --side-bg:var(--card); --side-text:#3b4458; --side-head:#8a93a6; --side-line:var(--line); --side-hover:var(--soft); }
html[data-theme="tun"] { --side-text:#c3cad8; --side-head:#7d879c; }

body { font-family:"Inter", "Source Sans 3", -apple-system, "Segoe UI", Roboto, Arial, sans-serif; font-size:14.5px; line-height:1.5; letter-spacing:-.003em; background:var(--bg); }
h1 { font-size:1.55rem; font-weight:700; letter-spacing:-.02em; margin:2px 0 14px; }
h2 { font-size:1.2rem; font-weight:650; letter-spacing:-.01em; margin:24px 0 10px; } h3 { font-size:1.02rem; font-weight:650; }
a { color:var(--brand); }
code { color:#b4235f; background:var(--soft); border-color:var(--line); }

/* Yuqori panel */
.main-header { min-height:60px; padding:8px 20px; background:var(--top); border-bottom:1px solid var(--line); box-shadow:none; }
.nav-btn, .icon-btn { width:40px; height:40px; min-height:40px; padding:0; border-radius:var(--r-sm); color:var(--muted); background:transparent; box-shadow:none; }
.nav-btn:hover, .icon-btn:hover { background:var(--soft); color:var(--text); }
.search-trigger { border-radius:var(--r-sm); border:1px solid var(--line); background:var(--soft); color:var(--muted); box-shadow:none; font-weight:400; }
.user-menu summary { padding:4px 10px 4px 4px; border:1px solid transparent; }
.user-menu summary:hover { border-color:var(--line); background:var(--card); }
.avatar { border-radius:50%; }
.logo { border-radius:10px; }

/* Yon menyu */
.main-sidebar { background:var(--side-bg); border-right:1px solid var(--side-line); box-shadow:none; }
.brand-link { color:var(--text) !important; height:60px; }
.brand-link .brand-text small { color:var(--muted); }
.nav-header { color:var(--side-head); font-size:.68rem; letter-spacing:.09em; padding:16px 12px 6px; }
.nav-link { position:relative; padding:8px 12px; min-height:38px; border-radius:var(--r-sm); color:var(--side-text) !important; font-weight:500; }
.nav-link .nav-icon { color:var(--side-head); }
.nav-link:hover { background:var(--side-hover); color:var(--text) !important; }
.nav-link.on { background:var(--brand-2); color:var(--brand) !important; box-shadow:none; font-weight:600; }
.nav-link.on .nav-icon { color:var(--brand); }
.nav-link.on::before { content:""; position:absolute; left:-12px; top:9px; bottom:9px; width:3px; border-radius:0 3px 3px 0; background:var(--brand); }
.user-panel { color:var(--side-text) !important; } .user-panel b { color:var(--text); }
html[data-theme="kontrast"] .nav-link.on { background:#fff; color:#000 !important; }

/* Kartochkalar */
.card, .table-wrap, .filters, .stat, .bulkbar, .page-hint, .notice-bar { border:1px solid var(--line); box-shadow:var(--shadow); border-radius:var(--radius); }
.card { padding:18px 20px; }
.card > h2:first-child, .card > h3:first-child { font-weight:650; font-size:1rem; padding:13px 20px; }
details.card { border-top:1px solid var(--line); }
details.card > summary { font-weight:600; padding:14px 20px; }
details.card > summary b { font-weight:600; }
details.card > summary::before { content:"\f054"; background:var(--brand-2); color:var(--brand); border-radius:6px; width:22px; height:22px; font-size:.7rem; transition:transform .15s; }
details.card[open] > summary::before { content:"\f054"; transform:rotate(90deg); }
.page-hint { border-left:4px solid var(--info); background:var(--card); }
.stat { border-left-width:4px; padding:14px 16px; } .stat b { font-size:1.5rem; font-weight:700; letter-spacing:-.02em; }

/* Formalar */
label { font-weight:600; font-size:.88rem; color:var(--text); margin-bottom:14px; }
label small { font-size:.8rem; }
input, select, textarea { min-height:40px; padding:8px 12px; border:1px solid var(--input); border-radius:var(--r-sm); font-size:.95rem; background:var(--card); }
input:hover, select:hover, textarea:hover { border-color:#9aa6bb; }
input:focus, select:focus, textarea:focus { border-color:var(--brand); box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 18%, transparent); }
input[type=checkbox], input[type=radio] { width:18px; height:18px; min-height:0; padding:0; }
button, .btn { min-height:38px; padding:7px 16px; border-radius:var(--r-sm); font-weight:600; font-size:.92rem; box-shadow:none; letter-spacing:0; }
button.big, .btn.big { min-height:44px; padding:9px 22px; font-size:1rem; }
button.secondary, .btn.secondary { background:var(--card); color:var(--text); border:1px solid var(--input); }
button.secondary:hover, .btn.secondary:hover { background:var(--soft); border-color:#9aa6bb; }
button:active:not(:disabled), .btn:active { transform:translateY(1px); }
button.small, .btn.small { min-height:32px; padding:4px 12px; font-size:.85rem; }
button.link { font-weight:500; }
button:focus-visible, a:focus-visible, .chip:focus-visible, .picker:focus-visible { outline:2px solid var(--brand); outline-offset:2px; }
.filters { gap:10px; padding:12px 14px; align-items:center; }

/* Tugmali tanlov (radio) */
.chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
.chip { min-height:34px; padding:5px 13px; border-radius:999px; border:1px solid var(--input); background:var(--card); color:var(--text); font-weight:500; font-size:.88rem; box-shadow:none; }
.chip:hover { background:var(--soft); border-color:#9aa6bb; }
.chip.on, .chip.on:hover { background:var(--brand); border-color:var(--brand); color:#fff; }
.chips.bad .chip { border-color:var(--err); }
/* Tanlash oynasi tugmasi (ko'p variantli ro'yxat o'rniga) */
.picker { display:flex; width:100%; justify-content:space-between; gap:10px; margin-top:6px; min-height:40px; padding:7px 12px; text-align:left;
  background:var(--card); color:var(--text); border:1px solid var(--input); font-weight:500; }
.picker:hover { background:var(--card); border-color:var(--brand); }
.picker i { color:var(--muted); } .picker-v { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.picker-v.muted { color:var(--muted); font-weight:400; }
td .picker, .filters .picker, form.inline .picker { width:auto; min-width:150px; margin-top:0; }
.pick-sheet { width:min(520px, 100%); max-height:min(80vh, 640px); display:flex; flex-direction:column; padding:0; overflow:hidden; }
.pick-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:16px 18px 10px; }
.pick-head h3 { margin:0; font-size:1.05rem; }
button.pick-x { background:none; color:var(--muted); font-size:24px; min-height:0; padding:0 6px; }
.pick-search { margin:0 18px 8px !important; width:calc(100% - 36px) !important; }
.pick-list { overflow-y:auto; padding:4px 10px 12px; }
.pick-opt { display:flex; align-items:center; gap:12px; margin:0; padding:10px 10px; border-radius:var(--r-sm); font-weight:500; cursor:pointer; }
.pick-opt:hover { background:var(--soft); } .pick-opt.on { background:var(--brand-2); color:var(--brand); }
.pick-empty { padding:0 18px 16px; }
.checklist { margin-top:6px; border:1px solid var(--input); border-radius:var(--r-sm); padding:8px 10px; background:var(--card); }
.checklist .pick-search { margin:0 0 8px !important; width:100% !important; }
.checklist-items { display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); gap:2px 12px; max-height:240px; overflow-y:auto; }
.checklist-items .check { margin:0; padding:5px 2px; }

/* Xato va izohlar */
.has-err input, .has-err textarea, .has-err .picker, .has-err .checklist, input[aria-invalid], textarea[aria-invalid] { border-color:var(--err) !important; background:var(--err-bg); }
.has-err .chips .chip { border-color:var(--err); }
.field-err { display:flex !important; align-items:flex-start; gap:6px; margin-top:6px; color:var(--err) !important; font-weight:500; font-size:.83rem; }
.field-err::before { content:"\f06a"; font:900 .8rem "Font Awesome 6 Free"; margin-top:2px; }
.form-alert { display:flex; gap:10px; align-items:flex-start; padding:11px 14px; margin:0 0 14px; border-radius:var(--r-sm); background:var(--err-bg); color:var(--err);
  border:1px solid color-mix(in srgb, var(--err) 35%, transparent); font-weight:500; }
.form-alert::before { content:"\f071"; font:900 .9rem "Font Awesome 6 Free"; margin-top:2px; }
.hint-ico { position:relative; display:inline-grid; place-items:center; width:17px; height:17px; margin:0 0 0 6px; border-radius:50%; background:var(--soft); border:1px solid var(--input);
  color:var(--muted); font-size:11px; font-weight:700; line-height:1; cursor:help; vertical-align:1px; }
.hint-ico:hover, .hint-ico:focus { background:var(--brand); border-color:var(--brand); color:#fff; outline:none; }
.hint-ico::after { content:attr(data-tip); position:absolute; z-index:60; left:50%; bottom:calc(100% + 8px); transform:translateX(-50%); width:max-content; max-width:min(300px, 80vw);
  padding:9px 12px; border-radius:var(--r-sm); background:#0f172a; color:#fff; font-size:.82rem; font-weight:400; line-height:1.4; text-align:left; white-space:normal;
  box-shadow:var(--shadow-lg); opacity:0; visibility:hidden; transition:opacity .12s; pointer-events:none; }
.hint-ico:hover::after, .hint-ico:focus::after { opacity:1; visibility:visible; }
/* JS ishlasa izoh body ichidagi bitta oynachada chiqadi (jadval va aylantiriladigan panellarda kesilmaydi) */
.hint-pop-on .hint-ico::after { content:none; }
.hint-pop { position:fixed; z-index:1000; left:0; top:0; max-width:min(320px, calc(100vw - 16px)); padding:9px 12px; border-radius:var(--r-sm, 8px); background:#0f172a; color:#fff;
  font-size:.82rem; font-weight:400; line-height:1.45; text-align:left; white-space:normal; box-shadow:var(--shadow-lg); opacity:0; visibility:hidden; pointer-events:none; transition:opacity .12s; }
.hint-pop.on { opacity:1; visibility:visible; }
/* Tugma yonidagi (?): kichik, tugma bilan bir qatorda */
.hint-ico.btn-hint { width:16px; height:16px; margin:0 6px 0 5px; font-size:10px; align-self:center; flex:none; opacity:.75; }
.hint-ico.btn-hint:hover, .hint-ico.btn-hint:focus { opacity:1; }
.cmds .hint-ico.btn-hint { margin:0 6px 0 -4px; }
.filters > .hint-ico.btn-hint { flex:none !important; align-self:center; }
.hint-ico:focus-visible { outline:2px solid var(--brand); outline-offset:2px; }
@media (pointer:coarse) { .hint-ico { width:22px; height:22px; font-size:12px; } .hint-ico.btn-hint { width:20px; height:20px; } }
@media print { .hint-ico, .hint-pop { display:none !important; } }
/* Sahifa bo'limlari (?tab=): bitta ekranda bitta ish */
.page-tabs { margin:4px 0 18px; flex-wrap:wrap; }
.page-tabs a { white-space:nowrap; display:inline-flex; align-items:center; gap:7px; padding-left:12px; padding-right:12px; }
@media (max-width:700px) { .page-tabs { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:thin; } }
.page-tabs a i { opacity:.8; }
.page-tabs .cnt { min-width:20px; padding:0 6px; border-radius:10px; background:var(--soft); color:var(--muted); font-size:.75rem; line-height:18px; text-align:center; }
.page-tabs a.on .cnt { background:var(--brand); color:#fff; }
.tab-pane[hidden] { display:none !important; }
.narrow-card { max-width:760px; }

/* Bildirishnomalar */
.toast { border-radius:var(--radius); border:1px solid var(--line); border-left-width:4px; box-shadow:var(--shadow-lg); }

/* Jadvallar */
.table-wrap { background:var(--card); }
th { background:var(--soft); color:var(--muted); font-size:.74rem; font-weight:650; text-transform:uppercase; letter-spacing:.04em; border-bottom:1px solid var(--line); padding:10px 12px; }
td { border-top:1px solid var(--line); padding:10px 12px; }
.table-wrap tr:nth-child(odd) td { background:transparent; }
.table-wrap tr:hover td { background:var(--soft); }
.table-wrap tr.sel td { background:var(--brand-2) !important; }
.table-wrap td:has(> input[type=checkbox][name$="[]"]) { cursor:pointer; }
th.csort:hover, th a.sort:hover { color:var(--text); }

/* Ommaviy amallar — buyruqlar paneli */
.bulkbar { position:sticky; top:auto; bottom:12px; z-index:20; gap:6px; padding:8px 10px; border-left:1px solid var(--line); background:var(--card); }
.bulkbar.active { border-color:var(--brand); box-shadow:0 10px 30px rgba(16,24,40,.16); }
.bulkbar .sel-count { padding:0 8px; background:none; color:var(--muted); font-weight:600; font-size:.85rem; }
.bulkbar.active .sel-count { color:var(--brand); }
.cmds { display:flex; flex-wrap:wrap; gap:4px; }
.cmd { min-height:34px; padding:5px 11px; background:transparent; color:var(--text); border:1px solid transparent; font-weight:500; font-size:.86rem; }
.cmd i { color:var(--muted); } .cmd:hover:not(:disabled) { background:var(--soft); border-color:var(--line); }
.cmd.danger, .cmd.danger i { color:var(--err); } .cmd:disabled { opacity:.4; }
.sel-clear { margin-left:auto; font-size:.85rem; color:var(--muted) !important; }
.bulkbar:not(.active) .sel-clear { display:none; }

/* Modal oynalar */
.modal-back { background:rgba(15,23,42,.45); backdrop-filter:blur(2px); }
.modal { border-radius:16px; border:1px solid var(--line); }

/* Teglar va baholar */
.tag { border-radius:6px; font-weight:600; }
.mark { border-radius:6px; }
.switch { width:42px; height:24px; }

/* Kirish oynasi */
body.auth-page { background:var(--bg); }
.auth { min-height:calc(100vh - 120px); display:grid; grid-template-columns:minmax(0, 1.05fr) minmax(0, 1fr); gap:0; max-width:1100px; margin:20px auto; border-radius:20px;
  overflow:hidden; background:var(--card); border:1px solid var(--line); box-shadow:var(--shadow-lg); }
.auth-side { display:flex; flex-direction:column; justify-content:center; padding:48px; background:var(--brand-grad); color:#fff; position:relative; overflow:hidden; }
.auth-side::after { content:""; position:absolute; width:360px; height:360px; right:-120px; bottom:-140px; border-radius:50%; background:rgba(255,255,255,.08); }
.auth-side h2 { color:#fff; font-size:1.9rem; font-weight:750; line-height:1.15; letter-spacing:-.02em; margin:0 0 12px; }
.auth-side p { color:rgba(255,255,255,.85); font-size:1.02rem; margin:0 0 22px; }
.auth-side ul { list-style:none; padding:0; margin:0; display:grid; gap:12px; }
.auth-side li { display:flex; gap:12px; align-items:center; font-weight:500; }
.auth-side li i { display:inline-grid; place-items:center; width:34px; height:34px; border-radius:10px; background:rgba(255,255,255,.16); }
.auth-main { display:flex; align-items:center; justify-content:center; padding:40px 32px; }
.auth-card { width:100%; max-width:380px; background:none; box-shadow:none; border:0; padding:0; }
.auth-card h1 { font-size:1.6rem; margin:0 0 6px; } .auth-card > p { color:var(--muted); margin:0 0 22px; }
.input-icon { position:relative; display:block; margin-top:6px; }
.input-icon > i { position:absolute; left:13px; top:50%; transform:translateY(-50%); color:var(--muted); pointer-events:none; font-size:.9rem; z-index:1; }
.input-icon > input { margin:0; padding-left:38px; min-height:46px; font-size:1rem; }
.input-icon > .pw-toggle { position:absolute; right:4px; top:50%; transform:translateY(-50%); min-height:38px; width:40px; padding:0; background:none; color:var(--muted); }
.input-icon > .pw-toggle:hover { color:var(--text); background:var(--soft); }
.input-icon:has(.pw-toggle) > input { padding-right:46px; }
.auth-card button.big { width:100%; margin-top:6px; }
.caps-warn { display:block; margin-top:6px; color:var(--warn); font-weight:500; font-size:.82rem; }
.forgot-link { text-align:right; margin:10px 0 0; font-size:.9rem; }
.auth-foot { margin-top:22px; padding-top:18px; border-top:1px solid var(--line); color:var(--muted); font-size:.9rem; }
.auth .flash.err { background:var(--err-bg); color:var(--err); border:1px solid color-mix(in srgb, var(--err) 35%, transparent); }

/* ---------- Telefon va planshet ---------- */
@media (max-width:991px) {
  .main-sidebar { width:280px; transform:translateX(-290px); box-shadow:var(--shadow-lg); }
  .user-menu .uname { display:none !important; }
  .user-menu summary > .fa-angle-down { display:none; }
  .main-header { flex-wrap:nowrap; padding:8px 12px; gap:6px; }
  .breadcrumb { display:none; }
}
@media (max-width:760px) {
  body { font-size:15px; }
  main { padding:12px 12px 90px; }
  h1 { font-size:1.3rem; }
  .auth { grid-template-columns:1fr; margin:0; border-radius:0; border:0; min-height:calc(100vh - 60px); box-shadow:none; }
  .auth-side { padding:26px 22px; } .auth-side h2 { font-size:1.35rem; } .auth-side ul, .auth-side p { display:none; }
  .auth-main { padding:24px 18px; align-items:flex-start; }
  input, select, textarea { font-size:16px; } /* iPhone'da maydonga bosganda sahifa kattalashmasin */
  .stats, .boxes { grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; }
  .stat { padding:10px 12px; } .stat b { font-size:1.25rem; }
  .grid2 { grid-template-columns:1fr; }
  .filters { flex-wrap:wrap; } .filters > * { flex:1 1 100%; } .filters .chips { flex-wrap:wrap; }
  .filters select, .filters input { min-width:0; }
  .row > label, .row > input { flex:1 1 100%; }
  form.inline { display:flex; } form.inline input, form.inline .picker { flex:1 1 140px; }
  .pick-sheet { position:fixed; left:0; right:0; bottom:0; width:100%; max-height:85vh; border-radius:18px 18px 0 0; animation:sheetUp .2s ease; }
  .sheet-back { place-items:end center; padding:0; }
  .bulkbar { bottom:8px; margin-left:-4px; margin-right:-4px; }
  .cmds { flex-wrap:nowrap; overflow-x:auto; width:100%; order:5; }
  .cmd { flex:none; }
  .hint-ico::after { position:fixed; left:12px; right:12px; bottom:auto; top:70px; transform:none; width:auto; max-width:none; }
  /* Jadval → kartochkalar */
  .table-wrap.cardable { background:transparent; border:0; box-shadow:none; overflow:visible; }
  .table-wrap.cardable > table, .table-wrap.cardable > table > tbody, .table-wrap.cardable > table > thead { display:block; background:transparent; }
  .table-wrap.cardable tr:has(> th) { display:none; }
  .table-wrap.cardable tr { position:relative; display:block; margin:0 0 10px; padding:10px 14px; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
  .table-wrap.cardable tr.sel { border-color:var(--brand); background:var(--brand-2); }
  .table-wrap.cardable td { display:flex; gap:10px; align-items:flex-start; padding:4px 0; border:0; background:transparent !important; text-align:left !important; min-height:0; }
  .table-wrap.cardable td[data-label]::before { content:attr(data-label); flex:0 0 38%; color:var(--muted); font-size:.78rem; font-weight:600; text-transform:uppercase; letter-spacing:.03em; padding-top:2px; }
  .table-wrap.cardable td:empty, .table-wrap.cardable td.num-col { display:none; }
  .table-wrap.cardable td.sel-cell { position:absolute; top:10px; right:12px; padding:0; }
  .table-wrap.cardable td.sel-cell::before { display:none; }
  .table-wrap.cardable td:nth-child(2):not(.sel-cell), .table-wrap.cardable td.sel-cell + td.num-col + td { font-weight:600; }
  .toasts { left:10px; right:10px; bottom:10px; max-width:none; }
  .main-footer { padding:12px; font-size:.8rem; }
}
@keyframes sheetUp { from { transform:translateY(30px); opacity:.6; } }
@media (prefers-reduced-motion:reduce) { * { animation:none !important; transition:none !important; } }
.grid2 { align-items:start; }
@media (max-width:760px) {
  .table-wrap.cardable td { display:block; position:relative; padding:4px 0 4px 40%; min-height:22px; word-break:break-word; }
  .table-wrap.cardable td:not([data-label]) { padding-left:0; }
  .table-wrap.cardable td[data-label]::before { position:absolute; left:0; top:5px; width:36%; }
  .table-wrap.cardable td.sel-cell { position:absolute; padding:0; min-height:0; }
  .card > table, .card .table-wrap:not(.cardable), main > table { display:block; overflow-x:auto; max-width:100%; }
}
.grid2 > *, .stats > *, .boxes > * { min-width:0; }
fieldset { min-width:0; }
.parts-edit { max-width:100%; overflow-x:auto; }
@media (max-width:760px) {
  .parts-edit table { display:block; overflow-x:auto; max-width:100%; }
  .parts-edit input { width:70px; }
  form.inline { flex-wrap:wrap; }
  form.inline input:not([type=checkbox]):not([type=radio]), td form input:not([type=checkbox]):not([type=radio]) { min-width:0; max-width:100%; flex:1 1 140px; }
}
@media (max-width:480px) {
  .guest-login .btn-txt { display:none; }
  .guest-login { padding-left:12px; padding-right:12px; }
  body.guest .main-header .brand { min-width:0; }
}
.warn-overlay.finish-ask > div { border-top-color:var(--brand, #2f5bea); }
.finish-btns { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-top:16px; }
.code-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:4px 14px; margin-bottom:12px; }
.code-grid label { display:flex; align-items:center; gap:10px; margin:0; font-weight:500; }
.code-grid input { width:3.6em; flex:none; margin:0; text-align:center; }
.sid-cell span { font-variant-numeric:tabular-nums; margin-right:2px; }
.sid-cell input { display:inline-block; width:3.6em; margin:0; padding-left:6px; padding-right:6px; text-align:center; }
.school-name-in { min-width:14em; }
@media (max-width:760px) { .school-name-in { min-width:0; } }

.danger-zone { border:1px solid var(--err) !important; border-top:3px solid var(--err) !important; background:color-mix(in srgb, var(--err) 4%, var(--card)); margin-top:24px; }
.danger-zone summary { cursor:pointer; color:var(--err); font-weight:650; }

/* =====================================================================
   v8 — Fluent (Windows 11 uslubi): Mica fon, shaffof (akril) panel, yumshoq soyalar,
   ranglar ma'no bo'yicha: asosiy amal — brend rangi, xavf — qizil, muvaffaqiyat — yashil,
   PIN va kodlar — yirik va ajralib turadi. Kontrast mavzusiga tegilmaydi.
   ===================================================================== */
html:not([data-theme="kontrast"]) {
  --f-font:"Segoe UI Variable Text", "Segoe UI Variable", "Segoe UI", "Inter", -apple-system, Roboto, Arial, sans-serif;
  --f-display:"Segoe UI Variable Display", "Segoe UI Variable", "Segoe UI", "Inter", -apple-system, Roboto, Arial, sans-serif;
  --mica:radial-gradient(1200px 600px at 100% -10%, color-mix(in srgb, var(--brand) 13%, transparent), transparent 60%),
         radial-gradient(900px 500px at -10% 110%, color-mix(in srgb, #7c3aed 9%, transparent), transparent 60%), var(--bg);
  --acrylic:color-mix(in srgb, var(--card) 78%, transparent);
  --stroke:color-mix(in srgb, var(--text) 9%, transparent);
  --elev-1:0 1px 2px rgba(0,0,0,.04), 0 2px 6px rgba(0,0,0,.04);
  --elev-2:0 2px 4px rgba(0,0,0,.04), 0 8px 24px rgba(0,0,0,.08);
  --radius:10px; --r-sm:6px;
  --g0:#2f5bea; --g1:#0f8a5f; --g2:#7048e8; --g3:#e8590c; --g4:#0c8599; --g5:#c2255c;
}
html[data-theme="tun"] { --stroke:rgba(255,255,255,.08); --elev-1:0 1px 2px rgba(0,0,0,.4); --elev-2:0 8px 24px rgba(0,0,0,.45); }
html:not([data-theme="kontrast"]) body { font-family:var(--f-font); background:var(--mica); background-attachment:fixed; }
html:not([data-theme="kontrast"]) h1, html:not([data-theme="kontrast"]) h2 { font-family:var(--f-display); }
html:not([data-theme="kontrast"]) h1 { font-weight:650; letter-spacing:-.015em; }

/* Akril yuqori panel va yon menyu */
html:not([data-theme="kontrast"]) .main-header { background:var(--acrylic); backdrop-filter:blur(24px) saturate(160%); -webkit-backdrop-filter:blur(24px) saturate(160%); border-bottom:1px solid var(--stroke); }
html:not([data-theme="kontrast"]) .main-sidebar { background:var(--acrylic); backdrop-filter:blur(30px) saturate(150%); -webkit-backdrop-filter:blur(30px) saturate(150%); border-right:1px solid var(--stroke); }
html:not([data-theme="kontrast"]) .logo { background:var(--brand-grad); border-radius:10px; box-shadow:0 4px 12px color-mix(in srgb, var(--brand) 35%, transparent); }
.logo.has-img { background:none !important; box-shadow:none !important; overflow:hidden; }
.logo.has-img img { width:100%; height:100%; object-fit:contain; display:block; }
.logo.xl { width:72px; height:72px; font-size:32px; border-radius:16px; }

/* Menyu: Windows Sozlamalar uslubidagi rangli belgilar (bo'lim bo'yicha bir xil rang) */
html:not([data-theme="kontrast"]) .nav-link { border-radius:6px; margin:1px 0; }
html:not([data-theme="kontrast"]) .nav-link.grp1 { --ic:var(--g0); } html:not([data-theme="kontrast"]) .nav-link.grp2 { --ic:var(--g2); }
html:not([data-theme="kontrast"]) .nav-link.grp3 { --ic:var(--g1); } html:not([data-theme="kontrast"]) .nav-link.grp4 { --ic:var(--g3); }
html:not([data-theme="kontrast"]) .nav-link.grp5 { --ic:var(--g4); } html:not([data-theme="kontrast"]) .nav-link.grp0 { --ic:var(--g5); }
html:not([data-theme="kontrast"]) .nav-link .nav-icon { color:var(--ic, var(--brand)); }
html:not([data-theme="kontrast"]) .nav-link:hover { background:color-mix(in srgb, var(--text) 5%, transparent); }
html:not([data-theme="kontrast"]) .nav-link.on { background:color-mix(in srgb, var(--text) 7%, transparent); color:var(--text) !important; font-weight:600; }
html:not([data-theme="kontrast"]) .nav-link.on .nav-icon { color:var(--ic, var(--brand)); }
html:not([data-theme="kontrast"]) .nav-link.on::before { left:-6px; top:11px; bottom:11px; width:3px; border-radius:3px; background:var(--brand); }
html:not([data-theme="kontrast"]) .nav-header { color:var(--muted); font-weight:600; letter-spacing:.02em; text-transform:none; font-size:.76rem; }

/* Kartalar: oq "Mica" yuzasi, nozik chegara, yumshoq soya */
html:not([data-theme="kontrast"]) .card, html:not([data-theme="kontrast"]) .table-wrap, html:not([data-theme="kontrast"]) .filters,
html:not([data-theme="kontrast"]) .bulkbar, html:not([data-theme="kontrast"]) .page-hint, html:not([data-theme="kontrast"]) .small-box, html:not([data-theme="kontrast"]) .stat {
  background:color-mix(in srgb, var(--card) 92%, transparent); border:1px solid var(--stroke); box-shadow:var(--elev-1); border-radius:var(--radius); }
html:not([data-theme="kontrast"]) .small-box { transition:transform .15s, box-shadow .15s; }
html:not([data-theme="kontrast"]) .small-box:hover { transform:translateY(-2px); box-shadow:var(--elev-2); }
html:not([data-theme="kontrast"]) .small-box h3 { color:var(--c, var(--brand)); font-family:var(--f-display); }
html:not([data-theme="kontrast"]) .small-box .icon { color:#fff; background:var(--c, var(--brand)); border-radius:10px; box-shadow:0 6px 14px color-mix(in srgb, var(--c, var(--brand)) 30%, transparent); }

/* Jadvallar */
html:not([data-theme="kontrast"]) th { background:color-mix(in srgb, var(--text) 3.5%, var(--card)); color:var(--muted); text-transform:none; letter-spacing:0; font-size:.8rem; font-weight:600; }
html:not([data-theme="kontrast"]) tbody tr:hover td, html:not([data-theme="kontrast"]) table tr:hover > td { background:color-mix(in srgb, var(--brand) 5%, transparent); }

/* Tugmalar: asosiy — to'liq rang (Fluent "accent"), ikkinchi darajali — oq */
html:not([data-theme="kontrast"]) button, html:not([data-theme="kontrast"]) .btn { border-radius:6px; }
html:not([data-theme="kontrast"]) button:not(.secondary):not(.link):not(.danger):not(.nav-btn):not(.chip):not(.picker):not(.pick-x):not(.cmd):not(.pw-toggle):not(.search-trigger):not(.lang-btn):not(.icon-btn),
html:not([data-theme="kontrast"]) .btn:not(.secondary):not(.link) {
  box-shadow:inset 0 -1px 0 rgba(0,0,0,.18), 0 1px 2px rgba(0,0,0,.08); }
html:not([data-theme="kontrast"]) input, html:not([data-theme="kontrast"]) select, html:not([data-theme="kontrast"]) textarea, html:not([data-theme="kontrast"]) .picker {
  border-radius:6px; border-bottom-color:color-mix(in srgb, var(--text) 30%, transparent); }
html:not([data-theme="kontrast"]) input:focus, html:not([data-theme="kontrast"]) textarea:focus { border-bottom:2px solid var(--brand); box-shadow:none; }

/* Muhim joylar: urg'u */
html:not([data-theme="kontrast"]) .flash.ok { border-left:4px solid var(--ok); }
html:not([data-theme="kontrast"]) .flash.err { border-left:4px solid var(--err); }
html:not([data-theme="kontrast"]) .danger-zone { background:color-mix(in srgb, var(--err) 5%, var(--card)); }

/* Sozlamalar: brend */
.brand-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:14px; }
.brand-box { display:flex; flex-direction:column; gap:8px; padding:14px; border:1px solid var(--stroke, var(--line)); border-radius:10px; background:var(--soft); }
.brand-preview { height:80px; display:flex; align-items:center; }
.brand-preview img { object-fit:contain; }
.color-in { width:80px; height:44px; padding:2px; cursor:pointer; }

/* Kirish sahifasi: markazdagi bitta karta */
.auth-center { min-height:calc(100vh - 130px); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; padding:32px 16px; }
.auth-center .auth-card { width:min(420px, 100%); max-width:420px; padding:32px 32px 24px; border-radius:16px; border:1px solid var(--stroke, var(--line));
  background:color-mix(in srgb, var(--card) 86%, transparent); backdrop-filter:blur(30px) saturate(160%); -webkit-backdrop-filter:blur(30px) saturate(160%); box-shadow:var(--elev-2, var(--shadow-lg)); }
.auth-brand { display:flex; flex-direction:column; align-items:center; gap:6px; margin-bottom:18px; text-align:center; }
.auth-brand .logo.xl { width:64px; height:64px; font-size:28px; }
.auth-brand b { font-size:1.25rem; font-weight:700; margin-top:6px; } .auth-brand small { color:var(--muted); }
.auth-center .auth-card h1 { text-align:center; font-size:1.45rem; margin:0 0 4px; padding:0; }
.auth-center .auth-card h1::before { display:none; }
.auth-center .auth-card > p { text-align:center; }
.auth-center .forgot-link { text-align:center; }
.auth-center .auth-foot { text-align:center; }
.auth-feats { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
.auth-feats li { display:flex; align-items:center; gap:8px; padding:7px 14px; border-radius:999px; font-size:.86rem; font-weight:500; color:var(--text);
  background:color-mix(in srgb, var(--card) 75%, transparent); border:1px solid var(--stroke, var(--line)); }
.auth-feats li i { color:var(--brand); }
@media (max-width:480px) { .auth-center { padding:16px 12px; justify-content:flex-start; } .auth-center .auth-card { padding:22px 18px; } }

/* PIN va chit kodi: har doim yonma-yon, yirik (PIN — brend rangi, chit kodi — to'q sariq) */
.codes { display:flex; flex-wrap:wrap; gap:10px; align-items:stretch; }
.code-box { display:flex; flex-direction:column; gap:4px; padding:8px 14px 10px; border-radius:12px; color:#fff !important; text-decoration:none !important; min-width:0;
  box-shadow:0 6px 16px color-mix(in srgb, var(--cb) 35%, transparent), inset 0 -2px 0 rgba(0,0,0,.15); background:linear-gradient(135deg, var(--cb), color-mix(in srgb, var(--cb) 75%, #000)); }
.code-pin { --cb:var(--brand, #2f5bea); } .code-unlock { --cb:#e8590c; }
.code-box small { font-size:.72rem; font-weight:600; opacity:.9; text-transform:uppercase; letter-spacing:.06em; white-space:nowrap; }
.code-box b { display:flex; gap:4px; font-variant-numeric:tabular-nums; font-family:"Cascadia Mono", Consolas, "SF Mono", monospace; }
.code-box b span { display:grid; place-items:center; min-width:1.15em; padding:2px 3px; border-radius:6px; background:rgba(255,255,255,.18); font-size:1.7rem; font-weight:800; line-height:1.15; }
.code-pin:hover { filter:brightness(1.08); }
.codes-sm { gap:6px; margin-top:6px; } .codes-sm .code-box { padding:4px 9px 6px; border-radius:9px; }
.codes-sm .code-box small { font-size:.62rem; } .codes-sm .code-box b span { font-size:1.15rem; border-radius:4px; }
.page-head .codes, .btn-group .codes { margin:0; }
.codes-xl { justify-content:center; gap:clamp(16px, 3vw, 48px); margin:clamp(12px, 3vh, 36px) 0 6px; }
.codes-xl .code-box { padding:clamp(12px, 2vw, 24px) clamp(16px, 2.6vw, 34px); border-radius:22px; align-items:center; }
.codes-xl .code-box small { font-size:clamp(14px, 1.6vw, 22px); }
.codes-xl .code-box b { gap:clamp(6px, 1vw, 12px); }
.codes-xl .code-box b span { font-size:clamp(44px, 8vw, 128px); min-width:.9em; padding:clamp(4px, 1vw, 12px) clamp(6px, 1vw, 14px); border-radius:14px; }
@media print { .code-box { box-shadow:none; -webkit-print-color-adjust:exact; print-color-adjust:exact; } }
.codes { flex-wrap:nowrap; }
.codes-sm .code-box b { gap:0; } .codes-sm .code-box b span { background:none; padding:0; min-width:0; letter-spacing:.04em; }
.codes-sm .code-box { padding:3px 8px 5px; }
.codes-xl .code-box b span { font-size:clamp(34px, 5.2vw, 112px); padding:clamp(3px, .6vw, 10px) clamp(4px, .7vw, 12px); }
.codes-xl .code-box b { gap:clamp(4px, .6vw, 10px); }
@media (max-width:700px) { .codes { flex-wrap:wrap; } }

/* Sertifikat v8: A4 albom (297×210 mm) — ekranda ham, PDF da ham bir xil; barcha o'lchamlar sahifa kengligiga nisbatan (cqw) */
.cert-stage { container-type:inline-size; max-width:1050px; margin:0 auto; }
.certificate { aspect-ratio:297 / 210; width:100%; padding:2.2cqw !important; border-radius:6px; box-shadow:var(--elev-2, var(--shadow-lg)); color:#1f2937;
  background:radial-gradient(circle at 50% 45%, #fffdf6 0%, #fbf6e8 60%, #f3ead2 100%) !important; position:relative; overflow:hidden; font-family:"Segoe UI", "Inter", Arial, sans-serif; }
.certificate::before { content:""; position:absolute; inset:0; opacity:.5; pointer-events:none;
  background:repeating-radial-gradient(circle at 0 0, transparent 0 1.2cqw, rgba(199,162,74,.08) 1.2cqw 1.3cqw), repeating-radial-gradient(circle at 100% 100%, transparent 0 1.2cqw, rgba(30,58,138,.06) 1.2cqw 1.3cqw); }
.cert-frame { position:relative; height:100%; border:.35cqw solid #1e3a8a; outline:.12cqw solid #c7a24a; outline-offset:-1cqw; padding:2.4cqw 5cqw 1.6cqw;
  display:flex; flex-direction:column; align-items:center; text-align:center; }
.cert-corner { position:absolute; width:5cqw; height:5cqw; border:.35cqw solid #c7a24a; }
.cert-corner.tl { top:1.6cqw; left:1.6cqw; border-right:0; border-bottom:0; } .cert-corner.tr { top:1.6cqw; right:1.6cqw; border-left:0; border-bottom:0; }
.cert-corner.bl { bottom:1.6cqw; left:1.6cqw; border-right:0; border-top:0; } .cert-corner.br { bottom:1.6cqw; right:1.6cqw; border-left:0; border-top:0; }
.cert-head { width:100%; display:flex; justify-content:space-between; align-items:center; }
.cert-logo { display:flex; align-items:center; gap:1cqw; text-align:left; color:#1e3a8a; }
.cert-logo .logo { width:4.2cqw; height:4.2cqw; font-size:2cqw; border-radius:1cqw; }
.cert-logo b { display:block; font-size:1.6cqw; } .cert-logo small { display:block; font-size:1cqw; color:#6b7280; }
.cert-no { font-size:1.1cqw; color:#6b7280; } .cert-no .mono { color:#1e3a8a; font-weight:700; }
.cert-kicker { font-family:Georgia, "Times New Roman", serif; font-size:5.2cqw; font-weight:700; letter-spacing:.9cqw; line-height:1; margin:1.2cqw 0 .3cqw;
  background:linear-gradient(180deg, #1e3a8a, #3b5bdb); -webkit-background-clip:text; background-clip:text; color:transparent; }
.cert-sub { font-size:1.15cqw; letter-spacing:.35cqw; text-transform:uppercase; color:#b08a2e; font-weight:600; }
.cert-lead { margin:.6cqw 0 0; font-size:1.35cqw; color:#4b5563; }
.cert-name { font-family:Georgia, "Times New Roman", serif; font-style:italic; font-size:3.6cqw; font-weight:700; color:#111827; line-height:1.15; margin:.5cqw 0 0;
  padding:0 4cqw .4cqw; border-bottom:.15cqw solid #c7a24a; max-width:90%; }
.cert-text { margin:.8cqw 0 0; font-size:1.45cqw; max-width:70cqw; color:#1f2937; }
.cert-score { display:flex; gap:2cqw; margin:1.4cqw 0 0; }
.cert-score > div { min-width:11cqw; padding:.8cqw 1.4cqw; border-radius:1cqw; background:rgba(255,255,255,.7); border:.1cqw solid #e5d6ad; }
.cert-score b { display:block; font-size:2.4cqw; color:#1e3a8a; line-height:1.1; } .cert-score b small { font-size:1.3cqw; color:#6b7280; }
.cert-score span { color:#6b7280; font-size:1cqw; text-transform:uppercase; letter-spacing:.15cqw; }
.cert-score .cert-mark { background:linear-gradient(135deg, #1e3a8a, #3b5bdb); border-color:transparent; } .cert-mark b, .cert-mark span { color:#fff !important; }
.cert-foot { width:100%; display:flex; justify-content:space-between; align-items:flex-end; margin-top:auto; }
.cert-sign { width:20cqw; display:flex; flex-direction:column; gap:.3cqw; } .cert-sign b { font-size:1.4cqw; border-bottom:.1cqw solid #374151; padding-bottom:.3cqw; }
.cert-sign span { font-size:1cqw; color:#6b7280; }
.cert-seal { width:9cqw; height:9cqw; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.2cqw;
  background:radial-gradient(circle, #e9c46a 0%, #c7a24a 70%, #a8842e 100%); color:#fff; box-shadow:0 0 0 .4cqw #fff8e1, 0 0 0 .55cqw #c7a24a; }
.cert-seal i { font-size:3.4cqw; } .cert-seal span { font-size:.75cqw; font-weight:700; letter-spacing:.1cqw; max-width:7cqw; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cert-verify { font-size:.9cqw; margin:.8cqw 0 0; color:#6b7280; }
@media print {
  @page { size:A4 landscape; margin:0; }
  html, body.cert-mode { background:#fff !important; margin:0; padding:0; }
  body.cert-mode main, body.cert-mode .content-wrapper { padding:0 !important; margin:0 !important; max-width:none !important; }
  .cert-stage { width:297mm; max-width:none; margin:0; }
  .certificate { width:297mm; height:210mm; aspect-ratio:auto; box-shadow:none; border-radius:0; page-break-inside:avoid; break-inside:avoid;
    -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .certificate * { -webkit-print-color-adjust:exact; print-color-adjust:exact; }
}
.cert-body { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; width:100%; }
.cert-kicker { font-size:6cqw; } .cert-name { font-size:4cqw; margin-top:.8cqw; } .cert-text { font-size:1.6cqw; margin-top:1.2cqw; }
.cert-lead { font-size:1.5cqw; margin-top:1cqw; } .cert-score { margin-top:2cqw; } .cert-score b { font-size:2.8cqw; }
.cert-foot { margin-top:0; }
.cert-kicker { background:none; -webkit-background-clip:border-box; background-clip:border-box; color:#1e3a8a; text-shadow:0 .15cqw 0 rgba(199,162,74,.45); }

/* Jadval ustidagi Excel / PDF tugmalari */
.table-tools { display:flex; justify-content:flex-end; gap:6px; margin:0 0 6px; }
.tt-btn { min-height:30px !important; padding:3px 11px !important; font-size:.8rem !important; font-weight:600; border-radius:6px; background:var(--card) !important; color:var(--text) !important;
  border:1px solid var(--stroke, var(--line)) !important; box-shadow:var(--elev-1, none) !important; }
.tt-btn:hover { background:var(--soft) !important; }
.tt-xls i { color:#107c41; } .tt-pdf i { color:#d13438; }
@media print {
  body.print-one * { visibility:hidden !important; }
  body.print-one .main-header, body.print-one .main-sidebar, body.print-one .main-footer, body.print-one .table-tools { display:none !important; }
  body.print-one .print-target, body.print-one .print-target * { visibility:visible !important; }
  body.print-one .print-target { position:absolute !important; left:0; top:0; width:100%; overflow:visible !important; border:0 !important; box-shadow:none !important; background:#fff !important; }
  body.print-one .print-target::before { content:attr(data-print-title); display:block; font-size:16pt; font-weight:700; margin:0 0 8pt; }
  body.print-one .print-target table { width:100%; font-size:9pt; }
  body.print-one .print-target th, body.print-one .print-target td { border:1px solid #999 !important; padding:3pt 5pt !important; }
  body.print-one .print-target input[type=checkbox], body.print-one .print-target button { display:none !important; }
  body.print-one .content-wrapper, body.print-one main { margin:0 !important; padding:0 !important; }
}
.seg-tabs { display:flex; gap:4px; padding:4px; margin:10px 0 16px; border-radius:10px; background:color-mix(in srgb, var(--text) 6%, transparent); }
.seg-tabs a { flex:1; text-align:center; padding:8px 10px; border-radius:7px; font-weight:600; font-size:.88rem; color:var(--muted); text-decoration:none !important; }
.seg-tabs a.on { background:var(--card); color:var(--text); box-shadow:var(--elev-1, var(--shadow)); }
.steps-mini { margin:0 0 14px; padding-left:20px; color:var(--muted); font-size:.9rem; } .steps-mini li { margin:4px 0; }
.code-big { font-family:"Cascadia Mono", Consolas, monospace; font-size:1.8rem; font-weight:800; letter-spacing:.12em; color:var(--brand); }
.parent-code-box { display:flex; flex-direction:column; align-items:flex-start; gap:4px; margin:14px 0; padding:14px 16px; border-radius:12px;
  background:color-mix(in srgb, var(--brand) 8%, var(--card)); border:1px dashed color-mix(in srgb, var(--brand) 45%, transparent); }
.parent-code-box span { font-weight:600; }

/* Savol media ro'yxati */
.qmedia-edit[data-media-box] { margin-top:6px; padding:10px 12px; border:1px dashed var(--line); border-radius:var(--radius); }
.qmedia-edit .qm-title { margin-bottom:6px; }
.qm-list { display:flex; flex-wrap:wrap; gap:10px; align-items:flex-start; }
.qm-list:empty { display:none; }
.qm-list + .qm-list, .qm-list + .row { margin-top:8px; }
.qm-item { display:flex; flex-direction:column; gap:4px; max-width:260px; }
.qm-item .qmedia { margin:0; max-height:160px; }
.qm-item audio.qmedia { width:240px; }
.qm-item .qmedia.yt { width:240px; }
.qm-item .check { margin:0; }
.qmedia-list { display:flex; flex-direction:column; }
img.qmedia { height:auto; object-fit:contain; object-position:left center; }
.qm-item img.qmedia { width:auto; }
.qm-hint { font-size:.85em; }
.opt-row .opt-img { display:inline-flex; align-items:center; gap:2px; }
.opt-row .opt-img:empty { display:none; }
.opt-row .opt-img img { max-height:44px; max-width:90px; border-radius:6px; border:1px solid var(--line); }
.opt-row .opt-img-pick { cursor:pointer; padding:4px 6px; color:var(--muted); margin:0; flex:0 0 auto; }
.opt-row .opt-img-pick:hover { color:var(--brand); }
.opt-row.drop { outline:2px dashed var(--brand); outline-offset:2px; border-radius:6px; }
img.qmedia.opt-img { display:block; max-height:180px; max-width:min(100%, 320px); margin:6px 0 2px; }

/* =====================================================================
   Sinflarga test tayinlash (teacher/tests.php, assets/assign.js)
   1-2-3 qadamlar bitta sahifada, sinflar parallel bo'yicha, pastda yopishqoq panel.
   ===================================================================== */
.assign .as-step { position:relative; padding:14px 18px 10px; border-color:var(--line); background:var(--card); }
.assign .as-step > legend { display:flex; align-items:center; gap:8px; font-size:1.02rem; }
.as-n { display:inline-grid; place-items:center; width:26px; height:26px; border-radius:50%; background:var(--brand); color:var(--brand-text, #fff); font-size:.85rem; font-weight:700; flex:none; }
.as-note { margin:0 0 12px; padding:9px 12px; border-radius:var(--radius); background:var(--brand-2); color:var(--brand); font-weight:500; }
.as-testinfo { margin:2px 0 8px; font-weight:500; }
.as-tools { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 12px; }
.as-count { margin-left:auto; padding:4px 12px; border-radius:999px; background:var(--soft); border:1px solid var(--line); font-weight:600; font-size:.9rem; }
.as-hint { flex-basis:100%; color:var(--muted); font-size:.88rem; }
.as-hint::before { content:"\f05a"; font:900 .85em "Font Awesome 6 Free"; margin-right:6px; color:var(--brand); }
.as-grades { display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:12px; margin-bottom:8px; }
.as-class .hint-ico { display:none; }
.as-grade { border:1px solid var(--line); border-radius:var(--radius); padding:10px 12px; background:var(--soft); transition:border-color .15s; }
.as-grade.is-full { border-color:var(--brand); }
.as-grade[hidden] { display:none; }
.as-ghead { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; }
.as-ghead button.on { background:var(--brand); border-color:var(--brand); color:#fff; }
.as-classes { display:flex; flex-wrap:wrap; gap:6px; }
label.as-class { position:relative; display:inline-flex; align-items:center; gap:7px; margin:0; padding:6px 11px 6px 9px; border:1px solid var(--line); border-radius:8px;
  background:var(--card); cursor:pointer; font-weight:500; user-select:none; transition:border-color .12s, background .12s; }
label.as-class:hover { border-color:var(--brand); }
label.as-class input { margin:0; accent-color:var(--brand); }
label.as-class.is-on { border-color:var(--brand); background:var(--brand-2); color:var(--text); box-shadow:inset 0 0 0 1px var(--brand); }
.as-cmeta { color:var(--muted); font-weight:400; font-size:.78rem; white-space:nowrap; }
.as-cmeta i { font-size:.7rem; margin-left:2px; }
label.as-class.is-busy, label.as-class.is-off { opacity:.55; cursor:not-allowed; border-style:dashed; }
label.as-class .as-busy { margin-left:2px; background:var(--warn-bg); color:var(--warn); border-color:transparent; font-size:.7rem; }
.as-times > label { flex:1 1 220px; }
.as-chips { display:flex; flex-wrap:wrap; gap:5px; margin-top:6px; }
.as-chips button { min-height:28px; padding:2px 10px; border-radius:999px; font-size:.82rem; font-weight:500; }
.as-chips button.on { background:var(--brand); border-color:var(--brand); color:#fff; }
input.as-bad { border-color:var(--err) !important; box-shadow:0 0 0 3px color-mix(in srgb, var(--err) 18%, transparent); }
.assign .more-opts { margin-bottom:12px; }
.as-bar { position:sticky; bottom:0; z-index:5; display:flex; align-items:center; gap:14px; margin:14px -6px 0; padding:12px 16px;
  border:1px solid var(--line); border-radius:12px; background:var(--acrylic, var(--card)); backdrop-filter:blur(18px) saturate(150%); -webkit-backdrop-filter:blur(18px) saturate(150%);
  box-shadow:var(--elev-2, var(--shadow-lg)); }
.as-sum { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.as-sum b { font-size:1.1rem; font-weight:650; }
.as-sum .muted { font-size:.88rem; overflow:hidden; text-overflow:ellipsis; }
.as-bar button.big { flex:none; min-width:180px; opacity:.75; }
.as-bar.is-ready { border-color:color-mix(in srgb, var(--brand) 45%, var(--line)); }
.as-bar.is-ready button.big { opacity:1; }
.as-bar.is-ready .as-sum b { color:var(--brand); }
.as-bar.is-warn .as-sum .muted { color:var(--err); }
.as-shake { animation:shake .4s; }
[data-theme="kontrast"] .as-bar { background:var(--card); backdrop-filter:none; border:2px solid #000; }
@media (max-width:640px) {
  .assign .as-step { padding:10px 12px 6px; }
  .as-count { margin-left:0; }
  .as-bar { flex-direction:column; align-items:stretch; gap:8px; margin:12px -4px 0; padding:10px 12px; }
  .as-bar button.big { width:100%; min-width:0; }
}

/* Qurilmalar, joylashuv, kamera, qo'shimcha vaqt, yordamchi vositalar */
table.devices td { vertical-align: top; }
table.devices small.muted { font-size: 11px; }
.geo-status { margin: 6px 0; font-size: 13px; }
.geo-status.ok { color: var(--ok); }
.geo-status.err { color: var(--err); font-weight: 600; }
.cam-note { display: flex; gap: 8px; align-items: center; padding: 8px 12px; border-radius: var(--radius); background: var(--soft); font-size: 14px; }
.cam-note.ok { background: var(--ok-bg); }
.cam-note.off { background: var(--warn-bg); }
.cam-box { position: fixed; right: 12px; bottom: 12px; z-index: 2500; width: 132px; height: 99px; border-radius: 10px; overflow: hidden; background: #000; box-shadow: var(--shadow-lg); border: 2px solid var(--card); }
.cam-box video { width: 100%; height: 100%; object-fit: cover; transform: scaleX(-1); }
.cam-box .cam-dot { position: absolute; top: 6px; left: 6px; width: 9px; height: 9px; border-radius: 50%; background: #e53935; box-shadow: 0 0 0 2px rgba(255,255,255,.7); animation: camPulse 1.6s infinite; }
.cam-box.off { opacity: .4; }
@keyframes camPulse { 50% { opacity: .35; } }
.snap-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; margin-top: 10px; }
.snap-grid a { display: block; border-radius: 8px; overflow: hidden; border: 1px solid var(--line); background: var(--soft); text-decoration: none; }
.snap-grid img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.snap-grid span { display: block; padding: 4px 8px; font-size: 12px; color: var(--muted); }
.extra-time-bar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.extra-time-bar > span:first-child { margin-right: auto; }
.inline-num { display: inline-flex; align-items: center; gap: 6px; margin: 0; }
.inline-num input { width: 80px; }
.net-banner.ok { background: var(--ok); }
.exam-aids { display: inline-flex; gap: 6px; }
.exam-aids button { display: inline-flex; gap: 6px; align-items: center; }
@media (max-width: 1100px) { .exam-aids button span { display: none; } }
.tool-win { position: fixed; z-index: 2600; right: 16px; top: 165px; background: var(--card); color: var(--text); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow-lg); max-width: calc(100vw - 24px); max-height: calc(100vh - 24px); display: flex; flex-direction: column; }
.tool-win[hidden] { display: none; }
.tool-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 12px; cursor: move; border-bottom: 1px solid var(--line); background: var(--soft); border-radius: 12px 12px 0 0; user-select: none; touch-action: none; }
.tool-x { background: none; border: 0; color: var(--text); font-size: 22px; line-height: 1; padding: 0 4px; cursor: pointer; min-height: 0; }
.tool-body { padding: 12px; overflow: auto; }
.tool-calc { width: 330px; }
.calc-hist { max-height: 72px; overflow: auto; font-size: 12px; color: var(--muted); text-align: right; }
.calc-in { width: 100%; font: 600 20px/1.3 ui-monospace, Consolas, monospace; text-align: right; user-select: text !important; }
.calc-out { text-align: right; font: 600 16px ui-monospace, Consolas, monospace; color: var(--brand); min-height: 22px; margin: 4px 0 8px; }
.calc-pad { display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; }
.calc-k { padding: 10px 0; font-weight: 600; background: var(--soft); color: var(--text); border: 1px solid var(--line); border-radius: 8px; min-height: 0; }
.calc-k:hover { border-color: var(--brand); }
.calc-k.num { background: var(--card); }
.calc-k.eq { background: var(--brand); color: #fff; border-color: var(--brand); }
.tool-periodic { width: 920px; left: 16px; right: auto; }
.pt-info { min-height: 24px; margin-bottom: 8px; font-size: 14px; }
.pt-grid { display: grid; grid-template-columns: repeat(18, minmax(40px, 1fr)); grid-template-rows: repeat(7, auto) 10px auto auto; gap: 3px; }
.pt-el { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 3px 1px; min-height: 0; border: 1px solid rgba(0,0,0,.12); border-radius: 5px; color: #1b1b1b; font: inherit; cursor: pointer; line-height: 1.1; }
.pt-el small { font-size: 9px; align-self: flex-start; padding-left: 3px; }
.pt-el b { font-size: 15px; }
.pt-el i { font-style: normal; font-size: 9px; }
.pt-el:hover { outline: 2px solid var(--brand); z-index: 1; }
.pt-ref { font-size: 10px; cursor: default; }
.pt-alk { background: #ffb3a7; } .pt-alky { background: #ffd8a8; } .pt-trans { background: #ffe9a8; } .pt-post { background: #cfe8c4; }
.pt-metal { background: #c6e6e0; } .pt-nonm { background: #c9e3ff; } .pt-hal { background: #d9d2ff; } .pt-noble { background: #f2c6f0; }
.pt-lan { background: #ffcfe0; } .pt-act { background: #f6d1d1; }

/* ---------- Umumiy manba: bir nechta savol uchun bitta matn (imtihon, natija, muharrir) ---------- */
.shared-source { background: var(--soft); border: 1px solid var(--line); border-left: 4px solid var(--brand); border-radius: var(--radius); padding: 10px 14px; margin-bottom: 14px; color: var(--text); }
.shared-source > summary { cursor: pointer; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; color: var(--muted); font-size: .95rem; }
.shared-source > summary b { color: var(--text); }
.shared-source > summary i { color: var(--brand); }
.shared-source .src-title { flex-basis: 100%; color: var(--text); font-weight: 600; font-size: 1.05rem; margin-top: 4px; }
.shared-source[open] > summary { margin-bottom: 8px; }
.shared-source .src-body { font-size: 1.05rem; line-height: 1.6; margin-bottom: 8px; }
.shared-source .src-body p { margin: 0 0 .7em; }
.src-table-wrap { overflow-x: auto; margin: 0 0 .7em; }
.src-table { border-collapse: collapse; width: auto; min-width: 50%; background: var(--card); }
.src-table th, .src-table td { border: 1px solid var(--line); padding: 5px 10px; text-align: left; vertical-align: top; }
.src-table th { background: var(--brand-2); }
.exam-mode .shared-source { user-select: none; -webkit-user-select: none; }
.source-group { margin-bottom: 14px; }
.source-group > .shared-source { background: var(--card); }
form#exam.one .source-group:not(:has(.question.current)) { display: none; }
@media (min-width: 1000px) {
  /* Keng ekranda: manba chapda (aylantirilsa ham ko'rinib turadi), savollar o'ngda */
  .source-group { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
  .source-group > .shared-source { position: sticky; top: 150px; max-height: calc(100vh - 170px); overflow: auto; margin-bottom: 0; }
}
/* Muharrir */
.src-section > .muted { margin-top: 0; }
.srcblock { border-left: 4px solid var(--brand); padding-top: 12px; }
.srcblock.has-err { border-left-color: var(--err); }
.srcblock > input[name$="[title]"], .srcblock > textarea { width: 100%; margin-bottom: 8px; }
.srcblock [data-src-qs] { font-weight: 600; color: var(--brand); }
.srcblock [data-src-qs].bad { color: var(--err); }
.src-attach { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; }
.src-attach label { display: inline-flex; align-items: center; gap: 6px; margin: 0; }
.src-attach input { width: 9em; margin: 0; }
.qblock-head .qsrc { display: inline-flex; align-items: center; gap: 4px; margin: 0; color: var(--brand); font-weight: 400; }
.qblock-head .qsrc[hidden] { display: none; }
.qblock.in-src { border-left-color: var(--brand); box-shadow: inset 4px 0 0 var(--brand-2); }

/* ---------- Foydalanuvchilar filtri va login-parollar ---------- */
.role-tabs { display:flex; flex-wrap:wrap; gap:6px; margin:6px 0 10px; }
.role-tabs a { display:inline-flex; align-items:center; gap:6px; padding:7px 12px; border-radius:999px; border:1px solid var(--line); background:var(--card);
  color:var(--text); font-weight:600; font-size:.88rem; text-decoration:none !important; }
.role-tabs a b { min-width:22px; padding:1px 7px; border-radius:999px; text-align:center; font-size:.78rem; background:color-mix(in srgb, var(--text) 8%, transparent); }
.role-tabs a.on { background:var(--brand); border-color:var(--brand); color:#fff; } .role-tabs a.on b { background:rgba(255,255,255,.25); }
.filter-bar { flex-wrap:wrap; } .filter-bar input[type=search] { flex:1 1 220px; }
.cred-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 14px; }
.cred-actions .seg-tabs { margin:0; flex:0 0 auto; } .cred-actions .seg-tabs a { flex:0 0 auto; }
.pager { align-items:center; } .pager .per-page { border:0 !important; background:none; margin-left:auto; padding:6px 0 6px 14px; color:var(--muted); font-size:.88rem; }
.pager .per-page a { display:inline-block; min-width:0; margin:0; padding:3px 9px; border:1px solid var(--line); border-radius:7px; }
.pager .per-page a.on { background:var(--brand); color:#fff; border-color:var(--brand); }
.cred-table td code { font-size:.95rem; user-select:all; }
.cred-group { margin:0 0 18px; } .cred-group-h { margin:6px 0 10px; }
.cred-cards { display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:10px; }
.cred-card { padding:10px 12px; border:1px dashed var(--line); border-radius:10px; background:var(--card); break-inside:avoid; page-break-inside:avoid; }
.cred-card .cc-top { display:flex; flex-direction:column; margin-bottom:6px; } .cred-card .cc-top span { color:var(--muted); font-size:.8rem; }
.cred-card dl { display:grid; grid-template-columns:auto 1fr; gap:2px 10px; margin:0; font-size:.88rem; }
.cred-card dt { color:var(--muted); } .cred-card dd { margin:0; word-break:break-all; } .cred-card code { font-size:.95rem; font-weight:700; }
@media print {
  @page { size:A4; margin:8mm; }
  .cred-group { break-before:page; page-break-before:always; margin:0; } .cred-group:first-of-type { break-before:auto; page-break-before:auto; }
  .cred-cards { grid-template-columns:repeat(3, 1fr); gap:3mm; }
  .cred-card { height:62mm; box-sizing:border-box; border:1px dashed #888; background:#fff; color:#000; font-size:11pt; }
  .cred-card .cc-top span, .cred-card dt { color:#444; }
  .cred-cards > .cred-card:nth-child(12n+1):not(:first-child) { break-before:page; page-break-before:always; }
}

/* ---------- Radiotugmalar to'ri (fan va boshqa ko'p variantli tanlovlar) ---------- */
.radios { margin:4px 0 0; } .radios .pick-search { margin:0 0 8px; max-width:360px; }
.radios-items { display:grid; grid-template-columns:repeat(auto-fill, minmax(190px, 1fr)); gap:6px; max-height:300px; overflow:auto; padding:2px; }
.radios .radio { display:flex; align-items:center; justify-content:flex-start; gap:9px; width:100%; min-height:36px; padding:6px 11px; text-align:left; border:1px solid var(--line); border-radius:9px;
  background:var(--card); color:var(--text); font-weight:500; font-size:.92rem; box-shadow:none; }
.radios .radio::before { content:''; flex:none; width:16px; height:16px; border-radius:50%; border:2px solid var(--muted); box-sizing:border-box; background:var(--card); }
.radios .radio:hover:not(:disabled) { border-color:var(--brand); color:var(--text); background:var(--card); }
.radios .radio.on { border-color:var(--brand); background:color-mix(in srgb, var(--brand) 10%, var(--card)); font-weight:600; }
.radios .radio.on::before { border:5px solid var(--brand); }
.radios .radio:disabled { opacity:.45; cursor:not-allowed; }
.radios.bad .radio { border-color:var(--red, #dc2626); }
:is(label, .field):has(> .radios) { grid-column:1 / -1; flex:1 1 100% !important; }
.radios .pick-search { width:100%; }

/* ---------- E'tirozlar ---------- */
.appeals-card h2 { margin-top:0; }
.appeal-item { border-top:1px solid var(--line, #e5e7eb); padding:10px 0; }
.appeal-item:first-of-type { border-top:0; }
.appeal-head { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.appeal-reason { white-space:normal; overflow-wrap:anywhere; margin:6px 0; }
.appeal-form { border-top:1px solid var(--line, #e5e7eb); margin-top:10px; padding-top:10px; text-align:left; }
.appeal-facts { display:grid; grid-template-columns:max-content 1fr; gap:6px 16px; margin:0 0 10px; }
.appeal-facts dt { color:var(--muted); }
.appeal-facts dd { margin:0; }
.appeal-actions { display:flex; flex-wrap:wrap; gap:8px; }
.appeals-table .appeal-reason-cell { max-width:280px; overflow-wrap:anywhere; }
.appeals-table tr.appeal-new td { font-weight:600; }
.bulkbar .appeal-bulk-reply { min-width:200px; flex:1 1 200px; }
.appeal-mini { list-style:none; padding:0; margin:0; }
.appeal-mini li { padding:4px 0; }
@media (max-width:600px) { .appeal-facts { grid-template-columns:1fr; } .appeal-facts dt { margin-top:6px; } }
.exam-appeal[hidden] { display:none; }
.warn-overlay.exam-appeal > div { max-width:520px; width:100%; text-align:left; border-top-color:var(--brand, #2f5bea); }
.exam-appeal-reasons { display:grid; gap:6px; margin:10px 0; }
.exam-appeal-err { color:var(--err); margin:6px 0 0; }
.q-appeal { float:right; font-size:.9em; }
.q-appeal-sent { color:var(--ok); font-weight:600; }
.q-appeal-btn { color:var(--muted); }

/* ---------- Bo'lim ranglari: bilish (ko'k), qo'llash (yashil), mulohaza (binafsha) va qo'shimcha bo'limlar ---------- */
.part-c0 { --pc:#2563eb; } .part-c1 { --pc:#16a34a; } .part-c2 { --pc:#9333ea; } .part-c3 { --pc:#d97706; } .part-c4 { --pc:#db2777; } .part-c5 { --pc:#0d9488; } .part-cx { --pc:var(--muted); }
.tag.part { background:color-mix(in srgb, var(--pc) 14%, var(--card)); color:color-mix(in srgb, var(--pc) 85%, var(--text)); border:1px solid color-mix(in srgb, var(--pc) 40%, transparent); font-weight:600; }
.card.question[class*="part-c"] { border-left:4px solid var(--pc); }
th[class*="part-c"] { background:color-mix(in srgb, var(--pc) 16%, var(--card)) !important; color:color-mix(in srgb, var(--pc) 80%, var(--text)) !important; }
td[class*="part-c"] { background:color-mix(in srgb, var(--pc) 6%, transparent); }
tr[class*="part-c"] td:first-child { border-left:4px solid var(--pc); }
.stat[class*="part-c"] { border-top:4px solid var(--pc); } .stat[class*="part-c"] b { color:var(--pc); } .stat[class*="part-c"] .bar span { background:var(--pc); }
section.qpart[class*="part-c"] { border-left:4px solid var(--pc); padding-left:12px; } section.qpart[class*="part-c"] .qpart-no { background:var(--pc); color:#fff; }
.part-score { display:flex; flex-wrap:wrap; gap:10px; margin:10px 0 16px; }
.part-score .ps { flex:1 1 140px; padding:10px 14px; border-radius:10px; border:1px solid var(--line); border-top:4px solid var(--pc, var(--brand)); background:var(--card); }
.part-score .ps span { display:block; color:var(--muted); font-size:.85rem; } .part-score .ps b { font-size:1.4rem; color:var(--pc, var(--brand)); }
.part-score .ps-total { --pc:var(--text); }
@media print { th[class*="part-c"], td[class*="part-c"], .tag.part { -webkit-print-color-adjust:exact; print-color-adjust:exact; } }
.tool-tog.on { background:var(--teal, #0d9488); border-color:var(--teal, #0d9488); color:#fff; }

/* ---------- Hisobotlar va jonli monitoring ---------- */
.hub-filters .date-range { display:inline-flex; align-items:center; gap:6px; flex-wrap:wrap; }
.hub-filters input[type=search] { min-width:220px; }
.hub-actions { display:flex; gap:4px; align-items:center; }
.icon-link { display:inline-grid; place-items:center; width:30px; height:30px; border-radius:8px; color:var(--muted); border:1px solid var(--line); background:var(--card); }
.icon-link:hover { color:var(--brand); border-color:var(--brand); text-decoration:none; }
.pct-cell { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; } .pct-cell .bar { width:70px; }
td.up, small.up { color:var(--ok); font-weight:600; } td.down, small.down { color:var(--err); font-weight:600; }
.rep-nav { margin:.5rem 0 1rem; } .rep-nav a i { margin-right:4px; }
.compare-table tr.current td { background:color-mix(in srgb, var(--brand) 7%, transparent); }
.heat-table td.heat { text-align:center; font-weight:600; min-width:64px; }
.heat.h-ok { background:color-mix(in srgb, var(--ok) 16%, transparent); } .heat.h-mid { background:color-mix(in srgb, var(--amber) 16%, transparent); }
.heat.h-bad { background:color-mix(in srgb, var(--err) 18%, transparent); color:var(--err); }
.small-note { font-size:.86rem; } .small-link { font-size:.85rem; font-weight:500; margin-left:8px; }
.mon-live { display:inline-flex; align-items:center; gap:6px; font-size:.85rem; color:var(--muted); }
.mon-live i { color:var(--ok); font-size:.6rem; animation:mon-pulse 2s infinite; } .mon-live.off i { color:var(--err); animation:none; }
@keyframes mon-pulse { 50% { opacity:.25; } }
.mon-counts { display:flex; flex-wrap:wrap; gap:6px; margin:6px 0 10px; }
.mon-counts .mc { padding:3px 10px; border-radius:999px; border:1px solid var(--line); background:var(--card); font-size:.85rem; color:var(--muted); }
.mon-counts .mc b { color:var(--text); } .mon-counts .mc.zero { opacity:.55; }
.mc.mc-live { border-color:var(--ok); } .mc.mc-live b { color:var(--ok); } .mc.mc-err { border-color:var(--err); } .mc.mc-err b { color:var(--err); }
.mc.mc-warn { border-color:var(--amber); } .mc.mc-warn b { color:var(--amber); } .mc.mc-ok b { color:var(--info); }
.mc.zero.mc-err, .mc.zero.mc-warn, .mc.zero.mc-live { border-color:var(--line); }
.mon-group .mon-head { display:flex; gap:16px; align-items:flex-start; flex-wrap:wrap; }
.mon-group h2 { margin:0 0 4px; font-size:1.2rem; } .mon-group .mon-head p { margin:0; }
.mon-class { border-top:1px solid var(--line); padding-top:12px; margin-top:12px; }
.mon-class-head { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.mon-class-head h3 { margin:0; font-size:1.05rem; } .mon-mini { color:var(--muted); font-size:.85rem; }
.mon-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:10px; }
.mon-st { --st:var(--line); position:relative; display:grid; grid-template-columns:96px 1fr; gap:4px 10px; padding:8px; border:1px solid var(--line); border-left:4px solid var(--st); border-radius:10px; background:var(--card); min-width:0; }
.mon-st.st-run { --st:var(--ok); } .mon-st.st-locked { --st:var(--err); background:color-mix(in srgb, var(--err) 6%, var(--card)); }
.mon-st.st-offline { --st:var(--amber); background:color-mix(in srgb, var(--amber) 7%, var(--card)); } .mon-st.st-done { --st:var(--info); } .mon-st.st-none { opacity:.75; }
.mon-st.has-warn:not(.st-done)::after { content:"⚠"; position:absolute; top:4px; right:8px; color:var(--amber); }
.mon-snap { position:relative; display:grid; place-items:center; width:96px; height:72px; border-radius:8px; overflow:hidden; background:var(--soft); color:var(--muted); grid-row:span 2; }
.mon-snap img { width:100%; height:100%; object-fit:cover; display:block; }
.mon-snap span { position:absolute; right:3px; bottom:3px; background:rgba(0,0,0,.6); color:#fff; font-size:.7rem; padding:0 5px; border-radius:6px; }
.mon-info { display:flex; flex-direction:column; gap:2px; min-width:0; font-size:.86rem; }
.mon-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding-right:14px; }
.mon-tag { align-self:flex-start; } .tag.t-warn { background:var(--amber); color:#fff; } .tag.t-ok { background:var(--info); color:#fff; } .tag.t-none { background:var(--soft); color:var(--muted); }
.mon-line { color:var(--muted); } .mon-line.warn { color:var(--warn); font-weight:600; } .mon-line .warn { color:var(--warn); font-weight:700; }
.mon-ev { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .mon-ev.bad { color:var(--err); }
[data-left].low { color:var(--err); }
.mon-act { grid-column:1 / -1; display:flex; gap:4px; flex-wrap:wrap; align-items:center; margin:0; }
.mon-act button { min-height:28px; padding:2px 8px; font-size:.8rem; } .mon-act .icon-link { width:28px; height:28px; }
.nav-link[href$="teacher/monitor.php"] .badge { background:var(--ok); }
.snap-big { grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); }
.snap-person h3 { margin-top:0; }
.hub-actions { flex-wrap:wrap; min-width:190px; max-width:240px; } .icon-link.wide { width:auto; padding:0 8px; gap:4px; display:inline-flex; align-items:center; font-weight:600; }
@media (max-width:600px) { .mon-group .mon-head { flex-direction:column-reverse; } .mon-group .mon-head .codes { align-self:flex-start; } }
@media (max-width:600px) { .mon-grid { grid-template-columns:1fr; } .hub-filters input[type=search] { min-width:0; width:100%; } }
/* Sertifikatdagi QR kod */
.cert-qr { display:flex; align-items:center; gap:.8em; text-align:left; }
.cert-qr svg.qr { width:6.5cqw; height:6.5cqw; min-width:64px; min-height:64px; flex:none; }
.verify-ok .mono { font-size:.85em; opacity:.8; }
/* Platforma egasi (vazirlik / agentlik) */
.org-block { text-align:center; line-height:1.3; margin:0 0 .9rem; color:var(--text); }
.org-block small { display:block; font-size:.78rem; color:var(--muted); text-transform:uppercase; letter-spacing:.03em; }
.org-block b { display:block; font-size:.92rem; text-transform:uppercase; letter-spacing:.02em; }
.cert-org { text-align:center; line-height:1.25; margin-bottom:.6cqw; color:#1e3a8a; }
.cert-org small { display:block; font-size:1.05cqw; text-transform:uppercase; letter-spacing:.05em; color:#475569; }
.cert-org b { display:block; font-size:1.35cqw; text-transform:uppercase; letter-spacing:.04em; }
.cred-card { position:relative; } .cred-card svg.qr { float:right; width:64px; height:64px; margin:0 0 4px 8px; }
@media print { .cred-card svg.qr { width:22mm; height:22mm; } }
/* O'rnatish ustasi: hosting talablari ro'yxati */
.install-checks { list-style:none; padding:0; margin:0 0 1rem; display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:4px 12px; font-size:.9rem; }
.install-checks .ok i { color:var(--ok, #16a34a); } .install-checks .bad i { color:var(--danger, #dc2626); } .install-checks .warn i { color:#d97706; }
/* Jonli monitoring: «Yordam kutayotganlar» bo'limi */
.mon-need { display:inline-flex; align-items:center; gap:5px; font-size:.8rem; font-weight:600; padding:2px 8px; border-radius:999px; background:#fef3c7; color:#92400e; margin:2px 0; }
.mon-st.need-locked .mon-need, .mc.need-locked:not(.zero) { background:#fee2e2; color:#b91c1c; }
.mon-st.need-device .mon-need, .mc.need-device:not(.zero) { background:#ede9fe; color:#6d28d9; }
.mon-st.need-pin .mon-need, .mc.need-pin:not(.zero) { background:#e0f2fe; color:#0369a1; }
.mon-st.need-offline .mon-need, .mc.need-offline:not(.zero) { background:#f1f5f9; color:#475569; }
.mon-st.need-warn .mon-need, .mc.need-warn:not(.zero) { background:#fef3c7; color:#92400e; }
.mon-st.need-locked { border-color:#fca5a5; } .mon-st.need-device { border-color:#c4b5fd; } .mon-st.need-pin { border-color:#7dd3fc; }
.mon-ctx { color:var(--muted); font-size:.8rem; }
:root[data-theme="tun"] .mon-need, :root[data-theme="tun"] .mc[class*="need-"]:not(.zero) { filter:brightness(.85) saturate(1.2); }

/* ==================== Xodimlar chati (chat.php, assets/chat.js) ====================
   Faqat mavzu o'zgaruvchilari ishlatiladi: klassik, tun, ko'z, auto va kontrast mavzularida o'zi moslashadi. */
.chat { display:grid; grid-template-columns:320px minmax(0, 1fr); gap:14px; height:calc(100dvh - 190px); min-height:440px; }
.chat .card { margin:0; padding:0; display:flex; flex-direction:column; min-height:0; overflow:hidden; }
.chat-side-head { padding:14px 14px 4px; }
.chat-side-head h1 { margin:0; font-size:1.3rem; display:flex; align-items:center; gap:8px; }
.chat-side-head h1 i { color:var(--brand); }
.chat-find, .chat-school label { display:block; margin:8px 14px 0; font-size:.88rem; color:var(--muted); }
.chat-find input { margin:4px 0 0; width:100%; }
.chat-school { display:flex; align-items:flex-end; gap:6px; margin:0 14px 0 0; }
.chat-school label { flex:1; min-width:0; } .chat-school select { width:100%; margin:4px 0 0; }
.chat-school button { margin-bottom:2px; }
.chat-found { margin:6px 8px 0; border:1px solid var(--line); border-radius:var(--radius); background:var(--soft); max-height:260px; overflow:auto; }
.chat-found .chat-none { margin:10px 12px; font-size:.9rem; }
.chat-list { flex:1; overflow:auto; padding:8px 6px 10px; margin-top:8px; border-top:1px solid var(--line); }
.chat-item { display:flex; align-items:center; gap:10px; padding:8px; border-radius:var(--radius); color:var(--text) !important; text-decoration:none !important; min-width:0; }
.chat-item:hover { background:var(--soft); }
.chat-item.on { background:var(--brand-2); box-shadow:inset 3px 0 0 var(--brand); }
.chat-item-txt { display:flex; flex-direction:column; min-width:0; flex:1; line-height:1.25; }
.chat-item-txt b, .chat-item-txt small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.chat-item-sub { color:var(--muted); font-size:.74rem; }
.chat-item-prev { color:var(--muted); font-size:.82rem; }
.chat-item.has-new .chat-item-prev { color:var(--text); font-weight:600; }
.chat-item-side { display:flex; flex-direction:column; align-items:flex-end; gap:3px; flex:none; color:var(--muted); font-size:.75rem; }
.chat-item-side .badge { background:var(--err); color:#fff; font-size:.72rem; font-weight:700; padding:1px 7px; border-radius:10px; }
.chat-gico { background:var(--brand-grad); }
.chat-head { display:flex; align-items:center; gap:10px; padding:10px 14px; border-bottom:1px solid var(--line); }
.chat-head-txt { display:flex; flex-direction:column; min-width:0; flex:1; line-height:1.25; }
.chat-head-txt b, .chat-head-txt small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.chat-back { display:none !important; }
.chat-msgs { flex:1; overflow-y:auto; padding:14px; display:flex; flex-direction:column; gap:8px; background:var(--bg); overscroll-behavior:contain; }
.chat-more { align-self:center; }
.chat-empty { margin:auto; text-align:center; }
.chat-msg { display:flex; align-items:flex-end; gap:8px; max-width:min(78%, 680px); }
.chat-msg .avatar { width:30px; height:30px; font-size:.72rem; }
.chat-msg.mine { align-self:flex-end; flex-direction:row-reverse; }
.chat-bubble { background:var(--card); border:1px solid var(--line); border-radius:14px 14px 14px 4px; padding:7px 11px 5px; min-width:0; box-shadow:var(--shadow); }
.chat-msg.mine .chat-bubble { background:color-mix(in srgb, var(--brand) 13%, var(--card)); border-color:color-mix(in srgb, var(--brand) 30%, var(--line)); border-radius:14px 14px 4px 14px; }
.chat-who { font-size:.82rem; line-height:1.3; margin-bottom:2px; overflow:hidden; text-overflow:ellipsis; }
.chat-who b { color:var(--brand); } .chat-who small { color:var(--muted); }
.chat-text { white-space:pre-wrap; overflow-wrap:anywhere; word-break:break-word; }
.chat-text a { text-decoration:underline; }
.chat-text.del { color:var(--muted); font-style:italic; }
.chat-foot { display:flex; align-items:center; justify-content:flex-end; gap:8px; margin-top:2px; font-size:.72rem; color:var(--muted); }
.chat-edited { font-style:italic; }
.chat-acts { display:inline-flex; gap:8px; opacity:0; transition:opacity .15s; }
.chat-msg:hover .chat-acts, .chat-msg:focus-within .chat-acts { opacity:1; }
@media (hover:none) { .chat-acts { opacity:.75; } }
.chat-acts button.link { font-size:.78rem; color:var(--muted); } .chat-acts button.link:hover { color:var(--brand); }
.chat-acts button.link.danger:hover { color:var(--err); }
.chat-form { border-top:1px solid var(--line); padding:8px 10px; margin:0; background:var(--card); }
.chat-editing { display:flex; align-items:center; gap:8px; font-size:.85rem; color:var(--brand); padding:0 4px 6px; }
.chat-editing span { flex:1; } .chat-editing button.link { font-size:1.2rem; color:var(--muted); }
.chat-compose { display:flex; align-items:flex-end; gap:8px; }
.chat-compose textarea { flex:1; margin:0; resize:none; min-height:42px; max-height:180px; line-height:1.4; }
.chat-send { flex:none; width:44px; height:42px; min-height:42px; padding:0; border-radius:12px; }
.chat-ro { margin:0; padding:12px 14px; border-top:1px solid var(--line); }
.chat-head .mon-live { margin-left:auto; }
html[data-theme="kontrast"] .chat-bubble { border:2px solid #000; box-shadow:none; }
html[data-theme="kontrast"] .chat-msg.mine .chat-bubble { background:var(--brand-2); }
html[data-theme="kontrast"] .chat-acts { opacity:1; }
@media (max-width:860px) {
  .chat { grid-template-columns:1fr; height:calc(100dvh - 150px); }
  .chat.view-thread .chat-side { display:none; }
  .chat.view-list .chat-main { display:none; }
  .chat-back { display:inline-grid !important; }
  .chat-msg { max-width:92%; }
}
@media print { .chat { display:block; height:auto; } .chat-side, .chat-form { display:none !important; } .chat-msgs { overflow:visible; } }
/* Mehmon sarlavhasi telefonda: sayt nomi qisqaradi, tugmalar ustiga chiqmaydi */
@media (max-width:600px) {
  body.guest .main-header { flex-wrap:nowrap; gap:6px; padding-left:12px; padding-right:12px; }
  body.guest .main-header .brand { flex:1 1 auto; min-width:0; gap:7px; font-size:.98rem; }
  body.guest .main-header .brand .logo { width:30px; height:30px; flex:none; }
  body.guest .main-header .grow { display:none; }
  .lang-switch button { padding:2px 7px; }
}
@media (max-width:420px) { body.has-side .main-header > .theme-menu { display:none; } } /* mavzu ism ustidagi menyuda ham bor */
@media (min-width:981px) { .lp-stats { grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:1fr; } }
/* O'qituvchi menyusidagi yig'iladigan «Yana» guruhi */
.nav-more > summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; border-radius:8px; }
.nav-more > summary::-webkit-details-marker { display:none; }
.nav-more > summary:hover { color:var(--brand); }
.nav-more > summary i { font-size:.7rem; transition:transform .2s; } .nav-more[open] > summary i { transform:rotate(180deg); }
/* O'quvchi: ochiq va tugagan testlar */
.list-head { font-size:1.05rem; margin:18px 0 10px; display:flex; align-items:center; gap:8px; } .list-head i { color:var(--brand); }
.done-tests > summary { list-style:none; cursor:pointer; } .done-tests > summary::-webkit-details-marker { display:none; }
.done-tests > summary .list-head::after { content:"\25BE"; color:var(--muted); margin-left:4px; transition:transform .2s; } .done-tests[open] > summary .list-head::after { transform:rotate(180deg); }
.done-tests .test-card { opacity:.85; }
/* Kirish sahifasida sayt nomi kartada bor — tepadagi takrori yashiriladi; telefonda footer qisqa */
body.auth-page .main-header .brand { display:none; }
@media (max-width:600px) { .main-footer .foot-org { display:none; } }

/* Telefon: yon menyu yopiq bo'lganda sayt nomi yuqori panelda; uzun belgilar va amallar qatori sig'adi */
.m-brand { display:none; }
@media (max-width:991px) {
  body.has-side .main-header .m-brand { display:flex; align-items:center; gap:8px; min-width:0; flex:0 1 auto; font-size:1rem; overflow:hidden; }
  body.has-side .main-header .m-brand b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  body.has-side .main-header .m-brand .logo, body.has-side .main-header .m-brand img, body.has-side .main-header .m-brand svg { width:30px; height:30px; flex:none; }
}
@media (max-width:600px) {
  .tag, .badge { white-space:normal; max-width:100%; overflow-wrap:anywhere; }
  .bulkbar { flex-wrap:wrap; } .bulkbar > * { min-width:0; }
  .bulkbar :is(.cmds, .bulk-cmds) { flex-wrap:wrap; }
  .cmd { white-space:normal; text-align:left; }
}

/* ---------- CHSB sessiyasi: bitta oynada bir nechta fan ---------- */
.exam-subjects { flex-basis:100%; display:flex; gap:6px; overflow-x:auto; padding:2px 0 0; scrollbar-width:thin; }
.exam-subj { flex:0 0 auto; display:inline-flex; align-items:center; gap:8px; padding:6px 12px; border-radius:999px; border:1px solid var(--input); background:var(--card); color:var(--text); font-weight:600; cursor:pointer; white-space:nowrap; min-height:36px; }
.exam-subj small { font-weight:600; color:var(--muted); font-variant-numeric:tabular-nums; }
.exam-subj.on { background:var(--brand); border-color:var(--brand); color:var(--brand-text, #fff); }
.exam-subj.on small { color:inherit; opacity:.85; }
.exam-subj.all-done:not(.on) { border-color:var(--ok); }
.exam-subj.all-done small::before { content:"✓ "; }
.exam-subj.is-done { cursor:default; opacity:.65; font-weight:500; }
.exam-subject-h { display:flex; align-items:center; gap:10px; margin:18px 0 10px; font-size:1.2rem; }
.exam-subject-h .ss-dot { display:inline-grid; place-items:center; width:28px; height:28px; border-radius:50%; background:var(--brand); color:#fff; font-size:.9rem; }
form#exam.one .exam-subject:not(.cur) { display:none; }
form#exam.one .exam-subject-h { margin-top:0; }
.qnav-group { display:none; flex-wrap:wrap; gap:6px; align-items:center; width:100%; }
.qnav-group.cur { display:flex; }
.qnav-sub { margin-right:4px; font-size:.9rem; color:var(--muted); }
.finish-lines { text-align:left; margin:0 0 14px; padding-left:20px; }
.session-note { margin:4px 0 8px; font-size:.9rem; }
@media (max-width:640px) { .exam-subj { padding:5px 10px; } .exam-subject-h { font-size:1.05rem; } }
/* Sinf yo'nalishlari (bir nechta) */
.dir-edit { display:inline-block; vertical-align:middle; }
.dir-edit > summary { cursor:pointer; list-style:none; padding:6px 10px; border:1px solid var(--input); border-radius:var(--r-sm); font-size:.9em; max-width:220px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dir-edit > summary::-webkit-details-marker { display:none; }
.dir-edit > summary::after { content:" \25BE"; opacity:.6; }
.dir-edit[open] { display:flex; flex-direction:column; gap:2px; padding:6px; background:var(--card); border:1px solid var(--input); border-radius:var(--r-sm); }
.dir-edit .check { margin:0; padding:4px 2px; white-space:nowrap; }
.dir-pick { min-width:240px; }
/* Tezkor amallar qatori: test sozlamalari, bosh sahifa, tayinlash tavsiyalari */
.quick-row { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 14px; align-items:center; }
.quick-row .q-label { font-weight:600; color:var(--muted); margin-right:4px; }
.quick-row .q-count { opacity:.6; font-size:.85em; margin-left:2px; }
.tips { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.tips li { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.tips li > i { width:20px; text-align:center; color:var(--brand); }
.tips li > span { flex:1 1 220px; }
/* Natija: «35/40» nishoni, to'g'ri javoblar soni */
.res-line { display:inline-flex; gap:6px; align-items:center; flex-wrap:wrap; }
.res-ok { font-weight:600; color:var(--ok); white-space:nowrap; }
.res-summary { font-size:1.05rem; font-weight:600; }
.big-mark { font-size:44px; }
/* 0–1 jadvali */
.matrix-tools { align-items:center; gap:8px; margin-bottom:10px; }
.matrix { font-size:.86rem; }
.matrix th, .matrix td { text-align:center; padding:4px 6px; }
.matrix td.l, .matrix th.l { text-align:left; }
.matrix td.mx { font-variant-numeric:tabular-nums; font-weight:600; min-width:24px; }
.matrix td.mx1 { background:color-mix(in srgb, var(--ok) 16%, transparent); color:var(--ok); }
.matrix td.mx0 { background:color-mix(in srgb, var(--err) 10%, transparent); color:var(--err); }
.matrix td.mxp { background:color-mix(in srgb, var(--amber, #f59e0b) 18%, transparent); }
.matrix tfoot td { font-weight:600; }
.b-ok-txt { color:var(--ok); } .b-info-txt { color:var(--info); } .b-warn-txt { color:#b45309; } .b-err-txt { color:var(--err); }

/* ---------- Reklama bannerlari (inc/ads.php) ---------- */
.ad { position: relative; margin: 0 0 16px; border-radius: 14px; overflow: hidden; background: var(--card); border: 1px solid var(--line, rgba(0,0,0,.08)); }
.ad-bottom { margin: 20px 0 0; }
.ad-link { display: flex; align-items: center; gap: 14px; color: inherit; text-decoration: none; }
.ad-img .ad-link img { display: block; width: 100%; max-height: 220px; object-fit: cover; }
.ad-txt .ad-link { padding: 14px 44px 14px 18px; background: linear-gradient(135deg, color-mix(in srgb, var(--brand, #2f5bea) 10%, var(--card)) 0%, var(--card) 100%); flex-wrap: wrap; }
.ad-text { flex: 1 1 260px; display: flex; flex-direction: column; gap: 2px; }
.ad-text b { font-size: 16px; }
.ad-text span { color: var(--muted, #667); font-size: 14px; }
.ad-btn { padding: 8px 14px; border-radius: 10px; background: var(--brand, #2f5bea); color: #fff; font-weight: 600; font-size: 14px; white-space: nowrap; }
.ad-label { position: absolute; left: 8px; top: 6px; z-index: 1; font-size: 10px; letter-spacing: .04em; text-transform: uppercase; padding: 1px 6px; border-radius: 6px; background: rgba(0,0,0,.45); color: #fff; pointer-events: none; }
.ad-txt .ad-label { position: static; display: inline-block; margin: 8px 0 0 18px; background: color-mix(in srgb, var(--brand, #2f5bea) 14%, transparent); color: var(--muted, #556); }
.ad-x { position: absolute; right: 6px; top: 6px; z-index: 2; width: 26px; height: 26px; padding: 0; border: 0; border-radius: 50%; background: rgba(0,0,0,.45); color: #fff; font-size: 16px; line-height: 26px; cursor: pointer; min-height: 0; }
.ad-x:hover { background: rgba(0,0,0,.7); }
.sidebar .ad { margin: 12px 10px; }
.sidebar .ad-img .ad-link img { max-height: 260px; }
.sidebar .ad-txt .ad-link { padding: 12px 34px 12px 12px; }
.sidebar .ad-text b { font-size: 14px; }
.sidebar-collapse .sidebar .ad { display: none; }
.ad-cell { display: flex; align-items: center; gap: 10px; min-width: 220px; }
.ad-cell img { width: 96px; height: 44px; object-fit: cover; border-radius: 8px; flex: none; }
.ad-cell span { display: flex; flex-direction: column; }
.ad-preview { display: flex; align-items: center; gap: 12px; }
.ad-preview img { max-width: 320px; max-height: 90px; border-radius: 8px; }
@media print { .ad { display: none !important; } }

/* ---------- Test bo'yicha reyting (rating.php?tab=test, student/result.php) ---------- */
.rank-table tr.rank-mine td { background: color-mix(in srgb, var(--brand, #2f5bea) 8%, transparent); }
.my-rank { margin: 14px auto 4px; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.rank-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.rank-chip { display: flex; flex-direction: column; align-items: center; min-width: 92px; padding: 8px 12px; border-radius: 12px; background: var(--brand-2, #eef2ff); line-height: 1.25; }
.rank-chip b { font-size: 18px; }
.rank-chip small { color: var(--muted, #667); font-size: 12px; }
.rank-chip.top { background: color-mix(in srgb, #f5b301 22%, var(--card)); }

/* Test muharriri: bo'limlar menyusi, mezon kartasi, yig'iladigan bo'lim va savollar, savol turi modullari */
.tb-head > summary { display:flex; align-items:center; gap:10px; flex-wrap:wrap; cursor:pointer; list-style:none; }
.tb-head > summary::-webkit-details-marker { display:none; }
.tb-head > summary .tb-edit-hint { margin-left:auto; color:var(--brand); font-size:.9rem; }
.tb-head[open] > summary { margin-bottom:12px; } .tb-head[open] > summary .tb-edit-hint i { transform:rotate(180deg); }
.tb-crit-head { display:flex; gap:8px; align-items:baseline; flex-wrap:wrap; margin-bottom:10px; } .tb-crit-head .muted { font-size:.9rem; }
.tb-crit-chips { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:8px; }
.crit-chip { padding:6px 12px; border-radius:999px; border:1px solid color-mix(in srgb, var(--pc, var(--brand)) 40%, transparent); background:color-mix(in srgb, var(--pc, var(--brand)) 10%, var(--card)); font-size:.92rem; }
.crit-chip b { color:color-mix(in srgb, var(--pc, var(--brand)) 85%, var(--text)); } .crit-chip.total { --pc:var(--brand); font-weight:600; }
.tb-crit-edit > summary { cursor:pointer; margin:4px 0; font-size:.92rem; } .tb-crit-edit .parts-edit { margin-top:8px; }
.tb-nav { position:sticky; top:64px; z-index:6; display:flex; flex-wrap:wrap; gap:6px; align-items:center; padding:8px 10px; margin:14px 0; border-radius:var(--radius);
  background:color-mix(in srgb, var(--card) 92%, transparent); backdrop-filter:blur(8px); border:1px solid var(--line); box-shadow:0 4px 14px rgba(0,0,0,.06); }
.tb-nav-item { position:relative; display:inline-flex; align-items:center; gap:6px; padding:6px 12px 8px; border-radius:10px; color:var(--text); text-decoration:none; font-size:.92rem; background:color-mix(in srgb, var(--pc, var(--brand)) 8%, transparent); overflow:hidden; }
.tb-nav-item .qpart-no { width:22px; height:22px; font-size:.8rem; background:var(--pc, var(--brand)); color:#fff; display:inline-grid; place-items:center; border-radius:50%; }
.tb-nav-item small { color:var(--muted); font-weight:600; } .tb-nav-item small.bad { color:var(--err); } .tb-nav-item.done small { color:var(--ok, #16a34a); }
.tb-nav-item.done small::after { content:" ✓"; }
.tb-nav-item .tb-bar, .qpart-bar { position:absolute; left:0; right:0; bottom:0; height:3px; background:color-mix(in srgb, var(--pc, var(--brand)) 15%, transparent); }
.tb-nav-item .tb-bar i, .qpart-bar i { display:block; height:100%; width:0; background:var(--pc, var(--brand)); transition:width .3s; }
.tb-nav-item.src { --pc:var(--muted); }
.tb-nav-sum { margin-left:auto; font-weight:600; font-size:.9rem; padding:4px 10px; border-radius:8px; }
.tb-nav-sum.bad { color:var(--err); background:color-mix(in srgb, var(--err) 10%, transparent); } .tb-nav-sum.ok { color:var(--ok, #16a34a); background:color-mix(in srgb, #16a34a 10%, transparent); }
section.qpart { scroll-margin-top:130px; position:relative; }
.qpart-bar { position:relative; display:block; margin:-6px 0 10px; border-radius:3px; }
.qpart-head .qpart-acts { margin-left:auto; display:flex; gap:6px; } .qpart-head .qpart-acts button { margin:0; }
.qpart-fold { background:none; border:0; padding:2px 6px; color:var(--muted); cursor:pointer; } .qpart-fold i { transition:transform .2s; }
section.qpart.closed .qpart-fold i { transform:rotate(-90deg); }
section.qpart.closed > .qblocks, section.qpart.closed > .qpart-add-end, section.qpart.closed > .qpart-paste { display:none; }
section.qpart[class*="part-c"] .qblock { border-left-color:var(--pc); }
.qpart-paste textarea { font-family:inherit; }
.qblock-head .qdrag { cursor:grab; color:var(--muted); padding:2px 4px; } .qblock.dragging { opacity:.45; outline:2px dashed var(--pc, var(--brand)); }
.qblock-head .qtitle { display:inline-flex; align-items:baseline; gap:6px; }
.qblock-head .qlnum { display:inline-grid; place-items:center; min-width:26px; height:26px; padding:0 6px; border-radius:8px; background:var(--pc, var(--info)); color:#fff; font-size:.9rem; }
.qblock-head .qgnum { color:var(--muted); font-weight:500; font-size:.88rem; } .qblock-head .qgnum .qnum { color:inherit; }
.qblock-head select.qtype-sel { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.qtype-seg { display:inline-flex; flex-wrap:wrap; gap:2px; padding:2px; border-radius:10px; background:var(--bg-soft, rgba(127,127,127,.1)); }
.qtype-seg button { margin:0; padding:4px 10px; border:0; border-radius:8px; background:transparent; color:var(--muted); font-size:.85rem; font-weight:500; box-shadow:none; }
.qtype-seg button:hover { color:var(--text); } .qtype-seg button.on { background:var(--card); color:var(--pc, var(--brand)); box-shadow:0 1px 3px rgba(0,0,0,.12); font-weight:600; }
.qblock-head .qsum { display:none; flex:1 1 200px; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.qblock.folded .qsum { display:block; } .qblock.folded .qtype-seg, .qblock.folded .qpts, .qblock.folded .qsrc { display:none; }
.qblock.folded > :not(.qblock-head):not(input[type=hidden]) { display:none !important; } .qblock.folded .qblock-head { margin:0; }
.qblock.folded [data-q-fold] i { transform:rotate(180deg); }
@media (max-width:720px) { .qtype-seg button span { display:none; } .tb-nav { top:56px; } .qpart-head .qpart-acts { margin-left:0; width:100%; } }
@media print { .tb-nav, .qpart-acts, .qtype-seg, .qdrag { display:none !important; } }

/* Tizim ogohlantirishlari va texnik ishlar sahifasi */
.sys-notices { display:grid; gap:8px; margin-bottom:14px; }
.sys-notice { display:flex; align-items:flex-start; gap:10px; padding:10px 14px; border-radius:12px; border:1px solid color-mix(in srgb, var(--nc) 35%, transparent);
  background:color-mix(in srgb, var(--nc) 10%, var(--card)); color:var(--text); --nc:#2563eb; }
.sys-notice > i { color:var(--nc); margin-top:3px; } .sys-notice > div { flex:1; } .sys-notice a { font-weight:600; }
.sys-notice > button { margin:0; padding:0 6px; font-size:1.2rem; line-height:1; color:var(--muted); }
.n-warn { --nc:#d97706; } .n-danger { --nc:#dc2626; } .n-ok { --nc:#16a34a; } .n-info { --nc:#2563eb; }
.sys-tag { display:inline-flex; gap:6px; align-items:center; padding:2px 10px; border-radius:999px; background:color-mix(in srgb, var(--nc) 12%, transparent); color:var(--nc); font-weight:600; font-size:.85rem; }
.sys-mini { font-size:.85rem; color:#b45309; text-align:center; padding:2px 8px; }
.maint-state { display:flex; gap:14px; align-items:center; border-left:5px solid var(--ok, #16a34a); } .maint-state > i { font-size:1.8rem; color:var(--ok, #16a34a); }
.maint-state.st-on { border-left-color:var(--err); } .maint-state.st-on > i { color:var(--err); }
.maint-state.st-soon { border-left-color:#d97706; } .maint-state.st-soon > i { color:#d97706; }
.maint-body { min-height:100vh; display:grid; place-items:center; padding:16px; background:var(--bg); }
.maint-card { max-width:560px; width:100%; text-align:center; background:var(--card); border-radius:22px; padding:36px 28px; box-shadow:0 18px 50px rgba(0,0,0,.08); }
.maint-ico { width:84px; height:84px; margin:0 auto 14px; border-radius:24px; display:grid; place-items:center; font-size:2.2rem; color:#fff; background:linear-gradient(135deg, #f59e0b, #d97706); }
.maint-card h1 { margin:0 0 10px; } .maint-msg { font-size:1.05rem; } .maint-when { font-weight:600; font-size:1.1rem; color:#b45309; }
.maint-links { margin-top:16px; } .maint-links form { display:inline; }
/* Sayt statistikasi */
i.live-dot { color:var(--ok); font-size:.7em; vertical-align:middle; animation:pulse 1.6s infinite; }
.stat.st-live { border-left-color:var(--ok); }
.legend { font-size:.8rem; font-weight:400; color:var(--muted); margin-left:.6rem; white-space:nowrap; }
.legend i { display:inline-block; width:10px; height:10px; border-radius:2px; vertical-align:middle; margin:0 3px 0 8px; }
.lg-g, .vc-g { background:#9fc5f8; } .lg-u, .vc-u { background:var(--brand); }
.vchart { display:flex; align-items:flex-end; gap:2px; height:180px; padding-top:6px; border-bottom:1px solid var(--line); overflow-x:auto; }
.vc-col { flex:1 0 8px; min-width:8px; height:100%; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; position:relative; padding-bottom:16px; }
.vc-stack { width:100%; max-width:34px; display:flex; flex-direction:column-reverse; border-radius:3px 3px 0 0; overflow:hidden; min-height:1px; }
.vc-stack i { display:block; }
.vc-col small { position:absolute; bottom:0; font-size:.68rem; color:var(--muted); white-space:nowrap; }
.vc-col:hover .vc-stack { filter:brightness(.9); }
.vchart.hours { height:130px; }
.hbars { list-style:none; margin:0; padding:0; }
.hbars li { display:grid; grid-template-columns:minmax(0, 1.4fr) 1fr auto 3rem; gap:.6rem; align-items:center; padding:5px 0; border-bottom:1px dashed var(--line); font-size:.92rem; }
.hbars li:last-child { border-bottom:0; }
.hb-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hb-bar { height:8px; background:var(--line); border-radius:4px; overflow:hidden; }
.hb-bar i { display:block; height:100%; background:var(--brand); border-radius:4px; }
.hbars small { text-align:right; }
.st-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(320px, 1fr)); gap:1rem; }
.visit-counter { text-align:center; color:var(--muted); font-size:.95rem; margin:1rem 0; }
.visit-counter b { color:var(--brand); }
/* Ko'p maktabga tayinlash */
.as-mass .as-scope { gap:0 1rem; }
.as-mass-out { margin-top:.6rem; }
.as-mass-out.is-loading { opacity:.6; }
.as-mass-sum { font-weight:600; font-size:1.05rem; padding:8px 12px; border-radius:var(--radius); background:var(--bg-soft, rgba(13,110,253,.07)); }
.as-mass-sum.is-warn { color:var(--err); }
.as-mass-list { list-style:none; margin:.5rem 0 0; padding:0; max-height:420px; overflow:auto; }
.as-mass-list li { padding:6px 0; border-bottom:1px dashed var(--line); display:flex; flex-wrap:wrap; gap:4px 14px; align-items:center; }
.as-mass-list li b { flex:1 0 100%; font-weight:600; }
.as-mass-list .check { margin:0; font-size:.92rem; }
/* «Orqaga» tugmasi va bosqichlar */
.back-btn { display:inline-flex; align-items:center; gap:6px; margin:18px 0 -8px 28px; padding:6px 12px; border-radius:999px; background:var(--card); box-shadow:var(--shadow); color:var(--text, inherit); font-size:.9rem; text-decoration:none; float:left; }
.back-btn:hover { color:var(--brand); }
.flow-steps { display:flex; flex-wrap:wrap; gap:6px; list-style:none; margin:0 0 12px; padding:0; counter-reset:none; }
.flow-steps li > a, .flow-steps li > span { display:inline-flex; align-items:center; gap:7px; padding:7px 14px; border-radius:999px; background:var(--card); box-shadow:var(--shadow); color:var(--muted); text-decoration:none; font-size:.92rem; }
.flow-steps li span span, .flow-steps li a span { display:inline-grid; place-items:center; width:22px; height:22px; border-radius:50%; background:var(--line); color:inherit; font-weight:700; font-size:.8rem; }
.flow-steps li.done a { color:var(--ok); } .flow-steps li.done a span { background:var(--ok); color:#fff; }
.flow-steps li.on a { color:var(--brand); font-weight:600; } .flow-steps li.on a span { background:var(--brand); color:#fff; }
.flow-steps li + li::before { content:"›"; color:var(--muted); margin-right:6px; align-self:center; }
.flow-steps li { display:flex; }
@media (max-width:600px) {
  .back-btn { margin:10px 0 0 10px; float:none; }
  .flow-steps li > a, .flow-steps li > span { padding:6px 10px; font-size:.85rem; }
}

/* ---------- Telefon: ixcham joylashuv, tugmalar barmoq bilan bosishga qulay ---------- */
@media (max-width:700px) {
  button, .btn, input[type=submit] { min-height:40px; }
  .page-head { flex-direction:column; align-items:stretch; gap:10px; }
  .page-head .btn-group { display:grid; grid-template-columns:repeat(auto-fit, minmax(140px, 1fr)); gap:8px; }
  .page-head .btn-group { align-items:start; }
  .page-head .btn-group > * { justify-content:center; text-align:center; margin:0; padding:10px 12px; line-height:1.2; }
  .hint-ico { transform:scale(.85); opacity:.6; }
  /* Ommaviy amallar: hech narsa belgilanmaguncha faqat «Hammasini belgilash» ko'rinadi */
  .bulkbar:not(.active) .cmds, .bulkbar:not(.active) select, .bulkbar:not(.active) > button:not(.sel-all) { display:none !important; }
  .bulkbar { bottom:8px; }
  /* Bosh sahifa ko'rsatkichlari: ikki ustun, ixcham */
  .small-box .inner { padding:12px 12px 6px; }
  .small-box h3 { font-size:1.5rem; }
  .small-box p { font-size:.85rem; line-height:1.25; }
  .small-box .icon { font-size:20px !important; top:10px; right:10px; width:34px !important; height:34px !important; }
  .small-box .more { font-size:.8rem; padding:6px 12px; }
  /* Test tayinlash: pastdagi panel ixcham */
  .as-bar { gap:8px; padding:8px 10px; margin:10px -4px 0; }
  .as-bar .as-sum b { font-size:.95rem; } .as-bar .as-sum span { font-size:.78rem; }
  .as-bar button.big { min-width:0; padding:10px 14px; }
  /* Bosqichlar bitta qatorda, kerak bo'lsa suriladi */
  .flow-steps { flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px; -webkit-overflow-scrolling:touch; }
  .flow-steps li { flex:none; }
  .flow-steps li + li::before { display:none; }
  .tabs, .tab-nav { overflow-x:auto; flex-wrap:nowrap; }
  .qm-hint { display:none; }
}
/* «Kutilmoqda» */
.pend-btn { position:relative; }
.pend-h { font-size:1.05rem; margin:18px 0 8px; } .pend-h.pend-urgent { color:var(--err); }
.pend-list { display:grid; gap:10px; }
.pend-item { padding:12px 16px; border-left:4px solid var(--brand); margin:0; }
.pend-item.pend-urgent { border-left-color:var(--err); } .pend-item.pend-info { border-left-color:var(--line); }
.pend-top { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.pend-ico { width:38px; height:38px; border-radius:10px; display:grid; place-items:center; background:color-mix(in srgb, var(--brand) 12%, transparent); color:var(--brand); flex:none; }
.pend-urgent .pend-ico { background:color-mix(in srgb, var(--err) 12%, transparent); color:var(--err); }
.pend-info .pend-ico { background:var(--line); color:var(--muted); }
.pend-txt { flex:1; min-width:180px; display:flex; flex-direction:column; gap:2px; }
.pend-n { font-size:1.4rem; font-weight:700; min-width:2ch; text-align:right; }
.pend-urgent .pend-n { color:var(--err); }
.pend-rows { margin:8px 0 0 50px; padding:0; list-style:none; font-size:.92rem; }
.pend-rows li { padding:3px 0; border-top:1px dashed var(--line); }
.pend-empty { text-align:center; padding:30px; } .pend-empty > i { font-size:42px; color:var(--ok); }
@media (max-width:700px) { .pend-rows { margin-left:0; } .pend-top .btn { width:100%; justify-content:center; } }

/* «Nusxa olish» menyusi va tarjima nusxasi */
.copy-menu { position: relative; display: inline-block; vertical-align: middle; }
.copy-menu > summary { list-style: none; cursor: pointer; }
.copy-menu > summary::-webkit-details-marker { display: none; }
.copy-pop { position: absolute; z-index: 30; right: 0; top: calc(100% + 4px); min-width: 250px; background: var(--card, #fff); border: 1px solid var(--line, #dde3ea); border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.14); padding: 6px; }
.copy-pop button.link { display: flex; gap: 8px; align-items: center; width: 100%; text-align: left; padding: 8px 10px; border-radius: 6px; white-space: nowrap; }
.copy-pop button.link:hover { background: var(--hover, rgba(0,0,0,.05)); }
.tcard .copy-pop { left: 0; right: auto; }
.copy-bar { display: flex; justify-content: flex-end; margin: -8px 0 8px; }
.copy-note { border-left: 4px solid var(--accent, #0d6efd); }
.tr-progress { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; margin-top: 8px; }
.tr-progress .bar { flex: 1 1 160px; }
.orig-q { margin: 6px 0 10px; padding: 8px 12px; border-radius: 8px; background: var(--soft, #f3f6fa); border: 1px dashed var(--line, #c9d3de); }
.orig-q > summary { cursor: pointer; font-weight: 600; }
.orig-q.done { opacity: .85; }
.qprev .opts { margin: 6px 0 0; }
@media (max-width: 700px) { .copy-pop { position: fixed; left: 12px; right: 12px; top: auto; bottom: 12px; min-width: 0; } .copy-pop button.link { white-space: normal; } }
.row-acts .copy-menu > summary .lbl { display: none; }
.section[id], body.landing [id] { scroll-margin-top:76px; }
.main-footer .foot-dev { color:var(--muted); } .main-footer .foot-dev a { font-weight:600; }
.nav-link .nav-lock { margin-left:auto; font-size:.72rem; opacity:.55; }
.feat-list { list-style:none; padding:0; margin:.4rem 0; display:grid; gap:4px; }
.feat-list li.off { color:var(--muted); }
.feat-list li i { width:18px; text-align:center; }
.feat-list li.on i { color:var(--ok, #16a34a); }
.sub-status .big { font-size:1.15rem; font-weight:600; margin:.3rem 0; }
.sub-status .big.ok { color:var(--ok, #16a34a); } .sub-status .big.warn { color:var(--warn, #d97706); }
.plan details > summary.btn { list-style:none; display:inline-flex; margin-top:.5rem; }
.sub-banner { display:flex; flex-wrap:wrap; gap:6px 10px; align-items:center; padding:12px 16px; margin:0 0 14px; border-radius:12px; border:1px solid var(--line); background:var(--card); }
.sub-banner.warn { background:color-mix(in srgb, #f59e0b 12%, var(--card)); border-color:color-mix(in srgb, #f59e0b 40%, var(--line)); }
.sub-banner.err { background:color-mix(in srgb, #ef4444 10%, var(--card)); border-color:color-mix(in srgb, #ef4444 40%, var(--line)); }
.sub-banner.ok { background:color-mix(in srgb, #22c55e 10%, var(--card)); border-color:color-mix(in srgb, #22c55e 40%, var(--line)); }
.sub-banner a { font-weight:600; margin-left:auto; }

/* Avtomatik hisobotlar */
.ar-title { min-width: 280px; }
label.check.ar-kind { margin-right: 18px; }
.btn.tg-reset{display:flex;justify-content:center;align-items:center;gap:8px;width:100%;margin:4px 0 6px;background:#229ED9;border-color:#229ED9;color:#fff}
/* Rasmiy havolalar: bot, sayt, kanal (social_html) */
.soc-row { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.soc-row .soc { display:inline-flex; align-items:center; gap:7px; padding:6px 12px; border-radius:999px; border:1px solid var(--line); background:var(--card); color:var(--text, inherit); font-weight:600; font-size:.88rem; text-decoration:none !important; transition:border-color .2s, transform .2s, background .2s; }
.soc-row .soc:hover { transform:translateY(-1px); border-color:color-mix(in srgb, var(--brand) 45%, var(--line)); }
.soc-row .soc i { font-size:.95em; }
.soc-bot i, .soc-channel i { color:#229ED9; } .soc-site i { color:var(--brand); }
.soc-icons { gap:2px; }
.soc-icons .soc { width:38px; height:38px; padding:0; justify-content:center; border-color:transparent; background:transparent; }
.soc-icons .soc:hover { background:color-mix(in srgb, #229ED9 12%, transparent); }
.soc-side { padding:10px 12px 4px; justify-content:center; }
.soc-side .soc { padding:5px 9px; font-size:.78rem; }
body.sidebar-collapse .main-sidebar:not(:hover) .soc-side span { display:none; } body.sidebar-collapse .main-sidebar:not(:hover) .soc-side { flex-direction:column; }
.soc-auth { justify-content:center; margin:14px auto 0; }
.soc-foot { justify-content:center; }
.page-head .soc-chips { margin-top:8px; }
@media (max-width:760px) { .soc-icons { display:none; } }
.exam-mode .soc-row { display:none !important; }
@media print { .soc-row { display:none !important; } }
/* Aylanuvchi qator (inc/links.php ticker_html) */
.ticker { display:flex; align-items:center; gap:0; margin:0; background:var(--card); border-bottom:1px solid var(--line); font-size:.9rem; min-height:38px; overflow:hidden; }
.tk-label { flex:none; display:inline-flex; align-items:center; gap:6px; padding:0 14px; align-self:stretch; background:var(--brand); color:#fff; font-weight:700; white-space:nowrap; }
.tk-view { flex:1; overflow:hidden; position:relative; mask-image:linear-gradient(90deg, transparent, #000 24px, #000 calc(100% - 24px), transparent); -webkit-mask-image:linear-gradient(90deg, transparent, #000 24px, #000 calc(100% - 24px), transparent); }
.tk-track { display:inline-flex; white-space:nowrap; animation:tk-run var(--tk-dur, 40s) linear infinite; will-change:transform; }
.tk-set { display:inline-flex; align-items:center; }
.tk-item { display:inline-flex; align-items:center; gap:6px; padding:8px 0; margin-right:42px; color:inherit; text-decoration:none; font-weight:500; }
.tk-item::after { content:'•'; margin-left:42px; color:var(--muted); }
.tk-set .tk-item:last-child::after { content:'•'; }
.tk-item i { color:var(--brand); }
a.tk-item:hover { color:var(--brand); text-decoration:underline; }
.ticker:hover .tk-track, .ticker:focus-within .tk-track { animation-play-state:paused; }
.tk-close { flex:none; width:36px; align-self:stretch; border:0; background:transparent; color:var(--muted); font-size:1.2rem; cursor:pointer; box-shadow:none; padding:0; min-height:0; }
.tk-close:hover { color:var(--err); }
@keyframes tk-run { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .tk-track { animation:none; } .tk-view { overflow-x:auto; } .tk-set[aria-hidden] { display:none; } }
@media (max-width:600px) { .tk-label span, .tk-label { padding:0 10px; } }
.exam-mode .ticker, body.cert-mode .ticker, body.board .ticker { display:none !important; }
@media print { .ticker, .partners { display:none !important; } }
.ticker-opt { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; }
.ticker-opt .inline-label { display:inline-flex; align-items:center; gap:6px; margin:0; }
.ticker-opt input[type=date] { width:auto; }
/* Foydali havolalar va hamkorlar */
.links-sec { margin:0 0 26px; }
.links-sec h2 { font-size:1.15rem; display:flex; gap:8px; align-items:center; }
.links-sec h2 i { color:var(--brand); }
.links-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:12px; }
.link-card { display:flex; gap:12px; align-items:center; padding:14px; border:1px solid var(--line); border-radius:var(--radius, 12px); background:var(--card); color:inherit; text-decoration:none !important; transition:transform .2s, border-color .2s, box-shadow .2s; }
a.link-card:hover { transform:translateY(-2px); border-color:color-mix(in srgb, var(--brand) 45%, var(--line)); box-shadow:var(--shadow); }
.link-card img { width:56px; height:56px; object-fit:contain; border-radius:10px; background:#fff; flex:none; }
.lc-ico { width:48px; height:48px; flex:none; display:grid; place-items:center; border-radius:12px; background:color-mix(in srgb, var(--brand) 12%, transparent); color:var(--brand); font-size:1.3rem; }
.lc-body { display:flex; flex-direction:column; gap:3px; min-width:0; }
.lc-body small { overflow-wrap:anywhere; }
.lc-host { color:var(--brand); font-size:.78rem; }
.partners { max-width:1200px; margin:30px auto 10px; padding:0 16px; text-align:center; }
.partners h2 { font-size:1.3rem; margin-bottom:16px; }
.partners-row { display:flex; flex-wrap:wrap; justify-content:center; gap:14px; }
.partner { display:flex; flex-direction:column; align-items:center; gap:8px; width:150px; padding:14px 10px; border:1px solid var(--line); border-radius:14px; background:var(--card); color:inherit; text-decoration:none !important; font-size:.85rem; font-weight:600; transition:transform .2s, box-shadow .2s; }
.partner img { height:56px; max-width:120px; object-fit:contain; filter:grayscale(.3); transition:filter .2s; }
.partner i { font-size:1.8rem; color:var(--brand); height:56px; display:grid; place-items:center; }
a.partner:hover { transform:translateY(-2px); box-shadow:var(--shadow); } a.partner:hover img { filter:none; }
/* E'lonlar: galereya, video, hujjatlar, havola tugmalari, heshteglar (inc/annmedia.php) */
.ann-gallery { display:grid; gap:6px; margin:12px 0; border-radius:12px; overflow:hidden; }
.ann-gallery.g1 { grid-template-columns:1fr; } .ann-gallery.g2 { grid-template-columns:1fr 1fr; } .ann-gallery.g3 { grid-template-columns:2fr 1fr 1fr; } .ann-gallery.g4 { grid-template-columns:repeat(4, 1fr); }
.ann-gallery a { display:block; aspect-ratio:4/3; overflow:hidden; background:var(--soft, #eef2f7); }
.ann-gallery.g1 a { aspect-ratio:auto; max-height:460px; }
.ann-gallery img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s; }
.ann-gallery.g1 img { object-fit:contain; max-height:460px; }
.ann-gallery a:hover img { transform:scale(1.03); }
.ann-video { margin:10px 0; max-width:720px; }
.ann-links { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0; }
.ann-files { list-style:none; padding:0; margin:10px 0; display:grid; gap:6px; }
.ann-files li { display:flex; align-items:center; gap:8px; padding:8px 12px; border:1px solid var(--line); border-radius:10px; background:var(--card); }
.ann-files .fa-file-pdf { color:#d93025; } .ann-files .fa-file-word { color:#2b579a; } .ann-files .fa-file-excel { color:#217346; } .ann-files .fa-file-powerpoint { color:#d24726; }
.hashtag { color:var(--brand); font-weight:600; text-decoration:none; } a.hashtag:hover { text-decoration:underline; }
.tag-cloud { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 14px; }
.tag-cloud .chip { display:inline-flex; align-items:center; gap:5px; padding:4px 11px; border-radius:999px; border:1px solid var(--line); background:var(--card); color:inherit; text-decoration:none; font-size:.86rem; }
.tag-cloud .chip small { color:var(--muted); } .tag-cloud .chip.on { background:var(--brand); color:#fff; border-color:var(--brand); }
.ann-extra { margin:6px 0 10px; border:1px dashed var(--line); border-radius:10px; padding:6px 10px; }
.ann-extra summary { cursor:pointer; font-weight:600; padding:4px 0; }
.ann-have { display:flex; flex-wrap:wrap; gap:8px; margin:6px 0; }
.ann-thumb { display:flex; flex-direction:column; align-items:center; gap:4px; width:92px; font-size:.75rem; }
.ann-thumb img { width:92px; height:68px; object-fit:cover; border-radius:8px; }
.ann-thumb i { font-size:2rem; color:var(--muted); height:68px; display:grid; place-items:center; }
.lightbox { position:fixed; inset:0; z-index:9999; background:rgba(10,14,24,.92); display:flex; align-items:center; justify-content:center; animation:lb-in .15s ease; }
.lightbox img { max-width:92vw; max-height:88vh; border-radius:8px; box-shadow:0 10px 40px rgba(0,0,0,.5); }
.lightbox button { position:absolute; background:rgba(255,255,255,.12); color:#fff; border:0; border-radius:50%; width:48px; height:48px; min-height:0; padding:0; font-size:2rem; line-height:1; cursor:pointer; box-shadow:none; }
.lightbox button:hover { background:rgba(255,255,255,.25); }
.lb-prev { left:18px; top:50%; transform:translateY(-50%); } .lb-next { right:18px; top:50%; transform:translateY(-50%); } .lb-close { right:18px; top:18px; }
.lb-count { position:absolute; bottom:16px; left:50%; transform:translateX(-50%); color:#fff; font-size:.9rem; opacity:.8; }
@keyframes lb-in { from { opacity:0; } to { opacity:1; } }
@media print { .ann-gallery a { break-inside:avoid; } }
.ann-gallery.g3 { grid-template-rows:1fr 1fr; grid-template-columns:2fr 1fr; } .ann-gallery.g3 a:first-child { grid-row:span 2; aspect-ratio:auto; } .ann-gallery.g3 a:not(:first-child) { aspect-ratio:auto; }
.ann-gallery.g4 a:nth-child(n+5) { display:none; } .ann-gallery.g4 { grid-template-columns:repeat(4, 1fr); }

/* Test: diagonal suv belgisi (o'quvchi ID, ismi, sinfi, maktabi, sayt nomi, vaqt) va ekranni olishga qarshi xiralashtirish */
.exam-wm { position:fixed; inset:0; z-index:120; pointer-events:none; background-repeat:repeat; background-size:440px 300px; background-position:0 0; background-attachment:fixed; }
.exam-wm.exam-wm-in { position:absolute; z-index:5; } /* plitkalar ekranga bog'langan: ikkala qatlam aynan ustma-ust tushadi */
#exam { position:relative; }
body.exam-shield #exam, body.exam-shield #qnav, body.exam-shield .exam-subjects { filter:blur(16px); transition:filter .05s; }
@media print {
  #exam, #qnav, .exam-head, .exam-tools { display:none !important; }
}

/* Telefon: mehmonlar menyusi (☰), bosh sahifa darhol ko'rinadi (kirish animatsiyasisiz) */
.guest-more { display:none; position:relative; }
.guest-more > summary { list-style:none; cursor:pointer; }
.guest-more > summary::-webkit-details-marker { display:none; }
.guest-more .gm-drop { position:absolute; left:0; top:calc(100% + 6px); z-index:60; min-width:240px; background:var(--card); border:1px solid var(--border); border-radius:12px; box-shadow:0 12px 32px rgba(0,0,0,.16); padding:6px; display:grid; }
.guest-more .gm-drop a { display:flex; gap:10px; align-items:center; padding:11px 12px; border-radius:8px; color:var(--text) !important; font-weight:600; }
.guest-more .gm-drop a:hover { background:var(--soft); text-decoration:none; }
.guest-more .gm-drop i { width:18px; color:var(--brand); text-align:center; }
@media (max-width:900px) { .guest-more { display:block; order:-1; } }
@media (max-width:760px) {
  .lp-rise, .lp-stage { animation:none !important; opacity:1 !important; transform:none !important; filter:none !important; }
  .lp-reveal { opacity:1 !important; transform:none !important; transition:none !important; }
}
input, select, textarea { max-width:100%; }
@media (max-width:760px) { form.inline { flex-wrap:wrap; } form.inline > * { min-width:0; max-width:100%; } }
@media screen and (max-width:760px) { .report-sheet { overflow-x:auto; -webkit-overflow-scrolling:touch; } }
.picker { max-width:100%; min-width:0; overflow:hidden; }
@media (max-width:900px) { body.guest .main-header .brand { min-width:0; flex:0 1 auto; } body.guest .main-header .brand span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } }

/* Test pauzasi */
.pause-overlay > div { border-top-color:var(--warn, #d97706); }
.pause-overlay .lock-icon { color:var(--warn, #d97706); }
body.exam-paused #exam, body.exam-paused #qnav, body.exam-paused .exam-subjects { visibility:hidden; }
.pause-bar { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:8px 0; }
.pause-bar input { flex:1 1 220px; margin:0; }
.pause-bar select { width:auto; margin:0; }
.pause-bar.is-paused { background:color-mix(in srgb, #d97706 10%, var(--card)); border:1px solid color-mix(in srgb, #d97706 40%, transparent); border-radius:10px; padding:8px 12px; }
.pause-bar.is-paused > span { flex:1; }
.pause-bar.is-paused i { color:#d97706; }

/* --- Huquqiy hujjatlar va cookie roziligi (2026-10-25) --- */
.cc-banner { position:fixed; left:16px; right:16px; bottom:16px; z-index:900; max-width:980px; margin:0 auto; display:flex; gap:16px; align-items:center; justify-content:space-between; flex-wrap:wrap;
  padding:16px 18px; background:var(--card); color:var(--text); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow-lg); animation:cc-in .35s ease-out; }
@keyframes cc-in { from { transform:translateY(20px); opacity:0; } to { transform:none; opacity:1; } }
.cc-banner .cc-text { display:flex; gap:12px; flex:1 1 420px; min-width:0; }
.cc-banner .cc-text > i { font-size:1.6rem; color:var(--amber); margin-top:2px; }
.cc-banner p { margin:4px 0 0; color:var(--muted); font-size:.9rem; line-height:1.45; }
.cc-banner .cc-more { margin-top:6px; font-size:.9rem; }
.cc-banner .cc-more summary { cursor:pointer; color:var(--brand); display:inline; }
.cc-banner .cc-more[open] { display:flex; flex-direction:column; gap:2px; }
.cc-banner .cc-more .check { margin:4px 0 0; }
.cc-banner .cc-more button { align-self:flex-start; margin-top:6px; }
.cc-banner .cc-btns { display:flex; gap:8px; flex-wrap:wrap; }
@media (max-width:640px) { .cc-banner { left:8px; right:8px; bottom:8px; padding:14px; } .cc-banner .cc-btns { width:100%; } .cc-banner .cc-btns button { flex:1; } }
@media print { .cc-banner { display:none !important; } }
.legal-wrap { display:grid; grid-template-columns:240px minmax(0, 1fr); gap:18px; align-items:start; }
.legal-wrap > .legal-doc:only-child { grid-column:1 / -1; }
.legal-toc { position:sticky; top:76px; display:flex; flex-direction:column; gap:2px; font-size:.88rem; max-height:calc(100vh - 100px); overflow:auto; }
.legal-toc b { margin-bottom:6px; }
.legal-toc a { color:var(--muted); padding:4px 6px; border-radius:6px; text-decoration:none; }
.legal-toc a:hover { background:var(--soft); color:var(--brand); }
.legal-doc { max-width:860px; line-height:1.65; font-size:.98rem; }
.legal-doc h2 { font-size:1.08rem; margin:1.4em 0 .5em; padding-top:.2em; scroll-margin-top:80px; }
.legal-doc h2:first-child { margin-top:0; }
.legal-doc ul { margin:.3em 0 .8em; padding-left:1.3em; }
.legal-doc li { margin:.25em 0; }
.legal-signed { margin-top:1.5em; padding:10px 12px; border-radius:8px; background:var(--ok-bg); color:var(--ok); font-size:.9rem; }
@media (max-width:900px) { .legal-wrap { grid-template-columns:1fr; } .legal-toc { position:static; max-height:none; } }
@media print { .legal-wrap { display:block; } .legal-doc { max-width:none; box-shadow:none; border:0; } }
label.check.legal-agree { display:flex; align-items:flex-start; gap:10px; margin:10px 0 14px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:var(--soft); line-height:1.45; font-size:.92rem; }
label.check.legal-agree input { margin-top:3px; flex:none; }
.legal-note { margin:10px 0 0; font-size:.8rem; color:var(--muted); text-align:center; line-height:1.4; }
.accept-box { max-width:640px; margin:40px auto; padding:28px; }
.accept-box h1 { font-size:1.35rem; }
.accept-docs { list-style:none; padding:0; margin:14px 0; display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:8px; }
.accept-docs a { display:flex; gap:8px; align-items:center; padding:10px 12px; border:1px solid var(--line); border-radius:10px; text-decoration:none; color:var(--text); }
.accept-docs a:hover { border-color:var(--brand); color:var(--brand); }
.foot-legal { display:flex; gap:12px; flex-wrap:wrap; font-size:.82rem; }
.foot-legal a { color:var(--muted); }
.pre-line { white-space:pre-line; }
.legal-edit textarea { min-height:520px; }
.legal-preview { max-height:640px; overflow:auto; font-size:.9rem; }
.sub-tabs { margin-bottom:10px; }

/* Telefon (2026-10-25): sayt nomi to'liq ko'rinsin, yuqori paneldagi ochiladigan oynalar ekrandan chiqib ketmasin */
@media (max-width:600px) {
  .main-header { gap:2px !important; padding-left:6px !important; padding-right:6px !important; }
  .main-header .nav-btn, .main-header .icon-btn, .main-header .search-trigger { width:36px !important; height:36px !important; min-height:36px !important; padding:0 !important; justify-content:center; flex:none; }
  .main-header .search-trigger { background:transparent !important; border:0 !important; }
  .main-header .user-menu summary { padding:2px !important; border:0 !important; }
  .main-header .user-menu .avatar:not(.big) { width:32px; height:32px; }
  body.has-side .main-header .m-brand { flex:1 1 auto; gap:6px; margin-right:auto; }
  body.has-side .main-header .m-brand b { white-space:normal; overflow-wrap:anywhere; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; line-height:1.1; font-size:.95rem; }
  body.has-side .main-header .m-brand .logo.has-img { width:auto !important; max-width:40px; height:28px !important; }
  body.has-side .main-header .m-brand .logo.has-img img { width:100% !important; height:100% !important; object-fit:contain; }
  .main-header details > .dropdown { position:fixed; left:8px; right:8px; top:60px; width:auto !important; max-height:calc(100vh - 76px); overflow:auto; }
}
