.sgn-page{max-width:1160px;margin:auto;padding:48px 28px 80px}.hero-row{display:flex;justify-content:space-between;align-items:center;gap:30px}.hero-row h1{font-size:clamp(32px,4.5vw,52px);line-height:1.12;letter-spacing:-1.8px;margin:14px 0 20px}.eyebrow{font-size:11px;letter-spacing:1.8px;font-weight:700;color:var(--accent-deep)}.lead{font-size:17px;line-height:1.6;color:var(--muted)}.seal{width:210px;height:210px;object-fit:contain;flex-shrink:0}.notice{padding:12px 16px;border-left:3px solid var(--accent);background:var(--accent-soft);font-size:13px;line-height:1.5;margin:26px 0}.picker{display:grid;grid-template-columns:1fr 1.3fr .5fr;gap:20px;padding:24px;background:var(--surface);border:1px solid var(--line-soft);border-radius:16px}.picker label{display:grid;gap:9px;font-size:12px;color:var(--muted)}.picker select{width:100%;font:15px inherit;color:var(--ink);padding:12px 14px;background:var(--surface);border:1.5px solid var(--line);border-radius:12px}.work-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:28px;margin-top:32px}.help{font-size:13px;color:var(--muted);line-height:1.6}.task{border:1px solid var(--line-soft);border-radius:14px;background:var(--surface);margin:16px 0;overflow:hidden}.task summary{padding:20px;cursor:pointer;font-weight:600;display:flex;gap:12px;align-items:center;list-style:none}.task summary::after{content:'+';margin-left:auto;font-size:22px;color:var(--muted)}.task[open] summary::after{content:'−'}.task-number{background:var(--surface-2);width:30px;height:30px;display:grid;place-items:center;border-radius:9px;flex-shrink:0}.task[data-correct=true]{border-color:var(--good)}.task[data-correct=true] .task-number{background:var(--good-bg);color:var(--good)}.task-body{padding:0 20px 20px}.sgn-condition{white-space:pre-wrap;font:14px/1.65 Consolas,monospace;background:var(--surface-2);border-radius:9px;padding:16px;overflow-wrap:anywhere}.sgn-answer-fields{display:flex;gap:20px;flex-wrap:wrap;margin:20px 0}.sgn-answer{display:flex;flex-direction:column;gap:8px;max-width:100%;font-size:13px}.matrix{display:grid;gap:5px;border-left:2px solid var(--line);border-right:2px solid var(--line);padding:5px 7px}.sgn-answer input{width:64px;min-width:0;padding:9px 3px;text-align:center;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--ink);font:14px Consolas,monospace}.sgn-answer select{max-width:240px;padding:9px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink)}.result{font-size:13px;line-height:1.6;margin:10px 0 0}.result[data-ok=true]{color:var(--good)}.result[data-ok=false]{color:var(--bad)}.summary{background:var(--surface);border:1px solid var(--line-soft);border-radius:14px;padding:24px;margin-top:16px;position:sticky;top:20px}.count{color:var(--muted);font-size:14px}.count strong{font-size:56px;letter-spacing:-3px;color:var(--ink);margin-right:12px}.summary progress{width:100%;height:7px;accent-color:var(--accent)}.summary p,.privacy p{font-size:13px;line-height:1.65;color:var(--muted)}.summary button.primary{width:100%;margin-top:10px}.text-button{background:none;border:0;color:var(--muted);text-decoration:underline;font-size:12px;padding:0;cursor:pointer}.privacy{padding:22px 10px}.privacy h3{font-size:14px}.upload{margin-top:30px;border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:28px;display:grid;grid-template-columns:1fr 1fr;gap:30px}.upload h2{margin:10px 0}.upload p{font-size:14px;line-height:1.6}.upload fieldset{border:1px dashed var(--line);border-radius:10px;padding:20px;min-width:0}.upload fieldset:disabled{opacity:.55}.upload input{max-width:100%}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}@media(max-width:800px){.work-layout{grid-template-columns:minmax(0,1fr)}.summary{position:static}.work-layout aside{grid-row:1}.privacy{display:none}.seal{width:135px;height:135px;font-size:36px}.upload{grid-template-columns:1fr}}@media(max-width:520px){.sgn-page{padding:28px 16px}.picker{grid-template-columns:1fr;padding:18px;gap:15px}.seal,.lead br{display:none}.task-body{padding:0 12px 16px}.task summary{padding:16px 12px}.sgn-condition{font-size:12px;padding:12px}.sgn-answer input{width:51px}.sgn-answer-fields{gap:18px}.hero-row h1{letter-spacing:-1px}.upload{padding:20px}}

