:root{--bg:#f7f8fa;--card:#fff;--ink:#1c2430;--mute:#667085;--line:#dfe3ea;--acc:#1f5fbf;--bad:#b42318}
*{box-sizing:border-box}body{margin:0;font:16px/1.5 system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink)}
header{display:flex;align-items:baseline;gap:12px;padding:16px 20px;background:var(--card);border-bottom:1px solid var(--line)}h1{margin:0;font-size:1.25rem}h2{font-size:1.05rem;margin:0 0 8px}
.tag{color:var(--mute);font-size:.85rem}main{max-width:980px;margin:0 auto;padding:16px;display:grid;gap:16px}
section{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.between{justify-content:space-between}
input,select,button{font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:8px;min-height:44px}input{flex:1;min-width:180px}
button{background:var(--acc);color:#fff;border-color:var(--acc);cursor:pointer}button.alt{background:#fff;color:var(--ink)}button.danger{color:var(--bad)}
:focus-visible{outline:3px solid #7aa7ea;outline-offset:2px}.muted{color:var(--mute)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;background:none;border:0;padding:0}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px}.card b{display:block;font-size:1.4rem}
#banner{background:#fff4e5;padding:8px 20px;border-bottom:1px solid #f0c27b}
.table{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:8px;border-bottom:1px solid var(--line);vertical-align:top}
.demo{background:#fff4e5;border-radius:6px;padding:1px 6px;font-size:.8rem}.weights label{font-size:.85rem}.weights input{min-width:70px;width:80px;flex:none}
.ws-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin:12px 0;align-items:end}.ws-form label{display:grid;gap:2px;font-size:.85rem}.wide{grid-column:1/-1}
.err{color:var(--bad)}.note{background:#eef4ff;border-radius:8px;padding:8px;font-size:.9rem;margin:0 0 8px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.pcard{border:1px solid var(--line);border-radius:10px;padding:12px;display:grid;gap:4px;overflow-wrap:anywhere}.thumb{width:48px;height:48px;object-fit:cover;border-radius:6px}
#workspace .row{margin:8px 0}button:disabled{opacity:.5}
