/* ── THEME ─────────────────────────────────── */
:root {
  --bg:#ffffff;--bg2:#f8f8fb;--bg3:#f1f1f5;--border:#e4e4ec;
  --text:#111118;--muted:#8b8ba7;--accent:#0d9488;--accent2:#0f766e;
  --glow:rgba(13,148,136,.15);--pill:#ccfbf1;--card-h:#f0fdfa;
  --badge:#ccfbf1;--shadow:0 4px 32px rgba(0,0,0,.08);--fav:#ef4444;
}
[data-theme="dark"] {
  --bg:#0c0c12;--bg2:#13131f;--bg3:#1c1c2e;--border:#252538;
  --text:#e2e8f0;--muted:#6b7280;--accent:#14b8a6;--accent2:#0d9488;
  --glow:rgba(13,148,136,.25);--pill:#0d2220;--card-h:#0a1f1e;
  --badge:#0d2220;--shadow:0 4px 32px rgba(0,0,0,.5);--fav:#ef4444;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;overflow:hidden}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--text);display:flex;flex-direction:column}

/* ── HEADER ─────────────────────────────────── */
header{padding:0 18px;height:54px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;background:var(--bg);flex-shrink:0;position:sticky;top:0;z-index:50}
.logo{font-size:17px;font-weight:800;color:var(--accent);display:flex;align-items:center;gap:7px;text-decoration:none;white-space:nowrap}
.logo-img{width:30px;height:30px;object-fit:contain;flex-shrink:0;transition:transform .2s}
.logo:hover .logo-img{transform:rotate(-8deg) scale(1.1)}
.back-link{font-size:12px;color:var(--muted);text-decoration:none;font-weight:600;display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg2);transition:all .13s}
.back-link:hover{color:var(--text);border-color:var(--accent)}

.search-wrap{flex:1;max-width:420px;position:relative}
.search-wrap input{width:100%;padding:6px 12px 6px 36px;background:var(--bg3);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:13px;outline:none;transition:border-color .15s,box-shadow .15s}
.search-wrap input::placeholder{color:var(--muted)}
.search-wrap input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--glow)}
.srch-ic{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}

.coll-tabs{display:flex;gap:2px;background:var(--bg3);padding:3px;border-radius:8px;border:1px solid var(--border);overflow-x:auto;max-width:700px;scrollbar-width:none}
.coll-tabs::-webkit-scrollbar{display:none}
.coll-tab{padding:3px 10px;border-radius:6px;font-size:12px;cursor:pointer;color:var(--muted);border:none;background:none;font-weight:600;transition:all .14s;white-space:nowrap;text-decoration:none;display:inline-block}
.coll-tab.active{background:var(--accent);color:#fff;box-shadow:0 2px 8px var(--glow)}
.coll-tab:hover:not(.active){background:var(--border);color:var(--text)}

.hdr-right{display:flex;align-items:center;gap:7px;margin-left:auto}
.hbtn{width:32px;height:32px;border-radius:7px;background:var(--bg3);border:1px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:16px;transition:all .14s}
.hbtn:hover{color:var(--text);border-color:var(--accent);background:var(--card-h)}
.hbtn.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.select-btn{padding:0 10px;width:auto;font-size:12px;font-weight:600;gap:5px;display:flex}

/* ── LAYOUT ─────────────────────────────────── */
.layout{display:flex;flex:1;overflow:hidden}

/* ── SIDEBAR ─────────────────────────────────── */
aside{width:210px;border-right:1px solid var(--border);overflow-y:auto;padding:12px 8px;flex-shrink:0;background:var(--bg2)}
.aside-sec{margin-bottom:10px}
.aside-label{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;padding:10px 10px 6px;display:block}
.cat-btn{width:100%;text-align:left;padding:6px 10px;border-radius:8px;font-size:12.5px;cursor:pointer;color:var(--muted);border:none;background:none;display:flex;align-items:center;justify-content:space-between;transition:all .13s;gap:6px}
.cat-btn span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.cat-btn:hover{background:var(--bg3);color:var(--text)}
.cat-btn.active{background:var(--accent);color:#fff;font-weight:600}
.cat-btn.active .cbadge{background:rgba(255,255,255,.2);color:#fff}
.cbadge{font-size:10px;background:var(--badge);color:var(--muted);padding:1px 7px;border-radius:100px;flex-shrink:0}

/* ── ICON AREA ─────────────────────────────────── */
.icon-area{flex:1;display:flex;flex-direction:column;overflow:hidden}
.toolbar{padding:8px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;flex-shrink:0;background:var(--bg2);flex-wrap:wrap}
.tb-count{font-size:11.5px;color:var(--muted)}
.tb-count b{color:var(--text)}
.style-pills{display:flex;gap:3px}
.style-pill{padding:3px 10px;border-radius:100px;font-size:11px;cursor:pointer;border:1px solid var(--border);background:var(--pill);color:var(--muted);font-weight:600;transition:all .13s}
.style-pill.active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 2px 8px var(--glow)}
.style-pill:hover:not(.active){border-color:var(--accent);color:var(--text)}
.size-grp{display:flex;gap:1px;background:var(--bg3);padding:2px;border-radius:6px;border:1px solid var(--border);margin-left:auto}
.spill{padding:2px 7px;font-size:11px;cursor:pointer;border:none;background:none;color:var(--muted);border-radius:4px;font-weight:600;transition:all .13s}
.spill.active{background:var(--accent);color:#fff}

/* ── GRID ─────────────────────────────────── */
.grid-scroll{flex:1;overflow-y:auto;padding:20px 24px}
#icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px;align-content:start}
#icon-grid.sz-sm{grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:7px}
#icon-grid.sz-lg{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}

.ic-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 12px 18px;border-radius:14px;cursor:pointer;border:1.5px solid var(--border);background:var(--bg2);transition:border-color .15s,box-shadow .15s,transform .12s,background .15s;position:relative;user-select:none}
.ic-card:hover{background:var(--bg);border-color:var(--accent);box-shadow:0 6px 24px var(--glow);transform:translateY(-2px)}
.ic-card.selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--glow);background:var(--card-h)}
.ic-card:active{transform:translateY(0) scale(.97)}