.sgn-condition{display:block;max-height:none}
.picker{grid-template-columns:repeat(6,minmax(0,1fr))}.picker label:nth-child(1),.picker label:nth-child(2){grid-column:span 3}.picker label:nth-child(n+3){grid-column:span 2}.picker input{width:100%;min-width:0;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font:inherit}.sgn-condition{font:inherit;white-space:normal}.sgn-condition p{font-size:14px;line-height:1.6;margin:0 0 12px}.sgn-formula{overflow-x:auto;max-width:100%;font-size:1rem}.sgn-formula .katex-display{margin:12px 0;text-align:left}.sgn-formula .katex-display>.katex{text-align:left}.sgn-param-general{flex-basis:100%;padding:14px;background:var(--surface-2);border-radius:10px}.sgn-param-fraction{display:flex;gap:12px;align-items:center}.sgn-fraction-stack>div{display:flex;align-items:center;justify-content:center;gap:8px;padding:7px}.sgn-fraction-stack>div:first-child{border-bottom:1px solid var(--ink)}.sgn-param-fraction input{width:70px;padding:9px;text-align:center;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:6px}.sgn-param-general .help{margin-top:0}@media(max-width:520px){.picker{grid-template-columns:1fr}.picker label:nth-child(n){grid-column:auto}.sgn-formula{font-size:.85rem}}
/* Keep the editable fraction at the same scale as the answer fields. */
.sgn-param-general{padding:12px}
.sgn-param-fraction{font-size:15px;line-height:1.35;gap:8px}
.sgn-param-fraction .katex{font-size:1.05em}
.sgn-param-fraction input{width:56px;height:34px;padding:5px 6px;font:14px/1.35 Consolas,monospace}
.sgn-fraction-stack>div{gap:6px;padding:4px 6px}
.sgn-param-general .help{font-size:12px;margin-bottom:10px}
/* Форма работ с сервера (work-form.js): подпись, формула и поле в строку. */
.work-table,.work-list{display:grid;gap:12px;margin:20px 0}.work-table{grid-template-columns:repeat(auto-fill,minmax(120px,150px))}.work-table .work-field{flex-direction:column;align-items:stretch;gap:6px}.work-table .work-label{text-align:center}.work-field{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px}.work-label{flex-shrink:0;min-width:1.6em}.work-list:has(.with-formula){grid-template-columns:1.6em max-content minmax(110px,240px);align-items:center}.work-field.with-formula{display:grid;grid-template-columns:subgrid;grid-column:1/-1}.with-formula .work-input{max-width:none}.work-formula{overflow-x:auto;overflow-y:hidden;max-width:100%;padding:4px 0;font-size:1.05rem}.work-input{flex:1 1 150px;min-width:0;max-width:260px;padding:9px 10px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font:14px Consolas,monospace}.work-table .work-input{max-width:none;flex:none;text-align:center}.work-input[data-ok=true]{border-color:var(--good);background:var(--good-bg)}.work-input[data-ok=false]{border-color:var(--bad)}.work-input[data-ok=unknown]{border-style:dashed;border-color:var(--muted)}.result[data-ok=unknown]{color:var(--muted)}.work-breaks{margin:20px 0;display:grid;gap:8px}.work-break-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 70px;gap:8px;align-items:center}.work-break-row .work-input{max-width:none;width:100%}.work-break-head{font-size:13px;color:var(--muted)}.work-add{justify-self:start;background:none;border:1px dashed var(--line);border-radius:6px;padding:8px 12px;color:var(--ink);cursor:pointer}.work-add:disabled,.work-break-row .text-button:disabled{opacity:.4;cursor:default}@media(max-width:520px){.work-list:has(.with-formula){grid-template-columns:1fr}.work-field.with-formula{grid-column:auto;display:flex}.work-break-row{grid-template-columns:repeat(3,minmax(0,1fr))}.work-break-row .text-button{grid-column:1/-1;justify-self:end}.work-break-head>span:last-child{display:none}}
.sgn-condition .katex-display{overflow-x:auto;overflow-y:hidden;padding:2px 0}.work-matrix{align-items:center}.work-matrix .work-input{flex:none;width:64px;max-width:none;padding:9px 3px;text-align:center}@media(max-width:520px){.work-matrix .work-input{width:51px}}
  .work-label-text{max-width:100%;flex-shrink:1;line-height:1.5}
