/* «Контур». Общие семантические цвета. Системная тема работает без JS. */
:root {color-scheme:light;--bg:#f2f5f4;--surface:#fff;--fg:#182c2c;--muted:#536866;--line:#d8e3df;--accent:#146b59;--on-accent:#fff;--soft:#e2f2e9;--attention:#875600;--attention-bg:#fbf0d9;--danger:#b93838;--danger-bg:#fceaea;--radius:14px}
:root[data-theme="dark"] {color-scheme:dark;--bg:#101b1b;--surface:#192626;--fg:#e7eeeb;--muted:#a8bcb7;--line:#314641;--accent:#74d2ae;--on-accent:#102d24;--soft:#244138;--attention:#edbd67;--attention-bg:#3e3320;--danger:#ff9b9b;--danger-bg:#422727}
@media(prefers-color-scheme:dark) {
 :root:not([data-theme="light"]):not([data-theme="dark"]) {color-scheme:dark;--bg:#101b1b;--surface:#192626;--fg:#e7eeeb;--muted:#a8bcb7;--line:#314641;--accent:#74d2ae;--on-accent:#102d24;--soft:#244138;--attention:#edbd67;--attention-bg:#3e3320;--danger:#ff9b9b;--danger-bg:#422727}
}
* {box-sizing:border-box}
body {margin:0;font:15px/1.55 system-ui,sans-serif;color:var(--fg);background:var(--bg)}
a {color:var(--accent);text-underline-offset:3px}
a:hover {text-decoration-thickness:2px}
:focus-visible {outline:3px solid var(--accent);outline-offset:3px}
.skip-link {position:absolute;left:16px;top:-100px;padding:10px;background:var(--surface);z-index:10}
.skip-link:focus {top:10px}
.top {display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:16px 28px;background:var(--surface);border-bottom:1px solid var(--line)}
.top .mark {display:inline-flex;align-items:center;gap:12px;font-size:19px;font-weight:650;letter-spacing:-.5px;color:var(--fg);text-decoration:none}
.brand-mark {width:34px;height:34px;color:var(--accent);flex:none}
.top nav {display:flex;gap:16px;align-items:center}
.top nav a {color:var(--muted);font-size:13px;text-decoration:none}
.top nav a:hover,.top nav a:focus-visible {color:var(--accent)}
.top .owner {color:var(--muted);font-size:12px}
.appearance {margin-left:auto;display:flex;gap:7px;align-items:center;color:var(--muted);font-size:12px}
.appearance select {width:auto;min-height:36px;padding:5px 28px 5px 9px;font-size:12px}
main {max-width:1240px;margin:0 auto;padding:30px 28px 48px;min-width:0}
section {margin-bottom:28px;min-width:0}
main > section {background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px}
main > section:first-child {background:transparent;border:0;padding:0}
h1 {font-size:23px;line-height:1.3;letter-spacing:-.5px;margin:0 0 12px;overflow-wrap:anywhere}
main > section:first-child > h1 {font-size:29px;letter-spacing:-.8px}
h2 {font-size:18px;line-height:1.4;margin:22px 0 10px}
h3 {font-size:16px;margin:16px 0 8px}
p {overflow-wrap:anywhere}
.note {color:var(--muted);font-size:13px}
.off {color:var(--muted);cursor:not-allowed;font-size:13px}
table {border-collapse:collapse;width:100%;background:var(--surface);font-size:13px}
th,td {text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}
th {color:var(--muted);font-weight:600}
thead {background:var(--bg)}
tbody tr:last-child > * {border-bottom:0}
td .off {display:block;margin-bottom:6px}
td button {margin:2px 4px 2px 0}
table tbody th {width:25%}
form {display:grid;gap:16px;max-width:520px}
form label {display:grid;gap:6px;font-size:13px;font-weight:500}
form label.inline {display:flex;gap:8px;align-items:center}
input,textarea,select {font:inherit;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:9px 11px;max-width:100%;min-width:0}
input:not([type="checkbox"]):not([type="radio"]),textarea {width:100%}
input[type="checkbox"],input[type="radio"] {accent-color:var(--accent)}
textarea {min-height:110px;resize:vertical}
input::placeholder,textarea::placeholder {color:var(--muted)}
form button {justify-self:start}
button,.action-link {display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;font:inherit;font-size:13px;padding:8px 13px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--fg);cursor:pointer;text-decoration:none}
button:hover,.action-link:hover {background:var(--soft)}
button[type="submit"],button[data-command="start-preparation"],button[data-command="resume"],.action-link.primary {background:var(--accent);color:var(--on-accent);border-color:var(--accent);font-weight:600}
button[type="submit"]:hover,button[data-command="start-preparation"]:hover,button[data-command="resume"]:hover,.action-link.primary:hover {filter:brightness(.93)}
button[data-command="stop"],button[data-command="cancel"],button[data-draft-command="discard"] {color:var(--danger);border-color:var(--danger);background:var(--surface)}
button[data-command="stop"]:hover,button[data-command="cancel"]:hover,button[data-draft-command="discard"]:hover {background:var(--danger-bg)}
button:disabled {opacity:.55;cursor:wait}
details {border-top:1px solid var(--line);padding-top:12px;margin-top:16px}
summary {cursor:pointer;font-size:13px;font-weight:600;color:var(--accent);padding:4px 0}
details[open] > summary {margin-bottom:14px}
pre,code,textarea.mono {font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}
pre {background:var(--bg);padding:16px;border-radius:8px;white-space:pre-wrap;overflow-wrap:anywhere}
.login {max-width:460px;margin:36px auto}
main > section.login:first-child {background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:28px}
.login .note {margin-bottom:0}
[data-status] {max-width:1184px;margin:0 auto 24px;padding:12px 16px;border-radius:8px;color:var(--attention);background:var(--attention-bg)}
[data-status]:empty {display:none}
.work-heading {display:flex;gap:12px;flex-wrap:wrap;align-items:center;color:var(--muted);font-size:13px;margin:14px 0}
.status-label {padding:4px 9px;background:var(--soft);color:var(--fg);border-radius:5px;font-size:12px}
.work-summary {display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin:18px 0}
.work-summary dt {color:var(--muted);font-size:12px;margin-bottom:6px}
.work-summary dd {margin:0;font-size:15px;font-weight:600;overflow-wrap:anywhere}
.actions {display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}
.notice {padding:13px 16px;border-radius:8px;background:var(--attention-bg);color:var(--attention);font-size:13px}
.process-track {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;gap:12px;padding:0;margin:20px 0 24px}
.process-track li {border-top:3px solid var(--line);padding:12px 0;color:var(--muted);font-size:14px}
.process-track li[aria-current="step"] {border-color:var(--accent);color:var(--accent);font-weight:600}
.process-track small {display:block;font-size:12px;font-weight:400;margin-top:4px}
.process-block {border-top:1px solid var(--line);padding-top:8px}
.process-block.current {border-top:2px solid var(--accent)}
.check-summary {table-layout:fixed;margin:20px 0;font-variant-numeric:tabular-nums}
.check-summary thead {background:transparent}
.check-summary th {font-size:12px;border:0;padding-bottom:4px}
.check-summary td {font-size:28px;font-weight:650;padding-top:0}
.check-summary th:first-child,.check-summary td:first-child {padding-left:0}
.check-summary td:first-child {color:var(--accent)}
.check-summary td.failed {color:var(--danger)}
.check-summary td.attention {color:var(--attention)}
.mobile-check-label {display:none}
.acceptance-intro {display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:16px 0}
/* Поля соглашения о документации сохраняют ширину и моноширинный шрифт. */
form[data-create-project] {max-width:820px}
form[data-create-project] > label > input {max-width:520px}
details.wide > * {margin-top:10px}
details.wide > label {display:grid;gap:6px}
details.wide > label.inline {display:flex;gap:8px;align-items:flex-start}
details.wide > label > select {justify-self:start}
textarea.mono {width:100%;line-height:1.5}
@media(max-width:760px) {
 .top {padding:14px 16px;gap:12px}.top .owner {display:none}.top nav {order:2;width:100%}
 main {padding:22px 16px 32px}main > section {padding:18px}main > section:first-child > h1 {font-size:25px}
 .work-summary {grid-template-columns:1fr;gap:14px;padding:18px}
 /* Таблицы прокручиваются сами, не растягивая всю страницу. */
 table {display:block;max-width:100%;overflow-x:auto}.check-summary {display:table}
 .check-summary th,.check-summary td {padding-left:5px;padding-right:5px}.check-summary td {font-size:24px}
 [data-status] {margin:0 16px 20px}
}
@media(max-width:430px) {
 .top .mark {font-size:17px}.appearance {margin-left:0;flex:1}.appearance select {flex:1}
 .process-track {grid-template-columns:1fr;gap:6px}.process-track li {border-top:0;border-left:3px solid var(--line);padding:5px 10px}
 .process-track small {display:inline;margin-left:6px}
 table tbody th {width:auto;overflow-wrap:normal}
 .check-summary,.check-summary tbody {display:block}
 .check-summary thead {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .check-summary tbody tr {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
 .check-summary td,.check-summary td:first-child {display:block;padding:0;border:0}
 .check-summary .mobile-check-label {display:block;color:var(--muted);font-size:12px;font-weight:500;margin-bottom:3px}
}
@media(pointer:coarse) {button,.action-link,input,select,summary {min-height:44px}}
@media(prefers-reduced-motion:reduce) {* {scroll-behavior:auto!important}}
.actions .off {flex-basis:100%}
.check-summary:not([data-failed="0"]) td:nth-child(2) {color:var(--danger)}
.check-summary:not([data-not-run="0"]) td:nth-child(4) {color:var(--attention)}
