body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.image-upload{margin:20px 0}.upload-header{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:20px}.upload-header h3{color:#1a1a1a;font-size:18px;font-weight:600}.upload-method-selector{border:1px solid #e1e5e9;border-radius:6px;display:flex;overflow:hidden}.method-btn{background:#fff;border:none;color:#6b7280;cursor:pointer;font-size:14px;padding:8px 16px;transition:all .2s ease}.method-btn.active{background:#3b82f6;color:#fff}.method-btn:hover:not(.active){background:#f3f4f6}.upload-area{background:#fafbfc;border:2px dashed #d1d5db;border-radius:12px;cursor:pointer;padding:40px 20px;position:relative;text-align:center;transition:all .3s ease}.upload-area:hover{background:#f0f9ff;border-color:#3b82f6}.upload-area.drag-active{background:#eff6ff;border-color:#3b82f6;transform:scale(1.02)}.upload-area.processing{background:#fffbeb;border-color:#f59e0b;cursor:not-allowed}.file-input{cursor:pointer;inset:0;opacity:0;position:absolute}.file-input:disabled{cursor:not-allowed}.upload-content{pointer-events:none}.upload-icon{color:#9ca3af;display:flex;justify-content:center;margin-bottom:16px}.upload-area.drag-active .upload-icon,.upload-area:hover .upload-icon{color:#3b82f6}.upload-text h4{color:#1f2937;font-size:18px;font-weight:500;margin-bottom:8px}.upload-text p{color:#6b7280;font-size:14px;margin:0}.upload-link{color:#3b82f6;cursor:pointer;pointer-events:auto;text-decoration:underline}.upload-link:hover{color:#1d4ed8}.processing-indicator{align-items:center;color:#f59e0b;display:flex;flex-direction:column;gap:8px;margin-top:16px}.spinner{animation:spin 1s linear infinite;border:2px solid #fef3c7;border-radius:50%;border-top-color:#f59e0b;height:20px;width:20px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.url-upload{background:#fff;border:1px solid #e1e5e9;border-radius:8px;padding:20px}.url-form{width:100%}.url-input-group{display:flex;gap:12px}.url-input{border:1px solid #e1e5e9;border-radius:6px;flex:1 1;font-size:14px;padding:12px 16px;transition:border-color .2s ease}.url-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.url-submit-btn{background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:12px 20px;transition:background .2s ease;white-space:nowrap}.url-submit-btn:hover:not(:disabled){background:#1d4ed8}.url-submit-btn:disabled{cursor:not-allowed;opacity:.5}.sample-images{background:#fff;border:1px solid #e1e5e9;border-radius:8px;margin-top:32px;padding:24px}.sample-images h4{color:#1f2937;font-size:16px;font-weight:600;margin-bottom:16px}.sample-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.sample-btn{align-items:center;background:#fff;border:1px solid #e1e5e9;border-radius:6px;cursor:pointer;display:flex;flex-direction:column;gap:8px;padding:12px;transition:all .2s ease}.sample-btn:hover:not(:disabled){border-color:#3b82f6;box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.sample-btn:disabled{cursor:not-allowed;opacity:.5}.sample-image{border:1px solid #f3f4f6;border-radius:4px;height:60px;object-fit:cover;width:80px}.sample-name{color:#6b7280;font-size:12px;font-weight:500;text-align:center}.upload-tips{background:#f9fafb;border:1px solid #e1e5e9;border-radius:8px;margin-top:24px;padding:20px}.upload-tips h4{color:#1f2937;font-size:14px;font-weight:600;margin-bottom:12px}.upload-tips ul{color:#6b7280;font-size:13px;line-height:1.5;margin:0;padding-left:20px}.upload-tips li{margin-bottom:4px}@media (max-width:768px){.upload-header{align-items:flex-start;flex-direction:column}.upload-method-selector{width:100%}.method-btn{flex:1 1}.url-input-group{flex-direction:column}.url-submit-btn{width:100%}.sample-grid{grid-template-columns:repeat(2,1fr)}}.color-palette{margin:20px 0}.color-palette h3{color:#1a1a1a;font-size:18px;font-weight:600;margin-bottom:16px}.color-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.color-token{background:#fff;border:1px solid #e1e5e9;border-radius:8px;padding:16px;position:relative;transition:box-shadow .2s ease}.color-token:hover{box-shadow:0 4px 12px #0000001a}.color-swatch{border-radius:6px;cursor:pointer;height:60px}.color-name-input,.color-swatch{border:1px solid #e1e5e9;margin-bottom:12px;width:100%}.color-name-input{border-radius:4px;font-size:14px;font-weight:500;padding:8px}.color-values{margin-bottom:12px}.color-value{align-items:center;display:flex;font-size:12px;justify-content:space-between;margin-bottom:6px}.color-value label{color:#6b7280;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.color-hex-input{border:1px solid #e1e5e9;border-radius:3px;padding:4px 6px;width:80px}.color-display,.color-hex-input{font-family:monospace;font-size:11px}.color-display{color:#4b5563}.color-metadata{align-items:center;display:flex;justify-content:space-between;margin-top:8px}.usage-select{background:#fff;border:1px solid #e1e5e9;border-radius:4px;font-size:12px;padding:4px 8px}.frequency{color:#6b7280;font-size:11px;font-weight:500}.delete-color-btn{align-items:center;background:#ef44441a;border:none;border-radius:50%;color:#ef4444;cursor:pointer;display:flex;font-size:16px;height:24px;justify-content:center;position:absolute;right:8px;top:8px;transition:all .2s ease;width:24px}.delete-color-btn:hover{background:#ef444433;transform:scale(1.1)}.typography-preview{margin:20px 0}.typography-preview h3{color:#1a1a1a;font-size:18px;font-weight:600;margin-bottom:16px}.typography-grid{display:flex;flex-direction:column;gap:24px}.typography-token{grid-gap:24px;align-items:start;background:#fff;border:1px solid #e1e5e9;border-radius:8px;display:grid;gap:24px;grid-template-columns:1fr 1fr;padding:20px}.typography-preview-text{border-right:1px solid #e1e5e9;padding-right:20px}.typography-sample-sizes{display:flex;flex-direction:column;gap:8px;margin-top:16px}.typography-controls{display:flex;flex-direction:column;gap:12px}.typography-control-group{display:flex;flex-direction:column;gap:4px}.typography-control-group label{color:#6b7280;font-size:12px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.typography-control-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.typography-input,.typography-name-input{border:1px solid #e1e5e9;border-radius:4px;font-family:inherit;font-size:14px;padding:8px 10px}.typography-number-input{width:70px}.typography-number-input,.typography-select{border:1px solid #e1e5e9;border-radius:4px;font-size:14px;padding:6px 8px}.typography-select{background:#fff}.typography-color-input{border:1px solid #e1e5e9;border-radius:4px;cursor:pointer;height:32px;width:40px}.unit{color:#6b7280;font-size:12px;margin-left:4px}.delete-typography-btn{background:#ef4444;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;margin-top:12px;padding:8px 12px;transition:background .2s ease}.delete-typography-btn:hover{background:#dc2626}@media (max-width:768px){.typography-token{gap:16px;grid-template-columns:1fr}.typography-preview-text{border-bottom:1px solid #e1e5e9;border-right:none;padding-bottom:16px;padding-right:0}.typography-control-row{grid-template-columns:1fr}}.component-detection{margin:20px 0}.component-detection-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:20px}.component-detection-header h3{color:#1a1a1a;font-size:18px;font-weight:600}.component-controls{align-items:center;display:flex;gap:16px}.overlay-toggle{align-items:center;cursor:pointer;display:flex;font-size:14px;gap:8px}.overlay-toggle input{margin:0}.component-count{color:#6b7280;font-size:12px;font-weight:500}.component-visualization{grid-gap:24px;background:#fff;border:1px solid #e1e5e9;border-radius:8px;display:grid;gap:24px;grid-template-columns:1fr 350px;overflow:hidden}.image-container{align-items:center;background:#f9fafb;display:flex;justify-content:center;min-height:400px;padding:20px;position:relative}.analysis-image{border:1px solid #e1e5e9;border-radius:4px;box-shadow:0 4px 12px #0000001a;display:block;max-height:600px;max-width:100%}.component-overlay{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.component-bbox{background:#3b82f61a;border:2px solid #3b82f6;cursor:pointer;pointer-events:auto;position:absolute;transition:all .2s ease}.component-bbox:hover{background:#1d4ed826;border-color:#1d4ed8;z-index:10}.component-bbox.selected{background:#ef444426;border-color:#ef4444;z-index:20}.component-label{background:#3b82f6;border-radius:2px;color:#fff;font-size:10px;font-weight:500;left:0;padding:2px 6px;position:absolute;top:-24px;white-space:nowrap}.component-bbox.selected .component-label{background:#ef4444}.component-list{background:#fff;border-left:1px solid #e1e5e9;max-height:640px;overflow-y:auto;padding:20px}.component-list h4{color:#1a1a1a;font-size:14px;font-weight:600;letter-spacing:.5px;margin-bottom:16px;text-transform:uppercase}.component-item{background:#fff;border:1px solid #e1e5e9;border-radius:6px;cursor:pointer;margin-bottom:12px;transition:all .2s ease}.component-item:hover{border-color:#3b82f6;box-shadow:0 2px 8px #3b82f61a}.component-item.selected{border-color:#ef4444;box-shadow:0 2px 8px #ef44441a}.component-header{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;justify-content:space-between;padding:12px}.component-info{display:flex;flex:1 1;flex-direction:column;gap:6px}.component-name-input{border:1px solid #e1e5e9;border-radius:3px;font-size:13px;font-weight:500;padding:4px 6px}.component-type-select{background:#fff;border:1px solid #e1e5e9;border-radius:3px;font-size:11px;padding:3px 6px}.delete-component-btn{align-items:center;background:#ef44441a;border:none;border-radius:50%;color:#ef4444;cursor:pointer;display:flex;font-size:14px;height:20px;justify-content:center;transition:all .2s ease;width:20px}.delete-component-btn:hover{background:#ef444433;transform:scale(1.1)}.component-measurements{background:#f9fafb;padding:8px 12px}.measurement-row{display:flex;font-size:11px;justify-content:space-between;margin-bottom:4px}.measurement-label{color:#6b7280;font-weight:500}.measurement-value{color:#374151;font-family:monospace}.component-states{border-top:1px solid #f3f4f6;padding:8px 12px}.states-label{color:#6b7280;font-size:11px;font-weight:500;margin-right:8px}.states-list{display:inline-flex;flex-wrap:wrap;gap:4px}.state-badge{background:#e5e7eb;border-radius:2px;color:#374151;font-size:9px;font-weight:500;padding:1px 4px}.component-style-summary{border-top:1px solid #f3f4f6;padding:8px 12px}.style-count{color:#6b7280;font-size:10px;font-weight:500}.no-components{color:#6b7280;padding:40px 20px;text-align:center}.no-components p{font-size:14px;margin:0}@media (max-width:1024px){.component-visualization{grid-template-columns:1fr}.component-list{border-left:none;border-top:1px solid #e1e5e9;max-height:400px}}@media (max-width:768px){.component-controls,.component-detection-header{align-items:flex-start;flex-direction:column}.component-controls{gap:8px}}.style-export{margin:20px 0}.export-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:20px}.export-header h3{color:#1a1a1a;font-size:18px;font-weight:600}.export-actions{display:flex;gap:8px}.copy-btn,.download-btn{background:#fff;border:1px solid #e1e5e9;border-radius:4px;color:#374151;cursor:pointer;font-size:14px;padding:8px 16px;transition:all .2s ease}.copy-btn:hover:not(:disabled),.download-btn:hover:not(:disabled){border-color:#3b82f6;color:#3b82f6}.download-btn{background:#3b82f6;border-color:#3b82f6;color:#fff}.download-btn:hover:not(:disabled){background:#1d4ed8;border-color:#1d4ed8}.copy-btn:disabled,.download-btn:disabled{cursor:not-allowed;opacity:.5}.export-controls{background:#fff;border:1px solid #e1e5e9;border-radius:8px;margin-bottom:20px;padding:20px}.format-controls{grid-gap:16px;align-items:start;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.control-group{display:flex;flex-direction:column;gap:6px}.control-group label{color:#6b7280;font-size:12px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.format-select{background:#fff;border:1px solid #e1e5e9;border-radius:4px;font-size:14px;padding:8px 10px}.checkbox-label{align-items:center!important;color:#374151!important;cursor:pointer;display:flex!important;flex-direction:row!important;font-size:14px!important;font-weight:400!important;gap:8px!important;letter-spacing:normal!important;text-transform:none!important}.checkbox-label input{margin:0}.export-preview{background:#fff;border:1px solid #e1e5e9;border-radius:8px;overflow:hidden}.preview-header{align-items:center;background:#f9fafb;border-bottom:1px solid #e1e5e9;display:flex;justify-content:space-between;padding:16px 20px}.preview-header h4{color:#1a1a1a;font-size:14px;font-weight:600;margin:0}.preview-info{color:#6b7280;font-size:12px;font-weight:500}.preview-content{max-height:400px;overflow:auto}.preview-content pre{background:#1e1e1e;color:#d4d4d4;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.4;margin:0;padding:20px}.preview-content code{font-family:inherit}.language-json .token.property{color:#9cdcfe}.language-json .token.string{color:#ce9178}.language-json .token.number{color:#b5cea8}.language-css .token.selector{color:#d7ba7d}.language-css .token.property{color:#9cdcfe}.language-css .token.string{color:#ce9178}@media (max-width:768px){.export-header{align-items:flex-start;flex-direction:column}.export-actions{justify-content:stretch;width:100%}.copy-btn,.download-btn{flex:1 1}.format-controls{grid-template-columns:1fr}}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8fafc;color:#1a1a1a;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;margin:0}.App{display:flex;flex-direction:column;min-height:100vh}.app-header{background:#fff;border-bottom:1px solid #e1e5e9;padding:24px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.header-content{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin:0 auto;max-width:1200px}.header-content h1{color:#1a1a1a;font-size:28px;font-weight:700;margin:0}.header-content p{color:#6b7280;font-size:16px;margin:0}.extraction-info{align-items:flex-end;display:flex;flex-direction:column;gap:4px}.extraction-status{align-items:center;color:#059669;display:flex;font-size:14px;font-weight:600;gap:6px}.extraction-details{color:#6b7280;font-size:12px}.app-main{flex:1 1;padding:24px}.main-content{margin:0 auto;max-width:1200px}.upload-section{margin-bottom:32px}.tolerance-settings{background:#fff;border:1px solid #e1e5e9;border-radius:8px;margin-top:20px;padding:20px}.tolerance-settings h4{color:#1f2937;font-size:14px;font-weight:600;letter-spacing:.5px;margin-bottom:16px;text-transform:uppercase}.tolerance-controls{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.tolerance-control{align-items:center;display:flex;gap:12px}.tolerance-control label{color:#6b7280;font-size:12px;font-weight:500;min-width:120px}.tolerance-control input[type=range]{background:#e1e5e9;border-radius:3px;cursor:pointer;flex:1 1;height:6px;outline:none}.tolerance-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#3b82f6;border-radius:50%;box-shadow:0 2px 4px #0000001a;cursor:pointer;height:18px;width:18px}.tolerance-control span{color:#374151;font-size:12px;font-weight:600;min-width:40px;text-align:right}.analysis-section{background:#fff;border:1px solid #e1e5e9;border-radius:12px;box-shadow:0 4px 6px #0000000d;overflow:hidden}.analysis-tabs{background:#f9fafb;border-bottom:1px solid #e1e5e9;display:flex;overflow-x:auto}.tab-btn{background:#0000;border:none;border-bottom:3px solid #0000;color:#6b7280;cursor:pointer;font-size:14px;font-weight:500;padding:16px 24px;transition:all .2s ease;white-space:nowrap}.tab-btn:hover{background:#3b82f60d;color:#374151}.tab-btn.active{background:#fff;border-bottom-color:#3b82f6;color:#3b82f6;font-weight:600}.tab-content{min-height:400px;padding:24px}@media (max-width:768px){.app-header{padding:16px}.header-content{align-items:flex-start;flex-direction:column}.header-content h1{font-size:24px}.extraction-info{align-items:flex-start;width:100%}.app-main{padding:16px}.tolerance-controls{grid-template-columns:1fr}.tolerance-control{align-items:stretch;flex-direction:column;gap:8px}.tolerance-control label{min-width:auto}.tolerance-control span{min-width:auto;text-align:left}.analysis-tabs{justify-content:space-around}.tab-btn{font-size:13px;padding:12px 16px}.tab-content{padding:16px}}@media (max-width:480px){.header-content h1{font-size:20px}.header-content p{font-size:14px}.tab-btn{font-size:12px;padding:10px 12px}}.processing-overlay{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.processing-content{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a;padding:32px;text-align:center}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.fade-in{animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
/*# sourceMappingURL=main.37df2117.css.map*/