*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@media screen and (max-width: 1024px){#root>div{padding:20px!important}header h1{font-size:24px!important}.search-input-container{flex-direction:column}.search-input-container button{width:100%}}@media screen and (max-width: 768px){#root>div{padding:16px!important;max-width:100%!important}header h1{font-size:22px!important;margin-bottom:4px!important}header p{font-size:13px!important}h2{font-size:18px!important}h3{font-size:16px!important}[style*="display: flex"][style*="gap: 8px"]:not(.search-input-container){flex-direction:column!important}button{min-height:44px!important}input[type=text],input[type=number],input[type=search],select{min-height:44px!important;font-size:16px!important}div[style*="position: fixed"][style*="pointer-events: none"]{display:none!important}.upload-zone{padding:32px 20px!important;min-height:180px!important}[role=toolbar]{justify-content:center!important}.kwic-display{grid-template-columns:1fr!important;gap:8px!important;text-align:left!important}.kwic-display>div{text-align:left!important;white-space:normal!important}.hover-hint{display:none!important}#search-options{flex-direction:column!important;align-items:stretch!important;gap:8px!important}#search-options label{justify-content:flex-start!important}}@media screen and (max-width: 480px){#root>div{padding:12px!important}header h1{font-size:20px!important}header p{font-size:12px!important}button{font-size:14px!important;padding:10px 16px!important}h2{font-size:17px!important}h3{font-size:15px!important}.upload-zone{padding:24px 16px!important;min-height:160px!important}[role=button][tabindex="0"]{padding:12px 14px!important}[role=toolbar] button{padding:6px 10px!important;font-size:12px!important}[role=dialog]>div:last-child>span:nth-child(n+4){display:none!important}}@media screen and (max-width: 320px){#root>div{padding:8px!important}header h1{font-size:18px!important}.upload-zone svg{width:40px!important;height:40px!important}}@media print{button,.upload-zone,[role=toolbar],[role=dialog],div[style*="position: fixed"]{display:none!important}*{background:white!important;color:#000!important;box-shadow:none!important}[role=button]{page-break-inside:avoid;border:1px solid #ccc!important;margin-bottom:8px!important}.kwic-display>div:nth-child(2){background-color:#f0f0f0!important;padding:4px 8px!important}}@media screen and (max-width: 768px){input[type=checkbox],input[type=radio]{min-width:22px!important;min-height:22px!important;cursor:pointer}label{min-height:44px!important;display:flex!important;align-items:center!important;cursor:pointer;padding:4px 0!important}}*:focus-visible{outline:2px solid #1976D2!important;outline-offset:2px!important}*:focus:not(:focus-visible){outline:none}button:focus-visible,input:focus-visible,select:focus-visible,[role=button]:focus-visible{outline:3px solid #1976D2!important;outline-offset:2px!important;box-shadow:0 0 0 4px #1976d233!important}@media (prefers-contrast: high){button{border:2px solid currentColor!important}input,select,[role=button]{border:2px solid #000!important}}@media screen and (max-height: 500px) and (orientation: landscape){header{margin-bottom:16px!important}header h1{font-size:20px!important;margin-bottom:0!important}header p{display:none!important}.upload-zone{min-height:120px!important;padding:16px!important}.upload-zone svg{width:32px!important;height:32px!important}[role=dialog]>div:first-child{padding:8px 16px!important}[role=dialog]>div:last-child{padding:6px 16px!important}}@media screen and (max-width: 768px){.edition-panels{flex-direction:column!important}.edition-panels>div{flex:1 1 auto!important;max-width:100%!important}}:root{--color-primary: #1976D2;--color-primary-dark: #1565C0;--color-primary-light: #42A5F5;--color-success: #43A047;--color-success-dark: #388E3C;--color-warning: #FF9800;--color-warning-dark: #F57C00;--color-error: #D32F2F;--color-error-dark: #C62828;--color-purple: #7B1FA2;--color-purple-dark: #6A1B9A;--color-text-primary: #212121;--color-text-secondary: #757575;--color-text-disabled: #9E9E9E;--color-border: #E0E0E0;--color-border-light: #EEEEEE;--color-bg-light: #FAFAFA;--color-bg-hover: #F5F5F5;--color-highlight: #FFEB3B;--color-highlight-bg: rgba(255, 235, 59, .3);--color-focus-ring: rgba(25, 118, 210, .4);--color-focus-ring-error: rgba(211, 47, 47, .4);--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--transition-modal: .25s cubic-bezier(.4, 0, .2, 1);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .15);--shadow-xl: 0 20px 40px rgba(0, 0, 0, .2);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px;--touch-target-min: 44px}html{scroll-behavior:smooth}*:focus{outline:none}*:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}button{font-family:inherit;transition:background-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast)}button:not(:disabled):hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}button:not(:disabled):active{transform:translateY(0);box-shadow:var(--shadow-sm)}button:disabled{opacity:.6;cursor:not-allowed}button:focus-visible{box-shadow:0 0 0 3px var(--color-focus-ring)}input[type=text],input[type=number],input[type=search],select{transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast)}input[type=text]:hover:not(:disabled),input[type=number]:hover:not(:disabled),input[type=search]:hover:not(:disabled),select:hover:not(:disabled){border-color:var(--color-text-secondary)}input[type=text]:focus,input[type=number]:focus,input[type=search]:focus,select:focus{border-color:var(--color-primary)!important;box-shadow:0 0 0 3px var(--color-focus-ring)}input[type=checkbox],input[type=radio]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary);transition:transform var(--transition-fast)}input[type=checkbox]:hover,input[type=radio]:hover{transform:scale(1.1)}input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.result-card{transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.result-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.upload-zone{transition:border-color var(--transition-normal),background-color var(--transition-normal),transform var(--transition-normal)}.upload-zone:hover:not(.disabled){border-color:var(--color-primary-light)!important;background-color:#e3f2fd!important}.upload-zone.drag-active{transform:scale(1.01);border-color:var(--color-primary)!important}.modal-backdrop{animation:fadeIn var(--transition-modal) forwards}.modal-backdrop.closing{animation:fadeOut var(--transition-modal) forwards}.modal-content{animation:slideUp var(--transition-modal) forwards}.modal-content.closing{animation:slideDown var(--transition-modal) forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slideDown{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(20px) scale(.95)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.skeleton{animation:pulse 1.5s ease-in-out infinite;background:linear-gradient(90deg,#E0E0E0 25%,#EEEEEE 50%,#E0E0E0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.progress-bar{transition:width var(--transition-slow)}.progress-bar-animated{background:linear-gradient(90deg,var(--color-warning) 0%,var(--color-warning-dark) 50%,var(--color-warning) 100%);background-size:200% 100%;animation:progressPulse 2s ease-in-out infinite}@keyframes progressPulse{0%,to{background-position:0% 0}50%{background-position:100% 0}}.toast-container{position:fixed;bottom:24px;right:24px;z-index:10001;display:flex;flex-direction:column;gap:12px;pointer-events:none}.toast{padding:16px 24px;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);pointer-events:auto;animation:toastSlideIn var(--transition-modal) forwards;display:flex;align-items:center;gap:12px;min-width:300px;max-width:450px}.toast.closing{animation:toastSlideOut var(--transition-modal) forwards}.toast-success{background-color:var(--color-success);color:#fff}.toast-error{background-color:var(--color-error);color:#fff}.toast-warning{background-color:var(--color-warning);color:var(--color-text-primary)}.toast-info{background-color:var(--color-primary);color:#fff}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toastSlideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.kwic-container{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;width:100%}.kwic-left{text-align:right;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis}.kwic-match{background-color:var(--color-highlight);color:var(--color-text-primary);font-weight:700;padding:4px 12px;border-radius:var(--radius-sm);white-space:nowrap;transition:background-color var(--transition-fast),transform var(--transition-fast)}.kwic-match:hover{background-color:#ffd600;transform:scale(1.02)}.kwic-right{text-align:left;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--radius-full);font-size:13px;font-weight:600}.status-badge-success{background-color:#e8f5e9;color:#2e7d32}.status-badge-loading{background-color:#fff3e0;color:#e65100}.status-badge-error{background-color:#ffebee;color:#c62828}.icon{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em}.icon-folder:before{content:"";display:block;width:1em;height:.8em;background:currentColor;clip-path:polygon(0 20%,40% 20%,50% 0,100% 0,100% 100%,0 100%)}.icon-search:before{content:"";display:block;width:.8em;height:.8em;border:2px solid currentColor;border-radius:50%;position:relative}.icon-search:after{content:"";display:block;width:.3em;height:2px;background:currentColor;position:absolute;bottom:0;right:-.1em;transform:rotate(45deg)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.focus-trap{position:absolute;width:0;height:0;overflow:hidden}.skip-link{position:absolute;top:-100px;left:50%;transform:translate(-50%);padding:12px 24px;background-color:var(--color-primary);color:#fff;text-decoration:none;border-radius:var(--radius-md);z-index:10002;transition:top var(--transition-fast)}.skip-link:focus{top:12px}.fade-enter{opacity:0}.fade-enter-active{opacity:1;transition:opacity var(--transition-normal)}.fade-exit{opacity:1}.fade-exit-active{opacity:0;transition:opacity var(--transition-normal)}.slide-up-enter{opacity:0;transform:translateY(20px)}.slide-up-enter-active{opacity:1;transform:translateY(0);transition:opacity var(--transition-normal),transform var(--transition-normal)}.collapse-enter{max-height:0;opacity:0;overflow:hidden}.collapse-enter-active{max-height:500px;opacity:1;transition:max-height var(--transition-slow),opacity var(--transition-normal)}.collapse-exit{max-height:500px;opacity:1;overflow:hidden}.collapse-exit-active{max-height:0;opacity:0;transition:max-height var(--transition-slow),opacity var(--transition-normal)}@media (prefers-contrast: high){:root{--color-border: #000000;--color-text-secondary: #424242}button:focus-visible,input:focus,select:focus{outline:3px solid #000000;outline-offset:2px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
