:root{--bg: #f4f6f8;--surface: #ffffff;--surface-2: #f8fafc;--border: #dde2e8;--text: #18212d;--muted: #5d6877;--accent: #1d5fbf;--accent-hover: #174f9f;--accent-soft: #e8f0fc;--pass: #17784a;--pass-soft: #e5f4ec;--fail: #b8322a;--fail-soft: #fbe9e7;--na: #5f6b7a;--na-soft: #eceff3;--pending: #8a94a3;--pending-soft: #eef1f4;--warn: #8a5200;--warn-soft: #fff4e0;--radius: 10px;--shadow: 0 1px 2px rgba(16, 24, 40, .06);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.45;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}h1,h2,h3{line-height:1.2;margin:0 0 .4em}h1{font-size:1.45rem}h2{font-size:1.15rem}h3{font-size:1rem}p{margin:0 0 .6em}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:16px;height:49px;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--border)}.brand{font-size:1.05rem;font-weight:700;color:var(--text);text-decoration:none}.brand-sub{font-size:.85rem;color:var(--muted)}.header-user{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:.9rem;color:var(--muted)}.menu-toggle{display:none;padding:4px 10px;font-size:1.25rem;line-height:1;color:var(--text);cursor:pointer;background:transparent;border:1px solid var(--border);border-radius:8px}.menu-toggle:hover{background:var(--surface-2)}.app-body{display:flex;align-items:flex-start}.app-content{flex:1;min-width:0}.sidebar{position:sticky;top:49px;display:flex;flex-direction:column;flex-shrink:0;width:200px;height:calc(100vh - 49px);padding:14px 0;overflow-y:auto;background:#18212d}.sidebar-link{display:flex;align-items:center;gap:10px;padding:9px 16px;font-size:.93rem;color:#cfd6df;text-decoration:none}.sidebar-link:hover{color:#fff;background:#222d3b}.sidebar-link.active,.sidebar-link.active:hover{font-weight:600;color:#fff;background:#1d5fbf}.sidebar-link:focus-visible{outline-color:#fff;outline-offset:-2px}.sidebar-icon{width:1.2em;text-align:center}.sidebar-icon:before{content:attr(data-icon)}.sidebar-backdrop{display:none}.page-title{margin-bottom:20px}.table-clickable tbody tr{cursor:pointer}.table-clickable tbody tr:hover td{background:var(--surface-2)}.offline-banner{position:sticky;top:49px;z-index:9;margin:0;border-radius:0;text-align:center}.page-loading{padding:48px 24px;text-align:center;color:var(--muted)}@media(max-width:640px){.brand-sub{display:none}}.page{max-width:1200px;margin:0 auto;padding:24px}.page.narrow{max-width:900px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px}.section{margin-bottom:32px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-head h1,.section-head h2{margin:0}.muted{color:var(--muted)}.small{font-size:.85rem}.strong{font-weight:600}.en{font-style:italic}.pre-line{white-space:pre-line}.eyebrow{margin-bottom:4px;font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.empty{padding:16px;color:var(--muted);background:var(--surface-2);border:1px dashed var(--border);border-radius:var(--radius)}.hint{margin:0;font-size:.9rem;color:var(--muted)}.back-link{display:inline-block;margin-bottom:12px;text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;font:inherit;font-weight:500;color:var(--text);white-space:nowrap;text-decoration:none;cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:8px}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{color:#fff;background:var(--accent);border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{color:var(--muted);background:transparent;border-color:transparent}.btn-small{padding:5px 10px;font-size:.85rem}button.link{padding:0;font:inherit;color:var(--accent);text-decoration:underline;cursor:pointer;background:none;border:none}.icon-btn{padding:2px 7px;font-size:1.2rem;line-height:1;color:var(--muted);cursor:pointer;background:transparent;border:none;border-radius:6px}.icon-btn:hover{color:var(--fail);background:var(--fail-soft)}kbd{padding:0 5px;font:600 .72rem ui-monospace,Consolas,monospace;border:1px solid currentColor;border-radius:4px;opacity:.6}.segmented{display:inline-flex;overflow:hidden;border:1px solid var(--border);border-radius:8px}.segmented button{padding:7px 12px;font:inherit;font-size:.85rem;color:var(--muted);cursor:pointer;background:var(--surface);border:none}.segmented button+button{border-left:1px solid var(--border)}.segmented button.active{color:#fff;background:var(--accent)}input,select,textarea{width:100%;padding:8px 10px;font:inherit;color:inherit;background:#fff;border:1px solid var(--border);border-radius:8px}textarea{resize:vertical}input[aria-invalid=true]{border-color:var(--fail)}.field{display:flex;flex-direction:column;gap:4px;font-size:.9rem}.field>span{font-weight:500;color:var(--muted)}.field-error{margin:4px 0 0;font-size:.85rem;color:var(--fail)}.alert{margin-bottom:14px;padding:10px 14px;border:1px solid;border-radius:8px}.alert ul{margin:6px 0 0;padding-left:20px}.alert-error{color:#7d1f19;background:var(--fail-soft);border-color:#efc1bc}.alert-ok{color:#0f5233;background:var(--pass-soft);border-color:#b9e0c9}.alert-warn{color:#6b4000;background:var(--warn-soft);border-color:#f1d29a}.badge{display:inline-block;padding:2px 9px;font-size:.8rem;font-weight:600;white-space:nowrap;border-radius:999px}.badge-pass{color:var(--pass);background:var(--pass-soft)}.badge-fail{color:var(--fail);background:var(--fail-soft)}.badge-na{color:var(--na);background:var(--na-soft)}.badge-pending,.badge-incomplete{color:var(--muted);background:var(--pending-soft)}.progress{display:flex;height:8px;overflow:hidden;background:var(--pending-soft);border-radius:999px}.seg.pass{background:var(--pass)}.seg.fail{background:var(--fail)}.seg.na{background:var(--na);opacity:.6}.table-card{padding:0;overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:10px 14px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--border)}.table th{font-size:.8rem;font-weight:600;color:var(--muted);background:var(--surface-2)}.table tr:last-child td{border-bottom:none}.table .actions{text-align:right;white-space:nowrap}.actions .btn+.btn{margin-left:6px}.progress-cell{min-width:140px}.progress-cell .progress{margin-bottom:4px}.protocol-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.protocol-card{display:flex;flex-direction:column}.protocol-card .btn{align-self:flex-start;margin-top:auto}.form{display:flex;flex-direction:column;gap:22px;margin-top:16px}.form fieldset{margin:0;padding:0;border:none}.form legend{margin-bottom:10px;font-weight:600}.grid-2,.grid-3{display:grid;gap:12px 16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.instrument-row{display:grid;grid-template-columns:2fr 1.2fr 1fr auto;gap:8px;align-items:end;margin-bottom:8px}.instrument-row .icon-btn{margin-bottom:6px}.form .alert{margin:10px 0 0}.form .hint{margin-top:8px}.form-actions{display:flex;justify-content:flex-end;gap:10px}.summary-list{margin:6px 0 12px;padding-left:20px}.runner{display:flex;flex-direction:column;gap:14px;max-width:1320px;margin:0 auto;padding:20px 24px 40px}.runner-head{display:grid;grid-template-columns:minmax(0,1fr) 240px auto;gap:20px;align-items:center}.runner-head h1{margin:0 0 4px;font-size:1.2rem}.runner-progress .progress{margin-bottom:6px}.runner-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}.runner>.alert{margin:0}.runner-body{display:grid;grid-template-columns:290px minmax(0,1fr);gap:14px;align-items:start}.step-nav{position:sticky;top:64px;max-height:calc(100vh - 90px);overflow:auto;padding:8px}.step-nav ol{margin:0;padding:0;list-style:none}.step-link{display:flex;gap:8px;align-items:flex-start;width:100%;padding:8px 10px;font:inherit;color:var(--text);text-align:left;cursor:pointer;background:none;border:none;border-radius:8px}.step-link:hover{background:var(--surface-2)}.step-link.active{background:var(--accent-soft)}.step-num{min-width:1.4em;font-weight:600;color:var(--muted)}.step-label{display:-webkit-box;overflow:hidden;font-size:.88rem;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.dot{flex:none;width:10px;height:10px;margin-top:5px;background:var(--pending-soft);border:2px solid var(--pending);border-radius:50%}.dot-pass{background:var(--pass);border-color:var(--pass)}.dot-fail{background:var(--fail);border-color:var(--fail)}.dot-na{background:var(--na);border-color:var(--na)}.step-panel{display:flex;flex-direction:column;gap:16px;padding:22px 24px}.step-panel .alert{margin:0}.step-panel-head{display:flex;align-items:center;justify-content:space-between}.step-panel-head h2{margin:0;font-size:1.25rem}.text-block-title{margin-bottom:4px;font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.text-block p{margin:0;font-size:1.05rem}.bilingual{display:grid;grid-template-columns:1fr 1fr;gap:14px}.bilingual>div{padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px}.lang-tag{display:inline-block;margin-bottom:6px;padding:1px 6px;font-size:.7rem;font-weight:700;color:var(--accent);background:var(--accent-soft);border-radius:4px}.tx-both{display:flex;flex-direction:column;gap:2px}.tx-en{font-style:italic;color:var(--muted)}.measurement{padding:12px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px}.measurement label{display:block;margin-bottom:8px;font-weight:600}.measurement-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.measurement-row input{width:180px;font-size:1.1rem}.unit{font-weight:600;color:var(--muted)}.status-buttons{display:flex;flex-wrap:wrap;gap:10px}.btn-status{min-width:120px;padding:10px 18px;font-size:1rem;font-weight:600}.btn-status.pass:hover{color:var(--pass);border-color:var(--pass)}.btn-status.fail:hover{color:var(--fail);border-color:var(--fail)}.btn-status.na:hover{color:var(--na);border-color:var(--na)}.btn-status.active,.btn-status.active:hover{color:#fff}.btn-status.pass.active{background:var(--pass);border-color:var(--pass)}.btn-status.fail.active{background:var(--fail);border-color:var(--fail)}.btn-status.na.active{background:var(--na);border-color:var(--na)}.attachments-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-weight:600}.dropzone{padding:14px;font-size:.9rem;color:var(--muted);text-align:center;background:var(--surface-2);border:1.5px dashed var(--border);border-radius:8px}.dropzone.dragging{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}.attachment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:10px 0 0;padding:0;list-style:none}.attachment{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:8px}.attachment img{display:block;width:100%;height:110px;object-fit:cover}.file-tile{display:flex;align-items:center;justify-content:center;height:110px;font-weight:700;color:var(--muted);text-decoration:none;text-transform:uppercase;background:var(--surface-2)}.attachment-meta{display:flex;flex-direction:column;padding:6px 8px}.attachment-name{overflow:hidden;font-size:.82rem;white-space:nowrap;text-overflow:ellipsis}.attachment .icon-btn{position:absolute;top:4px;right:4px;background:#ffffffeb}.step-nav-buttons{display:flex;justify-content:space-between;padding-top:14px;border-top:1px solid var(--border)}.shortcut-hint{margin:0;font-size:.82rem;color:var(--muted);text-align:center}.report-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;max-width:210mm;margin:20px auto 0}.report-toolbar .spacer{flex:1}.report{max-width:210mm;margin:14px auto 40px;padding:16mm 15mm;font-size:10.5pt;color:#111;background:#fff;border-radius:4px;box-shadow:0 2px 10px #10182814}.report h2{margin:18px 0 8px;padding-bottom:3px;font-size:11pt;letter-spacing:.04em;text-transform:uppercase;border-bottom:1.5px solid #222}.report-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:10px;border-bottom:3px solid var(--accent)}.report-header h1{margin:2px 0 4px;font-size:16pt}.report-kicker{font-size:9pt;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.report-meta{color:#444}.overall{padding:6px 14px;font-size:13pt;font-weight:800;white-space:nowrap;border:2px solid;border-radius:6px}.overall-pass{color:var(--pass)}.overall-fail{color:var(--fail)}.overall-incomplete{color:var(--muted)}.draft-banner{margin-bottom:10px;padding:6px;font-size:9pt;font-weight:700;letter-spacing:.05em;color:var(--warn);text-align:center;text-transform:uppercase;background:var(--warn-soft);border:1px solid #f1d29a}.kv{display:grid;grid-template-columns:max-content 1fr max-content 1fr;gap:4px 14px;margin:0}.kv dt{color:#555}.kv dd{margin:0;font-weight:600}.report table{width:100%;font-size:9.5pt;border-collapse:collapse}.report th,.report td{padding:5px 6px;text-align:left;vertical-align:top;border:1px solid #c9ced6}.report th{font-weight:600;background:#eef1f5}.report td.num{width:28px;text-align:center}.report td.measured{white-space:nowrap}.report td.comment{white-space:pre-line}.report .badge{font-size:8.5pt}.report ul{margin:4px 0;padding-left:18px}.footnote{margin-top:4px;font-size:8.5pt;color:#555}.summary-line{margin-top:8px}.evidence-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.evidence-grid figure{margin:0;padding:6px;border:1px solid #c9ced6;border-radius:4px;break-inside:avoid}.evidence-grid img{display:block;width:100%;max-height:80mm;object-fit:contain}.evidence-file .file-tile{height:50px}figcaption{margin-top:4px;font-size:8.5pt;color:#444}.signatures{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px;break-inside:avoid}.signature-box{padding:8px 10px;border:1px solid #c9ced6;border-radius:4px}.signature-title{margin-bottom:8px;font-weight:700}.signature-line{margin-bottom:6px;font-size:9.5pt}.signature-line span{color:#555}.signature-line.sign{height:40px}.report-footer{display:flex;justify-content:space-between;gap:10px;margin-top:18px;padding-top:6px;font-size:8pt;color:#666;border-top:1px solid #c9ced6}@page{size:A4;margin:12mm}@media print{body,:root{background:#fff}.no-print{display:none!important}.report{max-width:none;margin:0;padding:0;border-radius:0;box-shadow:none}.report thead{display:table-header-group}.report tr,.report figure{break-inside:avoid}.report h2{break-after:avoid}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}@media(max-width:900px){.app-header{padding:0 16px}.menu-toggle{display:inline-flex}.sidebar{position:fixed;top:49px;bottom:0;left:0;z-index:20;display:none;height:auto;box-shadow:4px 0 16px #10182840}.sidebar.open{display:flex}.sidebar-backdrop{position:fixed;inset:49px 0 0;z-index:19;display:block;background:#10182866}.page,.runner{padding:16px}.runner-head,.runner-body,.bilingual{grid-template-columns:1fr}.step-nav{position:static;max-height:none}.grid-2,.grid-3{grid-template-columns:1fr}.instrument-row{grid-template-columns:1fr 1fr}.kv{grid-template-columns:max-content 1fr}.report{padding:16px}.evidence-grid,.signatures{grid-template-columns:1fr}}.badge-state{background:var(--surface);border:1px solid currentColor}.transitions{display:grid;gap:6px}.transitions-buttons{display:flex;flex-wrap:wrap;gap:6px}.transitions-blocked{margin:0;padding-left:18px}.transitions .alert{margin:0}.draft-box{margin:8px 0;padding:8px 10px;border:1px dashed var(--border);border-radius:var(--radius);background:var(--bg)}.draft-box p{margin:0 0 6px}.login-overlay{position:fixed;inset:0;z-index:50;overflow:auto;background:#10182873}.login-overlay .page{margin-top:8vh}.page.page-wide{max-width:1440px}.table th.num,.table td.num{text-align:right}.nowrap{white-space:nowrap}.warn-text{color:var(--warn)}.library{display:grid;grid-template-columns:250px minmax(0,1fr);gap:20px;align-items:start}.library-main{min-width:0}.folder-tree{position:sticky;top:66px;max-height:calc(100vh - 90px);overflow-y:auto;padding:12px 10px;font-size:.92rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius)}.folder-tree-head{display:flex;align-items:center;justify-content:space-between;margin:0 4px 8px}.folder-tree .alert{margin:0 0 8px;padding:6px 10px}.folder-add{width:28px;height:28px;font:inherit;font-weight:700;color:var(--accent);cursor:pointer;background:transparent;border:1px solid transparent;border-radius:6px}.folder-add:hover{background:var(--accent-soft);border-color:#c9dbf6}.folder-list{margin:0;padding:0 0 0 14px;list-style:none}.folder-list-root{padding-left:0}.folder-row{display:flex;align-items:center;gap:2px;border-radius:6px}.folder-row:hover{background:var(--pending-soft)}.folder-row.selected,.folder-row.selected:hover{background:var(--accent-soft)}.folder-toggle{flex-shrink:0;width:20px;padding:0;font:inherit;font-size:.8rem;color:var(--muted);text-align:center;cursor:pointer;background:none;border:none}span.folder-toggle{cursor:default}.folder-node{display:flex;flex:1;align-items:baseline;gap:6px;min-width:0;padding:5px 6px 5px 2px;font:inherit;color:var(--text);text-align:left;cursor:pointer;background:none;border:none;border-radius:6px}.folder-row.selected .folder-node{font-weight:600;color:var(--accent)}.folder-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-count{flex-shrink:0;font-weight:400;color:var(--pending)}.folder-rename{flex:1;min-width:0;padding:3px 6px}.breadcrumb{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;font-size:.85rem;color:var(--muted)}.breadcrumb a{text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.breadcrumb [aria-current=page]{font-weight:600;color:var(--text)}.library-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.library-toolbar select{width:auto;min-width:160px}.search-box{position:relative;flex:1 1 280px}.search-box>span{position:absolute;top:50%;left:10px;font-size:.85rem;transform:translateY(-50%);pointer-events:none}.search-box input{padding-left:32px}.table-scroll{overflow:auto}.table-scroll,.table-card{position:relative}.library-table{max-height:min(62vh,680px)}.library-table td:nth-child(2){min-width:220px}.library-table thead th{position:sticky;top:0;z-index:1}.table .row-selected td,.table-clickable tbody tr.row-selected:hover td{background:var(--accent-soft)}.table-clickable tbody tr:focus-visible{outline-offset:-2px}.code-link{color:var(--text);text-decoration:none}.code-link:hover{color:var(--accent);text-decoration:underline}.quick-view{margin-top:16px}.quick-view-head{display:flex;justify-content:space-between;gap:12px}.quick-view-head a{flex-shrink:0;font-weight:600;text-decoration:none}.quick-view-sub{margin:4px 0 10px}.quick-steps{margin:0 0 10px;padding-left:22px;font-size:.92rem}.quick-steps li+li{margin-top:3px}.quick-usage a{font-weight:600}.test-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px 24px;margin-bottom:12px}.test-head-main{flex:1 1 360px;min-width:0}.test-head-main h1{margin-bottom:2px}.test-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:10px}.rev-label{font-weight:600}.test-head-side{display:flex;flex:0 1 auto;flex-direction:column;align-items:flex-end;gap:10px;max-width:100%}.test-head-side .transitions-buttons{justify-content:flex-end}.revision-picker{display:flex;align-items:center;gap:8px}.revision-picker select{width:auto;padding:5px 8px;font-size:.88rem}.rev-note{margin:0 0 12px;padding:8px 12px;font-size:.9rem;background:var(--accent-soft);border:1px solid #c9dbf6;border-radius:8px}.tabs{display:flex;gap:4px;margin-bottom:14px;overflow-x:auto;border-bottom:1px solid var(--border)}.tabs button{margin-bottom:-1px;padding:9px 14px;font:inherit;font-weight:500;color:var(--muted);white-space:nowrap;cursor:pointer;background:none;border:none;border-bottom:2px solid transparent}.tabs button:hover{color:var(--text)}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.title-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px 16px;margin-bottom:14px}.steps-scroll{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.steps-table td{vertical-align:top}.steps-table .col-num{width:44px;font-weight:600;color:var(--muted);text-align:center}.steps-table th.col-text{min-width:180px}.steps-table .col-measure{min-width:230px}.steps-table .col-evidence{white-space:nowrap;text-align:center}.steps-table.editing td{padding:8px}.steps-table.editing td.col-num{padding-top:16px}.steps-table textarea{display:block;min-height:60px;line-height:1.4;overflow:hidden;resize:none}.step-actions{display:flex;gap:2px}.icon-btn.neutral:hover{color:var(--accent);background:var(--accent-soft)}.icon-btn:disabled{opacity:.3;cursor:default;background:transparent}.evidence-check{width:18px;height:18px;margin-top:10px;cursor:pointer}.add-measure{margin-top:4px;color:var(--accent)}.measure-toggle{display:inline-flex;gap:6px;padding:6px 2px;font:inherit;font-size:.9rem;color:var(--text);text-align:left;cursor:pointer;background:none;border:none}.measure-fields{display:grid;gap:6px;margin-top:4px}.measure-fields input{padding:5px 8px;font-size:.88rem}.measure-row{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:6px}.measure-row input{min-width:0}.measure-fields .link{justify-self:start}.editor-bar{position:sticky;bottom:0;z-index:2;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding:10px 0;background:var(--bg)}.editor-bar-end{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.unsaved{padding:3px 10px;font-size:.85rem;font-weight:600;color:var(--warn);background:var(--warn-soft);border-radius:999px}.save-ok{font-size:.88rem;color:var(--pass)}.save-error{font-size:.88rem;color:var(--fail)}@media(max-width:900px){.library{grid-template-columns:1fr}.folder-tree{position:static;max-height:260px}.test-head-side{align-items:flex-start}.test-head-side .transitions-buttons{justify-content:flex-start}}.badge-warn{margin-left:6px;color:var(--warn);background:var(--warn-soft)}.badge+.badge-warn,.newer .badge-warn{margin-left:0}.draft-cell{display:inline-flex;align-items:center;gap:6px}.head-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.protocol-content{display:grid;gap:18px}.protocol-header-card h2,.protocol-tests h2,.protocol-legacy h2{margin:0;font-size:1.05rem}.protocol-header-card h2{margin-bottom:12px}.protocol-tests .section-head,.protocol-legacy .section-head{margin-bottom:10px}.header-fields{display:grid;gap:14px}.header-fields .title-fields{margin-bottom:0}.header-fields textarea{min-height:64px;overflow:hidden;resize:none}.list-field{display:grid;gap:6px;margin:0;padding:0;border:none}.list-field legend{margin-bottom:6px;padding:0;font-size:.9rem;font-weight:500;color:var(--muted)}.list-field p{margin:0}.list-row{display:flex;align-items:center;gap:6px;max-width:560px}.precondition-row{align-items:flex-start;max-width:none}.list-num{min-width:1.6em;padding-top:9px;font-weight:600;color:var(--muted);text-align:right}.precondition-texts{display:grid;flex:1;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px}.precondition-row .step-actions{padding-top:5px}.add-item{justify-self:start;color:var(--accent)}.info-list{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:10px 20px;margin:0}.info-list dt{font-size:.9rem;font-weight:500;color:var(--muted)}.info-list dd{margin:0}.second-lang{display:block;margin-top:2px;font-size:.9rem}.info-sublist{margin:0;padding-left:20px}.info-sublist li+li{margin-top:4px}.legacy-note{margin-bottom:10px}.tests-table td{vertical-align:middle}.tests-table .col-toggle{width:36px;padding-right:0}.row-toggle{width:28px;height:28px;font:inherit;font-size:1rem;color:var(--muted);cursor:pointer;background:transparent;border:1px solid transparent;border-radius:6px}.row-toggle:hover{color:var(--accent);background:var(--accent-soft)}.test-row.open td{background:var(--surface-2)}.test-steps-row>td{padding:4px 12px 16px 48px;background:var(--surface-2)}.test-steps-row .steps-scroll{box-shadow:none}.newer{display:inline-flex;align-items:center;gap:8px}.modal-backdrop{position:fixed;inset:0;z-index:40;display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px 16px;overflow:auto;background:#10182873}.modal{display:flex;flex-direction:column;gap:12px;width:min(880px,100%);max-height:86vh;box-shadow:0 12px 40px #10182840}.modal .search-box{flex:none}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-head h2{margin:0}.modal-sub{margin:-6px 0 0}.modal-list{flex:1;min-height:140px;border:1px solid var(--border);border-radius:8px}.modal-list .empty,.modal-list>p{margin:12px}.picker-table thead th{position:sticky;top:0;z-index:1}.picker-table tbody tr{cursor:pointer}.picker-table tbody tr:hover td{background:var(--surface-2)}.picker-table .row-selected td{background:var(--accent-soft)}.picker-table .row-disabled{cursor:default}.picker-table .row-disabled td{color:var(--muted);background:transparent}.picker-table .col-check{width:40px}.picker-table input[type=checkbox]{width:18px;height:18px;cursor:pointer}.modal-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.modal-actions{display:flex;gap:8px}.step-groups{display:grid;gap:8px}.step-group-title{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:8px 10px 4px;font-size:.8rem;color:var(--muted);border-top:1px solid var(--border)}.step-group:first-child .step-group-title{border-top:none}.step-group-head{display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.step-group-head strong{color:var(--text)}.step-group-count{flex:none;font-variant-numeric:tabular-nums}.step-test{margin-bottom:4px;font-size:.8rem;font-weight:600;color:var(--accent)}.report td.num{width:36px;white-space:nowrap}.report tr.group-row td{font-weight:600;background:#f3f6fa;border-top:1.5px solid #8a94a3}.report .group-num{color:var(--accent)}.report td.nowrap{white-space:nowrap}@media print{.report tr.group-row{break-after:avoid}}@media(max-width:900px){.head-actions{justify-content:flex-start}.info-list{grid-template-columns:1fr;gap:2px}.info-list dd{margin-bottom:8px}.test-steps-row>td{padding-left:12px}.modal-backdrop{padding:12px 8px}.modal{max-height:calc(100vh - 24px)}}.runner-head{grid-template-columns:minmax(0,1fr) 260px;gap:14px 24px}.runner-actions{grid-column:1 / -1;justify-content:flex-start;padding-top:12px;border-top:1px solid var(--border)}@media(max-width:900px){.runner-head{grid-template-columns:1fr}}
