.icon-library { width: min(760px,calc(100vw - 32px)); max-height: calc(100dvh - 40px); overflow:auto; background:#101010; color:#f2f2f2; border:1px solid #555; padding:28px; }
.icon-library::backdrop { background: #000b; }
.icon-library header,.icon-library footer { display:flex; justify-content:space-between; gap:16px; align-items:center; }
.icon-library header h2 { margin:0; font-size:28px; }
.icon-library p { color:#bbb; }
.icon-library button { font:inherit; color:inherit; cursor:pointer; }
.icon-library header button { background:none;border:1px solid #555;font-size:28px;width:44px;height:44px; }
.icon-library .icon-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr));gap:10px; }
.icon-grid button { display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px 8px;background:#181818;border:1px solid #444;font-size:12px; }
.icon-grid svg { width:32px;height:32px; }
.icon-grid button[aria-pressed="true"] { border-color:#fff;background:#303030;box-shadow:inset 0 -3px #fff; }
.icon-library button:focus-visible { outline:2px solid white;outline-offset:3px; }
.icon-library .icon-error { color:#ff9d7c;min-height:20px; }
.icon-library footer button { padding:12px 18px;border:1px solid #555;background:#222; }
.icon-library footer .primary { background:var(--accent,#e62600);border-color:transparent; }
.workstream-icon-button { display:inline-flex;align-items:center;justify-content:center;background:transparent;color:#eee;border:1px solid #555;padding:10px;cursor:pointer; }
.workstream-icon-button:hover { background:#292929; }
.workstream-icon-button:focus-visible { outline:2px solid #fff;outline-offset:3px; }
.ws-name-row { display:flex;gap:12px;align-items:flex-start; }
.ws-name-row .ws-name { flex:1;min-width:0; }
@media(max-width:600px){.icon-library .icon-grid {grid-template-columns:repeat(3,minmax(0,1fr));}.icon-library{padding:20px;}.icon-library footer{flex-wrap:wrap;}}
