:root{--color-primary:var(--accent-primary,#3b82f6);--color-primary-light:var(--accent-primary-alpha,#3b82f61a);--color-primary-dark:var(--accent-primary-dark,#2563eb);--color-error:#ef4444;--color-error-light:#ef44440d;--color-serif-light:#22c55e1a;--color-serif:#22c55e;--color-serif-dark:#15803d;--color-sans-light:#3b82f61a;--color-sans:#3b82f6;--color-sans-dark:#1d4ed8;--color-mono-light:#a855f71a;--color-mono:#a855f7;--color-mono-dark:#7c3aed;--color-display-light:#f59e0b1a;--color-display:#f59e0b;--color-display-dark:#d97706;--color-info-light:#3b82f61a;--color-info:#3b82f6;--color-info-dark:#1d4ed8}[data-theme=dark]{--color-primary:var(--accent-primary,#4dabf7);--color-primary-light:var(--accent-primary-alpha,#4dabf733);--color-primary-dark:var(--accent-primary-dark,#339af0);--color-error:#f87171;--color-error-light:#f871711a;--color-serif-light:#4ade8026;--color-serif:#4ade80;--color-serif-dark:#86efac;--color-sans-light:#60a5fa26;--color-sans:#60a5fa;--color-sans-dark:#93c5fd;--color-mono-light:#c084fc26;--color-mono:#c084fc;--color-mono-dark:#d8b4fe;--color-display-light:#fbbf2426;--color-display:#fbbf24;--color-display-dark:#fcd34d;--color-info-light:#60a5fa26;--color-info:#60a5fa;--color-info-dark:#93c5fd}.font-select-radix{flex-direction:column;gap:8px;width:100%;display:flex}.font-select-radix.font-select-compact{gap:4px}.font-select-radix.font-select-error-state .font-select-trigger{border-color:var(--color-error,#ef4444);box-shadow:0 0 0 1px var(--color-error,#ef4444)}.font-select-label{color:var(--text-primary,#1f2937);margin-bottom:4px;font-size:14px;font-weight:500}.font-select-container{align-items:center;gap:8px;display:flex}.font-select-trigger{background:var(--bg-primary,#fff);border:1px solid var(--border-medium,#d1d5db);cursor:pointer;border-radius:6px;flex:1;align-items:center;gap:8px;min-height:40px;padding:8px 12px;transition:all .2s;display:flex}.font-select-trigger:hover:not(:disabled){border-color:var(--border-hover,#9ca3af);background:var(--bg-hover,#f9fafb)}.font-select-trigger:focus{border-color:var(--color-primary,#3b82f6);box-shadow:0 0 0 2px var(--color-primary-light,#3b82f61a);outline:none}.font-select-trigger:disabled{opacity:.5;cursor:not-allowed;background:var(--bg-disabled,#f3f4f6)}.font-trigger-sample{color:var(--text-primary,#1f2937);text-align:center;min-width:40px;font-size:16px;font-weight:500}.font-trigger-name{text-align:left;color:var(--text-primary,#1f2937);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;overflow:hidden}.font-trigger-chevron{color:var(--text-secondary,#6b7280);font-size:12px;transition:transform .2s}.font-select-trigger[data-state=open] .font-trigger-chevron{transform:rotate(180deg)}.font-advanced-trigger-inline{cursor:pointer;width:24px;height:24px;color:var(--text-secondary,#6b7280);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;margin-left:auto;margin-right:4px;font-size:12px;transition:all .2s;display:flex}.font-advanced-trigger-inline:hover:not(:disabled){background:var(--bg-hover,#f3f4f6);color:var(--text-primary,#1f2937)}.font-advanced-trigger-inline:focus{background:var(--bg-hover,#f3f4f6);box-shadow:0 0 0 2px var(--color-primary-light,#3b82f61a);outline:none}.font-advanced-trigger-inline:disabled{opacity:.5;cursor:not-allowed}.font-advanced-trigger{background:var(--bg-primary,#fff);border:1px solid var(--border-medium,#d1d5db);cursor:pointer;width:32px;height:40px;color:var(--text-secondary,#6b7280);border-radius:6px;justify-content:center;align-items:center;font-size:14px;transition:all .2s;display:flex}.font-advanced-trigger:hover:not(:disabled){background:var(--bg-hover,#f9fafb);border-color:var(--border-hover,#9ca3af);color:var(--text-primary,#1f2937)}.font-advanced-trigger:focus{border-color:var(--color-primary,#3b82f6);box-shadow:0 0 0 2px var(--color-primary-light,#3b82f61a);outline:none}.font-advanced-trigger:disabled{opacity:.5;cursor:not-allowed;background:var(--bg-disabled,#f3f4f6)}.font-select-content,.font-advanced-content{background:var(--bg-primary,#fff);border:1px solid var(--border-medium,#d1d5db);z-index:10001;border-radius:8px;min-width:320px;max-width:400px;box-shadow:0 10px 25px #0000001a}.font-select-arrow,.font-advanced-arrow{fill:var(--bg-primary,#fff);stroke:var(--border-medium,#d1d5db)}.font-select-popover{padding:12px}.font-search-container{margin-bottom:12px}.font-search-input{border:1px solid var(--border-medium,#d1d5db);background:var(--bg-secondary,#f9fafb);width:100%;color:var(--text-primary,#1f2937);border-radius:6px;padding:8px 12px;font-size:14px;transition:border-color .2s}.font-search-input:focus{border-color:var(--color-primary,#3b82f6);box-shadow:0 0 0 2px var(--color-primary-light,#3b82f61a);outline:none}.font-search-input::placeholder{color:var(--text-tertiary,#9ca3af)}.font-scroll-area{border:1px solid var(--border-light,#e5e7eb);border-radius:6px;height:200px}.font-scroll-viewport{width:100%;height:100%}.font-options-list{padding:4px}.font-option{cursor:pointer;border-radius:6px;align-items:center;gap:12px;margin-bottom:2px;padding:8px 12px;transition:background-color .2s;display:flex}.font-option:hover:not(.font-option-disabled){background:var(--bg-hover,#f3f4f6)}.font-option.font-option-selected{background:var(--color-primary-light,#3b82f61a);border:1px solid var(--color-primary,#3b82f6)}.font-option.font-option-disabled{opacity:.5;cursor:not-allowed}.font-sample{color:var(--text-primary,#1f2937);text-align:center;min-width:50px;font-size:16px;font-weight:500}.font-info{flex-direction:column;flex:1;gap:4px;display:flex}.font-name{color:var(--text-primary,#1f2937);font-size:14px;font-weight:500}.font-tags{flex-wrap:wrap;gap:4px;display:flex}.font-tag{background:var(--bg-secondary,#f3f4f6);border:1px solid var(--border-light,#e5e7eb);color:var(--text-secondary,#6b7280);text-transform:uppercase;letter-spacing:.5px;border-radius:4px;padding:2px 6px;font-size:11px}.font-tag.font-tag-serif{background:var(--color-serif-light);border-color:var(--color-serif);color:var(--color-serif-dark)}.font-tag.font-tag-sans-serif{background:var(--color-sans-light);border-color:var(--color-sans);color:var(--color-sans-dark)}.font-tag.font-tag-monospace{background:var(--color-mono-light);border-color:var(--color-mono);color:var(--color-mono-dark)}.font-tag.font-tag-display{background:var(--color-display-light);border-color:var(--color-display);color:var(--color-display-dark)}.font-used-in{flex-direction:column;gap:2px;margin-top:2px;display:flex}.font-used-in-label{color:var(--text-tertiary,#9ca3af);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:500}.font-used-in-tags{flex-wrap:wrap;gap:3px;display:flex}.font-used-in-tag{background:var(--color-info-light);color:var(--color-info-dark);border:1px solid var(--color-info);white-space:nowrap;border-radius:4px;padding:1px 4px;font-size:10px;font-weight:500}.font-scrollbar{background:var(--bg-secondary,#f3f4f6);border-radius:4px;width:8px}.font-scrollbar-thumb{background:var(--border-medium,#d1d5db);border-radius:4px;transition:background-color .2s}.font-scrollbar-thumb:hover{background:var(--border-hover,#9ca3af)}.font-advanced-controls{flex-direction:column;gap:16px;padding:16px;display:flex}.font-advanced-controls.font-advanced-controls-compact{gap:12px;padding:12px}.font-section{margin-bottom:-4px}.font-section-header{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;border-bottom:1px solid var(--border-light);padding-bottom:4px;font-size:10px;font-weight:700}[data-theme=dark] .font-section-header{color:var(--text-primary);border-bottom-color:var(--border-medium)}.font-toggle-container{align-items:center;gap:8px;display:flex}.font-toggle{background:var(--bg-secondary,#f3f4f6);border:1px solid var(--border-medium,#d1d5db);cursor:pointer;color:var(--text-secondary,#6b7280);border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;transition:all .2s;display:flex}.font-toggle:hover:not(:disabled){background:var(--bg-hover,#e5e7eb);border-color:var(--border-hover,#9ca3af)}.font-toggle:focus{border-color:var(--color-primary,#3b82f6);box-shadow:0 0 0 2px var(--color-primary-light,#3b82f61a);outline:none}.font-toggle:disabled{opacity:.5;cursor:not-allowed}.font-toggle.font-toggle-active{background:var(--color-primary,#3b82f6);border-color:var(--color-primary,#3b82f6);color:#fff}.font-toggle.font-toggle-active:hover:not(:disabled){background:var(--color-primary-dark,#2563eb);border-color:var(--color-primary-dark,#2563eb)}.font-toggle-icon{font-size:14px;font-weight:700}.font-toggle-label{text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:500}.font-control-group{flex-direction:column;gap:8px;display:flex}.font-control-label{color:var(--text-primary,#1f2937);font-size:13px;font-weight:500}.font-slider-container{flex:1;align-items:center;gap:12px;min-width:200px;display:flex}.font-option-split{justify-content:space-between;align-items:center;min-width:200px;display:flex}.font-slider{flex:1;align-items:center;height:20px;display:flex;position:relative}.font-slider-track{background:var(--bg-secondary,#f3f4f6);border-radius:9999px;flex-grow:1;min-width:100px;height:4px;position:relative}.font-slider-range{background:var(--color-primary,#3b82f6);border-radius:9999px;height:100%;position:absolute}.font-slider-thumb{background:var(--color-primary,#3b82f6);border:2px solid var(--bg-primary,#fff);cursor:pointer;border-radius:50%;width:16px;height:16px;transition:all .2s;display:block;box-shadow:0 2px 4px #0000001a}.font-slider-thumb:hover{background:var(--color-primary-dark,#2563eb);transform:scale(1.1)}.font-slider-thumb:focus{box-shadow:0 0 0 2px var(--color-primary-light,#3b82f64d);outline:none}.font-number-input{border:1px solid var(--border-medium,#d1d5db);background:var(--bg-primary,#fff);width:60px;color:var(--text-primary,#1f2937);text-align:center;border-radius:4px;padding:4px 8px;font-size:13px}.font-number-input:focus{border-color:var(--color-primary,#3b82f6);box-shadow:0 0 0 2px var(--color-primary-light,#3b82f61a);outline:none}.font-suffix{color:var(--text-secondary,#6b7280);text-align:center;min-width:20px;font-size:13px}.font-outline-controls,.font-shadow-controls{flex-direction:column;gap:12px;min-width:300px;display:flex}.font-color-input-container{align-items:center;gap:8px;display:flex}.font-color-input{border:1px solid var(--border-medium,#d1d5db);background:var(--bg-primary,#fff);cursor:pointer;border-radius:6px;width:40px;height:32px;transition:border-color .2s}.font-color-input:focus{border-color:var(--color-primary,#3b82f6);box-shadow:0 0 0 2px var(--color-primary-light,#3b82f61a);outline:none}.font-color-input:disabled{opacity:.5;cursor:not-allowed}.font-shadow-sliders{flex-direction:column;gap:12px;display:flex}.font-slider-row{align-items:center;gap:12px;display:flex}.font-slider-label{color:var(--text-secondary,#6b7280);text-align:left;min-width:70px;font-size:12px}.font-preview-section{border-top:1px solid var(--border-light);margin-top:12px;padding-top:12px}.font-preview-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.font-preview-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.font-preview-scale-indicator{color:var(--text-tertiary);background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:4px;padding:2px 6px;font-size:11px;font-weight:500}.font-preview{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:6px;align-items:center;min-height:80px;padding:16px;display:flex;box-shadow:inset 0 1px 3px #0000000d}.font-preview-book{border-color:var(--border-medium);background:#fffef8}.font-preview-book .font-preview-text{color:#1a1a1a;margin:0}[data-theme=dark] .font-preview-book{border-color:var(--border-light);background:#1c1b19;box-shadow:inset 0 1px 3px #0003}[data-theme=dark] .font-preview-book .font-preview-text{color:#e8e4dc}.font-preview-text{color:var(--text-primary);margin:0;line-height:1.5}.font-preview-compact{min-height:60px;padding:8px}.font-preview-compact .font-preview-text{font-size:12px;line-height:1.4}.font-select-loading,.font-select-error{text-align:center;color:var(--text-secondary,#6b7280);background:var(--bg-secondary,#f9fafb);border:1px solid var(--border-light,#e5e7eb);border-radius:6px;padding:12px;font-size:14px}.font-select-error{color:var(--color-error,#ef4444);background:var(--color-error-light,#ef44440d);border-color:var(--color-error,#ef4444)}.font-select-error-message{color:var(--color-error,#ef4444);margin-top:4px;font-size:12px}.font-select-compact .font-select-trigger{min-height:32px;padding:6px 10px}.font-select-compact .font-trigger-sample{min-width:32px;font-size:14px}.font-select-compact .font-trigger-name{font-size:13px}.font-select-compact .font-advanced-trigger-inline{width:20px;height:20px;margin-right:2px;font-size:10px}.font-select-compact .font-advanced-trigger{width:28px;height:32px;font-size:12px}.font-select-compact .font-select-label{margin-bottom:2px;font-size:13px}.font-button-group{flex-wrap:wrap;gap:4px;display:flex}.font-button{background:var(--bg-secondary,#f3f4f6);border:1px solid var(--border-medium,#d1d5db);cursor:pointer;color:var(--text-secondary,#6b7280);border-radius:6px;justify-content:center;align-items:center;gap:4px;min-width:32px;height:32px;padding:6px 8px;font-size:12px;transition:all .2s;display:flex}.font-button:hover:not(:disabled){background:var(--bg-hover,#e5e7eb);border-color:var(--border-hover,#9ca3af);color:var(--text-primary,#1f2937)}.font-button:focus{border-color:var(--color-primary,#3b82f6);box-shadow:0 0 0 2px var(--color-primary-light,#3b82f61a);outline:none}.font-button:disabled{opacity:.5;cursor:not-allowed}.font-button.active{background:var(--color-primary,#3b82f6);border-color:var(--color-primary,#3b82f6);color:#fff}.font-button.active:hover:not(:disabled){background:var(--color-primary-dark,#2563eb);border-color:var(--color-primary-dark,#2563eb)}.font-button svg{flex-shrink:0}.font-button span{font-size:11px;font-weight:600}@media (max-width:768px){.font-select-content,.font-advanced-content{min-width:280px;max-width:calc(100vw - 32px)}.font-advanced-controls{min-width:240px}.font-button{min-width:28px;height:28px;padding:4px 6px;font-size:11px}}