.ic-img{width:40px;height:40px;object-fit:contain;pointer-events:none;transition:transform .15s;display:block}
.ic-card:hover .ic-img{transform:scale(1.1)}
#icon-grid.sz-sm .ic-card{padding:20px 10px 14px;gap:8px;border-radius:11px}
#icon-grid.sz-sm .ic-img{width:28px;height:28px}
#icon-grid.sz-lg .ic-card{padding:36px 14px 22px;gap:12px;border-radius:16px}
#icon-grid.sz-lg .ic-img{width:54px;height:54px}

.ic-name{font-size:11px;font-weight:500;color:var(--muted);text-align:center;word-break:break-all;line-height:1.4;max-width:120px;pointer-events:none;transition:color .15s}
.ic-card:hover .ic-name{color:var(--accent)}
#icon-grid.sz-sm .ic-name{font-size:9.5px;max-width:88px}
#icon-grid.sz-lg .ic-name{font-size:12.5px;max-width:160px}

/* ── HEART ─────────────────────────────────── */
.fav-btn{position:absolute;top:9px;right:9px;width:26px;height:26px;border-radius:50%;background:var(--bg);border:1.5px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.7);transition:opacity .15s,transform .2s cubic-bezier(.34,1.56,.64,1),background .13s,border-color .13s;z-index:2;padding:0}
.fav-btn svg{width:13px;height:13px;fill:none;stroke:var(--muted);stroke-width:1.8;transition:all .15s}
.ic-card:hover .fav-btn{opacity:1;transform:scale(1)}
.fav-btn:hover{background:var(--fav);border-color:var(--fav)}
.fav-btn:hover svg{stroke:#fff}
.fav-btn.favd{opacity:1;transform:scale(1);background:var(--fav);border-color:var(--fav)}
.fav-btn.favd svg{fill:#fff;stroke:#fff}
@keyframes fav-pop{0%{transform:scale(1)}40%{transform:scale(1.4)}70%{transform:scale(.9)}100%{transform:scale(1)}}
.fav-btn.pop{animation:fav-pop .35s cubic-bezier(.34,1.56,.64,1)}

.load-more-btn{display:block;margin:14px auto;padding:7px 24px;background:var(--bg2);border:1px solid var(--border);border-radius:8px;cursor:pointer;font-size:12.5px;color:var(--text);transition:all .13s}
.load-more-btn:hover{border-color:var(--accent);color:var(--accent)}

.empty-state{grid-column:1/-1;text-align:center;padding:60px 20px;color:var(--muted)}
.empty-state svg{display:block;margin:0 auto 10px;opacity:.3}
.empty-state h3{font-size:14px;font-weight:600;margin-bottom:4px;color:var(--text)}
.empty-state p{font-size:12px}

/* ── BULK BAR ─────────────────────────────────── */
#bulk-bar{position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--text);color:var(--bg);border-radius:12px;padding:10px 18px;display:flex;align-items:center;gap:12px;font-size:13px;font-weight:600;z-index:300;transition:transform .25s cubic-bezier(.34,1.56,.64,1);box-shadow:var(--shadow);white-space:nowrap}
#bulk-bar.show{transform:translateX(-50%) translateY(0)}
.bulk-actions{display:flex;gap:6px}
.bulk-act{padding:5px 12px;border-radius:7px;border:none;font-size:12px;font-weight:600;cursor:pointer;background:rgba(255,255,255,.15);color:inherit;transition:background .13s}
.bulk-act:hover{background:rgba(255,255,255,.25)}
.bulk-clear{background:transparent;opacity:.6}

/* ── MODAL ─────────────────────────────────── */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:200;opacity:0;pointer-events:none;transition:opacity .2s}
.overlay.open{opacity:1;pointer-events:all}
.modal{background:var(--bg);border:1px solid var(--border);border-radius:20px;width:400px;max-width:95vw;max-height:90vh;overflow-y:auto;transform:scale(.94) translateY(8px);transition:transform .2s;box-shadow:var(--shadow);position:relative}
.overlay.open .modal{transform:scale(1) translateY(0)}

.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 0}
.modal-close-btn{width:28px;height:28px;border-radius:7px;background:var(--bg3);border:1px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--muted);transition:all .13s}
.modal-close-btn:hover{color:var(--text);border-color:var(--accent)}

