.admin-container{max-width:1100px;margin:0 auto}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.admin-header h1{color:var(--color-text);font-size:1.5rem;font-weight:700;letter-spacing:-.03em}.model-selector-section{background:var(--color-surface);padding:24px;border-radius:var(--radius-lg);margin-bottom:32px;border:1px solid var(--color-border)}.model-selector-section h2{color:var(--color-text);font-size:1.1rem;font-weight:600;margin-bottom:4px}.model-selector-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:16px;margin:20px 0}.model-selector-card{background:var(--color-bg);padding:16px;border-radius:var(--radius-md);border:1px solid var(--color-border)}.model-selector-card h3{color:var(--color-text);margin-bottom:12px;font-size:.9rem;font-weight:600}.model-options{display:flex;flex-direction:column;gap:6px}.model-option{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition)}.model-option:hover{border-color:var(--color-primary)}.model-option.active{border-color:var(--color-primary);background:var(--color-primary-light);box-shadow:0 0 0 1px var(--color-primary)}.model-option input[type=radio]{flex-shrink:0;width:16px;height:16px;cursor:pointer;accent-color:var(--color-primary)}.model-option-content{flex:1;display:flex;flex-direction:column;gap:1px}.model-option-content strong{color:var(--color-text);font-size:.85rem}.model-option-content .model-name{color:var(--color-text-muted);font-size:.75rem;font-family:JetBrains Mono,monospace}.active-badge{background:var(--color-success);color:#fff;padding:2px 10px;border-radius:20px;font-size:.7rem;font-weight:600}.empty-text{color:var(--color-text-muted);font-style:italic;padding:16px;text-align:center;font-size:.875rem}.current-model-info{margin-top:16px;padding:12px 16px;background:var(--color-bg);border-radius:var(--radius-md);border-left:3px solid var(--color-primary);font-size:.875rem}.current-model-info code{background:var(--color-surface);padding:2px 8px;border-radius:var(--radius-sm);font-family:JetBrains Mono,monospace;color:var(--color-primary);font-weight:600;font-size:.8rem;border:1px solid var(--color-border)}.create-form-section{background:var(--color-surface);padding:24px;border-radius:var(--radius-lg);margin-bottom:24px;border:1px solid var(--color-border)}.create-form-section h2,.create-form-section h3{color:var(--color-text);margin-bottom:16px;font-size:1rem;font-weight:600}.form-group{margin-bottom:20px}.form-group label{display:block;font-weight:600;margin-bottom:6px;color:var(--color-text-secondary);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.form-group input,.form-group select,.form-group textarea{width:100%;padding:9px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.875rem;font-family:inherit;color:var(--color-text);background:var(--color-surface);transition:all var(--transition)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1a}.hyperparameters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:8px}.admin-container .upload-section{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-direction:row}.file-upload-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;background:var(--color-primary);color:#fff;border-radius:var(--radius-md);cursor:pointer;font-weight:600;font-size:.85rem;transition:all var(--transition)}.file-upload-btn:hover{background:var(--color-primary-hover)}.help-text{color:var(--color-text-muted);font-size:.8rem}.training-examples{max-height:400px;overflow-y:auto;margin-bottom:12px;padding:2px}.example-row{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px;padding:12px;background:var(--color-bg);border-radius:var(--radius-md);border:1px solid var(--color-border)}.example-number{min-width:26px;height:26px;background:var(--color-primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.75rem;flex-shrink:0}.example-inputs{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:8px}.example-inputs textarea{resize:vertical;min-height:48px}.btn-remove{width:26px;height:26px;background:var(--color-danger-light);color:var(--color-danger);border:1px solid var(--color-danger-border);border-radius:50%;cursor:pointer;font-size:.85rem;display:flex;align-items:center;justify-content:center;transition:all var(--transition);flex-shrink:0}.btn-remove:hover:not(:disabled){background:var(--color-danger);color:#fff}.btn-remove:disabled{opacity:.3;cursor:not-allowed}.template-field-row{display:flex;gap:6px;margin-bottom:6px;align-items:center}.field-order{width:22px;height:22px;background:var(--color-primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;flex-shrink:0}.field-move-buttons{display:flex;flex-direction:column;gap:1px;flex-shrink:0}.btn-move{width:22px;height:16px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:3px;cursor:pointer;font-size:.55rem;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);padding:0;line-height:1;transition:all var(--transition)}.btn-move:hover:not(:disabled){background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-move:disabled{opacity:.3;cursor:not-allowed}.form-actions{display:flex;gap:12px;margin-top:20px}.models-section{margin-top:32px}.models-section h2{color:var(--color-text);margin-bottom:16px;font-size:1.1rem;font-weight:600}.empty-state{text-align:center;padding:48px 20px;color:var(--color-text-muted);font-size:.95rem}.models-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.model-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:16px;transition:all var(--transition)}.model-card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-md)}.model-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--color-border)}.model-header h3{color:var(--color-text);font-size:1rem;margin:0;flex:1;font-weight:600}.status-badge{padding:2px 10px;border-radius:20px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.status-badge.active{background:var(--color-success-light);color:var(--color-success);border:1px solid var(--color-success-border)}.status-badge.creating{background:var(--color-warning-light);color:var(--color-warning);border:1px solid var(--color-warning-border)}.status-badge.failed{background:var(--color-danger-light);color:var(--color-danger);border:1px solid var(--color-danger-border)}.status-badge.unknown{background:var(--color-bg);color:var(--color-text-muted);border:1px solid var(--color-border)}.model-info{margin-bottom:12px}.model-info p{margin:4px 0;color:var(--color-text-secondary);font-size:.825rem}.model-info strong{color:var(--color-text);font-weight:600}.model-actions{display:flex;gap:8px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgb(0 0 0 / .5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:stretch;justify-content:center;padding:12px;animation:modalFadeIn .2s ease}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl),0 0 0 1px #0000000d;width:100%;max-width:95vw;animation:modalSlideIn .25s ease;position:relative;display:flex;flex-direction:column;max-height:100%}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--color-border)}.modal-header h3{font-size:1.1rem;font-weight:600;color:var(--color-text);margin:0}.modal-close{width:32px;height:32px;border:none;background:var(--color-bg);border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);font-size:1.1rem;transition:all var(--transition)}.modal-close:hover{background:var(--color-danger-light);color:var(--color-danger)}.modal-body{padding:16px;overflow-y:auto;flex:1;min-height:0}.modal-body-split{display:grid;grid-template-columns:320px 1fr;gap:24px;height:100%}.modal-body-split .modal-form-side{overflow-y:auto;padding-right:8px}.modal-body-split .modal-preview-side{overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);display:flex;flex-direction:column}.modal-preview-side .region-selector-wrapper{flex:1;min-height:0}.modal-preview-side .region-selector-wrapper img{width:100%;height:auto}.modal-preview-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:300px;color:var(--color-text-muted);font-size:.875rem;gap:12px;text-align:center;padding:24px}.modal-preview-placeholder-icon{font-size:2.5rem;opacity:.4}@media (max-width: 800px){.modal-body-split{grid-template-columns:1fr}}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 24px;border-top:1px solid var(--color-border)}@media (max-width: 768px){.admin-header{flex-direction:column;align-items:flex-start;gap:12px}.example-inputs,.models-grid,.model-selector-grid,.hyperparameters-grid{grid-template-columns:1fr}}:root{--color-primary: #0f766e;--color-primary-hover: #115e59;--color-primary-strong: #134e4a;--color-primary-light: #effaf7;--color-primary-tint: #d7f0ea;--color-primary-border: #99e6da;--color-accent: #0891b2;--color-secondary: #64748b;--color-secondary-hover: #475569;--color-success: #15803d;--color-success-light: #f0fdf4;--color-success-border: #bbf7d0;--color-danger: #dc2626;--color-danger-light: #fef2f2;--color-danger-border: #fecaca;--color-warning: #b45309;--color-warning-light: #fffbeb;--color-warning-border: #fde68a;--color-bg: #eef2f4;--color-surface: #ffffff;--color-surface-2: #f6f9f9;--color-text: #0f1e24;--color-text-secondary: #475d66;--color-text-muted: #8aa0a8;--color-border: #e2e9ec;--color-border-hover: #c6d3d8;--color-ring: rgb(15 118 110 / .16);--shadow-sm: 0 1px 2px 0 rgb(15 30 36 / .06);--shadow-md: 0 2px 4px -1px rgb(15 30 36 / .07), 0 4px 12px -4px rgb(15 30 36 / .08);--shadow-lg: 0 8px 24px -6px rgb(15 30 36 / .12), 0 2px 6px -2px rgb(15 30 36 / .06);--shadow-xl: 0 24px 48px -12px rgb(15 30 36 / .18);--radius-sm: 6px;--radius-md: 9px;--radius-lg: 13px;--radius-xl: 18px;--sidebar-w: 250px;--transition: .16s cubic-bezier(.4, 0, .2, 1);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, "SFMono-Regular", "Courier New", monospace}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--color-bg);color:var(--color-text);min-height:100vh;padding:0;line-height:1.55;font-size:14.5px;letter-spacing:-.006em}:where(input,select,textarea,button):focus-visible{outline:none;border-color:var(--color-primary)!important;box-shadow:0 0 0 3px var(--color-ring)}::selection{background:var(--color-primary-tint);color:var(--color-primary-strong)}*{scrollbar-color:var(--color-border-hover) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--color-border-hover);border-radius:20px;border:3px solid var(--color-bg)}*::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.app-shell{display:flex;min-height:100vh;align-items:stretch}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:100}.sidebar-brand{display:flex;align-items:center;gap:11px;padding:15px 16px;border-bottom:1px solid var(--color-border)}.sidebar-logo{height:38px;width:auto;object-fit:contain;flex-shrink:0}.sidebar-brand-text{display:flex;flex-direction:column;min-width:0}.sidebar-brand-title{font-size:.64rem;font-weight:700;color:var(--color-text);letter-spacing:.01em;line-height:1.3}.sidebar-brand-sub{font-size:.7rem;font-weight:700;color:var(--color-primary);margin-top:2px}.sidebar-nav{flex:1;padding:12px 10px;display:flex;flex-direction:column;gap:3px;overflow-y:auto}.side-link{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-md);border:none;background:transparent;color:var(--color-text-secondary);font-family:inherit;font-size:.9rem;font-weight:500;cursor:pointer;text-align:left;width:100%;position:relative;transition:background var(--transition),color var(--transition)}.side-link:hover{background:var(--color-surface-2);color:var(--color-text)}.side-link.active{background:var(--color-primary-light);color:var(--color-primary-strong);font-weight:650}.side-link.active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:3px;background:var(--color-primary)}.side-icon{width:19px;height:19px;flex-shrink:0;color:var(--color-text-muted);transition:color var(--transition)}.side-link:hover .side-icon{color:var(--color-text-secondary)}.side-link.active .side-icon{color:var(--color-primary)}.sidebar-foot{border-top:1px solid var(--color-border);padding:10px;display:flex;flex-direction:column;gap:2px}.sidebar-user{display:flex;align-items:center;gap:10px;padding:6px 8px 10px;color:var(--color-text);font-size:.85rem;font-weight:600;min-width:0}.sidebar-user span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-avatar{width:30px;height:30px;border-radius:50%;background:var(--color-primary-tint);color:var(--color-primary-strong);display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;flex-shrink:0;text-transform:uppercase}.content{flex:1;min-width:0;background:var(--color-bg)}.content-inner{padding:24px 30px}.sidebar-toggle{display:none}@media (max-width: 900px){.app-shell{flex-direction:column}.sidebar{width:100%;height:auto;border-right:none;border-bottom:1px solid var(--color-border);flex-direction:row;flex-wrap:wrap;align-items:center}.sidebar-brand{border-bottom:none;flex:1;padding:12px 16px}.sidebar-toggle{display:inline-flex;align-items:center;justify-content:center;margin-right:14px;width:40px;height:40px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;color:var(--color-text);font-size:1.15rem}.sidebar-nav{display:none;width:100%;order:3;border-top:1px solid var(--color-border)}.sidebar-nav.open{display:flex}.sidebar-foot{display:none;width:100%;order:4}.sidebar-foot.open{display:flex}.content-inner{padding:18px 16px}}.container{width:100%;margin:0 auto;display:flex;flex-direction:column;min-height:calc(100vh - 120px)}.container-fluid{width:100%;display:flex;flex-direction:column;min-height:calc(100vh - 120px)}header{text-align:left;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}header h1{color:var(--color-text);font-size:1.5rem;font-weight:700;margin-bottom:4px;letter-spacing:-.02em}header p{color:var(--color-text-secondary);font-size:.9rem}.upload-section{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.settings-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 640px){.settings-row{grid-template-columns:1fr}}.model-selector{width:100%;min-width:0;display:flex;flex-direction:column;gap:6px}.model-selector label{font-size:.8rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.model-select{padding:9px 36px 9px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.875rem;max-width:100%;font-family:inherit;background-color:var(--color-surface);color:var(--color-text);cursor:pointer;transition:all var(--transition);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 10px center;background-size:16px}.model-select:hover{border-color:var(--color-border-hover)}.model-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1a}.model-select:disabled{opacity:.5;cursor:not-allowed;background-color:var(--color-bg)}.model-select optgroup{font-weight:600;color:var(--color-text)}.model-select option{padding:8px;color:var(--color-text)}.model-info{background-color:var(--color-warning-light);border:1px solid var(--color-warning-border);padding:8px 12px;border-radius:var(--radius-sm)}.model-info p{margin:0;font-size:.8rem;color:var(--color-warning);line-height:1.5}.model-info strong{color:var(--color-warning)}.ocr-mode-options{display:flex;gap:8px}.ocr-mode-option{display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);flex:1;background:var(--color-surface)}.ocr-mode-option:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.ocr-mode-option.active{border-color:var(--color-primary);background:var(--color-primary-light);box-shadow:0 0 0 1px var(--color-primary)}.ocr-mode-option input[type=radio]{accent-color:var(--color-primary)}.ocr-mode-option div{display:flex;flex-direction:column}.ocr-mode-option strong{font-size:.85rem;color:var(--color-text)}.ocr-mode-option span{font-size:.75rem;color:var(--color-text-muted)}.file-input-wrapper{position:relative;width:100%}#file-input{display:none}.file-label{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 20px;background:var(--color-surface);border:2px dashed var(--color-border);border-radius:var(--radius-lg);cursor:pointer;text-align:center;transition:all var(--transition);color:var(--color-text-secondary);font-weight:500;font-size:.9rem;min-height:120px}.file-label:hover{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.file-label.has-file{border-color:var(--color-success);background:var(--color-success-light);color:var(--color-success);border-style:solid}.file-label-icon{font-size:2rem;margin-bottom:8px;opacity:.6}.file-label-text{font-size:.9rem;font-weight:500}.file-label-hint{font-size:.75rem;color:var(--color-text-muted);margin-top:4px}.actions-row{display:flex;gap:8px;justify-content:center}.btn{padding:8px 15px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.85rem;font-weight:600;line-height:1.2;cursor:pointer;transition:background var(--transition),border-color var(--transition),box-shadow var(--transition),transform var(--transition);font-family:inherit;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm);white-space:nowrap}.btn:hover:not(:disabled){border-color:var(--color-border-hover);background:var(--color-surface-2)}.btn:active:not(:disabled){transform:translateY(.5px)}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-2);border-color:var(--color-border-hover);color:var(--color-text)}.btn-export{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);font-size:.8rem;padding:6px 12px;font-weight:500}.btn-export:hover{background:var(--color-bg);border-color:var(--color-border-hover)}.btn-training{background:#7c3aed;color:#fff;border:1px solid #7c3aed;font-size:.8rem;padding:6px 12px;font-weight:500}.btn-training:hover{background:#6d28d9;border-color:#6d28d9}.btn-success{background:var(--color-success);color:#fff;border:1px solid var(--color-success);font-size:.8rem;padding:6px 12px;font-weight:500}.btn-danger{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.error-message{background:var(--color-danger-light);color:var(--color-danger);padding:12px 16px;border-radius:var(--radius-md);border:1px solid var(--color-danger-border);margin:16px 0;font-size:.875rem;font-weight:500}.ocr-loading{position:relative;text-align:center;padding:48px 24px 56px;background:linear-gradient(135deg,#0f172a 0%,#1e293b 50%,#0f172a 100%);border-radius:var(--radius-xl);overflow:hidden;margin:24px 0;border:1px solid rgba(37,99,235,.2)}.ocr-scanner{position:relative;display:inline-block;margin-bottom:28px}.scanner-doc{width:80px;height:100px;background:rgba(255,255,255,.06);border:1.5px solid rgba(37,99,235,.4);border-radius:6px;position:relative;overflow:hidden;box-shadow:0 0 30px #2563eb26}.scanner-line{position:absolute;left:0;width:100%;height:2px;background:linear-gradient(90deg,transparent,#3b82f6,#60a5fa,#3b82f6,transparent);box-shadow:0 0 15px 3px #3b82f680,0 0 40px 5px #3b82f633;animation:scanLine 2s ease-in-out infinite}@keyframes scanLine{0%,to{top:0;opacity:.3}50%{top:calc(100% - 2px);opacity:1}}.scanner-grid{display:flex;flex-direction:column;gap:6px;padding:10px 8px}.grid-line{height:2px;background:rgba(59,130,246,.15);border-radius:1px;animation:gridReveal 2s ease-in-out infinite}.grid-line:nth-child(2n){width:70%}@keyframes gridReveal{0%,to{opacity:.2;transform:scaleX(.3)}50%{opacity:.6;transform:scaleX(1)}}.scanner-rings{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.ring{position:absolute;border:1px solid rgba(59,130,246,.3);border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);animation:ringPulse 3s ease-out infinite}.ring-1{width:120px;height:120px;animation-delay:0s}.ring-2{width:160px;height:160px;animation-delay:.6s}.ring-3{width:200px;height:200px;animation-delay:1.2s}@keyframes ringPulse{0%{opacity:.6;transform:translate(-50%,-50%) scale(.8)}to{opacity:0;transform:translate(-50%,-50%) scale(1.3)}}.ocr-loading-text{position:relative;z-index:2}.loading-label{display:inline-block;font-size:.65rem;font-weight:700;letter-spacing:.25em;color:#60a5fa;background:rgba(59,130,246,.1);border:1px solid rgba(59,130,246,.2);padding:4px 14px;border-radius:20px;margin-bottom:12px;animation:labelGlow 2s ease-in-out infinite}@keyframes labelGlow{0%,to{box-shadow:0 0 8px #3b82f626}50%{box-shadow:0 0 20px #3b82f64d}}.loading-status{color:#cbd5e1;font-size:.9rem;font-weight:500;margin:8px 0 0}.loading-dots{display:flex;justify-content:center;gap:6px;margin-top:16px}.loading-dots span{width:6px;height:6px;background:#3b82f6;border-radius:50%;animation:dotBounce 1.4s ease-in-out infinite}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes dotBounce{0%,80%,to{transform:scale(.4);opacity:.3}40%{transform:scale(1);opacity:1}}.data-stream{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.data-particle{position:absolute;bottom:-4px;width:2px;height:12px;background:linear-gradient(to top,transparent,#3b82f6);border-radius:2px;animation:particleRise linear infinite;opacity:0}@keyframes particleRise{0%{bottom:-4px;opacity:0}10%{opacity:.7}90%{opacity:.3}to{bottom:100%;opacity:0}}.result-section{margin-top:24px;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:12px}.result-header h2{color:var(--color-text);font-size:1.1rem;font-weight:600}.export-buttons{display:flex;gap:6px;flex-wrap:wrap}.file-tabs{display:flex;gap:2px;margin-bottom:16px;border-bottom:1px solid var(--color-border);overflow-x:auto}.file-tab{padding:8px 16px;border:none;border-bottom:2px solid transparent;background:transparent;cursor:pointer;font-size:.8rem;font-weight:500;font-family:inherit;color:var(--color-text-muted);transition:all var(--transition);white-space:nowrap}.file-tab:hover{color:var(--color-text);background:var(--color-bg)}.file-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);background:transparent}.file-tab.error:not(.active){color:var(--color-danger)}.text-output{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px;max-height:500px;overflow-y:auto}.text-output pre{white-space:pre-wrap;word-wrap:break-word;font-family:JetBrains Mono,Fira Code,Courier New,monospace;font-size:.85rem;line-height:1.7;color:var(--color-text);margin:0}.region-results-table{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow-x:auto}.region-results-table table{width:100%;min-width:700px;border-collapse:collapse}.region-results-table thead th{background:var(--color-bg);color:var(--color-text-secondary);padding:10px 16px;text-align:left;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border)}.region-results-table tbody tr{border-bottom:1px solid var(--color-border);transition:background var(--transition)}.region-results-table tbody tr:hover{background:var(--color-bg)}.region-results-table tbody tr:last-child{border-bottom:none}.field-name-cell{padding:12px 16px;font-weight:600;color:var(--color-text);white-space:nowrap;vertical-align:middle;width:20%;font-size:.875rem}.field-image-cell{padding:8px 16px;vertical-align:middle;width:40%;position:relative}.crop-preview{max-width:100%;max-height:100px;border:1px solid var(--color-border);border-radius:var(--radius-sm);object-fit:contain;background:white;cursor:zoom-in}.crop-preview:hover{position:absolute;max-width:none;max-height:none;z-index:100;box-shadow:var(--shadow-xl);cursor:zoom-out}.field-value-cell{padding:8px 16px;vertical-align:middle;width:40%}.field-value-input{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.875rem;font-family:inherit;line-height:1.5;resize:vertical;transition:all var(--transition);color:var(--color-text)}.field-value-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1a}.usage-stats{display:flex;flex-wrap:wrap;gap:16px;padding:10px 16px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-top:12px;font-size:.8rem;color:var(--color-text-secondary)}.usage-stats strong{color:var(--color-text)}.usage-total{background:var(--color-success-light);border-color:var(--color-success-border)}.usage-cost,.usage-cost strong{color:var(--color-warning)}footer{text-align:center;margin-top:auto;padding-top:16px;border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:.8rem}@media (max-width: 640px){.container{padding:0}.main-content{padding:16px}header h1{font-size:1.4rem}.result-header{flex-direction:column;align-items:flex-start}.ocr-mode-options,.actions-row{flex-direction:column}.btn{width:100%}}.training-review-list{display:flex;flex-direction:column;gap:16px}.training-review-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px}.training-review-label{display:flex;gap:8px;align-items:center;margin-bottom:8px}.training-label-input{flex:1;padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.9rem}.training-label-input:focus{outline:none;border-color:var(--color-primary)}.btn-delete-training{background:var(--color-danger);color:#fff;border:none;padding:6px 12px;border-radius:var(--radius-sm);cursor:pointer;font-size:.8rem}.btn-delete-training:hover{opacity:.9}.crop-canvas-wrapper{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.crop-canvas-wrapper canvas{max-width:100%;background:#f8f8f8}.crop-actions{display:flex;gap:6px}.btn-crop-confirm{background:var(--color-success);color:#fff;border:none;padding:4px 16px;border-radius:var(--radius-sm);cursor:pointer;font-weight:500}.btn-crop-cancel{background:var(--color-secondary);color:#fff;border:none;padding:4px 16px;border-radius:var(--radius-sm);cursor:pointer}.saving-text{color:var(--color-primary);font-size:.85rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card-pad{padding:18px 20px}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:.72rem;font-weight:600;line-height:1.6;background:var(--color-surface-2);color:var(--color-text-secondary);border:1px solid var(--color-border);white-space:nowrap}.badge-primary{background:var(--color-primary-light);color:var(--color-primary-strong);border-color:var(--color-primary-border)}.badge-success{background:var(--color-success-light);color:var(--color-success);border-color:var(--color-success-border)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning);border-color:var(--color-warning-border)}.badge-danger{background:var(--color-danger-light);color:var(--color-danger);border-color:var(--color-danger-border)}.input,.field-input{width:100%;padding:8px 11px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.875rem;font-family:inherit;color:var(--color-text);background:var(--color-surface);transition:border-color var(--transition),box-shadow var(--transition);box-sizing:border-box}.empty{text-align:center;padding:40px 20px;color:var(--color-text-muted);font-size:.9rem}.progress{height:8px;background:var(--color-border);border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--color-primary);border-radius:999px;transition:width .3s ease}
