/* Programmator v6.7 shared UX */
:root{--v67-board:#fff;--v67-ink:#14172b}
/* one drawing tool only: old inline canvases/boards are hidden */
.sketch-toolbar,.sketch-canvas,#ogeBoardBtn,#ogeBoard,#egeBoardBtn,#egeBoard{display:none!important}
html,body{max-width:100%;overflow-x:hidden}
.wrap.page-head,.wrap.layout{box-sizing:border-box;padding-left:32px!important;padding-right:32px!important}
.demo-question{font-family:var(--sans)!important;font-size:1.03rem!important;line-height:1.62!important;overflow-wrap:anywhere}
.demo-question .lede-line,.demo-question .lit-text{font-size:1rem!important;line-height:1.58!important}
.table-scroll{max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch}
#v67-board-fab{position:fixed;right:18px;bottom:18px;z-index:9500;border:1px solid var(--accent2,#4fb6a6);background:var(--panel,#191d38);color:var(--accent2,#4fb6a6);border-radius:999px;padding:10px 15px;font:700 .82rem var(--mono,monospace);cursor:pointer;box-shadow:0 8px 28px rgba(0,0,0,.28)}
#v67-board{position:fixed;z-index:9502;right:16px;top:84px;width:min(720px,calc(100vw - 32px));height:min(560px,calc(100dvh - 105px));min-width:320px;min-height:280px;display:none;flex-direction:column;background:var(--v67-board);border:2px solid var(--accent2,#4fb6a6);border-radius:12px;box-shadow:0 18px 60px rgba(0,0,0,.45);resize:both;overflow:hidden;color:var(--v67-ink)}
#v67-board.open{display:flex}
#v67-boardbar{display:flex;align-items:center;gap:5px;flex-wrap:nowrap;overflow-x:auto;padding:7px;background:#1b1f3a;color:#eee;user-select:none;touch-action:none;cursor:move;min-height:38px}
#v67-boardbar button{flex:0 0 auto;border:1px solid #41476f;background:#272c52;color:#eee;border-radius:5px;padding:5px 8px;font:700 .76rem var(--mono,monospace);cursor:pointer;white-space:nowrap}
#v67-boardbar button.on{background:var(--accent2,#4fb6a6);border-color:var(--accent2,#4fb6a6);color:#101323}
#v67-boardbar .spacer{flex:1;min-width:8px}
#v67-boardbar .close{font-size:16px;line-height:1;padding:4px 8px}
#v67-boardspace{position:relative;flex:1;min-height:0;overflow:auto;outline:none;background-color:#fff;background-image:radial-gradient(#d5d8e4 1px,transparent 1px);background-size:22px 22px;touch-action:none}
#v67-boardspace[data-tool="pen"],#v67-boardspace[data-tool="line"],#v67-boardspace[data-tool="arrow"],#v67-boardspace[data-tool="rect"],#v67-boardspace[data-tool="ellipse"]{cursor:crosshair}
.v67-board-object{position:absolute;box-sizing:border-box;user-select:none;touch-action:none;min-width:20px;min-height:20px}
.v67-board-object.selected{outline:2px solid #3b82f6;outline-offset:2px}
.v67-board-object .v67-resize{display:none;position:absolute;width:12px;height:12px;right:-7px;bottom:-7px;border:2px solid #fff;background:#3b82f6;border-radius:2px;cursor:nwse-resize;z-index:5}
.v67-board-object.selected .v67-resize{display:block}
.v67-board-object img{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none;background:white}
.v67-board-html{width:100%;height:100%;overflow:auto;background:rgba(255,255,255,.97);border:1px solid #bbb;border-radius:6px;padding:10px;box-sizing:border-box;color:#111;font:14px/1.45 Arial,sans-serif;user-select:text;pointer-events:none}
.v67-board-html table{max-width:100%;border-collapse:collapse}.v67-board-html td,.v67-board-html th{border:1px solid #aaa;padding:4px}.v67-board-html svg{max-width:100%;height:auto}
.v67-board-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
/* Scroll variants */
body.v67-variant-mode .page-head,body.v67-variant-mode .layout,body.v67-variant-mode #variant-progress,body.v67-variant-mode #variant-overlay{display:none!important}
#v67-variant-root{display:none;max-width:1050px;margin:0 auto;padding:34px 24px 90px;box-sizing:border-box}
body.v67-variant-mode #v67-variant-root{display:block}
.v67-variant-head{position:sticky;top:0;z-index:70;background:color-mix(in srgb,var(--bg,#101326) 94%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line,#303554);padding:12px 0 10px;margin-bottom:18px}
.v67-variant-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.v67-variant-title h1{font-size:1.35rem;margin:0}.v67-variant-title .spacer{flex:1}
.v67-variant-nav{display:flex;gap:6px;overflow-x:auto;padding:9px 0 2px;scrollbar-width:thin}
.v67-nav-chip{flex:0 0 auto;min-width:34px;height:32px;border-radius:7px;border:1px solid var(--line,#343957);background:var(--panel,#191d38);color:var(--text,#eee);font:700 .75rem var(--mono,monospace);cursor:pointer}
.v67-nav-chip.active{border-color:var(--accent2,#4fb6a6);color:var(--accent2,#4fb6a6)}.v67-nav-chip.done{background:rgba(79,182,166,.14)}
.v67-variant-card{scroll-margin-top:116px;background:var(--panel,#191d38);border:1px solid var(--line,#303554);border-radius:10px;margin:0 0 18px;padding:20px;min-width:0}
.v67-card-head{display:flex;gap:10px;align-items:flex-start;margin-bottom:14px}.v67-card-num{flex:0 0 auto;display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:var(--accent2,#4fb6a6);color:#121527;font:800 .9rem var(--mono,monospace)}
.v67-card-title{font-weight:700}.v67-card-sub{font-size:.8rem;color:var(--text-dim,#aaa);margin-top:3px}
.v67-question{font-size:1rem;line-height:1.6;min-width:0;overflow-wrap:anywhere}.v67-question table{max-width:100%}.v67-question svg{max-width:100%;height:auto}
.v67-answer-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:16px}.v67-answer-row input[type=text]{min-width:180px;max-width:430px;flex:1}.v67-answer-row textarea{width:100%;min-height:150px}
.v67-card-feedback{min-height:22px;margin-top:10px;font-size:.9rem}.v67-card-feedback.yes{color:var(--accent2,#4fb6a6)}.v67-card-feedback.no{color:var(--accent,#ef7b79)}
.v67-hint{display:none;margin-top:10px;padding:12px;border-left:3px solid var(--accent2,#4fb6a6);background:rgba(79,182,166,.08);font-size:.9rem;white-space:pre-wrap}
.v67-summary{display:none;padding:18px;border:1px solid var(--accent2,#4fb6a6);border-radius:10px;margin-top:20px}
.v67-summary.open{display:block}
@media(max-width:760px){
  .wrap.page-head,.wrap.layout{padding-left:10px!important;padding-right:10px!important}
  .page-head h1{padding-left:0!important}
  .layout{grid-template-columns:54px minmax(0,1fr)!important;gap:9px!important;align-items:start!important}
  #topic-list{grid-column:1!important;position:sticky!important;top:8px!important;align-self:start!important;width:54px!important;min-width:54px!important;max-width:54px!important;z-index:25!important}
  #question-view{grid-column:2!important;min-width:0!important;width:100%!important}
  #topic-list .topic-list,#topic-list .topic-scroll,#task-tabs{display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;gap:2px!important;max-height:calc(100dvh - 20px)!important;overflow-y:auto!important;overflow-x:hidden!important;padding:0 3px 0 0!important}
  #topic-list .topic-btn,#task-tabs .task-tab{width:48px!important;min-width:48px!important;max-width:48px!important;padding:8px 2px!important;font-size:0!important;text-align:center!important;border-radius:5px!important}
  #topic-list .topic-btn::before{content:attr(data-tasknum);font:700 13px var(--mono,monospace)}
  #topic-list .topic-btn .topic-sub,#task-tabs .task-tab .tab-sub{display:none!important}
  #task-tabs .task-tab::before{content:attr(data-task);font:700 13px var(--mono,monospace)}
  .demo-card,section[id^="task-"]{min-width:0!important;max-width:100%!important}
  .demo-question{font-size:1rem!important}.table-scroll{width:100%;max-width:100%;overflow:auto!important}
  body{padding-bottom:62px!important}
  /* компактный нижний док: инструменты не закрывают таблицы/условие на телефоне */
  #feedback-fab{width:40px!important;height:40px!important;right:8px!important;bottom:8px!important}
  #v67-board-fab{width:40px!important;height:40px!important;right:54px!important;bottom:8px!important;padding:0!important;font-size:0!important;display:grid!important;place-items:center!important}#v67-board-fab::after{content:'✎';font-size:16px}
  #ege-py-fab{width:40px!important;height:40px!important;right:100px!important;bottom:8px!important;padding:0!important;font-size:0!important;display:grid!important;place-items:center!important}#ege-py-fab::after{content:'</>';font:700 10px var(--mono,monospace)}
  #v67-board{left:4px!important;right:auto!important;top:4px!important;width:calc(100vw - 8px)!important;height:min(72dvh,560px)!important;min-width:0!important;resize:none}
  #v67-boardbar{cursor:default}
  #v67-variant-root{padding:12px 10px 70px}.v67-variant-head{top:0;padding-top:8px}.v67-variant-card{padding:14px;scroll-margin-top:106px}.v67-card-num{width:30px;height:30px}.v67-answer-row{align-items:stretch}.v67-answer-row input[type=text],.v67-answer-row .btn{width:100%;max-width:none}
}

/* ===== v6.8: мобильная раскладка, плавающие кнопки, меню ===== */
.mobile-nav{z-index:9700!important}
.v68-variant-top{grid-column:1/-1!important;width:100%!important;margin:0 0 2px!important}
.v68-variant-top #variant-toggle-btn,.v68-variant-top #variant-open-btn{width:100%!important;white-space:normal}
@media(max-width:760px){
  .wrap.layout>#topic-list~*{grid-column:2!important;min-width:0!important}
  .wrap.layout>#topic-list{grid-row:auto}
  #feedback-fab,#v67-board-fab,#ege-py-fab{transition:transform .22s ease,opacity .22s ease}
  body.v68-fabs-hidden #feedback-fab,body.v68-fabs-hidden #v67-board-fab,body.v68-fabs-hidden #ege-py-fab{transform:translateY(72px)!important;opacity:0!important;pointer-events:none!important}
  body{padding-bottom:72px!important}
}
/* Десктоп: доска и Python стоят в ряд левее кнопки обратной связи, а не поверх неё */
@media(min-width:761px){
  html body #v67-board-fab{right:84px!important;bottom:27px!important}
  html body #ege-py-fab{right:182px!important;bottom:26px!important}
}

/* ===== v6.8: доска ===== */
#v67-boardbar .v68-tool{display:grid;place-items:center;width:32px;height:30px;padding:0}
#v67-boardbar .v68-tool svg{display:block}
#v67-boardbar .v68-gap{flex:0 0 1px;align-self:stretch;margin:2px 3px;background:#41476f}
#v67-boardbar .v68-swatch{width:22px;height:22px;padding:0;border-radius:50%;border:2px solid #41476f;background:var(--sw)!important}
#v67-boardbar .v68-swatch.on{border-color:#fff;box-shadow:0 0 0 2px var(--accent2,#4fb6a6)}
#v67-boardbar .v68-width{display:grid;place-items:center;width:34px;height:30px;padding:0}
#v67-boardspace[data-tool="text"]{cursor:text}
#v67-boardspace[data-tool="eraser"]{cursor:cell}
#v67-boardspace[data-tool="select"]{cursor:default}
.v68-objlayer{position:absolute;inset:0;pointer-events:none}
.v68-objlayer .v67-board-object{pointer-events:auto}
.v67-board-object .v67-resize{display:none!important}
.v67-board-object.selected{outline:none}
#v67-boardspace[data-tool="select"] .v67-board-object{cursor:move}
.v68-hit{pointer-events:none}
#v67-boardspace[data-tool="select"] .v68-hit{pointer-events:stroke;cursor:move}
.v68-text{min-width:0;min-height:0;padding:0;background:transparent}
.v68-text-body{white-space:pre;line-height:1.25;padding:3px 6px;font-family:Arial,sans-serif;font-weight:600;outline:none;min-width:30px;min-height:1.25em}
.v68-text.v68-editing{outline:1.5px dashed #3b82f6;outline-offset:1px;background:rgba(255,255,255,.85);cursor:text}
.v68-sel{position:absolute;pointer-events:none;z-index:20}
.v68-sel-box{border:1.5px dashed #3b82f6;border-radius:2px}
.v68-handle{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;background:#fff;border:2px solid #3b82f6;border-radius:3px;pointer-events:auto;box-sizing:border-box;touch-action:none}
.v68-end{border-radius:50%;width:14px;height:14px;margin:-7px 0 0 -7px;cursor:crosshair}
.v68-h-nw{left:0;top:0;cursor:nwse-resize}.v68-h-n{left:50%;top:0;cursor:ns-resize}.v68-h-ne{left:100%;top:0;cursor:nesw-resize}
.v68-h-e{left:100%;top:50%;cursor:ew-resize}.v68-h-se{left:100%;top:100%;cursor:nwse-resize}.v68-h-s{left:50%;top:100%;cursor:ns-resize}
.v68-h-sw{left:0;top:100%;cursor:nesw-resize}.v68-h-w{left:0;top:50%;cursor:ew-resize}
.v68-del{position:absolute;right:-12px;top:-30px;width:24px;height:24px;display:grid;place-items:center;padding:0;border:1px solid #fca5a5;background:#fff;color:#dc2626;border-radius:6px;pointer-events:auto;cursor:pointer;box-shadow:0 2px 6px rgba(0,0,0,.15)}
.v68-sel-line .v68-del{right:auto}
@media (pointer:coarse){.v68-handle{width:20px;height:20px;margin:-10px 0 0 -10px}.v68-end{width:22px;height:22px;margin:-11px 0 0 -11px}.v68-del{width:30px;height:30px;top:-38px}}
@media(max-width:760px){#v67-boardbar{gap:4px}#v67-boardbar .v68-tool{width:30px}#v67-boardbar .v68-swatch{width:20px;height:20px}}
.v68-shape-svg{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none}
/* панель доски переносится на вторую строку, а не прячет кнопки за прокруткой */
#v67-boardbar{flex-wrap:wrap!important;overflow-x:visible!important;row-gap:5px}
/* поле ответа в варианте выглядит одинаково в ОГЭ и ЕГЭ */
.v67-answer-row input[type=text]{background:var(--bg-alt,#1b1e3a);border:1px solid var(--line,#303554);border-radius:4px;padding:11px 14px;color:var(--text,#ece8dc);font:1rem var(--mono,monospace);outline:none;box-sizing:border-box}
.v67-answer-row input[type=text]:focus{border-color:var(--accent2,#4fb6a6)}
.v67-answer-row input[type=text]:disabled{opacity:.7}
/* в режиме варианта пустой исходный <main> тренажёра не оставляет отступ над вариантом */
body:has(#v67-variant-root) main:not(#v67-variant-root){display:none!important}