.modal-preview{width:88px;height:88px;background:var(--bg3);border-radius:14px;display:flex;align-items:center;justify-content:center;margin:12px auto;border:1px solid var(--border)}
.modal-name{font-size:15px;font-weight:700;text-align:center}
.modal-meta{font-size:11px;color:var(--muted);text-align:center;margin:2px 0 10px}
.modal-vars{display:flex;gap:4px;justify-content:center;flex-wrap:wrap;padding:0 18px;margin-bottom:14px}
.modal-var{padding:3px 10px;border-radius:100px;font-size:11px;cursor:pointer;border:1px solid var(--border);background:var(--bg3);color:var(--muted);font-weight:600;transition:all .13px}
.modal-var.active{background:var(--accent);border-color:var(--accent);color:#fff}

.msec{padding:14px 18px;border-top:1px solid var(--border)}
.msec-title{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}

.color-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:5px;margin-bottom:10px}
.color-swatch{width:100%;aspect-ratio:1;border-radius:6px;cursor:pointer;border:2px solid transparent;transition:transform .12s,border-color .12s,box-shadow .12s}
.color-swatch:hover{transform:scale(1.18);box-shadow:0 2px 8px rgba(0,0,0,.2)}
.color-swatch.active{border-color:var(--accent);transform:scale(1.18);box-shadow:0 0 0 3px var(--glow)}
.color-input-row{display:flex;align-items:center;gap:8px}
.color-hex-label{font-size:11px;color:var(--muted);font-weight:600}
#color-hex{flex:1;padding:5px 9px;background:var(--bg3);border:1px solid var(--border);border-radius:7px;color:var(--text);font-size:12px;font-family:monospace;outline:none}
#color-hex:focus{border-color:var(--accent)}
#color-picker{width:30px;height:30px;border:none;border-radius:7px;cursor:pointer;padding:0;background:none;flex-shrink:0}

.size-btns{display:flex;gap:4px;flex-wrap:wrap}
.size-btn{padding:4px 10px;border-radius:6px;font-size:11.5px;cursor:pointer;border:1px solid var(--border);background:var(--bg3);color:var(--muted);font-weight:600;transition:all .13px}
.size-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}

.stroke-row{display:flex;align-items:center;gap:10px}
.stroke-row input[type=range]{flex:1;accent-color:var(--accent)}
.stroke-val{font-size:12px;color:var(--muted);min-width:28px;text-align:right}

.dl-btns{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.dl-group{display:flex;flex-direction:column;gap:3px}
.dl-btn{padding:9px 8px;border-radius:9px;border:1px solid var(--border);background:var(--bg3);color:var(--text);font-size:12px;font-weight:600;cursor:pointer;transition:all .13s;display:flex;flex-direction:column;align-items:center;gap:4px;width:100%}
.dl-btn .dl-ico{font-size:17px;line-height:1}
.dl-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.copy-fmt-btn{padding:4px 6px;border-radius:6px;border:1px solid var(--border);background:var(--bg3);color:var(--muted);font-size:10px;font-weight:600;cursor:pointer;transition:all .13s;display:flex;align-items:center;justify-content:center;gap:3px;width:100%}
.copy-fmt-btn svg{flex-shrink:0;opacity:.7}
.copy-fmt-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--card-h)}
.copy-fmt-btn:hover svg{opacity:1}
.copy-fmt-btn.copied{border-color:var(--accent);background:var(--accent);color:#fff}

.code-tabs{display:flex;gap:2px;background:var(--bg3);padding:2px;border-radius:7px;margin-bottom:8px}
.code-tab{flex:1;padding:4px 8px;border-radius:5px;font-size:11px;cursor:pointer;border:none;background:none;color:var(--muted);font-weight:600;transition:all .13s}
.code-tab.active{background:var(--accent);color:#fff}
.code-block{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-family:'SF Mono',Consolas,'Courier New',monospace;font-size:11px;color:var(--muted);overflow-x:auto;white-space:pre;position:relative;min-height:40px}
.copy-code-btn{position:absolute;top:6px;right:6px;padding:3px 8px;border-radius:5px;border:1px solid var(--border);background:var(--bg2);cursor:pointer;font-size:10.5px;font-weight:600;color:var(--muted);transition:all .13s}
.copy-code-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}

#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(60px);background:var(--accent);color:#fff;padding:7px 18px;border-radius:8px;font-size:12.5px;font-weight:600;pointer-events:none;z-index:999;transition:transform .25s cubic-bezier(.34,1.56,.64,1);box-shadow:0 4px 20px var(--glow)}
#toast.show{transform:translateX(-50%) translateY(0)}

::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--muted)}
@media(max-width:680px){aside{display:none}.coll-tabs{display:none}}
