/* ============================================================
   Khan SAT-1600 · EXT CSS — стили расширений
   Author: Xudoyorxon Bunyodov / Худоёрхон Бунёдов
   ============================================================ */

/* ---------- базовое ---------- */
.grow{flex:1}
body{zoom:var(--fscale,1)}
.ext-h3{margin:0 0 10px;color:var(--green-900);font-size:16px}
.ext-lbl{display:block;margin:10px 0 4px;font-size:13px;font-weight:600;color:var(--green-900)}
.ext-inp{width:100%;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:inherit;font:inherit;font-size:14px;box-sizing:border-box}
.ext-inp:focus{outline:none;border-color:var(--gold)}
select.ext-inp{cursor:pointer}
.ext-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.ext-form2 .toolbar{margin-top:4px}
.ext-code{background:#10281466;color:#e8f2ea;background:var(--green-900);padding:12px 14px;border-radius:10px;font-family:ui-monospace,Consolas,monospace;font-size:13px;overflow:auto;white-space:pre-wrap}
.ext-tbl{width:100%;border-collapse:collapse;font-size:14px}
.ext-tbl th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:left;padding:8px 10px;border-bottom:2px solid var(--line)}
.ext-tbl td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.ext-tbl tr.me{background:transparent}
.ext-tbl tr.me{background:color-mix(in srgb, var(--gold) 14%, transparent)}
@media(max-width:760px){.ext-hide-m{display:none}.ext-grid3{grid-template-columns:1fr}}

/* ---------- топбар: колокольчик и чипы ---------- */
.ext-bell{position:relative;font-size:19px;text-decoration:none;margin-right:6px;line-height:1}
#ext-bell-n{position:absolute;top:-7px;right:-9px;background:var(--danger);color:#fff;border-radius:99px;font-size:10px;font-weight:800;padding:1px 5px;min-width:10px;text-align:center}
.ext-chips{display:flex;gap:6px;margin-right:8px;flex-wrap:wrap}
.ext-chips span{background:var(--paper);border:1px solid var(--line);border-radius:99px;padding:3px 10px;font-size:12px;font-weight:700;color:var(--green-900);white-space:nowrap}
.ext-chips span{background:color-mix(in srgb, var(--gold) 16%, var(--paper));border:1px solid var(--line);border-radius:99px;padding:3px 10px;font-size:12px;font-weight:700;color:var(--green-900);white-space:nowrap}
@media(max-width:860px){.ext-chips span:not(:first-child){display:none}}

