:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#172b3a;background:#f4f7fa;line-height:1.6}*{box-sizing:border-box}body{margin:0}header,main,footer{max-width:1120px;margin:auto;padding:24px}header{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #d5dfe6}nav{display:flex;gap:16px;align-items:center;flex-wrap:wrap}nav form{margin:0}.brand{font-weight:800;letter-spacing:.08em;color:#172b3a;text-decoration:none}main{min-height:70vh}h1{font-size:clamp(1.9rem,4vw,3rem);line-height:1.15;max-width:850px}h2{font-size:1.35rem;line-height:1.4}a{color:#075b8b}section{background:white;border:1px solid #d5dfe6;border-radius:12px;padding:24px;margin:24px 0}.eyebrow{font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#45677c}input,select,textarea{display:block;max-width:100%;width:100%;font:inherit;padding:10px;border:1px solid #a3b4bf;border-radius:6px;background:white;color:inherit}input[type=checkbox]{display:inline;width:auto}label{display:block;margin:12px 0 6px}button,.button{display:inline-block;font:inherit;font-weight:600;border:1px solid #9ab0bf;border-radius:6px;padding:8px 14px;background:white;color:#164a66;cursor:pointer;text-decoration:none;margin:8px 0}.primary,.button{background:#075b8b;color:white;border-color:#075b8b}button:disabled{opacity:.5;cursor:default}.message{background:#e5eff5;border-left:4px solid #075b8b;padding:12px}.errorlist{color:#a11e2c}footer{border-top:1px solid #d5dfe6;font-size:.85rem;color:#45677c}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;background:white}th,td{text-align:left;border:1px solid #d5dfe6;padding:10px;vertical-align:top;max-width:440px;overflow-wrap:anywhere}th{background:#e8eff4;white-space:nowrap}.filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}pre{white-space:pre-wrap;overflow-wrap:anywhere}.code{font-family:monospace;font-size:1.7rem;letter-spacing:.15em}@media(max-width:650px){header{align-items:flex-start;flex-direction:column}header,main,footer{padding:16px}section{padding:16px}.filters{grid-template-columns:1fr}}

/* Широкие страницы (рабочее место студента, журнал): на весь экран. */
main.wide{max-width:none;padding:20px 32px}
main.wide h1{max-width:none}

