.app-root{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-brand{color:inherit}.app-logo{color:#334155;flex-shrink:0}.main-layout{display:flex;flex:1;overflow:hidden}.page-panel{width:78px;min-width:78px;background:#f1f5f9;display:flex;flex-direction:column;align-items:center;padding:8px 0;gap:4px;overflow-y:auto}.page-btn{width:52px;height:40px;border:none;border-radius:6px;background:transparent;color:#475569;font-weight:600;font-size:13px;cursor:pointer;transition:all .15s}.page-btn.active{background:#3b82f6;color:#fff}.page-btn.selected,.page-btn.selected.active{background:#facc15;color:#713f12}.page-btn.bh-page{border-left:3px solid #22c55e;display:flex;align-items:center;justify-content:center;gap:1px}.page-btn.bh-page.active{border-left:3px solid #86efac}.bh-group{width:100%;display:flex;flex-direction:column;align-items:center;margin-top:4px}.bh-group-label{font-size:9px;font-weight:700;color:#22c55e;letter-spacing:.5px;padding:2px 0;text-align:center;width:52px;background:#22c55e14;border-radius:4px;margin-bottom:2px}.bh-group-label.other{color:#64748b;background:#64748b14}.viewer-panel{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#e2e8f0;position:relative}.viewer-toolbar{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#fff;border-bottom:1px solid #cbd5e1;flex-wrap:wrap}.viewer-extract-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:200px}.viewer-extract-progress{display:flex;align-items:center;gap:8px;width:100%}.viewer-extract-progress .MuiLinearProgress-root{flex:1}.viewer-extract-progress-label{font-size:12px;font-weight:600;color:#475569;min-width:32px}.viewer-canvas-area{flex:1;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:16px}.results-panel-wrap{display:flex;flex-shrink:0;min-width:380px;position:relative}.results-panel-resize-handle{width:6px;flex-shrink:0;cursor:col-resize;background:transparent;position:relative;z-index:1}.results-panel-resize-handle:hover,.results-panel-resize-handle:active{background:#3b82f626}.results-panel-resize-handle:after{content:"";position:absolute;left:2px;top:0;bottom:0;width:2px;background:#cbd5e1;border-radius:1px;pointer-events:none}.results-panel-resize-handle:hover:after{background:#3b82f6;width:2px;left:2px}.results-panel{flex:1;min-width:0;width:100%;background:#fff;border-left:1px solid #cbd5e1;display:flex;flex-direction:column;overflow:hidden}.results-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid #e2e8f0;background:#f8fafc}.results-table-wrap{flex:1;overflow:auto;padding:0;min-width:0}.upload-area{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;color:#64748b}.server-start-brand{display:flex;align-items:center;gap:12px;margin-bottom:8px;animation:server-start-pulse 2.5s ease-in-out infinite,server-start-fade-in .8s ease-out}.server-start-logo{width:80px;height:69px;color:#3b82f6;filter:drop-shadow(0 0 8px rgba(59,130,246,.4));animation:server-start-float 3.5s ease-in-out infinite,server-start-glow 2s ease-in-out infinite}.server-start-name{font-weight:800!important;letter-spacing:-.02em;background:linear-gradient(135deg,#3b82f6,#60a5fa 35%,#93c5fd,#60a5fa 65%,#3b82f6);background-size:200% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:server-start-shine 3s ease-in-out infinite,server-start-shimmer 4s ease-in-out infinite}@keyframes server-start-fade-in{0%{opacity:0;transform:scale(.95) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes server-start-pulse{0%,to{opacity:1;transform:scale(1) translateY(0)}50%{opacity:.92;transform:scale(1.02) translateY(0)}}@keyframes server-start-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes server-start-glow{0%,to{filter:drop-shadow(0 0 8px rgba(59,130,246,.4))}50%{filter:drop-shadow(0 0 16px rgba(59,130,246,.6))}}@keyframes server-start-shine{0%,to{opacity:1}50%{opacity:.88}}@keyframes server-start-shimmer{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.server-start-messages{display:flex;flex-direction:column;align-items:center;gap:16px}.server-start-messages .MuiLinearProgress-root{animation:server-start-fade-in .5s ease-out .2s both}.server-start-line1{animation:server-start-fade-in .5s ease-out .35s both,server-start-text-pulse 2s ease-in-out 1s infinite}.server-start-caption{color:#64748b;margin-top:2px;animation:server-start-fade-in .5s ease-out .5s both}.server-start-free{margin-top:16px!important;max-width:360px;text-align:center;color:#94a3b8;animation:server-start-fade-in .6s ease-out .65s both,server-start-text-pulse 2.5s ease-in-out 1.2s infinite}@keyframes server-start-text-pulse{0%,to{opacity:1}50%{opacity:.78}}.upload-dropzone{width:360px;height:200px;border:2px dashed #94a3b8;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:all .2s}.upload-dropzone:hover{border-color:#3b82f6;background:#eff6ff}.upload-dropzone.drag-over{border-color:#3b82f6;background:#dbeafe}.soil-table{width:100%;min-width:520px;table-layout:fixed;border-collapse:collapse;font-size:13px}.soil-table th:nth-child(1),.soil-table td:nth-child(1){min-width:52px}.soil-table th:nth-child(2),.soil-table th:nth-child(3),.soil-table td:nth-child(2),.soil-table td:nth-child(3){min-width:52px;width:65px}.soil-table td:nth-child(1) input,.soil-table td:nth-child(2) input,.soil-table td:nth-child(3) input{min-width:0}.soil-table th{position:sticky;top:0;background:#f1f5f9;color:#334155;font-weight:600;padding:8px 6px;text-align:left;white-space:nowrap;z-index:1;box-sizing:border-box;border-bottom:1px solid #e2e8f0}.soil-table td{box-sizing:border-box;padding:2px 4px;border-bottom:1px solid #e2e8f0;vertical-align:middle}.soil-table tr:hover td{background:#f1f5f9}.soil-table input,.soil-table textarea{width:100%;border:1px solid transparent;border-radius:4px;padding:4px 6px;font-size:13px;font-family:inherit;background:transparent;transition:border-color .15s}.soil-table input:focus,.soil-table textarea:focus{outline:none;border-color:#3b82f6;background:#fff}.soil-table input:hover,.soil-table textarea:hover{border-color:#cbd5e1}.soil-table .row-num{color:#94a3b8;text-align:center;font-size:12px;width:30px}.row-actions{display:flex;gap:2px}.drag-handle-cell{width:24px;text-align:center;padding:0 2px!important;cursor:grab;-webkit-user-select:none;user-select:none}.drag-handle-cell:active{cursor:grabbing}.soil-table tr.row-dragging{opacity:.35}.soil-table tr.row-drag-over td{border-top:2px solid #3b82f6!important;background:#eff6ff!important}.metadata-grid{padding:12px 16px}.metadata-row{display:flex;align-items:baseline;padding:6px 0;border-bottom:1px solid #f1f5f9}.metadata-label{width:130px;min-width:130px;font-size:12px;font-weight:600;color:#64748b}.metadata-value{font-size:13px;color:#1e293b;word-break:break-word}.metadata-input{flex:1;min-width:0;margin-left:8px;padding:4px 8px;border:1px solid #e2e8f0;border-radius:4px;font-size:13px;font-family:inherit}.metadata-input:focus{outline:none;border-color:#3b82f6}.log-tab{padding:12px 16px;display:flex;flex-direction:column;min-height:0}.lithology-strip-wrap{display:flex;align-items:stretch;gap:8px;min-height:0}.lithology-depth-axis{position:relative;width:36px;flex-shrink:0;font-size:10px;font-weight:600;color:#64748b}.lithology-tick{position:absolute;left:0;transform:translateY(-50%);line-height:1}.lithology-strip{position:relative;flex:1;min-width:80px;max-width:140px;border:1px solid #e2e8f0;border-radius:6px;overflow:hidden;background:#f1f5f9}.lithology-band{position:absolute;left:0;right:0;box-sizing:border-box;cursor:default}.spt-plot-wrap{flex-shrink:0;border:1px solid #e2e8f0;border-radius:6px;overflow:hidden;background:#fff}.spt-plot{display:block}.spt-plot .spt-axis-label{font-size:11px;font-weight:600;fill:#64748b}.spt-plot .spt-point{cursor:default}.rqd-plot-wrap{flex-shrink:0;border:1px solid #e2e8f0;border-radius:6px;overflow:hidden;background:#fff}.rqd-plot{display:block}.rqd-plot .rqd-axis-label{font-size:11px;font-weight:600;fill:#64748b}.rqd-plot .rqd-point{cursor:default}.lithology-legend{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:10px;padding-top:8px;border-top:1px solid #e2e8f0;font-size:11px;color:#64748b}.lithology-legend-item{display:inline-flex;align-items:center;gap:4px}.lithology-legend-swatch{width:12px;height:12px;border-radius:2px;flex-shrink:0;border:1px solid rgba(0,0,0,.08)}.tab-empty{padding:40px 20px;text-align:center;color:#94a3b8;font-size:13px}.feedback-widget{flex-shrink:0;position:relative;border:1px solid #bae6fd;border-radius:12px;margin:10px 12px 12px;padding:32px 14px 12px;background:#e0f2fe;font-size:14px;box-shadow:0 1px 3px #0000000f}.feedback-widget-closed{padding:10px 14px;border-color:#38bdf8;background:linear-gradient(135deg,#e0f2fe,#bae6fd);box-shadow:0 2px 8px #0284c733}.feedback-widget-toggle{position:absolute;top:8px;right:10px;padding:4px 10px;border:none;border-radius:6px;background:#dc2626;color:#fff;font-size:13px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center}.feedback-widget-toggle:hover{background:#b91c1c;color:#fff}.feedback-widget-header{display:flex;align-items:center;gap:10px;margin:0 0 8px}.feedback-widget-header-icon{color:#0284c7;flex-shrink:0}.feedback-widget-title{margin:0;font-size:15px;font-weight:700;color:#0c4a6e;line-height:1.3}.feedback-widget-reopen{position:relative;overflow:hidden;width:100%;padding:10px 14px;border:2px solid #0284c7;border-radius:8px;background:#fff;color:#0369a1;font-size:14px;font-weight:600;cursor:pointer;text-align:center;box-shadow:0 0 12px #0284c766,0 2px 6px #0284c740;animation:feedback-glow 2.5s ease-in-out infinite}.feedback-fire-effect{position:absolute;inset:0;border-radius:6px;pointer-events:none;background:linear-gradient(180deg,#fed74659,#f9731680,#ea580c8c,#dc262680,#b91c1c66);animation:feedback-fire-flicker 4s ease-out forwards}@keyframes feedback-fire-flicker{0%{opacity:0}12%{opacity:.7}25%{opacity:.5}40%{opacity:.75}55%{opacity:.45}70%{opacity:.65}85%{opacity:.4}to{opacity:0}}.feedback-widget-reopen:hover{background:#e0f2fe;border-color:#0369a1;box-shadow:0 0 20px #0284c780,0 3px 10px #0284c759}.feedback-reopen-icon{margin-right:6px}.feedback-reopen-cta{text-decoration:underline;font-weight:700}@keyframes feedback-glow{0%,to{box-shadow:0 0 12px #0284c766,0 2px 6px #0284c740}50%{box-shadow:0 0 24px #0284c799,0 0 12px #0284c759,0 2px 8px #0284c74d}}.feedback-widget-text{margin:0 0 10px;color:#0c4a6e;line-height:1.45;font-size:14px}.feedback-contact-row{margin:12px 0 0;padding:12px 0 0;border-top:1px solid #bae6fd}.feedback-contact-or{display:flex;align-items:center;gap:10px;margin:0 0 10px}.feedback-contact-or-line{flex:1;height:0;border-top:1px solid #94a3b8}.feedback-contact-or-text{font-size:12px;font-weight:600;color:#64748b;letter-spacing:.08em}.feedback-contact-heading{margin:0 0 8px;font-size:14px;color:#0c4a6e;line-height:1.4}.feedback-contact-links{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.feedback-contact-link{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;font-size:13px;text-decoration:none;color:inherit;transition:background .15s,color .15s}.feedback-contact-whatsapp{background:#dcfce7;color:#166534;border:1px solid #86efac}.feedback-contact-whatsapp:hover{background:#bbf7d0;color:#14532d}.feedback-contact-email{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.feedback-contact-email:hover{background:#fde68a;color:#78350f}.feedback-contact-whatsapp-community{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0;cursor:pointer;font-family:inherit}.feedback-contact-whatsapp-community:hover{background:#dcfce7;border-color:#86efac}.feedback-form{display:flex;flex-direction:column;gap:8px}.feedback-textarea{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid #7dd3fc;border-radius:6px;font-size:14px;font-family:inherit;resize:vertical;min-height:48px}.feedback-textarea:focus{outline:none;border-color:#0284c7}.feedback-form-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.feedback-send-btn{background:linear-gradient(180deg,#0284c7,#0369a1)!important;color:#fff!important;font-weight:700!important;padding:6px 16px!important;border-radius:8px!important;box-shadow:0 2px 6px #0284c766!important}.feedback-send-btn:hover:not(:disabled){background:linear-gradient(180deg,#0369a1,#075985)!important;box-shadow:0 3px 10px #0284c780!important}.feedback-send-btn:disabled{opacity:.7}.feedback-email{flex:1;min-width:120px;padding:6px 10px;border:1px solid #7dd3fc;border-radius:6px;font-size:14px}.feedback-email:focus{outline:none;border-color:#0284c7}.feedback-type{padding:6px 10px;border:1px solid #7dd3fc;border-radius:6px;font-size:14px;min-width:100px}.feedback-status{margin:6px 0 0;font-size:13px}.feedback-status.success{color:#059669}.feedback-status.error{color:#dc2626}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f5f5f5}.page-panel{display:flex;flex-direction:column;padding:8px;background:#f1f5f9;height:100%;overflow-y:auto;gap:4px}.page-btn{display:flex;align-items:center;justify-content:center;padding:6px;border-radius:6px;border:1px solid #e2e8f0;background:transparent;color:#475569;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;position:relative}.page-btn:hover{background:#e2e8f0;color:#1e293b}.page-btn.active{background:#3b82f6;color:#fff;border-color:#3b82f6}.page-btn.selected,.page-btn.selected.active{background:#facc15;color:#713f12;border-color:#eab308}.page-btn.grouped{color:#fff;font-weight:700;border:none}.page-btn.grouped.active{outline:2px solid #1e293b;outline-offset:1px}.page-btn.extracted{border-color:#0d948844}.page-btn.extracting{background:#f59e0b22;border-color:#f59e0b}.page-extracting-dot{position:absolute;top:4px;right:4px;width:6px;height:6px;border-radius:50%;background:#f59e0b;box-shadow:0 0 8px #f59e0b;animation:pulse 1.5s infinite}@keyframes pulse{0%{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}to{opacity:.4;transform:scale(.8)}}.page-progress-wrap{margin-bottom:8px;padding:8px;background:#e2e8f0;border-radius:8px}.batch-extract-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px;margin-bottom:8px;border-radius:8px;border:none;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 12px #f59e0b4d}.batch-extract-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #f59e0b66}.batch-extract-btn:active:not(:disabled){transform:translateY(0)}.batch-extract-btn:disabled{background:#cbd5e1;color:#64748b;box-shadow:none;cursor:not-allowed}.feedback-widget{transition:transform .4s cubic-bezier(.4,0,.2,1),box-shadow .4s}.feedback-widget-closed{transform:translateY(calc(100% - 40px))}.feedback-widget-open{transform:translateY(0)}.qa-warning-badge{color:#f59e0b;background:#fef3c7;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:700;display:inline-flex;align-items:center;gap:4px;margin-left:8px;border:1px solid #fcd34d}.field-warning{border-left:3px solid #f59e0b!important;background-color:#fffbeb!important}.smart-detect-btn{background:none;border:1px solid #e2e8f0;color:#475569;padding:2px 6px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.smart-detect-btn:hover:not(:disabled){border-color:#a855f7;color:#a855f7;background:#a855f710}.smart-detect-btn.loading{border-color:#a855f7;color:#a855f7}.smart-detect-btn:disabled{opacity:.5;cursor:not-allowed}.page-btn.suggested{border-left:3px solid #a855f7!important}
