:root{--font-small:12px;--font-medium:14px;--font-large:16px;--font-xlarge:24px;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--color-primary:#4c9aff;--color-primary-hover:#3b82f6;--color-danger:#ef4444;--color-danger-hover:#dc2626;--color-success:#10b981;--color-warning:#f59e0b;--color-white:#fff;--color-gray-light:#f3f4f6;--color-gray-medium:#e5e7eb;--color-gray-dark:#6b7280;--color-info-bg:#e6f3ff;--color-success-bg:#f0fff4;--color-warning-bg:#ffeaa7;--color-error-bg:#ffeef0;--spacing-1:8px;--spacing-2:16px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--transition:0.2s ease;--shadow:0 1px 2px #0000001a}body,html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;font-size:var(--font-medium);height:100%;margin:0;overflow:hidden;padding:0;width:100%}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace;font-size:12px;font-size:var(--font-small)}.App{flex-direction:column;height:100vh;width:100vw}.App,.app-container{display:flex;overflow:hidden}.app-container{flex:1 1;flex-direction:column;min-height:0;padding:8px;padding:var(--spacing-1)}button{align-items:center;border:none;border-radius:8px;border-radius:var(--radius-lg);cursor:pointer;display:inline-flex;font-size:14px;font-size:var(--font-medium);font-weight:500;font-weight:var(--font-weight-medium);gap:8px;gap:var(--spacing-1);justify-content:center;padding:8px 16px;padding:var(--spacing-1) var(--spacing-2);transition:all .2s ease;transition:all var(--transition)}button:hover{box-shadow:0 1px 2px #0000001a;box-shadow:var(--shadow);transform:translateY(-1px)}.layout{display:flex;flex:1 1;gap:8px;gap:var(--spacing-1);min-height:0;overflow:hidden}@media (max-width:768px){.layout{flex-direction:column}}.auth-status-authenticated{color:#10b981;color:var(--color-success)}.auth-status-unauthenticated{color:#f59e0b;color:var(--color-warning)}.App-header{align-items:center;background-color:var(--color-gray-light);border-bottom:1px solid var(--color-gray-medium);color:var(--color-gray-dark);display:flex;flex-shrink:0;height:80px;justify-content:space-between;padding:var(--spacing-1) var(--spacing-2)}.header-logo img{display:block;height:clamp(100px,18vw,200px);width:clamp(100px,18vw,200px)}.header-content{align-items:center;display:flex;gap:var(--spacing-2)}.user-section{align-items:flex-end;display:flex;flex-direction:column;gap:var(--spacing-1);text-align:right}.login-section{align-items:center;display:flex}.user-name{color:var(--color-gray-dark);font-size:var(--font-large);font-weight:var(--font-weight-medium);line-height:1.2;margin:0;padding:0}.login-button,.logout-button{align-items:center;background-color:var(--color-primary);border:none;border-radius:var(--radius-lg);color:var(--color-white);cursor:pointer;display:inline-flex;font-size:var(--font-small);font-weight:var(--font-weight-medium);gap:var(--spacing-1);justify-content:center;min-height:32px;padding:var(--spacing-1) var(--spacing-2);transition:all var(--transition)}.login-button:hover,.logout-button:hover{background-color:var(--color-primary-hover);box-shadow:var(--shadow);transform:translateY(-1px)}.logout-button{font-size:var(--font-small);padding:6px var(--spacing-2)}@media (max-width:768px){.App-header{padding:var(--spacing-1) var(--spacing-2)}.header-content{gap:var(--spacing-1)}.user-name{font-size:var(--font-medium)}}@media (max-width:480px){.user-section{gap:4px}.user-name{font-size:var(--font-small);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logout-button{font-size:12px;min-height:28px;padding:4px 8px}}.error-notification{background:var(--color-white);border:1px solid var(--color-gray-medium);border-left:4px solid var(--color-danger);border-radius:var(--radius-md);bottom:var(--spacing-2);box-shadow:var(--shadow);font-size:var(--font-small);max-width:350px;min-width:280px;opacity:0;position:fixed;right:var(--spacing-2);transform:translateY(100px);transition:all var(--transition);z-index:1000}.error-notification.visible{opacity:1;transform:translateY(0)}.error-notification.expanded{max-height:50vh;overflow-y:auto}.error-header{align-items:center;background:linear-gradient(135deg,var(--color-error-bg) 0,#ef44441a 100%);border-bottom:1px solid var(--color-danger);border-radius:var(--radius-lg) var(--radius-lg) 0 0;display:flex;padding:var(--spacing-1) var(--spacing-2)}.error-icon{flex-shrink:0;font-size:var(--font-medium);margin-right:var(--spacing-1)}.error-title{align-items:center;display:flex;flex:1 1;gap:var(--spacing-1)}.error-text{color:var(--color-danger);font-size:var(--font-small);font-weight:var(--font-weight-semibold)}.error-count{background:var(--color-danger);border-radius:var(--radius-sm);color:var(--color-white);font-size:10px;font-weight:var(--font-weight-bold);padding:2px 6px}.error-actions{display:flex;gap:4px;margin-left:var(--spacing-1)}.error-close-button,.error-toggle-button{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--color-danger);cursor:pointer;display:flex;font-size:var(--font-small);font-weight:var(--font-weight-bold);height:20px;justify-content:center;padding:4px;transition:background-color var(--transition);width:20px}.error-close-button:hover,.error-toggle-button:hover{background:#ef44441a}.error-content{max-height:200px;overflow-y:auto;padding:var(--spacing-2)}.error-notification.expanded .error-content{max-height:50vh}.error-preview{color:var(--color-danger);font-size:var(--font-small);line-height:1.4;word-break:break-word}.error-list{display:flex;flex-direction:column;gap:var(--spacing-1)}.error-item{background:#ef44440d;border-left:3px solid var(--color-danger);border-radius:var(--radius-sm);padding:var(--spacing-1)}.error-timestamp{color:var(--color-gray-dark);font-size:10px;font-weight:var(--font-weight-medium);margin-bottom:4px}.error-message{color:var(--color-danger);font-size:var(--font-small);line-height:1.4;word-break:break-word}.notification-success{border-left-color:#10b981;border-left-color:var(--color-success,#10b981)}.notification-success .error-header{background:linear-gradient(135deg,#10b9811a,#10b9810d);border-bottom-color:#10b981;border-bottom-color:var(--color-success,#10b981)}.notification-success .error-message,.notification-success .error-preview,.notification-success .error-text{color:#10b981;color:var(--color-success,#10b981)}.notification-success .error-count{background:#10b981;background:var(--color-success,#10b981)}.notification-success .error-close-button,.notification-success .error-toggle-button{color:#10b981;color:var(--color-success,#10b981)}.notification-success .error-close-button:hover,.notification-success .error-toggle-button:hover{background:#10b9811a}.notification-success .error-item{background:#10b9810d;border-left-color:#10b981;border-left-color:var(--color-success,#10b981)}.notification-warning{border-left-color:#f59e0b;border-left-color:var(--color-warning,#f59e0b)}.notification-warning .error-header{background:linear-gradient(135deg,#f59e0b1a,#f59e0b0d);border-bottom-color:#f59e0b;border-bottom-color:var(--color-warning,#f59e0b)}.notification-warning .error-message,.notification-warning .error-preview,.notification-warning .error-text{color:#f59e0b;color:var(--color-warning,#f59e0b)}.notification-warning .error-count{background:#f59e0b;background:var(--color-warning,#f59e0b)}.notification-warning .error-close-button,.notification-warning .error-toggle-button{color:#f59e0b;color:var(--color-warning,#f59e0b)}.notification-warning .error-close-button:hover,.notification-warning .error-toggle-button:hover{background:#f59e0b1a}.notification-warning .error-item{background:#f59e0b0d;border-left-color:#f59e0b;border-left-color:var(--color-warning,#f59e0b)}.notification-info{border-left-color:#3b82f6;border-left-color:var(--color-info,#3b82f6)}.notification-info .error-header{background:linear-gradient(135deg,#3b82f61a,#3b82f60d);border-bottom-color:#3b82f6;border-bottom-color:var(--color-info,#3b82f6)}.notification-info .error-message,.notification-info .error-preview,.notification-info .error-text{color:#3b82f6;color:var(--color-info,#3b82f6)}.notification-info .error-count{background:#3b82f6;background:var(--color-info,#3b82f6)}.notification-info .error-close-button,.notification-info .error-toggle-button{color:#3b82f6;color:var(--color-info,#3b82f6)}.notification-info .error-close-button:hover,.notification-info .error-toggle-button:hover{background:#3b82f61a}.notification-info .error-item{background:#3b82f60d;border-left-color:#3b82f6;border-left-color:var(--color-info,#3b82f6)}.notification-extra{color:#6b7280;color:var(--color-gray-dark,#6b7280);font-size:11px;font-style:italic;margin-top:4px}@media (max-width:768px){.error-notification{bottom:var(--spacing-1);left:var(--spacing-1);max-width:none;min-width:auto;right:var(--spacing-1)}}@media (max-width:480px){.error-notification{font-size:12px}.error-content,.error-header{padding:var(--spacing-1)}}.dxf-preview-modal{display:flex;flex-direction:column}.dxf-preview-modal h3{color:var(--color-gray-dark);font-size:var(--font-large);font-weight:var(--font-weight-semibold);margin:var(--spacing-2) 0 var(--spacing-1) 0}.dxf-info{background:var(--color-gray-light);border-radius:var(--radius-md);flex-direction:column;margin-bottom:var(--spacing-2);padding:var(--spacing-1)}.dxf-info,.info-row{display:flex;gap:var(--spacing-1)}.info-label{font-weight:var(--font-weight-semibold);min-width:80px}.info-label,.info-value{color:var(--color-gray-dark)}.info-value{font-family:Consolas,Monaco,Courier New,monospace}.dxf-previews{margin-bottom:var(--spacing-2)}.preview-grid{gap:var(--spacing-2)}.preview-grid,.preview-item{display:flex;flex-direction:column}.preview-item{gap:var(--spacing-1)}.preview-image-wrapper{align-items:center;background:var(--color-white);border:1px solid var(--color-gray-medium);border-radius:var(--radius-md);display:flex;justify-content:center;overflow:hidden}.preview-image,.preview-image-wrapper{max-height:calc(95vh - 300px);width:100%}.preview-image{display:block;height:auto;object-fit:contain}.preview-filename{color:var(--color-gray-dark);font-family:Consolas,Monaco,Courier New,monospace;font-size:var(--font-small);text-align:center;word-break:break-all}.dxf-files{margin-top:var(--spacing-2)}.files-list{flex-direction:column}.file-item,.files-list{display:flex;gap:var(--spacing-1)}.file-item{align-items:center;background:var(--color-gray-light);border-radius:var(--radius-md);justify-content:space-between;padding:var(--spacing-1);transition:background .2s ease}.file-item:hover{background:var(--color-gray-medium)}.file-info{flex:1 1;min-width:0}.file-name{font-family:Consolas,Monaco,Courier New,monospace;font-size:var(--font-medium);font-weight:var(--font-weight-semibold);word-break:break-all}.file-meta,.file-name{color:var(--color-gray-dark)}.file-meta{display:flex;font-size:var(--font-small);gap:var(--spacing-1);margin-top:4px}.file-size{font-weight:var(--font-weight-semibold)}.file-path{font-family:Consolas,Monaco,Courier New,monospace;opacity:.7}.file-download-btn{align-items:center;background:var(--color-primary);border:none;border-radius:var(--radius-md);color:var(--color-white);cursor:pointer;display:flex;flex-shrink:0;font-size:18px;height:32px;justify-content:center;padding:0;transition:all .2s ease;width:32px}.file-download-btn:hover{background:var(--color-primary-hover);transform:translateY(-2px)}.file-download-btn:active{transform:translateY(0)}@media (max-width:768px){.file-meta{flex-direction:column;gap:2px}}.modal-backdrop{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:var(--spacing-2);position:fixed;right:0;top:0;z-index:1000}.modal-container{animation:modalSlideIn .2s ease-out;background:var(--color-white);border-radius:var(--radius-lg);box-shadow:0 10px 40px #0003;max-height:90vh;max-width:800px;overflow:auto;position:relative;width:100%}.modal-container.modal-large{max-height:95vh;max-width:95vw}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-close{align-items:center;background:#0000;border:none;border-radius:var(--radius-md);color:var(--color-gray-dark);cursor:pointer;display:flex;font-size:28px;height:32px;justify-content:center;line-height:1;padding:0;position:absolute;right:var(--spacing-1);top:var(--spacing-1);transition:all .2s ease;width:32px;z-index:1}.modal-close:hover{background:var(--color-gray-light);color:var(--color-gray-dark);transform:none}.modal-close:active{background:var(--color-gray-medium)}.modal-content{padding:var(--spacing-2);padding-top:calc(var(--spacing-2) + 32px)}.modal-content h2{color:var(--color-gray-dark);font-size:var(--font-xlarge);font-weight:var(--font-weight-bold);margin:0 0 var(--spacing-2) 0}.modal-content p{color:var(--color-gray-dark);font-size:var(--font-medium);line-height:1.5;margin:0 0 var(--spacing-1) 0}.modal-data{background:var(--color-gray-light);border-radius:var(--radius-md);margin-top:var(--spacing-2);overflow:auto;padding:var(--spacing-1)}.modal-data pre{color:var(--color-gray-dark);font-family:Consolas,Monaco,Courier New,monospace;font-size:var(--font-small);margin:0}@media (max-width:768px){.modal-backdrop{padding:var(--spacing-1)}.modal-container{max-height:95vh}.modal-content{padding:var(--spacing-1);padding-top:calc(var(--spacing-1) + 32px)}}.project-manager{background:var(--color-gray-light);border:1px solid var(--color-gray-medium);border-radius:var(--radius-lg);box-shadow:var(--shadow);box-sizing:border-box;display:flex;flex:0 0 30vw;flex-direction:column;height:100%;max-width:300px;min-width:260px;overflow:hidden;padding:var(--spacing-1)}.pm-top-section{display:flex;flex:1 1;flex-direction:column;margin-bottom:var(--spacing-1);min-height:0;overflow-y:auto}.pm-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-2)}.pm-header h1{color:var(--color-gray-dark);flex:1 1;font-size:var(--font-large);font-weight:var(--font-weight-semibold);margin:0}.pm-loading{color:var(--color-gray-medium);font-size:var(--font-small);font-style:italic;font-weight:var(--font-weight-normal)}.pm-clear-all-button{background:var(--color-danger);border:none;border-radius:var(--radius-md);color:var(--color-white);cursor:pointer;flex-shrink:0;font-size:var(--font-small);font-weight:var(--font-weight-medium);padding:var(--spacing-1) var(--spacing-2);transition:all var(--transition)}.pm-clear-all-button:hover{background:var(--color-danger-hover)}.pm-bottom-section{border-radius:var(--radius-sm);flex:0 0 auto;min-height:80px;padding:var(--spacing-1)}.pm-dropzone{align-items:center;background:var(--color-gray-light);border:2px dashed var(--color-primary);border-radius:var(--radius-lg);box-sizing:border-box;display:flex;flex-direction:column;font-size:var(--font-small);justify-content:center;min-height:80px;padding:var(--spacing-2);text-align:center;transition:all var(--transition);width:100%}.pm-dropzone-dragging{background:var(--color-gray-light);border-color:var(--color-primary-hover);transform:scale(1.02)}.pm-dropzone-disabled{filter:grayscale(.2);opacity:.6;pointer-events:none}.pm-file-input input[type=file]{display:none}.pm-file-input span{background:var(--color-primary);border-radius:var(--radius-md);color:var(--color-white);cursor:pointer;display:inline-block;font-size:var(--font-small);margin-top:var(--spacing-1);padding:var(--spacing-1) var(--spacing-2);transition:all var(--transition)}.pm-file-input span:hover{background:var(--color-primary-hover);transform:translateY(-1px)}.pm-folder-list{display:flex;flex:1 1;flex-direction:column;gap:var(--spacing-1);margin-top:var(--spacing-2);overflow-y:auto}.pm-folder-item{align-items:center;background:var(--color-white);border:1px solid var(--color-gray-medium);border-radius:var(--radius-md);cursor:pointer;display:flex;margin-bottom:var(--spacing-1);min-height:40px;padding:var(--spacing-1) var(--spacing-2);position:relative;transition:all var(--transition)}.pm-file-item:hover,.pm-folder-item:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.pm-file-item{justify-content:space-between}.pm-file-name{font-weight:var(--font-weight-medium);max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pm-file-meta,.pm-file-name{color:var(--color-gray-dark);font-size:var(--font-small)}.pm-delete-button{align-items:center;background:var(--color-danger);border:none;border-radius:50%;color:var(--color-white);cursor:pointer;display:flex;flex-shrink:0;font-size:var(--font-small);font-weight:var(--font-weight-bold);height:24px;justify-content:center;padding:0;transition:all var(--transition);width:24px}.pm-delete-button:hover{background:var(--color-danger-hover)}.pm-folder-name{border-radius:var(--radius-sm);cursor:pointer;flex:1 1;font-size:var(--font-small);font-weight:var(--font-weight-semibold);padding:var(--spacing-1);transition:background-color var(--transition)}.pm-folder-name:hover{background:var(--color-gray-light)}.pm-folder-item.active .pm-folder-name{background:var(--color-gray-light);color:var(--color-primary)}.pm-folder-item.active{background:var(--color-gray-light);border-color:var(--color-primary)}.pm-unauthorized{filter:grayscale(.2);opacity:.6;pointer-events:none}@media (max-width:1200px){.project-manager{flex-basis:35vw}}@media (max-width:992px){.project-manager{flex-basis:40vw}}@media (max-width:768px){.layout{flex-direction:column}.project-manager{flex:0 0 auto;height:auto;min-height:180px;width:100%}}.pm-folder-edit-form{display:flex;flex:1 1;margin-right:var(--spacing-1)}.pm-folder-edit-input{border:1px solid var(--color-primary);border-radius:var(--radius-sm);box-shadow:0 0 0 2px #4c9aff33;flex:1 1;font-family:inherit;font-size:var(--font-small);outline:none;padding:4px 8px}.pm-folder-actions{display:flex;gap:4px;margin-left:auto;opacity:.7;transition:opacity var(--transition)}.pm-folder-item.active .pm-folder-actions,.pm-folder-item:hover .pm-folder-actions{opacity:1}.pm-edit-button{align-items:center;background:var(--color-primary);border:none;border-radius:var(--radius-sm);color:var(--color-white);cursor:pointer;display:flex;font-size:12px;height:24px;justify-content:center;padding:0;transition:background-color var(--transition);width:24px}.pm-edit-button:hover{background:var(--color-primary-hover)}.project-viewer{box-sizing:border-box;display:flex;flex:1 1;flex-direction:column;gap:var(--spacing-2);min-height:0;min-width:0;overflow:hidden;padding:var(--spacing-1)}.project-info-section{display:flex;flex:0 0 auto;flex-direction:column}.project-info-content{background:var(--color-white);border:1px solid var(--color-gray-medium);border-radius:var(--radius-lg);box-shadow:var(--shadow);display:flex;gap:var(--spacing-2);padding:var(--spacing-2)}.project-details{flex:1 1;flex-direction:column}.project-details,.project-name{display:flex;gap:var(--spacing-1)}.project-name{align-items:center;color:var(--color-gray-dark);font-size:var(--font-xlarge);font-weight:var(--font-weight-bold);margin:0}.project-meta-grid{grid-gap:var(--spacing-2);display:grid;gap:var(--spacing-2);grid-template-columns:1fr 1fr}.meta-column{flex-direction:column}.meta-column,.meta-item{display:flex;gap:var(--spacing-1)}.meta-item{align-items:center}.meta-label{font-weight:var(--font-weight-semibold);min-width:200px}.meta-label,.meta-value{color:var(--color-gray-dark);font-size:var(--font-medium)}.meta-value{font-weight:var(--font-weight-normal)}.project-actions{display:flex;gap:var(--spacing-1);margin-top:var(--spacing-1)}.action-button{background:var(--color-primary);border:none;border-radius:var(--radius-md);color:var(--color-white);cursor:pointer;font-size:var(--font-medium);font-weight:var(--font-weight-semibold);padding:var(--spacing-1) var(--spacing-2);transition:background .2s ease,transform .1s ease}.action-button:hover{background:#0056b3;background:var(--color-primary-dark,#0056b3);transform:translateY(-1px)}.action-button:active{transform:translateY(0)}.action-button:disabled{cursor:not-allowed;opacity:.6}.action-button:disabled,.action-button:disabled:hover{background:var(--color-gray-medium);transform:none}.project-image{align-items:flex-start;display:flex;flex:0 0 auto}.project-image img{background:var(--color-gray-light);border:1px solid var(--color-gray-medium);border-radius:var(--radius-lg);object-fit:cover}.processing-spinner{align-items:center;display:inline-flex;justify-content:center}.spinner-icon{animation:spin 1s linear infinite;color:var(--color-primary);height:24px;width:24px}.spinner-circle{stroke-dasharray:50;stroke-dashoffset:10;stroke-linecap:round;fill:none}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.processing-status{color:var(--color-primary);font-style:italic;font-weight:var(--font-weight-semibold)}.loading-placeholder,.no-project-placeholder{align-items:center;color:var(--color-gray-dark);display:flex;flex-direction:column;justify-content:center;min-height:200px;text-align:center}.loading-placeholder h2,.no-project-placeholder h2{font-size:var(--font-large);font-weight:var(--font-weight-semibold);margin:0 0 var(--spacing-1) 0}.no-project-placeholder p{color:var(--color-gray-medium);font-size:var(--font-medium);font-style:italic;margin:0}.bom-data-section{background:var(--color-white);border:1px solid var(--color-gray-medium);border-radius:var(--radius-lg);box-shadow:var(--shadow);display:flex;flex:1 1 auto;flex-direction:column;min-height:0;padding:var(--spacing-2)}.bom-data-section h3{color:var(--color-gray-dark);font-size:var(--font-large);font-weight:var(--font-weight-semibold);margin:0 0 var(--spacing-1) 0}.bom-tabs{border-bottom:2px solid var(--color-gray-light);display:flex;gap:var(--spacing-1);margin-bottom:var(--spacing-2)}.bom-tab{background:#0000;border:none;border-bottom:3px solid #0000;bottom:-2px;color:var(--color-gray-dark);cursor:pointer;font-size:var(--font-medium);font-weight:var(--font-weight-semibold);padding:var(--spacing-1) var(--spacing-2);position:relative;transition:all .2s ease}.bom-tab:hover{background:var(--color-gray-light)}.bom-tab.active{border-bottom-color:var(--color-primary);color:var(--color-primary)}.bom-empty-message{color:var(--color-gray-medium);font-size:var(--font-medium);font-style:italic;padding:var(--spacing-3);text-align:center}.error-terminal{background:var(--color-white);border:1px solid var(--color-gray-medium);border-radius:var(--radius-md);flex:1 1 auto;font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.5;min-height:0;overflow-x:auto;overflow-y:auto;padding:var(--spacing-2)}.terminal-content{display:flex;flex-direction:column;gap:4px}.terminal-line{border-radius:4px;display:flex;gap:var(--spacing-1);padding:4px 8px;transition:background .15s ease}.terminal-line:hover{background:var(--color-gray-light)}.terminal-timestamp{color:var(--color-gray-medium);flex-shrink:0;-webkit-user-select:none;user-select:none}.terminal-file{color:var(--color-primary);flex-shrink:0;font-weight:var(--font-weight-semibold)}.terminal-message{word-break:break-word}.terminal-error .terminal-message,.terminal-info .terminal-message,.terminal-message,.terminal-warning .terminal-message{color:var(--color-gray-dark)}.terminal-empty{align-items:center;color:var(--color-gray-medium);display:flex;font-style:italic;height:100%;justify-content:center;min-height:200px}.bom-table-wrapper{border:1px solid var(--color-gray-medium);border-radius:var(--radius-md);flex:1 1 auto;min-height:0;overflow-x:auto;overflow-y:auto}.bom-table{border-collapse:collapse;font-size:var(--font-medium);width:100%}.bom-table thead{background:var(--color-gray-light);position:-webkit-sticky;position:sticky;top:0;z-index:1}.bom-table th{background:var(--color-gray-light);border-bottom:2px solid var(--color-gray-medium);font-weight:var(--font-weight-semibold);text-align:left}.bom-table td,.bom-table th{color:var(--color-gray-dark);padding:var(--spacing-1)}.bom-table td{border-bottom:1px solid var(--color-gray-light)}.bom-table tbody tr:hover{background:var(--color-gray-light)}.bom-table tbody tr:last-child td{border-bottom:none}.pp-button{background:var(--color-primary);border:none;border-radius:var(--radius-sm);color:var(--color-white);cursor:pointer;font-size:var(--font-small);font-weight:var(--font-weight-semibold);padding:4px 8px;transition:background .2s ease,transform .1s ease;white-space:nowrap}.pp-button:hover{background:#0056b3;background:var(--color-primary-dark,#0056b3);transform:translateY(-1px)}.pp-button:active{transform:translateY(0)}.pp-button:disabled{cursor:not-allowed;opacity:.6}.pp-button:disabled,.pp-button:disabled:hover{background:var(--color-gray-medium);transform:none}@media (max-width:768px){.project-viewer{padding:var(--spacing-1)}.project-info-content{align-items:center;flex-direction:column}.project-details{width:100%}.project-meta-grid{grid-template-columns:1fr}.meta-label{min-width:0;min-width:auto}.meta-item{align-items:flex-start;flex-direction:column;gap:4px}.project-actions{flex-wrap:wrap}}
/*# sourceMappingURL=main.9dd5a4e8.css.map*/