/* Gerätetests: Assistent (/testen) und Übersicht (/geraete) */
.tw{max-width:680px;margin:0 auto}
.tw h1{font-size:1.6rem;margin:6px 0 4px}
.tw .bar{height:6px;border-radius:99px;background:var(--card2);overflow:hidden;margin:14px 0 4px}.tw .bar i{display:block;height:100%;background:var(--acc);transition:width .25s}
.tw .stepno{color:var(--mut);font-size:.85rem}
.tw .roles{display:grid;gap:10px;margin:14px 0}
.tw .role{display:flex;gap:14px;align-items:center;text-align:left;width:100%;padding:14px;border-radius:var(--r);background:var(--card);border:1px solid var(--line)}
.tw .role .ic{font-size:1.8rem;line-height:1}.tw .role b{display:block}.tw .role span.s{color:var(--mut);font-size:.88rem;font-weight:400}
.tw .role:hover,.tw .role:focus-visible{border-color:var(--acc)}
.tw .chipset{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.tw .chipset button{padding:9px 14px;border-radius:99px;font-size:.92rem;font-weight:500}
.tw .chipset button.on{background:var(--acc);border-color:var(--acc);color:#0b1a07}
.tw .item{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;margin:12px 0}
.tw .item h3{margin:0 0 2px;font-size:1.02rem}.tw .item .h{color:var(--mut);font-size:.9rem;margin:0 0 10px}
.tw .res{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.tw .res button{padding:10px 4px;font-size:.82rem;font-weight:600;border-radius:10px;line-height:1.2}
.tw .res button b{display:block;font-size:1.15rem}
.tw .res button.on.ok{background:#2f7d14;border-color:#2f7d14;color:#fff}
.tw .res button.on.warn{background:#b8821a;border-color:#b8821a;color:#fff}
.tw .res button.on.fail{background:#b8453d;border-color:#b8453d;color:#fff}
.tw .res button.on.skip{background:var(--mut);border-color:var(--mut);color:var(--bg)}
.tw .sub2{margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}
.tw .sub2 .q{font-size:.88rem;color:var(--mut);margin:0 0 2px}
.tw .na{opacity:.6}.tw .na .tag{display:inline-block;margin-left:6px;font-size:.75rem;padding:2px 8px;border-radius:99px;background:var(--card2);color:var(--mut)}
.tw textarea{width:100%;min-height:70px;padding:10px;border-radius:10px;border:1px solid var(--line);background:var(--card2);color:var(--fg);font:inherit;resize:vertical}
.tw .nav{display:flex;gap:10px;margin:18px 0}.tw .nav .primary{flex:1}
.tw .stars{display:flex;gap:6px;margin:6px 0}.tw .stars button{font-size:1.6rem;padding:4px 10px;border-radius:10px;background:var(--card2);color:var(--mut)}.tw .stars button.on{color:#e6b422;border-color:#e6b422}
.tw .err{color:var(--bad);margin:8px 0}
.tw .chk{display:flex;gap:10px;align-items:flex-start;margin:14px 0;font-size:.92rem}.tw .chk input{margin-top:4px;width:20px;height:20px;flex:none}
.tw .reward{display:flex;gap:12px;align-items:center;background:var(--card);border:1px solid var(--acc);border-radius:var(--r);padding:12px 14px;margin:14px 0}.tw .reward .ic{font-size:1.6rem}
.tw .steps li{margin:6px 0}
.tw .note{background:var(--card2);border-radius:10px;padding:10px 12px;font-size:.88rem;color:var(--mut);margin:12px 0}
/* Übersicht */
.gv .filters{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.gv .filters input[type=search]{flex:1 1 220px;padding:11px 12px;border-radius:10px;border:1px solid var(--line);background:var(--card2);color:var(--fg);font:inherit}
.gv .filters select{flex:0 1 auto;width:auto}
.gv .sum{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.gv .sum div{flex:1 1 130px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px}.gv .sum b{display:block;font-size:1.4rem}.gv .sum span{color:var(--mut);font-size:.85rem}
.gv .dev{background:var(--card);border:1px solid var(--line);border-radius:var(--r);margin:10px 0;overflow:hidden}
.gv .dev summary{list-style:none;cursor:pointer;padding:12px 14px;display:flex;gap:10px;align-items:center;justify-content:space-between}
.gv .dev summary::-webkit-details-marker{display:none}
.gv .dev .t{min-width:0}.gv .dev .t b{display:block}.gv .dev .t span{color:var(--mut);font-size:.85rem}
.gv .dev .sc{flex:none;text-align:right;font-size:.85rem;color:var(--mut)}.gv .dev .sc b{display:block;font-size:1.05rem;color:var(--fg)}
.gv .dev .body{padding:0 14px 14px;border-top:1px solid var(--line)}
.gv .pill{display:inline-block;font-size:.72rem;padding:2px 8px;border-radius:99px;background:var(--card2);color:var(--mut);margin-left:6px;vertical-align:middle}
.gv .pill.v{background:#2f7d14;color:#fff}
.gv .ans{display:grid;grid-template-columns:1fr auto;gap:2px 10px;margin-top:10px;font-size:.92rem}.gv .ans .d{grid-column:1/-1;color:var(--mut);font-size:.82rem;margin:-2px 0 4px}
.gv .more{width:100%;margin:12px 0}
.gv .empty{text-align:center;color:var(--mut);padding:30px 0}
.gv .dev .t span.pill{color:var(--mut);font-size:.72rem}.gv .dev .t span.pill.v{color:#fff}
.gv .dev.grp>.body>.dev{margin:10px 0 0;background:var(--card2)}
