.favicon-wrapper .fv-drop{border:2px dashed var(--bi-border);border-radius:12px;padding:2rem 1rem;text-align:center;color:var(--bi-text-muted);cursor:pointer;transition:border-color .2s,background .2s}.favicon-wrapper .fv-drop:hover,.favicon-wrapper .fv-drop.fv-dragover{border-color:var(--brand);background:rgba(var(--brand-rgb),.06)}.favicon-wrapper .fv-drop i{font-size:2.2rem;color:var(--brand)}.favicon-wrapper .fv-drop p{margin:.5rem 0 0;font-size:.9rem}.favicon-wrapper .fv-label{font-size:.85rem;color:var(--bi-text-muted);margin-right:.4rem}.favicon-wrapper .fv-pad-box{display:inline-flex;align-items:center;gap:.35rem;width:160px;vertical-align:middle}.favicon-wrapper .fv-pad-box .form-range{flex:1;min-width:0}.favicon-wrapper .fv-pad-val{font-size:.8rem;color:var(--bi-text-muted);min-width:2.4rem;text-align:right}.favicon-wrapper .fv-hint{font-size:.82rem;color:var(--bi-text-muted);background:rgba(var(--brand-rgb),.07);border:1px solid rgba(var(--brand-rgb),.18);border-radius:8px;padding:.45rem .7rem;margin-top:.65rem}.favicon-wrapper .fv-color-btn{display:inline-flex;align-items:center;gap:.45rem;border:1px solid var(--bi-border);background:var(--bi-surface-2);border-radius:8px;padding:.25rem .6rem;cursor:pointer;color:var(--bi-text);font-size:.85rem;line-height:1.4;transition:border-color .15s}.favicon-wrapper .fv-color-btn:hover{border-color:var(--brand)}.favicon-wrapper .fv-color-btn i{font-size:.7rem;color:var(--bi-text-muted)}.favicon-wrapper .fv-color-swatch{width:1.15rem;height:1.15rem;border-radius:4px;box-shadow:inset 0 0 0 1px #0000001f;flex-shrink:0}.favicon-wrapper .fv-color-pop{position:absolute;top:calc(100% + .5rem);left:0;z-index:1050;width:232px;padding:.75rem;border-radius:12px;background:var(--bi-surface);border:1px solid var(--bi-border);box-shadow:0 .5rem 1.5rem #0000002e}.favicon-wrapper .fv-sv{position:relative;height:140px;border-radius:8px;cursor:crosshair;touch-action:none}.favicon-wrapper .fv-sv-white{position:absolute;inset:0;border-radius:8px;background:linear-gradient(to right,#fff,#fff0);pointer-events:none}.favicon-wrapper .fv-sv-black{position:absolute;inset:0;border-radius:8px;background:linear-gradient(to top,#000,#0000);pointer-events:none}.favicon-wrapper .fv-sv-dot,.favicon-wrapper .fv-hue-dot{position:absolute;border:2px solid #fff;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #00000059;pointer-events:none}.favicon-wrapper .fv-sv-dot{width:12px;height:12px;top:0;left:0}.favicon-wrapper .fv-hue{position:relative;height:12px;border-radius:6px;margin-top:.6rem;cursor:pointer;background:linear-gradient(to right,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red);touch-action:none}.favicon-wrapper .fv-hue-dot{width:16px;height:16px;top:50%;left:0}.favicon-wrapper .fv-swatches{display:grid;grid-template-columns:repeat(8,1fr);gap:.3rem;margin-top:.6rem}.favicon-wrapper .fv-swatch{aspect-ratio:1;border-radius:6px;border:1px solid rgba(0,0,0,.1);padding:0;cursor:pointer}.favicon-wrapper .fv-swatch.active{outline:2px solid var(--brand);outline-offset:1px}.favicon-wrapper .fv-color-row{display:flex;gap:.4rem;margin-top:.6rem}.favicon-wrapper .fv-hex-input{font-family:SFMono-Regular,Consolas,monospace;text-transform:uppercase}.favicon-wrapper .fv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem}.favicon-wrapper .fv-cell{border:1px solid var(--bi-border);border-radius:10px;padding:.6rem;text-align:center;background:var(--bi-surface-2);cursor:pointer;transition:border-color .15s,transform .15s}.favicon-wrapper .fv-cell:hover{border-color:var(--brand);transform:translateY(-2px)}.favicon-wrapper .fv-thumb{width:64px;height:64px;margin:0 auto .5rem;display:flex;align-items:center;justify-content:center;background-image:linear-gradient(45deg,#ced4da 25%,transparent 25%,transparent 75%,#ced4da 75%),linear-gradient(45deg,#ced4da 25%,transparent 25%,transparent 75%,#ced4da 75%);background-size:12px 12px;background-position:0 0,6px 6px;background-color:#fff;border-radius:8px}.favicon-wrapper .fv-thumb canvas{max-width:56px;max-height:56px;width:auto;height:auto}.favicon-wrapper .fv-size{font-size:.82rem;font-weight:600;color:var(--bi-text)}.favicon-wrapper .fv-file{font-size:.7rem;color:var(--bi-text-muted);word-break:break-all}.favicon-wrapper .fv-kb{font-size:.72rem;color:var(--bi-text-muted)}.favicon-wrapper .fv-snippet{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.8rem;background:var(--bi-surface-2);color:var(--bi-text)}.favicon-wrapper .fv-source-preview{width:72px;height:72px;object-fit:cover;border-radius:10px;border:1px solid var(--bi-border)}html[data-theme=dark] .favicon-wrapper .fv-thumb{background-color:#1e293b;background-image:linear-gradient(45deg,#334155 25%,transparent 25%,transparent 75%,#334155 75%),linear-gradient(45deg,#334155 25%,transparent 25%,transparent 75%,#334155 75%)}
