@keyframes favicon-generator-spin{0%{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes favicon-generator-progress{0%{left:-40%}to{left:100%}}.favicon-generator__panel{background:var(--panel-background);border:1px solid var(--panel-border);border-radius:var(--border-radius);margin:var(--space-xl)0;overflow:hidden}.favicon-generator__checked-url{color:var(--text-secondary);font-size:var(--font-size-s);margin-bottom:var(--space-l);overflow-wrap:anywhere}.favicon-generator__summary{align-items:baseline;display:flex;flex-wrap:wrap;gap:var(--space-s) var(--space-m);padding:0 0 var(--space-l)}.favicon-generator__summary-count{font-family:var(--font-family-heading);font-size:var(--font-size-xxl);line-height:1}.favicon-generator__summary--complete .favicon-generator__summary-count{color:var(--colour-success)}.favicon-generator__summary--gaps .favicon-generator__summary-count{color:var(--colour-warning)}.favicon-generator__summary-icon{color:var(--colour-success);font-size:var(--font-size-xxl);line-height:1}.favicon-generator__summary-text{color:var(--text-secondary);font-family:var(--font-family-heading);font-size:var(--font-size-m)}.favicon-generator__final-url{color:var(--text-secondary);font-size:var(--font-size-s);padding:0 0 var(--space-l)}.favicon-generator__eyebrow{border-top:1px solid var(--panel-border);color:var(--text-primary);font-family:var(--font-family-heading);font-size:var(--font-size-m);padding:var(--space-l)0 var(--space-s)}.favicon-generator__ledger{display:flex;flex-direction:column}.favicon-generator__row{align-items:baseline;border-left:3px solid transparent;border-top:1px solid var(--panel-border);display:flex;flex-wrap:wrap;font-size:var(--font-size-s);gap:var(--space-xs) var(--space-m);padding:var(--space-m)0 var(--space-m) var(--space-m)}.favicon-generator__ledger .favicon-generator__row:first-child{border-top:none}.favicon-generator__row--ok{border-left-color:var(--colour-success)}.favicon-generator__row--broken{border-left-color:var(--colour-error)}.favicon-generator__row--missing{border-left-color:var(--colour-warning)}.favicon-generator__row--missing.favicon-generator__row--optional{opacity:.6}.favicon-generator__row-icon{flex:0 0 1.8rem;font-size:var(--font-size-xs);line-height:1.6}.favicon-generator__row--ok .favicon-generator__row-icon{color:var(--colour-success)}.favicon-generator__row--broken .favicon-generator__row-icon{color:var(--colour-error)}.favicon-generator__row--missing .favicon-generator__row-icon{color:var(--colour-warning)}.favicon-generator__row--pending{opacity:.7}.favicon-generator__row--pending .favicon-generator__row-icon{animation:favicon-generator-spin 1s linear infinite;color:var(--text-secondary);display:inline-block}.favicon-generator__progress-bar{background:var(--panel-border);height:3px;margin:var(--space-l)0;overflow:hidden;position:relative}.favicon-generator__progress-bar::after{animation:favicon-generator-progress 1.2s ease-in-out infinite;background:var(--colour-accent);content:"";height:100%;position:absolute;width:40%}.favicon-generator__row-name{color:var(--text-primary);flex:0 0 auto;min-width:19rem}.favicon-generator__row-badge{color:var(--text-secondary);font-size:var(--font-size-xs);text-transform:uppercase}.favicon-generator__row-detail{color:var(--text-secondary);flex:1 1 20rem;font-family:var(--font-family-mono);font-size:var(--font-size-xs);overflow-wrap:anywhere}.favicon-generator__wizard{margin:var(--space-xl)0}.favicon-generator__wizard-body{padding:var(--space-l)}.favicon-generator__wizard-heading{margin-top:0}.favicon-generator__wizard-help{color:var(--text-secondary);margin-bottom:var(--space-l)}.favicon-generator__wizard-nav{display:flex;gap:var(--space-m);margin-top:var(--space-l)}.favicon-generator__file-list{display:flex;flex-direction:column;gap:var(--space-xs);margin:0 0 var(--space-l)}.favicon-generator__file-list-item{align-items:baseline;color:var(--text-secondary);display:flex;font-size:var(--font-size-s);gap:var(--space-s)}.favicon-generator__file-list-item::before{color:var(--colour-accent);content:"•"}.favicon-generator__upload-label{align-items:center;background:var(--panel-background);border:1px dashed var(--panel-border);border-radius:var(--border-radius);cursor:pointer;display:flex;gap:var(--space-s);padding:var(--space-m) var(--space-l);width:fit-content}.favicon-generator__upload-label:hover{border-color:var(--colour-accent)}.favicon-generator__upload-label--done{border-color:var(--colour-success);border-style:solid;color:var(--colour-success)}#source-image{display:none}.favicon-generator__upload-preview{align-items:center;display:flex;gap:var(--space-s);margin-top:var(--space-m)}.favicon-generator__upload-preview span{color:var(--text-secondary);font-size:var(--font-size-s);overflow-wrap:anywhere}#source-preview{background:repeating-conic-gradient(#8884 0% 25%,transparent 0% 50%) 50%/16px 16px;height:48px;width:48px}.favicon-generator__fields{display:grid;gap:var(--space-l);grid-template-columns:repeat(3,1fr)}#source-preview,.favicon-generator__colour-input{border:1px solid var(--panel-border);border-radius:var(--border-radius)}.favicon-generator__colour-input{block-size:2.6rem;flex:0 0 auto;padding:2px}.favicon-generator__colour-row{align-items:center;display:flex;gap:var(--space-s)}.favicon-generator__field-help{color:var(--text-secondary);display:block;font-size:var(--font-size-s);margin-top:var(--space-s)}.favicon-generator__colour-row .favicon-generator__field-help{margin-top:0}.favicon-generator__snippet-wrapper{margin-bottom:var(--space-l);position:relative}.favicon-generator__redownload-button{display:block;margin-bottom:var(--space-l)}#wizard-step-6 .checkbox-label{margin-bottom:var(--space-l)}#wizard-step-6 .checkbox-label:has(input:disabled){cursor:not-allowed;opacity:.5}#favicon-generator-verify-results:not(:empty){margin-bottom:var(--space-l)}#favicon-generator-snippet-code{background:var(--panel-background);border:1px solid var(--panel-border);border-radius:var(--border-radius);font-family:var(--font-family-mono);font-size:var(--font-size-s);overflow-x:hidden;padding:var(--space-l);white-space:pre-wrap}.favicon-generator__copy-button{position:absolute;right:var(--space-m);top:var(--space-m)}.favicon-generator__copy-button::after{content:""}@media (max-width:700px){.favicon-generator__row{flex-direction:column;gap:var(--space-xs)}.favicon-generator__row-icon{flex-basis:auto}.favicon-generator__row-name{min-width:0}.favicon-generator__row-detail{flex-basis:auto}.favicon-generator__fields{grid-template-columns:1fr}.favicon-generator__wizard-nav{flex-direction:column-reverse}.favicon-generator__redownload-button,.favicon-generator__wizard-nav .button{width:100%}}