.llm-debug-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.llm-debug-modal-content{background:var(--bg-primary);border-radius:8px;width:100%;max-width:800px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 4px 30px #0006}.llm-debug-modal-header{display:flex;align-items:center;gap:16px;padding:16px 20px;border-bottom:1px solid var(--border-color);flex-shrink:0}.llm-debug-modal-header h3{margin:0;font-size:18px;color:var(--text-primary);flex:1}.llm-debug-modal-header .detection-id{font-size:12px;font-family:monospace;color:var(--text-tertiary)}.llm-debug-modal-header .modal-close{background:none;border:none;font-size:24px;color:var(--text-secondary);cursor:pointer;padding:0;line-height:1}.llm-debug-modal-header .modal-close:hover{color:var(--text-primary)}.llm-debug-modal-body{padding:20px;overflow-y:auto;flex:1}.debug-summary{display:flex;gap:24px;margin-bottom:20px;padding:12px 16px;background:var(--bg-tertiary);border-radius:6px;flex-wrap:wrap}.debug-summary .summary-item{display:flex;align-items:center;gap:8px}.debug-summary .summary-item .label{font-size:13px;color:var(--text-secondary)}.debug-summary .summary-item .value{font-size:13px;font-weight:500;color:var(--text-primary)}.debug-summary .summary-item .value.completed{color:var(--success-color)}.debug-summary .summary-item .value.processing{color:var(--warning-color)}.debug-section{margin-bottom:20px;border:1px solid var(--border-color);border-radius:6px;overflow:hidden}.debug-section:last-child{margin-bottom:0}.debug-section .section-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-tertiary)}.debug-section .section-header.clickable{cursor:pointer}.debug-section .section-header.clickable:hover{background:var(--bg-hover)}.debug-section .section-title{margin:0;font-size:14px;font-weight:600;color:var(--text-primary)}.debug-section .expand-icon{font-size:12px;color:var(--text-secondary)}.code-block{margin:0;padding:12px;background:var(--bg-secondary);border-radius:4px;font-family:monospace;font-size:12px;color:var(--text-primary);white-space:pre-wrap;word-break:break-all;overflow-x:auto;max-height:300px;overflow-y:auto}.code-block.error{background:#ef44441a;color:var(--error-color)}.iterations-list{padding:8px}.iteration-item{border:1px solid var(--border-color);border-radius:4px;margin-bottom:8px;overflow:hidden}.iteration-item:last-child{margin-bottom:0}.iteration-header{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--bg-secondary)}.iteration-header.clickable{cursor:pointer}.iteration-header.clickable:hover{background:var(--bg-hover)}.iteration-header .iteration-number{font-weight:600;font-size:13px;color:var(--text-primary)}.iteration-header .iteration-time{font-size:12px;color:var(--text-tertiary);font-family:monospace}.iteration-header .iteration-result{flex:1;font-size:12px;color:var(--text-secondary)}.iteration-details{padding:12px;border-top:1px solid var(--border-color)}.detail-group{margin-bottom:16px}.detail-group:last-child{margin-bottom:0}.detail-group h5{margin:0 0 8px;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase}.expansion-directions{display:flex;gap:8px;flex-wrap:wrap}.expansion-directions .direction{padding:4px 8px;border-radius:4px;font-size:12px;background:var(--bg-secondary);color:var(--text-secondary)}.expansion-directions .direction.active{background:#3498db33;color:var(--accent-color)}.detail-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:8px}.detail-row:last-child{margin-bottom:0}.detail-row .label{font-size:12px;color:var(--text-secondary);min-width:100px;flex-shrink:0}.detail-row .value{font-size:13px;color:var(--text-primary);word-break:break-all}.detail-row .value.link{color:var(--accent-color);text-decoration:none}.detail-row .value.link:hover{text-decoration:underline}.detail-row .value.error{color:var(--error-color)}.status-updates-list{display:flex;flex-direction:column;gap:8px}.status-update-item{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;background:var(--bg-secondary);border-radius:4px;font-size:12px}.status-update-item .status-time{font-family:monospace;color:var(--text-tertiary)}.status-update-item .status-name{font-weight:600;color:var(--text-primary);padding:2px 6px;background:var(--bg-tertiary);border-radius:3px}.status-update-item .status-message{flex:1;color:var(--text-secondary)}.status-update-item .llm-call-info{display:flex;gap:8px;width:100%;margin-top:4px;padding-top:4px;border-top:1px solid var(--border-color)}.status-update-item .llm-call-info .model{padding:2px 6px;background:#3498db33;border-radius:3px;color:var(--accent-color)}.status-update-item .llm-call-info .cost{color:var(--text-secondary)}.status-update-item .llm-call-info .tokens{color:var(--text-tertiary)}.value.status-completed{color:var(--success-color)}.value.status-failed{color:var(--error-color)}.value.status-searching{color:var(--warning-color)}.error-section{border-color:var(--error-color)}.error-section .section-title{color:var(--error-color)}.llm-debug-modal-footer{display:flex;justify-content:flex-end;padding:16px 20px;border-top:1px solid var(--border-color);flex-shrink:0}.product-search-details{padding:12px 16px}@media (max-width: 600px){.llm-debug-modal-content{max-height:100vh;border-radius:0}.debug-summary{flex-direction:column;gap:8px}}.image-gallery-section{margin-top:20px;padding-top:15px;border-top:1px solid var(--border-color, #e0e0e0)}.subsection-title{font-size:1.1rem;font-weight:600;color:var(--text-color-strong, #333);margin-bottom:10px}html.dark .subsection-title{color:var(--dm-text-color-strong, #dadada)}.image-thumbnail-list{display:flex;flex-wrap:wrap;gap:10px}.thumbnail-image{width:100px;height:100px;object-fit:cover;border-radius:4px;border:1px solid var(--border-color-light, #ccc);cursor:pointer;transition:transform .2s ease-in-out,box-shadow .2s ease-in-out}.thumbnail-image:hover{transform:scale(1.05);box-shadow:0 4px 8px #0000001a}.image-modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000}.image-modal-content{background-color:var(--background-color, #fff);padding:20px;border-radius:8px;box-shadow:0 5px 15px #0000004d;position:relative;max-width:90vw;max-height:90vh;overflow:auto}.image-modal-image{display:block;max-width:100%;max-height:calc(90vh - 80px);object-fit:contain;margin:auto}.image-modal-close{position:absolute;top:10px;right:15px;background:none;border:none;font-size:2rem;color:var(--text-color-light, #888);cursor:pointer;line-height:1}.image-modal-close:hover{color:var(--text-color-strong, #333)}.processor-message{font-size:.9rem;color:var(--text-color-secondary, #555);margin-top:5px;padding:8px;background-color:var(--background-color-offset, #f0f0f0);border-left:3px solid var(--accent-color, #007bff);border-radius:3px}.processor-message.error-message{border-left-color:var(--error-color, #d32f2f);background-color:var(--error-background-color, #ffcdd2);color:var(--error-text-color, #b71c1c)}html.dark .processor-message.error-message{border-left-color:var(--dm-error-color, #ef5350);background-color:var(--dm-error-background-color, #4e2220);color:var(--dm-error-text-color, #ffcdd2)}.image-gallery-section.no-title{margin-top:15px;padding-top:0;border-top:none}.image-gallery-section{margin-top:20px;padding-top:15px}.results-list-section{margin-top:20px}.thumbnail-wrapper{position:relative;display:inline-block}.thumbnail-wrapper.has-results .thumbnail-image{border-color:var(--primary-color, #4CAF50);border-width:2px}.thumbnail-badge{position:absolute;top:-6px;right:-6px;background:var(--primary-color, #4CAF50);color:#fff;font-size:11px;font-weight:700;min-width:20px;height:20px;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:0 5px;box-shadow:0 2px 4px #0000004d}.auto-processing-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;margin-top:16px;background:var(--bg-secondary, #1a1a1a);border-radius:8px;border:1px solid var(--border-color, #333)}.summary-stats{display:flex;gap:24px}.summary-stats .stat{color:var(--text-secondary, #888);font-size:14px}.summary-stats .stat strong{color:var(--text-primary, #fff);margin-right:4px}.summary-stats .stat.total-price strong{color:var(--primary-color, #4CAF50)}.bom-button{background:var(--primary-color, #4CAF50);color:#fff;border:none;border-radius:6px;padding:10px 20px;font-size:14px;font-weight:700;cursor:pointer;transition:background .2s}.bom-button:hover{background:var(--primary-hover, #45a049)}.expansion-arrows{position:absolute;top:0;left:0;pointer-events:none;z-index:20}.arrow-group{animation:pulse-arrow 1s ease-in-out infinite}.arrow-group line,.arrow-group polygon{filter:drop-shadow(0 0 2px rgba(255,68,68,.6))}.arrow-up{animation-delay:0s}.arrow-right{animation-delay:.15s}.arrow-down{animation-delay:.3s}.arrow-left{animation-delay:.45s}@keyframes pulse-arrow{0%,to{opacity:.6;transform:scale(.95)}50%{opacity:1;transform:scale(1.05)}}.expansion-arrows{animation:fade-in .2s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.detection-info-popover{position:fixed;z-index:1000;width:360px;max-height:500px;overflow-y:auto;background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #ddd);border-radius:8px;box-shadow:0 8px 24px #0003;animation:popover-fade-in .15s ease-out}.dark .detection-info-popover{background:var(--bg-primary, #1a1a1a);border-color:var(--border-color, #444);box-shadow:0 8px 24px #00000080}@keyframes popover-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.popover-image-container{width:100%;background:var(--bg-tertiary, #f0f0f0);display:flex;align-items:center;justify-content:center;border-radius:8px 8px 0 0;overflow:hidden}.dark .popover-image-container{background:var(--bg-tertiary, #2d2d2d)}.popover-canvas{display:block;max-width:100%;height:auto}.popover-no-image{padding:2rem;color:var(--text-secondary, #888);font-size:.875rem}.popover-info-row{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--border-color, #eee);flex-wrap:wrap}.dark .popover-info-row{border-color:var(--border-color, #333)}.popover-tag{display:inline-block;padding:.25rem .5rem;background:var(--status-expanding, #9370db);color:#fff;font-size:.75rem;font-weight:600;border-radius:4px}.popover-confidence{font-size:.8rem;color:var(--text-secondary, #666)}.dark .popover-confidence{color:var(--text-secondary, #aaa)}.popover-page{font-size:.75rem;color:var(--text-secondary, #888);margin-left:auto}.dark .popover-page{color:var(--text-secondary, #999)}.popover-section{padding:.75rem 1rem;border-bottom:1px solid var(--border-color, #eee)}.dark .popover-section{border-color:var(--border-color, #333)}.popover-section:last-child{border-bottom:none}.popover-section-label{font-size:.7rem;font-weight:600;color:var(--text-secondary, #888);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.35rem}.dark .popover-section-label{color:var(--text-secondary, #999)}.popover-ocr-text{font-family:SF Mono,Consolas,monospace;font-size:.8rem;background:var(--bg-tertiary, #f5f5f5);padding:.5rem;border-radius:4px;white-space:pre-wrap;word-break:break-word;max-height:4rem;overflow-y:auto;color:var(--text-primary, #333)}.dark .popover-ocr-text{background:var(--bg-tertiary, #2a2a2a);color:var(--text-primary, #e0e0e0)}.popover-analysis{font-size:.85rem;color:var(--text-primary, #333)}.dark .popover-analysis{color:var(--text-primary, #e0e0e0)}.popover-params{font-family:SF Mono,Consolas,monospace;font-size:.8rem;color:var(--text-primary, #333);background:var(--bg-tertiary, #f5f5f5);padding:.5rem;border-radius:4px;word-break:break-word}.dark .popover-params{background:var(--bg-tertiary, #2a2a2a);color:var(--text-primary, #e0e0e0)}.popover-search-link{display:inline-block;color:#2ecc71;font-weight:500;text-decoration:none;font-size:.85rem;padding:.25rem .5rem;background:#2ecc711a;border-radius:4px;transition:background-color .2s ease}.popover-search-link:hover{background:#2ecc7133;text-decoration:underline}.popover-product{font-size:.85rem;color:var(--text-primary, #333);margin-bottom:.25rem}.dark .popover-product{color:var(--text-primary, #e0e0e0)}.popover-product-link{color:var(--status-completed, #008080);text-decoration:none}.popover-product-link:hover{text-decoration:underline}.popover-price{font-size:1rem;font-weight:700;color:var(--status-completed, #008080)}.popover-out-of-stock{font-size:.8rem;color:#e74c3c;font-weight:600;padding:.25rem .5rem;background:#e74c3c1a;border-radius:4px;display:inline-block;margin-top:.25rem}.popover-status{padding:.5rem 1rem;font-size:.8rem;color:var(--status-expanding, #9370db);font-style:italic;background:#9370db1a}.popover-error{padding:.5rem 1rem;font-size:.8rem;color:#e74c3c;background:#e74c3c1a}:root{--status-waiting: #ffa500;--status-detecting: #ffd700;--status-expanding: #9370db;--status-completed: #008080;--status-previous: #808080}.detection-gallery{margin-top:1.5rem;padding:1rem;background:var(--bg-secondary, #f5f5f5);border-radius:8px}.dark .detection-gallery{background:var(--bg-secondary, #2d2d2d)}.gallery-title{margin:0 0 1rem;font-size:1rem;font-weight:600;color:var(--text-primary, #333)}.dark .gallery-title{color:var(--text-primary, #e0e0e0)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:.75rem}.gallery-item{position:relative;aspect-ratio:1;border-radius:6px;border:3px solid transparent;background:var(--bg-primary, #fff);cursor:pointer;transition:border-color .3s ease,transform .2s ease,box-shadow .2s ease}.dark .gallery-item{background:var(--bg-primary, #1a1a1a)}.gallery-item.status-waiting{border-color:var(--status-waiting)}.gallery-item.status-detecting{border-color:var(--status-detecting);animation:pulse-yellow 1.5s ease-in-out infinite}.gallery-item.status-expanding{border-color:var(--status-expanding);animation:pulse-purple 1.5s ease-in-out infinite}.gallery-item.status-completed{border-color:var(--status-completed)}.gallery-item.status-previous{border-color:var(--status-previous);opacity:.7}.gallery-item:hover{transform:scale(1.05);box-shadow:0 4px 12px #00000026;z-index:10}.dark .gallery-item:hover{box-shadow:0 4px 12px #0006}@keyframes pulse-yellow{0%,to{box-shadow:0 0 #ffd70066}50%{box-shadow:0 0 0 6px #ffd70000}}@keyframes pulse-purple{0%,to{box-shadow:0 0 #9370db66}50%{box-shadow:0 0 0 6px #9370db00}}.gallery-image{width:100%;height:100%;object-fit:cover;border-radius:3px}.gallery-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;background:var(--bg-tertiary, #e0e0e0);border-radius:3px}.dark .gallery-placeholder{background:var(--bg-tertiary, #3a3a3a)}.placeholder-icon{font-size:1.5rem;opacity:.5}.placeholder-class{font-size:.55rem;color:var(--text-secondary, #666);text-align:center;padding:0 .25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.dark .placeholder-class{color:var(--text-secondary, #aaa)}.gallery-overlay,.gallery-overlay *{pointer-events:none}.gallery-overlay{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-end;padding:4px;background:linear-gradient(transparent,#0009)}.page-badge{font-size:.65rem;font-weight:600;color:#fff;background:#00000080;padding:2px 4px;border-radius:3px}.iteration-badge{font-size:.6rem;color:#fff;background:var(--status-expanding);padding:2px 4px;border-radius:3px}.price-badge{font-size:.6rem;font-weight:600;color:#fff;background:var(--status-completed);padding:2px 4px;border-radius:3px}.gallery-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);width:max-content;max-width:250px;padding:.75rem;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #ddd);border-radius:6px;box-shadow:0 4px 12px #00000026;z-index:100;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;pointer-events:none}.dark .gallery-tooltip{background:var(--bg-primary, #1a1a1a);border-color:var(--border-color, #444);box-shadow:0 4px 12px #0006}.gallery-item:hover .gallery-tooltip{opacity:1;visibility:visible}.gallery-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border-width:6px;border-style:solid;border-color:var(--bg-primary, #fff) transparent transparent transparent}.dark .gallery-tooltip:after{border-color:var(--bg-primary, #1a1a1a) transparent transparent transparent}.tooltip-header{font-size:.75rem;font-weight:600;color:var(--text-secondary, #666);margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color, #eee)}.dark .tooltip-header{color:var(--text-secondary, #aaa);border-color:var(--border-color, #444)}.tooltip-row{display:flex;gap:.5rem;margin-bottom:.35rem;font-size:.75rem}.tooltip-label{color:var(--text-secondary, #888);flex-shrink:0}.dark .tooltip-label{color:var(--text-secondary, #999)}.tooltip-value{color:var(--text-primary, #333);word-break:break-word}.dark .tooltip-value{color:var(--text-primary, #e0e0e0)}.tooltip-params{font-family:monospace;font-size:.7rem;max-height:3rem;overflow:hidden;text-overflow:ellipsis}.tooltip-ocr{font-family:monospace;font-size:.7rem;max-height:4rem;overflow:hidden;text-overflow:ellipsis;background:var(--bg-tertiary, #f0f0f0);padding:.25rem .5rem;border-radius:3px;display:block;white-space:pre-wrap}.dark .tooltip-ocr{background:var(--bg-tertiary, #3a3a3a)}.tooltip-price{font-weight:600;color:var(--status-completed)}.tooltip-status{margin-top:.5rem;font-size:.7rem;color:var(--status-expanding);font-style:italic}.tooltip-error{margin-top:.5rem;font-size:.7rem;color:#e74c3c}.gallery-legend{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border-color, #ddd)}.dark .gallery-legend{border-color:var(--border-color, #444)}.legend-item{display:flex;align-items:center;gap:.35rem;font-size:.7rem;color:var(--text-secondary, #666)}.dark .legend-item{color:var(--text-secondary, #aaa)}.legend-dot{width:10px;height:10px;border-radius:50%}.legend-dot.waiting{background:var(--status-waiting)}.legend-dot.detecting{background:var(--status-detecting)}.legend-dot.expanding{background:var(--status-expanding)}.legend-dot.completed{background:var(--status-completed)}.legend-dot.previous{background:var(--status-previous)}.page-hover-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:2000;animation:backdrop-fade-in .2s ease-out}@keyframes backdrop-fade-in{0%{opacity:0}to{opacity:1}}.page-hover-modal{width:95vw;height:95vh;max-width:1600px;background:var(--bg-primary, #ffffff);border-radius:12px;box-shadow:0 20px 60px #0006;display:flex;flex-direction:column;overflow:hidden;animation:modal-scale-in .2s ease-out}.dark .page-hover-modal{background:var(--bg-primary, #1a1a1a);box-shadow:0 20px 60px #0009}@keyframes modal-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.page-hover-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--border-color, #eee);flex-shrink:0}.dark .page-hover-modal-header{border-color:var(--border-color, #333)}.page-hover-modal-title{font-size:1.1rem;font-weight:600;color:var(--text-primary, #333)}.dark .page-hover-modal-title{color:var(--text-primary, #e0e0e0)}.page-hover-modal-close{width:32px;height:32px;border:none;background:transparent;font-size:1.5rem;color:var(--text-secondary, #666);cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease,color .2s ease}.page-hover-modal-close:hover{background:var(--bg-tertiary, #f0f0f0);color:var(--text-primary, #333)}.dark .page-hover-modal-close{color:var(--text-secondary, #aaa)}.dark .page-hover-modal-close:hover{background:var(--bg-tertiary, #2d2d2d);color:var(--text-primary, #e0e0e0)}.page-hover-modal-content{flex:1;display:flex;align-items:center;justify-content:center;padding:1rem;overflow:auto;background:var(--bg-secondary, #f5f5f5)}.dark .page-hover-modal-content{background:var(--bg-secondary, #0d0d0d)}.page-hover-modal-image-container{position:relative;display:inline-block}.page-hover-modal-image{display:block;max-width:100%;max-height:calc(95vh - 140px);width:auto;height:auto;border-radius:4px;box-shadow:0 4px 12px #00000026}.dark .page-hover-modal-image{box-shadow:0 4px 12px #0006}.page-hover-modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.page-hover-modal-legend{display:flex;align-items:center;gap:1.5rem;padding:.75rem 1.5rem;border-top:1px solid var(--border-color, #eee);flex-shrink:0}.dark .page-hover-modal-legend{border-color:var(--border-color, #333)}.page-hover-modal-legend .legend-item{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-secondary, #666)}.dark .page-hover-modal-legend .legend-item{color:var(--text-secondary, #aaa)}.page-hover-modal-legend .legend-box{width:20px;height:14px;border-radius:2px}.page-hover-modal-legend .legend-box.active{background:#4ecdc4;border:2px solid #4ECDC4}.page-hover-modal-legend .legend-box.filtered{background:transparent;border:2px dashed #888;opacity:.5}.page-hover-modal-legend .legend-hint{margin-left:auto;font-size:.8rem;color:var(--text-secondary, #888);font-style:italic}.dark .page-hover-modal-legend .legend-hint{color:var(--text-secondary, #777)}.auto-processing-view{padding:20px}.processing-header{margin-bottom:24px}.processing-header .section-title{margin-bottom:8px}.processing-subtitle{color:var(--text-secondary, #888);font-size:14px;margin:0}.overall-progress{display:flex;align-items:center;gap:12px;margin-bottom:24px}.progress-bar-container{flex:1;height:8px;background:var(--bg-secondary, #1a1a1a);border-radius:4px;overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--primary-color, #4caf50),#81c784);border-radius:4px;transition:width .3s ease}.progress-text{font-family:monospace;font-size:14px;font-weight:700;color:var(--primary-color, #4caf50);min-width:45px;text-align:right}.page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;margin-bottom:24px}.page-thumbnail{position:relative;aspect-ratio:3 / 4;border-radius:8px;overflow:hidden;border:2px solid var(--border-color, #333);transition:all .3s ease;cursor:pointer}.page-thumbnail:hover{transform:scale(1.02);box-shadow:0 4px 12px #0000004d}.page-thumbnail.current{border-color:var(--primary-color, #4caf50);box-shadow:0 0 12px #4caf5066}.page-thumbnail.completed{border-color:var(--primary-color, #4caf50)}.page-thumbnail.error{border-color:#f44336}.page-thumbnail.pending{opacity:.6}.page-thumbnail .thumbnail-img{width:100%;height:100%;object-fit:cover}.page-overlay,.page-overlay *{pointer-events:none}.page-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(0,0,0,.8) 0%,transparent 50%,rgba(0,0,0,.3) 100%);display:flex;flex-direction:column;justify-content:space-between;padding:8px}.page-status-icon{font-size:20px;text-align:center;padding:4px}.page-thumbnail.detecting .page-status-icon,.page-thumbnail.expanding .page-status-icon{animation:pulse 1.5s infinite}.page-number{font-size:11px;color:#fff;text-align:center}.page-detections{font-size:10px;color:var(--primary-color, #4caf50);text-align:center;font-family:monospace}.page-error-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#f44336;color:#fff;padding:4px 8px;border-radius:4px;font-size:10px;white-space:nowrap;display:none}.page-thumbnail.error:hover .page-error-tooltip{display:block}.current-page-detail{background:var(--bg-secondary, #1a1a1a);border-radius:8px;padding:16px;margin-bottom:24px}.detail-title{font-size:14px;font-weight:400;color:var(--text-primary, #fff);margin:0 0 12px}.detecting-indicator{display:flex;align-items:center;gap:12px;color:var(--text-secondary, #888)}.spinner{width:20px;height:20px;border:2px solid var(--border-color, #333);border-top-color:var(--primary-color, #4caf50);border-radius:50%;animation:spin 1s linear infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.expanding-detail{display:flex;flex-direction:column;gap:12px}.expansion-progress{display:flex;flex-direction:column;gap:8px;color:var(--text-secondary, #888);font-size:13px}.mini-progress-bar{height:4px;background:var(--border-color, #333);border-radius:2px;overflow:hidden}.mini-progress-fill{height:100%;background:var(--primary-color, #4caf50);transition:width .3s ease}.expansion-previews{display:flex;gap:12px;flex-wrap:wrap}.expansion-preview{position:relative;width:100px;height:100px;border-radius:6px;overflow:hidden;border:1px solid var(--border-color, #333)}.expansion-preview img{width:100%;height:100%;object-fit:cover}.preview-label{position:absolute;bottom:0;left:0;right:0;background:#000000b3;color:#fff;font-size:10px;padding:2px 4px;text-align:center}.processing-stats{display:flex;justify-content:space-around;gap:16px;padding:16px;background:var(--bg-secondary, #1a1a1a);border-radius:8px;margin-bottom:24px}.stat{display:flex;flex-direction:column;align-items:center;gap:4px}.stat-value{font-size:24px;font-weight:700;color:var(--primary-color, #4caf50)}.stat-label{font-size:12px;color:var(--text-secondary, #888);text-transform:uppercase}.processing-actions{display:flex;justify-content:center;gap:12px}.view-results-btn{background:var(--primary-color, #4caf50);color:#fff;border:none;border-radius:6px;padding:12px 32px;font-size:16px;font-weight:700;cursor:pointer;transition:background .2s}.view-results-btn:hover{background:var(--primary-hover, #45a049)}.product-assignment-page{padding:20px;max-width:1400px;margin:0 auto}.product-assignment-page .page-header{margin-bottom:24px}.product-assignment-page .page-header h2{margin:12px 0 8px;color:var(--text-primary)}.product-assignment-page .page-description{color:var(--text-secondary);margin:0;font-size:14px}.product-assignment-page .filters-bar{display:flex;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}.product-assignment-page .search-input-wrapper{flex:1;min-width:200px}.product-assignment-page .search-input{width:100%;padding:8px 12px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-secondary);color:var(--text-primary);font-size:14px}.product-assignment-page .search-input:focus{outline:none;border-color:var(--accent-color)}.product-assignment-page .filter-checkbox{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:14px;cursor:pointer;white-space:nowrap}.product-assignment-page .result-count{color:var(--text-tertiary);font-size:13px;white-space:nowrap}.product-assignment-page .assignments-table{border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.product-assignment-page .table-header,.product-assignment-page .table-row{display:grid;grid-template-columns:1.5fr 1.5fr 1.5fr 80px 100px 140px;gap:12px;padding:12px 16px;align-items:center}.product-assignment-page .table-header{background:var(--bg-tertiary);font-weight:600;font-size:12px;text-transform:uppercase;color:var(--text-secondary);border-bottom:1px solid var(--border-color)}.product-assignment-page .table-row{border-bottom:1px solid var(--border-color);transition:background .15s}.product-assignment-page .table-row:last-child{border-bottom:none}.product-assignment-page .table-row:hover{background:var(--bg-hover)}.product-assignment-page .table-row.has-override{background:#ffc1070d}.product-assignment-page .table-row.has-override:hover{background:#ffc1071a}.product-assignment-page .col-search-term .search-term-text{font-family:monospace;font-size:13px;color:var(--text-primary);word-break:break-all}.product-assignment-page .product-info{display:flex;flex-direction:column;gap:2px}.product-assignment-page .product-info .product-name{font-size:13px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-assignment-page .product-info .product-price{font-size:12px;color:var(--text-secondary)}.product-assignment-page .product-info.override{border-left:2px solid var(--warning-color);padding-left:8px}.product-assignment-page .product-info .override-reason{font-size:11px;color:var(--text-tertiary);font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.product-assignment-page .no-product,.product-assignment-page .no-override{color:var(--text-tertiary);font-size:13px}.product-assignment-page .usage-count{font-size:13px;color:var(--text-secondary)}.product-assignment-page .date{font-size:12px;color:var(--text-tertiary)}.product-assignment-page .col-actions{display:flex;gap:6px;flex-wrap:wrap}.product-assignment-page .btn-small{padding:4px 8px;font-size:12px}.product-assignment-page .btn-danger{background:var(--error-color);color:#fff}.product-assignment-page .btn-danger:hover{background:var(--error-color-hover)}.product-assignment-page .loading-state,.product-assignment-page .error-state,.product-assignment-page .empty-state{padding:40px;text-align:center;color:var(--text-secondary)}.product-assignment-page .error-state{color:var(--error-color)}.product-assignment-page .pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:20px}.product-assignment-page .pagination-info{font-size:13px;color:var(--text-secondary)}.product-assignment-page .modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.product-assignment-page .modal-content{background:var(--bg-primary);border-radius:8px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 4px 20px #0000004d}.product-assignment-page .modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color)}.product-assignment-page .modal-header h3{margin:0;font-size:18px;color:var(--text-primary)}.product-assignment-page .modal-close{background:none;border:none;font-size:24px;color:var(--text-secondary);cursor:pointer;padding:0;line-height:1}.product-assignment-page .modal-close:hover{color:var(--text-primary)}.product-assignment-page .modal-body{padding:20px}.product-assignment-page .form-group{margin-bottom:16px}.product-assignment-page .form-group label{display:block;margin-bottom:6px;font-size:13px;font-weight:500;color:var(--text-secondary)}.product-assignment-page .form-input{width:100%;padding:10px 12px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-secondary);color:var(--text-primary);font-size:14px;font-family:inherit}.product-assignment-page .form-input:focus{outline:none;border-color:var(--accent-color)}.product-assignment-page .form-input.disabled{opacity:.6;cursor:not-allowed}.product-assignment-page .form-input textarea{resize:vertical;min-height:60px}.product-assignment-page .auto-detected-info{background:var(--bg-tertiary);padding:10px 12px;border-radius:4px;font-size:13px;margin-top:12px}.product-assignment-page .auto-detected-info .label{color:var(--text-secondary);margin-right:8px}.product-assignment-page .auto-detected-info .value{color:var(--text-primary)}.product-assignment-page .modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border-color)}@media (max-width: 900px){.product-assignment-page .table-header,.product-assignment-page .table-row{grid-template-columns:1fr 1fr;gap:8px}.product-assignment-page .col-usage,.product-assignment-page .col-updated{display:none}.product-assignment-page .col-actions{grid-column:span 2;justify-content:flex-end}}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px}body{font-family:Roboto,Arial,sans-serif;line-height:1.6;transition:background-color .3s ease,color .3s ease}:root{--font-family-sans: "Roboto", "Arial", sans-serif;--font-family-monospace: "Courier New", Courier, monospace;--color-bg-light: #f4f7f9;--color-text-light: #2c3e50;--color-primary-light: #3498db;--color-primary-hover-light: #2980b9;--color-secondary-light: #e0e6ed;--color-secondary-hover-light: #c8d0d8;--color-accent-light: #1abc9c;--color-accent-hover-light: #16a085;--color-surface-light: #ffffff;--color-border-light: #d1d9e0;--color-text-muted-light: #7f8c8d;--color-error-light: #e74c3c;--color-success-light: #2ecc71;--color-tab-active-border-light: var(--color-primary-light);--color-tab-text-light: #555;--color-tab-active-text-light: var(--color-primary-light);--color-shadow-light: rgba(0, 0, 0, .1);--color-bg-dark: #1a202c;--color-text-dark: #e2e8f0;--color-primary-dark: #60a5fa;--color-primary-hover-dark: #3b82f6;--color-secondary-dark: #2d3748;--color-secondary-hover-dark: #4a5568;--color-accent-dark: #34d399;--color-accent-hover-dark: #10b981;--color-surface-dark: #252e3e;--color-border-dark: #4a5568;--color-text-muted-dark: #a0aec0;--color-error-dark: #f56565;--color-success-dark: #48bb78;--color-tab-active-border-dark: var(--color-primary-dark);--color-tab-text-dark: #a0aec0;--color-tab-active-text-dark: var(--color-primary-dark);--color-shadow-dark: rgba(0, 0, 0, .3)}body{background-color:var(--color-bg-light);color:var(--color-text-light)}html.dark body{background-color:var(--color-bg-dark);color:var(--color-text-dark)}.app-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:2rem 1rem;background-color:var(--color-bg-light)}html.dark .app-container{background-color:var(--color-bg-dark)}.content-wrapper{width:100%;max-width:48rem;display:flex;flex-direction:column;gap:2rem}header.app-header{text-align:center}h1.app-title{font-size:2.25rem;font-weight:700;letter-spacing:-.025em;color:var(--color-primary-light)}html.dark h1.app-title{color:var(--color-primary-dark)}h2.section-title{font-size:1.5rem;font-weight:600;margin-bottom:1rem;color:var(--color-text-light)}html.dark h2.section-title{color:var(--color-text-dark)}p.section-description{font-size:.95rem;color:var(--color-text-muted-light);margin-bottom:1.5rem}html.dark p.section-description{color:var(--color-text-muted-dark)}.card{background-color:var(--color-surface-light);border-radius:.5rem;box-shadow:0 4px 6px -1px var(--color-shadow-light),0 2px 4px -1px var(--color-shadow-light);padding:1.5rem;min-height:450px}html.dark .card{background-color:var(--color-surface-dark);box-shadow:0 4px 6px -1px var(--color-shadow-dark),0 2px 4px -1px var(--color-shadow-dark)}.btn{display:inline-block;padding:.65rem 1.25rem;font-size:.9rem;font-weight:500;text-align:center;border-radius:.375rem;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease;border:1px solid transparent;text-decoration:none}.btn-primary{background-color:var(--color-primary-light);color:#fff;border-color:var(--color-primary-light)}html.dark .btn-primary{background-color:var(--color-primary-dark);color:var(--color-bg-dark);border-color:var(--color-primary-dark)}.btn-primary:hover{background-color:var(--color-primary-hover-light);border-color:var(--color-primary-hover-light)}html.dark .btn-primary:hover{background-color:var(--color-primary-hover-dark);border-color:var(--color-primary-hover-dark)}.btn-secondary{background-color:var(--color-secondary-light);color:var(--color-text-light);border-color:var(--color-border-light)}html.dark .btn-secondary{background-color:var(--color-secondary-dark);color:var(--color-text-dark);border-color:var(--color-border-dark)}.btn-secondary:hover{background-color:var(--color-secondary-hover-light)}html.dark .btn-secondary:hover{background-color:var(--color-secondary-hover-dark)}.btn-danger{background-color:var(--color-error-light);color:#fff;border-color:var(--color-error-light)}html.dark .btn-danger{background-color:var(--color-error-dark);color:#fff;border-color:var(--color-error-dark)}.btn-danger:hover{background-color:darken(var(--color-error-light),10%)}html.dark .btn-danger:hover{opacity:.85}.btn:disabled{opacity:.6;cursor:not-allowed}.tabs-container{display:flex;justify-content:center;border-bottom:1px solid var(--color-border-light);margin-bottom:0}html.dark .tabs-container{border-bottom-color:var(--color-border-dark)}.tab-button{padding:.75rem 1.5rem;font-size:.875rem;font-weight:500;background-color:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;color:var(--color-tab-text-light);transition:color .15s ease,border-color .15s ease;margin-bottom:-1px}html.dark .tab-button{color:var(--color-tab-text-dark)}.tab-button:hover{color:var(--color-tab-active-text-light)}html.dark .tab-button:hover{color:var(--color-tab-active-text-dark)}.tab-button.active{color:var(--color-tab-active-text-light);border-bottom-color:var(--color-tab-active-border-light)}html.dark .tab-button.active{color:var(--color-tab-active-text-dark);border-bottom-color:var(--color-tab-active-border-dark)}.tab-button:focus{outline:none}.tab-button:disabled{color:var(--color-text-muted-light);cursor:not-allowed}html.dark .tab-button:disabled{color:var(--color-text-muted-dark)}.form-group{margin-bottom:1.5rem}.form-group label,label.form-label{display:block;font-size:.9rem;font-weight:500;margin-bottom:.5rem;color:var(--color-text-light)}html.dark .form-group label,html.dark label.form-label{color:var(--color-text-dark)}.form-input,.file-input{width:100%;padding:.75rem 1rem;font-size:.9rem;border:1px solid var(--color-border-light);border-radius:.375rem;background-color:var(--color-surface-light);color:var(--color-text-light);transition:border-color .2s ease,box-shadow .2s ease}html.dark .form-input,html.dark .file-input{background-color:var(--color-surface-dark);color:var(--color-text-dark);border-color:var(--color-border-dark)}.form-input:focus,.file-input:focus{outline:none;border-color:var(--color-primary-light);box-shadow:0 0 0 3px rgba(var(--color-primary-light),.2)}html.dark .form-input:focus,html.dark .file-input:focus{border-color:var(--color-primary-dark);box-shadow:0 0 0 3px rgba(var(--color-primary-dark),.3)}.file-input{padding:0}.file-input::file-selector-button{padding:.75rem 1rem;margin-right:1rem;background-color:var(--color-secondary-light);color:var(--color-text-light);border:none;border-right:1px solid var(--color-border-light);cursor:pointer;transition:background-color .2s ease}html.dark .file-input::file-selector-button{background-color:var(--color-secondary-dark);color:var(--color-text-dark);border-right:1px solid var(--color-border-dark)}.file-input::file-selector-button:hover{background-color:var(--color-secondary-hover-light)}html.dark .file-input::file-selector-button:hover{background-color:var(--color-secondary-hover-dark)}.file-input:disabled{background-color:var(--color-secondary-light);cursor:not-allowed}html.dark .file-input:disabled{background-color:var(--color-secondary-dark)}.file-input:disabled::file-selector-button{cursor:not-allowed;opacity:.7}.radio-group{display:flex;flex-wrap:wrap;gap:1rem}.radio-label{display:flex;align-items:center;padding:.75rem 1.25rem;border:1px solid var(--color-border-light);border-radius:.375rem;cursor:pointer;transition:border-color .2s ease,background-color .2s ease;background-color:var(--color-surface-light)}html.dark .radio-label{border-color:var(--color-border-dark);background-color:var(--color-surface-dark)}.radio-label:hover{border-color:var(--color-primary-light)}html.dark .radio-label:hover{border-color:var(--color-primary-dark)}.radio-label input[type=radio]{margin-right:.5rem;accent-color:var(--color-primary-light)}html.dark .radio-label input[type=radio]{accent-color:var(--color-primary-dark)}.radio-label input[type=radio]:checked+span{font-weight:500}.radio-label.selected{border-color:var(--color-primary-light);background-color:var(--color-bg-light)}html.dark .radio-label.selected{border-color:var(--color-primary-dark);background-color:var(--color-bg-dark)}.text-muted{color:var(--color-text-muted-light);font-size:.85rem}html.dark .text-muted{color:var(--color-text-muted-dark)}.text-error{color:var(--color-error-light);font-size:.8rem;font-weight:500}html.dark .text-error{color:var(--color-error-dark)}.file-upload-container{display:flex;flex-direction:column;gap:2rem}.file-upload-step .form-label{font-size:1.1rem;font-weight:600;margin-bottom:.75rem}.results-display-container{display:flex;flex-direction:column;gap:1.5rem}.results-header{border-bottom:1px solid var(--color-border-light);padding-bottom:1rem}html.dark .results-header{border-bottom-color:var(--color-border-dark)}.results-header h2.section-title{margin-bottom:.25rem}.results-header .metadata{font-size:.85rem;color:var(--color-text-muted-light)}html.dark .results-header .metadata{color:var(--color-text-muted-dark)}.results-header .metadata span{font-weight:500;color:var(--color-text-light)}html.dark .results-header .metadata span{color:var(--color-text-dark)}.results-list-header,.results-list-item{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;padding:.75rem 0}.results-list-header{font-weight:600;font-size:.9rem;border-bottom:1px solid var(--color-border-light);color:var(--color-text-muted-light)}html.dark .results-list-header{border-bottom-color:var(--color-border-dark);color:var(--color-text-muted-dark)}.results-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.5rem}.results-list-item{border-bottom:1px solid var(--color-secondary-light);padding:.75rem .5rem;transition:background-color .2s}html.dark .results-list-item{border-bottom-color:var(--color-secondary-dark)}.results-list-item:last-child{border-bottom:none}.results-list-item:hover{background-color:var(--color-bg-light)}html.dark .results-list-item:hover{background-color:var(--color-secondary-dark)}.result-field{cursor:pointer;padding:.25rem .5rem;border-radius:.25rem;transition:background-color .2s}.result-field:hover{background-color:var(--color-secondary-light)}html.dark .result-field:hover{background-color:var(--color-secondary-dark)}.result-field.error-marked{color:var(--color-error-light);text-decoration:line-through;font-style:italic}html.dark .result-field.error-marked{color:var(--color-error-dark)}.error-indicator{font-size:.75rem;color:var(--color-error-light);margin-left:.5rem;font-weight:400}html.dark .error-indicator{color:var(--color-error-dark)}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background-color:var(--color-surface-light);padding:2rem;border-radius:.5rem;box-shadow:0 5px 15px #0000004d;width:90%;max-width:450px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem}html.dark .modal-content{background-color:var(--color-surface-dark)}.modal-content h2.section-title{margin-bottom:.5rem}.modal-content p{font-size:.9rem;color:var(--color-text-muted-light)}html.dark .modal-content p{color:var(--color-text-muted-dark)}.modal-content strong{color:var(--color-text-light)}html.dark .modal-content strong{color:var(--color-text-dark)}.modal-content .status-message{font-weight:500}.modal-content .time-remaining{font-size:1rem;font-weight:500;color:var(--color-primary-light)}html.dark .modal-content .time-remaining{color:var(--color-primary-dark)}.spinner{width:40px;height:40px;border:4px solid var(--color-secondary-light);border-top-color:var(--color-primary-light);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}html.dark .spinner{border-color:var(--color-secondary-dark);border-top-color:var(--color-primary-dark)}@keyframes spin{to{transform:rotate(360deg)}}.hidden{display:none}.empty-state-message{text-align:center;color:var(--color-text-muted-light);padding:2rem;font-size:1rem}html.dark .empty-state-message{color:var(--color-text-muted-dark)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg-light);padding:1rem}html.dark .auth-page{background-color:var(--color-bg-dark)}.auth-card{max-width:400px;width:100%;min-height:auto}.auth-header{text-align:center;margin-bottom:1.5rem}.auth-title{font-size:1.75rem;font-weight:700;color:var(--color-primary-light);margin-bottom:.5rem}html.dark .auth-title{color:var(--color-primary-dark)}.auth-subtitle{font-size:1rem;color:var(--color-text-muted-light);margin-bottom:.5rem}html.dark .auth-subtitle{color:var(--color-text-muted-dark)}.auth-description{font-size:.9rem;color:var(--color-text-muted-light)}html.dark .auth-description{color:var(--color-text-muted-dark)}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-error{background-color:#e74c3c1a;border:1px solid var(--color-error-light);color:var(--color-error-light);padding:.75rem 1rem;border-radius:.375rem;font-size:.9rem}html.dark .auth-error{background-color:#f565651a;border-color:var(--color-error-dark);color:var(--color-error-dark)}.auth-submit{width:100%;margin-top:.5rem}.app-layout{display:flex;min-height:100vh;background-color:var(--color-bg-light)}html.dark .app-layout{background-color:var(--color-bg-dark)}.sidebar{width:250px;min-width:250px;background-color:var(--color-surface-dark);display:flex;flex-direction:column;border-right:1px solid var(--color-border-dark)}html.dark .sidebar{background-color:#1a1f2e;border-right-color:var(--color-border-dark)}.sidebar-header{padding:1.5rem 1rem;border-bottom:1px solid var(--color-border-dark)}.sidebar-title{font-size:1.25rem;font-weight:700;color:var(--color-primary-dark);margin:0}.sidebar-nav{flex:1;padding:1rem 0;display:flex;flex-direction:column;gap:.25rem}.sidebar-nav-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:none;border:none;cursor:pointer;color:var(--color-text-dark);font-size:.95rem;text-align:left;transition:background-color .2s ease;width:100%}.sidebar-nav-item:hover{background-color:#ffffff0d}.sidebar-nav-item.active{background-color:var(--color-primary-dark);color:var(--color-bg-dark)}.sidebar-nav-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem}.sidebar-nav-label{font-weight:500}.sidebar-footer{padding:1rem;border-top:1px solid var(--color-border-dark)}.sidebar-user{margin-bottom:1rem}.sidebar-user-info{display:flex;flex-direction:column;gap:.25rem}.sidebar-user-name{font-weight:500;color:var(--color-text-dark);font-size:.95rem}.sidebar-user-role{font-size:.8rem;color:var(--color-text-muted-dark);text-transform:capitalize}.sidebar-logout{width:100%}.main-content{flex:1;padding:2rem;overflow-y:auto}.user-management{width:100%}.user-management-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.user-management-header h2{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text-light)}html.dark .user-management-header h2{color:var(--color-text-dark)}.users-table{width:100%;border-collapse:collapse;font-size:.9rem}.users-table th,.users-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--color-border-light)}html.dark .users-table th,html.dark .users-table td{border-bottom-color:var(--color-border-dark)}.users-table th{font-weight:600;color:var(--color-text-muted-light);font-size:.8rem;text-transform:uppercase}html.dark .users-table th{color:var(--color-text-muted-dark)}.users-table tbody tr:hover{background-color:var(--color-bg-light)}html.dark .users-table tbody tr:hover{background-color:var(--color-secondary-dark)}.role-select{padding:.4rem .6rem;font-size:.85rem;border:1px solid var(--color-border-light);border-radius:.25rem;background-color:var(--color-surface-light);color:var(--color-text-light);cursor:pointer}html.dark .role-select{background-color:var(--color-surface-dark);color:var(--color-text-dark);border-color:var(--color-border-dark)}.role-select:disabled{opacity:.5;cursor:not-allowed}.status-badge{display:inline-block;padding:.25rem .5rem;font-size:.75rem;font-weight:500;border-radius:.25rem;text-transform:capitalize}.status-active{background-color:#2ecc711a;color:var(--color-success-light)}html.dark .status-active{background-color:#48bb781a;color:var(--color-success-dark)}.status-invited{background-color:#3498db1a;color:var(--color-primary-light)}html.dark .status-invited{background-color:#60a5fa1a;color:var(--color-primary-dark)}.status-disabled{background-color:#7f8c8d1a;color:var(--color-text-muted-light)}html.dark .status-disabled{background-color:#a0aec01a;color:var(--color-text-muted-dark)}.btn-small{padding:.35rem .75rem;font-size:.8rem}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1000}.modal{background-color:var(--color-surface-light);border-radius:.5rem;box-shadow:0 5px 15px #0000004d;width:90%;max-width:450px;max-height:90vh;overflow-y:auto}html.dark .modal{background-color:var(--color-surface-dark)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border-light)}html.dark .modal-header{border-bottom-color:var(--color-border-dark)}.modal-header h3{margin:0;font-size:1.25rem;font-weight:600;color:var(--color-text-light)}html.dark .modal-header h3{color:var(--color-text-dark)}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--color-text-muted-light);padding:0;line-height:1}html.dark .modal-close{color:var(--color-text-muted-dark)}.modal-close:hover{color:var(--color-text-light)}html.dark .modal-close:hover{color:var(--color-text-dark)}.modal-form{padding:1.5rem}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}.plans-page{width:100%}.plans-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.plans-count{font-size:.9rem;color:var(--color-text-muted-light)}html.dark .plans-count{color:var(--color-text-muted-dark)}.plans-filters{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.plans-search{flex:1;min-width:200px}.plans-status-filter{width:150px}.plans-selected-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;align-items:center}.tag-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.35rem .6rem;background-color:var(--color-primary-light);color:#fff;border-radius:1rem;font-size:.8rem;font-weight:500}html.dark .tag-chip{background-color:var(--color-primary-dark);color:var(--color-bg-dark)}.tag-remove{background:none;border:none;color:inherit;cursor:pointer;padding:0;margin-left:.25rem;font-size:.9rem;line-height:1;opacity:.7}.tag-remove:hover{opacity:1}.tag-chip-small{display:inline-block;padding:.2rem .5rem;background-color:var(--color-secondary-light);color:var(--color-text-light);border-radius:.75rem;font-size:.7rem;font-weight:500;cursor:pointer;transition:background-color .2s ease}html.dark .tag-chip-small{background-color:var(--color-secondary-dark);color:var(--color-text-dark)}.tag-chip-small:hover{background-color:var(--color-primary-light);color:#fff}html.dark .tag-chip-small:hover{background-color:var(--color-primary-dark);color:var(--color-bg-dark)}.plans-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.plan-card{background-color:var(--color-surface-light);border:1px solid var(--color-border-light);border-radius:.5rem;overflow:hidden;cursor:pointer;transition:box-shadow .2s ease,transform .2s ease}html.dark .plan-card{background-color:var(--color-surface-dark);border-color:var(--color-border-dark)}.plan-card:hover{box-shadow:0 4px 12px var(--color-shadow-light);transform:translateY(-2px)}html.dark .plan-card:hover{box-shadow:0 4px 12px var(--color-shadow-dark)}.plan-thumbnail{position:relative;height:160px;background-color:var(--color-bg-light);overflow:hidden}html.dark .plan-thumbnail{background-color:var(--color-bg-dark)}.plan-thumbnail-img{width:100%;height:100%;object-fit:cover}.plan-thumbnail-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:var(--color-secondary-light)}html.dark .plan-thumbnail-placeholder{background-color:var(--color-secondary-dark)}.plan-thumbnail-icon{font-size:2rem;font-weight:700;color:var(--color-text-muted-light)}html.dark .plan-thumbnail-icon{color:var(--color-text-muted-dark)}.plan-thumbnail .status-badge{position:absolute;top:.5rem;right:.5rem}.badge-success{background-color:#2ecc71e6;color:#fff}.badge-warning{background-color:#f1c40fe6;color:var(--color-text-light)}.badge-error{background-color:#e74c3ce6;color:#fff}.plan-card-content{padding:1rem}.plan-card-title{font-size:1rem;font-weight:600;margin:0 0 .5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-text-light)}html.dark .plan-card-title{color:var(--color-text-dark)}.plan-card-meta{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.8rem;color:var(--color-text-muted-light);margin-bottom:.75rem}html.dark .plan-card-meta{color:var(--color-text-muted-dark)}.plan-card-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.75rem}.plan-card-footer{display:flex;justify-content:space-between;align-items:center;padding-top:.75rem;border-top:1px solid var(--color-border-light)}html.dark .plan-card-footer{border-top-color:var(--color-border-dark)}.plan-bom-total{font-weight:600;font-size:1rem;color:var(--color-primary-light)}html.dark .plan-bom-total{color:var(--color-primary-dark)}.plans-pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:2rem}.pagination-info{font-size:.9rem;color:var(--color-text-muted-light)}html.dark .pagination-info{color:var(--color-text-muted-dark)}.loading-state{text-align:center;padding:2rem;color:var(--color-text-muted-light)}html.dark .loading-state{color:var(--color-text-muted-dark)}.tag-editor{width:100%}.tag-editor-tags{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.tag-add-btn{display:inline-flex;align-items:center;padding:.35rem .6rem;background-color:transparent;border:1px dashed var(--color-border-light);border-radius:1rem;color:var(--color-text-muted-light);font-size:.8rem;cursor:pointer;transition:all .2s ease}html.dark .tag-add-btn{border-color:var(--color-border-dark);color:var(--color-text-muted-dark)}.tag-add-btn:hover{border-color:var(--color-primary-light);color:var(--color-primary-light)}html.dark .tag-add-btn:hover{border-color:var(--color-primary-dark);color:var(--color-primary-dark)}.tag-input-wrapper{position:relative}.tag-input{padding:.35rem .6rem;border:1px solid var(--color-primary-light);border-radius:1rem;font-size:.8rem;width:150px;outline:none}html.dark .tag-input{background-color:var(--color-surface-dark);border-color:var(--color-primary-dark);color:var(--color-text-dark)}.tag-suggestions{position:absolute;top:100%;left:0;right:0;background-color:var(--color-surface-light);border:1px solid var(--color-border-light);border-radius:.375rem;margin-top:.25rem;box-shadow:0 4px 6px var(--color-shadow-light);z-index:10;overflow:hidden}html.dark .tag-suggestions{background-color:var(--color-surface-dark);border-color:var(--color-border-dark);box-shadow:0 4px 6px var(--color-shadow-dark)}.tag-suggestion{display:block;width:100%;padding:.5rem .75rem;text-align:left;background:none;border:none;cursor:pointer;font-size:.85rem;color:var(--color-text-light)}html.dark .tag-suggestion{color:var(--color-text-dark)}.tag-suggestion:hover{background-color:var(--color-bg-light)}html.dark .tag-suggestion:hover{background-color:var(--color-secondary-dark)}.bom-drawer{position:fixed;bottom:0;left:250px;right:0;background-color:var(--color-surface-light);border-top:1px solid var(--color-border-light);box-shadow:0 -4px 12px var(--color-shadow-light);z-index:100;transition:transform .3s ease}html.dark .bom-drawer{background-color:var(--color-surface-dark);border-top-color:var(--color-border-dark);box-shadow:0 -4px 12px var(--color-shadow-dark)}.bom-drawer-bar{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;cursor:pointer}.bom-drawer-bar:hover{background-color:var(--color-bg-light)}html.dark .bom-drawer-bar:hover{background-color:var(--color-secondary-dark)}.bom-drawer-summary{display:flex;align-items:center;gap:1rem}.bom-drawer-label{font-weight:600;color:var(--color-text-light)}html.dark .bom-drawer-label{color:var(--color-text-dark)}.bom-drawer-total{font-size:1.1rem;font-weight:600;color:var(--color-primary-light)}html.dark .bom-drawer-total{color:var(--color-primary-dark)}.bom-drawer-actions{display:flex;align-items:center;gap:1rem}.bom-drawer-toggle{font-size:1rem;color:var(--color-text-muted-light)}html.dark .bom-drawer-toggle{color:var(--color-text-muted-dark)}.bom-drawer-content{max-height:300px;overflow-y:auto;padding:0 1.5rem 1rem}.bom-drawer-empty{padding:2rem;text-align:center;color:var(--color-text-muted-light)}html.dark .bom-drawer-empty{color:var(--color-text-muted-dark)}.bom-table{width:100%;border-collapse:collapse;font-size:.9rem}.bom-table th,.bom-table td{padding:.5rem .75rem;border-bottom:1px solid var(--color-border-light)}html.dark .bom-table th,html.dark .bom-table td{border-bottom-color:var(--color-border-dark)}.bom-table th{font-weight:600;text-align:left;color:var(--color-text-muted-light);font-size:.8rem;text-transform:uppercase}html.dark .bom-table th{color:var(--color-text-muted-dark)}.bom-table tbody tr.clickable{cursor:pointer}.bom-table tbody tr.clickable:hover{background-color:var(--color-bg-light)}html.dark .bom-table tbody tr.clickable:hover{background-color:var(--color-secondary-dark)}.bom-table .product-cell .no-product{color:var(--color-text-muted-light);font-style:italic}html.dark .bom-table .product-cell .no-product{color:var(--color-text-muted-dark)}.bom-table tfoot td{border-bottom:none;padding-top:.75rem}.components-header{min-width:120px}.components-cell{min-width:120px;max-width:240px}.no-thumbnails{color:var(--color-text-muted-light);font-style:italic}html.dark .no-thumbnails{color:var(--color-text-muted-dark)}.detection-thumbnails{display:flex;flex-direction:row;align-items:center;gap:4px;flex-wrap:nowrap}.detection-thumbnail{width:40px;height:40px;border-radius:4px;border:1px solid var(--color-border-light);background-color:var(--color-surface-light);overflow:hidden;cursor:pointer;padding:0;transition:transform .15s ease,box-shadow .15s ease;flex-shrink:0}html.dark .detection-thumbnail{border-color:var(--color-border-dark);background-color:var(--color-surface-dark)}.detection-thumbnail:hover{transform:scale(1.1);box-shadow:0 2px 8px #00000026;z-index:1}html.dark .detection-thumbnail:hover{box-shadow:0 2px 8px #0006}.detection-thumbnail img{width:100%;height:100%;object-fit:cover}.detection-thumbnail.loading{cursor:default}.detection-thumbnail.loading .thumbnail-placeholder{width:100%;height:100%;background:linear-gradient(90deg,var(--color-border-light) 25%,var(--color-surface-light) 50%,var(--color-border-light) 75%);background-size:200% 100%;animation:thumbnail-shimmer 1.5s infinite}html.dark .detection-thumbnail.loading .thumbnail-placeholder{background:linear-gradient(90deg,var(--color-border-dark) 25%,var(--color-surface-dark) 50%,var(--color-border-dark) 75%);background-size:200% 100%}@keyframes thumbnail-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.detection-thumbnail.error{display:flex;align-items:center;justify-content:center;cursor:default}.thumbnail-error-icon{font-size:1rem;font-weight:700;color:var(--color-text-muted-light)}html.dark .thumbnail-error-icon{color:var(--color-text-muted-dark)}.thumbnails-overflow-badge{display:flex;align-items:center;justify-content:center;width:32px;height:40px;font-size:.75rem;font-weight:600;color:var(--color-text-muted-light);background-color:var(--color-bg-light);border-radius:4px;flex-shrink:0}html.dark .thumbnails-overflow-badge{color:var(--color-text-muted-dark);background-color:var(--color-secondary-dark)}.text-right{text-align:right}.text-center{text-align:center}.plan-details-page{width:100%;padding-bottom:60px;display:flex;flex-direction:column;min-height:calc(100vh - 120px)}.plan-details-header{margin-bottom:1.5rem}.plan-details-title{display:flex;align-items:center;gap:1rem;margin:1rem 0 .5rem}.plan-details-title h2{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text-light)}html.dark .plan-details-title h2{color:var(--color-text-dark)}.plan-details-meta{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.85rem;color:var(--color-text-muted-light)}html.dark .plan-details-meta{color:var(--color-text-muted-dark)}.plan-details-section{margin-bottom:1.5rem}.section-label{font-size:.85rem;font-weight:600;color:var(--color-text-muted-light);text-transform:uppercase;margin-bottom:.5rem}html.dark .section-label{color:var(--color-text-muted-dark)}.plan-details-viewer{display:grid;grid-template-columns:1fr 350px;gap:1.5rem;flex:1;min-height:0}@media (max-width: 1024px){.plan-details-viewer{grid-template-columns:1fr}}.page-viewer-container{display:flex;flex-direction:column;gap:1rem}.page-navigation{display:flex;align-items:center;justify-content:center;gap:1rem}.page-indicator{font-size:.9rem;color:var(--color-text-muted-light)}html.dark .page-indicator{color:var(--color-text-muted-dark)}.page-viewer{flex:1;background-color:var(--color-bg-light);border:1px solid var(--color-border-light);border-radius:.5rem;overflow:hidden;-webkit-user-select:none;user-select:none}html.dark .page-viewer{background-color:var(--color-bg-dark);border-color:var(--color-border-dark)}.page-image-container{position:relative;width:100%;height:100%;transition:transform .1s ease-out}.page-image-container.panning{transition:none}.page-image{width:100%;height:auto;display:block}.detection-box{position:absolute;border:2px solid var(--color-primary-light);background-color:#3498db1a;cursor:pointer;transition:all .2s ease}html.dark .detection-box{border-color:var(--color-primary-dark);background-color:#60a5fa1a}.detection-box:hover,.detection-box.selected{border-color:var(--color-accent-light);background-color:#1abc9c33}html.dark .detection-box:hover,html.dark .detection-box.selected{border-color:var(--color-accent-dark);background-color:#34d39933}.detection-box.hovered{border-color:var(--color-accent-light);background-color:#1abc9c40;box-shadow:0 0 8px #1abc9c66}html.dark .detection-box.hovered{border-color:var(--color-accent-dark);background-color:#34d39940;box-shadow:0 0 8px #34d39966}.detection-panel{background-color:var(--color-surface-light);border:1px solid var(--color-border-light);border-radius:.5rem;padding:1rem;display:flex;flex-direction:column;min-height:0}html.dark .detection-panel{background-color:var(--color-surface-dark);border-color:var(--color-border-dark)}.no-detections{text-align:center;color:var(--color-text-muted-light);padding:2rem}html.dark .no-detections{color:var(--color-text-muted-dark)}.detection-list{display:flex;flex-direction:column;gap:.75rem;flex:1;overflow-y:auto;min-height:0}.detection-item{padding:.75rem;border:1px solid var(--color-border-light);border-radius:.375rem;cursor:pointer;transition:all .2s ease}html.dark .detection-item{border-color:var(--color-border-dark)}.detection-item:hover,.detection-item.selected{border-color:var(--color-primary-light);background-color:var(--color-bg-light)}html.dark .detection-item:hover,html.dark .detection-item.selected{border-color:var(--color-primary-dark);background-color:var(--color-secondary-dark)}.detection-item.hovered{border-color:var(--color-accent-light);background-color:#1abc9c1a}html.dark .detection-item.hovered{border-color:var(--color-accent-dark);background-color:#34d3991a}.detection-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.detection-type{font-weight:600;font-size:.9rem;color:var(--color-text-light)}html.dark .detection-type{color:var(--color-text-dark)}.detection-confidence{font-size:.8rem;color:var(--color-text-muted-light);background-color:var(--color-secondary-light);padding:.15rem .4rem;border-radius:.25rem}html.dark .detection-confidence{color:var(--color-text-muted-dark);background-color:var(--color-secondary-dark)}.detection-params{font-size:.8rem;color:var(--color-text-muted-light);margin-bottom:.5rem}html.dark .detection-params{color:var(--color-text-muted-dark)}.detection-ocr{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.5rem;padding:.5rem;background:var(--color-bg-secondary-light);border-radius:4px;font-family:monospace;font-size:.75rem}html.dark .detection-ocr{background:var(--color-bg-secondary-dark)}.detection-ocr-label{font-weight:600;color:var(--color-text-muted-light);font-size:.7rem;text-transform:uppercase}html.dark .detection-ocr-label{color:var(--color-text-muted-dark)}.detection-ocr-text{white-space:pre-wrap;word-break:break-word;color:var(--color-text-primary-light)}html.dark .detection-ocr-text{color:var(--color-text-primary-dark)}.detection-product{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.5rem}.detection-product .product-name{font-size:.85rem;color:var(--color-text-light)}html.dark .detection-product .product-name{color:var(--color-text-dark)}.detection-product .product-price{font-size:.85rem;color:var(--color-primary-light);font-weight:500}html.dark .detection-product .product-price{color:var(--color-primary-dark)}.detection-product .override-badge{font-size:.7rem;background-color:var(--color-accent-light);color:#fff;padding:.1rem .35rem;border-radius:.25rem}html.dark .detection-product .override-badge{background-color:var(--color-accent-dark)}.detection-product .no-product{font-size:.85rem;color:var(--color-text-muted-light);font-style:italic}html.dark .detection-product .no-product{color:var(--color-text-muted-dark)}.product-override-modal{max-width:500px}.original-product-info{background-color:var(--color-bg-light);border:1px solid var(--color-border-light);border-radius:.375rem;padding:.75rem;margin-bottom:1rem}html.dark .original-product-info{background-color:var(--color-bg-dark);border-color:var(--color-border-dark)}.original-label{font-size:.8rem;color:var(--color-text-muted-light);margin-bottom:.25rem}html.dark .original-label{color:var(--color-text-muted-dark)}.original-name{font-weight:500;color:var(--color-text-light)}html.dark .original-name{color:var(--color-text-dark)}.original-price{font-size:.9rem;color:var(--color-primary-light)}html.dark .original-price{color:var(--color-primary-dark)}.device-info{background-color:var(--color-secondary-light);border-radius:.375rem;padding:.75rem;margin-bottom:1rem;font-size:.85rem}html.dark .device-info{background-color:var(--color-secondary-dark)}.device-info p{margin:0 0 .25rem}.device-info p:last-child{margin-bottom:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.duplicate-modal{max-width:450px}.duplicate-message{margin-bottom:1rem;color:var(--color-text-light)}html.dark .duplicate-message{color:var(--color-text-dark)}.existing-plan-card{display:flex;gap:1rem;padding:1rem;background-color:var(--color-bg-light);border:1px solid var(--color-border-light);border-radius:.5rem;margin-bottom:1.5rem}html.dark .existing-plan-card{background-color:var(--color-bg-dark);border-color:var(--color-border-dark)}.existing-plan-thumbnail{width:80px;height:100px;flex-shrink:0;background-color:var(--color-secondary-light);border-radius:.375rem;overflow:hidden}html.dark .existing-plan-thumbnail{background-color:var(--color-secondary-dark)}.existing-plan-thumbnail img{width:100%;height:100%;object-fit:cover}.existing-plan-thumbnail .thumbnail-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--color-text-muted-light)}html.dark .existing-plan-thumbnail .thumbnail-placeholder{color:var(--color-text-muted-dark)}.existing-plan-info{flex:1}.existing-plan-info h4{margin:0 0 .25rem;font-size:1rem;font-weight:600;color:var(--color-text-light);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}html.dark .existing-plan-info h4{color:var(--color-text-dark)}.existing-plan-info p{margin:0 0 .25rem;font-size:.85rem;color:var(--color-text-muted-light)}html.dark .existing-plan-info p{color:var(--color-text-muted-dark)}.existing-plan-tags{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.5rem}.duplicate-actions{display:flex;flex-direction:column;gap:.75rem}.duplicate-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem}.duplicate-btn .btn-icon{font-size:1.1rem}.duplicate-note{margin-top:1rem;font-size:.8rem;color:var(--color-text-muted-light);text-align:center}html.dark .duplicate-note{color:var(--color-text-muted-dark)}.save-plan-section{display:flex;align-items:center;justify-content:space-between;padding:1rem;background-color:var(--color-bg-light);border:1px solid var(--color-border-light);border-radius:.5rem;margin-top:1.5rem}html.dark .save-plan-section{background-color:var(--color-bg-dark);border-color:var(--color-border-dark)}.save-plan-info{display:flex;flex-direction:column;gap:.25rem}.save-plan-title{font-weight:600;color:var(--color-text-light)}html.dark .save-plan-title{color:var(--color-text-dark)}.save-plan-desc{font-size:.85rem;color:var(--color-text-muted-light)}html.dark .save-plan-desc{color:var(--color-text-muted-dark)}.checking-hash-message{font-size:.85rem;color:var(--color-primary-light);margin-top:.5rem}html.dark .checking-hash-message{color:var(--color-primary-dark)}.confirmation-modal{max-width:400px}.confirmation-modal-body{padding:1.5rem}.confirmation-modal-content{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1rem}.confirmation-icon{width:48px;height:48px;flex-shrink:0}.confirmation-icon-info{color:var(--color-primary-light)}html.dark .confirmation-icon-info{color:var(--color-primary-dark)}.confirmation-icon-success{color:var(--color-success-light)}html.dark .confirmation-icon-success{color:var(--color-success-dark)}.confirmation-icon-warning{color:#f59e0b}html.dark .confirmation-icon-warning{color:#fbbf24}.confirmation-icon-error{color:var(--color-error-light)}html.dark .confirmation-icon-error{color:var(--color-error-dark)}.confirmation-message{font-size:.95rem;color:var(--color-text-light);line-height:1.5;margin:0}html.dark .confirmation-message{color:var(--color-text-dark)}.confirmation-modal-actions{padding:1rem 1.5rem;border-top:1px solid var(--color-border-light)}html.dark .confirmation-modal-actions{border-top-color:var(--color-border-dark)}.btn-spinner{animation:spin 1s linear infinite;margin-right:.5rem}.zoom-controls{display:flex;align-items:center;gap:.5rem;padding:.5rem;background-color:var(--color-surface-light);border:1px solid var(--color-border-light);border-radius:.375rem;margin-left:auto}html.dark .zoom-controls{background-color:var(--color-surface-dark);border-color:var(--color-border-dark)}.zoom-controls button{width:28px;height:28px;border:none;background-color:var(--color-secondary-light);color:var(--color-text-light);border-radius:.25rem;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease}html.dark .zoom-controls button{background-color:var(--color-secondary-dark);color:var(--color-text-dark)}.zoom-controls button:hover:not(:disabled){background-color:var(--color-secondary-hover-light)}html.dark .zoom-controls button:hover:not(:disabled){background-color:var(--color-secondary-hover-dark)}.zoom-controls button:disabled{opacity:.5;cursor:not-allowed}.zoom-controls span{min-width:50px;text-align:center;font-size:.85rem;color:var(--color-text-light)}html.dark .zoom-controls span{color:var(--color-text-dark)}.processing-indicator{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--color-text-muted-light);margin-left:1rem}html.dark .processing-indicator{color:var(--color-text-muted-dark)}.auto-refresh-dot{width:8px;height:8px;background-color:var(--color-success-light);border-radius:50%;animation:pulse-dot 2s infinite}html.dark .auto-refresh-dot{background-color:var(--color-success-dark)}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.refresh-spinner{width:14px;height:14px;border:2px solid var(--color-border-light);border-top-color:var(--color-primary-light);border-radius:50%;animation:spin 1s linear infinite}html.dark .refresh-spinner{border-color:var(--color-border-dark);border-top-color:var(--color-primary-dark)}