.work-coordinates>.work-label{flex-basis:100%}
.work-coordinate-answer,.work-coordinate-fields{display:flex;align-items:center;gap:8px}
.work-coordinate-answer{max-width:100%;gap:5px}
.work-coordinates .work-input{width:76px;font-size:16px}
.work-coordinate-separator{font-family:KaTeX_Main,serif;font-size:20px}
@media(max-width:520px){.work-coordinates .work-input{width:clamp(42px,calc((100vw - 186px)/3),68px)}}
/* Ширина зависит от смысла ответа; оформление и высота у полей общие. */
.sgn-page .work-input{min-height:46px;font-family:inherit;font-size:16px;line-height:1.4;border-radius:var(--r-control);padding:10px 12px}
.sgn-page input.work-input{font-family:Consolas,monospace;font-size:16px;line-height:1.4}
.sgn-page select.work-input{font-family:inherit;font-size:16px;line-height:1.4}
.work-answer-caption,.work-answer-group{flex-basis:100%;font-family:inherit;line-height:1.5}
.work-answer-group{font-size:16px;font-weight:600;margin-top:8px}
.work-structured-answer>.work-label{flex-basis:100%}
.work-coordinates .work-input,.work-structured-answer .work-input{padding:10px 3px;text-align:center}
.work-equation-answer{display:inline-grid;align-items:center;grid-template-columns:repeat(var(--equation-cols,3),max-content minmax(42px,88px) max-content);gap:8px 4px;max-width:100%}
.work-equation-term{display:contents;white-space:nowrap}
.work-equation-answer .work-input{width:100%;max-width:none}
.work-line-answer{display:grid;gap:14px;max-width:100%}
.work-line-row{display:grid;gap:6px;max-width:100%}
.work-line-caption{font-size:14px;color:var(--muted)}
.work-line-answer .work-input{width:76px}
.work-expression-field>.work-input{max-width:100%;flex-basis:300px}
.work-list:has(.with-formula){grid-template-columns:minmax(0,1fr)}
.work-field.with-formula{display:flex;grid-column:auto;min-width:0}
.with-formula .work-input{flex:1 1 220px;max-width:100%}
.work-epsilon-table{width:100%;max-width:560px;margin:20px 0;border-collapse:collapse;table-layout:fixed;font-size:14px;line-height:1.4}
.work-epsilon-table caption{text-align:left;font-size:14px;margin-bottom:10px}
.work-epsilon-table th,.work-epsilon-table td{padding:8px 4px;text-align:center;border:1px solid var(--line-soft)}
.work-epsilon-table th:first-child{width:20%}
.work-epsilon-table th{font-size:14px;font-weight:400;color:var(--ink);text-transform:none;letter-spacing:normal}
.work-epsilon-table .work-input{width:100%;max-width:none;text-align:center;padding:10px 3px}
.work-intervals{display:grid;gap:12px;margin:20px 0;max-width:600px;font-size:14px}
.work-interval{display:grid;grid-template-columns:18px 46px minmax(0,1fr) 8px minmax(0,1fr) 46px;gap:5px;align-items:center}
.work-interval .work-input{width:100%;max-width:none;min-width:0}
.work-interval-rows{display:grid;gap:12px}
.work-interval-remove{grid-column:1/-1;justify-self:end;min-height:44px}
.work-intervals>button{justify-self:start}
.work-input-help{margin:16px 0 10px;font-size:14px;line-height:1.5}
.work-review-note{margin-bottom:12px}
.sgn-page .work-bracket{padding:8px 2px;font-size:20px;text-align:center}
.work-break-rows{display:grid;gap:14px}
.work-break-card{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px;background:var(--surface-2);border:1px solid var(--line-soft);border-radius:12px}
.work-break-title{grid-column:1/-1;font-size:14px}
.work-break-field{display:grid;gap:6px;min-width:0;font-size:14px}
.work-break-field .work-input{width:100%;max-width:none}
.work-break-card .text-button{grid-column:1/-1;justify-self:end;min-height:44px;padding:8px}
@media(max-width:520px){
  .work-line-answer .work-input{width:clamp(42px,calc((100vw - 194px)/3),62px)}
  .work-equation-answer[data-equation-cols="4"]{grid-template-columns:repeat(2,max-content minmax(42px,88px) max-content)}
  .with-formula .work-input,.work-expression-field>.work-input{flex-basis:100%}
  .work-epsilon-table .katex{font-size:1em}
  .work-interval{grid-template-columns:14px 42px minmax(0,1fr) 8px minmax(0,1fr) 42px;gap:4px}
  .work-interval .work-endpoint{padding:10px 4px}
  .work-break-card{grid-template-columns:minmax(0,1fr)}
}
  /* Квитанция о сдаче. Ради неё студент и возвращается на страницу — «дошло
   ли», — поэтому она крупная, отдельная и не гаснет вместе с полем загрузки. */
