.theme-modal{display:none;position:fixed;inset:0;z-index:99999;align-items:center;justify-content:center}.theme-modal.open{display:flex}.theme-modal-backdrop{position:absolute;inset:0;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:tm-fade-in .15s ease}@keyframes tm-fade-in{0%{opacity:0}to{opacity:1}}.theme-modal-panel{position:relative;width:min(520px,calc(100% - 2rem));max-height:calc(100vh - 2rem);overflow-y:auto;padding:1.25rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:0 16px 48px #0006;animation:tm-slide-in .15s ease}@keyframes tm-slide-in{0%{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.theme-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.theme-modal-title-group{display:flex;align-items:center;gap:.75rem}.theme-modal-close{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);border:none;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.theme-modal-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.theme-modal-title{font-size:.95rem;font-weight:700;color:var(--text-primary)}.theme-modal-hint{font-family:var(--font-mono);font-size:.65rem;color:var(--text-muted);background:var(--bg-secondary);padding:.15rem .4rem;border-radius:var(--radius-sm);border:1px solid var(--border-color)}@media(max-width:640px){.theme-modal-hint{display:none}}.theme-modal-group+.theme-modal-group{margin-top:.25rem}.theme-modal-label{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.5rem}.theme-modal-rec-legend{display:inline-flex;align-items:center;gap:.3rem;font-size:.6rem;font-weight:500;letter-spacing:.04em;text-transform:none;color:var(--text-muted);opacity:.8}.theme-modal-rec-legend-star{color:var(--accent-start);font-size:.7rem;line-height:1}.theme-modal-subgroup+.theme-modal-subgroup{margin-top:.75rem}.theme-modal-sublabel{display:block;font-size:.6rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.4rem;opacity:.85}.theme-modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:.25rem}.theme-modal-design-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.theme-modal-divider{height:1px;background:var(--border-color);margin:.875rem 0}.theme-modal-swatch{position:relative;display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:.8rem;font-weight:500;white-space:nowrap;transition:background-color var(--transition-fast),color var(--transition-fast)}.theme-modal-swatch:hover{background:var(--bg-card-hover);color:var(--text-primary)}.theme-modal-swatch.active{color:var(--text-primary);background:var(--bg-card-hover)}.theme-modal-color{flex-shrink:0;width:1.25rem;height:1.25rem;border-radius:50%;background:linear-gradient(135deg,var(--tm-bg) 50%,var(--tm-accent) 50%);border:1.5px solid var(--border-color-hover)}.theme-modal-swatch.active .theme-modal-color{border-color:var(--accent-start);box-shadow:0 0 0 2px var(--glow-color)}.theme-modal-name{overflow:hidden;text-overflow:ellipsis}.theme-modal-rec-badge{margin-left:auto;font-size:.7rem;line-height:1;color:var(--accent-start);opacity:0;transform:scale(.7);transition:opacity var(--transition-fast),transform var(--transition-fast)}.theme-modal-swatch[data-rec=true] .theme-modal-rec-badge{opacity:1;transform:scale(1)}.theme-modal-swatch[data-rec=true] .theme-modal-color{border-color:var(--accent-start);box-shadow:0 0 0 1.5px color-mix(in srgb,var(--accent-start) 55%,transparent)}.theme-modal-swatch[data-rec=true] .theme-modal-name{color:var(--text-primary)}.theme-modal-design{display:flex;align-items:center;gap:.65rem;padding:.5rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);text-align:left;transition:border-color var(--transition-fast),background-color var(--transition-fast),color var(--transition-fast)}.theme-modal-design:hover{background:var(--bg-card-hover);border-color:var(--border-color-hover);color:var(--text-primary)}.theme-modal-design.active{border-color:var(--accent-start);box-shadow:0 0 0 1px var(--glow-color);color:var(--text-primary)}.theme-modal-design-preview{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:var(--td-radius, .5rem);background:var(--bg-secondary);border:1px solid var(--border-color);overflow:hidden;position:relative}.theme-modal-design-sample{font-family:var(--td-font, inherit);font-size:.95rem;font-weight:700;color:var(--text-primary);line-height:1}.theme-modal-design[data-preview-style=gradient] .theme-modal-design-preview{background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-secondary) 55%,color-mix(in oklab,var(--accent-start) 35%,var(--bg-secondary)) 100%)}.theme-modal-design[data-preview-style=gradient] .theme-modal-design-preview:after{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent-start),var(--accent-end))}.theme-modal-design[data-preview-style=serif] .theme-modal-design-sample{font-style:italic}.theme-modal-design[data-preview-style=serif] .theme-modal-design-preview{border-radius:0;border-bottom:2px solid var(--text-primary)}.theme-modal-design[data-preview-style=grid] .theme-modal-design-preview{border-radius:0;border:1px solid var(--text-primary)}.theme-modal-design[data-preview-style=grid] .theme-modal-design-preview:before{content:"02";position:absolute;top:2px;right:4px;font-size:.55rem;font-weight:800;color:#e10600;line-height:1;font-variant-numeric:tabular-nums}.theme-modal-design[data-preview-style=pixel] .theme-modal-design-preview{border-radius:0;border:2px solid var(--text-primary);box-shadow:2px 2px 0 var(--text-primary);background:var(--bg-secondary)}.theme-modal-design[data-preview-style=pixel] .theme-modal-design-sample{font-size:.65rem}.theme-modal-design[data-preview-style=terminal] .theme-modal-design-preview{border-radius:0;border:1px dashed var(--accent-start);background:var(--bg-secondary);background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 2px,rgba(0,0,0,.12) 2px,rgba(0,0,0,.12) 3px)}.theme-modal-design[data-preview-style=terminal] .theme-modal-design-sample{font-size:.8rem;color:var(--accent-start)}.theme-modal-design[data-preview-style=terminal] .theme-modal-design-sample:before{content:">";margin-right:2px;opacity:.7}.theme-modal-design[data-preview-style=neon] .theme-modal-design-preview{border-radius:0;border:1px solid var(--accent-start);background:linear-gradient(transparent 0,transparent 60%,color-mix(in oklab,var(--accent-start) 35%,transparent) 100%),var(--bg-secondary);box-shadow:0 0 10px color-mix(in oklab,var(--accent-start) 40%,transparent),inset 0 0 8px color-mix(in oklab,var(--accent-start) 15%,transparent)}.theme-modal-design[data-preview-style=neon] .theme-modal-design-sample{text-shadow:-1px 0 0 #ff2e88,1px 0 0 #00f0ff;font-weight:800;letter-spacing:.04em}.theme-modal-design[data-preview-style=paper] .theme-modal-design-preview{background-color:var(--bg-secondary);background-image:linear-gradient(to right,color-mix(in oklab,var(--text-primary) 12%,transparent) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in oklab,var(--text-primary) 12%,transparent) 1px,transparent 1px);background-size:8px 8px;border:1px solid color-mix(in oklab,var(--text-primary) 35%,transparent);border-radius:.4rem;transform:rotate(-2deg);box-shadow:2px 3px color-mix(in oklab,var(--text-primary) 20%,transparent)}.theme-modal-design[data-preview-style=paper] .theme-modal-design-sample{transform:rotate(2deg);position:relative}.theme-modal-design[data-preview-style=paper] .theme-modal-design-sample:after{content:"";position:absolute;left:-2px;right:-2px;bottom:2px;height:5px;background:color-mix(in oklab,var(--accent-start) 40%,#fff58a);opacity:.6;z-index:-1;border-radius:1px}.theme-modal-design[data-preview-style=raw] .theme-modal-design-preview{background:#ffe000;border:3px solid var(--text-primary);border-radius:0;box-shadow:3px 3px 0 var(--text-primary)}.theme-modal-design[data-preview-style=raw] .theme-modal-design-sample{font-weight:900;font-style:italic;color:#000}.theme-modal-design[data-preview-style=schematic] .theme-modal-design-preview{background-color:color-mix(in oklab,var(--bg-secondary) 82%,var(--accent-start));background-image:linear-gradient(to right,color-mix(in oklab,var(--accent-start) 45%,transparent) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in oklab,var(--accent-start) 45%,transparent) 1px,transparent 1px);background-size:6px 6px;border:1px solid var(--accent-start);border-radius:0;position:relative}.theme-modal-design[data-preview-style=schematic] .theme-modal-design-preview:before,.theme-modal-design[data-preview-style=schematic] .theme-modal-design-preview:after{content:"";position:absolute;width:6px;height:6px;border:2px solid var(--accent-start);z-index:1}.theme-modal-design[data-preview-style=schematic] .theme-modal-design-preview:before{top:-1px;left:-1px;border-right:0;border-bottom:0}.theme-modal-design[data-preview-style=schematic] .theme-modal-design-preview:after{bottom:-1px;right:-1px;border-left:0;border-top:0}.theme-modal-design[data-preview-style=schematic] .theme-modal-design-sample{font-size:.8rem;letter-spacing:.05em}.theme-modal-design[data-preview-style=tex] .theme-modal-design-preview{background:color-mix(in oklab,#f4ecd8 30%,var(--bg-secondary));border-radius:0;border-top:1px solid var(--text-primary);border-bottom:1px solid var(--text-primary);border-left:0;border-right:0}.theme-modal-design[data-preview-style=tex] .theme-modal-design-preview:before{content:"§ 1";position:absolute;top:3px;left:3px;font-size:.5rem;letter-spacing:0;color:var(--accent-start);font-family:EB Garamond,Crimson Pro,serif;font-style:italic}.theme-modal-design[data-preview-style=tex] .theme-modal-design-sample{font-style:italic;font-weight:400}.theme-modal-design[data-preview-style=editor] .theme-modal-design-preview{background:var(--bg-secondary);border:1px solid var(--border-color-hover);border-radius:.2rem;overflow:hidden}.theme-modal-design[data-preview-style=editor] .theme-modal-design-preview:before{content:"";position:absolute;top:0;left:0;right:0;height:7px;background:color-mix(in oklab,var(--bg-primary) 60%,transparent);border-bottom:1px solid var(--border-color)}.theme-modal-design[data-preview-style=editor] .theme-modal-design-preview:after{content:"";position:absolute;top:7px;bottom:0;left:0;width:8px;background:color-mix(in oklab,var(--bg-primary) 50%,transparent);border-right:1px solid color-mix(in oklab,var(--text-muted) 40%,transparent)}.theme-modal-design[data-preview-style=editor] .theme-modal-design-sample{font-size:.75rem;color:#98c379;margin-left:6px;margin-top:4px}.theme-modal-design[data-preview-style=riso] .theme-modal-design-preview{background-color:color-mix(in oklab,var(--accent-start) 15%,var(--bg-secondary));background-image:radial-gradient(color-mix(in oklab,var(--accent-end) 50%,transparent) 1px,transparent 1.4px);background-size:5px 5px;border:2px solid var(--text-primary);border-radius:.2rem;box-shadow:2px 2px color-mix(in oklab,var(--accent-end) 70%,transparent)}.theme-modal-design[data-preview-style=riso] .theme-modal-design-sample{font-weight:900;text-shadow:-1px 1px 0 rgba(255,91,136,.65),1px -1px 0 rgba(58,211,255,.65)}.theme-modal-design[data-preview-style=deco] .theme-modal-design-preview{background:radial-gradient(ellipse 100% 60% at 50% 0%,rgba(201,169,97,.45),transparent 70%),linear-gradient(180deg,color-mix(in oklab,var(--bg-secondary) 70%,#1a1308),color-mix(in oklab,var(--bg-secondary) 90%,#0d0905));border:1px solid #c9a961;border-radius:0;box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--bg-secondary) 90%,#0d0905),inset 0 0 0 3px #c9a961;clip-path:polygon(4px 0,calc(100% - 4px) 0,100% 4px,100% calc(100% - 4px),calc(100% - 4px) 100%,4px 100%,0 calc(100% - 4px),0 4px)}.theme-modal-design[data-preview-style=deco] .theme-modal-design-sample{background:linear-gradient(135deg,#e8cf89,#b88d3a,#e8cf89);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:.15em;text-transform:uppercase;font-weight:400}.theme-modal-design[data-preview-style=zen] .theme-modal-design-preview{background:linear-gradient(to right,color-mix(in oklab,var(--text-primary) 35%,transparent) 0,color-mix(in oklab,var(--text-primary) 35%,transparent) 1px,transparent 1px),color-mix(in oklab,var(--bg-primary) 80%,#f2ece1);background-position:10px 0;background-repeat:no-repeat,no-repeat;background-size:1px 70%,100% 100%;background-origin:content-box,padding-box;border:1px solid color-mix(in oklab,var(--text-primary) 15%,transparent);border-radius:0;box-shadow:none}.theme-modal-design[data-preview-style=zen] .theme-modal-design-sample{color:color-mix(in oklab,var(--text-primary) 90%,transparent);letter-spacing:.08em;font-weight:400;font-style:italic}.theme-modal-design[data-preview-style=zine] .theme-modal-design-preview{background:linear-gradient(135deg,color-mix(in oklab,#ffd84d 60%,var(--bg-primary)) 0 10px,transparent 10px 18px),color-mix(in oklab,var(--bg-primary) 80%,#f4efe3);background-position:8px -6px,0 0;background-repeat:no-repeat,no-repeat;background-size:22px 10px,100% 100%;border:2px solid var(--text-primary);border-radius:0;box-shadow:2px 2px 0 var(--text-primary);transform:rotate(-2deg)}.theme-modal-design[data-preview-style=zine] .theme-modal-design-sample{font-weight:900;letter-spacing:0;text-transform:uppercase;font-family:Arial Black,Helvetica Neue,sans-serif}.theme-modal-design[data-preview-style=comic] .theme-modal-design-preview{background-color:#fff;background-image:radial-gradient(color-mix(in oklab,var(--accent-start) 55%,transparent) 1.2px,transparent 1.6px);background-size:6px 6px;border:2px solid #0a0a0a;border-radius:.4rem;box-shadow:3px 3px #0a0a0a}.theme-modal-design[data-preview-style=comic] .theme-modal-design-sample{color:var(--accent-start);font-family:Bangers,Inter Tight,sans-serif;font-weight:400;letter-spacing:.05em;text-shadow:-1.5px 0 0 #0a0a0a,1.5px 0 0 #0a0a0a,0 -1.5px 0 #0a0a0a,0 1.5px 0 #0a0a0a,2px 2px 0 #0a0a0a;transform:rotate(-3deg)}.theme-modal-design[data-preview-style=news] .theme-modal-design-preview{background:color-mix(in oklab,var(--bg-primary) 75%,#f4eedd);border:3px double var(--text-primary);border-radius:0;box-shadow:none;position:relative}.theme-modal-design[data-preview-style=news] .theme-modal-design-preview:after{content:"";position:absolute;left:8%;right:8%;bottom:18%;border-top:1px solid var(--text-primary);border-bottom:1px solid var(--text-primary);height:3px}.theme-modal-design[data-preview-style=news] .theme-modal-design-sample{font-family:UnifrakturMaguntia,Playfair Display,Georgia,serif;font-weight:400;letter-spacing:.02em;color:var(--text-primary)}.theme-modal-design-meta{display:flex;flex-direction:column;gap:.1rem;min-width:0}.theme-modal-design-name{font-size:.85rem;font-weight:600;color:var(--text-primary);line-height:1.2}.theme-modal-design-blurb{font-size:.7rem;color:var(--text-muted);line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.theme-modal-footer{margin-top:.75rem;padding-top:.5rem;border-top:1px solid var(--border-color);font-size:.7rem;color:var(--text-muted);text-align:center}.theme-modal-footer kbd{font-family:var(--font-mono);font-size:.65rem;background:var(--bg-secondary);padding:.1rem .3rem;border-radius:3px;border:1px solid var(--border-color)}@media(max-width:480px){.theme-modal-design-grid{grid-template-columns:1fr}}@media(max-width:640px){.theme-modal{align-items:flex-end}.theme-modal-panel{width:100%;max-height:85vh;max-height:85dvh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom,0px));animation:tm-slide-up .2s ease}@keyframes tm-slide-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.theme-modal-design-grid{grid-template-columns:1fr;gap:.4rem}.theme-modal-design{padding:.45rem}.theme-modal-design-preview{width:2.25rem;height:2.25rem}.theme-modal-grid{grid-template-columns:1fr 1fr;gap:.2rem}.theme-modal-swatch{padding:.35rem .4rem;font-size:.75rem;gap:.4rem}.theme-modal-color{width:1.1rem;height:1.1rem}.theme-modal-footer{font-size:.65rem}}