/* ---------- меню «Ещё» ---------- */
.ext-more{position:relative;display:inline-block}
.ext-more-btn{background:transparent;border:1px solid var(--line);border-radius:10px;padding:7px 12px;cursor:pointer;font:inherit;font-size:14px;color:inherit}
.ext-more-btn:hover{border-color:var(--gold)}
.ext-menu{display:none;color:var(--ink);position:absolute;right:0;top:calc(100% + 6px);background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:0 14px 40px rgba(14,61,20,.18);padding:8px;min-width:240px;z-index:90;max-height:72vh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.ext-more.open .ext-menu{display:block}
.ext-menu a{display:block;padding:8px 12px;border-radius:9px;text-decoration:none;color:var(--ink);font-size:14px;white-space:nowrap}
.ext-menu a:hover{background:transparent}
.ext-menu a:hover{background:color-mix(in srgb, var(--gold) 14%, transparent)}
.ext-menu a.active{background:var(--green);color:#fff}
.ext-menu-sep{height:1px;background:var(--line);margin:6px 4px}

/* ---------- баннеры, виджеты главной ---------- */
.ext-banner{background:linear-gradient(90deg,var(--paper),var(--paper));border:1px solid var(--gold);border-left:5px solid var(--gold);border-radius:12px;padding:11px 16px;margin-bottom:12px;font-size:14px}
.ext-banner{background:linear-gradient(90deg,color-mix(in srgb,var(--gold) 20%,var(--paper)),var(--paper));border:1px solid var(--gold);border-left:5px solid var(--gold);border-radius:12px;padding:11px 16px;margin-bottom:12px;font-size:14px}
.ext-banner a{color:var(--green);font-weight:700}
.ext-w-title{font-weight:700;color:var(--green-900);font-size:14px;display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.ext-quest{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 0;border-bottom:1px dashed var(--line);font-size:13.5px}
.ext-quest:last-child{border-bottom:none}
.ext-quest.done{color:var(--muted)}
.ext-quest b{color:var(--gold-600)}
.ext-assign-card{transition:transform .12s}
.ext-assign-card:hover{transform:translateY(-2px)}

/* ---------- модальные окна ---------- */
.ext-modal{position:fixed;top:0;left:0;right:0;bottom:0;inset:0;background:rgba(10,30,14,.45);backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;z-index:200;padding:16px}
.ext-modal.open{display:flex}
.ext-modal-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.3);padding:22px;max-width:680px;width:100%;max-height:88vh;overflow:auto;position:relative;animation:extPop .16s ease}
@keyframes extPop{from{transform:scale(.96);opacity:.4}to{transform:scale(1);opacity:1}}
.ext-modal-x{position:absolute;top:10px;right:12px;background:none;border:none;font-size:20px;cursor:pointer;color:var(--muted)}
.ext-modal-x:hover{color:var(--danger)}

/* ---------- вкладки, списки заданий ---------- */
.ext-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 16px}
.ext-tabs a{padding:8px 15px;border:1px solid var(--line);border-radius:99px;text-decoration:none;color:inherit;font-size:13.5px;background:var(--paper)}
.ext-tabs a.active{background:var(--green);border-color:var(--green);color:#fff;font-weight:700}
.ext-qlist{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.ext-qrow{display:flex;align-items:center;gap:10px;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:9px 14px;font-size:14px;flex-wrap:wrap}
.ext-qbar{height:8px;background:var(--line);border-radius:99px;overflow:hidden;flex:1;min-width:60px}
.ext-qbar span{display:block;height:100%;background:var(--green);border-radius:99px;transition:width .3s}
.ext-qbar.big{height:12px}
.ext-domrow{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px dashed var(--line);font-size:14px;flex-wrap:wrap}
.ext-domrow:last-child{border:none}
.ext-domrow>span:first-child{min-width:180px}
.ext-count{background:var(--paper);border:1px dashed var(--gold);border-radius:10px;padding:9px 12px;font-size:14px}
.ext-count{background:color-mix(in srgb,var(--gold) 16%,var(--paper));border:1px dashed var(--gold);border-radius:10px;padding:9px 12px;font-size:14px}

/* ---------- статистика ---------- */
.ext-score-big{display:flex;gap:16px;flex-wrap:wrap;margin-top:6px}
.ext-score-tot{background:linear-gradient(135deg,var(--green-900),var(--green));color:#fff;border-radius:18px;padding:22px 30px;text-align:center;min-width:220px;flex:1}
.ext-score-tot .l{font-size:13px;opacity:.85;text-transform:uppercase;letter-spacing:.08em}
.ext-score-tot .n{font-size:52px;font-weight:800;font-family:var(--serif);color:var(--gold);line-height:1.1}
.ext-score-tot .s{font-size:13px;opacity:.85}
.ext-score-side{display:flex;flex-direction:column;gap:10px;flex:1;min-width:240px}
.ext-score-part{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:12px 18px;display:flex;align-items:center;gap:12px}
.ext-score-part b{font-size:26px;color:var(--green-900);font-family:var(--serif);margin-left:auto}
.ext-score-part small{color:var(--muted)}
.ext-heat{display:flex;flex-wrap:wrap;gap:5px}
.ext-heat-cell{width:46px;height:46px;border-radius:9px;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:10px;cursor:default}
.ext-heat-cell b{font-size:13px}

/* ---------- план и привычки ---------- */
.ext-habits{width:100%;border-collapse:collapse;font-size:13px}
.ext-habits th,.ext-habits td{padding:5px 4px;text-align:center;border-bottom:1px dashed var(--line)}
.ext-habits td:first-child{text-align:left}
.ext-habits th.today{color:var(--gold-600);font-weight:800}
.ext-hb{width:26px;height:26px;border-radius:8px;border:1px solid var(--line);background:var(--paper);cursor:pointer}
.ext-hb.on{background:var(--green);color:#fff;border-color:var(--green)}
.ext-hb:disabled{opacity:.45;cursor:default}

/* ---------- достижения / уровень ---------- */
.ext-lvlrow{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.ext-lvl-big{font-size:30px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--green-900),var(--green));border-radius:16px;padding:14px 20px;font-family:var(--serif)}
.ext-streak-big{font-size:26px;font-weight:800;color:var(--gold-600);text-align:center}
.ext-streak-big small{display:block;font-size:11px;color:var(--muted);font-weight:600}
.ext-badges-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.ext-badge-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:16px;text-align:center;opacity:.5;filter:grayscale(.7)}
.ext-badge-card.got{opacity:1;filter:none;border-color:var(--gold);box-shadow:0 4px 16px rgba(201,162,39,.18)}
.ext-badge-card .i{font-size:34px}
.ext-badge-card b{display:block;margin:6px 0 4px;color:var(--green-900)}
.ext-got{display:inline-block;margin-top:6px;font-size:11px;font-weight:800;color:var(--ok)}
.ext-badge-mini{font-size:22px;margin-right:4px}
.ext-badge-pop{display:inline-block;background:var(--paper);border:1px dashed var(--gold);border-radius:12px;padding:8px 16px;font-weight:700;color:var(--green-900);margin-top:12px}
.ext-badge-pop{display:inline-block;background:color-mix(in srgb,var(--gold) 20%,var(--paper));border:1px dashed var(--gold);border-radius:12px;padding:8px 16px;font-weight:700;color:var(--green-900);margin-top:12px}

/* ---------- питомец и магазин ---------- */
.ext-pet-card{padding:24px;text-align:center}
.ext-pet-emoji{font-size:84px;line-height:1;animation:extBounce 2.6s ease-in-out infinite}
@keyframes extBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.ext-shop-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px dashed var(--line)}
.ext-shop-row:last-of-type{border:none}
.ext-shop-row .i{font-size:26px}

/* ---------- справочник / словарь / карточки ---------- */
.ext-words{display:flex;flex-direction:column;gap:6px}
.ext-wrow{display:grid;grid-template-columns:34px 150px 1fr auto;gap:6px 12px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:14px}
.ext-wrow span{grid-column:2/4;grid-row:2}
.ext-wrow small.ext-en{grid-column:2/4;grid-row:3;color:var(--muted);font-style:italic}
@supports(display:grid){.ext-wrow{grid-template-areas:"k w w b" "k ru ru b" "k en en b"}}
.ext-wrow.known{opacity:.55}
.ext-know{background:none;border:none;font-size:17px;cursor:pointer}
.ext-frow{padding:8px 0;border-bottom:1px dashed var(--line)}
.ext-frow:last-child{border:none}
.ext-formula{font-family:ui-monospace,Consolas,monospace;font-size:13.5px;color:var(--green-900);background:var(--paper);border-radius:8px;padding:6px 10px;margin-top:4px}
.ext-formula{font-family:ui-monospace,Consolas,monospace;font-size:13.5px;color:var(--green-900);background:color-mix(in srgb,var(--gold) 8%,var(--paper));border-radius:8px;padding:6px 10px;margin-top:4px}
.ext-faq summary{cursor:pointer;font-weight:700;color:var(--green-900);padding:10px 0}
.ext-faq p{margin:0 0 12px;color:var(--muted)}
.ext-video{position:relative;padding-top:56%;margin:8px 0;border-radius:12px;overflow:hidden}
.ext-video iframe{position:absolute;top:0;left:0;right:0;bottom:0;inset:0;width:100%;height:100%}
.ext-flash-wrap{text-align:center;max-width:560px;margin:0 auto}
.ext-flash{position:relative;height:240px;cursor:pointer;perspective:900px;margin-top:10px}
.ext-flash-face{position:absolute;top:0;left:0;right:0;bottom:0;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;background:var(--paper);border:2px solid var(--gold);border-radius:20px;font-size:24px;font-weight:700;color:var(--green-900);backface-visibility:hidden;transition:transform .45s;box-shadow:0 10px 30px rgba(14,61,20,.12)}
.ext-flash-face.back{transform:rotateY(180deg);font-size:17px;font-weight:500;line-height:1.6}
.ext-flash.flip .ext-flash-face{transform:rotateY(180deg)}
.ext-flash.flip .ext-flash-face.back{transform:rotateY(360deg)}

/* ---------- лента ---------- */
.ext-post{padding:14px 16px;margin-bottom:12px}
.ext-post.ann{border-left:5px solid var(--gold)}
.ext-post-top{display:flex;align-items:center;gap:8px;font-size:13.5px}
.ext-post-body{margin:8px 0;white-space:pre-wrap;line-height:1.6}
.ext-post-actions{display:flex;gap:10px}
.ext-like{background:none;border:1px solid var(--line);border-radius:99px;padding:4px 12px;cursor:pointer;font-size:13px;color:inherit}
.ext-like.on{background:var(--paper);border-color:var(--gold);font-weight:700}
.ext-like.on{background:color-mix(in srgb,var(--gold) 22%,var(--paper));border-color:var(--gold);font-weight:700}
.ext-cmts{margin-top:10px;border-top:1px dashed var(--line);padding-top:8px}
.ext-cmt{font-size:13.5px;padding:4px 0}
.ext-poll{margin:8px 0}
.ext-poll-opt{position:relative;border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin-bottom:6px;cursor:pointer;overflow:hidden;display:flex;justify-content:space-between}
.ext-poll-opt .bar{position:absolute;top:0;left:0;right:0;bottom:0;inset:0;background:transparent;z-index:0;transition:width .4s}
.ext-poll-opt .bar{position:absolute;top:0;left:0;right:0;bottom:0;inset:0;background:color-mix(in srgb,var(--gold) 22%,transparent);z-index:0;transition:width .4s}
.ext-poll-opt .txt,.ext-poll-opt b{position:relative;z-index:1}
.ext-poll-opt.my{border-color:var(--green);font-weight:700}

/* ---------- чат / доска ---------- */
.ext-chat{display:grid;grid-template-columns:220px 1fr;gap:14px;align-items:start}
@media(max-width:760px){.ext-chat{grid-template-columns:1fr}}
.ext-chat-rooms{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:8px;display:flex;flex-direction:column;gap:2px;position:sticky;top:80px}
.ext-chat-rooms a{padding:8px 12px;border-radius:9px;text-decoration:none;color:inherit;font-size:14px}
.ext-chat-rooms a:hover{background:transparent}
.ext-chat-rooms a:hover{background:color-mix(in srgb,var(--gold) 12%,transparent)}
.ext-chat-rooms a.active{background:var(--green);color:#fff}
.ext-chat-main{background:var(--paper);border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;min-height:480px}
.ext-chat-head{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line)}
.ext-chat-msgs{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:8px;max-height:52vh}
.ext-msg{display:flex}
.ext-msg.my{justify-content:flex-end}
.ext-msg-b{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:8px 12px;max-width:78%;font-size:14px}
.ext-msg-b{background:color-mix(in srgb,var(--green) 8%,var(--paper));border:1px solid var(--line);border-radius:14px;padding:8px 12px;max-width:78%;font-size:14px}
.ext-msg.my .ext-msg-b{background:var(--paper);border-color:var(--gold)}
.ext-msg.my .ext-msg-b{background:color-mix(in srgb,var(--gold) 16%,var(--paper));border-color:var(--gold)}
.ext-msg-b b{display:block;font-size:11.5px;color:var(--green-900)}
.ext-msg-b small{display:block;text-align:right;font-size:10px;color:var(--muted);margin-top:2px}
.ext-chat-input{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);align-items:center}
.ext-wb-wrap{border-top:1px solid var(--line);padding:10px}
#wb-cv{width:100%;background:#fff;border:1px solid var(--line);border-radius:10px;touch-action:none;cursor:crosshair}
.ext-wb-col{width:26px;height:26px;border-radius:99px;border:2px solid var(--line);cursor:pointer}

