.css-font-optical-sizing-generator{max-width:var(--tool-container-max-width, 1600px);margin:0 auto;padding:2rem}.css-font-optical-sizing-generator .tool-header{text-align:center;margin-bottom:2rem}.css-font-optical-sizing-generator .tool-header h1{font-size:2rem;color:var(--gray-800);margin-bottom:.5rem}.css-font-optical-sizing-generator .tool-header p{color:var(--gray-500);max-width:700px;margin:0 auto;line-height:1.6}.css-font-optical-sizing-generator .generator-layout{display:grid;grid-template-columns:350px 1fr;gap:var(--tool-content-gap, 2rem);align-items:start}.css-font-optical-sizing-generator .controls-panel{background:var(--gray-50);border-radius:12px;padding:1.5rem;border:1px solid var(--gray-200);position:sticky;top:1rem;max-height:none;overflow-y:auto}.css-font-optical-sizing-generator .control-section{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid var(--gray-600)}.css-font-optical-sizing-generator .control-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.css-font-optical-sizing-generator .control-section h3{font-size:1.15rem;font-weight:700;color:var(--gray-900);margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:2px solid var(--primary);letter-spacing:.03em}.css-font-optical-sizing-generator .preset-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.css-font-optical-sizing-generator .preset-button{padding:.5rem .75rem;border:1px solid var(--gray-300);border-radius:6px;background:var(--white);color:var(--gray-700);font-size:.75rem;cursor:pointer;transition:all .15s;text-align:left}.css-font-optical-sizing-generator .preset-button:hover{border-color:#fff;background:#f5f3ff}.css-font-optical-sizing-generator .preset-button.active{border-color:#8b5cf6;background:#8b5cf6;color:var(--white)}.css-font-optical-sizing-generator select{width:100%;padding:.625rem;border:1px solid var(--gray-300);border-radius:6px;background:var(--white);color:var(--gray-700);font-size:.875rem;cursor:pointer}.css-font-optical-sizing-generator select:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.css-font-optical-sizing-generator .selector-input{width:100%;padding:.625rem;border:1px solid var(--gray-300);border-radius:6px;margin-top:.5rem;font-size:.875rem;font-family:monospace}.css-font-optical-sizing-generator .selector-input:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.css-font-optical-sizing-generator .toggle-buttons{display:flex;gap:.5rem}.css-font-optical-sizing-generator .toggle-button{flex:1;padding:.75rem 1rem;border:1px solid var(--gray-300);border-radius:6px;background:var(--white);color:var(--gray-700);font-size:.875rem;font-family:monospace;cursor:pointer;transition:all .15s}.css-font-optical-sizing-generator .toggle-button:hover{border-color:#fff;background:#f5f3ff}.css-font-optical-sizing-generator .toggle-button.active{border-color:#8b5cf6;background:#8b5cf6;color:var(--white)}.css-font-optical-sizing-generator .control-hint{margin-top:.5rem;font-size:.75rem;color:var(--gray-500)}.css-font-optical-sizing-generator .font-info{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;font-size:.75rem}.css-font-optical-sizing-generator .font-info.has-opsz{color:#059669}.css-font-optical-sizing-generator .font-info.no-opsz{color:#d97706}.css-font-optical-sizing-generator .opsz-badge{background:#d1fae5;color:#059669;padding:.125rem .5rem;border-radius:4px;font-weight:600}.css-font-optical-sizing-generator .no-opsz-badge{background:#fef3c7;color:#d97706;padding:.125rem .5rem;border-radius:4px;font-weight:600}.css-font-optical-sizing-generator .size-controls{display:flex;gap:.75rem;align-items:center}.css-font-optical-sizing-generator .size-controls input[type=range]{flex:1}.css-font-optical-sizing-generator .unit-select{width:auto;min-width:100px}.css-font-optical-sizing-generator .size-category{margin-top:.5rem}.css-font-optical-sizing-generator .size-category .category{padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:500}.css-font-optical-sizing-generator .size-category .small{background:#dbeafe;color:#1d4ed8}.css-font-optical-sizing-generator .size-category .body{background:#d1fae5;color:#059669}.css-font-optical-sizing-generator .size-category .heading{background:#fef3c7;color:#d97706}.css-font-optical-sizing-generator .size-category .display{background:#ede9fe;color:var(--secondary)}.css-font-optical-sizing-generator input[type=range]{width:100%;height:6px;border-radius:3px;background:var(--gray-200);-webkit-appearance:none;cursor:pointer}.css-font-optical-sizing-generator input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#8b5cf6;cursor:pointer;border:2px solid white;box-shadow:0 1px 3px #0003}.css-font-optical-sizing-generator .weight-labels{display:flex;justify-content:space-between;font-size:.7rem;color:var(--gray-400);margin-top:.25rem}.css-font-optical-sizing-generator .checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:1rem;color:var(--gray-900);margin-bottom:.5rem;cursor:pointer}.css-font-optical-sizing-generator .checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--gray-900);cursor:pointer}.css-font-optical-sizing-generator .container-width-control{margin-top:.75rem}.css-font-optical-sizing-generator .container-width-control label{display:block;font-size:.75rem;color:var(--gray-500);margin-bottom:.25rem}.css-font-optical-sizing-generator textarea{width:100%;padding:.625rem;border:1px solid var(--gray-300);border-radius:6px;font-size:.875rem;resize:vertical;min-height:60px}.css-font-optical-sizing-generator textarea:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.css-font-optical-sizing-generator .save-button{width:100%;padding:.75rem;background:#8b5cf6;color:var(--white);border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:background .15s}.css-font-optical-sizing-generator .save-button:hover{background:var(--secondary)}.css-font-optical-sizing-generator .saved-configs{margin-top:.75rem}.css-font-optical-sizing-generator .saved-configs p{font-size:.75rem;color:var(--gray-500);margin-bottom:.5rem}.css-font-optical-sizing-generator .load-config-button{display:block;width:100%;padding:.5rem;margin-bottom:.25rem;background:var(--white);border:1px solid var(--gray-300);border-radius:4px;font-size:.75rem;color:var(--gray-700);cursor:pointer;text-align:left}.css-font-optical-sizing-generator .load-config-button:hover{border-color:#8b5cf6;background:#f5f3ff}.css-font-optical-sizing-generator .preview-panel{display:flex;flex-direction:column;gap:1.5rem}.css-font-optical-sizing-generator .preview-section{background:#f9fafb;border-radius:12px;padding:1.5rem;border:2px solid #d1d5db;box-shadow:0 1px 3px #0000001a}.css-font-optical-sizing-generator .preview-section h3{font-size:1rem;font-weight:600;color:var(--gray-800);margin-bottom:1rem}.css-font-optical-sizing-generator .preview-container{background:#f9fafb;border:2px solid #d1d5db;border-radius:8px;padding:2rem;margin:0 auto;box-shadow:0 1px 3px #0000001a}.css-font-optical-sizing-generator .preview-text{line-height:1.4;color:var(--gray-800)}.css-font-optical-sizing-generator .preview-meta{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px dashed var(--gray-200);font-size:.75rem;color:var(--gray-500);box-shadow:0 1px 3px #0000001a}.css-font-optical-sizing-generator .preview-meta span{background:var(--gray-100);padding:.25rem .5rem;border-radius:4px}.css-font-optical-sizing-generator .comparison-section{background:var(--white);border-radius:12px;padding:1.5rem;border:1px solid var(--gray-200)}.css-font-optical-sizing-generator .comparison-section h3{font-size:1rem;font-weight:600;color:var(--gray-800);margin-bottom:1rem}.css-font-optical-sizing-generator .comparison-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.css-font-optical-sizing-generator .comparison-item{background:var(--gray-50);border-radius:8px;padding:1rem;border:1px solid var(--gray-200)}.css-font-optical-sizing-generator .comparison-item h4{font-size:.75rem;font-family:monospace;color:#8b5cf6;margin-bottom:.75rem;background:#ede9fe;padding:.375rem .75rem;border-radius:4px;display:inline-block}.css-font-optical-sizing-generator .comparison-preview{line-height:1.4;color:var(--gray-800);min-height:60px}.css-font-optical-sizing-generator .comparison-desc{margin-top:.75rem;font-size:.75rem;color:var(--gray-500)}.css-font-optical-sizing-generator .size-range-section{background:var(--white);border-radius:12px;padding:1.5rem;border:1px solid var(--gray-200)}.css-font-optical-sizing-generator .size-range-section h3{font-size:1rem;font-weight:600;color:var(--gray-800);margin-bottom:.5rem}.css-font-optical-sizing-generator .section-desc{font-size:.875rem;color:var(--gray-500);margin-bottom:1rem}.css-font-optical-sizing-generator .size-range-grid{display:flex;flex-direction:column;gap:.75rem}.css-font-optical-sizing-generator .size-example{display:flex;align-items:baseline;gap:1rem;padding:.5rem 1rem;background:var(--gray-50);border-radius:6px;border-left:3px solid}.css-font-optical-sizing-generator .size-example.small{border-left-color:var(--info-color)}.css-font-optical-sizing-generator .size-example.body{border-left-color:var(--success)}.css-font-optical-sizing-generator .size-example.heading{border-left-color:var(--warning)}.css-font-optical-sizing-generator .size-example.display{border-left-color:#8b5cf6}.css-font-optical-sizing-generator .size-label{font-size:.75rem;color:var(--gray-500);min-width:100px;white-space:nowrap}.css-font-optical-sizing-generator .size-preview{line-height:1.3;color:var(--gray-800)}.css-font-optical-sizing-generator .output-section{background:var(--white);border-radius:12px;padding:1.5rem;border:1px solid var(--gray-200)}.css-font-optical-sizing-generator .output-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.css-font-optical-sizing-generator .output-header h3{font-size:1rem;font-weight:600;color:var(--gray-800)}.css-font-optical-sizing-generator .copy-button{padding:.5rem 1rem;background:#8b5cf6;color:var(--white);border:none;border-radius:6px;font-size:.75rem;font-weight:600;cursor:pointer;transition:background .15s}.css-font-optical-sizing-generator .copy-button:hover{background:var(--secondary)}.css-font-optical-sizing-generator .css-output{background:var(--gray-800);color:var(--gray-200);padding:1rem;border-radius:8px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.875rem;line-height:1.6;overflow-x:auto;white-space:pre-wrap}.css-font-optical-sizing-generator .examples-section{background:var(--white);border-radius:12px;padding:1.5rem;border:1px solid var(--gray-200)}.css-font-optical-sizing-generator .examples-section h3{font-size:1rem;font-weight:600;color:var(--gray-800);margin-bottom:1rem}.css-font-optical-sizing-generator .example-block{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--gray-200)}.css-font-optical-sizing-generator .example-block:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.css-font-optical-sizing-generator .example-block h4{font-size:.875rem;font-weight:600;color:var(--gray-600);margin-bottom:.75rem}.css-font-optical-sizing-generator .example-block pre{background:var(--gray-800);color:var(--gray-200);padding:1rem;border-radius:8px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.8rem;line-height:1.6;overflow-x:auto}.css-font-optical-sizing-generator .reference-section{background:var(--white);border-radius:12px;padding:1.5rem;border:1px solid var(--gray-200)}.css-font-optical-sizing-generator .reference-section h3{font-size:1rem;font-weight:600;color:var(--gray-800);margin-bottom:1rem}.css-font-optical-sizing-generator .reference-block{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--gray-200)}.css-font-optical-sizing-generator .reference-block:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.css-font-optical-sizing-generator .reference-block h4{font-size:.875rem;font-weight:600;color:var(--gray-600);margin-bottom:.75rem}.css-font-optical-sizing-generator .reference-table{width:100%;border-collapse:collapse;font-size:.875rem}.css-font-optical-sizing-generator .reference-table th{text-align:left;padding:.75rem;background:var(--gray-100);color:var(--gray-600);font-weight:600;border-bottom:2px solid var(--gray-200)}.css-font-optical-sizing-generator .reference-table td{padding:.75rem;border-bottom:1px solid var(--gray-200);color:var(--gray-700)}.css-font-optical-sizing-generator .reference-table code{background:var(--gray-100);padding:.125rem .375rem;border-radius:4px;font-size:.8rem;color:#8b5cf6}.css-font-optical-sizing-generator .reference-table.browser-support .support-yes{color:#059669;font-weight:600}.css-font-optical-sizing-generator .reference-table.browser-support .support-partial{color:#d97706;font-weight:600}.css-font-optical-sizing-generator .reference-table.browser-support .support-no{color:#dc2626;font-weight:600}.css-font-optical-sizing-generator .best-practices-list{list-style:none;padding:0;margin:0}.css-font-optical-sizing-generator .best-practices-list li{padding:.75rem 0;border-bottom:1px solid var(--gray-100);font-size:.875rem;color:var(--gray-700);line-height:1.6}.css-font-optical-sizing-generator .best-practices-list li:last-child{border-bottom:none}.css-font-optical-sizing-generator .best-practices-list strong{color:var(--gray-800)}.css-font-optical-sizing-generator .use-cases-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.css-font-optical-sizing-generator .use-case{background:var(--gray-50);padding:1rem;border-radius:8px;border:1px solid var(--gray-200)}.css-font-optical-sizing-generator .use-case h5{font-size:.875rem;font-weight:600;color:var(--gray-800);margin-bottom:.375rem}.css-font-optical-sizing-generator .use-case p{font-size:.8rem;color:var(--gray-500);line-height:1.6;margin:0}.control-panel{background-color:#1f2937f2!important;border:2px solid var(--gray-400)!important;border-radius:6px}[data-theme=dark] .control-section{background-color:#1f2937e6!important;border-color:var(--gray-400)!important;border-width:2px}[data-theme=dark] .control-group input,[data-theme=dark] .control-group select,[data-theme=dark] .control-group textarea{background-color:#0f172acc!important;border:2px solid var(--gray-500)!important;color:var(--text-primary)}[data-theme=dark] .control-group label{display:block;color:var(--gray-900);font-size:1rem;margin-bottom:.5rem;font-weight:600;line-height:1.5;letter-spacing:.3px}@media (max-width: 1023px){.css-font-optical-sizing-generator .generator-layout{grid-template-columns:1fr}.css-font-optical-sizing-generator .controls-panel{position:static;max-height:none}.css-font-optical-sizing-generator .comparison-grid,.css-font-optical-sizing-generator .use-cases-grid{grid-template-columns:1fr}}@media (max-width: 640px){.css-font-optical-sizing-generator{padding:1rem}.css-font-optical-sizing-generator .preset-grid{grid-template-columns:1fr}.css-font-optical-sizing-generator .size-controls{flex-direction:column;align-items:stretch}.css-font-optical-sizing-generator .unit-select{width:100%}.css-font-optical-sizing-generator .preview-meta{flex-direction:column;gap:.5rem}}
