:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100vw}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow-x:hidden}.app{min-height:100vh;height:100vh;background-color:#f8fafc;display:flex;flex-direction:column;overflow:hidden}.app-header{background:#fff;border-bottom:1px solid #e2e8f0;padding:.75rem 1rem;display:flex;align-items:center;gap:.5rem;box-shadow:0 1px 3px #0000001a;position:fixed;top:0;left:0;right:0;z-index:1000;height:60px;flex-shrink:0}.app-header h1{color:#1a202c;font-size:1.2rem;font-weight:600;margin:0;flex:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.menu-toggle{background:none;border:none;cursor:pointer;padding:.5rem;border-radius:6px;color:#374151;transition:all .2s;display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0}.menu-toggle:hover{background:#f3f4f6}.header-controls{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.header-get-file-btn,.header-download-btn{background:none;border:1px solid #e2e8f0;color:#374151;padding:.5rem;border-radius:6px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;white-space:nowrap;flex-shrink:0}.header-get-file-btn{padding:.5rem 1rem;font-weight:500;font-size:.875rem;width:auto;height:36px;background:#43dac6}.header-download-btn{width:36px;height:36px}.header-get-file-btn:hover:not(:disabled){background:#f59e0b;color:#fff;border-color:#f59e0b}.header-download-btn:hover:not(:disabled){background:#059669;color:#fff;border-color:#059669}.header-get-file-btn:disabled,.header-download-btn:disabled{background:#f9fafb;color:#9ca3af;cursor:not-allowed}.app-content{display:flex;flex:1;position:relative;margin-top:60px;height:calc(100vh - 60px);overflow:hidden}@media (max-width: 480px){.app-header{padding:.5rem;height:56px;gap:.25rem}.app-header h1{font-size:.9rem;padding:0 .25rem}.menu-toggle{width:36px;height:36px;padding:.4rem}.menu-toggle svg{width:18px;height:18px}.header-controls{gap:.25rem}.header-get-file-btn{padding:.4rem .6rem;font-size:.75rem;height:32px}.header-download-btn{width:32px;height:32px;padding:.4rem}.header-download-btn svg{width:14px;height:14px}.app-content{margin-top:56px;height:calc(100vh - 56px)}}@media (min-width: 481px) and (max-width: 767px){.app-header{padding:.6rem .75rem;height:58px;gap:.5rem}.app-header h1{font-size:1rem}.menu-toggle{width:38px;height:38px}.header-get-file-btn{padding:.45rem .75rem;font-size:.8rem;height:34px}.header-download-btn{width:34px;height:34px}.header-download-btn svg{width:15px;height:15px}.app-content{margin-top:58px;height:calc(100vh - 58px)}}@media (min-width: 768px) and (max-width: 1023px){.app-header{padding:.75rem 1rem;gap:.75rem}.app-header h1{font-size:1.1rem}}.sample-generator{display:flex;flex-direction:column;align-items:center;gap:.25rem}.sample-btn{background:#059669;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;font-weight:500;cursor:pointer;transition:background-color .2s;display:flex;align-items:center;gap:.5rem}.sample-btn:hover{background:#047857}.sample-description{font-size:.75rem;color:#64748b;text-align:center;max-width:200px;line-height:1.3}.azure-service-status{position:relative}.service-toggle{display:flex;align-items:center;gap:.5rem}.service-status-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s}.service-status-btn.enabled{background:#059669;color:#fff}.service-status-btn.enabled:hover{background:#047857}.service-status-btn.disabled{background:#6b7280;color:#fff}.service-status-btn.disabled:hover{background:#4b5563}.service-status-btn:disabled{background:#9ca3af;cursor:not-allowed}.config-btn{background:#e5e7eb;border:none;padding:.5rem;border-radius:4px;cursor:pointer;display:flex;align-items:center;transition:background-color .2s}.config-btn:hover{background:#d1d5db}.config-panel{position:absolute;top:100%;right:0;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:1rem;min-width:400px;box-shadow:0 4px 6px #0000001a;z-index:100;margin-top:.5rem}.config-panel h4{margin:0 0 1rem;color:#1a202c;font-size:1rem}.service-list{margin-bottom:1rem}.service-item{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid #f3f4f6}.service-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.service-info{display:flex;align-items:center;gap:.5rem}.service-name{font-weight:500;color:#374151}.service-endpoint{font-size:.75rem;color:#6b7280;font-family:Courier New,monospace;word-break:break-all;margin-left:1.25rem}.config-instructions{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:1rem;font-size:.875rem}.config-instructions p{margin:0 0 .5rem;font-weight:500;color:#374151}.config-instructions ol{margin:0;padding-left:1.5rem;color:#4b5563}.config-instructions li{margin-bottom:.25rem}.config-instructions code{background:#e2e8f0;padding:.125rem .25rem;border-radius:3px;font-size:.75rem}.upload-btn{background:#3182ce;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;font-weight:500;cursor:pointer;transition:background-color .2s;display:flex;align-items:center;gap:.5rem}.upload-btn:hover:not(:disabled){background:#2c5282}.upload-btn:disabled{background:#9ca3af;cursor:not-allowed}@media (max-width: 768px){.upload-btn{padding:.6rem 1.2rem;font-size:.875rem}}.sidebar{width:100%;max-width:400px;background:#fff;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;overflow:hidden;position:fixed;top:60px;left:-100%;height:calc(100vh - 60px);z-index:999;transition:left .3s ease}.sidebar.sidebar-open{left:0}.sidebar-overlay{position:fixed;inset:60px 0 0;background:#00000080;z-index:998;display:block}@media (min-width: 1024px){.sidebar{position:fixed;left:0;top:60px;height:calc(100vh - 60px);transition:none;width:400px;max-width:400px;z-index:999}.sidebar-overlay{display:none!important}.menu-toggle{display:none}.app-content{padding-left:400px}.document-preview{margin-left:0}}@media (min-width: 768px) and (max-width: 1023px){.sidebar{max-width:350px;top:60px}}@media (max-width: 480px){.sidebar{max-width:100%;width:100%;top:56px;height:calc(100vh - 56px)}.sidebar-overlay{top:56px}}.sidebar-header{padding:1.5rem;border-bottom:1px solid #e2e8f0;flex-shrink:0}.sidebar-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.sidebar-close{background:none;border:none;cursor:pointer;padding:.25rem;border-radius:4px;color:#6b7280;transition:background-color .2s;display:none;width:32px;height:32px;align-items:center;justify-content:center}.sidebar-close:hover{background:#f3f4f6;color:#374151}.sidebar-close svg{width:20px;height:20px}@media (max-width: 1023px){.sidebar-close{display:flex}}@media (max-width: 480px){.sidebar-header{padding:1rem}.sidebar-close{width:28px;height:28px}.sidebar-close svg{width:18px;height:18px}}.sidebar-header h2{color:#1a202c;font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.sidebar-description{color:#64748b;font-size:.875rem;line-height:1.4;margin-bottom:1rem}.global-actions{margin-top:1rem}.redact-all-btn{background:#dc2626;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:background-color .2s;width:100%;justify-content:center;font-size:.875rem}.redact-all-btn:hover:not(:disabled){background:#b91c1c}.redact-all-btn:disabled{background:#9ca3af;cursor:not-allowed}@media (max-width: 480px){.sidebar-header h2{font-size:1.1rem}.sidebar-description{font-size:.8rem}.redact-all-btn{padding:.45rem .85rem;font-size:.8rem}}.pii-categories{flex:1;overflow-y:auto;overflow-x:hidden;padding:.5rem;scrollbar-width:thin;scrollbar-color:#cbd5e0 #f7fafc}.pii-categories::-webkit-scrollbar{width:8px}.pii-categories::-webkit-scrollbar-track{background:#f7fafc;border-radius:4px}.pii-categories::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:4px}.pii-categories::-webkit-scrollbar-thumb:hover{background:#a0aec0}.category-group{margin-bottom:.5rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.category-header{padding:1rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background-color .2s;flex-wrap:wrap;gap:.5rem}.category-header:hover{background:#f8fafc}.category-info{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.category-label{font-weight:500;color:#1a202c;word-break:break-word}.item-count{color:#64748b;font-size:.875rem;white-space:nowrap}.category-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}@media (max-width: 480px){.category-header{padding:.75rem}.category-info{gap:.5rem}.category-label{font-size:.9rem}.item-count{font-size:.8rem}}.redact-btn{background:#dc2626;color:#fff;border:none;padding:.375rem .75rem;border-radius:4px;font-size:.75rem;cursor:pointer;display:flex;align-items:center;gap:.25rem;transition:background-color .2s;white-space:nowrap}.redact-btn:hover{background:#b91c1c}@media (max-width: 480px){.redact-btn{padding:.3rem .6rem;font-size:.7rem}.redact-btn svg{width:12px;height:12px}}.category-content{border-top:1px solid #e2e8f0;padding:1rem;background:#f8fafc}.no-items{color:#64748b;font-style:italic;text-align:center;padding:1rem}.pii-items{margin-bottom:1rem}.pii-item{background:#fff;border:1px solid #e2e8f0;border-radius:4px;padding:.75rem;margin-bottom:.5rem}.pii-item-simple{background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:.75rem;margin-bottom:.75rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;transition:all .2s ease}.pii-item-simple:hover{border-color:#cbd5e0;box-shadow:0 1px 3px #0000001a}.pii-text-clickable{flex:1;cursor:pointer;transition:all .2s ease;min-width:0;overflow:hidden}.pii-text-clickable:hover{color:#3b82f6}.pii-original-text{font-weight:600;color:#374151;margin-bottom:.25rem;font-size:.9rem;word-break:break-word;overflow-wrap:break-word}.pii-replacement-text{font-size:.8rem;color:#6b7280;word-break:break-word;overflow-wrap:break-word}.replacement-value{font-weight:500;color:#059669;background:#ecfdf5;padding:.125rem .375rem;border-radius:3px;border:1px solid #d1fae5;word-break:break-word}.replacement-value.editable{cursor:pointer;transition:all .2s ease}.replacement-value.editable:hover{background:#d1fae5;border-color:#10b981;box-shadow:0 0 0 2px #10b9811a}.replacement-input{font-weight:500;color:#059669;background:#fff;padding:.125rem .375rem;border-radius:3px;border:2px solid #10b981;outline:none;font-size:.8rem;min-width:100px;max-width:200px;box-shadow:0 0 0 3px #10b9811a}.replacement-input:focus{border-color:#059669;box-shadow:0 0 0 3px #05966933}.simple-replace-btn{background:#3b82f6;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;min-width:80px;flex-shrink:0}.simple-replace-btn:hover:not(:disabled){background:#2563eb;transform:translateY(-1px);box-shadow:0 2px 4px #3b82f64d}.simple-replace-btn:disabled{background:#9ca3af;cursor:not-allowed;transform:none;box-shadow:none}@media (max-width: 768px){.pii-item-simple{flex-direction:column;align-items:stretch;gap:.75rem;padding:.65rem}.pii-text-clickable{text-align:left}.pii-original-text{font-size:.85rem}.pii-replacement-text{font-size:.75rem}.replacement-input{font-size:.75rem;min-width:80px;max-width:180px}.simple-replace-btn{align-self:center;min-width:120px;padding:.45rem .9rem;font-size:.8rem}}@media (max-width: 480px){.pii-item-simple{padding:.6rem;gap:.6rem}.pii-original-text{font-size:.8rem}.pii-replacement-text{font-size:.7rem}.replacement-value{padding:.1rem .3rem;font-size:.7rem}.replacement-input{font-size:.7rem;min-width:70px;max-width:150px;padding:.1rem .3rem}.simple-replace-btn{padding:.4rem .8rem;font-size:.75rem;min-width:100px}}.pii-item-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.5rem}.pii-item-content{display:flex;justify-content:space-between;align-items:center;flex:1}.redact-single-btn{background:#f59e0b;color:#fff;border:none;padding:.25rem .5rem;border-radius:3px;font-size:.7rem;cursor:pointer;display:flex;align-items:center;gap:.25rem;transition:background-color .2s;white-space:nowrap}.redact-single-btn:hover:not(:disabled){background:#d97706}.redact-single-btn:disabled{background:#9ca3af;cursor:not-allowed}.pii-item-details{display:flex;flex-direction:column;gap:.25rem}.pii-replacement{font-size:.75rem;color:#059669;font-weight:500}@media (max-width: 768px){.pii-item-header{flex-direction:column;align-items:stretch}.pii-item-content{margin-bottom:.5rem}.redact-single-btn{align-self:flex-end;font-size:.65rem;padding:.2rem .4rem}}.document-preview{flex:1;display:flex;flex-direction:column;background:#fff;overflow:hidden;width:100%;height:100%;min-height:0;position:relative}@media (min-width: 1024px){.document-preview{margin-left:0}}.no-document,.loading-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;width:100%;color:#64748b;padding:2rem;text-align:center}.no-document h3,.error-state h3{margin:1rem 0 .5rem;color:#374151;font-size:1.2rem}.no-document p,.error-state p{font-size:.9rem;max-width:400px;line-height:1.5}@media (max-width: 480px){.no-document,.loading-state,.error-state{padding:1rem}.no-document h3,.error-state h3{font-size:1rem}.no-document p,.error-state p{font-size:.85rem}.no-document svg,.error-state svg{width:48px!important;height:48px!important}}@media (min-width: 481px) and (max-width: 767px){.no-document,.loading-state,.error-state{padding:1.5rem}}.loading-spinner{width:32px;height:32px;border:3px solid #e2e8f0;border-top:3px solid #3182ce;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.preview-header{padding:.75rem 1rem;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center;background:#f8fafc;font-size:.875rem;flex-wrap:wrap;gap:.5rem;flex-shrink:0}.document-info{display:flex;align-items:center;gap:.5rem;color:#6b7280;flex:1;min-width:0;overflow:hidden}.document-name{font-weight:500;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.document-size{color:#9ca3af;font-size:.8rem;white-space:nowrap;flex-shrink:0}.pii-summary{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.pii-count{font-size:.75rem;background:#e2e8f0;color:#374151;padding:.25rem .5rem;border-radius:4px;text-transform:capitalize;white-space:nowrap}@media (max-width: 768px){.preview-header{padding:.65rem .85rem;font-size:.8rem}.document-info{gap:.35rem}.document-name{font-size:.85rem}.document-size{font-size:.75rem}.pii-summary{gap:.35rem;width:100%}.pii-count{font-size:.7rem;padding:.2rem .4rem}}@media (max-width: 480px){.preview-header{padding:.5rem .75rem;font-size:.75rem}.document-info svg{width:14px;height:14px}.document-name{font-size:.8rem}.document-size{font-size:.7rem}.pii-count{font-size:.65rem;padding:.15rem .35rem}}.preview-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:1.5rem;scrollbar-width:thin;scrollbar-color:#cbd5e0 #f7fafc;height:100%;position:relative}.preview-content::-webkit-scrollbar{width:12px;-webkit-appearance:none}.preview-content::-webkit-scrollbar-track{background:#f7fafc;border-radius:6px;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.1)}.preview-content::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:6px;border:2px solid #f7fafc;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.1)}.preview-content::-webkit-scrollbar-thumb:hover{background:#a0aec0}.preview-content::-webkit-scrollbar-thumb:active{background:#718096}.preview-content::-webkit-scrollbar-corner{background:#f7fafc}.document-content{width:100%;max-width:none;margin:0 auto;line-height:1.6;font-family:Times New Roman,serif;background:#fff;padding:2rem;min-height:100%;position:relative;word-wrap:break-word;overflow-wrap:break-word}.document-content p{margin-bottom:1rem;word-wrap:break-word}.document-content h1,.document-content h2,.document-content h3{margin-bottom:1rem;color:#1a202c;word-wrap:break-word}@media (max-width: 768px){.preview-content{padding:1rem}.document-content{padding:1.5rem;font-size:.95rem}.preview-content::-webkit-scrollbar{width:8px}}@media (max-width: 480px){.preview-content{padding:.75rem}.document-content{padding:1rem;font-size:.9rem;line-height:1.5}.document-content h1{font-size:1.5rem}.document-content h2{font-size:1.3rem}.document-content h3{font-size:1.1rem}.preview-content::-webkit-scrollbar{width:6px}}.document-content .pii-highlight{position:relative;display:inline;z-index:1;transition:all .3s ease;cursor:pointer}.document-content .pii-highlight .pii-label{z-index:10}.page-navigation{display:flex;align-items:center;justify-content:center;gap:1rem;padding:1rem;background:#fff;border-top:1px solid #e2e8f0;flex-shrink:0}.nav-btn{background:#f8fafc;border:1px solid #e2e8f0;color:#374151;padding:.5rem;border-radius:6px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0}.nav-btn:hover:not(:disabled){background:#e2e8f0;border-color:#cbd5e0}.nav-btn:disabled{background:#f9fafb;color:#9ca3af;cursor:not-allowed}.page-info{font-size:.875rem;color:#6b7280;font-weight:500;min-width:100px;text-align:center;white-space:nowrap}@media (max-width: 768px){.page-navigation{padding:.75rem;gap:.75rem}.nav-btn{width:36px;height:36px}.page-info{font-size:.8rem;min-width:80px}}@media (max-width: 480px){.page-navigation{padding:.6rem;gap:.5rem}.nav-btn{width:32px;height:32px}.nav-btn svg{width:14px;height:14px}.page-info{font-size:.75rem;min-width:70px}}.clickable-pii{cursor:pointer;transition:all .2s ease;border-radius:3px;padding:2px 4px;margin:0 -4px}.clickable-pii:hover{background-color:#3b82f61a;color:#3b82f6;font-weight:500}.pii-active-highlight{animation:pii-highlight-pulse 2s ease-in-out}@keyframes pii-highlight-pulse{0%{transform:scale(1);box-shadow:0 0 0 transparent}50%{transform:scale(1.08);box-shadow:0 0 15px #3b82f699}to{transform:scale(1.05);box-shadow:0 0 10px #3b82f666}}.document-content .pii-highlight{transition:all .3s ease;cursor:pointer}.document-content .pii-highlight:hover{transform:scale(1.02);box-shadow:0 2px 8px #00000026}.document-content .pii-active-highlight{animation:pii-highlight-pulse 2s ease-in-out;transform:scale(1.05);z-index:10;position:relative}.document-content .pii-selected{animation:pii-pulse-glow 2s infinite!important}.document-content .pii-focus-highlight{outline:3px solid #3b82f6!important;outline-offset:2px!important;border-radius:6px!important}@keyframes pii-pulse-glow{0%{box-shadow:0 0 5px currentColor,0 0 10px currentColor;transform:scale(1.05)}50%{box-shadow:0 0 10px currentColor,0 0 20px currentColor,0 0 30px currentColor;transform:scale(1.1)}to{box-shadow:0 0 5px currentColor,0 0 10px currentColor;transform:scale(1.05)}}.document-content .pii-highlight:focus{outline:2px solid #3b82f6;outline-offset:2px}.document-content{scroll-behavior:smooth;position:relative}.notification{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:1001;max-width:400px;min-width:300px;border-radius:8px;box-shadow:0 4px 12px #0000004d;animation:slideUp .3s ease-out}.notification-content{padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}.notification-content span{flex:1;font-size:14px;font-weight:500}.notification-close{background:none;border:none;font-size:18px;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s}.notification-info{background-color:#2d3748;color:#fff;border:none}.notification-info .notification-close{color:#fff}.notification-info .notification-close:hover{background-color:#ffffff1a}.notification-success{background-color:#dcfce7;border-left:4px solid #16a34a;color:#15803d}.notification-success .notification-close{color:#15803d}.notification-success .notification-close:hover{background-color:#16a34a1a}.notification-warning{background-color:#fef3c7;border-left:4px solid #f59e0b;color:#92400e}.notification-warning .notification-close{color:#92400e}.notification-warning .notification-close:hover{background-color:#f59e0b1a}.notification-error{background-color:#fee2e2;border-left:4px solid #dc2626;color:#991b1b}.notification-error .notification-close{color:#991b1b}.notification-error .notification-close:hover{background-color:#dc26261a}@keyframes slideUp{0%{transform:translate(-50%,100%);opacity:0}to{transform:translate(-50%);opacity:1}}@media (max-width: 768px){.notification{left:10px;right:10px;transform:none;max-width:none;min-width:auto}}