/* ---------- календарь ---------- */
.ext-cal-head{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;font-size:12px;color:var(--muted);text-align:center;margin-bottom:6px;font-weight:700}
.ext-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.ext-cal-cell{min-height:74px;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:6px;position:relative;font-size:12px}
.ext-cal-cell.empty{background:transparent;border-color:transparent}
.ext-cal-cell.today{border:2px solid var(--gold)}
.ext-cal-cell.act{background:var(--paper)}
.ext-cal-cell.act{background:color-mix(in srgb,var(--green) 10%,var(--paper))}
.ext-cal-cell .d{font-weight:700;color:var(--green-900)}
.ext-cal-n{display:block;margin-top:4px;color:var(--ok);font-weight:700}
.ext-cal-dl{position:absolute;top:5px;right:6px}

/* ---------- подписка ---------- */
.ext-lic{border-radius:14px;padding:16px 18px;border:1px solid var(--line)}
.ext-lic.ok{background:var(--paper);border-color:var(--ok)}
.ext-lic.ok{background:color-mix(in srgb,var(--ok) 9%,var(--paper));border-color:var(--ok)}
.ext-lic.warn{background:var(--paper);border-color:var(--gold)}
.ext-lic.warn{background:color-mix(in srgb,var(--gold) 12%,var(--paper));border-color:var(--gold)}
.ext-plans{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.ext-plan{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:8px}
.ext-plan.cur{border:2px solid var(--gold);box-shadow:0 8px 24px rgba(201,162,39,.16)}
.ext-price{font-size:24px;font-weight:800;color:var(--green-900);font-family:var(--serif)}
.ext-price small{font-size:13px;color:var(--muted);font-weight:500}

/* ---------- уведомления ---------- */
.ext-notif{display:flex;gap:12px;align-items:flex-start;padding:12px 16px;border-bottom:1px solid var(--line)}
.ext-notif:last-child{border:none}
.ext-notif.unread{background:var(--paper)}
.ext-notif.unread{background:color-mix(in srgb,var(--gold) 10%,var(--paper))}
.ext-notif .i{font-size:20px}

/* ---------- режимы / арена / экзамен ---------- */
.ext-modes-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
@media(max-width:700px){.ext-modes-grid{grid-template-columns:repeat(2,1fr)}}
.ext-mode{display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 6px;cursor:pointer;font:inherit;font-size:11.5px;color:var(--green-900);font-weight:600}
.ext-mode:hover{border-color:var(--gold);transform:translateY(-2px)}
.ext-mode>*:first-child{font-size:20px}
.ext-modes-page{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.ext-mode-card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:20px;cursor:pointer;transition:all .14s}
.ext-mode-card:hover{border-color:var(--gold);transform:translateY(-3px);box-shadow:0 10px 26px rgba(14,61,20,.12)}
.ext-mode-ic{font-size:34px}
.ext-mode-card h3{margin:8px 0 4px;color:var(--green-900)}
.ext-arena{max-width:860px;margin:0 auto}
.ext-arena-top{display:flex;align-items:center;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.ext-arena-timer{font-size:24px;font-weight:800;color:var(--gold-600);font-variant-numeric:tabular-nums}
.ext-arena-stat{font-size:16px;font-weight:700;color:var(--green-900)}
.ext-arena-score{margin-left:auto;font-size:16px}
.ext-arena-score .cur{color:var(--gold-600);font-weight:800}
.ext-arena-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 10px 30px rgba(14,61,20,.08)}
.ext-arena-fb{min-height:26px;margin-top:10px;font-weight:800;font-size:16px}
.ext-arena-fb .ok{color:var(--ok)}
.ext-arena-fb .no{color:var(--danger)}
.ext-arena-result{max-width:560px;margin:30px auto;padding:34px;text-align:center}
.ext-exam-break{max-width:520px;margin:30px auto;padding:34px;text-align:center}
.ext-exam-clock{font-size:44px;font-weight:800;color:var(--gold-600);font-family:var(--serif);margin:14px 0;font-variant-numeric:tabular-nums}
.ext-exam-flag{margin-left:auto;font-size:12px;font-weight:800;color:var(--danger);border:1px dashed var(--danger);border-radius:99px;padding:3px 10px}

/* ---------- инструменты вопроса ---------- */
.ext-qtools{display:flex;gap:6px;align-items:center;margin:8px 0 2px;flex-wrap:wrap}
.ext-qt{background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:5px 9px;cursor:pointer;font-size:15px;line-height:1}
.ext-qt:hover{border-color:var(--gold)}
.ext-qt.on{background:var(--paper);border-color:var(--gold)}
.ext-qt.on{background:color-mix(in srgb,var(--gold) 25%,var(--paper));border-color:var(--gold)}
.ext-qtimer{font-size:20px;font-weight:800;color:var(--green-900);text-align:center;background:var(--paper);border:1px solid var(--gold);border-radius:12px;padding:8px;margin-bottom:10px;font-variant-numeric:tabular-nums}
.ext-qtimer{font-size:20px;font-weight:800;color:var(--green-900);text-align:center;background:color-mix(in srgb,var(--gold) 14%,var(--paper));border:1px solid var(--gold);border-radius:12px;padding:8px;margin-bottom:10px;font-variant-numeric:tabular-nums}
.ext-qtimer.urgent{color:#fff;background:var(--danger);border-color:var(--danger);animation:extPulse .9s infinite}
@keyframes extPulse{50%{opacity:.65}}
.ext-streak-ind{margin-top:8px;font-weight:800;color:var(--gold-600)}
.ext-pencil{display:flex;align-items:center;gap:10px;margin:8px 0}
.ext-pencil input{width:56px;text-align:center;font-size:22px;font-weight:800;text-transform:uppercase;border:2px solid var(--gold);border-radius:10px;padding:6px}
.ext-explain{margin-top:12px}
.ext-explain label{font-size:13px;font-weight:700;color:var(--green-900)}
.ext-explain textarea{width:100%;border:1px dashed var(--line);border-radius:10px;padding:8px 10px;font:inherit;font-size:13.5px;box-sizing:border-box;background:var(--paper)}
.ext-hint-row{padding:6px 0;border-bottom:1px dashed var(--line)}

/* ---------- CQ-виджеты ---------- */
.ext-cq-widget{margin-top:14px}
.ext-cq-opt{display:flex;gap:8px;align-items:baseline;border:1px solid var(--line);border-radius:10px;padding:9px 12px;margin-bottom:6px;cursor:pointer;font-size:14.5px}
.ext-cq-opt.on{border-color:var(--green);background:var(--paper);font-weight:600}
.ext-cq-opt.on{border-color:var(--green);background:color-mix(in srgb,var(--green) 8%,var(--paper));font-weight:600}
.ext-cq-item{border:1px solid var(--line);border-radius:10px;padding:9px 12px;margin-bottom:6px;background:var(--paper);cursor:grab;user-select:none;font-size:14.5px}
.ext-cq-item.drag{opacity:.5;border-style:dashed}
.ext-cq-mrow{display:flex;gap:10px;align-items:center;margin-bottom:8px;flex-wrap:wrap}
.ext-cq-left{flex:1;min-width:160px}
.ext-cq-mrow select{padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:var(--paper);font:inherit}
.ext-cq-blank input{margin:4px 8px 4px 0;padding:8px 12px;border:1px solid var(--line);border-radius:9px;font:inherit;background:var(--paper)}
.ext-cq-graph{max-width:100%;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:crosshair}
.ext-cq-table table{border-collapse:collapse;margin:8px 0}
.ext-cq-table td,.ext-cq-table th{border:1px solid var(--line);padding:6px 12px;font-size:14px}
.ext-cq-table th{background:var(--paper)}
.ext-cq-table th{background:color-mix(in srgb,var(--green) 8%,var(--paper))}
.ext-cq-row{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:8px;font-size:14px;flex-wrap:wrap}
.ext-assign-row{display:flex;align-items:center;gap:10px;padding:12px 16px;margin-bottom:10px;flex-wrap:wrap}
.ext-assign-list{margin-top:8px}
.ext-chipset{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.ext-chip2{background:var(--paper);border:1px solid var(--line);border-radius:99px;padding:3px 10px;font-size:12.5px}
.ext-chip2{background:color-mix(in srgb,var(--green) 8%,var(--paper));border:1px solid var(--line);border-radius:99px;padding:3px 10px;font-size:12.5px}
.ext-chip2 a{text-decoration:none;color:var(--danger);margin-left:2px}

/* ---------- конфетти ---------- */
.ext-confetti{position:fixed;top:0;left:0;right:0;bottom:0;inset:0;pointer-events:none;z-index:400}

/* ============================================================
   ДОСТУПНОСТЬ
   ============================================================ */
body.font-readable{letter-spacing:.02em;word-spacing:.06em;line-height:1.7}
body.font-readable .q-text{font-size:18px;line-height:1.85}
body.font-dyslexic,body.font-dyslexic .q-text,body.font-dyslexic .choice .ctxt{font-family:'Comic Sans MS','Comic Sans',Verdana,sans-serif!important;letter-spacing:.06em;word-spacing:.14em;line-height:1.85}
body.font-kid{font-family:'Segoe UI Rounded','Comic Sans MS',Verdana,sans-serif}
body.hi-contrast{--line:#4a5a4c;--muted:#2c3a2e}
body.hi-contrast .panel,body.hi-contrast .ext-qrow{border-width:2px}
body.hi-contrast .btn-outline{border-width:2px}
body[data-cb="deu"]{--ok:#0072B2;--danger:#E69F00}
body[data-cb="pro"]{--ok:#0072B2;--danger:#D55E00}
body[data-cb="tri"]{--ok:#009E73;--danger:#CC79A7}
body[data-wall="paper"] .main{background-image:repeating-linear-gradient(0deg,transparent,transparent 27px,transparent 28px)}
body[data-wall="paper"] .main{background-image:repeating-linear-gradient(0deg,transparent,transparent 27px,color-mix(in srgb,var(--line) 42%,transparent) 28px)}
body[data-wall="grid"] .main{background-image:linear-gradient(transparent 1px,transparent 1px),linear-gradient(90deg,transparent 1px,transparent 1px);background-size:26px 26px}
body[data-wall="grid"] .main{background-image:linear-gradient(color-mix(in srgb,var(--line) 36%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--line) 36%,transparent) 1px,transparent 1px);background-size:26px 26px}
body[data-wall="mint"]{--bg:#eef6ee}

/* печать: только контент */
@media print{.topbar,.ext-more,.ext-bell,.ext-chips,.toolbar,.btn,.ext-tabs{display:none!important}}

/* ---------- пакет v2.1: дневник · наборы · теория · отзывы ---------- */
.ext-day{padding:12px 16px;margin-bottom:10px}
.ext-day-today{border:2px solid var(--gold)}
.ext-day-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ext-day-note{margin-top:8px;background:var(--paper);border-left:4px solid var(--gold);border-radius:0 10px 10px 0;padding:8px 12px;white-space:pre-wrap;font-size:14px;line-height:1.6}
.ext-day-note{margin-top:8px;background:color-mix(in srgb,var(--gold) 10%,var(--paper));border-left:4px solid var(--gold);border-radius:0 10px 10px 0;padding:8px 12px;white-space:pre-wrap;font-size:14px;line-height:1.6}
.ext-qr{text-align:center;margin-top:8px}
.ext-qr img{border:1px solid var(--line);border-radius:12px;padding:6px;background:#fff}
.ext-kb textarea{font-family:inherit;line-height:1.7}
.ext-cmt-list{max-height:46vh;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:var(--paper)}
.ext-cmt-list{max-height:46vh;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:color-mix(in srgb,var(--green) 4%,var(--paper))}
.ext-ritools{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.ext-adapt-lvl{color:var(--gold-600)}

/* ---------- тарифы: Стандарт/Премиум ---------- */
.ext-plan{position:relative}
.ext-plan-prem{border:2px solid var(--gold);background:linear-gradient(160deg,var(--paper),var(--paper))}
.ext-plan-prem{border:2px solid var(--gold);background:linear-gradient(160deg,color-mix(in srgb,var(--gold) 10%,var(--paper)),var(--paper))}
.ext-plan-badge{position:absolute;top:-11px;right:12px;background:var(--gold);color:#3a2e00;font-size:11px;font-weight:800;border-radius:99px;padding:3px 11px;letter-spacing:.03em}
.ext-plan-badge-std{background:var(--green);color:#fff}

/* ---------- v2.5: касса и AI ---------- */
.ext-invoice table td:first-child{color:var(--muted);width:200px}
@media print{body *{visibility:hidden}.ext-invoice,.ext-invoice *{visibility:visible}.ext-invoice{position:absolute;left:0;top:0;width:100%;box-shadow:none;border:none}}
#ai-msgs .ext-msg-b{max-width:88%}


/* ============================================================
   📱 МОБИЛЬНЫЙ ПРОХОД: крупные цели нажатия, прокрутка таблиц, меню-шторка
   ============================================================ */
@media(max-width:760px){
  .btn{padding:11px 15px;font-size:14.5px}
  .btn-sm{padding:8px 12px}
  .ext-qt{padding:9px 12px;font-size:18px}
  .ext-more-btn{padding:10px 14px;font-size:15px}
  .ext-menu{position:fixed;left:8px;right:8px;top:64px;bottom:12px;max-width:none;max-height:none;z-index:9999;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:24px;box-shadow:0 20px 60px rgba(0,0,0,.4)}
  .ext-menu a{padding:12px 14px;font-size:15px}
  .ext-tbl{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .ext-tabs a{padding:10px 14px;font-size:14px}
  .ext-modal-card{padding:16px;border-radius:14px}
  .ext-hb{width:34px;height:34px}
  .ext-chat-msgs{max-height:46vh}
  .ext-assign-row .btn{flex:1 1 auto}
  input,select,textarea{font-size:16px !important} /* iOS: без авто-зума при фокусе */
}

/* ============================================================
   🧮 КАЛЬКУЛЯТОР (SAT-стиль)
   ============================================================ */
#ext-calc-float{position:fixed;right:18px;top:76px;width:392px;max-width:calc(100vw - 24px);background:var(--paper);border:1px solid var(--gold);border-radius:16px;box-shadow:0 22px 60px rgba(14,61,20,.28);z-index:180;display:flex;flex-direction:column;overflow:hidden}
.ec-head{display:flex;align-items:center;gap:8px;padding:9px 12px;background:linear-gradient(180deg,var(--green) 0%,var(--green-900) 140%);color:#fff;cursor:move;user-select:none;touch-action:none}
.ec-tabs{display:flex;gap:4px}
.ec-tabs button{background:rgba(255,255,255,.14);border:none;color:#fff;border-radius:8px;padding:5px 10px;cursor:pointer;font-size:12.5px}
.ec-tabs button.on{background:var(--gold);color:#3a2e00;font-weight:800}
.ec-x{background:none;border:none;color:#fff;font-size:17px;cursor:pointer;padding:2px 6px}
.ec-body{padding:12px;overflow:auto;max-height:74vh}
.ec-disp{background:#123018;border-radius:12px;padding:10px 14px;margin-bottom:10px}
.ec-expr{color:#cfe3d2;font-size:15px;min-height:20px;word-break:break-all;font-family:ui-monospace,Consolas,monospace}
.ec-res{color:var(--gold);font-size:26px;font-weight:800;text-align:right;font-family:ui-monospace,Consolas,monospace;min-height:32px}
.ec-res.final{color:#fff}
.ec-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.ec-k{padding:11px 4px;border:1px solid var(--line);border-radius:10px;background:var(--paper);font-size:14.5px;font-weight:600;cursor:pointer;color:var(--green-900)}
.ec-k:active{transform:scale(.96)}
.ec-num{background:var(--paper);font-size:16px}
.ec-num{background:color-mix(in srgb,var(--green) 6%,var(--paper));font-size:16px}
.ec-eq{background:var(--gold);border-color:var(--gold);color:#3a2e00;font-weight:800;font-size:18px}
.ec-gwrap{position:relative}
.ec-canvas{width:100%;height:300px;background:#fff;border:1px solid var(--line);border-radius:12px;display:block;cursor:crosshair}
.ec-page .ec-canvas{height:420px}
.ec-gtools{position:absolute;right:8px;top:8px;display:flex;flex-direction:column;gap:5px}
.ec-fns{margin-top:8px;display:flex;flex-direction:column;gap:6px}
.ec-frow{display:flex;align-items:center;gap:7px}
.ec-dot{width:14px;height:14px;border-radius:99px;flex:none}
.ec-fin{flex:1;font-family:ui-monospace,Consolas,monospace}
.ec-fin.err{border-color:var(--danger)}
.ec-eye{background:none;border:1px solid var(--line);border-radius:8px;padding:6px 8px;cursor:pointer;opacity:.4}
.ec-eye.on{opacity:1;border-color:var(--green)}
.ec-del{background:none;border:none;color:var(--danger);cursor:pointer;font-size:15px}
.ec-desmos{width:100%;height:430px;border:1px solid var(--line);border-radius:12px;background:#fff}
.ec-page .ec-desmos{height:560px}
@media(max-width:760px){
  #ext-calc-float{left:0;right:0;top:auto;bottom:0;width:auto;max-width:none;border-radius:16px 16px 0 0;border-left:none;border-right:none;border-bottom:none}
  .ec-body{max-height:62vh}
  .ec-head{cursor:default}
  .ec-canvas{height:250px}
}

/* ---------- Центр доступа: кнопки-переключатели разделов ---------- */
.ext-hb2{padding:7px 11px;border:1px solid var(--line);border-radius:9px;background:var(--paper);cursor:pointer;font-size:12.5px;color:var(--green-900)}
.ext-hb2:hover{border-color:var(--gold)}
.ext-hb2.block{background:var(--paper);border-color:var(--danger);color:var(--danger);text-decoration:line-through}
.ext-hb2.block{background:color-mix(in srgb,var(--danger) 14%,var(--paper));border-color:var(--danger);color:var(--danger);text-decoration:line-through}
@media(max-width:760px){.ext-assign-row .btn{flex:1 1 auto;font-size:13px}}