/* Рабочее место: сводка сверху */
.workspace-head{display:flex;flex-wrap:wrap;gap:12px 32px;align-items:baseline;justify-content:space-between}
.workspace-head h1{margin:.2em 0}
.progress-line{display:flex;flex-wrap:wrap;gap:8px 20px;margin:0;color:#45677c}
.progress-line b{color:#172b3a}
.guide-banner{background:#e8f4ee;border:1px solid #b6dcc8;border-left:4px solid #13a67b;border-radius:8px;padding:12px 16px;margin:12px 0}

/* Вопросы — раскрывающиеся карточки под журналом */
.tasks-list{margin:24px 0}
details.task{background:white;border:1px solid #d5dfe6;border-radius:10px;margin:10px 0}
details.task>summary{cursor:pointer;list-style:none;display:flex;gap:12px;align-items:center;padding:14px 18px;font-weight:600}
details.task>summary::-webkit-details-marker{display:none}
details.task>summary::before{content:"▸";color:#075b8b;transition:transform .15s}
details.task[open]>summary::before{transform:rotate(90deg)}
details.task>summary .task-q{flex:1}
details.task .task-body{padding:0 18px 18px 40px}
.task-status{font-size:.85rem;font-weight:700;border-radius:999px;padding:2px 10px;white-space:nowrap;background:#eef2f5;color:#45677c}
.task-status.ok{background:#e1f5ec;color:#0d7a58}
.task-status.fail{background:#fbe9e9;color:#a11e2c}
details.task.solved{border-color:#9fd8bf}
.task-form{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.task-form label{width:100%;margin-bottom:0}
.task-form input,.task-form select{flex:1 1 280px;width:auto}
.format-error{color:#a11e2c;font-weight:600}
.flash-ok{color:#0d7a58;font-weight:700}
.flash-bad{color:#a11e2c;font-weight:700}

/* Обучение */
.guide figure{margin:16px 0}
.guide img{max-width:100%;height:auto;border:1px solid #d5dfe6;border-radius:8px}
.guide figcaption{font-size:.9rem;color:#45677c}
.guide code{background:#eef2f5;padding:1px 5px;border-radius:4px}
.guide-toc{columns:2;column-gap:32px}
@media(max-width:650px){main.wide{padding:12px}.guide-toc{columns:1}details.task .task-body{padding:0 12px 12px}}

/* ======================================================================
   Оформление «Терминал» (вариант A): почти чёрный фон, зелёный акцент,
   моноширинные заголовки. Шрифты — системные (Consolas / Cascadia Mono),
   внешние шрифты не грузим (CSP: только свой сайт).
   ====================================================================== */
:root{
  --t-bg:#0a0e13; --t-panel:#10161d; --t-panel2:#151d26; --t-line:#1f2a36;
  --t-fg:#d6e2ee; --t-muted:#8a9bad; --t-acc:#2bf59b; --t-acc-ink:#04130b; --t-warn:#f5c542; --t-bad:#ff5f6d;
  --t-mono:"JetBrains Mono","Cascadia Mono",Consolas,"DejaVu Sans Mono",monospace;
  color:var(--t-fg); background:var(--t-bg); color-scheme:dark;
}
html,body{background:var(--t-bg);color:var(--t-fg)}
body{background-image:linear-gradient(rgba(43,245,155,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(43,245,155,.035) 1px,transparent 1px);background-size:32px 32px}
header{max-width:none;padding:14px 32px;border-bottom:1px solid var(--t-line);background:rgba(10,14,19,.9)}
.brand{color:var(--t-acc);font-family:var(--t-mono);letter-spacing:.12em}
.brand::before{content:"▍";color:var(--t-acc)}
nav a{color:var(--t-muted);text-decoration:none;font-family:var(--t-mono);font-size:.92rem}
nav a:hover,nav a:focus-visible{color:var(--t-acc)}
h1,h2,h3{font-family:var(--t-mono);letter-spacing:-.01em;color:var(--t-fg)}
h1::before{content:"> ";color:var(--t-acc)}
h2::before{content:"## ";color:var(--t-muted)}
.eyebrow{color:var(--t-acc);font-family:var(--t-mono)}
a{color:var(--t-acc)}
section,details.task{background:var(--t-panel);border:1px solid var(--t-line)}
.message{background:rgba(43,245,155,.07);border-left:3px solid var(--t-acc);color:var(--t-fg)}
.guide-banner{background:rgba(43,245,155,.07);border:1px solid rgba(43,245,155,.3);border-left:3px solid var(--t-acc);color:var(--t-fg)}
.progress-line span{background:var(--t-panel);border:1px solid var(--t-line);border-radius:6px;padding:6px 12px;font-family:var(--t-mono);color:var(--t-muted)}
.progress-line b{color:var(--t-acc)}
details.task>summary::before{color:var(--t-acc)}
details.task.solved{border-color:rgba(43,245,155,.45);box-shadow:inset 3px 0 0 var(--t-acc)}
.task-status{background:var(--t-panel2);color:var(--t-muted);font-family:var(--t-mono)}
.task-status.ok{background:rgba(43,245,155,.12);color:var(--t-acc)}
.task-status.fail{background:rgba(255,95,109,.12);color:var(--t-bad)}
.format-error{color:var(--t-warn)}
.flash-ok{color:var(--t-acc)}.flash-bad{color:var(--t-bad)}
.errorlist{color:var(--t-bad)}
input,select,textarea{background:var(--t-bg);border:1px solid var(--t-line);color:var(--t-fg);font-family:var(--t-mono)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--t-acc);outline-offset:1px;border-color:var(--t-acc)}
input[type=checkbox]{accent-color:var(--t-acc)}
button,.button{background:var(--t-panel2);color:var(--t-fg);border:1px solid var(--t-line)}
button:hover{border-color:var(--t-acc)}
.primary,.button{background:var(--t-acc);color:var(--t-acc-ink);border-color:var(--t-acc)}
.primary:hover,.button:hover{filter:brightness(1.08)}
table{background:var(--t-panel);color:var(--t-fg)}
th,td{border-color:var(--t-line)}
th{background:var(--t-panel2);color:var(--t-muted)}
.guide code,code{background:var(--t-panel2);color:var(--t-acc);font-family:var(--t-mono)}
.guide img{border-color:var(--t-line)}
.guide figcaption,footer{color:var(--t-muted)}
footer{border-top:1px solid var(--t-line)}
.code{color:var(--t-acc);font-family:var(--t-mono)}
/* Журнал событий: те же цвета (селектор сильнее, чем у analysis.css) */
body .cpa{--cpa-bg:#10161d;--cpa-fg:#d6e2ee;--cpa-muted:#8a9bad;--cpa-line:#1f2a36;--cpa-soft:#151d26;--cpa-accent:#2bf59b;--cpa-accent-soft:rgba(43,245,155,.1);--cpa-error:#ff5f6d}
body .cpa .cpa-mono{font-family:var(--t-mono)}
/* Админка Django оставлена в своём оформлении. */
