*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}button{cursor:pointer;font-family:inherit}button:disabled{cursor:not-allowed;opacity:.6}.toast{align-items:center;animation:slideInRight .3s ease-out;background:#fff;border:2px solid #000;border-radius:2px;box-shadow:0 8px 24px #0003;display:flex;gap:12px;max-width:500px;min-width:320px;overflow:hidden;padding:16px 20px;position:relative}@keyframes slideInRight{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.toast:before{background:#000;bottom:0;content:"";left:0;position:absolute;top:0;width:4px}.toast-success:before{background:#00c851}.toast-error:before{background:#f44}.toast-warning:before{background:#fb3}.toast-info:before{background:#33b5e5}.toast-icon{align-items:center;border-radius:50%;display:flex;flex-shrink:0;font-size:16px;font-weight:600;height:28px;justify-content:center;width:28px}.toast-success .toast-icon{background:#00c851;color:#fff}.toast-error .toast-icon{background:#f44;color:#fff}.toast-warning .toast-icon{background:#fb3;color:#000}.toast-info .toast-icon{background:#33b5e5;color:#fff}.toast-message{color:#000;flex:1 1;font-size:14px;font-weight:400;line-height:1.5}.toast-close{align-items:center;background:none;border:none;color:#666;cursor:pointer;display:flex;flex-shrink:0;font-size:24px;height:24px;justify-content:center;padding:0;transition:color .2s ease;width:24px}.toast-close:hover{color:#000}.toast-container{display:flex;flex-direction:column;gap:12px;pointer-events:none;position:fixed;right:20px;top:20px;z-index:10000}.toast-container>*{pointer-events:auto}@media (max-width:768px){.toast-container{left:10px;right:10px;top:10px}.toast{max-width:100%;min-width:auto}}.file-upload-container{animation:fadeInUp .6s ease-out .2s both;margin:0 auto;max-width:700px;width:100%}.file-upload-container h2{color:#333;font-size:28px;font-weight:600;letter-spacing:-.5px;margin-bottom:10px;text-align:center}.upload-hint{font-size:15px;line-height:1.6}.security-badge{align-items:center;background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border:2px solid #81c784;border-radius:10px;color:#2e7d32;display:flex;font-size:14px;font-weight:500;gap:10px;justify-content:center;margin-bottom:24px;padding:14px 20px}.drop-zone{background:linear-gradient(135deg,#fff,#fafafa);border:2px dashed #333;border-radius:20px;box-shadow:0 4px 16px #0000000a;cursor:pointer;overflow:hidden;padding:60px 40px;position:relative;text-align:center;transition:all .4s cubic-bezier(.34,1.56,.64,1)}.drop-zone:hover{box-shadow:0 8px 32px #00000014;transform:translateY(-4px)}.drop-zone:before{background:linear-gradient(90deg,#0000,#00000005,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.drop-zone:hover:before{left:100%}.drop-zone:hover{border-color:#000;box-shadow:0 8px 24px #00000014;transform:translateY(-2px)}.drop-zone.active{background:#00000005;border-color:#000;transform:scale(1.02)}.drop-zone.has-files{min-height:120px;padding:30px 40px}.file-label{cursor:pointer;display:block}.upload-prompt{color:#333}.drag-text{font-size:18px;font-weight:500;margin:10px 0}.upload-prompt .or-text{color:#999;font-size:14px;letter-spacing:1px;margin:14px 0;text-transform:uppercase}.format-hint{color:#999;font-size:13px;font-weight:400;margin-top:20px}.or-text{color:#999;display:block;font-size:14px;letter-spacing:2px;margin:15px 0;text-transform:uppercase}.browse-button{background:linear-gradient(135deg,#000,#1a1a1a);border-radius:12px;box-shadow:0 4px 16px #00000026;color:#fff;display:inline-block;font-size:15px;font-weight:600;letter-spacing:.5px;overflow:hidden;padding:16px 44px;position:relative;text-transform:none;transition:all .4s cubic-bezier(.34,1.56,.64,1)}.browse-button:after{background:#ffffff26;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .6s ease,height .6s ease;width:0}.browse-button:hover:after{height:300px;width:300px}.browse-button:hover{background:linear-gradient(135deg,#1a1a1a,#333);box-shadow:0 12px 28px #00000040;transform:translateY(-3px) scale(1.02)}.file-info{padding:20px}.file-info p{color:#333;font-size:16px;font-weight:500;margin:10px 0}.file-size{color:#666!important;font-size:13px!important;font-weight:400!important}.file-list{margin-top:15px;max-height:250px;overflow-y:auto;padding-right:10px;text-align:left}.file-list p:first-child{color:#333!important;font-size:14px!important;font-weight:500;letter-spacing:.5px;margin-bottom:15px!important;text-transform:uppercase}.file-list-item{animation:slideIn .4s ease-out backwards;background:#fafafa;border:1px solid #eee;border-radius:4px;color:#555!important;font-size:14px!important;margin-bottom:8px!important;padding:10px 12px!important;transition:all .3s cubic-bezier(.4,0,.2,1)}.file-list-item:hover{background:#f5f5f5;border-color:#000;box-shadow:-2px 0 0 #000;transform:translateX(4px)}.file-list-item:last-child{margin-bottom:0!important}.upload-hint{color:#666;font-size:14px;margin-bottom:20px;text-align:center}.docx-warning{align-items:center;animation:slideIn .3s ease-out;background:#fffbea;border:2px solid #fb3;border-radius:8px;display:flex;gap:12px;margin:20px 0;padding:16px 20px}.warning-icon{flex-shrink:0;font-size:20px}.docx-warning span:not(.warning-icon){color:#8b6914;font-size:13px;font-weight:500;line-height:1.5}.upload-button{background-color:#000;border:none;border-radius:12px;box-shadow:0 4px 16px #00000026;color:#fff;cursor:pointer;font-size:17px;font-weight:600;letter-spacing:.5px;margin-top:24px;overflow:hidden;padding:20px;position:relative;text-transform:none;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%}.upload-button:before{background:#ffffff26;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .6s ease,height .6s ease;width:0}.upload-button:hover:before{height:400px;width:400px}.upload-button:hover{background-color:#333;box-shadow:0 10px 25px #0003;transform:translateY(-3px)}.upload-button:active{box-shadow:0 5px 15px #0003;transform:translateY(-1px)}.upload-button:disabled{background-color:#ccc;cursor:not-allowed;transform:none}.selected-files{animation:fadeInUp .5s ease-out;margin-top:30px}.selected-files h3{color:#333;font-size:16px;font-weight:500;letter-spacing:.5px;margin-bottom:15px;text-transform:uppercase}.file-list-container{background:#fafafa;border:1px solid #e0e0e0;border-radius:8px;max-height:300px;overflow-y:auto;padding:10px}.file-item{align-items:center;animation:slideIn .3s ease-out;background:#fff;border:1px solid #e0e0e0;border-radius:6px;display:flex;justify-content:space-between;margin-bottom:8px;padding:12px 15px;transition:all .2s ease}.file-item:last-child{margin-bottom:0}.file-item:hover{border-color:#000;box-shadow:0 2px 8px #00000014;transform:translateX(2px)}.file-item-info{display:flex;flex:1 1;flex-direction:column;gap:4px;min-width:0}.file-item-name{color:#333;font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-item-size{color:#666;font-size:12px;font-weight:400}.remove-file-button{align-items:center;background:#0000;border:1px solid #e0e0e0;border-radius:50%;color:#666;cursor:pointer;display:flex;flex-shrink:0;font-size:16px;height:28px;justify-content:center;line-height:1;margin-left:10px;transition:all .2s ease;width:28px}.remove-file-button:hover{background:#000;border-color:#000;color:#fff;transform:rotate(90deg)}.remove-file-button:active{transform:rotate(90deg) scale(.95)}.add-more-button{background:#0000;border:2px dashed #999;border-radius:6px;color:#666;cursor:pointer;display:block;font-size:14px;font-weight:500;letter-spacing:.5px;margin-top:15px;padding:12px;text-align:center;text-transform:uppercase;transition:all .2s ease;width:100%}.add-more-button:hover{background:#00000005;border-color:#000;color:#000;transform:translateY(-1px)}.add-more-button:active{transform:translateY(0)}.exclusion-form-container{animation:fadeInUp .6s ease-out .2s both;margin:0 auto;max-width:700px;width:100%}.exclusion-form-container h2{color:#333;font-size:28px;font-weight:600;letter-spacing:-.5px;margin-bottom:20px;text-align:center}.batch-notice{animation:slideInLeft .5s ease-out;background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-left:4px solid #2196f3;border-radius:0 12px 12px 0;box-shadow:0 2px 12px #2196f326;color:#1565c0;font-size:15px;font-weight:500;margin-bottom:24px;padding:20px}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.helper-section{background:#f9f9f9;border:2px solid #e0e0e0;border-radius:12px;margin-bottom:24px;padding:24px}.instruction-main{color:#333;font-size:16px;line-height:1.6;margin-bottom:12px;text-align:center}.instruction-sub{color:#666;font-size:14px;line-height:1.6;margin-bottom:20px;text-align:center}.examples-box{background:#fff;border:2px dashed #ccc;border-radius:8px;margin-top:16px;padding:16px}.examples-title{color:#333;font-size:15px;font-weight:600;margin-bottom:12px}.examples-list{list-style:none;margin:0;padding-left:0}.examples-list li{color:#555;font-size:14px;line-height:1.5;padding:8px 0}.textarea-label{color:#333;display:block;font-size:15px;font-weight:600;margin-bottom:12px}.exclusion-textarea{background:linear-gradient(135deg,#fff,#fafafa);border:2px solid #e0e0e0;border-radius:14px;font-family:inherit;font-size:15px;line-height:1.6;min-height:180px;padding:18px;resize:vertical;transition:all .4s cubic-bezier(.34,1.56,.64,1);width:100%}.exclusion-textarea:focus{background:#fff;border-color:#000;box-shadow:0 6px 20px #0000001f;outline:none;transform:translateY(-3px)}.exclusion-textarea::placeholder{color:#999;line-height:1.6}.analyze-button{background:linear-gradient(135deg,#000,#1a1a1a);border:none;border-radius:14px;box-shadow:0 4px 16px #00000026;color:#fff;cursor:pointer;font-size:16px;font-weight:600;letter-spacing:.5px;margin-top:20px;overflow:hidden;padding:22px;position:relative;text-transform:none;transition:all .4s cubic-bezier(.34,1.56,.64,1);width:100%}.analyze-button:before{background:#ffffff26;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .6s ease,height .6s ease;width:0}.analyze-button:hover:before{height:400px;width:400px}.analyze-button:hover{background:linear-gradient(135deg,#1a1a1a,#333);box-shadow:0 12px 32px #00000040;transform:translateY(-4px) scale(1.01)}.analyze-button:active{box-shadow:0 6px 20px #0003;transform:translateY(-2px) scale(.99)}.analyze-button:disabled{background:linear-gradient(135deg,#ccc,#bbb);box-shadow:none;cursor:not-allowed;transform:none}.analyze-button:disabled:before{display:none}.cpii-overlay{align-items:center;background:#0000008c;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:2000}.cpii-modal{background:#fff;border-radius:12px;box-shadow:0 24px 64px #00000040;display:flex;flex-direction:column;max-height:90vh;max-width:520px;overflow-y:auto;width:100%}.cpii-header{align-items:center;display:flex;justify-content:space-between;padding:20px 24px 0}.cpii-title{color:#111;font-size:1.25rem;font-weight:700;margin:0}.cpii-close{background:none;border:none;border-radius:4px;color:#666;cursor:pointer;font-size:1.1rem;padding:4px 8px;transition:background .15s}.cpii-close:hover{background:#f0f0f0;color:#111}.cpii-pending-text{align-items:baseline;background:#f5f5f5;border-radius:6px;display:flex;flex-wrap:wrap;font-size:.85rem;gap:8px;margin:12px 24px 0;padding:10px 14px}.cpii-pending-label{color:#555;flex-shrink:0;font-weight:600}.cpii-pending-value{color:#111;font-style:italic}.cpii-intro{color:#555;font-size:.875rem;line-height:1.5;margin:0;padding:12px 24px 0}.cpii-form{gap:16px;padding:16px 24px 24px}.cpii-field,.cpii-form{display:flex;flex-direction:column}.cpii-field{gap:6px}.cpii-label{color:#333;font-size:.8rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.cpii-required{color:#c00;margin-left:2px}.cpii-optional{color:#888;font-size:.78rem;font-weight:400;letter-spacing:0;text-transform:none}.cpii-input,.cpii-textarea{border:1.5px solid #ddd;border-radius:6px;box-sizing:border-box;font-family:inherit;font-size:.95rem;padding:10px 12px;transition:border-color .15s;width:100%}.cpii-input:focus,.cpii-textarea:focus{border-color:#111;outline:none}.cpii-input-error{border-color:#c00!important}.cpii-mono{font-family:Courier New,Courier,monospace;font-size:.875rem}.cpii-textarea{min-height:72px;resize:vertical}.cpii-field-error{color:#c00;font-size:.78rem}.cpii-hint{color:#888;font-size:.78rem}.cpii-test-result{align-items:center;background:#f7f7f7;border-radius:6px;display:flex;flex-wrap:wrap;font-size:.85rem;gap:6px;padding:8px 12px}.cpii-match-count{color:#1a7a1a;font-weight:600}.cpii-match-chip{background:#d4edda;border-radius:4px;color:#155724;font-size:.82rem;padding:2px 7px}.cpii-no-match{color:#888}.cpii-error{background:#fff0f0;border:1px solid #f5c6cb;border-radius:6px;color:#c00;font-size:.875rem;padding:10px 14px}.cpii-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:4px}.cpii-btn-cancel{background:#fff;border:1.5px solid #ccc;border-radius:6px;cursor:pointer;font-size:.9rem;padding:10px 20px;transition:background .15s}.cpii-btn-cancel:hover:not(:disabled){background:#f5f5f5}.cpii-btn-save{background:#111;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 22px;transition:background .15s}.cpii-btn-save:hover:not(:disabled){background:#333}.cpii-btn-cancel:disabled,.cpii-btn-save:disabled{cursor:not-allowed;opacity:.5}.pdf-viewer-container{margin:0 auto;max-width:1200px;padding-bottom:120px;width:100%}.viewer-header{align-items:center;border-bottom:1px solid #eee;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:30px;padding-bottom:20px}.viewer-header h2{color:#333;font-size:26px;font-weight:600;letter-spacing:-.5px;margin:0}.viewer-controls{display:flex;flex-wrap:wrap;gap:10px}.viewer-controls-wrapper{align-items:flex-end;display:flex;flex:1 1;flex-direction:column;gap:15px}.remove-button{background-color:#000;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;letter-spacing:.5px;padding:12px 24px;text-transform:uppercase;transition:all .3s ease}.remove-button:hover{background-color:#333;box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.download-button{background-color:#000;border:none;border-radius:12px;box-shadow:0 4px 16px #00000026;color:#fff;cursor:pointer;font-size:16px;font-weight:600;letter-spacing:.5px;padding:16px 28px;text-transform:none;transition:all .3s ease}.download-button:hover{background-color:#333;box-shadow:0 6px 20px #0003;transform:translateY(-2px)}.download-button:active{transform:translateY(0)}.batch-navigation{align-items:center;display:flex;gap:20px}.file-counter{color:#666;font-size:14px;font-weight:300;min-width:120px;text-align:center}.nav-button{background-color:#000;border:2px solid #000;color:#fff;cursor:pointer;font-size:13px;font-weight:300;letter-spacing:.5px;padding:12px 24px;text-transform:uppercase;transition:all .3s ease}.nav-button:hover:not(:disabled){background-color:#333;box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.nav-button:active:not(:disabled){transform:translateY(0)}.nav-button:disabled{background-color:#e0e0e0;border-color:#e0e0e0;color:#999;opacity:.5}.next-button,.prev-button{min-width:120px}.batch-navigation-footer{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(90deg,#f8f9fa00 0,#f8f9fa4d 5%,#f8f9faf2 15%,#f8f9fa 20%,#f8f9fa 80%,#f8f9faf2 85%,#f8f9fa4d 95%,#f8f9fa00),linear-gradient(180deg,#0000,#f8f9fa);border-image:linear-gradient(90deg,#e0e0e000 0,#e0e0e04d 5%,#e0e0e0 15%,#e0e0e0 85%,#e0e0e04d 95%,#e0e0e000) 1;border-top:2px solid #0000;bottom:0;display:flex;gap:30px;justify-content:center;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);margin-top:40px;padding:30px 20px;position:-webkit-sticky;position:sticky;width:100vw;z-index:10}.batch-navigation-footer .nav-button{font-size:14px;font-weight:500;min-width:180px;padding:14px 28px}.batch-navigation-footer .file-counter{color:#333;font-size:16px;font-weight:400;min-width:150px;padding:0 20px}.info-box{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-left:4px solid #2196f3;border-radius:0 12px 12px 0;box-shadow:0 2px 12px #2196f326;margin-bottom:30px;padding:20px 24px}.info-title{color:#1565c0;font-size:16px;font-weight:600;margin-bottom:14px}.info-row{color:#1565c0;font-size:14px;line-height:1.6;margin:10px 0}.info-row strong{color:#0d47a1}.redaction-count{border-top:2px solid #2196f34d;color:#0d47a1;font-size:15px;font-weight:600;margin-top:16px!important;padding-top:12px}.pages-container{gap:40px}.page-wrapper,.pages-container{align-items:center;display:flex;flex-direction:column}.page-wrapper{background-color:#fff;border:1px solid #eee;border-radius:0;box-shadow:0 2px 8px #0000000d;padding:30px}.page-number{color:#666;font-size:12px;font-weight:500;letter-spacing:1px;margin-bottom:20px;text-transform:uppercase}.canvas-container{display:inline-block;position:relative}.textLayer{bottom:0;left:0;line-height:1;opacity:0;overflow:hidden;pointer-events:auto;position:absolute;right:0;top:0;transition:opacity .1s ease;-webkit-user-select:text;user-select:text}.textLayer:active,.textLayer:focus-within{opacity:.15}.textLayer>span{color:#0000;cursor:text;position:absolute;transform-origin:0 0;white-space:pre}.textLayer ::selection{background:#ffeb3bcc!important;color:#000000e6!important;text-shadow:0 0 2px #ffeb3bcc}.textLayer ::-moz-selection{background:#ffeb3bcc!important;color:#000000e6!important;text-shadow:0 0 2px #ffeb3bcc}.pdf-canvas{background:#fff;border:1px solid #ddd;box-shadow:0 2px 8px #0000000d;cursor:pointer;transition:box-shadow .2s ease}.pdf-canvas:hover{box-shadow:0 4px 12px #0000001a}.redaction-popup{animation:popupFadeIn .15s ease-out;background:#fff;border:2px solid #000;border-radius:0;box-shadow:0 4px 16px #0003;min-width:250px;padding:0}@keyframes popupFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.popup-content{padding:16px}.popup-text{margin-bottom:12px}.popup-text strong{color:#666;display:block;font-size:10px;font-weight:500;letter-spacing:1px;margin-bottom:6px;text-transform:uppercase}.popup-value{background:#f9f9f9;border-radius:0;color:#333;font-family:monospace;font-size:14px;padding:8px;word-break:break-word}.popup-remove-btn{background:#000;border-radius:0;font-size:12px;letter-spacing:1px;padding:10px;text-transform:uppercase;transition:background .2s ease;width:100%}.popup-remove-btn:hover{background:#333}@media (max-width:768px){.viewer-header{align-items:flex-start;flex-direction:column}.download-button,.remove-button,.viewer-controls{width:100%}}.popup-remove-btn{background-color:#f44336;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:background-color .2s;white-space:nowrap}.popup-remove-btn:hover{background-color:#d32f2f}.add-redaction-menu{animation:menuFadeIn .2s ease;background:#fff;border:2px solid #333;border-radius:12px;box-shadow:0 6px 24px #0003;display:flex;flex-direction:column;max-height:min(500px,calc(100vh - 60px));max-width:300px;min-width:240px;overflow:hidden;padding:0}@keyframes menuFadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.menu-header{background:linear-gradient(135deg,#000,#1a1a1a);color:#fff;font-size:15px;font-weight:600;letter-spacing:.3px;padding:14px 18px;text-transform:none}.menu-subtitle{background-color:#f9f9f9;border-bottom:2px solid #e0e0e0;color:#666;font-size:13px;font-style:italic;overflow:hidden;padding:10px 18px;text-overflow:ellipsis;white-space:nowrap}.menu-label{background-color:#fafafa;border-bottom:1px solid #e0e0e0;color:#666;font-size:13px;font-weight:500;padding:12px 18px 8px}.entity-type-list{flex:1 1 auto;max-height:350px;min-height:80px;overflow-y:auto;overscroll-behavior:contain;padding:6px 0}.entity-type-btn{background:#fff;border:none;border-bottom:1px solid #f5f5f5;color:#333;cursor:pointer;font-size:14px;font-weight:500;padding:12px 18px;text-align:left;transition:all .2s ease;width:100%}.entity-type-btn:last-child{border-bottom:none}.entity-type-btn:hover{background-color:#000;color:#fff;padding-left:20px}.entity-type-btn:active{background-color:#333}.entity-type-divider{border-top:1px solid #eee;color:#888;font-size:11px;font-weight:700;letter-spacing:.08em;margin-top:4px;padding:8px 18px 4px;text-transform:uppercase}.entity-type-btn--custom{color:#006060}.entity-type-btn--custom:hover{background-color:#006060;color:#fff}.entity-global-badge{color:inherit;font-size:11px;margin-left:6px;opacity:.7}.entity-type-btn--define{background:#fafafa;border-top:1px dashed #bbb;color:#555;font-style:italic}.entity-type-btn--define:hover{background-color:#222;color:#fff;font-style:normal}.pdf-canvas{user-select:text;-webkit-user-select:text;-moz-user-select:text}.draw-overlay-canvas{background:#0000;left:0;position:absolute;top:0}.mode-toggle-bar{display:flex;gap:8px;margin-bottom:14px}.mode-toggle-btn{background:#0000;border:2px solid #1565c0;border-radius:20px;color:#1565c0;cursor:pointer;font-size:13px;font-weight:600;letter-spacing:.3px;padding:8px 16px;transition:all .2s ease}.mode-toggle-btn:hover{background:#1565c01a}.mode-toggle-btn.active{background:#1565c0;color:#fff}.image-page-notice{background:#1565c01f;border:1px solid #1565c066;border-radius:6px;color:#0d47a1;font-size:13px;line-height:1.5;margin-bottom:12px;padding:8px 12px}.confirmation-checkbox{background-color:#f8f9fa;border:2px solid #dee2e6;border-radius:6px;margin:0;padding:12px;width:100%}.confirmation-checkbox label{align-items:center;color:#495057;font-size:14px;font-weight:500;gap:10px;margin:0}.confirmation-checkbox span{flex:1 1;line-height:1.5}.download-button:disabled{background-color:#ccc;cursor:not-allowed;opacity:.6}.download-button:disabled:hover{box-shadow:none;transform:none}.nav-button:disabled{background-color:#ccc;cursor:not-allowed;opacity:.6}.nav-button:disabled:hover{box-shadow:none;transform:none}.batch-navigation-sticky-bar{background:linear-gradient(0deg,#000,#1a1a1a);border-top:1px solid #ffffff1a;bottom:0;box-shadow:0 -4px 24px #0006;left:0;padding:20px 30px;position:fixed;right:0;z-index:1000}.batch-nav-content{align-items:center;display:flex;gap:30px;justify-content:space-between;margin:0 auto;max-width:1200px}.batch-nav-info{color:#fff;display:flex;flex:0 0 auto;flex-direction:column;gap:5px}.file-counter{color:#fff;font-size:18px;font-weight:700;letter-spacing:.5px}.batch-nav-filename{color:#fff9;font-size:13px;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.batch-nav-actions{align-items:center;display:flex;flex:1 1;gap:12px;justify-content:flex-end}.batch-nav-button{align-items:center;background:#ffffff0d;border:2px solid #fff3;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:15px;font-weight:600;gap:8px;letter-spacing:.3px;padding:12px 24px;transition:all .3s ease;white-space:nowrap}.batch-nav-button .button-icon{font-size:18px;font-weight:700}.batch-nav-button:hover:not(:disabled){background:#ffffff26;border-color:#fff6;box-shadow:0 4px 16px #ffffff1a;transform:translateY(-2px)}.batch-nav-button.prev-button:hover:not(:disabled){transform:translateX(-3px) translateY(-2px)}.batch-nav-button.next-button:hover:not(:disabled){transform:translateX(3px) translateY(-2px)}.batch-nav-button.complete-button{background:#fff;border-color:#fff;color:#000;font-weight:700;padding:12px 32px}.batch-nav-button.complete-button:hover:not(:disabled){background:#f0f0f0;box-shadow:0 6px 24px #ffffff4d;transform:translateY(-2px)}.batch-nav-button:disabled{cursor:not-allowed;opacity:.3;transform:none!important}.batch-nav-button:active:not(:disabled){transform:scale(.98)}@media (max-width:968px){.batch-navigation-sticky-bar{padding:15px 20px}.batch-nav-content{flex-direction:column;gap:15px}.batch-nav-info{text-align:center;width:100%}.batch-nav-filename{max-width:100%}.batch-nav-actions{flex-wrap:wrap;justify-content:center;width:100%}.batch-nav-button{flex:1 1;justify-content:center;min-width:120px}.batch-nav-button.complete-button{flex:1 1 100%;order:3}}@media (max-width:640px){.batch-nav-button .button-text{display:none}.batch-nav-button{min-width:auto;padding:12px 16px}.batch-nav-button .button-icon{font-size:20px}.batch-nav-button.complete-button .button-text{display:inline}}.App{background:linear-gradient(135deg,#fafafa,#fff 50%,#f5f5f5);min-height:100vh;padding-bottom:50px}.container{margin:0 auto;max-width:1200px;padding:0 20px}.app-header{background:linear-gradient(135deg,#000,#1a1a1a);box-shadow:0 4px 20px #00000026;cursor:pointer;margin-bottom:60px;overflow:hidden;padding:40px 20px;position:relative;transition:transform .2s ease,box-shadow .2s ease}.header-content{position:relative;text-align:center;z-index:1}.user-menu{align-items:center;display:flex;gap:15px;position:absolute;right:20px;top:50%;transform:translateY(-50%);z-index:2}.legal-notice-button{align-items:center;background:#ffffff1a;border:2px solid #ffffff4d;border-radius:50px;box-sizing:border-box;color:#fff;cursor:pointer;display:flex;gap:8px;height:52px;padding:8px 15px 8px 8px;transition:all .3s ease}.legal-notice-button:hover{background:#fff3;border-color:#ffffff80;box-shadow:0 6px 20px #0000004d;transform:translateY(-2px)}.legal-icon{align-items:center;background:#fff;border-radius:50%;color:#000;display:flex;flex-shrink:0;font-size:18px;font-weight:600;height:36px;justify-content:center;width:36px}.legal-text{color:#fff;font-size:14px;font-weight:600;white-space:nowrap}.tutorial-button{align-items:center;background:#ffffff1a;border:2px solid #ffffff4d;border-radius:50px;box-sizing:border-box;color:#fff;cursor:pointer;display:flex;gap:8px;height:52px;padding:8px 15px 8px 8px;transition:all .3s ease}.tutorial-button:hover{background:#fff3;border-color:#ffffff80;box-shadow:0 6px 20px #0000004d;transform:translateY(-2px)}.tutorial-icon{align-items:center;background:#fff;border-radius:50%;color:#000;display:flex;flex-shrink:0;font-size:20px;font-weight:700;height:36px;justify-content:center;width:36px}.tutorial-text{color:#fff;font-size:14px;font-weight:600;white-space:nowrap}.user-button{align-items:center;background:#ffffff1a;border:2px solid #ffffff4d;border-radius:50px;box-sizing:border-box;color:#fff;cursor:pointer;display:flex;gap:10px;height:52px;padding:8px 15px 8px 8px;transition:all .3s ease}.user-button:hover{background:#fff3;border-color:#ffffff80;box-shadow:0 6px 20px #0000004d;transform:translateY(-2px)}.user-avatar{align-items:center;background:#fff;border:2px solid #0000001a;border-radius:50%;color:#000;display:flex;font-size:16px;font-weight:600;height:36px;justify-content:center;width:36px}.user-info{align-items:flex-start;display:flex;flex-direction:column;gap:2px}.username{color:#fff;font-size:14px;font-weight:600}.credits{color:#ffffffb3;font-size:12px}.user-dropdown{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;min-width:150px;overflow:hidden;position:absolute;right:0;top:calc(100% + 10px);z-index:1000}.dropdown-item{color:#333;cursor:pointer;font-size:14px;font-weight:500;padding:12px 20px;transition:background-color .2s ease}.dropdown-item:hover{background-color:#f5f5f5}.app-header:hover{box-shadow:0 6px 25px #0003;transform:translateY(-2px)}.app-header:before{animation:shimmer 12s infinite;background:linear-gradient(90deg,#0000,#ffffff0d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;width:100%}@keyframes shimmer{0%{left:-100%}to{left:100%}}.app-header h1{color:#fff;font-size:2rem;font-weight:300;letter-spacing:2px;margin-bottom:8px;text-transform:uppercase}.tagline{color:#999;font-size:.9rem;font-weight:300;letter-spacing:1px}.loading-overlay{align-items:center;animation:fadeIn .2s ease-in;background:#000000f2;bottom:0;color:#fff;display:flex;flex-direction:column;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.spinner{animation:spin .8s linear infinite;border:2px solid #ffffff1a;border-radius:50%;border-top-color:#fff;height:40px;margin-bottom:20px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-overlay p{font-weight:300;letter-spacing:1px}.processing-label{font-size:16px;margin-bottom:16px}.batch-progress-container{text-align:center;width:300px}.batch-progress-bar{background:#fff3;border-radius:4px;height:8px;margin-bottom:10px;overflow:hidden;width:100%}.batch-progress-fill{background:#4fc3f7;border-radius:4px;height:100%;transition:width .3s ease}.batch-progress-text{color:#fffc;font-size:14px;margin:0}.legal-notice-blocker{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0006;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:999}.blocker-message{animation:slideIn .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 10px 40px #0000004d;max-width:500px;padding:40px;text-align:center}.blocker-message h2{color:#06c;font-size:28px;margin-bottom:15px}.blocker-message p{color:#555;font-size:16px;line-height:1.6}.error-banner{align-items:center;animation:slideDown .3s ease-out;background:#000;border-radius:0;color:#fff;display:flex;justify-content:space-between;margin:20px auto;max-width:800px;padding:15px 20px}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.error-banner p{font-weight:300;margin:0}.error-banner button{background:#0000;border:1px solid #fff;color:#fff;cursor:pointer;font-size:12px;letter-spacing:1px;padding:5px 15px;text-transform:uppercase;transition:all .2s}.error-banner button:hover{background:#fff;color:#000}.progress-bar{animation:fadeInUp .6s ease-out;flex-direction:row;gap:20px;justify-content:center;margin:40px auto 60px;max-width:600px;padding:20px}.progress-bar,.progress-step{align-items:center;display:flex}.progress-step{flex-direction:column;flex-shrink:0;position:relative;transition:transform .3s ease}.progress-step:hover{transform:translateY(-2px)}.step-number{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:14px;box-shadow:0 2px 8px #0000000a;color:#999;display:flex;font-size:15px;font-weight:400;height:42px;justify-content:center;overflow:hidden;position:relative;transition:all .5s cubic-bezier(.34,1.56,.64,1);width:42px}.step-number:before{background:#0000000d;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .4s ease,height .4s ease;width:0}.progress-step:hover .step-number:before{height:100%;width:100%}.progress-step.active .step-number{background:#000;border-color:#000;box-shadow:0 6px 20px #0003;color:#fff;transform:scale(1.15)}.step-label{color:#999;font-size:11px;font-weight:300;letter-spacing:1px;margin-top:8px;opacity:.8;text-transform:uppercase;transition:all .3s ease}.progress-step:hover .step-label{opacity:1;transform:translateY(-1px)}.progress-step.active .step-label{color:#000;font-weight:400;opacity:1}.progress-line{background:linear-gradient(90deg,#f0f0f0,#e0e0e0);border-radius:2px;flex-shrink:0;height:3px;margin:0 10px;overflow:hidden;position:relative;width:80px}.progress-line:before{background:#000;content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .6s cubic-bezier(.4,0,.2,1);width:100%}.progress-line.active:before{left:0}.batch-info{background:linear-gradient(135deg,#000,#1a1a1a);border-radius:16px;box-shadow:0 8px 24px #0000001f;margin:20px auto;max-width:800px;padding:20px 30px;text-align:center;transition:all .3s ease}.batch-info:hover{box-shadow:0 12px 32px #00000029;transform:translateY(-2px)}.batch-info p{color:#fff;font-size:.9rem;font-weight:300;letter-spacing:.5px;margin:0}.batch-exclusions{color:#ccc!important;font-size:.8rem!important;font-weight:300!important;margin-top:8px!important}.batch-complete{background:#fff;border:2px solid #000;border-radius:20px;box-shadow:0 10px 40px #00000014;margin:60px auto;max-width:600px;padding:60px 40px;text-align:center;transition:all .4s ease}.batch-complete:hover{box-shadow:0 15px 50px #0000001f}.batch-complete h2{color:#000;font-size:1.8rem;font-weight:300;letter-spacing:2px;margin-bottom:20px;text-transform:uppercase}.batch-complete p{color:#666;font-size:1rem;font-weight:300;line-height:1.8;margin:10px 0}.credit-info{background:#f8f8f8;border:2px solid #e0e0e0;border-radius:8px;margin:30px 0;padding:25px 30px;text-align:left}.credit-info>div{align-items:center;color:#333;display:flex;font-size:15px;justify-content:space-between;padding:10px 0}.credit-info>div:not(:last-child){border-bottom:1px solid #e0e0e0}.credit-cost{color:#000}.credit-balance{color:#444}.credit-remaining{color:#000;font-size:16px;font-weight:500}.credit-remaining strong{color:#000}.confirmation-checkbox{background:#fff9e6;border:2px solid #ffc107;border-radius:8px;margin:24px 0;padding:20px}.confirmation-checkbox label{align-items:flex-start;cursor:pointer;display:flex;gap:12px}.confirmation-checkbox input[type=checkbox]{cursor:pointer;flex-shrink:0;height:20px;margin-top:4px;width:20px}.confirmation-checkbox span{color:#856404;font-size:15px;font-weight:500;line-height:1.6}.download-batch-button{background:#000;border:none;border-radius:0;color:#fff;cursor:pointer;display:block;font-size:13px;font-weight:300;letter-spacing:2px;margin:30px auto 20px;overflow:hidden;padding:15px 40px;position:relative;text-transform:uppercase;transition:all .3s}.download-batch-button:before{background:#ffffff1a;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s;width:0}.download-batch-button:hover:before{height:300px;width:300px}.download-batch-button:hover{box-shadow:0 6px 20px #0000004d;transform:translateY(-2px)}.download-batch-button:disabled{background:#ccc;box-shadow:none;color:#888;cursor:not-allowed;transform:none}.download-batch-button:disabled:before{display:none}.download-batch-button:disabled:hover{box-shadow:none;transform:none}.back-button{background:#0000;border:1px solid #e0e0e0;border-radius:0;color:#666;cursor:pointer;display:block;font-size:12px;font-weight:300;letter-spacing:1px;margin:20px auto;padding:10px 20px;text-transform:uppercase;transition:all .2s}.back-button:hover{border-color:#000;color:#000}@media (max-width:768px){.app-header h1{font-size:1.5rem}.user-menu{gap:10px;right:10px}.legal-notice-button{padding:6px 12px}.legal-text{display:none}.legal-icon{font-size:18px}.user-button{padding:6px 12px 6px 6px}.user-avatar{font-size:14px;height:32px;width:32px}.user-info{display:none}.progress-bar{flex-direction:column;gap:15px}.progress-line{height:40px;width:2px}.progress-line:before{height:100%;left:0;top:-100%;width:100%}.progress-line.active:before{top:0}}.success-screen{animation:slideUp .5s ease-out;background:#fff;border:1px solid #e0e0e0;border-radius:0;margin:40px auto;max-width:600px;padding:60px 40px;text-align:center}.success-icon{animation:scaleIn .5s ease-out .2s both;display:inline-flex;font-weight:300;margin-bottom:30px}.success-screen h2{color:#000;font-size:1.8rem;font-weight:300;letter-spacing:1px;margin-bottom:20px;text-transform:uppercase}.success-screen p{color:#666;font-size:1rem;font-weight:300;line-height:1.6;margin-bottom:15px}.success-subtext{color:#999!important;font-size:.9rem!important;margin-bottom:30px!important}.security-reminder{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border:2px solid #81c784;border-radius:10px;box-shadow:0 2px 8px #2e7d321a;color:#2e7d32;font-size:15px;font-weight:600;margin:24px 0;padding:16px 24px}.primary-button{background:#000;border:2px solid #000;border-radius:12px;box-shadow:0 4px 16px #00000026;color:#fff;cursor:pointer;font-size:16px;font-weight:600;letter-spacing:.5px;margin-top:20px;padding:16px 44px;text-transform:none;transition:all .3s}.primary-button:hover{background:#333;border-color:#333;box-shadow:0 6px 20px #0003;color:#fff;transform:translateY(-2px)}.login-container{align-items:center;background:linear-gradient(135deg,#fafafa,#fff 50%,#f5f5f5);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-box{animation:fadeInUp .5s ease-out;background:#fff;border:3px solid #000;border-radius:2px;box-shadow:0 10px 40px #00000026;max-width:440px;padding:50px 45px;width:100%}.login-box h2{color:#000;font-size:26px;font-weight:300;letter-spacing:1px;margin:0 0 10px;text-align:center;text-transform:uppercase}.login-subtitle{color:#666;letter-spacing:.5px;margin:0 0 35px;text-align:center}.login-button,.login-subtitle{font-size:13px;font-weight:400}.login-button{background:#000;border:2px solid #000;border-radius:2px;color:#fff;cursor:pointer;letter-spacing:1.5px;margin-top:10px;padding:15px;text-transform:uppercase;transition:all .25s ease;width:100%}.login-button:hover:not(:disabled){background:#fff;box-shadow:0 4px 12px #00000026;color:#000;transform:translateY(-1px)}.login-button:disabled{background:#e8e8e8;border-color:#d0d0d0;color:#aaa;cursor:not-allowed;transform:none}.login-footer{border-top:1px solid #e0e0e0;margin-top:30px;padding-top:25px;text-align:center}.login-footer p{color:#666;font-size:13px;font-weight:400;margin:0}.register-container{align-items:center;background:linear-gradient(135deg,#fafafa,#fff 50%,#f5f5f5);display:flex;justify-content:center;min-height:100vh;padding:20px}.register-box{animation:fadeInUp .5s ease-out;background:#fff;border:3px solid #000;border-radius:2px;box-shadow:0 10px 40px #00000026;max-width:440px;padding:50px 45px;width:100%}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.register-box h2{color:#000;font-size:26px;font-weight:300;letter-spacing:1px;margin:0 0 10px;text-align:center;text-transform:uppercase}.register-subtitle{color:#666;font-size:13px;font-weight:400;letter-spacing:.5px;margin:0 0 35px;text-align:center}.error-message{margin-bottom:25px}.register-button{background:#000;border:2px solid #000;border-radius:2px;color:#fff;cursor:pointer;font-size:13px;font-weight:400;letter-spacing:1.5px;margin-top:10px;padding:15px;text-transform:uppercase;transition:all .25s ease;width:100%}.register-button:hover:not(:disabled){background:#fff;box-shadow:0 4px 12px #00000026;color:#000;transform:translateY(-1px)}.register-button:disabled{background:#e8e8e8;border-color:#d0d0d0;color:#aaa;cursor:not-allowed;transform:none}.register-footer{border-top:1px solid #e0e0e0;margin-top:30px;padding-top:25px;text-align:center}.register-footer p{color:#666;font-size:13px;font-weight:400;margin:0}.link-button{background:none;border:none;color:#000;cursor:pointer;font-size:13px;font-weight:600;padding:0;text-decoration:underline;transition:color .2s ease}.link-button:hover{color:#333}.purchase-modal-overlay{align-items:center;animation:fadeIn .2s ease-out;background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1001}.purchase-modal{animation:slideUp .3s ease-out;background:#fff;border:3px solid #000;border-radius:2px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:500px;overflow-y:auto;padding:40px;position:relative;width:90%}.close-button{background:none;font-size:32px;line-height:1;right:15px;top:15px}.close-button:hover{color:#000}.purchase-modal h2{border-bottom:2px solid #000;color:#000;font-size:24px;font-weight:300;letter-spacing:2px;margin:0 0 20px;padding-bottom:15px;text-transform:uppercase}.current-balance{align-items:center;background:#f8f8f8;border:2px solid #e0e0e0;border-radius:4px;display:flex;font-size:15px;justify-content:space-between;margin-bottom:30px;padding:15px 20px}.current-balance span{color:#666;font-size:12px;font-weight:400;letter-spacing:1px;text-transform:uppercase}.current-balance strong{color:#000;font-size:18px;font-weight:600}.form-group{margin-bottom:25px}.form-group input{border:2px solid #e0e0e0;font-size:16px;font-weight:500}.form-group input:focus{box-shadow:0 2px 8px #0000001a}.form-group input:disabled{border-color:#d0d0d0}.suggested-amounts{margin-bottom:25px}.suggested-amounts>p{color:#666;font-size:12px;font-weight:400;letter-spacing:1px;margin:0 0 12px;text-transform:uppercase}.amount-buttons{display:flex;flex-wrap:wrap;gap:10px}.amount-button{background:#fff;border:2px solid #e0e0e0;border-radius:2px;color:#333;cursor:pointer;flex:1 1;font-size:14px;font-weight:600;min-width:60px;padding:12px 16px;transition:all .2s ease}.amount-button:hover:not(:disabled){background:#000;border-color:#000;color:#fff;transform:translateY(-2px)}.amount-button:disabled{cursor:not-allowed;opacity:.5}.error-message{border:2px solid #000;padding:14px}.purchase-button{background:#000;border:2px solid #000;border-radius:2px;color:#fff;cursor:pointer;font-size:13px;font-weight:400;letter-spacing:1.5px;margin-bottom:20px;padding:16px;text-transform:uppercase;transition:all .25s ease;width:100%}.purchase-button:hover:not(:disabled){background:#fff;box-shadow:0 4px 12px #00000026;color:#000;transform:translateY(-2px)}.purchase-button:disabled{background:#ccc;border-color:#ccc;color:#888;cursor:not-allowed;transform:none}.purchase-note{background:#fffbea;border:1px solid #f0e5a5;border-radius:4px;margin-top:20px;padding:15px}.purchase-note p{color:#666;font-size:13px;line-height:1.6;margin:0}.purchase-note strong{color:#000;font-weight:600}.success-message{padding:40px 20px}.success-icon{align-items:center;animation:successPop .5s ease-out;background:#000;border-radius:50%;color:#fff;display:flex;font-size:48px;height:80px;justify-content:center;margin:0 auto 20px;width:80px}@keyframes successPop{0%{transform:scale(0)}50%{transform:scale(1.1)}to{transform:scale(1)}}.success-message p{color:#000;font-size:18px;font-weight:400;letter-spacing:1px;text-transform:uppercase}@media (max-width:768px){.purchase-modal{padding:30px 20px}.amount-buttons{gap:8px}.amount-button{font-size:13px;min-width:50px;padding:10px 12px}}.audit-logs-overlay{align-items:center;animation:fadeIn .2s ease-out;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.audit-logs-container{animation:slideUp .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000004d;max-height:90vh;max-width:1400px;overflow-y:auto;padding:30px;position:relative;width:95%}.audit-logs-header{margin-bottom:30px}.audit-logs-header h2{align-items:center;color:#2c3e50;display:flex;font-size:28px;gap:10px;margin:0 0 10px}.audit-logs-header .subtitle{color:#7f8c8d;font-size:14px;margin:0}.audit-logs-controls{align-items:center;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:25px}.logs-summary{color:#2c3e50;font-size:16px;font-weight:600}.export-button{align-items:center;background:#27ae60;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:10px 24px;transition:all .2s}.export-button:hover{background:#229954;box-shadow:0 4px 12px #27ae604d;transform:translateY(-1px)}.export-button:active{transform:translateY(0)}.logs-table-container{border:1px solid #e0e0e0;border-radius:8px;margin-bottom:20px;overflow-x:auto}.logs-table{background:#fff;border-collapse:collapse;width:100%}.logs-table thead{background:#f8f9fa;position:-webkit-sticky;position:sticky;top:0;z-index:10}.logs-table th{border-bottom:2px solid #e0e0e0;color:#2c3e50;font-weight:600;padding:15px;text-align:left;white-space:nowrap}.logs-table td{border-bottom:1px solid #f0f0f0;color:#34495e;padding:15px;text-align:left}.logs-table tbody tr{transition:background-color .2s}.logs-table tbody tr:hover{background-color:#f8f9fa}.logs-table tbody tr.expanded{background-color:#e8f4f8}.date-cell{color:#2c3e50;font-weight:500;white-space:nowrap}.type-badge{border-radius:20px;display:inline-block;font-size:12px;font-weight:600;padding:5px 12px;white-space:nowrap}.type-badge.batch{background:#e3f2fd;color:#1976d2}.type-badge.single{background:#f3e5f5;color:#7b1fa2}.type-badge.upload{background:#e3f2fd;color:#1976d2}.type-badge.analyze{background:#f3e5f5;color:#7b1fa2}.type-badge.confirm_review{background:#e8f5e9;color:#388e3c}.type-badge.download{background:#fff3e0;color:#f57c00}.type-badge.default{background:#f5f5f5;color:#616161}.batch-info{background:#0000;border:none;color:#2c3e50;display:inline-block;font-weight:500;padding:0}.batch-info strong{color:#1976d2;font-weight:600}.id-cell code{background:#f5f5f5;border-radius:4px;color:#666;font-family:Courier New,monospace;font-size:12px;padding:4px 8px}.responsibility-cell{text-align:left}.loading-text{color:#95a5a6;font-size:12px;font-style:italic}.credits-cell{text-align:left}.credits-badge{background:#fff3e0;border-radius:4px;color:#f57c00;display:inline-block;font-size:13px;font-weight:600;padding:4px 10px}.expand-batch-btn{padding:6px 12px}.actions-cell{padding-right:15px;text-align:right}.action-buttons{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.audit-report-btn{background:#f3e5f5;border:1px solid #ce93d8;border-radius:4px;color:#7b1fa2;cursor:pointer;font-size:13px;font-weight:500;padding:6px 12px;transition:all .2s ease;white-space:nowrap}.audit-report-btn:hover{background:#e1bee7;border-color:#ab47bc}.expand-batch-btn{background:#e3f2fd;border:1px solid #90caf9;border-radius:4px;color:#1976d2;cursor:pointer;font-size:13px;font-weight:500;padding:6px 10px;transition:all .2s ease;white-space:nowrap}.expand-batch-btn:hover{background:#bbdefb;border-color:#64b5f6}.batch-file-row{background:#f8fbff;border-left:3px solid #90caf9}.batch-file-row td{color:#546e7a;font-size:13px;padding:10px 15px}.batch-file-row .type-badge.file{background:#e8f4f8;color:#0277bd;font-size:12px;padding:3px 8px}.batch-file-row .filename-cell.indent{padding-left:40px}.batch-file-row .file-icon{color:#90a4ae;font-family:monospace;margin-right:8px}.details-row,.details-row:hover{background:#f8fbfd!important}.download-details{background:#fff;border-left:4px solid #3498db;border-radius:8px;margin:10px 0;padding:25px}.details-header{align-items:center;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:20px}.details-header h4{color:#2c3e50;font-size:18px;font-weight:600;margin:0}.detail-badges{display:flex;flex-wrap:wrap;gap:10px}.status-badge{border-radius:20px;font-size:12px;font-weight:600;padding:6px 12px;white-space:nowrap}.status-badge.confirmed{background:#e8f5e9;color:#388e3c}.status-badge.not-confirmed{background:#ffebee;color:#d32f2f}.status-badge.info{background:#e3f2fd;color:#1976d2}.details-grid{grid-gap:20px;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:25px;padding:20px}.detail-item{display:flex;flex-direction:column;gap:5px}.detail-item strong{color:#7f8c8d;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.detail-item code,.detail-item span{color:#2c3e50;font-size:14px;font-weight:500}.detail-item code{background:#fff;border:1px solid #e0e0e0;border-radius:4px;font-family:Courier New,monospace;font-size:12px;padding:6px 10px}.timeline-section{margin-top:25px}.timeline-section h5{color:#2c3e50;font-size:15px;font-weight:600;letter-spacing:.5px;margin:0 0 20px;text-transform:uppercase}.filename-cell{font-weight:500;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.details-cell{color:#7f8c8d;font-size:14px}.confirmed,.details-cell .confirmed{color:#27ae60;font-weight:600}.not-confirmed{color:#e74c3c;font-weight:600}.view-session-btn{background:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;padding:6px 12px;transition:all .2s;white-space:nowrap}.view-session-btn:hover{background:#2980b9;box-shadow:0 2px 8px #3498db4d;transform:translateY(-1px)}.session-details-row,.session-details-row:hover{background:#f8fbfd!important}.session-details{border-left:4px solid #3498db;margin:10px 0;padding:20px}.session-details h4{color:#2c3e50;font-size:16px;margin:0 0 15px}.session-info{grid-gap:15px;background:#fff;border:1px solid #e0e0e0;border-radius:6px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:20px;padding:15px}.info-item{font-size:14px}.info-item strong{color:#7f8c8d;display:block;font-size:12px;letter-spacing:.5px;margin-bottom:5px;text-transform:uppercase}.info-item .confirmed{color:#27ae60;font-weight:600}.info-item .not-confirmed{color:#e74c3c;font-weight:600}.timeline{padding-left:30px;position:relative}.timeline:before{background:#e0e0e0;bottom:20px;content:"";left:11px;position:absolute;top:20px;width:2px}.timeline-event{display:flex;gap:15px;margin-bottom:25px;position:relative}.timeline-event:last-child{margin-bottom:0}.timeline-marker{align-items:center;display:flex;flex-shrink:0;height:24px;justify-content:center;position:relative;width:24px}.marker-dot{background:#fff;border:3px solid;border-radius:50%;box-shadow:0 0 0 3px #fff;height:14px;width:14px}.marker-dot.upload{background:#e3f2fd;border-color:#1976d2}.marker-dot.analyze{background:#f3e5f5;border-color:#7b1fa2}.marker-dot.confirm_review{background:#e8f5e9;border-color:#388e3c}.marker-dot.download{background:#fff3e0;border-color:#f57c00}.timeline-content{background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 1px 3px #0000000d;flex:1 1;padding:15px 18px}.timeline-header{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-bottom:12px}.action-badge{border-radius:4px;display:inline-block;font-size:12px;font-weight:600;padding:5px 12px;white-space:nowrap}.action-badge.upload{background:#e3f2fd;color:#1976d2}.action-badge.analyze{background:#f3e5f5;color:#7b1fa2}.action-badge.confirm_review{background:#e8f5e9;color:#388e3c}.action-badge.download{background:#fff3e0;color:#f57c00}.timeline-time{color:#95a5a6;font-size:12px;font-weight:500}.timeline-details{color:#7f8c8d;font-size:14px;line-height:1.6}.timeline-details>div{margin-bottom:6px}.timeline-details>div:last-child{margin-bottom:0}.timeline-details strong{color:#2c3e50;font-weight:600}.confirmation-notice{background:#e8f5e9;border-left:3px solid #27ae60;border-radius:4px;color:#27ae60;font-weight:500;padding:8px 12px}.entity-types{color:#95a5a6;font-size:13px;font-style:italic}.processing-time{color:#7f8c8d;font-size:13px}.ip-address{color:#95a5a6;font-family:Courier New,monospace;font-size:12px}.pagination{align-items:center;display:flex;gap:20px;justify-content:center;padding:20px 0}.page-button{background:#3498db;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:all .2s}.page-button:hover:not(:disabled){background:#2980b9;box-shadow:0 2px 8px #3498db4d;transform:translateY(-1px)}.page-button:disabled{background:#bdc3c7;cursor:not-allowed;opacity:.6}.page-info{color:#7f8c8d;font-weight:600}.loading-spinner{color:#7f8c8d;font-size:16px}.loading-spinner,.no-logs{padding:60px 20px;text-align:center}.no-logs{color:#95a5a6}.no-logs p{font-size:16px;margin:10px 0}.no-logs .hint{color:#bdc3c7;font-size:14px}.error-message{background:#fee;border:1px solid #fcc;border-radius:6px;color:#c33;font-weight:500;margin-bottom:20px;padding:15px}@media (max-width:768px){.audit-logs-container{max-height:95vh;padding:20px;width:100%}.audit-logs-header h2{font-size:22px}.audit-logs-controls,.filter-group{align-items:stretch;flex-direction:column}.filter-group{gap:8px}.export-button,.filter-group select{width:100%}.logs-table{font-size:12px}.logs-table td,.logs-table th{padding:10px 8px}.filename-cell{max-width:150px}.session-info{gap:10px;grid-template-columns:1fr}.timeline{padding-left:20px}.timeline-content{padding:12px}.pagination{flex-direction:column;gap:10px}.page-button{width:100%}}.profile-overlay{align-items:center;animation:fadeIn .3s ease-out;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.profile-container{animation:slideUp .3s ease-out;background:#fff;border:4px solid #000;border-radius:2px;box-shadow:0 20px 60px #00000040;max-height:90vh;max-width:520px;overflow-y:auto;position:relative;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.close-button{background:#0000;border:1px solid #0000;border-radius:2px;color:#999;font-size:26px;font-weight:300;height:36px;position:absolute;right:20px;top:20px;transition:all .25s ease;width:36px}.close-button:hover{background:#000;border-color:#000;color:#fff}.profile-header{background:#fff;border-bottom:1px solid #e0e0e0;padding:50px 40px 30px;text-align:center}.profile-avatar{align-items:center;background:#000;border:4px solid #fff;border-radius:50%;box-shadow:0 4px 16px #0003;color:#fff;display:flex;font-size:38px;font-weight:300;height:90px;justify-content:center;margin:0 auto 20px;outline:1px solid #e0e0e0;width:90px}.profile-header h2{color:#000;font-size:22px;font-weight:400;letter-spacing:.5px;margin:0}.profile-stats{grid-gap:1px;background:#f5f5f5;border-bottom:1px solid #e0e0e0;display:grid;gap:1px;grid-template-columns:1fr 1fr;padding:0}.stat-card{background:#fff;border-radius:0;padding:35px 20px;position:relative;text-align:center;transition:all .25s ease}.stat-card:hover{background:#000;box-shadow:inset 0 0 0 1px #000}.stat-card:hover .stat-value{color:#fff}.stat-card:hover .stat-label{color:#ffffffb3}.stat-card:hover .audit-logs-link,.stat-card:hover .purchase-credits-link{border-color:#ffffff80;color:#fff}.stat-value{color:#000;font-size:40px;font-weight:300;letter-spacing:-1px;margin-bottom:10px;transition:all .25s ease}.stat-label{color:#888;letter-spacing:1.5px}.purchase-credits-link,.stat-label{font-size:11px;font-weight:400;text-transform:uppercase;transition:all .25s ease}.purchase-credits-link{background:none;border:1px solid #e0e0e0;border-radius:2px;color:#000;cursor:pointer;letter-spacing:1px;margin-top:15px;padding:8px 16px}.purchase-credits-link:hover{background:#0000000d;border-color:#000}.audit-logs-link{align-items:center;background:none;border:1px solid #e0e0e0;border-radius:2px;color:#000;cursor:pointer;display:inline-flex;font-size:11px;font-weight:400;gap:6px;letter-spacing:1px;margin-top:15px;padding:8px 16px;text-transform:uppercase;transition:all .25s ease}.audit-logs-link:hover{background:#000;border-color:#000;color:#fff}.profile-form{background:#fafafa;border-bottom:1px solid #e0e0e0;padding:40px 45px}.profile-form h3{color:#000;font-size:15px;font-weight:400;letter-spacing:1.5px;margin:0 0 30px;text-transform:uppercase}.error-message{background:#fff;border:1px solid #d0d0d0;border-radius:2px;color:#000}.error-message,.success-message{font-size:13px;font-weight:400;letter-spacing:.3px;margin:0 0 24px;padding:16px;text-align:center}.success-message{background:#000;border:1px solid #000;border-radius:2px;color:#fff}.form-group{margin-bottom:24px}.form-group label{color:#333;display:block;font-size:12px;font-weight:400;letter-spacing:1.2px;margin-bottom:10px;text-transform:uppercase}.form-group input{background:#fff;border:1px solid #d0d0d0;border-radius:2px;box-sizing:border-box;font-size:14px;font-weight:400;padding:14px 16px;transition:all .25s ease;width:100%}.form-group input:focus{border-color:#000;box-shadow:0 2px 8px #00000014;outline:none}.form-group input:disabled{background:#f8f8f8;border-color:#e0e0e0;color:#999;cursor:not-allowed}.update-button{background:#000;border:2px solid #000;border-radius:2px;color:#fff;cursor:pointer;font-size:12px;font-weight:400;letter-spacing:1.5px;padding:15px;text-transform:uppercase;transition:all .25s ease;width:100%}.update-button:hover:not(:disabled){background:#fff;box-shadow:0 4px 12px #00000026;color:#000;transform:translateY(-1px)}.update-button:disabled{background:#e8e8e8;border-color:#d0d0d0;color:#aaa;cursor:not-allowed;transform:none}.logout-button{background:#fff;border:2px solid #000;border-radius:2px;color:#000;cursor:pointer;font-size:12px;font-weight:400;letter-spacing:1.5px;margin:30px 45px 40px;padding:14px;text-transform:uppercase;transition:all .25s ease;width:calc(100% - 90px)}.logout-button:hover{background:#000;box-shadow:0 4px 12px #00000026;color:#fff;transform:translateY(-1px)}.profile-section{border-top:1px solid #eee;margin:0 45px 30px;padding-top:20px}.profile-section h3{color:#333;font-size:14px;font-weight:700;letter-spacing:.06em;margin:0 0 12px;text-transform:uppercase}.section-empty,.section-loading{color:#888;font-size:13px;margin:0}.custom-pii-table{border-collapse:collapse;font-size:13px;width:100%}.custom-pii-table th{border-bottom:2px solid #000;color:#555;font-size:11px;font-weight:700;letter-spacing:.05em;padding:6px 8px 6px 0;text-align:left;text-transform:uppercase}.custom-pii-table td{border-bottom:1px solid #f0f0f0;max-width:140px;padding:8px 8px 8px 0;vertical-align:top;word-break:break-word}.custom-pii-table code{background:#f5f5f5;border-radius:2px;font-family:monospace;font-size:11px;padding:1px 4px}.delete-type-btn{background:#fff;border:1px solid #c00;border-radius:2px;color:#c00;cursor:pointer;font-size:11px;padding:4px 10px;transition:all .2s}.delete-type-btn:hover{background:#c00;color:#fff}.admin-section{border-top:2px solid #000}.admin-panel-toggle{background:none;border:none;color:#000;cursor:pointer;font-size:13px;font-weight:700;letter-spacing:.05em;padding:0 0 12px;text-transform:uppercase}.admin-panel-toggle:hover{text-decoration:underline}.admin-pii-table{font-size:12px}.admin-pii-table .row-global td{background:#f0fff0}.promote-btn{background:#fff;border:1px solid #060;border-radius:2px;color:#060;cursor:pointer;font-size:11px;padding:4px 10px;transition:all .2s}.promote-btn:hover{background:#060;color:#fff}.demote-btn{background:#fff;border:1px solid #888;border-radius:2px;color:#888;cursor:pointer;font-size:11px;padding:4px 10px;transition:all .2s}.demote-btn:hover{background:#888;color:#fff}.legal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.legal-container{animation:slideIn .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:900px;overflow-y:auto;position:relative;width:100%}.close-button{align-items:center;background:#f5f5f5;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;float:right;font-size:28px;height:40px;justify-content:center;margin:10px;position:-webkit-sticky;position:sticky;right:10px;top:10px;transition:all .2s ease;width:40px;z-index:10}.close-button:hover{background:#e0e0e0;color:#333;transform:rotate(90deg)}.legal-header{border-bottom:2px solid #f0f0f0;padding:40px 40px 20px;text-align:center}.legal-header h2{color:#333;font-size:28px;font-weight:600;margin:0}.legal-content{padding:30px 40px}.legal-section{border-bottom:1px solid #e0e0e0;margin-bottom:30px;padding-bottom:20px}.legal-section:last-child{border-bottom:none;margin-bottom:0}.legal-section h3{align-items:center;color:#06c;display:flex;font-size:20px;gap:8px;margin-bottom:15px}.legal-section p{color:#555;font-size:15px;line-height:1.6;margin-bottom:12px}.legal-section ul{list-style:none;margin:10px 0;padding-left:0}.legal-section ul li{color:#555;font-size:15px;line-height:1.7;margin-bottom:10px;padding-left:25px;position:relative}.legal-section ul li:before{color:#06c;content:"•";font-size:20px;left:5px;position:absolute;top:-2px}.legal-section strong{color:#333;font-weight:600}.contact-info{background:#f8f9fa;border-left:4px solid #06c;border-radius:8px;font-size:15px;padding:15px}.last-updated{background:#fff3cd;border-left:4px solid #ffc107;border-radius:8px;font-size:14px;margin-top:10px;padding:12px}.acknowledgment-section{background:#f8f9fa;border:2px solid #06c;border-radius:12px;margin-top:20px!important;padding:20px!important}.acknowledgment-box{display:flex;flex-direction:column;gap:20px}.acknowledgment-label{align-items:flex-start;color:#333;cursor:pointer;display:flex;font-size:15px;gap:12px;line-height:1.6}.acknowledgment-checkbox{cursor:pointer;height:20px;margin-top:2px;min-width:20px;width:20px}.accept-button{align-self:center;background:#06c;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:14px 28px;transition:all .3s ease}.accept-button:hover:not(:disabled){background:#0052a3;box-shadow:0 4px 12px #0066cc4d;transform:translateY(-2px)}.accept-button:disabled{background:#ccc;cursor:not-allowed;opacity:.6}.legal-container::-webkit-scrollbar{width:10px}.legal-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.legal-container::-webkit-scrollbar-thumb{background:#888;border-radius:10px}.legal-container::-webkit-scrollbar-thumb:hover{background:#555}@media (max-width:768px){.legal-container{border-radius:12px;max-height:95vh}.legal-header{padding:30px 20px 15px}.legal-header h2{font-size:22px}.legal-content{padding:20px}.legal-section h3{font-size:18px}.legal-section p,.legal-section ul li{font-size:14px}.close-button{font-size:24px;height:36px;width:36px}}.tutorial-overlay{animation:fadeIn .3s ease-in;background-color:#000000bf;bottom:0;left:0;position:fixed;right:0;top:0;z-index:9998}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.tutorial-spotlight{animation:pulse 2s ease-in-out infinite;border-radius:8px;box-shadow:0 0 0 9999px #000000bf;pointer-events:none;position:fixed;transition:all .4s ease-in-out;z-index:9999}@keyframes pulse{0%,to{box-shadow:0 0 0 9999px #000000bf,0 0 0 4px #4caf50}50%{box-shadow:0 0 0 9999px #000000bf,0 0 0 8px #4caf50}}.tutorial-tooltip{animation:slideIn .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000004d;max-width:400px;padding:24px;position:fixed;z-index:10000}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.tutorial-tooltip-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.tutorial-tooltip-title{color:#333;font-size:20px;font-weight:600;margin:0}.tutorial-step-counter{background:#f0f0f0;border-radius:12px;color:#666;font-size:14px;font-weight:500;padding:4px 12px}.tutorial-tooltip-content{color:#555;font-size:15px;line-height:1.6;margin-bottom:20px}.tutorial-tooltip-actions{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}.tutorial-progress-dots{display:flex;gap:8px;justify-content:center;margin-top:12px;order:10;width:100%}.tutorial-progress-dot{background:#ddd;border-radius:50%;height:8px;transition:all .3s ease;width:8px}.tutorial-progress-dot.active{background:#4caf50;border-radius:4px;width:24px}.tutorial-progress-dot.completed{background:#81c784}.tutorial-btn{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;outline:none;padding:10px 20px;transition:all .2s ease}.tutorial-btn:focus-visible{outline:2px solid #4caf50;outline-offset:2px}.tutorial-btn-skip{background:#0000;border:1px solid #ddd;color:#666}.tutorial-btn-skip:hover{background:#f5f5f5;border-color:#999}.tutorial-btn-prev{background:#f5f5f5;color:#333}.tutorial-btn-prev:hover{background:#e0e0e0}.tutorial-btn-prev:disabled{cursor:not-allowed;opacity:.5}.tutorial-btn-next{background:#4caf50;color:#fff}.tutorial-btn-next:hover{background:#45a049}.tutorial-btn-finish{background:#4caf50;color:#fff;padding:10px 28px}.tutorial-btn-finish:hover{background:#45a049}.tutorial-welcome{animation:scaleIn .4s ease-out;background:#fff;border-radius:16px;box-shadow:0 8px 48px #0000004d;left:50%;max-width:500px;padding:40px;position:fixed;text-align:center;top:50%;transform:translate(-50%,-50%);z-index:10000}@keyframes scaleIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.tutorial-welcome-icon{font-size:64px;margin-bottom:20px}.tutorial-welcome-title{color:#333;font-size:28px;font-weight:700;margin-bottom:16px}.tutorial-welcome-description{color:#666;font-size:16px;line-height:1.6;margin-bottom:32px}.tutorial-welcome-actions{display:flex;gap:16px;justify-content:center}.tutorial-welcome-actions .tutorial-btn{font-size:16px;padding:14px 32px}.tutorial-keyboard-hint{color:#888;font-size:12px;font-style:italic;margin-top:12px;text-align:center}@media (prefers-contrast:high){.tutorial-overlay{background-color:#000000e6}.tutorial-spotlight{box-shadow:0 0 0 9999px #000000e6}.tutorial-btn{border:2px solid}}@media (prefers-reduced-motion:reduce){.tutorial-overlay,.tutorial-progress-dot,.tutorial-spotlight,.tutorial-tooltip,.tutorial-welcome{animation:none!important;transition:none!important}}@media (max-width:768px){.tutorial-tooltip{margin:16px;max-width:calc(100% - 32px);padding:20px}.tutorial-welcome{max-width:calc(100% - 32px);padding:32px 24px}.tutorial-tooltip-actions{justify-content:center}}
/*# sourceMappingURL=main.4fb1e0f8.css.map*/