/* Apps pipeline additions. Use ONLY the dash variables (--bg --card --fg --mut --bd --ac --ok --warn --bad). */
.btn{display:inline-flex;align-items:center;gap:6px;margin:4px 6px 0 0}
.btn.bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,var(--bd))}
.btn.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,var(--bd))}
.nav .btn.on{background:var(--ac);border-color:var(--ac);color:#fff}
textarea,input,select{width:100%;background:var(--bg);color:var(--fg);border:1px solid var(--bd);border-radius:9px;padding:8px 10px;font:inherit}
label{display:block;margin:8px 0 4px;color:var(--mut);font-size:13px}
pre{white-space:pre-wrap;background:var(--bg);border:1px solid var(--bd);border-radius:10px;padding:12px}
table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid var(--bd);padding:8px 6px;text-align:left}th{color:var(--mut);font-weight:600;font-size:13px}
.state{display:inline-block;font-size:12px;border:1px solid var(--ac);border-radius:999px;padding:2px 9px;font-weight:600}
.login{max-width:380px;margin:60px auto}
/* Hamish panel: dashed divider between a report and its fix plan, and pill colours for plan status. */
.hamish-plan{border-top:1px solid var(--bd);margin-top:12px;padding-top:12px}
.pill.state.ok{border-color:color-mix(in srgb,var(--ok) 55%,var(--bd));color:var(--ok)}
.pill.state.bad{border-color:color-mix(in srgb,var(--bad) 55%,var(--bd));color:var(--bad)}

/* 0.1.18 read-only viewer (card #17): no forms or action buttons; the server answers 403 anyway */
html[data-role="viewer"] form[method="post"]:not([action="/logout"]) { display: none !important; }


/* Apps pipeline additions. Use ONLY the dash variables (--bg --card --fg --mut --bd --ac --ok --warn --bad). */
.btn{display:inline-flex;align-items:center;gap:6px;margin:4px 6px 0 0}
.btn.bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,var(--bd))}
.btn.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,var(--bd))}
.nav .btn.on{background:var(--ac);border-color:var(--ac);color:#fff}
textarea,input,select{width:100%;background:var(--bg);color:var(--fg);border:1px solid var(--bd);border-radius:9px;padding:8px 10px;font:inherit}
label{display:block;margin:8px 0 4px;color:var(--mut);font-size:13px}
pre{white-space:pre-wrap;background:var(--bg);border:1px solid var(--bd);border-radius:10px;padding:12px}
table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid var(--bd);padding:8px 6px;text-align:left}th{color:var(--mut);font-weight:600;font-size:13px}
.state{display:inline-block;font-size:12px;border:1px solid var(--ac);border-radius:999px;padding:2px 9px;font-weight:600}
.login{max-width:380px;margin:60px auto}
iframe.live{display:block;width:100%;height:70vh;margin-top:10px;border:1px solid var(--bd);border-radius:12px;background:var(--bg);color:var(--fg)}
@media (max-width:700px){iframe.live{height:60vh}}


/* Apps pipeline additions. Use ONLY the dash variables (--bg --card --fg --mut --bd --ac --ok --warn --bad). */
.btn{display:inline-flex;align-items:center;gap:6px;margin:4px 6px 0 0}
.btn.bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,var(--bd))}
.btn.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,var(--bd))}
.nav .btn.on{background:var(--ac);border-color:var(--ac);color:#fff}
textarea,input,select{width:100%;background:var(--bg);color:var(--fg);border:1px solid var(--bd);border-radius:9px;padding:8px 10px;font:inherit}
label{display:block;margin:8px 0 4px;color:var(--mut);font-size:13px}
pre{white-space:pre-wrap;background:var(--bg);border:1px solid var(--bd);border-radius:10px;padding:12px}
table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid var(--bd);padding:8px 6px;text-align:left}th{color:var(--mut);font-weight:600;font-size:13px}
.state{display:inline-block;font-size:12px;border:1px solid var(--ac);border-radius:999px;padding:2px 9px;font-weight:600}
.login{max-width:380px;margin:60px auto}
.pill.state.ok{color:var(--ok);border-color:var(--ok)}
.pill.state.bad{color:var(--bad);border-color:var(--bad)}
.gallery{display:flex;flex-wrap:wrap;gap:12px}
.gallery figure{margin:0;background:var(--bg);border:1px solid var(--bd);border-radius:10px;padding:8px;max-width:220px}
.gallery img{display:block;width:100%;max-width:204px;height:auto;border-radius:6px}
.gallery figcaption{font-size:12px;color:var(--mut);margin-top:6px;line-height:1.5}
table.checks td{font-size:13px;vertical-align:top}
