.small{font-size:13px}
.row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.sr{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
fieldset{border:0;padding:0;margin:0}
fieldset label{display:inline-flex;align-items:center;gap:6px;margin-inline-end:14px;font-weight:700}
legend{font-weight:800;font-size:14px;margin-bottom:6px}
.su-head{margin-bottom:14px}
.su-layout{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start}
.su-form{flex:999 1 520px;min-width:0;display:flex;flex-direction:column;gap:16px}
.su-form .card{display:flex;flex-direction:column;gap:12px}
.su-preview{flex:1 1 360px;min-width:0;position:sticky;top:12px}
.su-logo{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.su-logo img{width:96px;height:96px;object-fit:contain;border-radius:var(--r-m);background:var(--soft);border:2px solid var(--line);padding:6px}
.su-swatches{display:flex;flex-direction:column;gap:8px}
#swatches{display:flex;flex-wrap:wrap;gap:10px}
.sw{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px;border-radius:14px;border:2px solid var(--line);background:var(--card)}
.sw i{display:block;width:44px;height:30px;border-radius:9px;border:1px solid rgba(0,0,0,.12)}
.sw span{display:flex;gap:4px}
.sw button{font:inherit;font-size:11px;font-weight:800;min-height:26px;padding:0 8px;border-radius:999px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer}
.su-colors{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start}
.su-colors code{font-size:13px;direction:ltr}
.su-mode label{display:flex;margin:4px 0}
.su-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.su-err{background:#fee2e2;color:#991b1b;border-radius:14px;padding:10px 14px;font-weight:800;margin:0}
.su-ok{color:var(--brand-text);font-weight:800;margin:0}
.su-done{max-width:560px;margin:30px auto;text-align:center;display:flex;flex-direction:column;gap:10px;align-items:center}
.su-gate{max-width:560px}

/* the live preview: a corner of the real system, coloured by the same tokens */
.su-pv-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.pv{background:var(--paper);border:2px solid var(--line);border-radius:var(--r-l);padding:14px;display:flex;flex-direction:column;gap:12px;box-shadow:0 8px 22px var(--shadow),0 0 0 4px var(--ring)}
.pv-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pv-top img{height:34px;max-width:90px;object-fit:contain}
.pv-top b{font-size:17px;font-weight:900;color:var(--brand-text)}
.pv-nav{display:flex;gap:4px;margin-inline-start:auto}
.pv-tab{font-size:12px;font-weight:800;padding:4px 10px;border-radius:999px;border:2px solid var(--line);background:var(--card)}
.pv-tab.on{background:var(--brand);border-color:var(--brand-d);color:var(--on-brand)}
.pv-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pv-tile{background:var(--card);border:2px solid var(--line);border-radius:16px;padding:8px 10px;display:flex;flex-direction:column}
.pv-tile small{color:var(--muted);font-size:11px}
.pv-tile b{font-size:22px;font-weight:900}
.pv-warn{color:#dc2626}
:root[data-theme="dark"] .pv-warn{color:#fca5a5}
.pv-group{background:var(--card);border:2px solid var(--line);border-radius:18px;overflow:hidden}
.pv-ghead{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--soft)}
.pv-time{background:var(--ink);color:var(--paper);font-weight:900;padding:2px 12px;border-radius:999px;font-size:14px}
.pv-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;border-top:1px solid var(--line);font-size:14px;flex-wrap:wrap}
.pv-btns{gap:8px}
.pv-link{font-size:13px;margin:0}
.pv-credit{text-align:center;font-size:12px;color:var(--muted);border-top:1px dashed var(--line);padding-top:8px}
.pv-credit b{color:var(--ink)}