.receipt:empty{display:none}.receipt{grid-column:1/-1;margin:0;padding:16px 18px;border-radius:12px;background:var(--good-bg);border:1px solid var(--good);color:var(--good)}.receipt strong{display:block;font-size:18px;line-height:1.35}.receipt-sub{display:block;margin-top:6px;font-size:13px;line-height:1.55;opacity:.85}

.work-source-header{text-align:center;margin:16px 0}.work-source-header p{margin:0 0 8px}.work-condition-parts{list-style:none;padding:0;margin:0 0 12px}.work-condition-parts li{display:flex;align-items:baseline;gap:8px;margin:4px 0;font-size:14px;line-height:1.6}.work-condition-label{flex:0 0 24px}
.work-answer-actions{flex-wrap:wrap;margin:12px 0 0}
.work-condition-parts li>span:last-child{min-width:0;flex:1}

/* Кнопки формы и холста относятся к одной работе и имеют общий масштаб. */
.sgn-page button:not(.text-button){font-family:inherit;font-size:15px;font-weight:600;line-height:1.4;min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:var(--r-control)}
.sgn-page button.primary,.sgn-page .inkpad-read{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.sgn-page button.primary:hover,.sgn-page .inkpad-read:hover{background:var(--accent-deep);border-color:var(--accent-deep);color:var(--accent-ink)}
.sgn-page button.icon-button{width:44px;height:44px;padding:0;background:var(--surface);color:var(--accent)}
.sgn-page .tool-toggle[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.sgn-page .task>summary{font-family:inherit;font-size:16px;font-weight:600;line-height:1.4}
.sgn-page .task-number{font:inherit;line-height:1;width:38px;height:36px;flex:0 0 38px;white-space:nowrap;font-variant-numeric:tabular-nums}
