:root{--primary-color: #6366f1;--primary-hover: #4f46e5;--primary-light: #e0e7ff;--secondary-color: #64748b;--success-color: #10b981;--success-bg: #d1fae5;--warning-color: #f59e0b;--warning-bg: #fef3c7;--danger-color: #ef4444;--danger-bg: #fee2e2;--bg-color: #f1f5f9;--sidebar-bg: rgba(255, 255, 255, .95);--card-bg: #ffffff;--border-color: #e2e8f0;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--sidebar-width: 360px;--border-radius-lg: 16px;--border-radius-md: 12px;--border-radius-sm: 8px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--glass-blur: 12px;--transition-speed: .2s;--transition-bounce: cubic-bezier(.34, 1.56, .64, 1)}*{box-sizing:border-box;margin:0;padding:0;outline:none}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-color);color:var(--text-primary);height:100vh;overflow:hidden;line-height:1.5;-webkit-font-smoothing:antialiased}.app-container{display:flex;height:100vh;width:100vw;background:radial-gradient(circle at top right,#eef2ff,#f1f5f9)}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);border-right:1px solid rgba(255,255,255,.5);display:flex;flex-direction:column;height:100%;z-index:20;box-shadow:var(--shadow-lg);backdrop-filter:blur(var(--glass-blur));transition:transform .3s ease}.sidebar-header{padding:1.5rem;border-bottom:1px solid var(--border-color);background:#fffc}.sidebar-header h1{font-size:1.25rem;color:var(--primary-color);font-weight:800;letter-spacing:-.025em;display:flex;align-items:center;gap:.75rem;background:linear-gradient(135deg,var(--primary-color),#818cf8);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.sidebar-content{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:2rem}.sidebar-section{animation:fadeSlideIn .5s ease-out forwards;opacity:0}.sidebar-section:nth-child(1){animation-delay:.1s}.sidebar-section:nth-child(2){animation-delay:.2s}.sidebar-section:nth-child(3){animation-delay:.3s}.sidebar-section:nth-child(4){animation-delay:.4s}.sidebar-section h3{font-size:.7rem;text-transform:uppercase;color:var(--text-muted);margin-bottom:.75rem;font-weight:700;letter-spacing:.05em}.import-control{display:flex;gap:.5rem;margin-bottom:.75rem;position:relative}.import-control input[type=text]{flex:1;padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);font-size:.875rem;color:var(--text-primary);background:#fff;box-shadow:var(--shadow-sm);transition:all var(--transition-speed)}.import-control input[type=text]:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-light)}.btn-browse{background:#fff;color:var(--text-primary);border:1px solid var(--border-color);padding:0 1rem;border-radius:var(--border-radius-sm);cursor:pointer;font-size:.875rem;font-weight:600;transition:all var(--transition-speed);white-space:nowrap;box-shadow:var(--shadow-sm)}.btn-browse:hover{background:#f8fafc;border-color:var(--text-secondary);transform:translateY(-1px)}.status-indicator{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--text-secondary);font-weight:500;padding-left:.25rem}.status-dot{width:8px;height:8px;background:var(--border-color);border-radius:50%;transition:all .3s var(--transition-bounce)}.status-indicator.active .status-dot{background:var(--success-color);box-shadow:0 0 0 3px var(--success-bg)}.functions-grid{display:flex;flex-direction:column;gap:.75rem}.btn-func{width:100%;padding:1rem;border:none;border-radius:var(--border-radius-md);color:#fff;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;gap:.75rem;font-size:.95rem;box-shadow:var(--shadow-md);position:relative;overflow:hidden}.btn-func:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(#ffffff1a,#fff0);opacity:0;transition:opacity .2s}.btn-func:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-func:hover:after{opacity:1}.btn-func:active{transform:translateY(0)}.btn-func:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none;filter:grayscale(.5)}.btn-generate{background:linear-gradient(135deg,var(--primary-color),#4338ca)}.btn-download{background:linear-gradient(135deg,var(--success-color),#059669)}.section-header-sidebar{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.btn-icon-small{background:transparent;border:none;cursor:pointer;padding:4px;border-radius:4px;transition:background .2s;font-size:1rem}.btn-icon-small:hover{background:var(--bg-color)}.files-list-sidebar{max-height:200px;overflow-y:auto;border:1px solid var(--border-color);border-radius:var(--border-radius-md);background:#fff;box-shadow:inset 0 2px 4px #00000005}.file-item-sidebar{padding:.75rem 1rem;border-bottom:1px solid var(--border-color);cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:all .2s}.file-item-sidebar:last-child{border-bottom:none}.file-item-sidebar:hover{background:var(--bg-color)}.file-item-sidebar.active{background:var(--primary-light);border-left:3px solid var(--primary-color);padding-left:calc(1rem - 3px)}.file-name-sidebar{font-size:.85rem;font-weight:500;color:var(--text-secondary)}.file-item-sidebar.active .file-name-sidebar{color:var(--primary-color);font-weight:600}.bulk-actions{display:flex;gap:.5rem;margin-top:.75rem}.btn-bulk{flex:1;padding:.5rem;border:1px solid transparent;border-radius:var(--border-radius-sm);font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.35rem}.btn-bulk-generate{background:var(--primary-light);color:var(--primary-color);border-color:#6366f133}.btn-bulk-generate:hover:not(:disabled){background:var(--primary-color);color:#fff}.btn-bulk-delete{background:var(--danger-bg);color:var(--danger-color);border-color:#ef444433}.btn-bulk-delete:hover:not(:disabled){background:var(--danger-color);color:#fff}.status-panel{background:#1e293b;padding:1rem;border-radius:var(--border-radius-md);border:1px solid #334155;box-shadow:var(--shadow-md)}.status-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;font-size:.8rem;color:#94a3b8}.text-ready{color:#4ade80;text-shadow:0 0 8px rgba(74,222,128,.3)}.text-processing{color:#fbbf24}.text-error{color:#f87171}.log-box{height:120px;background:#0003;border-radius:6px;padding:.75rem;overflow-y:auto;font-family:JetBrains Mono,monospace;font-size:.7rem;line-height:1.5;color:#e2e8f0}.log-entry{margin-bottom:.25rem;display:flex;gap:.5rem}.log-time{color:#64748b;flex-shrink:0}.main-view{flex:1;display:flex;flex-direction:column;padding:2rem;position:relative;overflow:hidden}.view-header{margin-bottom:1.5rem;display:flex;align-items:center;justify-content:space-between}.view-tabs{display:flex;gap:1rem;background:#ffffff80;padding:.25rem;border-radius:var(--border-radius-lg);border:1px solid rgba(255,255,255,.6)}.view-tab{background:transparent;border:none;padding:.6rem 1.2rem;border-radius:var(--border-radius-md);font-size:.9rem;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .3s var(--transition-bounce);position:relative;z-index:1}.view-tab:hover{color:var(--text-primary);background:#ffffff80}.view-tab.active{color:var(--primary-color);background:#fff;box-shadow:var(--shadow-sm)}.view-container{flex:1;border-radius:var(--border-radius-lg);overflow:hidden;position:relative;background:#fff;box-shadow:var(--shadow-lg),inset 0 0 0 1px #ffffff80;display:flex;flex-direction:column;transition:all .3s ease}.viewer-canvas{width:100%;height:100%;background:radial-gradient(circle at center,#fff,#f1f5f9)}.viewer-content{width:100%;height:100%;display:none;opacity:0;transform:scale(.98);transition:opacity .4s ease,transform .4s var(--transition-bounce)}.viewer-content.active{display:block;opacity:1;transform:scale(1)}.viewer-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;color:var(--text-secondary);width:100%}.pdf-frame{width:100%;height:100%;border:none;display:block;background:#fff}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:48px;height:48px;border:3px solid var(--primary-light);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s cubic-bezier(.55,.055,.675,.19) infinite}.viewer-empty svg{margin-bottom:1.5rem;color:#cbd5e1;filter:drop-shadow(0 4px 6px rgba(0,0,0,.05));animation:float 6s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.ui-blocker-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:9999;background:#0f172a99;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;transition:opacity .3s ease}.ui-blocker-content{background:#fffffff2;border:1px solid rgba(255,255,255,.5);box-shadow:0 25px 50px -12px #00000040;padding:2rem;border-radius:var(--border-radius-lg);display:flex;flex-direction:column;align-items:center;gap:1rem;min-width:200px}.ui-blocker-spinner{width:36px;height:36px;border:3px solid var(--primary-light);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}.ui-blocker-message{font-weight:600;color:var(--text-primary);font-size:1rem}.ui-blocked{pointer-events:none!important;opacity:.6!important;cursor:not-allowed!important;filter:grayscale(.5)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.notification-container{position:fixed;top:24px;right:24px;z-index:10000;display:flex;flex-direction:column;gap:12px;pointer-events:none}.notification{display:flex;align-items:center;gap:12px;background:#fff;padding:16px 20px;border-radius:var(--border-radius-md);box-shadow:0 10px 30px #0000001f,0 4px 8px #0000000d;min-width:320px;max-width:420px;pointer-events:auto;transform:translate(100%);opacity:0;transition:all .4s cubic-bezier(.34,1.56,.64,1);border-left:4px solid;backdrop-filter:blur(var(--glass-blur))}.notification-show{transform:translate(0);opacity:1}.notification-hide{transform:translate(100%);opacity:0}.notification-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;flex-shrink:0}.notification-content{flex:1}.notification-message{font-size:.95rem;font-weight:500;color:var(--text-primary);line-height:1.4}.notification-close{width:24px;height:24px;border:none;background:transparent;color:var(--text-muted);font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s;flex-shrink:0;line-height:1}.notification-close:hover{background:var(--bg-color);color:var(--text-primary)}.notification-success{border-left-color:var(--success-color)}.notification-success .notification-icon{background:var(--success-bg);color:var(--success-color)}.notification-error{border-left-color:var(--danger-color)}.notification-error .notification-icon{background:var(--danger-bg);color:var(--danger-color)}.notification-warning{border-left-color:var(--warning-color)}.notification-warning .notification-icon{background:var(--warning-bg);color:var(--warning-color)}.notification-info{border-left-color:var(--primary-color)}.notification-info .notification-icon{background:var(--primary-light);color:var(--primary-color)}.notification-loading{border-left-color:var(--primary-color)}.notification-loading .notification-icon{background:var(--primary-light);color:var(--primary-color);animation:spin 1s linear infinite}.notification-loading .notification-icon:before{content:"⟳"}.confirm-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0f172a99;backdrop-filter:blur(8px);z-index:10001;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.confirm-overlay.confirm-show{opacity:1}.confirm-dialog{background:#fff;border-radius:var(--border-radius-lg);box-shadow:0 25px 50px -12px #00000040;max-width:480px;width:90%;transform:scale(.95) translateY(10px);opacity:0;transition:all .3s var(--transition-bounce);border:1px solid rgba(255,255,255,.8)}.confirm-dialog.confirm-show{transform:scale(1) translateY(0);opacity:1}.confirm-header{padding:1.5rem 1.5rem 1rem;border-bottom:1px solid var(--border-color)}.confirm-title{margin:0;font-size:1.25rem;font-weight:700;color:var(--text-primary)}.confirm-body{padding:1.5rem}.confirm-message{margin:0;font-size:1rem;line-height:1.6;color:var(--text-secondary)}.confirm-footer{padding:1rem 1.5rem 1.5rem;display:flex;gap:1rem;justify-content:flex-end;background:#f8fafc;border-top:1px solid var(--border-color);border-radius:0 0 var(--border-radius-lg) var(--border-radius-lg)}.confirm-footer button{padding:.75rem 1.5rem;border-radius:var(--border-radius-md);font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s;border:none}.btn-confirm-cancel{background:#fff;border:1px solid var(--border-color)!important;color:var(--text-secondary)}.btn-confirm-cancel:hover{background:#f1f5f9;color:var(--text-primary)}.btn-confirm-ok{color:#fff;box-shadow:var(--shadow-md)}.btn-confirm-ok:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg)}.btn-confirm-warning{background:linear-gradient(135deg,var(--warning-color),#d97706)}.btn-confirm-danger{background:linear-gradient(135deg,var(--danger-color),#dc2626)}.btn-confirm-info{background:linear-gradient(135deg,var(--primary-color),#4338ca)}
